From dc1a88d28a68646b0d76f8e35ced5ce34499dd60 Mon Sep 17 00:00:00 2001 From: erdanergou Date: Thu, 8 Sep 2022 09:21:40 +0800 Subject: [PATCH] depository --- .idea/.gitignore | 8 + .../depository_manage_war_exploded.xml | 100 + .idea/artifacts/depository_war.xml | 14 + .idea/compiler.xml | 15 + .idea/encodings.xml | 7 + .idea/inspectionProfiles/Project_Default.xml | 9 + .idea/jarRepositories.xml | 20 + .idea/misc.xml | 21 + .idea/uiDesigner.xml | 124 + .mvn/wrapper/MavenWrapperDownloader.java | 118 + .mvn/wrapper/maven-wrapper.properties | 2 + LICENSE | 43 + mvnw | 310 ++ mvnw.cmd | 182 + pom.xml | 236 + .../DepositoryManageApplication.java | 20 + .../depository_manage/aop/WebLogAspect.java | 46 + .../depository_manage/config/FileConfig.java | 15 + .../config/WebMvcConfig.java | 36 + .../controller/CompanyController.java | 157 + .../controller/DepositoryController.java | 990 ++++ .../DepositoryRecordController.java | 216 + .../controller/ExcelController.java | 25 + .../controller/MaterialController.java | 89 + .../controller/MaterialTypeController.java | 298 ++ .../controller/NoticeController.java | 27 + .../controller/PageController.java | 1063 ++++ .../controller/UserController.java | 414 ++ .../ExcelDepositoryInfoConverter.java | 70 + .../ExcelMaterialTypeInfoConverter.java | 63 + .../converter/ExcelStateInfoConverter.java | 45 + .../entity/AccesstoAddress.java | 55 + .../entity/Administration.java | 62 + .../entity/ApplicationInRecord.java | 41 + .../entity/ApplicationOutRecord.java | 103 + .../depository_manage/entity/Company.java | 30 + .../depository_manage/entity/CsvInfo.java | 12 + .../depository_manage/entity/Depository.java | 173 + .../entity/DepositoryRecord.java | 100 + .../depository_manage/entity/ExcelInfo.java | 72 + .../depository_manage/entity/Material.java | 64 + .../entity/MaterialType.java | 119 + .../entity/Md5Encryption.java | 65 + .../depository_manage/entity/Notice.java | 116 + .../depository_manage/entity/Post.java | 101 + .../entity/PostOrUserRole.java | 31 + .../depository_manage/entity/Role.java | 49 + .../entity/SimpleApplicationOutRecord.java | 22 + .../entity/SimpleDepositoryRecord.java | 27 + .../entity/StandingBook.java | 130 + .../entity/TransferRecord.java | 86 + .../depository_manage/entity/User.java | 254 + .../depository_manage/entity/UserByPort.java | 287 + .../exception/MyException.java | 44 + .../ApplicationContextHolder.java | 46 + .../CustomExceptionHandler.java | 29 + .../intercepter/UserInterceptor.java | 54 + .../listener/ExcelListener.java | 90 + .../mapper/AccesstoAddressMapper.java | 52 + .../mapper/AccesstoAddressMapper.xml | 108 + .../mapper/CompanyMapper.java | 93 + .../mapper/CompanyMapper.xml | 168 + .../mapper/DepositoryMapper.java | 133 + .../mapper/DepositoryMapper.xml | 301 ++ .../mapper/DepositoryRecordMapper.java | 232 + .../mapper/DepositoryRecordMapper.xml | 941 ++++ .../mapper/MaterialMapper.java | 119 + .../mapper/MaterialMapper.xml | 327 ++ .../mapper/MaterialTypeMapper.java | 109 + .../mapper/MaterialTypeMapper.xml | 204 + .../mapper/NoticeMapper.java | 31 + .../depository_manage/mapper/NoticeMapper.xml | 131 + .../depository_manage/mapper/RoleMapper.java | 60 + .../depository_manage/mapper/RoleMapper.xml | 90 + .../mapper/TransferRecordMapper.java | 20 + .../mapper/TransferRecordMapper.xml | 124 + .../depository_manage/mapper/UserMapper.java | 138 + .../depository_manage/mapper/UserMapper.xml | 385 ++ .../mapper/standingBookMapper.xml | 143 + .../pojo/AdministrationP.java | 55 + .../pojo/ApplicationInRecordP.java | 59 + .../pojo/ApplicationOutRecordP.java | 126 + .../pojo/DepositoryRecordP.java | 167 + .../depository_manage/pojo/MaterialP.java | 115 + .../depository_manage/pojo/PostP.java | 108 + .../depository_manage/pojo/RestResponse.java | 52 + .../pojo/RoleAndDepository.java | 39 + .../pojo/SimpleApplicationOutRecordP.java | 29 + .../pojo/SimpleDepositoryRecordP.java | 38 + .../depository_manage/pojo/SimpleUser.java | 22 + .../depository_manage/pojo/Statistic.java | 14 + .../depository_manage/pojo/StatusInfo.java | 27 + .../depository_manage/pojo/UserByPortP.java | 106 + .../depository_manage/pojo/UserP.java | 66 + .../security/bean/LoginRealms.java | 69 + .../security/bean/LoginType.java | 66 + .../security/bean/UserToken.java | 88 + .../security/bean/VerificationCode.java | 74 + .../pool/AuthenticationTokenPool.java | 76 + .../security/pool/VerificationCodePool.java | 54 + .../service/AccessAddressService.java | 59 + .../service/CompanyService.java | 88 + .../service/DepositoryRecordService.java | 232 + .../service/DepositoryService.java | 121 + .../service/ExcelService.java | 9 + .../service/MaterialService.java | 111 + .../service/MaterialTypeService.java | 89 + .../service/NoticeService.java | 25 + .../service/RedisService.java | 5 + .../service/RoleService.java | 57 + .../service/UserService.java | 150 + .../impl/AccessAddressServiceImpl.java | 74 + .../service/impl/CompanyServiceImpl.java | 133 + .../impl/DepositoryRecordServiceImpl.java | 691 +++ .../service/impl/DepositoryServiceImpl.java | 170 + .../service/impl/ExcelServiceImpl.java | 99 + .../service/impl/MaterialServiceImpl.java | 258 + .../service/impl/MaterialTypeServiceImpl.java | 133 + .../service/impl/NoticeServiceImpl.java | 39 + .../service/impl/RedisServiceImpl.java | 11 + .../service/impl/RoleServiceImpl.java | 71 + .../service/impl/UserServiceImpl.java | 181 + .../utils/CollectionUtil.java | 14 + .../depository_manage/utils/CrudUtil.java | 65 + .../depository_manage/utils/DateUtil.java | 103 + .../depository_manage/utils/FileUtil.java | 122 + .../depository_manage/utils/HttpUtils.java | 266 + .../depository_manage/utils/Md5.java | 48 + .../depository_manage/utils/Md5Util.java | 5 + .../utils/ObjectFormatUtil.java | 29 + .../utils/ResultCodeEnum.java | 30 + .../depository_manage/utils/ResultVo.java | 26 + .../depository_manage/utils/ResultVoUtil.java | 47 + .../utils/SnowFlakeUtil.java | 83 + .../utils/TaskCenterUtil.java | 34 + .../depository_manage/utils/excelUtil.java | 76 + src/main/resources/META-INF/MANIFEST.MF | 4 + src/main/resources/application-test.yml | 96 + src/main/resources/application.yml | 5 + src/main/resources/banner.txt | 14 + src/main/resources/logback-spring.xml | 155 + src/main/resources/static/api/clear.json | 4 + src/main/resources/static/api/init.json | 227 + .../resources/static/api/init_checker.json | 221 + .../resources/static/api/init_reviewer.json | 227 + src/main/resources/static/api/init_user.json | 101 + src/main/resources/static/api/menus.json | 254 + src/main/resources/static/api/table-in.json | 133 + src/main/resources/static/api/table-out.json | 130 + src/main/resources/static/api/table-user.json | 95 + .../resources/static/api/tableSelect.json | 23 + src/main/resources/static/api/test.json | 226 + src/main/resources/static/api/upload.json | 10 + src/main/resources/static/css/layuimini.css | 927 ++++ src/main/resources/static/css/public.css | 91 + .../resources/static/css/themes/default.css | 95 + src/main/resources/static/images/bg.jpg | Bin 0 -> 26174 bytes src/main/resources/static/images/captcha.jpg | Bin 0 -> 2493 bytes .../resources/static/images/donate_qrcode.png | Bin 0 -> 51506 bytes src/main/resources/static/images/favicon.ico | Bin 0 -> 45552 bytes src/main/resources/static/images/home.png | Bin 0 -> 149782 bytes .../resources/static/images/icon-login.png | Bin 0 -> 2791 bytes src/main/resources/static/images/loginbg.png | Bin 0 -> 687033 bytes src/main/resources/static/images/logo.jpg | Bin 0 -> 34438 bytes src/main/resources/static/images/logo.png | Bin 0 -> 76190 bytes .../resources/static/images/logo_back.jpg | Bin 0 -> 90800 bytes .../resources/static/images/logo_back.png | Bin 0 -> 122259 bytes src/main/resources/static/js/cookie.js | 52 + src/main/resources/static/js/lay-config.js | 31 + .../js/lay-module/cardTable/cardTable.css | 92 + .../js/lay-module/cardTable/cardTable.js | 247 + .../static/js/lay-module/echarts/echarts.js | 19 + .../js/lay-module/echarts/echartsTheme.js | 492 ++ .../js/lay-module/iconPicker/iconPickerFa.js | 399 ++ .../static/js/lay-module/layarea/layarea.js | 4040 ++++++++++++++ .../js/lay-module/layuimini/miniAdmin.js | 350 ++ .../js/lay-module/layuimini/miniMenu.js | 250 + .../static/js/lay-module/layuimini/miniTab.js | 582 ++ .../js/lay-module/layuimini/miniTheme.js | 474 ++ .../js/lay-module/layuimini/miniTongji.js | 40 + .../static/js/lay-module/step-lay/step.css | 79 + .../static/js/lay-module/step-lay/step.js | 101 + .../js/lay-module/tableSelect/tableSelect.js | 272 + .../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 + .../static/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 + .../static/lib/layui-v2.6.3/css/layui.css | 1 + .../lib/layui-v2.6.3/css/modules/code.css | 1 + .../css/modules/laydate/default/laydate.css | 1 + .../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 | 1 + .../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 .../static/lib/layui-v2.6.3/font/iconfont.eot | Bin 0 -> 46684 bytes .../static/lib/layui-v2.6.3/font/iconfont.svg | 554 ++ .../static/lib/layui-v2.6.3/font/iconfont.ttf | Bin 0 -> 46508 bytes .../lib/layui-v2.6.3/font/iconfont.woff | Bin 0 -> 30628 bytes .../lib/layui-v2.6.3/font/iconfont.woff2 | Bin 0 -> 25964 bytes .../static/lib/layui-v2.6.3/layui.js | 5 + src/main/resources/templates/404.html | 110 + src/main/resources/templates/index.html | 179 + src/main/resources/templates/index_back.html | 204 + .../pages/application/application-in.html | 157 + .../application/application-in_back.html | 172 + .../pages/application/application-out.html | 153 + .../application/application-out_back.html | 192 + .../pages/application/application-review.html | 238 + .../application/application-transfer.html | 182 + .../application-transfer_back.html | 218 + .../pages/application/form-step-look.html | 83 + .../application/form-step-look_back.html | 158 + .../templates/pages/application/my-apply.html | 152 + .../pages/application/my-apply_back.html | 102 + .../templates/pages/application/my-task.html | 179 + .../pages/application/my-task_back.html | 184 + .../templates/pages/chart/chart-in.html | 375 ++ .../templates/pages/chart/chart-in_back.html | 620 +++ .../templates/pages/chart/chart-out.html | 365 ++ .../templates/pages/chart/chart-out_back.html | 623 +++ .../templates/pages/chart/chart-stock.html | 365 ++ .../pages/chart/chart-stock_back.html | 544 ++ .../templates/pages/company/company-out.html | 206 + .../pages/company/company-out_back.html | 358 ++ .../pages/company/companyByParentId.html | 191 + .../templates/pages/company/company_add.html | 107 + .../templates/pages/company/company_edit.html | 62 + .../templates/pages/depository/table-in.html | 267 + .../templates/pages/depository/table-out.html | 276 + .../pages/depository/table-stock.html | 127 + .../pages/material/material-add.html | 174 + .../pages/material/material-out.html | 430 ++ .../pages/material/material-view.html | 135 + .../materialtype/materialTypeByParentId.html | 259 + .../pages/materialtype/materialType_add.html | 107 + .../pages/materialtype/materialType_edit.html | 94 + .../pages/materialtype/materialType_view.html | 508 ++ .../templates/pages/other/notice-edit.html | 86 + .../templates/pages/other/setting.html | 106 + .../templates/pages/other/welcome.html | 397 ++ .../templates/pages/post/post-out.html | 214 + .../templates/pages/post/post-view.html | 86 + .../templates/pages/post/postRole_add.html | 107 + .../templates/pages/user/account-look.html | 305 ++ .../resources/templates/pages/user/login.html | 144 + .../templates/pages/user/login_back.html | 140 + .../templates/pages/user/register.html | 165 + .../templates/pages/user/table-user.html | 259 + .../templates/pages/user/user-add.html | 103 + .../templates/pages/user/user-edit.html | 275 + .../templates/pages/user/user-email.html | 249 + .../templates/pages/user/user-password.html | 97 + .../pages/warehouse/depository-out.html | 550 ++ .../pages/warehouse/depository_add.html | 127 + .../templates/pages/warehouse/manager.html | 105 + .../pages/warehouse/warehouseByParentId.html | 271 + .../pages/warehouse/warehouse_view.html | 108 + src/test/java/com/dreamchaser/Test.java | 31 + target/classes/META-INF/MANIFEST.MF | 4 + .../spring-configuration-metadata.json | 17 + target/classes/application-test.yml | 96 + target/classes/application.yml | 5 + target/classes/banner.txt | 14 + .../mapper/AccesstoAddressMapper.xml | 108 + .../mapper/CompanyMapper.xml | 168 + .../mapper/DepositoryMapper.xml | 301 ++ .../mapper/DepositoryRecordMapper.xml | 941 ++++ .../mapper/MaterialMapper.xml | 327 ++ .../mapper/MaterialTypeMapper.xml | 204 + .../depository_manage/mapper/NoticeMapper.xml | 131 + .../depository_manage/mapper/RoleMapper.xml | 90 + .../mapper/TransferRecordMapper.xml | 124 + .../depository_manage/mapper/UserMapper.xml | 385 ++ .../mapper/standingBookMapper.xml | 143 + target/classes/logback-spring.xml | 155 + target/classes/static/api/clear.json | 4 + target/classes/static/api/init.json | 227 + target/classes/static/api/init_checker.json | 221 + target/classes/static/api/init_reviewer.json | 227 + target/classes/static/api/init_user.json | 101 + target/classes/static/api/menus.json | 254 + target/classes/static/api/table-in.json | 133 + target/classes/static/api/table-out.json | 130 + target/classes/static/api/table-user.json | 95 + target/classes/static/api/tableSelect.json | 23 + target/classes/static/api/test.json | 226 + target/classes/static/api/upload.json | 10 + target/classes/static/css/layuimini.css | 927 ++++ target/classes/static/css/public.css | 91 + target/classes/static/css/themes/default.css | 95 + target/classes/static/images/bg.jpg | Bin 0 -> 26174 bytes target/classes/static/images/captcha.jpg | Bin 0 -> 2493 bytes .../classes/static/images/donate_qrcode.png | Bin 0 -> 51506 bytes target/classes/static/images/favicon.ico | Bin 0 -> 45552 bytes target/classes/static/images/home.png | Bin 0 -> 149782 bytes target/classes/static/images/icon-login.png | Bin 0 -> 2791 bytes target/classes/static/images/loginbg.png | Bin 0 -> 687033 bytes target/classes/static/images/logo.jpg | Bin 0 -> 34438 bytes target/classes/static/images/logo.png | Bin 0 -> 76190 bytes target/classes/static/images/logo_back.jpg | Bin 0 -> 90800 bytes target/classes/static/images/logo_back.png | Bin 0 -> 122259 bytes target/classes/static/js/cookie.js | 52 + target/classes/static/js/lay-config.js | 31 + .../js/lay-module/cardTable/cardTable.css | 92 + .../js/lay-module/cardTable/cardTable.js | 247 + .../static/js/lay-module/echarts/echarts.js | 19 + .../js/lay-module/echarts/echartsTheme.js | 492 ++ .../js/lay-module/iconPicker/iconPickerFa.js | 399 ++ .../static/js/lay-module/layarea/layarea.js | 4040 ++++++++++++++ .../js/lay-module/layuimini/miniAdmin.js | 350 ++ .../js/lay-module/layuimini/miniMenu.js | 250 + .../static/js/lay-module/layuimini/miniTab.js | 582 ++ .../js/lay-module/layuimini/miniTheme.js | 474 ++ .../js/lay-module/layuimini/miniTongji.js | 40 + .../static/js/lay-module/step-lay/step.css | 79 + .../static/js/lay-module/step-lay/step.js | 101 + .../js/lay-module/tableSelect/tableSelect.js | 272 + .../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 + .../static/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 + .../static/lib/layui-v2.6.3/css/layui.css | 1 + .../lib/layui-v2.6.3/css/modules/code.css | 1 + .../css/modules/laydate/default/laydate.css | 1 + .../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 | 1 + .../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 .../static/lib/layui-v2.6.3/font/iconfont.eot | Bin 0 -> 46684 bytes .../static/lib/layui-v2.6.3/font/iconfont.svg | 554 ++ .../static/lib/layui-v2.6.3/font/iconfont.ttf | Bin 0 -> 46508 bytes .../lib/layui-v2.6.3/font/iconfont.woff | Bin 0 -> 30628 bytes .../lib/layui-v2.6.3/font/iconfont.woff2 | Bin 0 -> 25964 bytes .../classes/static/lib/layui-v2.6.3/layui.js | 5 + target/classes/templates/404.html | 110 + target/classes/templates/index.html | 179 + target/classes/templates/index_back.html | 204 + .../pages/application/application-in.html | 157 + .../application/application-in_back.html | 172 + .../pages/application/application-out.html | 153 + .../application/application-out_back.html | 192 + .../pages/application/application-review.html | 238 + .../application/application-transfer.html | 182 + .../application-transfer_back.html | 218 + .../pages/application/form-step-look.html | 83 + .../application/form-step-look_back.html | 158 + .../templates/pages/application/my-apply.html | 152 + .../pages/application/my-apply_back.html | 102 + .../templates/pages/application/my-task.html | 179 + .../pages/application/my-task_back.html | 184 + .../templates/pages/chart/chart-in.html | 375 ++ .../templates/pages/chart/chart-in_back.html | 620 +++ .../templates/pages/chart/chart-out.html | 365 ++ .../templates/pages/chart/chart-out_back.html | 623 +++ .../templates/pages/chart/chart-stock.html | 365 ++ .../pages/chart/chart-stock_back.html | 544 ++ .../templates/pages/company/company-out.html | 206 + .../pages/company/company-out_back.html | 358 ++ .../pages/company/companyByParentId.html | 191 + .../templates/pages/company/company_add.html | 107 + .../templates/pages/company/company_edit.html | 62 + .../templates/pages/depository/table-in.html | 267 + .../templates/pages/depository/table-out.html | 276 + .../pages/depository/table-stock.html | 127 + .../pages/material/material-add.html | 174 + .../pages/material/material-out.html | 430 ++ .../pages/material/material-view.html | 135 + .../materialtype/materialTypeByParentId.html | 259 + .../pages/materialtype/materialType_add.html | 107 + .../pages/materialtype/materialType_edit.html | 94 + .../pages/materialtype/materialType_view.html | 508 ++ .../templates/pages/other/notice-edit.html | 86 + .../templates/pages/other/setting.html | 106 + .../templates/pages/other/welcome.html | 397 ++ .../templates/pages/post/post-out.html | 214 + .../templates/pages/post/post-view.html | 86 + .../templates/pages/post/postRole_add.html | 107 + .../templates/pages/user/account-look.html | 305 ++ .../classes/templates/pages/user/login.html | 144 + .../templates/pages/user/login_back.html | 140 + .../templates/pages/user/register.html | 165 + .../templates/pages/user/table-user.html | 259 + .../templates/pages/user/user-add.html | 103 + .../templates/pages/user/user-edit.html | 275 + .../templates/pages/user/user-email.html | 249 + .../templates/pages/user/user-password.html | 97 + .../pages/warehouse/depository-out.html | 550 ++ .../pages/warehouse/depository_add.html | 127 + .../templates/pages/warehouse/manager.html | 105 + .../pages/warehouse/warehouseByParentId.html | 271 + .../pages/warehouse/warehouse_view.html | 108 + 487 files changed, 95324 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/artifacts/depository_manage_war_exploded.xml create mode 100644 .idea/artifacts/depository_war.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 LICENSE create mode 100644 mvnw create mode 100644 mvnw.cmd create mode 100644 pom.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/DepositoryManageApplication.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/aop/WebLogAspect.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/config/FileConfig.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/ExcelController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/NoticeController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/PageController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/UserController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/converter/ExcelDepositoryInfoConverter.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/converter/ExcelMaterialTypeInfoConverter.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/converter/ExcelStateInfoConverter.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/AccesstoAddress.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Administration.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Company.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/CsvInfo.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Depository.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/DepositoryRecord.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Material.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/MaterialType.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Md5Encryption.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Notice.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Post.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/PostOrUserRole.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/Role.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/SimpleApplicationOutRecord.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/SimpleDepositoryRecord.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/StandingBook.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/User.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/exception/MyException.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/exceptionHandler/ApplicationContextHolder.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/exceptionHandler/CustomExceptionHandler.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/AdministrationP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/DepositoryRecordP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutRecordP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/SimpleDepositoryRecordP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/SimpleUser.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/Statistic.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/StatusInfo.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/pojo/UserP.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/security/bean/LoginRealms.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/security/bean/LoginType.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/security/bean/UserToken.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/security/bean/VerificationCode.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/security/pool/VerificationCodePool.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/AccessAddressService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/CompanyService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/ExcelService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/NoticeService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/RedisService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/RoleService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/UserService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/AccessAddressServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/CompanyServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/NoticeServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/CollectionUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/FileUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/HttpUtils.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/Md5.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/ResultCodeEnum.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/ResultVo.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/ResultVoUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/SnowFlakeUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java create mode 100644 src/main/resources/META-INF/MANIFEST.MF create mode 100644 src/main/resources/application-test.yml create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/banner.txt create mode 100644 src/main/resources/logback-spring.xml create mode 100644 src/main/resources/static/api/clear.json create mode 100644 src/main/resources/static/api/init.json create mode 100644 src/main/resources/static/api/init_checker.json create mode 100644 src/main/resources/static/api/init_reviewer.json create mode 100644 src/main/resources/static/api/init_user.json create mode 100644 src/main/resources/static/api/menus.json create mode 100644 src/main/resources/static/api/table-in.json create mode 100644 src/main/resources/static/api/table-out.json create mode 100644 src/main/resources/static/api/table-user.json create mode 100644 src/main/resources/static/api/tableSelect.json create mode 100644 src/main/resources/static/api/test.json create mode 100644 src/main/resources/static/api/upload.json create mode 100644 src/main/resources/static/css/layuimini.css create mode 100644 src/main/resources/static/css/public.css create mode 100644 src/main/resources/static/css/themes/default.css create mode 100644 src/main/resources/static/images/bg.jpg create mode 100644 src/main/resources/static/images/captcha.jpg create mode 100644 src/main/resources/static/images/donate_qrcode.png create mode 100644 src/main/resources/static/images/favicon.ico create mode 100644 src/main/resources/static/images/home.png create mode 100644 src/main/resources/static/images/icon-login.png create mode 100644 src/main/resources/static/images/loginbg.png create mode 100644 src/main/resources/static/images/logo.jpg create mode 100644 src/main/resources/static/images/logo.png create mode 100644 src/main/resources/static/images/logo_back.jpg create mode 100644 src/main/resources/static/images/logo_back.png create mode 100644 src/main/resources/static/js/cookie.js create mode 100644 src/main/resources/static/js/lay-config.js create mode 100644 src/main/resources/static/js/lay-module/cardTable/cardTable.css create mode 100644 src/main/resources/static/js/lay-module/cardTable/cardTable.js create mode 100644 src/main/resources/static/js/lay-module/echarts/echarts.js create mode 100644 src/main/resources/static/js/lay-module/echarts/echartsTheme.js create mode 100644 src/main/resources/static/js/lay-module/iconPicker/iconPickerFa.js create mode 100644 src/main/resources/static/js/lay-module/layarea/layarea.js create mode 100644 src/main/resources/static/js/lay-module/layuimini/miniAdmin.js create mode 100644 src/main/resources/static/js/lay-module/layuimini/miniMenu.js create mode 100644 src/main/resources/static/js/lay-module/layuimini/miniTab.js create mode 100644 src/main/resources/static/js/lay-module/layuimini/miniTheme.js create mode 100644 src/main/resources/static/js/lay-module/layuimini/miniTongji.js create mode 100644 src/main/resources/static/js/lay-module/step-lay/step.css create mode 100644 src/main/resources/static/js/lay-module/step-lay/step.js create mode 100644 src/main/resources/static/js/lay-module/tableSelect/tableSelect.js create mode 100644 src/main/resources/static/js/lay-module/treetable-lay/treetable.css create mode 100644 src/main/resources/static/js/lay-module/treetable-lay/treetable.js create mode 100644 src/main/resources/static/js/lay-module/wangEditor/fonts/w-e-icon.woff create mode 100644 src/main/resources/static/js/lay-module/wangEditor/wangEditor.css create mode 100644 src/main/resources/static/js/lay-module/wangEditor/wangEditor.js create mode 100644 src/main/resources/static/js/lay-module/wangEditor/wangEditor.min.css create mode 100644 src/main/resources/static/js/lay-module/wangEditor/wangEditor.min.js create mode 100644 src/main/resources/static/js/lay-module/wangEditor/wangEditor.min.js.map create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/HELP-US-OUT.txt create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/css/font-awesome.css create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/css/font-awesome.min.css create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/fonts/FontAwesome.otf create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.eot create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.svg create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/animated.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/bordered-pulled.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/core.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/fixed-width.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/font-awesome.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/icons.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/larger.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/list.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/mixins.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/path.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/rotated-flipped.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/screen-reader.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/stacked.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/less/variables.less create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_animated.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_bordered-pulled.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_core.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_fixed-width.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_icons.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_larger.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_list.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_mixins.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_path.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_rotated-flipped.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_screen-reader.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_stacked.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/_variables.scss create mode 100644 src/main/resources/static/lib/font-awesome-4.7.0/scss/font-awesome.scss create mode 100644 src/main/resources/static/lib/jq-module/jquery.particleground.min.js create mode 100644 src/main/resources/static/lib/jq-module/paigusu.min.js create mode 100644 src/main/resources/static/lib/jq-module/zyupload/zyupload-1.0.0.min.css create mode 100644 src/main/resources/static/lib/jq-module/zyupload/zyupload-1.0.0.min.js create mode 100644 src/main/resources/static/lib/jquery-3.4.1/jquery-3.4.1.min.js create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/layui.css create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/code.css create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/laydate/default/laydate.css create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/layer/default/icon-ext.png create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/layer/default/icon.png create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/layer/default/layer.css create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/layer/default/loading-0.gif create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/layer/default/loading-1.gif create mode 100644 src/main/resources/static/lib/layui-v2.6.3/css/modules/layer/default/loading-2.gif create mode 100644 src/main/resources/static/lib/layui-v2.6.3/font/iconfont.eot create mode 100644 src/main/resources/static/lib/layui-v2.6.3/font/iconfont.svg create mode 100644 src/main/resources/static/lib/layui-v2.6.3/font/iconfont.ttf create mode 100644 src/main/resources/static/lib/layui-v2.6.3/font/iconfont.woff create mode 100644 src/main/resources/static/lib/layui-v2.6.3/font/iconfont.woff2 create mode 100644 src/main/resources/static/lib/layui-v2.6.3/layui.js create mode 100644 src/main/resources/templates/404.html create mode 100644 src/main/resources/templates/index.html create mode 100644 src/main/resources/templates/index_back.html create mode 100644 src/main/resources/templates/pages/application/application-in.html create mode 100644 src/main/resources/templates/pages/application/application-in_back.html create mode 100644 src/main/resources/templates/pages/application/application-out.html create mode 100644 src/main/resources/templates/pages/application/application-out_back.html create mode 100644 src/main/resources/templates/pages/application/application-review.html create mode 100644 src/main/resources/templates/pages/application/application-transfer.html create mode 100644 src/main/resources/templates/pages/application/application-transfer_back.html create mode 100644 src/main/resources/templates/pages/application/form-step-look.html create mode 100644 src/main/resources/templates/pages/application/form-step-look_back.html create mode 100644 src/main/resources/templates/pages/application/my-apply.html create mode 100644 src/main/resources/templates/pages/application/my-apply_back.html create mode 100644 src/main/resources/templates/pages/application/my-task.html create mode 100644 src/main/resources/templates/pages/application/my-task_back.html create mode 100644 src/main/resources/templates/pages/chart/chart-in.html create mode 100644 src/main/resources/templates/pages/chart/chart-in_back.html create mode 100644 src/main/resources/templates/pages/chart/chart-out.html create mode 100644 src/main/resources/templates/pages/chart/chart-out_back.html create mode 100644 src/main/resources/templates/pages/chart/chart-stock.html create mode 100644 src/main/resources/templates/pages/chart/chart-stock_back.html create mode 100644 src/main/resources/templates/pages/company/company-out.html create mode 100644 src/main/resources/templates/pages/company/company-out_back.html create mode 100644 src/main/resources/templates/pages/company/companyByParentId.html create mode 100644 src/main/resources/templates/pages/company/company_add.html create mode 100644 src/main/resources/templates/pages/company/company_edit.html create mode 100644 src/main/resources/templates/pages/depository/table-in.html create mode 100644 src/main/resources/templates/pages/depository/table-out.html create mode 100644 src/main/resources/templates/pages/depository/table-stock.html create mode 100644 src/main/resources/templates/pages/material/material-add.html create mode 100644 src/main/resources/templates/pages/material/material-out.html create mode 100644 src/main/resources/templates/pages/material/material-view.html create mode 100644 src/main/resources/templates/pages/materialtype/materialTypeByParentId.html create mode 100644 src/main/resources/templates/pages/materialtype/materialType_add.html create mode 100644 src/main/resources/templates/pages/materialtype/materialType_edit.html create mode 100644 src/main/resources/templates/pages/materialtype/materialType_view.html create mode 100644 src/main/resources/templates/pages/other/notice-edit.html create mode 100644 src/main/resources/templates/pages/other/setting.html create mode 100644 src/main/resources/templates/pages/other/welcome.html create mode 100644 src/main/resources/templates/pages/post/post-out.html create mode 100644 src/main/resources/templates/pages/post/post-view.html create mode 100644 src/main/resources/templates/pages/post/postRole_add.html create mode 100644 src/main/resources/templates/pages/user/account-look.html create mode 100644 src/main/resources/templates/pages/user/login.html create mode 100644 src/main/resources/templates/pages/user/login_back.html create mode 100644 src/main/resources/templates/pages/user/register.html create mode 100644 src/main/resources/templates/pages/user/table-user.html create mode 100644 src/main/resources/templates/pages/user/user-add.html create mode 100644 src/main/resources/templates/pages/user/user-edit.html create mode 100644 src/main/resources/templates/pages/user/user-email.html create mode 100644 src/main/resources/templates/pages/user/user-password.html create mode 100644 src/main/resources/templates/pages/warehouse/depository-out.html create mode 100644 src/main/resources/templates/pages/warehouse/depository_add.html create mode 100644 src/main/resources/templates/pages/warehouse/manager.html create mode 100644 src/main/resources/templates/pages/warehouse/warehouseByParentId.html create mode 100644 src/main/resources/templates/pages/warehouse/warehouse_view.html create mode 100644 src/test/java/com/dreamchaser/Test.java create mode 100644 target/classes/META-INF/MANIFEST.MF create mode 100644 target/classes/META-INF/spring-configuration-metadata.json create mode 100644 target/classes/application-test.yml create mode 100644 target/classes/application.yml create mode 100644 target/classes/banner.txt create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/UserMapper.xml create mode 100644 target/classes/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml create mode 100644 target/classes/logback-spring.xml create mode 100644 target/classes/static/api/clear.json create mode 100644 target/classes/static/api/init.json create mode 100644 target/classes/static/api/init_checker.json create mode 100644 target/classes/static/api/init_reviewer.json create mode 100644 target/classes/static/api/init_user.json create mode 100644 target/classes/static/api/menus.json create mode 100644 target/classes/static/api/table-in.json create mode 100644 target/classes/static/api/table-out.json create mode 100644 target/classes/static/api/table-user.json create mode 100644 target/classes/static/api/tableSelect.json create mode 100644 target/classes/static/api/test.json create mode 100644 target/classes/static/api/upload.json create mode 100644 target/classes/static/css/layuimini.css create mode 100644 target/classes/static/css/public.css create mode 100644 target/classes/static/css/themes/default.css create mode 100644 target/classes/static/images/bg.jpg create mode 100644 target/classes/static/images/captcha.jpg create mode 100644 target/classes/static/images/donate_qrcode.png create mode 100644 target/classes/static/images/favicon.ico create mode 100644 target/classes/static/images/home.png create mode 100644 target/classes/static/images/icon-login.png create mode 100644 target/classes/static/images/loginbg.png create mode 100644 target/classes/static/images/logo.jpg create mode 100644 target/classes/static/images/logo.png create mode 100644 target/classes/static/images/logo_back.jpg create mode 100644 target/classes/static/images/logo_back.png create mode 100644 target/classes/static/js/cookie.js create mode 100644 target/classes/static/js/lay-config.js create mode 100644 target/classes/static/js/lay-module/cardTable/cardTable.css create mode 100644 target/classes/static/js/lay-module/cardTable/cardTable.js create mode 100644 target/classes/static/js/lay-module/echarts/echarts.js create mode 100644 target/classes/static/js/lay-module/echarts/echartsTheme.js create mode 100644 target/classes/static/js/lay-module/iconPicker/iconPickerFa.js create mode 100644 target/classes/static/js/lay-module/layarea/layarea.js create mode 100644 target/classes/static/js/lay-module/layuimini/miniAdmin.js create mode 100644 target/classes/static/js/lay-module/layuimini/miniMenu.js create mode 100644 target/classes/static/js/lay-module/layuimini/miniTab.js create mode 100644 target/classes/static/js/lay-module/layuimini/miniTheme.js create mode 100644 target/classes/static/js/lay-module/layuimini/miniTongji.js create mode 100644 target/classes/static/js/lay-module/step-lay/step.css create mode 100644 target/classes/static/js/lay-module/step-lay/step.js create mode 100644 target/classes/static/js/lay-module/tableSelect/tableSelect.js create mode 100644 target/classes/static/js/lay-module/treetable-lay/treetable.css create mode 100644 target/classes/static/js/lay-module/treetable-lay/treetable.js create mode 100644 target/classes/static/js/lay-module/wangEditor/fonts/w-e-icon.woff create mode 100644 target/classes/static/js/lay-module/wangEditor/wangEditor.css create mode 100644 target/classes/static/js/lay-module/wangEditor/wangEditor.js create mode 100644 target/classes/static/js/lay-module/wangEditor/wangEditor.min.css create mode 100644 target/classes/static/js/lay-module/wangEditor/wangEditor.min.js create mode 100644 target/classes/static/js/lay-module/wangEditor/wangEditor.min.js.map create mode 100644 target/classes/static/lib/font-awesome-4.7.0/HELP-US-OUT.txt create mode 100644 target/classes/static/lib/font-awesome-4.7.0/css/font-awesome.css create mode 100644 target/classes/static/lib/font-awesome-4.7.0/css/font-awesome.min.css create mode 100644 target/classes/static/lib/font-awesome-4.7.0/fonts/FontAwesome.otf create mode 100644 target/classes/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.eot create mode 100644 target/classes/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.svg create mode 100644 target/classes/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf create mode 100644 target/classes/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff create mode 100644 target/classes/static/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/animated.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/bordered-pulled.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/core.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/fixed-width.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/font-awesome.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/icons.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/larger.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/list.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/mixins.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/path.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/rotated-flipped.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/screen-reader.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/stacked.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/less/variables.less create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_animated.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_bordered-pulled.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_core.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_fixed-width.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_icons.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_larger.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_list.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_mixins.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_path.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_rotated-flipped.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_screen-reader.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_stacked.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/_variables.scss create mode 100644 target/classes/static/lib/font-awesome-4.7.0/scss/font-awesome.scss create mode 100644 target/classes/static/lib/jq-module/jquery.particleground.min.js create mode 100644 target/classes/static/lib/jq-module/paigusu.min.js create mode 100644 target/classes/static/lib/jq-module/zyupload/zyupload-1.0.0.min.css create mode 100644 target/classes/static/lib/jq-module/zyupload/zyupload-1.0.0.min.js create mode 100644 target/classes/static/lib/jquery-3.4.1/jquery-3.4.1.min.js create mode 100644 target/classes/static/lib/layui-v2.6.3/css/layui.css create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/code.css create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/laydate/default/laydate.css create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/layer/default/icon-ext.png create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/layer/default/icon.png create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/layer/default/layer.css create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/layer/default/loading-0.gif create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/layer/default/loading-1.gif create mode 100644 target/classes/static/lib/layui-v2.6.3/css/modules/layer/default/loading-2.gif create mode 100644 target/classes/static/lib/layui-v2.6.3/font/iconfont.eot create mode 100644 target/classes/static/lib/layui-v2.6.3/font/iconfont.svg create mode 100644 target/classes/static/lib/layui-v2.6.3/font/iconfont.ttf create mode 100644 target/classes/static/lib/layui-v2.6.3/font/iconfont.woff create mode 100644 target/classes/static/lib/layui-v2.6.3/font/iconfont.woff2 create mode 100644 target/classes/static/lib/layui-v2.6.3/layui.js create mode 100644 target/classes/templates/404.html create mode 100644 target/classes/templates/index.html create mode 100644 target/classes/templates/index_back.html create mode 100644 target/classes/templates/pages/application/application-in.html create mode 100644 target/classes/templates/pages/application/application-in_back.html create mode 100644 target/classes/templates/pages/application/application-out.html create mode 100644 target/classes/templates/pages/application/application-out_back.html create mode 100644 target/classes/templates/pages/application/application-review.html create mode 100644 target/classes/templates/pages/application/application-transfer.html create mode 100644 target/classes/templates/pages/application/application-transfer_back.html create mode 100644 target/classes/templates/pages/application/form-step-look.html create mode 100644 target/classes/templates/pages/application/form-step-look_back.html create mode 100644 target/classes/templates/pages/application/my-apply.html create mode 100644 target/classes/templates/pages/application/my-apply_back.html create mode 100644 target/classes/templates/pages/application/my-task.html create mode 100644 target/classes/templates/pages/application/my-task_back.html create mode 100644 target/classes/templates/pages/chart/chart-in.html create mode 100644 target/classes/templates/pages/chart/chart-in_back.html create mode 100644 target/classes/templates/pages/chart/chart-out.html create mode 100644 target/classes/templates/pages/chart/chart-out_back.html create mode 100644 target/classes/templates/pages/chart/chart-stock.html create mode 100644 target/classes/templates/pages/chart/chart-stock_back.html create mode 100644 target/classes/templates/pages/company/company-out.html create mode 100644 target/classes/templates/pages/company/company-out_back.html create mode 100644 target/classes/templates/pages/company/companyByParentId.html create mode 100644 target/classes/templates/pages/company/company_add.html create mode 100644 target/classes/templates/pages/company/company_edit.html create mode 100644 target/classes/templates/pages/depository/table-in.html create mode 100644 target/classes/templates/pages/depository/table-out.html create mode 100644 target/classes/templates/pages/depository/table-stock.html create mode 100644 target/classes/templates/pages/material/material-add.html create mode 100644 target/classes/templates/pages/material/material-out.html create mode 100644 target/classes/templates/pages/material/material-view.html create mode 100644 target/classes/templates/pages/materialtype/materialTypeByParentId.html create mode 100644 target/classes/templates/pages/materialtype/materialType_add.html create mode 100644 target/classes/templates/pages/materialtype/materialType_edit.html create mode 100644 target/classes/templates/pages/materialtype/materialType_view.html create mode 100644 target/classes/templates/pages/other/notice-edit.html create mode 100644 target/classes/templates/pages/other/setting.html create mode 100644 target/classes/templates/pages/other/welcome.html create mode 100644 target/classes/templates/pages/post/post-out.html create mode 100644 target/classes/templates/pages/post/post-view.html create mode 100644 target/classes/templates/pages/post/postRole_add.html create mode 100644 target/classes/templates/pages/user/account-look.html create mode 100644 target/classes/templates/pages/user/login.html create mode 100644 target/classes/templates/pages/user/login_back.html create mode 100644 target/classes/templates/pages/user/register.html create mode 100644 target/classes/templates/pages/user/table-user.html create mode 100644 target/classes/templates/pages/user/user-add.html create mode 100644 target/classes/templates/pages/user/user-edit.html create mode 100644 target/classes/templates/pages/user/user-email.html create mode 100644 target/classes/templates/pages/user/user-password.html create mode 100644 target/classes/templates/pages/warehouse/depository-out.html create mode 100644 target/classes/templates/pages/warehouse/depository_add.html create mode 100644 target/classes/templates/pages/warehouse/manager.html create mode 100644 target/classes/templates/pages/warehouse/warehouseByParentId.html create mode 100644 target/classes/templates/pages/warehouse/warehouse_view.html diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/artifacts/depository_manage_war_exploded.xml b/.idea/artifacts/depository_manage_war_exploded.xml new file mode 100644 index 00000000..c0550256 --- /dev/null +++ b/.idea/artifacts/depository_manage_war_exploded.xml @@ -0,0 +1,100 @@ + + + $PROJECT_DIR$/target/depository + + + true + depository_manage + war + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/artifacts/depository_war.xml b/.idea/artifacts/depository_war.xml new file mode 100644 index 00000000..ebd11983 --- /dev/null +++ b/.idea/artifacts/depository_war.xml @@ -0,0 +1,14 @@ + + + $PROJECT_DIR$/target + + + depository + war + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..3bcace72 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..aa00ffab --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 00000000..106ba307 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 00000000..712ab9d9 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..e862d07d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 00000000..2b63946d --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 00000000..a45eb6ba --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,118 @@ +/* + * Copyright 2007-present the original author or authors. + * + * 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 + * + * https://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. + */ + +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 00000000..642d572c --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..56fc98d3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,43 @@ +Academic Free License (“AFL”) v. 3.0 + +This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following licensing notice adjacent to the copyright notice for the Original Work: + +Licensed under the Academic Free License version 3.0 + +1) Grant of Copyright License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, for the duration of the copyright, to do the following: + + a) to reproduce the Original Work in copies, either alone or as part of a collective work; + b) to translate, adapt, alter, transform, modify, or arrange the Original Work, thereby creating derivative works ("Derivative Works") based upon the Original Work; + c) to distribute or communicate copies of the Original Work and Derivative Works to the public, under any license of your choice that does not contradict the terms and conditions, including Licensor’s reserved rights and remedies, in this Academic Free License; + d) to perform the Original Work publicly; and + e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, for the duration of the patents, to make, use, sell, offer for sale, have made, and import the Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior permission of the Licensor. Except as expressly stated herein, nothing in this License grants any license to Licensor’s trademarks, copyrights, patents, trade secrets or any other intellectual property. No patent license is granted to make, use, sell, offer for sale, have made, or import embodiments of any patent claims other than the licensed claims defined in Section 2. No license is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under terms different from this License any Original Work that Licensor otherwise would have a right to license. + +5) External Deployment. The term "External Deployment" means the use, distribution, or communication of the Original Work or Derivative Works in any way such that the Original Work or Derivative Works may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Work or a Derivative Work as a distribution under section 1(c). + +6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent, or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately preceding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of non-infringement, merchantability or fitness for a particular purpose. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to the Original Work is granted by this License except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to anyone for any indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to the extent applicable law prohibits such limitation. + +9) Acceptance and Termination. If, at any time, You expressly assented to this License, that assent indicates your clear and irrevocable acceptance of this License and all of its terms and conditions. If You distribute or communicate copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. This License conditions your rights to undertake the activities listed in Section 1, including your right to create Derivative Works based upon the Original Work, and doing so without honoring these terms and conditions is prohibited by copyright law and international treaty. Nothing in this License is intended to affect copyright exceptions and limitations (including “fair use” or “fair dealing”). This License shall terminate immediately and You may no longer exercise any of the rights granted to You by this License upon your failure to honor the conditions in Section 1(c). + +10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of copyright or patent law in the appropriate jurisdiction. This section shall survive the termination of this License. + +12) Attorneys’ Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License. + +13) Miscellaneous. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You. + +16) Modification of This License. This License is Copyright © 2005 Lawrence Rosen. Permission is granted to copy, distribute, or communicate this License without modification. Nothing in this License permits You to modify this License as applied to the Original Work or to Derivative Works. However, You may modify the text of this License and copy, distribute or communicate your modified version (the "Modified License") and apply it to other original works of authorship subject to the following conditions: (i) You may not indicate in any way that your Modified License is the "Academic Free License" or "AFL" and you may not use those names in the name of your Modified License; (ii) You must replace the notice specified in the first paragraph above with the notice "Licensed under " or with a notice of your own that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process. diff --git a/mvnw b/mvnw new file mode 100644 index 00000000..a16b5431 --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# https://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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 00000000..c8d43372 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..2c1a56a5 --- /dev/null +++ b/pom.xml @@ -0,0 +1,236 @@ + + + 4.0.0 + com.dreamchaser + depository_manage + 0.0.1-SNAPSHOT + depository_manage + work + war + + + 1.8 + UTF-8 + UTF-8 + 2.3.7.RELEASE + false + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + + + + + + + + org.springframework.boot + spring-boot-starter-mail + + + com.baomidou + mybatis-plus-boot-starter + 3.4.2 + + + + ch.qos.logback + logback-classic + + + mysql + mysql-connector-java + runtime + + + com.alibaba + druid + 1.1.14 + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + joda-time + joda-time + 2.9.7 + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + junit + junit + test + + + org.aspectj + aspectjweaver + 1.9.5 + + + com.alibaba + fastjson + 1.2.6 + + + org.springframework.boot + spring-boot-devtools + true + + + com.alibaba + fastjson + 1.2.62 + + + + + com.alibaba + easyexcel + 3.1.0 + + + + commons-lang + commons-lang + 2.5 + + + + + cn.hutool + hutool-all + 5.6.7 + + + + org.apache.httpcomponents + httpclient + 4.5 + + + org.apache.httpcomponents + httpmime + 4.5 + + + org.apache.httpcomponents + httpcore + 4.4.1 + + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.apache.commons + commons-pool2 + 2.6.0 + + + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + depository + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.7.RELEASE + + com.dreamchaser.depository_manage.DepositoryManageApplication + + + + repackage + + repackage + + + + + + + org.apache.maven.plugins + maven-war-plugin + + depository + + + + + + src/main/java + + **/*.xml + + + + src/main/resources + + **/*.* + + + + + + diff --git a/src/main/java/com/dreamchaser/depository_manage/DepositoryManageApplication.java b/src/main/java/com/dreamchaser/depository_manage/DepositoryManageApplication.java new file mode 100644 index 00000000..6f8d3823 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/DepositoryManageApplication.java @@ -0,0 +1,20 @@ +package com.dreamchaser.depository_manage; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +@SpringBootApplication +public class DepositoryManageApplication extends SpringBootServletInitializer { + + public static void main(String[] args) { + SpringApplication.run(DepositoryManageApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(DepositoryManageApplication.class); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/aop/WebLogAspect.java b/src/main/java/com/dreamchaser/depository_manage/aop/WebLogAspect.java new file mode 100644 index 00000000..d07c750f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/aop/WebLogAspect.java @@ -0,0 +1,46 @@ +package com.dreamchaser.depository_manage.aop; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; + +/** + * 日志切面 + */ +@Aspect +@Component +public class WebLogAspect { + private final Logger logger = LoggerFactory.getLogger(WebLogAspect.class); + + @Pointcut("execution(public * com.dreamchaser.depository_manage.controller..*.*(..))")//切入点描述 这个是controller包的切入点 + public void controllerLog(){}//签名,可以理解成这个切入点的一个名称 + + + public void logBeforeController(JoinPoint joinPoint) { + //这个RequestContextHolder是Springmvc提供来获得请求的东西 + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = ((ServletRequestAttributes)requestAttributes).getRequest(); + + // 记录下请求内容 + logger.info("################URL : " + request.getRequestURL().toString()); + logger.info("################HTTP_METHOD : " + request.getMethod()); + logger.info("################IP : " + request.getRemoteAddr()); + logger.info("################THE ARGS OF THE CONTROLLER : " + Arrays.toString(joinPoint.getArgs())); + + //下面这个getSignature().getDeclaringTypeName()是获取包+类名的 然后后面的joinPoint.getSignature.getName()获取了方法名 + logger.info("################CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName()); + //logger.info("################TARGET: " + joinPoint.getTarget());//返回的是需要加强的目标类的对象 + //logger.info("################THIS: " + joinPoint.getThis());//返回的是经过加强后的代理类的对象 + + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/config/FileConfig.java b/src/main/java/com/dreamchaser/depository_manage/config/FileConfig.java new file mode 100644 index 00000000..239c487c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/config/FileConfig.java @@ -0,0 +1,15 @@ +package com.dreamchaser.depository_manage.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "file") +public class FileConfig { + + // 上传路径 + private String uploadPath; + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java b/src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java new file mode 100644 index 00000000..b30fe213 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java @@ -0,0 +1,36 @@ +package com.dreamchaser.depository_manage.config; + +import com.dreamchaser.depository_manage.intercepter.UserInterceptor; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new UserInterceptor()) + .addPathPatterns("/**") + .excludePathPatterns("/login", "/register", "/sendCode", "/error") + .excludePathPatterns("/static/**"); + } + + // private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { +// "classpath:/META-INF/resources/", "classpath:/resources/", +// "classpath:/static/", "classpath:/public/" }; +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// if (!registry.hasMappingForPattern("/webjars/**")) { +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// } +// if (!registry.hasMappingForPattern("/**")) { +// registry.addResourceHandler("/**").addResourceLocations( +// CLASSPATH_RESOURCE_LOCATIONS); +// } +// +// } +} + + diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java b/src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java new file mode 100644 index 00000000..bb75ef3a --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java @@ -0,0 +1,157 @@ +package com.dreamchaser.depository_manage.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.entity.*; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.*; +import com.dreamchaser.depository_manage.service.CompanyService; +import com.dreamchaser.depository_manage.service.RoleService; +import com.dreamchaser.depository_manage.service.impl.CompanyServiceImpl; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.HttpUtils; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.apache.http.protocol.HTTP; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/company") +public class CompanyController { + @Autowired + CompanyService companyService; + + @Autowired + RoleService roleService; + + /** + * 查询组织架构 + * @param + * @return + */ + @PostMapping("/allCompanyByParent") + public RestResponse findCompanyByNoParent(@RequestParam Mapmap){ + String url = "http://172.20.2.87:39168/org/govlist"; + Object page = map.get("page"); + Object pagesize = map.get("pagesize"); + String superior = (String) map.get("superior"); + if("".equals(superior)){ + superior = "313"; + } + map.put("page",ObjectFormatUtil.toInteger(page)); + map.put("pagesize",ObjectFormatUtil.toInteger(pagesize)); + map.put("superior",superior); + map.put("state",1); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url,paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + List administrationPList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Administration administration = JSONObject.toJavaObject((JSONObject)list.get(i), Administration.class); + AdministrationP administrationP = new AdministrationP(administration); + administrationPList.add(administrationP); + } + return new RestResponse(list,total,200); + } + + /** + * 根据条件查询公司 + * @param map + * @return + */ + @PostMapping("/companyByCondition") + public RestResponse findcompanyByCondition(@RequestParam Map map){ + String url = "http://172.20.2.87:39168/org/govlist"; + if(map.containsKey("state")){ + Object state = map.get("state"); + map.put("state",ObjectFormatUtil.toInteger(state)); + } + Object page = map.get("page"); + Object pagesize = map.get("pagesize"); + map.put("page",ObjectFormatUtil.toInteger(page)); + map.put("pagesize",ObjectFormatUtil.toInteger(pagesize)); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url,paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + List administrationPList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Administration administration = JSONObject.toJavaObject((JSONObject)list.get(i), Administration.class); + AdministrationP administrationP = new AdministrationP(administration); + administrationPList.add(administrationP); + } + return new RestResponse(list,total,200); + } + + @PostMapping("/allPostByOrganization") + public RestResponse allPostByParent(@RequestParam Map map) { + String url = "http://172.20.2.87:39168/org/positionlist"; + Object page = map.get("page"); + Object pagesize = map.get("pagesize"); + map.put("page",ObjectFormatUtil.toInteger(page)); + map.put("pagesize",ObjectFormatUtil.toInteger(pagesize)); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url,paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + List postList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Post object = JSONObject.toJavaObject((JSONObject)list.get(i), Post.class); + PostP postP = new PostP(object); + RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(postP.getId()); + if(depositoryAndRole != null) { + postP.setRolename(depositoryAndRole.getRoleName()); + postP.setDepositoryName(depositoryAndRole.getDepositoryName()); + }else{ + postP.setRolename(""); + postP.setDepositoryName(""); + } + postList.add(postP); + } + return new RestResponse(postList,total,200); + } + + @PostMapping("post_role") + public RestResponse addUser(@RequestBody Map map) { + map.put("classes",2); + RoleAndDepository userid = roleService.findDepositoryAndRole(ObjectFormatUtil.toInteger(map.get("userid"))); + if(userid!=null){ + return CrudUtil.postHandle(roleService.updateUserOrPostRoleAndDepository(map), 1); + }else { + return CrudUtil.postHandle(roleService.addUserOrPostRoleAndDepository(map), 1); + } + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java new file mode 100644 index 00000000..2d3cea85 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java @@ -0,0 +1,990 @@ +package com.dreamchaser.depository_manage.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.entity.*; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.AdministrationP; +import com.dreamchaser.depository_manage.pojo.DepositoryRecordP; +import com.dreamchaser.depository_manage.pojo.MaterialP; +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.service.*; +import com.dreamchaser.depository_manage.service.impl.DepositoryRecordServiceImpl; +import com.dreamchaser.depository_manage.service.impl.DepositoryServiceImpl; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.DateUtil; +import com.dreamchaser.depository_manage.utils.HttpUtils; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.apache.http.protocol.HTTP; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author Dreamchser + */ + +@RestController +@RequestMapping("/repository") +public class DepositoryController { + @Autowired + DepositoryService depositoryService; + + @Autowired + DepositoryRecordService depositoryRecordService; + + @Autowired + MaterialTypeService materialTypeService; + + @Autowired + MaterialService materialService; + + @Autowired + RoleService roleService; + + /** + * 获取本月之前的月份 + * + * @return + */ + public static Map getPreviousMonth() { + Calendar instance = Calendar.getInstance(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + Map source = new HashMap<>(); + List sourceList = new ArrayList<>(); + int month = instance.get(Calendar.MONTH) + 1; + ArrayList months = new ArrayList<>(); + while (month > 0) { + instance.set(Calendar.MONTH, month); + instance.set(Calendar.DAY_OF_MONTH, 1); + source.put("month", month + "月"); + months.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); + month--; + sourceList.add(((HashMap) source).clone()); + } + instance.set(Calendar.MONTH, month); + instance.set(Calendar.DAY_OF_MONTH, 1); + months.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); + Map map = new HashMap<>(); + map.put("months", months); + map.put("sourceList", sourceList); + return map; + } + + /** + * 获取上周一到本周一的日期 + * + * @return + */ + public static List getLastTimeInterval() { + Calendar calendar = Calendar.getInstance(); + ArrayList lastTime = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; + int offset1 = 1 - dayOfWeek; + calendar.add(Calendar.DATE, offset1 - 7); + lastTime.add(DateUtil.DateTimeByMonthToTimeStamp(sdf.format(calendar.getTime()))); + for (int i = 0; i < 7; i++) { + calendar.add(Calendar.DATE, 1); + lastTime.add(DateUtil.DateTimeByMonthToTimeStamp(sdf.format(calendar.getTime()))); + } + return lastTime; + } + + /** + * 获取之前仓库的库存值 + * @return + */ + public static Map getBeforeInventoryByDName(DepositoryService depositoryService,DepositoryRecordService depositoryRecordService){ + List result = new ArrayList<>(); + List days = getLastTimeInterval(); + Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(); + Iterator it = depositoryAllNameAndId.keySet().iterator(); + Map map = new HashMap<>(); + // 获取当周仓库库存 + Map thisWeekInventoryByDName = getThisWeekInventoryByDName(depositoryService, depositoryRecordService); + while (it.hasNext()){ + int i; + Object key = it.next(); + Double thisDayInventory = 0.0; + thisDayInventory = ((List)thisWeekInventoryByDName.get(key.toString())).get(0); + result.add(thisDayInventory); + int j = 0; + for (i = days.size() - 1; i > 0; i--) { + // 遍历 Map并计算各仓库的入库数 + Integer val = (Integer) depositoryAllNameAndId.get(key); + Double depositoryRecordByDateByIn = depositoryRecordService.findDepositoryRecordByDate(days.get(i), days.get(i - 1), 1, val); + Double depositoryRecordByDateByOut = depositoryRecordService.findDepositoryRecordByDate(days.get(i), days.get(i - 1), 0, val); + result.add(result.get(j++) - depositoryRecordByDateByIn + depositoryRecordByDateByOut); + } + result.remove(0); + Collections.reverse(result); + map.put(key.toString(), ((ArrayList) result).clone()); + result.clear(); + } + return map; + } + + /** + * 获取本周库存容量 + * @param depositoryService + * @param depositoryRecordService + * @return + */ + public static Map getThisWeekInventoryByDName(DepositoryService depositoryService,DepositoryRecordService depositoryRecordService){ + Calendar instance = Calendar.getInstance(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + int weekDay = instance.get(Calendar.DAY_OF_WEEK); + weekDay = weekDay - 1; + // 获取所有仓库名称 + Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(); + Iterator it = depositoryAllNameAndId.keySet().iterator(); + //result用来接收每个仓库每天的库存 + List result = new ArrayList<>(); + // map用来存储仓库与库存的映射 + Map map = new HashMap<>(); + // 只获取当天 + if(weekDay == 1){ + while (it.hasNext()) { + int i; + Object key = it.next(); + Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); + result.add(toDayInventoryByDName); + map.put(key.toString(), ((ArrayList) result).clone()); + result.clear(); + } + }else { + int now = instance.get(Calendar.DAY_OF_WEEK) - 1; + List days = new ArrayList<>(); + instance.add(Calendar.DATE, 1); + days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); + instance.add(Calendar.DATE, -1); + days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); + + while (now - 1 > 0) { + now--; + instance.add(Calendar.DATE, -1); + long format =DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())); + days.add(format); + } + while (it.hasNext()) { + int i; + Object key = it.next(); + int j =0; + Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); + result.add(toDayInventoryByDName); + for (i = days.size() - 1; i > 0; i--) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE,1); + String format = formatter.format(calendar.getTime()); + if(days.get(i - 1).equals(format)){ + continue; + } + Integer val = (Integer) depositoryAllNameAndId.get(key); + Double depositoryRecordByDateByIn = depositoryRecordService.findDepositoryRecordByDate(days.get(i - 1), days.get(i), 1, val); + Double depositoryRecordByDateByOut = depositoryRecordService.findDepositoryRecordByDate(days.get(i - 1), days.get(i), 0, val); + result.add(result.get(j++) - depositoryRecordByDateByIn + depositoryRecordByDateByOut); + } + Collections.reverse(result); + map.put(key.toString(), ((ArrayList) result).clone()); + result.clear(); + } + } + return map; + } + + /** + * 获取之前各月的库存容量 + * @param depositoryService + * @param depositoryRecordService + * @return + */ + public static List getBeforeInventoryByMonth(DepositoryService depositoryService,DepositoryRecordService depositoryRecordService){ + List depositoryAll = depositoryService.findDepositoryAll(); + Map previousMonth = getPreviousMonth(); + List months = (List) previousMonth.get("months"); + List sourceList = (List) previousMonth.get("sourceList"); + Calendar instance = Calendar.getInstance(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + instance.add(Calendar.MONTH, 1); + instance.set(Calendar.DATE, 1); + List result = new ArrayList<>(); + String month = formatter.format(instance.getTime()); + for (int i = 0; i < depositoryAll.size(); i++) { + result.add(depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname())); + ((Map) sourceList.get(0)).put(depositoryAll.get(i).getDname(), result.get(i)); + } + + for (int num = 0; num < months.size() - 1; num++) { + int k = 0; + for (int j = 0; j < depositoryAll.size(); j++) { + // 获取该仓库本月库存 + Map parmIn = new HashMap<>(); + Map parmOut = new HashMap<>(); + // 获取每月入库总额 + parmIn.put("type", 1); + parmIn.put("state", "已入库"); + parmIn.put("depository_id",depositoryAll.get(j).getId()); + parmIn.put("start", months.get(num + 1)); + parmIn.put("end", months.get(num)); + // 获取每月出库总额 + parmOut.put("type", 2); + parmOut.put("state", "已出库"); + parmOut.put("depository_id",depositoryAll.get(j).getId()); + parmOut.put("start", months.get(num + 1)); + parmOut.put("end", months.get(num)); + Double wareHouseInCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmIn); + Double wareHouseOutCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmOut); + Double wareHouseCount = result.get(k++) - wareHouseInCountByMonth + wareHouseOutCountByMonth; + result.add(wareHouseCount); + ((Map) sourceList.get(num)).put(depositoryAll.get(j).getDname(), wareHouseCount); + } + for (int i = 0; i < depositoryAll.size(); i++) { + result.remove(0); + } +// Double last = result.get(result.size() - 1); +// result.clear(); +// result.add(last); + } + for (int i = 0; i < depositoryAll.size(); i++) { + ((Map) sourceList.get(0)).put(depositoryAll.get(i).getDname(), depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname())); + } + List barSource = new ArrayList<>(); + barSource.add("month"); + for (int i = 0; i < depositoryAll.size(); i++) { + barSource.add(depositoryAll.get(i).getDname()); + } + sourceList.add(barSource); + return sourceList; + } + + /** + * 获取之前个月的库存给地图数据 + * @param depositoryService + * @param depositoryRecordService + * @return + */ + public static Map getBeforeInventoryOnMap(DepositoryService depositoryService,DepositoryRecordService depositoryRecordService){ + // 中国地图数据 + // ['product', '3月', '4月', '5月', '6月', '7月', '8月'], + // ['电子产品类', 41.1, 30.4, 65.1, 53.3, 83.8, 98.7], + Map mapData = new HashMap<>(); + List mapDataList = new ArrayList<>(); + Map previousMonth = getPreviousMonth(); + List months = (List) previousMonth.get("months"); + List sourceList = (List) previousMonth.get("sourceList"); + ArrayList title = new ArrayList<>(); + List depositoryAll = depositoryService.findDepositoryAll(); + title.add("depository"); + for (int i = sourceList.size() - 1; i >= 0; i--) { + title.add(((Map) sourceList.get(i)).get("month")); + } + Calendar instance1 = Calendar.getInstance(); + instance1.add(Calendar.MONTH, 1); + instance1.set(Calendar.DATE, 1); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String month = formatter.format(instance1.getTime()); + mapDataList.add(title); + for (int i = 0; i < depositoryAll.size(); i++) { + List productData = new ArrayList<>(); + productData.add(depositoryAll.get(i).getDname()); + productData.add(depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname())); + int k = 1; + for (int j = 0; j < months.size() - 1; j++) { + Map parmIn = new HashMap<>(); + Map parmOut = new HashMap<>(); + parmIn.put("type", 1); + parmIn.put("state", "已入库"); + parmIn.put("depository_id",depositoryAll.get(i).getId()); + parmIn.put("start", months.get(j + 1)); + parmIn.put("end", months.get(j)); + parmIn.put("dname", depositoryAll.get(i).getDname()); + parmOut.put("type",2); + parmOut.put("state", "已出库"); + parmOut.put("depository_id",depositoryAll.get(i).getId()); + parmOut.put("start", months.get(j + 1)); + parmOut.put("end", months.get(j)); + parmOut.put("dname", depositoryAll.get(i).getDname()); + Double wareHouseInCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmIn); + Double wareHouseOutCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmOut); + Double wareHouseCount = (Double) productData.get(k++) - wareHouseInCountByMonth + wareHouseOutCountByMonth; + productData.add(wareHouseCount); + } + List result = new ArrayList<>(); + result.add(productData.get(0)); + for (int j = productData.size() - 2; j > 0;j--) { + result.add(productData.get(j)); + } +// mapDataList.add(((ArrayList) productData).clone()); + mapDataList.add(result); + productData.clear(); + } + mapData.put("mapDataList", mapDataList); + return mapData; + } + + /** + * 根据条件查询仓库 + * + * @param map + * @return + */ + @GetMapping("/warehouseRecord") + public RestResponse findDepositoryRecordByCondition(@RequestParam Map map) { + List list = depositoryService.findDepositoryRecordPByCondition(map); + return new RestResponse(list, depositoryService.findCountByCondition(map), 200); + } + + /** + * 根据父级编号获取所有仓库 + * @param parentId + * @return + */ + @GetMapping("/allWarehouseByParent") + public RestResponse findDepositoryByNoParent(@RequestParam(value = "parentId",required = false) String parentId){ + Map param = new HashMap<>(); + if (parentId == null) { + parentId = "0"; + } + param.put("parentId",parentId); + List list = depositoryService.findDepositoryRecordPByCondition(param); + Map administration = findAdministration(); + List administrationPList = (List) administration.get("administrationPList"); + Integer total = (Integer) administration.get("total"); + for (int i = 0; i < list.size(); i++) { + for (int j = 0; j < administrationPList.size(); j++) { + + if(list.get(i).getCid().compareTo(administrationPList.get(j).getId()) == 0){ + list.get(i).setCname(administrationPList.get(j).getName()); + break; + } + } + } + return new RestResponse(list,total,200); + } + + + /** + * 获取当前行政组织 + * @return + */ + public static Map findAdministration(){ + Map map = new HashMap<>(); + String url = "http://172.20.2.87:39168/org/govlist"; + String superior = "313"; + map.put("superior",superior); + map.put("state",1); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url,paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + Map result = new HashMap(); + List administrationPList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Administration administration = JSONObject.toJavaObject((JSONObject)list.get(i), Administration.class); + AdministrationP administrationP = new AdministrationP(administration); + administrationPList.add(administrationP); + } + result.put("administrationPList",administrationPList); + result.put("total",total); + return result; + } + + /** + * 彻底删除仓库记录(硬删除) + * @param map + * @return + */ + @PostMapping("/realDeleteDepository") + public RestResponse realDeleteDepository(@RequestBody Map map){ + if (map.containsKey("id")){ + Integer id= ObjectFormatUtil.toInteger(map.get("id")); + new Thread(new Runnable() { + @Override + public void run() { + RealDeleteSonDepository(id.toString()); + } + }).start(); + return CrudUtil.deleteHandle(depositoryService.deleteDepositoryRecordById(id),1); + }else if (map.containsKey("ids")){ + List ids=(List) map.get("ids"); + for (int j = 0; j < ids.size(); j++) { + String id = ids.get(j).toString(); + new Thread(new Runnable() { + @Override + public void run() { + RealDeleteSonDepository(id); + } + }).start(); + } + return CrudUtil.deleteHandle(depositoryService.deleteDepositoryRecordByIds(ids),ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + + /** + * 删除所有子仓库信息(硬删除) + * @param parentId + */ + public void RealDeleteSonDepository(String parentId){ + Map param = new HashMap<>(); + param.put("parentId",parentId); + // 获取当前仓库所有子仓库 + List depositoryRecordPByCondition = depositoryService.findDepositoryRecordPByCondition(param); + for (int i = 0; i < depositoryRecordPByCondition.size(); i++) { + Integer id = depositoryRecordPByCondition.get(i).getId(); // 获取当前仓库id + RealDeleteSonDepository(id.toString()); // 递归查询仓库 + depositoryService.deleteDepositoryRecordById(id); // 删除仓库 + } + } + + /** + * 插入一条仓库记录 + * + * @param map + * @return + */ + @PostMapping("/depository") + public RestResponse insertDepository(@RequestBody Map map) { + return CrudUtil.postHandle(depositoryService.insertDepository(map), 1); + } + + /** + * 根据主键删除仓库记录 + * + * @param map + * @return + */ + @PostMapping("/depository_del") + public RestResponse deleteDepository(@RequestBody Map map) { + if (map.containsKey("id")) { + Integer id = ObjectFormatUtil.toInteger(map.get("id")); +// UpdateSonState(id.toString(),3,true); 修改为删除状态 + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonState(id.toString(),3,true); + } + }).start(); + return CrudUtil.deleteHandle(depositoryService.changeStateToDeletedById(id), 1); + + } else if (map.containsKey("ids")) { + List ids = (List) map.get("ids"); + for (int i = 0; i < ids.size(); i++) { + String id = ids.get(i).toString(); + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonState(id,3,true); + } + }).start(); + } + return CrudUtil.deleteHandle(depositoryService.changeStateToDeletedByIds(ids), ids.size()); + } else { + throw new MyException("所需请求参数缺失!"); + } + } + + /** + * 修改仓库信息 + * + * @param map + * @return + */ + @PostMapping("/depository_edit") + public RestResponse updateDepository(@RequestBody Map map) { + if (map.containsKey("state")) { + map.put("state", 1); + } else { + map.put("state", 2); + } + return CrudUtil.postHandle(depositoryService.updateDepository(map), 1); + } + + /** + * 修改仓库状态 + * @param map + * @return + */ + @PostMapping("/EditDepositoryState") + public RestResponse EditDepositoryState(@RequestBody Map map){ + if (map.containsKey("state")) { + map.put("state", 1); + } else { + map.put("state", 2); + } + int state = ((int)map.get("state")); + String id = (String) map.get("id"); + if(state == 2){ + if(map.containsKey("envelop")){ + // 封库 + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonState(id,state,true); + } + }).start(); + }else { + // 禁用仓库 + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonState(id, state, false); + } + }).start(); + } + }else if(state == 1){ // 如果是启用仓库,则只启用当前仓库下的物品 + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonMaterialState(id,state); + } + }).start(); + } + return CrudUtil.postHandle(depositoryService.updateDepository(map), 1); + } + + /** + * 修改所有子仓库状态 + * @param parentId + */ + public void UpdateSonState(String parentId,Integer state,boolean envelop){ + Map param = new HashMap<>(); + param.put("parentId",parentId); + // 获取当前仓库所有子仓库 + List depositoryRecordPByCondition = depositoryService.findDepositoryRecordPByCondition(param); + if(envelop){ + // 将当前仓库下的产品状态改为禁用 + UpdateSonMaterialState(parentId,state); + } + for (int i = 0; i < depositoryRecordPByCondition.size(); i++) { + Depository depository = depositoryRecordPByCondition.get(i); + int depositoryId = depository.getId(); + Map newMap = new HashMap<>(); + newMap.put("parentId",depositoryId); + UpdateSonState(String.valueOf(depositoryId),state,envelop); + Map map = new HashMap<>(); + map.put("id",depositoryId); + map.put("state",state); + depositoryService.updateStateByParam(map); + } + } + + /** + * 修改当前仓库下的材料状态 + * @param parentId + * @param state + */ + public void UpdateSonMaterialState(String parentId,Integer state){ + Map param = new HashMap<>(); + param.put("depositoryId",parentId); + List materialPByCondition = materialService.findMaterialPByCondition(param); + for (int i = 0; i < materialPByCondition.size(); i++) { + MaterialP materialP = materialPByCondition.get(i); + Map map = new HashMap<>(); + map.put("id",materialP.getId()); + map.put("state",state); + materialService.updateStateByParam(map); + } + + } + + + /** + * 动态绘制图像 + * + * @return + */ + @RequestMapping(value = "/layui/echart_back", method = RequestMethod.GET) + @ResponseBody + public Map learnLayuiAndEchart_back(@RequestParam("type") String type, @RequestParam(value = "last", required = false) String last) { + // 设置展示天数 + List show_weekday = new ArrayList(); + show_weekday.add("周一"); + show_weekday.add("周二"); + show_weekday.add("周三"); + show_weekday.add("周四"); + show_weekday.add("周五"); + show_weekday.add("周六"); + show_weekday.add("周日"); + + // 获取各仓库名称以及id + Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(); + Iterator it = depositoryAllNameAndId.keySet().iterator(); + // 仓库名称列表 + List depositoryName = new ArrayList<>(); + // 各仓库对应入库数目 + Map yesterdayData = new HashMap<>(); + // 每天各仓库入库数目 + Map show_data = new HashMap<>(); + // 各仓库当前库存数目 + Map todayInventory = new HashMap<>(); + //获取获取系统的当前日历对象 + Calendar instance = Calendar.getInstance(); + // 获取昨天数据标志位 + boolean flag = true; + // 获取今天是周几 + int weekDay = instance.get(Calendar.DAY_OF_WEEK); + weekDay = weekDay - 1; // 具体周几 + // 获取日期 + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + // 如果是获取上周 + if (last != null) { + List days = getLastTimeInterval(); + List drCountbyDrName = new ArrayList<>(); + while (it.hasNext()) { + int i; + Object key = it.next(); + for (i = days.size() - 1; i > 0; i--) { + // 遍历 Map并计算各仓库的入库数 + if (i == days.size() - 1) { + depositoryName.add(key.toString()); + } + Integer val = (Integer) depositoryAllNameAndId.get(key); + Double depositoryRecordByDateAndType = depositoryRecordService.findDepositoryRecordByDate(days.get(i), days.get(i - 1), Integer.parseInt(type), val); + drCountbyDrName.add(depositoryRecordByDateAndType); + if (i == 2 && flag) { + yesterdayData.put(key.toString(), depositoryRecordByDateAndType); + } + } + show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); + drCountbyDrName.clear(); + } + } else { + if (weekDay == 1) { + //只获取今天 + Long now = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())); + instance.add(Calendar.DATE, 1); + Long tomorrow = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())); + instance.add(Calendar.DATE, -2); + String yesterday = formatter.format(instance.getTime()); + while (it.hasNext()) { + // 遍历 Map并计算各仓库的入库数 + Object key = it.next(); + depositoryName.add(key.toString()); + Integer val = (Integer) depositoryAllNameAndId.get(key); + Double depositoryRecordByDate = depositoryRecordService.findDepositoryRecordByDate(tomorrow,now , Integer.parseInt(type), val); + Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); + todayInventory.put(key.toString(),toDayInventoryByDName); + yesterdayData.put(key.toString(), depositoryRecordByDate); + List drCountbyDrName = new ArrayList<>(); + drCountbyDrName.add(depositoryRecordByDate); + show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); + } + } else { + int now = instance.get(Calendar.DAY_OF_WEEK) - 1; + List days = new ArrayList<>(); + instance.add(Calendar.DATE, 1); + days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); + instance.add(Calendar.DATE, -1); + days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); + while (now - 1 > 0) { + now--; + instance.add(Calendar.DATE, -1); + Long format = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())); + days.add(format); + } + List drCountbyDrName = new ArrayList<>(); + while (it.hasNext()) { + int i; + Object key = it.next(); + Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); + todayInventory.put(key.toString(),toDayInventoryByDName); + for (i = days.size() - 1; i > 0; i--) { + // 遍历 Map并计算各仓库的入库数 + if (i == days.size() - 1) { + depositoryName.add(key.toString()); + } + Integer val = (Integer) depositoryAllNameAndId.get(key); + Double depositoryRecordByDate = depositoryRecordService.findDepositoryRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val); + drCountbyDrName.add(depositoryRecordByDate); + if (i == 2 && flag) { + yesterdayData.put(key.toString(), depositoryRecordByDate); + } + } + show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); + drCountbyDrName.clear(); + } + } + } + // 获取本月及之前月份各种类入/出库总量 + List materialTypeAll = materialTypeService.findMaterialTypeAll(); + Map previousMonth = getPreviousMonth(); + List months = (List) previousMonth.get("months"); + List sourceList = (List) previousMonth.get("sourceList"); + for (int num = 0; num < months.size() - 1; num++) { + for (int j = 0; j < materialTypeAll.size(); j++) { + Map parm = new HashMap<>(); + parm.put("type", Integer.parseInt(type)); + if (Integer.parseInt(type) == 1) { + parm.put("state", "已入库"); + } else if (Integer.parseInt(type) == 2) { + parm.put("state", "已出库"); + } + parm.put("start", months.get(num + 1)); + parm.put("end", months.get(num)); + parm.put("tname", materialTypeAll.get(j).getTname()); + Double materialCountByMonth = depositoryRecordService.findMaterialCountByMonth(parm); + ((Map) sourceList.get(num)).put(materialTypeAll.get(j).getTname(), materialCountByMonth); + } + } + + List barSource = new ArrayList<>(); + barSource.add("month"); + for (int i = 0; i < materialTypeAll.size(); i++) { + barSource.add(materialTypeAll.get(i).getTname()); + } + sourceList.add(barSource); + // 中国地图数据 + // ['product', '3月', '4月', '5月', '6月', '7月', '8月'], + // ['电子产品类', 41.1, 30.4, 65.1, 53.3, 83.8, 98.7], + Map mapData = new HashMap<>(); + List mapDataList = new ArrayList<>(); + Map previousMonth1 = getPreviousMonth(); + List months1 = (List) previousMonth1.get("months"); + List sourceList1 = (List) previousMonth1.get("sourceList"); + ArrayList title = new ArrayList<>(); + title.add("product"); + + for (int i = sourceList1.size() - 1; i >= 0; i--) { + title.add(((Map) sourceList1.get(i)).get("month")); + } + mapDataList.add(title); + for (int i = 0; i < materialTypeAll.size(); i++) { + List productData = new ArrayList<>(); + productData.add(materialTypeAll.get(i).getTname()); + for (int j = months1.size() - 1; j > 0; j--) { + Map parm = new HashMap<>(); + parm.put("type", Integer.parseInt(type)); + if (Integer.parseInt(type) == 1) { + parm.put("state", "已入库"); + } else if (Integer.parseInt(type) == 2) { + parm.put("state", "已出库"); + } + parm.put("start", months1.get(j)); + parm.put("end", months1.get(j - 1)); + parm.put("tname", materialTypeAll.get(i).getTname()); + Double materialCountByMonth = depositoryRecordService.findMaterialCountByMonth(parm); + productData.add(materialCountByMonth); + } + mapDataList.add(((ArrayList) productData).clone()); + productData.clear(); + } + + mapData.put("mapDataList", mapDataList); + + // 封装 展示数据 + Map depository_data = new LinkedHashMap(); + // 构造对应格式 + depository_data.put("week", show_weekday); + depository_data.put("data", show_data); + depository_data.put("yesterdayData", yesterdayData); + depository_data.put("todayInventory",todayInventory); + depository_data.put("sourceList", sourceList); + depository_data.put("mapData", mapData); + depository_data.put("sourceListByMonth",getBeforeInventoryByMonth(depositoryService,depositoryRecordService)); + depository_data.put("BeforeInventory",getBeforeInventoryByDName(depositoryService,depositoryRecordService)); + depository_data.put("ThisWeekInventory",getThisWeekInventoryByDName(depositoryService,depositoryRecordService)); + depository_data.put("MapInventory",getBeforeInventoryOnMap(depositoryService,depositoryRecordService)); + // 封装 最终数据 + Map data = new LinkedHashMap(); + data.put("depository_data", depository_data); + data.put("depository_name", depositoryName); + + // 返回结果 + Map resMap = new LinkedHashMap(); + resMap.put("code", 0); + resMap.put("data", data); + resMap.put("msg", "成功获取到图表数据!"); + return resMap; + } + + /** + * 根据材料编号查询所在仓库 + * @param mid + * @return + */ + @GetMapping("/find_depository") + public RestResponse FindDepositoryByMid(@RequestParam("mid") String mid){ + Material materialById = materialService.findMaterialById(Integer.parseInt(mid)); + Map param = new HashMap<>(); + param.put("depositoryId", materialById.getDepositoryId()); + List depositoryId = depositoryService.findDepositoryRecordPByCondition(param); + return new RestResponse(depositoryId.get(0),1, 200); + } + + /** + * 根据材料名称查询所在仓库 + * @param mname + * @return + */ + @GetMapping("/findDepositoryByMname") + public RestResponse FindDepositoryByMname(@RequestParam("mname") String mname){ + return null; + } + + + /** + * 查找仓库内是否有物品 + * @param depositoryId + * @return + */ + @GetMapping("/findMaterialByDepository") + public RestResponse FindMaterialByDepository(@RequestParam("depositoryId") String depositoryId){ + Boolean allSonDepository = findAllSonDepository(depositoryId); + return new RestResponse(allSonDepository); + } + + /** + * 查询该仓库是否有其他关联信息 + * @param map + * @return + */ + @PostMapping("/findRelevancyByDepository") + public RestResponse FindRelevancyByDepository(@RequestBody Map map){ + Boolean allSonDepositoryOfRelevancy = false; + if(map.containsKey("id")){ + Integer depositoryId = (Integer) map.get("id"); + allSonDepositoryOfRelevancy = findAllSonDepositoryOfRelevancy(depositoryId.toString()); + }else if(map.containsKey("ids")){ + List ids = (List) map.get("ids"); + for (int i = 0; i < ids.size(); i++) { + allSonDepositoryOfRelevancy |= findAllSonDepositoryOfRelevancy(ids.get(i).toString()); + if(allSonDepositoryOfRelevancy){ + break; + } + } + } + else { + throw new MyException("所需请求参数缺失!"); + } + return new RestResponse(allSonDepositoryOfRelevancy); + } + + /** + * 根据父级编号查询所有仓库物品 + * @param parentid + * @return + */ + public Boolean findAllSonDepository(String parentid){ + Map param = new HashMap<>(); + param.put("parentId",parentid); + param.put("state",1); + boolean materialByDepository = findMaterialByDepository(parentid); + if(materialByDepository){ + return true; + } + List depositoryRecordPByCondition = depositoryService.findDepositoryRecordPByCondition(param); + for (int i = 0; i < depositoryRecordPByCondition.size(); i++) { + if(!findMaterialByDepository(depositoryRecordPByCondition.get(i).getId().toString())){ + findAllSonDepository(depositoryRecordPByCondition.get(i).getId().toString()); + }else{ + return true; + } + } + return false; + } + + /** + * 根据父级编号查询所有关联信息 + * @param parentid + * @return + */ + public Boolean findAllSonDepositoryOfRelevancy(String parentid) { + Map param = new HashMap<>(); + param.put("parentId",parentid); + param.put("state",1); + boolean materialByDepository = findMaterialByDepository(parentid); + Boolean depositoryRecord = findDepositoryRecord(parentid); + if(materialByDepository || depositoryRecord){ + return true; + } + List depositoryRecordPByCondition = depositoryService.findDepositoryRecordPByCondition(param); + for (int i = 0; i < depositoryRecordPByCondition.size(); i++) { + String depositoryId = depositoryRecordPByCondition.get(i).getId().toString(); + if(!findMaterialByDepository(depositoryId) && !findDepositoryRecord(depositoryId)){ + findAllSonDepositoryOfRelevancy(depositoryRecordPByCondition.get(i).getId().toString()); + }else{ + return true; + } + } + return false; + } + + /** + * 根据仓库编号判断该仓库是否有物品 + * @param parentId + * @return + */ + public boolean findMaterialByDepository(String parentId){ + Map param = new HashMap<>(); + param.put("state",1); + param.put("depositoryId",parentId); + List materialPByCondition = materialService.findMaterialPByCondition(param); + if(materialPByCondition.size() > 0){ + return true; + } + return false; + } + + /** + * 根据仓库编号查询与其有关的订单信息 + * @param depositoryId + * @return + */ + public Boolean findDepositoryRecord(String depositoryId){ + Map param = new HashMap<>(); + param.put("depositoryId",depositoryId); + List recordPByCondition = depositoryRecordService.findDepositoryRecordPByCondition(param); + if(recordPByCondition.size() > 0){ + return true; + } + return false; + } + + /** + * 查询当前仓库子仓库 + * @param parentId + * @return + */ + @GetMapping("/findDepositoryByParent") + public RestResponse FindDepositoryByParentId(@RequestParam("parentId") String parentId){ + Map param = new HashMap<>(); + param.put("parentId",parentId); + List depositoryRecordPByCondition = depositoryService.findDepositoryRecordPByCondition(param); + return new RestResponse(depositoryRecordPByCondition, depositoryService.findCountByCondition(param), 200); + } + + @GetMapping("/findManagerByDid") + public RestResponse FindManagerByDid(@RequestParam("did") Integer did){ + List userIdByDid = roleService.findUserIdByDid(did); + List userByPortList = new ArrayList<>(); + for (int i = 0; i < userIdByDid.size(); i++) { + UserByPort userByPort = PageController.FindUserById(userIdByDid.get(i)); + userByPortList.add(userByPort); + } + return new RestResponse(userByPortList, userByPortList.size(), 200); + } + + + @GetMapping("/findPostByCompany") + public RestResponse findPostByCompany(@RequestParam("company") String company){ + List administrationPList = PageController.findCompanyBySuperior(company); + int size = administrationPList.size(); + return new RestResponse(administrationPList,size, 200); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java new file mode 100644 index 00000000..39b3c67d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -0,0 +1,216 @@ +package com.dreamchaser.depository_manage.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.entity.*; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.*; +import com.dreamchaser.depository_manage.security.bean.UserToken; +import com.dreamchaser.depository_manage.service.CompanyService; +import com.dreamchaser.depository_manage.service.DepositoryRecordService; +import com.dreamchaser.depository_manage.service.DepositoryService; +import com.dreamchaser.depository_manage.service.MaterialService; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.DateUtil; +import com.dreamchaser.depository_manage.utils.HttpUtils; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import netscape.javascript.JSObject; +import org.apache.http.protocol.HTTP; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 仓库记录 + * @author Dreamchaser + */ +@RestController +@RequestMapping(value = "/depositoryRecord") +public class DepositoryRecordController { + @Autowired + private DepositoryRecordService depositoryRecordService; + @Autowired + private DepositoryService depositoryService; + @Autowired + private CompanyService companyService; + + + + @GetMapping("/depositoryRecord") + public RestResponse findDepositoryRecordByCondition(@RequestParam Map map){ + List list=depositoryRecordService.findDepositoryRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + list.get(i).setPrice(list.get(i).getPrice() / 100); + } + return new RestResponse(list,depositoryRecordService.findCountByCondition(map),200); + } + @GetMapping("/myApply") + public RestResponse findDepositoryInAndOutRecordPByCondition(@RequestParam Map map,HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + map.put("applicantId",userToken.getId()); + List applicationInRecordPlist = depositoryRecordService.findApplicationInRecordPByCondition(map); + for (int i = 0; i < applicationInRecordPlist.size(); i++) { + applicationInRecordPlist.get(i).setPrice(applicationInRecordPlist.get(i).getPrice() / 100); + } + List applicationOutRecordPlist = depositoryRecordService.findApplicationOutRecordPByCondition(map); + for (int i = 0; i < applicationOutRecordPlist.size(); i++) { + applicationOutRecordPlist.get(i).setPrice(applicationOutRecordPlist.get(i).getPrice() / 100); + } + Map result = new HashMap<>(); + result.put("applicationIn",applicationInRecordPlist); + result.put("applicationOut",applicationOutRecordPlist); + return new RestResponse(result,result.size(),200); + } + /*@GetMapping("/myApply") + public RestResponse findDepositoryRecordByCondition(@RequestParam Map map,HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + map.put("applicantId",userToken.getId()); + List list=depositoryRecordService.findDepositoryRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + list.get(i).setPrice(list.get(i).getPrice() / 100); + } + return new RestResponse(list,depositoryRecordService.findCountByCondition(map),200); + }*/ + @GetMapping("/myTask") + public RestResponse myTask(@RequestParam Map map,HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + map.put("userId",userToken.getId()); + List myTask = depositoryRecordService.findMyTask(map); + return new RestResponse(myTask + ,depositoryRecordService.findMyTaskOutCount(map),200); + } + @PostMapping("/depositoryRecord") + public RestResponse insertDepositoryRecord(@RequestBody Map map, HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + map.put("applicantId",userToken.getId()); + Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); + Depository depository = depositoryService.findDepositoryRecordById(depositoryId); + return CrudUtil.postHandle(depositoryRecordService.apply(map),1); + + } + + @PostMapping("/applicationIn") + public RestResponse insertApplicationInRecord(@RequestBody Map map, HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + map.put("applicantId",userToken.getId()); + return CrudUtil.postHandle(depositoryRecordService.applicationIn(map),1); + + } + + @GetMapping("/applicationInView") + public RestResponse findApplicationInRecordByCondition(@RequestParam Map map){ + List list = depositoryRecordService.findApplicationInRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + list.get(i).setPrice(list.get(i).getPrice() / 100); + } + return new RestResponse(list,depositoryRecordService.findApplicationInRecordPCountByCondition(map),200); + } + + @GetMapping("/applicationOutView") + public RestResponse findApplicationOutRecordByCondition(@RequestParam Map map){ + List list = depositoryRecordService.findApplicationOutRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + list.get(i).setPrice(list.get(i).getPrice() / 100); + } + return new RestResponse(list,depositoryRecordService.findApplicationOutRecordPCountByCondition(map),200); + } + + + @DeleteMapping("/depositoryRecord") + public RestResponse deleteDepositoryRecord(@RequestBody Map map){ + if (map.containsKey("id")){ + Integer id=ObjectFormatUtil.toInteger(map.get("id")); + return CrudUtil.deleteHandle(depositoryRecordService.deleteDepositoryRecordById(id),1); + }else if (map.containsKey("ids")){ + List ids=(List) map.get("ids"); + return CrudUtil.deleteHandle(depositoryRecordService.deleteDepositoryRecordByIds(ids),ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + @PutMapping("/review") + public RestResponse review(@RequestBody Map map, HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + return CrudUtil.postHandle(depositoryRecordService.review(map,userToken.getId()),1); + } + @PutMapping("/transfer") + public RestResponse transfer(@RequestBody Map map, HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); + map.put("departmenthead",departmentHeadByUser.getId()); + map.put("applicantId",userToken.getId()); + return CrudUtil.postHandle(depositoryRecordService.transferApply(map),1); + } + + @PostMapping("deleteApplicationInRecord") + public RestResponse deleteApplicationInRecord(@RequestBody Map map){ + if (map.containsKey("id")){ + Integer id=ObjectFormatUtil.toInteger(map.get("id")); + return CrudUtil.deleteHandle(depositoryRecordService.deleteApplicationInRecordById(id),1); + }else if (map.containsKey("ids")){ + List ids=(List) map.get("ids"); + return CrudUtil.deleteHandle(depositoryRecordService.deleteApplicationInRecordByIds(ids),ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + + @PostMapping("deleteApplicationOutRecord") + public RestResponse deleteApplicationOutRecord(@RequestBody Map map){ + if (map.containsKey("id")){ + Integer id=ObjectFormatUtil.toInteger(map.get("id")); + return CrudUtil.deleteHandle(depositoryRecordService.deleteApplicationOutRecordById(id),1); + }else if (map.containsKey("ids")){ + List ids=(List) map.get("ids"); + return CrudUtil.deleteHandle(depositoryRecordService.deleteApplicationOutRecordByIds(ids),ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + + @PostMapping("/applicationOut") + public RestResponse insertApplicationOutRecord(@RequestBody Map map, HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + map.put("applicantId",userToken.getId()); + UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); + map.put("departmenthead",departmentHeadByUser.getId()); + return CrudUtil.postHandle(depositoryRecordService.insertApplicationOutRecord(map),1); + } + + + /** + * 获取当前登录用户的部门负责人 + * @param user + * @return + */ + public static UserByPort findDepartmentHeadByUser(UserByPort user){ + String url = "http://172.20.2.87:39168/org/positionlist"; + Integer maindeparment = user.getMaindeparment(); + Map map = new HashMap<>(); + map.put("organization",maindeparment.toString()); + map.put("incharge",1); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Post userPost = JSONObject.toJavaObject((JSONObject) list.get(0), Post.class); + Map param = new HashMap<>(); + param.put("position",userPost.getId()); + UserByPort userByPort = PageController.FindUserByMap(param).get(0); + return userByPort; + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/ExcelController.java b/src/main/java/com/dreamchaser/depository_manage/controller/ExcelController.java new file mode 100644 index 00000000..7c8b8911 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/ExcelController.java @@ -0,0 +1,25 @@ +package com.dreamchaser.depository_manage.controller; + +import com.dreamchaser.depository_manage.service.ExcelService; +import com.dreamchaser.depository_manage.utils.ResultVo; +import org.springframework.beans.factory.annotation.Autowired; +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.RestController; +import org.springframework.web.multipart.MultipartFile; + +/** + * 用于excel导入的控制器 + */ +@RestController +@RequestMapping("/excel") +public class ExcelController { + @Autowired + ExcelService excelService; + + @PostMapping("/importExcel") + public ResultVo importExcel(@RequestParam("file") MultipartFile excel) { + return excelService.importExcel(excel); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java new file mode 100644 index 00000000..856e2f3f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -0,0 +1,89 @@ +package com.dreamchaser.depository_manage.controller; + +import com.dreamchaser.depository_manage.entity.MaterialType; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.MaterialP; +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.service.MaterialService; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ + +@RestController +@RequestMapping("/material") +public class MaterialController { + @Autowired + MaterialService materialService; + + /** + * 根据材料进行查询 + * @param map + * @return + */ + @GetMapping("/material") + public RestResponse findMaterial(@RequestParam Map map){ + List materialPByCondition = materialService.findMaterialPByCondition(map); + return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); + } + + /** + * 添加一条材料记录 + * @param map + * @return + */ + @PostMapping("/material_add") + public RestResponse materialAdd(@RequestBody Map map){ + return CrudUtil.postHandle(materialService.insertMaterial(map), 1); + } + + /** + * 执行删除操作,将状态改为删除 + * @param map + * @return + */ + @PostMapping("/material_del") + public RestResponse deletematerial(@RequestBody Map map){ + if (map.containsKey("id")){ + Integer id= ObjectFormatUtil.toInteger(map.get("id")); + return CrudUtil.deleteHandle(materialService.changeStateToDeletedById(id),1); + }else if (map.containsKey("ids")){ + List ids=(List) map.get("ids"); + return CrudUtil.deleteHandle(materialService.changeStateToDeletedByIds(ids),ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + + /** + * 修改材料信息 + * @param map + * @return + */ + @PostMapping("/material_edit") + public RestResponse updateDepository(@RequestBody Map map){ + if(map.containsKey("state")){ + map.put("state",1); + }else{ + map.put("state",2); + } + return CrudUtil.postHandle(materialService.updateMaterial(map),1); + } + + @PostMapping("realDeleteMaterial") + public RestResponse RealDeleteMaterial(@RequestBody Map map){ + if(map.containsKey("id")){ + Integer id = (Integer) map.get("id"); + return CrudUtil.deleteHandle(materialService.deleteMaterialById(id),1); + }else{ + throw new MyException("所需请求参数缺失!"); + } + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java new file mode 100644 index 00000000..0fbd6379 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java @@ -0,0 +1,298 @@ +package com.dreamchaser.depository_manage.controller; + +import com.dreamchaser.depository_manage.entity.Depository; +import com.dreamchaser.depository_manage.entity.MaterialType; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.MaterialP; +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.service.MaterialService; +import com.dreamchaser.depository_manage.service.MaterialTypeService; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/materialType") +public class MaterialTypeController { + @Autowired + MaterialTypeService materialTypeService; + + @Autowired + MaterialService materialService; + + /** + * 插入一条新材料类型 + * @param map + * @return + */ + @PostMapping("/materialType_add") + public RestResponse insertMaterialType(@RequestBody Map map){ + return CrudUtil.postHandle(materialTypeService.insertMaterialType(map),1); + } + + /** + * 根据条件查询材料类型 + * @param map + * @return + */ + @GetMapping("/materialTypeRecord") + public RestResponse findmaterialTypeRecordByCondition(@RequestParam Map map){ + List list=materialTypeService.findMaterialTypeByCondition(map); + return new RestResponse(list,materialTypeService.findMaterialTypeCountByCondition(map),200); + } + + + /** + * 根据父级查询所有材料类型 + * @param parentId + * @return + */ + @GetMapping("/allMaterialTypeByParent") + public RestResponse findMaterialTypeByNoParent(@RequestParam(value = "parentId",required = false) String parentId){ + Map param = new HashMap<>(); + if (parentId == null) { + parentId = "0"; + } + param.put("parentId",parentId); + List list = materialTypeService.findMaterialTypeByCondition(param); + return new RestResponse(list,materialTypeService.findMaterialTypeCountByCondition(param),200); + } + + + /** + * 彻底删除材料类别 + * @param map + * @return + */ + @PostMapping("/realDeleteMaterialType") + public RestResponse realDeleteMaterialType(@RequestBody Map map){ + if (map.containsKey("id")){ + Integer id= ObjectFormatUtil.toInteger(map.get("id")); + new Thread(new Runnable() { + @Override + public void run() { + RealDeleteSonDepository(id.toString()); + } + }).start(); + return CrudUtil.deleteHandle(materialTypeService.deleteMaterialTypeById(id),1); + }else if (map.containsKey("ids")){ + List ids=(List) map.get("ids"); + for (int i = 0; i < ids.size(); i++) { + String id = ids.get(i).toString(); + new Thread(new Runnable() { + @Override + public void run() { + RealDeleteSonDepository(id); + } + }).start(); + } + return CrudUtil.deleteHandle(materialTypeService.deleteMaterialTypeByIds(ids),ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + + /** + * 删除所有子材料类型信息(硬删除) + * @param parentId + */ + public void RealDeleteSonDepository(String parentId){ + Map param = new HashMap<>(); + param.put("parentId",parentId); + // 获取当前仓库所有子仓库 + List materialTypeByCondition = materialTypeService.findMaterialTypeByCondition(param); + for (int i = 0; i < materialTypeByCondition.size(); i++) { + Integer id = materialTypeByCondition.get(i).getId(); // 获取当前材料id + RealDeleteSonDepository(id.toString()); // 递归查询材料类型 + materialTypeService.deleteMaterialTypeById(id); // 删除材料类型 + } + } + + /** + * 根据主键删除材料类型 + * @param map + * @return + */ + @PostMapping("/materialType_del") + public RestResponse deleteMaterialType(@RequestBody Map map){ + if (map.containsKey("id")){ + Integer id= ObjectFormatUtil.toInteger(map.get("id")); + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonState(id.toString(),3); + } + }).start(); + return CrudUtil.deleteHandle(materialTypeService.changeStateToDeletedById(id),1); + }else if (map.containsKey("ids")){ + List ids=(List) map.get("ids"); + for (int i = 0; i < ids.size(); i++) { + String id = ids.get(i).toString(); + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonState(id,3); + } + }).start(); + } + return CrudUtil.deleteHandle(materialTypeService.changeStateToDeletedByIds(ids),ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + + /** + * 修改材料类型 + * @param map + * @return + */ + @PostMapping("/materialType_edit") + public RestResponse updateMaterialType(@RequestBody Map map){ + if(map.containsKey("state")){ + map.put("state",1); + }else{ + map.put("state",2); + } + return CrudUtil.postHandle(materialTypeService.updateMaterialType(map),1); + } + + /** + * 查找该类型下内是否有物品 + * @param map + * @return + */ + @PostMapping("/findMaterialByMaterialTypeId") + public RestResponse findMaterialByMaterialTypeId(@RequestBody Map map){ + Boolean allSonDepository = false; + if(map.containsKey("id")){ + Integer materialTypeId = (Integer) map.get("id"); + allSonDepository = findAllSonMaterialType(materialTypeId.toString()); + }else if(map.containsKey("ids")){ + List ids = (List) map.get("ids"); + for (int i = 0; i < ids.size(); i++) { + allSonDepository |= findAllSonMaterialType(ids.get(i).toString()); + if(allSonDepository){ + break; + } + } + } + else { + throw new MyException("所需请求参数缺失!"); + } + return new RestResponse(allSonDepository); + } + + + /** + * 根据父级类型编号查询所有子类型 + * @param parentid + * @return + */ + public Boolean findAllSonMaterialType(String parentid){ + Map param = new HashMap<>(); + param.put("parentId",parentid); + param.put("state",1); + boolean materialByMaterialType = findMaterialByMaterialType(parentid); + if(materialByMaterialType){ + return true; + } + List materialTypeByCondition = materialTypeService.findMaterialTypeByCondition(param); + for (int i = 0; i < materialTypeByCondition.size(); i++) { + if(!findMaterialByMaterialType(materialTypeByCondition.get(i).getId().toString())){ + findAllSonMaterialType(materialTypeByCondition.get(i).getId().toString()); + }else{ + return true; + } + } + return false; + } + + /** + * 根据类型编号判断该类型下是否有物品 + * @param parentId + * @return + */ + public boolean findMaterialByMaterialType(String parentId){ + Map param = new HashMap<>(); + param.put("materialTypeId",parentId); + param.put("state",1); + List materialPByCondition = materialService.findMaterialPByCondition(param); + if(materialPByCondition.size() > 0){ + return true; + } + return false; + } + + /** + * 修改材料类型状态 + * @param map + * @return + */ + @PostMapping("/EditMaterialTypeState") + public RestResponse EditMaterialTypeState(@RequestBody Map map){ + if (map.containsKey("state")) { + map.put("state", 1); + } else { + map.put("state", 2); + } + int state = ((int)map.get("state")); + String id = (String) map.get("id"); + new Thread(new Runnable() { + @Override + public void run() { + UpdateSonState(id, state); + } + }).start(); + return CrudUtil.postHandle(materialTypeService.updateMaterialType(map), 1); + } + + /** + * 修改所有类型状态 + * @param parentId + * @param state + */ + public void UpdateSonState(String parentId,Integer state){ + Map param = new HashMap<>(); + param.put("parentId",parentId); + // 将当前类型下的物品变为禁用 + UpdateSonMaterialState(parentId,state); + // 获取当前类型所有子类型 + List materialTypeByCondition = materialTypeService.findMaterialTypeByCondition(param); + for (int i = 0; i < materialTypeByCondition.size(); i++) { + MaterialType materialType = materialTypeByCondition.get(i); + int materialTypeId = materialType.getId(); + Map newMap = new HashMap<>(); + newMap.put("parentId",materialTypeId); + UpdateSonState(String.valueOf(materialTypeId),state); + Map map = new HashMap<>(); + map.put("id",materialTypeId); + map.put("state",state); + materialTypeService.updateStateByParam(map); + } + } + + /** + * 修改当前材料类型状态 + * @param parentId + * @param state + */ + public void UpdateSonMaterialState(String parentId,Integer state){ + Map param = new HashMap<>(); + param.put("materialTypeId",parentId); + List materialPByCondition = materialService.findMaterialPByCondition(param); + for (int i = 0; i < materialPByCondition.size(); i++) { + MaterialP materialP = materialPByCondition.get(i); + Map map = new HashMap<>(); + map.put("id",materialP.getId()); + map.put("state",state); + materialService.updateStateByParam(map); + } + } + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/NoticeController.java b/src/main/java/com/dreamchaser/depository_manage/controller/NoticeController.java new file mode 100644 index 00000000..2875e8fa --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/NoticeController.java @@ -0,0 +1,27 @@ +package com.dreamchaser.depository_manage.controller; + +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.service.NoticeService; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author Dreamchaser + */ +@RestController +public class NoticeController { + @Autowired + private NoticeService noticeService; + @PostMapping("/notice") + public RestResponse addNotice(@RequestBody Map map){ + return CrudUtil.postHandle(noticeService.addNotice(map),1); + } + @GetMapping("/notices") + public RestResponse findNotices(@RequestParam Map map){ + return new RestResponse(noticeService.findNoticeByCondition(map)); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java new file mode 100644 index 00000000..3d93806e --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -0,0 +1,1063 @@ +package com.dreamchaser.depository_manage.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.entity.*; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.*; +import com.dreamchaser.depository_manage.security.bean.UserToken; +import com.dreamchaser.depository_manage.service.*; +import com.dreamchaser.depository_manage.utils.DateUtil; +import com.dreamchaser.depository_manage.utils.HttpUtils; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.apache.http.protocol.HTTP; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 专门用来展示页面的controller + * + * @author Dreamchaser + */ +@Controller +public class PageController { + + @Autowired + private MaterialTypeService materialTypeService; + @Autowired + private DepositoryService depositoryService; + @Autowired + private UserService userService; + @Autowired + private DepositoryRecordService depositoryRecordService; + @Autowired + private NoticeService noticeService; + + @Autowired + private MaterialService materialService; + + @Autowired + private AccessAddressService accessAddressService; + + @Autowired + private CompanyService companyService; + + @Autowired + private RoleService roleService; + + @GetMapping("/login") + public ModelAndView login() { + String url = "http://172.20.2.87:6666/base/captcha"; + ModelAndView mv = new ModelAndView(); + JSONObject param = new JSONObject(); + String post = null; + try { + post = HttpUtils.send(url, param, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + String picPath = (String) data.get("picPath"); + String captchaid = (String) data.get("captchaid"); + mv.addObject("picPath", picPath); + mv.addObject("captchaid", captchaid); + mv.setViewName("pages/user/login"); + return mv; + } + + + @GetMapping("/index") + public ModelAndView index(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("index"); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + mv.addObject("user", userToken); + return mv; + } + + /** + * 获取所有菜单 + * + * @param uid + * @return + */ + @RequestMapping(value = "/index/menus", method = RequestMethod.GET) + @ResponseBody + public Map index_menus(@RequestParam("uid") String uid) { + //定义链接地址 + String url = "http://172.20.2.87:6666/system_authorizing/obtain_authorization"; + Map param = new HashMap<>(); + param.put("system", "cangchu"); + String jsonString = JSONObject.toJSONString(param); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray powerid = (JSONArray) data.get("powerid"); + List stringList = JSONObject.parseArray(powerid.toJSONString(), String.class); + List accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList); + // 获取顶级菜单 + List menusByNoParent = new ArrayList<>(); + for (int i = 0; i < accessToAddressByList.size(); i++) { + if (accessToAddressByList.get(i).getMenuparent() == 0) { + menusByNoParent.add(accessToAddressByList.get(i)); + } + } + //定义首页 + Map home = new HashMap<>(); + Map homeInfo = new HashMap<>(); + homeInfo.put("title", "首页"); + homeInfo.put("href", "/welcome"); + home.put("homeInfo", homeInfo); + + //定义logo + Map logo = new HashMap<>(); + Map logoInfo = new HashMap<>(); + logoInfo.put("title", ""); + logoInfo.put("image", "static/images/logo_back.png"); + logoInfo.put("href", ""); + logo.put("logoInfo", logoInfo); + //定义菜单 + List allMenus = new ArrayList<>(); + for (int i = 0; i < menusByNoParent.size(); i++) { + // 获取所有二级菜单 + AccesstoAddress menusparent = menusByNoParent.get(i); + Map menu = MenuConstructor(menusparent); + List accessstoAddressByParent = childAddress(accessToAddressByList, menusparent); + List menu_childs = new ArrayList<>(); + for (int j = 0; j < accessstoAddressByParent.size(); j++) { + // 二级菜单下的菜单 + AccesstoAddress address = accessstoAddressByParent.get(j); + Map menu_child = MenuConstructor(address); + List menu_childs1 = new ArrayList<>(); + if (address.getIschild() == 1) { + List accessstoAddressByParent1 = childAddress(accessToAddressByList, address); + for (int k = 0; k < accessstoAddressByParent1.size(); k++) { + AccesstoAddress accesstoAddress = accessstoAddressByParent1.get(k); + Map menu_child1 = MenuConstructor(accesstoAddress); + menu_childs1.add(((HashMap) menu_child1).clone()); + menu_child1.clear(); + } + } + menu_child.put("child", ((ArrayList) menu_childs1).clone()); + menu_childs.add(((HashMap) menu_child).clone()); + menu_child.clear(); + } + menu.put("child", menu_childs); + allMenus.add(menu); + } + /*for (int i = 0; i < menusByNoParent.size(); i++) { + Map menu = new HashMap<>(); + menu.put("title",menusByNoParent.get(i).getName()); + menu.put("href",menusByNoParent.get(i).getUrl()); + menu.put("icon",menusByNoParent.get(i).getIcon()); + menu.put("target",menusByNoParent.get(i).getTarget()); + Map map = new HashMap<>(); + map.put("roleId",role); + map.put("menuparent",menusByNoParent.get(i).getId()); + List accessstoAddressByParent = accessAddressService.findAccessToAddressByUser(map); + List menu_childs = new ArrayList<>(); + for (int j = 0; j < accessstoAddressByParent.size(); j++) { + Map menu_child = new HashMap<>(); + menu_child.put("title",accessstoAddressByParent.get(j).getName()); + menu_child.put("href",accessstoAddressByParent.get(j).getUrl()); + menu_child.put("icon",accessstoAddressByParent.get(j).getIcon()); + menu_child.put("target",accessstoAddressByParent.get(j).getTarget()); + List menu_childs1 = new ArrayList<>(); + if(accessstoAddressByParent.get(j).getIschild() == 1){ + Map map1 = new HashMap<>(); + map1.put("roleId",role); + map1.put("menuparent",accessstoAddressByParent.get(j).getId()); + List accessstoAddressByParent1 = accessAddressService.findAccessToAddressByUser(map1); + for (int k = 0; k < accessstoAddressByParent1.size(); k++) { + Map menu_child1 = new HashMap<>(); + menu_child1.put("title", accessstoAddressByParent1.get(k).getName()); + menu_child1.put("href", accessstoAddressByParent1.get(k).getUrl()); + menu_child1.put("icon", accessstoAddressByParent1.get(k).getIcon()); + menu_child1.put("target", accessstoAddressByParent1.get(k).getTarget()); + menu_childs1.add(((HashMap) menu_child1).clone()); + menu_child1.clear(); + } + } + menu_child.put("child", ((ArrayList) menu_childs1).clone()); + menu_childs.add(((HashMap) menu_child).clone()); + menu_child.clear(); + } + menu.put("child",menu_childs); + allMenus.add(menu); + }*/ + Map menuInfo = new HashMap<>(); + menuInfo.put("menuInfo", allMenus); + menuInfo.put("homeInfo", homeInfo); + menuInfo.put("logoInfo", logoInfo); + return menuInfo; + } + + /** + * 根据父级菜单获取子菜单 + * + * @param accessToAddressByList + * @param address + * @return + */ + public List childAddress(List accessToAddressByList, AccesstoAddress address) { + List accessstoAddressByParent = new ArrayList<>(); + for (int k = 0; k < accessToAddressByList.size(); k++) { + AccesstoAddress accesstoAddress = accessToAddressByList.get(k); + if (accesstoAddress.getMenuparent() == address.getId()) { + accessstoAddressByParent.add(accesstoAddress); + } + } + return accessstoAddressByParent; + } + + /** + * 用于菜单构造 + * + * @param address + * @return + */ + public Map MenuConstructor(AccesstoAddress address) { + Map menu = new HashMap<>(); + menu.put("title", address.getName()); + menu.put("href", address.getUrl()); + menu.put("icon", address.getIcon()); + menu.put("target", address.getTarget()); + return menu; + } + + + @GetMapping("/register") + public String register() { + return "pages/user/register"; + } + + @GetMapping("/welcome") + public ModelAndView welcome() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/other/welcome"); + Map map = new HashMap(2) { + { + put("beigin", 0); + put("size", 6); + } + }; + mv.addObject("depositoryCount", depositoryService.findAllCountByNoDelete()); + mv.addObject("allPrice", materialService.findAllPriceNoDelete()); + /** + * 获取当天日期 + */ + Calendar instance = Calendar.getInstance(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + List days = new ArrayList<>(); + instance.add(Calendar.DATE, 1); + days.add(formatter.format(instance.getTime())); + instance.add(Calendar.DATE, -1); + days.add(formatter.format(instance.getTime())); + Map parm = new HashMap<>(); + map.put("statr", days.get(1)); + map.put("end", days.get(0)); + Integer warehouseRecord = depositoryRecordService.findWarehouseRecord(parm); + mv.addObject("warehouseRecord", warehouseRecord); + mv.addObject("notices", noticeService.findNoticeByCondition(map)); + return mv; + } + + @GetMapping("/depository_add") + public ModelAndView depository_add() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/warehouse/depository_add"); + List depositoryAll = depositoryService.findDepositoryAll(); + Map administration = DepositoryController.findAdministration(); + List administrationPList = (List) administration.get("administrationPList"); + mv.addObject("depositories", depositoryAll); + mv.addObject("administrationPList", administrationPList); + return mv; + } + + @GetMapping("depository-out") + public ModelAndView depository_out(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/warehouse/depository-out"); + Map map = new HashMap<>(); + map.put("parentId", 0); + List depositoryAll = depositoryService.findDepositoryRecordPByCondition(map); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + Integer role = roleService.findRoleByUid(userToken.getId().toString()); + if (role == 1) { + mv.addObject("display", "inline-block"); + } else { + mv.addObject("display", "none"); + } + mv.addObject("depositories", depositoryAll); + + return mv; + } + + @GetMapping("/material_out") + public ModelAndView material_out(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/material/material-out"); + List materialAll = materialService.findMaterialAll(); + List depositoryAll = depositoryService.findDepositoryAll(); + List materialTypeAll = materialTypeService.findMaterialTypeAll(); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + Integer role = 1; + if (role == 1) { + mv.addObject("display", "inline-block"); + } else { + mv.addObject("display", "none"); + } + mv.addObject("materialTypes", materialTypeAll); + mv.addObject("depositories", depositoryAll); + mv.addObject("materials", materialAll); + return mv; + } + + @GetMapping("/material_add") + public ModelAndView material_add() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/material/material-add"); + List depositoryAll = depositoryService.findDepositoryAll(); + List materialTypeAll = materialTypeService.findMaterialTypeAll(); + mv.addObject("materialTypes", materialTypeAll); + mv.addObject("depositories", depositoryAll); + return mv; + } + + @GetMapping("material_view") + public ModelAndView material_view(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/material/material-view"); + if (id != null) { + mv.addObject("record", materialService.findMaterialAndTypeById(id)); + mv.addObject("materialTypes", materialTypeService.findMaterialTypeAll()); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("/materialType_add") + public ModelAndView materialType_add() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/materialtype/materialType_add"); + List materialTypeAll = materialTypeService.findMaterialTypeAll(); + mv.addObject("materialTypes", materialTypeAll); + return mv; + } + + @GetMapping("/materialType_view") + public ModelAndView materialType_view(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/materialtype/materialType_view"); + Map map = new HashMap<>(); + map.put("parentId", 0); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + Integer role = roleService.findRoleByUid(userToken.getId().toString()); + List materialTypeAll = materialTypeService.findMaterialTypeByCondition(map); + mv.addObject("materialTypes", materialTypeAll); + if (role == 1) { + mv.addObject("display", "inline-block"); + } else { + mv.addObject("display", "none"); + } + return mv; + } + + @GetMapping("/application_in") + public ModelAndView application_in() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/application/application-in"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("reviewers", userService.findReviewers()); + mv.addObject("materials", materialService.findMaterialAll()); + return mv; + } + + @GetMapping("/application_out") + public ModelAndView application_out() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/application/application-out"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("reviewers", userService.findReviewers()); + mv.addObject("materials", materialService.findMaterialAll()); + return mv; + } + + @GetMapping("/application_transfer") + public ModelAndView application_transfer() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/application/application-transfer"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("reviewers", userService.findReviewers()); + mv.addObject("materials", materialService.findMaterialAll()); + return mv; + } + + @GetMapping("/table_in") + public ModelAndView table_in() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/depository/table-in"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("materials", materialService.findMaterialAll()); + return mv; + } + + @GetMapping("/table_out") + public ModelAndView table_out() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/depository/table-out"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("materials", materialService.findMaterialAll()); + return mv; + } + + @GetMapping("/table_user") + public ModelAndView table_user() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/user/table-user"); + List administrationPList = findAllCompany(); + mv.addObject("administrationPList", administrationPList); + mv.addObject("users", userService.findUserPsByCondition(new HashMap<>())); + return mv; + } + + @GetMapping("/table_stock") + public ModelAndView table_stock() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/depository/table-stock"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + return mv; + } + + @GetMapping("/my_task") + public String my_task() { + return "pages/application/my-task"; + } + + @GetMapping("/my_apply") + public String my_apply() { + return "pages/application/my-apply"; + } + + @GetMapping("/notice_edit") + public String notice_edit() { + return "pages/other/notice-edit"; + } + + @GetMapping("/chart_in") + public ModelAndView chart_in() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/chart/chart-in"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("reviewers", userService.findReviewers()); + mv.addObject("materials", materialService.findMaterialAll()); + mv.addObject("InCount", depositoryRecordService.CalculateAllCount(1, "已入库")); + mv.addObject("allInCount", depositoryRecordService.CalculateAllCount(1, "")); + mv.addObject("InPrice", depositoryRecordService.CalculateAllPrice(1, "已入库")); + mv.addObject("allInPrice", depositoryRecordService.CalculateAllPrice(1, "")); + return mv; + } + + @GetMapping("chart_in_back") + public ModelAndView chart_in_back() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/chart/chart-in_back"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("reviewers", userService.findReviewers()); + mv.addObject("materials", materialService.findMaterialAll()); + mv.addObject("InCount", depositoryRecordService.CalculateAllCount(1, "已入库")); + mv.addObject("allInCount", depositoryRecordService.CalculateAllCount(1, "")); + mv.addObject("InPrice", depositoryRecordService.CalculateAllPrice(1, "已入库")); + mv.addObject("allInPrice", depositoryRecordService.CalculateAllPrice(1, "")); + return mv; + } + + @GetMapping("/chart_out") + public String chart_out() { + return "pages/chart/chart-out"; + } + + @GetMapping("chart_out_back") + public ModelAndView chart_out_back() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/chart/chart-out_back"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("reviewers", userService.findReviewers()); + mv.addObject("materials", materialService.findMaterialAll()); + mv.addObject("InCount", depositoryRecordService.CalculateAllCount(2, "已出库")); + mv.addObject("allInCount", depositoryRecordService.CalculateAllCount(2, "")); + mv.addObject("InPrice", depositoryRecordService.CalculateAllPrice(2, "已出库")); + mv.addObject("allInPrice", depositoryRecordService.CalculateAllPrice(2, "")); + return mv; + } + + @GetMapping("/chart_stock_back") + public String chart_stock() { + return "pages/chart/chart-stock_back"; + } + + @GetMapping("/user_password") + public ModelAndView user_password(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/user/user-password"); + UserToken userToken = (UserToken) request.getAttribute("userToken"); + mv.addObject("user", userToken.getUser()); + return mv; + } + + /** + * 根据条件查询用户 + * @param map + * @return + */ + public static List FindUserByMap(Map map) { + String url = "http://172.20.2.87:39168/staff/archiveslist"; + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + List result = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + UserByPort userByPort = JSONObject.toJavaObject((JSONObject) list.get(i), UserByPort.class); + result.add(userByPort); + } + return result; + } + + public static UserByPort FindUserById(Integer id) { + String url = "http://172.20.2.87:39168/staff/archivescont"; + Map map = new HashMap<>(); + map.put("id", id); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + UserByPort userByPort = JSONObject.toJavaObject(data, UserByPort.class); + return userByPort; + } + + + @GetMapping("/user_add") + public ModelAndView user_add(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/user/user-add"); + Map map = new HashMap<>(); + map.put("number",id.toString()); + UserByPortP userByPortP = new UserByPortP(FindUserByMap(map).get(0)); + RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(userByPortP.getId()); + if (depositoryAndRole != null) { + userByPortP.setRolename(depositoryAndRole.getRoleName()); + userByPortP.setDepositoryName(depositoryAndRole.getDepositoryName()); + } + mv.addObject("userByPort", userByPortP); + mv.addObject("roles", roleService.findAllRole()); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + return mv; + } + + @GetMapping("/user_detail") + public ModelAndView user_edit(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/user/user-edit"); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + Map map = new HashMap<>(); + map.put("number",id.toString()); + UserByPort userByPort = FindUserByMap(map).get(0); + mv.addObject("user", userByPort); + return mv; + } + + + @GetMapping("/warehouse_view") + public ModelAndView warehouse_view(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/warehouse/warehouse_view"); + if (id != null) { + mv.addObject("record", depositoryService.findDepositoryRecordById(id)); + List administrationPList = findAllCompany(); + mv.addObject("administrationPList", administrationPList); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("warehouseByParentId") + public ModelAndView warehouseByParentId(Integer parentId) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/warehouse/warehouseByParentId"); + if (parentId != null) { + Map param = new HashMap<>(); + param.put("parentId", parentId); + mv.addObject("parentId", parentId); + mv.addObject("depositories", depositoryService.findDepositoryRecordPByCondition(param)); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("findWareHouseByParentId") + public ModelAndView findWareHouseByParentId(Integer parentId) { + ModelAndView mv = new ModelAndView(); + if (parentId != null) { + Map param = new HashMap<>(); + param.put("parentId", parentId); + mv.addObject("parentId", parentId); + List depositoryRecordPByCondition = depositoryService.findDepositoryRecordPByCondition(param); + if (depositoryRecordPByCondition.size() > 0) { + mv.addObject("depositories", depositoryRecordPByCondition); + mv.setViewName("pages/warehouse/depository-out"); + } else { + mv.setViewName("pages/warehouse/warehouseByParentId"); + } + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("ManagerView") + public ModelAndView findManagerView(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.addObject("did", id); + mv.setViewName("pages/warehouse/manager"); + return mv; + } + + @GetMapping("ManagerViewByMid") + public ModelAndView findManagerViewByMid(Integer id) { + ModelAndView mv = new ModelAndView(); + Material materialById = materialService.findMaterialById(id); + mv.addObject("did", materialById.getDepositoryId()); + mv.setViewName("pages/warehouse/manager"); + return mv; + } + + @GetMapping("findMaterialTypeByParentId") + public ModelAndView findMaterialTypeByParentId(Integer parentId) { + ModelAndView mv = new ModelAndView(); + if (parentId != null) { + Map param = new HashMap<>(); + param.put("parentId", parentId); + mv.addObject("parentId", parentId); + List materialTypeByCondition = materialTypeService.findMaterialTypeByCondition(param); + if (materialTypeByCondition.size() > 0) { + mv.addObject("materialTypes", materialTypeByCondition); + mv.setViewName("pages/materialtype/materialType_view"); + } else { + mv.setViewName("pages/materialtype/materialTypeByParentId"); + } + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + + @GetMapping("/materialType_detail") + public ModelAndView materialType_detail(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/materialtype/materialType_edit.html"); + if (id != null) { + mv.addObject("record", materialTypeService.findMaterialTypeById(id)); + mv.addObject("materialTypes", materialTypeService.findMaterialTypeAll()); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("/application_review") + public ModelAndView application_review(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/application/application-review"); + ApplicationOutRecordP recordP = depositoryRecordService.findApplicationOutRecordPById(id); + // 申请人 + UserByPort userByPort = FindUserById(recordP.getApplicantId()); + // 部门负责人 + UserByPort departmenthead = FindUserById(recordP.getDepartmenthead()); + // 仓库管理员 + String manager = recordP.getDepositoryManager(); + String[] depositoryManagerId = new String[0]; + if(manager != null){ + depositoryManagerId = manager.split(","); + } + List depositoryManager = new ArrayList<>(); + String depositoryManagerNames = ""; + for (int i = 0; i < depositoryManagerId.length; i++) { + Integer managerid = ObjectFormatUtil.toInteger(depositoryManagerId[i]); + UserByPort user = FindUserById(managerid); + depositoryManager.add(user); + depositoryManagerNames += user.getName() +","; + } + recordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime()))); + recordP.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getDepartmentheadTime()))); + recordP.setDepositoryManagerName(depositoryManagerNames); + recordP.setApplicantName(userByPort.getName()); + recordP.setDepartmentheadName(departmenthead.getName()); + recordP.setPrice(recordP.getPrice() / 100); + mv.addObject("record", recordP); + return mv; + } + + @GetMapping("/form_step_look") + public ModelAndView form_step_look(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/application/form-step-look"); + if (id != null) { + ApplicationInRecordP applicationInRecordPById = depositoryRecordService.findApplicationInRecordPById(id); + UserByPort userByPort = FindUserById(applicationInRecordPById.getApplicantId()); + applicationInRecordPById.setApplicantName(userByPort.getName()); + applicationInRecordPById.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationInRecordPById.getApplicantTime()))); + applicationInRecordPById.setPrice(applicationInRecordPById.getPrice() / 100); + mv.addObject("record", applicationInRecordPById); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("/ApplicationOutView") + public ModelAndView ApplicationOutView(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/application/form-step-look_back"); + if (id != null) { + ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(id); + // 申请人 + UserByPort userByPort = FindUserById(applicationOutRecordPById.getApplicantId()); + // 部门负责人 + UserByPort departmenthead = FindUserById(applicationOutRecordPById.getDepartmenthead()); + // 仓库管理员 + String manager = applicationOutRecordPById.getDepositoryManager(); + String[] depositoryManagerId = new String[0]; + if(manager != null){ + depositoryManagerId = manager.split(","); + } + List depositoryManager = new ArrayList<>(); + String depositoryManagerNames = ""; + for (int i = 0; i < depositoryManagerId.length; i++) { + Integer managerid = ObjectFormatUtil.toInteger(depositoryManagerId[i]); + UserByPort user = FindUserById(managerid); + depositoryManager.add(user); + depositoryManagerNames += user.getName(); + } + applicationOutRecordPById.setApplicantName(userByPort.getName()); + applicationOutRecordPById.setDepartmentheadName(departmenthead.getName()); + applicationOutRecordPById.setDepositoryManagerName(depositoryManagerNames); + applicationOutRecordPById.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getApplicantTime()))); + applicationOutRecordPById.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getDepartmentheadTime()))); + applicationOutRecordPById.setDepositoryManagerTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getDepositoryManagerTime()))); + applicationOutRecordPById.setPrice(applicationOutRecordPById.getPrice() / 100); + mv.addObject("record", applicationOutRecordPById); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("/account_look") + public ModelAndView account_look(Integer id, HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/user/account-look"); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); + mv.addObject("roleAndDepository", depositoryAndRole); + mv.addObject("user", userToken); + return mv; + } + + @GetMapping("/user_email") + public ModelAndView user_email(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/user/user-email"); + UserToken userToken = (UserToken) request.getAttribute("userToken"); + mv.addObject("email", userToken.getUser().getEmail()); + return mv; + } + + + public List findAllCompany() { + String url = "http://172.20.2.87:39168/org/govlist"; + Map map = new HashMap<>(); + map.put("superior", "313"); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + List administrationPList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Administration administration = JSONObject.toJavaObject((JSONObject) list.get(i), Administration.class); + AdministrationP administrationP = new AdministrationP(administration); + administrationPList.add(administrationP); + } + return administrationPList; + } + + @GetMapping("/company_out") + public ModelAndView Company_Out(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/company/company-out"); + List administrationPList = findAllCompany(); + mv.addObject("administrationPList", administrationPList); + mv.addObject("parentId", "313"); + return mv; + } + + @GetMapping("/company_add") + public ModelAndView company_add() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/company/company_add"); + List companyAll = companyService.findCompanyAll(); + mv.addObject("companies", companyAll); + return mv; + } + + + @GetMapping("/company_detail") + public ModelAndView company_detail(Integer id) { + String url = "http://172.20.2.87:39168/org/getgovcont"; + Map map = new HashMap<>(); + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/company/company_edit"); + if (id != null) { + map.put("id", id); + map.put("idstr", id.toString()); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + Administration administration = JSONObject.toJavaObject(data, Administration.class); + String SuperiorName = getCompany(administration.getSuperior()).getName(); + mv.addObject("record", administration); + mv.addObject("SuperiorName", SuperiorName); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + public Administration getCompany(Integer id) { + String url = "http://172.20.2.87:39168/org/getgovcont"; + Map map = new HashMap<>(); + map.put("id", id); + map.put("idstr", id.toString()); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + Administration administration = JSONObject.toJavaObject(data, Administration.class); + return administration; + } + + + + public static List findCompanyBySuperior(String superior) { + String url = "http://172.20.2.87:39168/org/govlist"; + Map map = new HashMap<>(); + map.put("superior", superior); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + List administrationPList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Administration administration = JSONObject.toJavaObject((JSONObject) list.get(i), Administration.class); + AdministrationP administrationP = new AdministrationP(administration); + administrationPList.add(administrationP); + } + return administrationPList; + } + + @GetMapping("/findCompanyByParentId") + public ModelAndView findCompanyByParentId(Integer parentId) { + ModelAndView mv = new ModelAndView(); + String url = "http://172.20.2.87:39168/org/govlist"; + if (parentId != null) { + mv.addObject("parentId", parentId); + List administrationPList = findCompanyBySuperior(parentId.toString()); + if (administrationPList.size() > 0) { + mv.addObject("administrationPList", administrationPList); + mv.setViewName("pages/company/company-out"); + } else { + mv.setViewName("pages/company/companyByParentId"); + } + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("/findPostByOrganization") + public ModelAndView findPostByOrganization(Integer organization) { + String url = "http://172.20.2.87:39168/org/positionlist"; + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/post/post-out"); + mv.addObject("parentId", organization); + if (organization != null) { + Map map = new HashMap<>(); + map.put("organization", organization.toString()); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + List postList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Post object = JSONObject.toJavaObject((JSONObject) list.get(i), Post.class); + postList.add(object); + } + mv.addObject("postList", postList); + mv.setViewName("pages/post/post-out"); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + @GetMapping("/post_detail") + public ModelAndView post_detail(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/post/post-view"); + if (id != null) { + Post object = findPostById(id); + mv.addObject("record", object); + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + public Post findPostById(Integer id) { + String url = "http://172.20.2.87:39168/org/getpositioncont"; + Map map = new HashMap<>(); + map.put("id", id); + map.put("idstr", id.toString()); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + Post object = JSONObject.toJavaObject(data, Post.class); + return object; + } + + + @GetMapping("/findPostByParentId") + public ModelAndView findPostByParentId(Integer parentId) { + String url = "http://172.20.2.87:39168/org/positionlist"; + ModelAndView mv = new ModelAndView(); + if (parentId != null) { + Map map = new HashMap<>(); + map.put("superior", parentId.toString()); + mv.addObject("parentId", parentId); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + List postList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Post object = JSONObject.toJavaObject((JSONObject) list.get(i), Post.class); + postList.add(object); + } + if (postList.size() > 0) { + mv.addObject("postList", postList); + mv.setViewName("pages/post/post-out"); + } else { + mv.setViewName("pages/company/companyByParentId"); + } + } else { + throw new MyException("缺少必要参数!"); + } + return mv; + } + + + @GetMapping("/postRoleAdd") + public ModelAndView PostRoleAdd(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/post/postRole_add"); + Post postById = findPostById(id); + mv.addObject("post", postById); + mv.addObject("roles", roleService.findAllRole()); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + return mv; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java new file mode 100644 index 00000000..d4300758 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java @@ -0,0 +1,414 @@ +package com.dreamchaser.depository_manage.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.entity.User; +import com.dreamchaser.depository_manage.entity.UserByPort; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.pojo.RoleAndDepository; +import com.dreamchaser.depository_manage.pojo.StatusInfo; +import com.dreamchaser.depository_manage.pojo.UserByPortP; +import com.dreamchaser.depository_manage.security.bean.LoginRealms; +import com.dreamchaser.depository_manage.security.bean.LoginType; +import com.dreamchaser.depository_manage.security.bean.UserToken; +import com.dreamchaser.depository_manage.security.bean.VerificationCode; +import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; +import com.dreamchaser.depository_manage.security.pool.VerificationCodePool; +import com.dreamchaser.depository_manage.service.RoleService; +import com.dreamchaser.depository_manage.service.UserService; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.HttpUtils; +import com.dreamchaser.depository_manage.utils.Md5; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import com.fasterxml.jackson.core.sym.NameN; +import org.apache.http.protocol.HTTP; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.repository.query.ReactiveQueryByExampleExecutor; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.dreamchaser.depository_manage.utils.CrudUtil.deleteHandle; + + +/** + * 用户的相关接口 + * + * @author 金昊霖 + */ +@RestController +public class UserController { + @Autowired + private LoginRealms loginRealms; + @Autowired + private UserService userService; + @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") + @Autowired + private JavaMailSender mailSender; + @Autowired + private RoleService roleService; + + @Value("${spring.mail.username}") + private String fromEmail; + + /** + * 注册用户(通常为手机或者邮箱注册) + * + * @param map 参数列表,包括账号(手机注册就是phone,邮箱就是email)、密码 + * @return 成功则返回凭证,否则返回验证失败 + */ + + @PostMapping("/register") + public RestResponse register(@RequestBody Map map) { + String principal; + Object password = map.get("pwd"); + Object code = map.get("code"); + UserToken userToken; + //判断必要参数是否满足 + if (password == null || code == null) { + return CrudUtil.ID_MISS_RESPONSE; + } + + //从map中获取对应参数 + if (map.get("email") != null) { + principal = String.valueOf(map.get("email")); + userToken = new UserToken(LoginType.EMAIl_PASSWORD, principal, String.valueOf(password)); + } else { + return CrudUtil.ID_MISS_RESPONSE; + } + //验证码正确且成功插入数据 + if (checkCode(principal, String.valueOf(code))) { + //对密码进行加密然后存储用户信息 + map.put("pwd", Md5.crypt(String.valueOf(map.get("pwd")))); + //如果用户记录插入成功 + if (userService.insertUser(map) == 1) { + String token = Md5.crypt(userToken.getPrincipal() + userToken.getInstant()); + //返回凭证 + return new RestResponse().setData(token); + } + } else { + //验证码错误 + return CrudUtil.CODE_ERROR; + } + return new RestResponse().setStatus(450).setStatusInfo(new StatusInfo("注册失败,系统繁忙,请稍后再试!", "注册失败")); + } + + /** + * 验证是否有此账号,然后发送验证码 + * + * @param map 主要认证主体,如账号,邮箱,qq的openID,wechat的code等 + * @return restResponse,附带凭证token + */ + @PostMapping("/sendCode") + public RestResponse sendCode(@RequestBody Map map) { + if (userService.findUserByCondition(map) == null) { + String principal; + if (map.containsKey("phone")) { + principal = String.valueOf(map.get("phone")); + + } else if (map.containsKey("email")) { + principal = String.valueOf(map.get("email")); + } else { + return CrudUtil.ID_MISS_RESPONSE; + } + //创建一个验证码 + VerificationCode v = new VerificationCode(); + //将验证码存入验证码等待池 + VerificationCodePool.addCode(principal, v); + //发送邮箱验证码 + sendEmail(principal, v.getCode()); + return new RestResponse(); + } + return new RestResponse("", 304, new StatusInfo("发送验证码失败,该账户已存在!", "发送验证码失败,该账户已存在!")); + } + + /** + * 登录接口 + * + * @param map 登录信息 + * loginType 登录方式,目前支持的有email,qq,wechat + * principal 主要认证主体,如账号,邮箱,qq的openID,wechat的code等 + * credentials 类似于密码,如果是qq,wechat则不需要传改参数 + * restResponse,附带凭证token + */ + @PostMapping("/login") + public RestResponse login(@RequestBody Map map, HttpServletRequest request) { + String url = "http://172.20.2.87:6666/base/login"; + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url,paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + if(data != null) { + String userkey = (String) data.get("key"); + String usertoken = (String) data.get("token"); + HttpUtils.setUserKey(userkey); + HttpUtils.setUserToken(usertoken); + UserByPort userinfo = JSONObject.toJavaObject((JSONObject) data.get("userinfo"), UserByPort.class); + AuthenticationTokenPool.addToken(usertoken,userinfo); + return new RestResponse(usertoken); + }else{ + return CrudUtil.NOT_EXIST_USER_OR_ERROR_PWD_RESPONSE; + } + /*UserToken userToken = new UserToken(LoginType.getType(map.get("loginType")) + , map.get("principal"), map.get("credentials")); + return login(userToken);*/ + } + /** + * 将生成的令牌拿去认证,如果认证成功则返回带有token凭证响应,否则返回用户密码错误的响应 + * + * @param userToken 未认证的令牌 + * @return restResponse 如果认证成功则返回带有token凭证响应,否则返回用户密码错误的响应 + */ + private RestResponse login(UserToken userToken) { + String token = loginRealms.authenticate(userToken); + if (token != null) { + return new RestResponse(token); + } else { + return CrudUtil.NOT_EXIST_USER_OR_ERROR_PWD_RESPONSE; + } + } + + + /** + * 退出登录,删除令牌的操作依据在拦截器中完成 + * + * @return RESPONSE200 + */ + @GetMapping("/logout") + public RestResponse logout() { + return CrudUtil.RESPONSE200; + } + + @GetMapping("/sys/users") + public RestResponse findUsers(@RequestParam Map map) { + return new RestResponse(userService.findUserPsByCondition(map), userService.findCount(), 200); + } + + /** + * 获取人员列表 + * @param map + * @return + */ + @PostMapping("/sys/findUsers") + public RestResponse findUsersByPort(@RequestParam Map map) { + String url = "http://172.20.2.87:39168/staff/archiveslist"; + if(map.containsKey("company")){ + map.put("company",ObjectFormatUtil.toInteger(map.get("company"))); + } + if(map.containsKey("adminorg")){ + map.put("adminorg",ObjectFormatUtil.toInteger(map.get("adminorg"))); + } + Object page = map.get("page"); + Object pagesize = map.get("pagesize"); + map.put("page",ObjectFormatUtil.toInteger(page)); + map.put("pagesize",ObjectFormatUtil.toInteger(pagesize)); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url,paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray list = (JSONArray) data.get("list"); + Integer total = ObjectFormatUtil.toInteger(data.get("total")); + List userByPortList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + UserByPort userByPort = JSONObject.toJavaObject((JSONObject)list.get(i), UserByPort.class); + UserByPortP user = new UserByPortP(userByPort); + RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(userByPort.getId()); + if(depositoryAndRole != null) { + user.setRolename(depositoryAndRole.getRoleName()); + user.setDepositoryName(depositoryAndRole.getDepositoryName()); + }else{ + user.setRolename(""); + user.setDepositoryName(""); + } + userByPortList.add(user); + } + return new RestResponse(userByPortList, total, 200); + } + + /** + * 添加用户权限 + * @param map + * @return + */ + /** + * {id: "4323", authority: "1", depositoryId: "20"} + * @param map + * @return + */ + @PostMapping("/sys/user_role") + public RestResponse addUser(@RequestBody Map map) { + map.put("classes",1); + RoleAndDepository userid = roleService.findDepositoryAndRole(ObjectFormatUtil.toInteger(map.get("userid"))); + if(userid!=null){ + return CrudUtil.postHandle(roleService.updateUserOrPostRoleAndDepository(map), 1); + }else { + return CrudUtil.postHandle(roleService.addUserOrPostRoleAndDepository(map), 1); + } +// return CrudUtil.postHandle(userService.insertUser(map), 1); + } + + @PostMapping("/sys/user_detail") + public RestResponse updateUser(@RequestBody Map map) { + if (map.containsKey("pwd") && map.get("pwd") != "") { + //对密码进行加密 + map.put("pwd", Md5.crypt(String.valueOf(map.get("pwd")))); + } + if (map.containsKey("state")) { + map.put("state", 1); + } else { + map.put("state", 2); + } + return CrudUtil.postHandle(userService.updateUser(map), 1); + } + + @DeleteMapping("/sys/user") + public RestResponse deleteUser(@RequestBody Map map) { + return deleteHandle(userService.changeUserStateToDeleteById(ObjectFormatUtil.toInteger(map.get("id"))), 1); + } + + @DeleteMapping("/sys/users") + public RestResponse deleteUsers(@RequestBody Map map) { + if (map.containsKey("ids")) { + List ids = (List) map.get("ids"); + return CrudUtil.deleteHandle(userService.changeUserStateToDeleteByIds(ids), ids.size()); + } else { + return CrudUtil.ID_MISS_RESPONSE; + } + } + + @PutMapping("/user") + public RestResponse updateSelf(@RequestBody Map map, HttpServletRequest request) { + UserToken userToken = (UserToken) request.getAttribute("userToken"); + map.put("id", userToken.getUser().getId()); + return CrudUtil.postHandle(userService.updateUserNoSensitive(map), 1); + } + + @PutMapping("/checkOldEmail") + public RestResponse checkOldEmail(@RequestBody Map map, HttpServletRequest request) { + if (!map.containsKey("oldCode")) { + return CrudUtil.ID_MISS_RESPONSE; + } + UserToken userToken = (UserToken) request.getAttribute("userToken"); + if (checkCode(userToken.getPrincipal(), map.get("oldCode").toString())) { + return new RestResponse("验证成功!"); + } else { + //验证码错误 + return CrudUtil.CODE_ERROR; + } + } + + @PutMapping("/updateEmail") + public RestResponse updateEmail(@RequestBody Map map, HttpServletRequest request) { + //参数检测 + if (!map.containsKey("email") || !map.containsKey("oldCode") || !map.containsKey("newCode")) { + return CrudUtil.ID_MISS_RESPONSE; + } + UserToken userToken = (UserToken) request.getAttribute("userToken"); + //必须同时检测,否则会出现漏洞 + if (checkCode(userToken.getPrincipal(), map.get("oldCode").toString()) + && checkCode(map.get("email").toString(), map.get("code").toString())) { + map.put("id", userToken.getUser().getId()); + return CrudUtil.putHandle(userService.updateUser(map), 1); + } else { + //验证码错误 + return CrudUtil.CODE_ERROR; + } + + } + + + + + /** + * 用于注册用户的方法,主要为号码验证和邮箱验证提供验证码核对的服务 + * + * @param principal 认证主体 + * @param code 验证码 + * @return 是否验证通过 + */ + private boolean checkCode(String principal, String code) { + if (code != null) { + VerificationCode verificationCode = VerificationCodePool.getCode(principal); + if (verificationCode != null) { + return code.equals(verificationCode.getCode()); + } + } + return false; + } + + /** + * 发送带有验证码的邮件信息 + */ + private void sendEmail(String email, String code) { + //发送验证邮件 + try { + SimpleMailMessage mailMessage = new SimpleMailMessage(); + + //主题 + mailMessage.setSubject("仓库管理系统的验证码邮件"); + + //内容 + mailMessage.setText("欢迎使用仓库管理系统,您正在注册此账户。" + + "\n您收到的验证码是: " + code + " ,请不要将此验证码透露给别人。"); + + //发送的邮箱地址 + mailMessage.setTo(email); + //默认发送邮箱邮箱 + mailMessage.setFrom(fromEmail); + + //发送 + mailSender.send(mailMessage); + } catch (Exception e) { + throw new MyException(e.toString()); + } + } + + + /** + * 修改用户密码 + * + * @param map + * @return + */ + @PostMapping("/edit_password") + public RestResponse editPassword(@RequestBody Map map) { + User userByEmail = null; + if (map.containsKey("email")) { + userByEmail = userService.findUserById((String) map.get("email")); + } + String old_pwd = Md5.crypt(String.valueOf(map.get("old_password"))); + if (!old_pwd.equals(userByEmail.getPwd())) { + return new RestResponse("", 402, new StatusInfo("修改失败", "旧密码输入错误")); + } + String new_password = Md5.crypt(String.valueOf(map.get("new_password"))); + map.put("new_password", new_password); + map.put("id", userByEmail.getId()); + return CrudUtil.postHandle(userService.updateUserPasswordById(map), 1); + } + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/converter/ExcelDepositoryInfoConverter.java b/src/main/java/com/dreamchaser/depository_manage/converter/ExcelDepositoryInfoConverter.java new file mode 100644 index 00000000..f4dfed4c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/converter/ExcelDepositoryInfoConverter.java @@ -0,0 +1,70 @@ +package com.dreamchaser.depository_manage.converter; + + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.exception.ExcelDataConvertException; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; +import com.dreamchaser.depository_manage.entity.Depository; +import com.dreamchaser.depository_manage.entity.MaterialType; +import com.dreamchaser.depository_manage.service.DepositoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.List; + +@Component +public class ExcelDepositoryInfoConverter implements Converter { + + @Autowired + private DepositoryService depositoryService; + + private static ExcelDepositoryInfoConverter excelDepositoryInfoConverter; + + @Override + public Class supportJavaTypeKey() { + return Integer.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + return CellDataTypeEnum.STRING; + } + + @Override + public Integer convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + List depositoryAll = excelDepositoryInfoConverter.depositoryService.findDepositoryAll(); + Integer data = 0; + for (int i = 0; i < depositoryAll.size(); i++) { + if(cellData.getStringValue().equals(depositoryAll.get(i).getDname())){ + data = depositoryAll.get(i).getId(); + } + } + if(data == 0){ + throw new RuntimeException("没有该仓库"); + } + return data; + } + + @Override + public WriteCellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + List depositoryAll = excelDepositoryInfoConverter.depositoryService.findDepositoryAll(); + String data = ""; + for (int i = 0; i < depositoryAll.size(); i++) { + if(value == depositoryAll.get(i).getId()){ + data = depositoryAll.get(i).getDname(); + } + } + return new WriteCellData<>(data); + } + + @PostConstruct + public void init(){ + excelDepositoryInfoConverter = this; + excelDepositoryInfoConverter.depositoryService = this.depositoryService; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/converter/ExcelMaterialTypeInfoConverter.java b/src/main/java/com/dreamchaser/depository_manage/converter/ExcelMaterialTypeInfoConverter.java new file mode 100644 index 00000000..6edea1fd --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/converter/ExcelMaterialTypeInfoConverter.java @@ -0,0 +1,63 @@ +package com.dreamchaser.depository_manage.converter; + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; +import com.dreamchaser.depository_manage.entity.Material; +import com.dreamchaser.depository_manage.entity.MaterialType; +import com.dreamchaser.depository_manage.service.MaterialTypeService; +import com.dreamchaser.depository_manage.service.impl.MaterialTypeServiceImpl; +import org.apache.tomcat.jni.Error; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.List; + +// 用于表格数据导入时材料类型部分数据的转换 +@Component +public class ExcelMaterialTypeInfoConverter implements Converter { + + @Autowired + private MaterialTypeService materialTypeService; + + private static ExcelMaterialTypeInfoConverter excelMaterialTypeInfoConverter; + + @Override + public Class supportJavaTypeKey() { + return Integer.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + return CellDataTypeEnum.STRING; + } + + + @Override + public Integer convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + Integer data = 0; + return data; + } + + @Override + public WriteCellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + List materialTypeAll = excelMaterialTypeInfoConverter.materialTypeService.findMaterialTypeAll(); + String data = null; + for (int i = 0; i < materialTypeAll.size(); i++) { + if(value == materialTypeAll.get(i).getId()){ + data = materialTypeAll.get(i).getTname(); + } + } + return new WriteCellData<>(data); + } + + @PostConstruct + public void init(){ + excelMaterialTypeInfoConverter = this; + excelMaterialTypeInfoConverter.materialTypeService = this.materialTypeService; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/converter/ExcelStateInfoConverter.java b/src/main/java/com/dreamchaser/depository_manage/converter/ExcelStateInfoConverter.java new file mode 100644 index 00000000..67a672a1 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/converter/ExcelStateInfoConverter.java @@ -0,0 +1,45 @@ +package com.dreamchaser.depository_manage.converter; + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; +import org.springframework.stereotype.Component; + +public class ExcelStateInfoConverter implements Converter { + @Override + public Class supportJavaTypeKey() { + return Integer.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + return CellDataTypeEnum.STRING; + } + + @Override + public Integer convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + switch (cellData.getStringValue()){ + case "启用": + return 1; + case "禁用": + return 2; + default: + return 3; + } + } + + @Override + public WriteCellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + switch (value){ + case 1: + return new WriteCellData("启用"); + case 2: + return new WriteCellData("禁用"); + default: + return new WriteCellData("删除"); + } + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/AccesstoAddress.java b/src/main/java/com/dreamchaser/depository_manage/entity/AccesstoAddress.java new file mode 100644 index 00000000..cfa2555c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/AccesstoAddress.java @@ -0,0 +1,55 @@ +package com.dreamchaser.depository_manage.entity; + + +import lombok.Data; + +/** + * 菜单地址类 + */ + +@Data +public class AccesstoAddress { + /** + * 菜单地址编号 + */ + private Integer id; + /** + * 菜单名 + */ + private String name; + /** + * 菜单地址 + */ + private String url; + + /** + * 菜单图片 + */ + private String icon; + /** + * 访问方式 + */ + private Integer type; + /** + * 角色编号 + */ + private Integer role_id; + /** + * 父菜单编号 + */ + private Integer menuparent; + /** + * 菜单状态 + */ + private Integer state; + + /** + * 目标 + */ + private String target; + + /** + * 是否有子菜单 + */ + private int ischild; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Administration.java b/src/main/java/com/dreamchaser/depository_manage/entity/Administration.java new file mode 100644 index 00000000..84ba5177 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Administration.java @@ -0,0 +1,62 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +@Data +public class Administration { + /** + * id + */ + private Integer id; + + /** + * 编号(非必填;为空时由系统自动生成) + */ + private String number; + + /** + *名称 + */ + private String name; + + /** + * 上级 + */ + private Integer superior; + + /** + * 部门类别ID + */ + private Integer organizationtype; + + /** + * 简称 + */ + private String abbreviation; + + /** + * 创建时间 + */ + private Long time; + + /** + * 状态 + */ + private Integer state; + + /** + * 企业微信对照值 + */ + private Integer wechatorganizationid; + + /** + * 部门类别名称 + */ + private String classname; + + /** + * 级别值 + */ + private Integer level; +} + diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java new file mode 100644 index 00000000..c3cc5427 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java @@ -0,0 +1,41 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + + +@Data +public class ApplicationInRecord { + /** + * id + */ + private Integer id; + /** + * 入库物品编号 + */ + private Integer mid; + /** + * 入库数量 + */ + private int quantity; + /** + * 入库金额 + */ + private int price; + /** + * 提交人编号 + */ + private int applicant_id; + /** + * 提交时间 + */ + private Long applicant_time; + /** + * 货物单号 + */ + private String code; + + /** + * 仓库编号 + */ + private Integer depository_id; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java new file mode 100644 index 00000000..14299bbe --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java @@ -0,0 +1,103 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +@Data +public class ApplicationOutRecord { + /** + * id + */ + private Integer id; + + /** + * 材料id + */ + private Integer mid; + + /** + * 仓库id + */ + private Integer depositoryId; + + /** + * 申请人id + */ + private Integer applicantId; + + /** + * 申请时间 + */ + private Long applicantTime; + + + /** + * 备注 + */ + private String applyRemark; + + /** + * 出货单号 + */ + private String code; + + /** + * 金额 + */ + private Integer price; + + /** + * 数量 + */ + private Integer quantity; + + /** + * 部门负责人 + */ + private Integer departmenthead; + + /** + * 部门负责人意见(1通过2退回) + */ + private Integer departmentheadPass; + + /** + * 部门负责人处理时间 + */ + private Long departmentheadTime; + + /** + * 部门负责人审核备注 + */ + private String departmentheadMessage; + + /** + * 仓库管理员 + */ + private Integer depositoryManager; + + /** + * 仓库管理员意见(1通过2退回) + */ + private Integer depositoryManagerPass; + + /** + * 仓库管理员处理时间 + */ + private Long depositoryManagerTime; + + /** + * 仓库管理员审核备注 + */ + private String depositoryManagerMessage; + + /** + * 状态 + */ + private String state; + + /** + * 是否为转移申请 + */ + private Integer istransfer; + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Company.java b/src/main/java/com/dreamchaser/depository_manage/entity/Company.java new file mode 100644 index 00000000..ef257267 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Company.java @@ -0,0 +1,30 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +@Data +public class Company { + /** + * 公司编号 + */ + private Integer cid; + /** + * 公司名称 + */ + private String cname; + + /** + * 状态 + */ + private Integer state; + + /** + * 父级 + */ + private Integer parentId; + + /** + * 公司介绍 + */ + private String introduce; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/CsvInfo.java b/src/main/java/com/dreamchaser/depository_manage/entity/CsvInfo.java new file mode 100644 index 00000000..80fe988e --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/CsvInfo.java @@ -0,0 +1,12 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + + +/** + * 用于csv文件导入 + */ +@Data +public class CsvInfo { + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Depository.java b/src/main/java/com/dreamchaser/depository_manage/entity/Depository.java new file mode 100644 index 00000000..7f2efd3b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Depository.java @@ -0,0 +1,173 @@ +package com.dreamchaser.depository_manage.entity; + +/** + * depository + * + * @author bianj + * @version 1.0.0 2021-05-20 + */ +public class Depository { + /** 版本号 */ + private static final long serialVersionUID = -2259445638130429647L; + + /** id */ + private Integer id; + + /** 仓库名称 */ + private String dname; + + /** 仓库地址 */ + private String address; + + /** 仓库介绍 */ + private String introduce; + + /** 仓库状态 */ + private Integer state; + + + /** 父级 */ + private Integer parentId; + + /** + * 公司编号 + */ + private Integer cid; + + /** + * 公司名称 + */ + private String cname; + /** + * 获取id + * + * @return id + */ + public Integer getId() { + return this.id; + } + + /** + * 设置id + * + * @param id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取仓库名称 + * + * @return 仓库名称 + */ + public String getDname() { + return this.dname; + } + + /** + * 设置仓库名称 + * + * @param dname + * 仓库名称 + */ + public void setDname(String dname) { + this.dname = dname; + } + + /** + * 获取仓库地址 + * + * @return 仓库地址 + */ + public String getAddress() { + return this.address; + } + + /** + * 设置仓库地址 + * + * @param address + * 仓库地址 + */ + public void setAddress(String address) { + this.address = address; + } + + /** + * 获取仓库介绍 + * + * @return 仓库介绍 + */ + public String getIntroduce() { + return this.introduce; + } + + /** + * 设置仓库介绍 + * + * @param introduce + * 仓库介绍 + */ + public void setIntroduce(String introduce) { + this.introduce = introduce; + } + + /** + * 获取仓库状态 + * @return + */ + public Integer getState() { + return state; + } + + /** + * 设置仓库状态 + * @param state + */ + public void setState(Integer state) { + this.state = state; + } + + /** + * 获取父级编号 + * @return + */ + public Integer getParentId() { + return parentId; + } + + /** + * 设置父级编号 + * @param parentId + */ + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + /** + * 获取公司编号 + * @return + */ + public Integer getCid() { + return cid; + } + + /** + * 设置公司编号 + * @param cid + */ + public void setCid(Integer cid) { + this.cid = cid; + } + + public String getCname() { + return cname; + } + + public void setCname(String cname) { + this.cname = cname; + } + + /* This code was generated by TableGo tools, mark 2 end. */ +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/DepositoryRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/DepositoryRecord.java new file mode 100644 index 00000000..6076c3e2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/DepositoryRecord.java @@ -0,0 +1,100 @@ +package com.dreamchaser.depository_manage.entity; + +import com.dreamchaser.depository_manage.pojo.UserP; +import lombok.Data; + +import java.util.Date; + +/** + * 仓库调度记录(depository_record) + * + * @author Dreamchaser + * @version 1.0.0 2021-05-20 + */ +@Data +public class DepositoryRecord { + /** 版本号 */ + private static final long serialVersionUID = 8546566842955977610L; + /** 记录id */ + private Integer id; + + /** 申请编号 */ + private Integer applicationId; + + /** 产品名称 */ + private String mname; + + /** 调度的仓库id */ + private Integer depositoryId; + + /** 调度记录类型(购入/退料/转入,退还/领料/转出) */ + private Integer type; + + /** 数量 */ + private Integer quantity; + + /** 价格 */ + private Double price; + + /** 状态(未审核,未入库/出库,已入库) */ + private String state; + + /** 申请人id */ + private Integer applicantId; + + /** 申请备注 */ + private String applyRemark; + + /** 申请时间 */ + private Long applyTime; + + /** 审核人id */ + private Integer reviewerId; + + /** 审核结果备注 */ + private String reviewRemark; + + /** 审核时间 */ + private Long reviewTime; + + /** + * 是否审核通过 + */ + private Integer reviewPass; + + /** 验货人id */ + private Integer checkerId; + + /** 验收备注 */ + private String checkRemark; + + /** 出入库时间(验货时间) */ + private Long checkTime; + + /** + * 是否验收通过 + */ + private Integer checkPass; + + /** + * 申请人信息 + */ + private UserP applicantUserP; + + + /** + * 审核人信息 + */ + private UserP reviewerUserP; + + + /** + * 验货人信息 + */ + private UserP checkerUserP; + + /** + * 单号 + */ + private String oldId; +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java new file mode 100644 index 00000000..c1f6190c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java @@ -0,0 +1,72 @@ +package com.dreamchaser.depository_manage.entity; + +import cn.hutool.core.annotation.Alias; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.converters.longconverter.LongBooleanConverter; +import com.dreamchaser.depository_manage.converter.ExcelDepositoryInfoConverter; +import com.dreamchaser.depository_manage.converter.ExcelMaterialTypeInfoConverter; +import com.dreamchaser.depository_manage.converter.ExcelStateInfoConverter; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigInteger; + +/** + * 用于excel表的导入 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class ExcelInfo { + + /** 材料编号 */ + @ExcelProperty("材料编号") + private Integer id; + + /** 仓库名称 */ + @ExcelProperty(value = "仓库名称",converter = ExcelDepositoryInfoConverter.class) + private Integer depositoryId; + + /** 材料名称 */ + @ExcelProperty("材料名称") + private String mname; + + /** 数量 */ + @ExcelProperty("数量") + private Double quantity; + + /** 总金额 */ + @ExcelProperty("总金额") + private Double amounts; + + /** 材料种类id */ + @ExcelProperty(value = "材料种类",converter = ExcelMaterialTypeInfoConverter.class) + private Integer typeId; + + /** 材料状态 */ + @ExcelProperty(value = "状态",converter = ExcelStateInfoConverter.class) + private Integer state; + + /** 存货编码 */ + @ExcelProperty("存货编码") + private Long code; + + /** 规格型号 */ + @ExcelProperty("规格型号") + private String version; + + /** 单价 */ + @ExcelProperty("单价") + private Double price; + + /** 计量单位 */ + @ExcelProperty("计量单位") + private String unit; + + /** 材质 */ + @ExcelProperty("材质") + private String texture; + + /** 仓库编码 */ + @ExcelProperty("仓库编码") + private String depositoryCode; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Material.java b/src/main/java/com/dreamchaser/depository_manage/entity/Material.java new file mode 100644 index 00000000..9f8e9692 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Material.java @@ -0,0 +1,64 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +import java.math.BigInteger; + +/** + * 产品信息记录(库存)(material) + * @author Dreamchaser + * @version 1.0.0 2021-05-20 + */ +@Data +public class Material { + /** 版本号 */ + private static final long serialVersionUID = 4604245526757565755L; + + /** 存储id */ + private Integer id; + + /** 仓库名称 */ + private Integer depositoryId; + + /** 材料名称 */ + private String mname; + + /** 数量 */ + private Integer quantity; + + /** 总金额 */ + private Double amounts; + + /** 材料种类id */ + private Integer typeId; + + /** 材料状态 */ + private Integer state; + + /** 存货编码 */ + private BigInteger code; + + /** 规格型号 */ + private String version; + + /** 单价 */ + private Double price; + + /** 材料类型 */ + private MaterialType materialType; + + /** 所属仓库 */ + private Depository depository; + + /** 计量单位 */ + private String unit; + + /** 材质 */ + private String texture; + + /** + * 仓库编号 + */ + private String depositoryCode; + +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/MaterialType.java b/src/main/java/com/dreamchaser/depository_manage/entity/MaterialType.java new file mode 100644 index 00000000..0492b21e --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/MaterialType.java @@ -0,0 +1,119 @@ +package com.dreamchaser.depository_manage.entity; + +/** + * material_type + * + * @author bianj + * @version 1.0.0 2021-05-20 + */ +public class MaterialType { + /** 版本号 */ + private static final long serialVersionUID = 5895240732960572981L; + + /* This code was generated by TableGo tools, mark 1 begin. */ + + /** 类型id */ + private Integer id; + + /** 类型名称 */ + private String tname; + + /** 类型介绍 */ + private String introduce; + + /** 类型状态 */ + private int state; + + /** + * 父级编号 + */ + private Integer parentId; + + /* This code was generated by TableGo tools, mark 1 end. */ + + /* This code was generated by TableGo tools, mark 2 begin. */ + + /** + * 获取类型id + * + * @return 类型id + */ + public Integer getId() { + return this.id; + } + + /** + * 设置类型id + * + * @param id + * 类型id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取类型名称 + * + * @return 类型名称 + */ + public String getTname() { + return this.tname; + } + + /** + * 设置类型名称 + * + * @param tname + * 类型名称 + */ + public void setTname(String tname) { + this.tname = tname; + } + + /** + * 获取类型介绍 + * + * @return 类型介绍 + */ + public String getIntroduce() { + return this.introduce; + } + + /** + * 设置类型介绍 + * + * @param introduce + * 类型介绍 + */ + public void setIntroduce(String introduce) { + this.introduce = introduce; + } + + /** + * 获取类型状态 + * @return 类型状态 + */ + public int getState() { + return state; + } + + /** + * 设置类型状态 + * @param state + */ + public void setState(int state) { + this.state = state; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + + /* This code was generated by TableGo tools, mark 2 end. */ +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Md5Encryption.java b/src/main/java/com/dreamchaser/depository_manage/entity/Md5Encryption.java new file mode 100644 index 00000000..ab3b451c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Md5Encryption.java @@ -0,0 +1,65 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; +import lombok.extern.log4j.Log4j2; +import org.apache.commons.codec.digest.DigestUtils; + +import java.util.Map; + + +/** + * 加密算法 + */ +@Log4j2 +@Data +public class Md5Encryption { + private static String CONSTANT_CONFIG_AppKey = "heng_xin_gao_ke_AppKey"; //应用程序密钥 + + private String code; + private String appkey; + + public String Md5EncryptionAlgorithm(){ + if(this.appkey == ""){ + Md5EncryptionInit(this.code); + } + String keyMd5 = DigestUtils.md5Hex(this.appkey); + String codeMd1 = DigestUtils.md5Hex(this.code); + String yiCeng = codeMd1 + keyMd5; + String yiCengMd5 = DigestUtils.md5Hex(yiCeng); + String erCeng = yiCengMd5 + this.appkey; + String md5Val = DigestUtils.md5Hex(erCeng); + return md5Val; + } + + public String Md5EncryptionAlgorithmFj(){ + if(this.appkey == ""){ + Md5EncryptionInit(this.code); + } + log.info("Code ===> "+this.code); + log.info("AppKey ===> "+this.appkey); + + String keyMd5 = DigestUtils.md5Hex(this.appkey); + log.info("Step1:--AppKey-加密->"+keyMd5); + String codeMd1 = DigestUtils.md5Hex(this.code); + log.info("Step2:--CodeString-加密->"+codeMd1); + String yiCeng = codeMd1 + keyMd5; + log.info("Step3:--CodeString+AppKey-->"+yiCeng); + String yiCengMd5 = DigestUtils.md5Hex(yiCeng); + log.info("Step4:--one-加密->"+yiCengMd5); + String erCeng = yiCengMd5 + this.appkey; + log.info("Step5:--one + AppKey->"+erCeng); + String erCengMd5 = DigestUtils.md5Hex(erCeng); + log.info("Step6:--therr--加密-->\n",erCengMd5); + return erCengMd5; + } + + /** + * 初始化程序 + * @param code + */ + public void Md5EncryptionInit(String code){ + this.code = code; + this.appkey = CONSTANT_CONFIG_AppKey; + } +} + diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Notice.java b/src/main/java/com/dreamchaser/depository_manage/entity/Notice.java new file mode 100644 index 00000000..79d9544b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Notice.java @@ -0,0 +1,116 @@ +package com.dreamchaser.depository_manage.entity; + +import java.util.Date; + +/** + * notice + * + * @author bianj + * @version 1.0.0 2021-06-14 + */ +public class Notice implements java.io.Serializable { + /** 版本号 */ + private static final long serialVersionUID = -2744388334561767209L; + + + /** 公告主键 */ + private Integer id; + + /** 公告标题 */ + private String title; + + /** 公告内容 */ + private String content; + + /** 发布时间 */ + private String time; + + + /** + * 获取公告主键 + * + * @return 公告主键 + */ + public Integer getId() { + return this.id; + } + + /** + * 设置公告主键 + * + * @param id + * 公告主键 + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取公告标题 + * + * @return 公告标题 + */ + public String getTitle() { + return this.title; + } + + /** + * 设置公告标题 + * + * @param title + * 公告标题 + */ + public void setTitle(String title) { + this.title = title; + } + + /** + * 获取公告内容 + * + * @return 公告内容 + */ + public String getContent() { + return this.content; + } + + /** + * 设置公告内容 + * + * @param content + * 公告内容 + */ + public void setContent(String content) { + this.content = content; + } + + /** + * 获取发布时间 + * + * @return 发布时间 + */ + public String getTime() { + return this.time; + } + + /** + * 设置发布时间 + * + * @param time + * 发布时间 + */ + public void setTime(String time) { + this.time = time; + } + + /* This code was generated by TableGo tools, mark 2 end. */ + + @Override + public String toString() { + return "Notice{" + + "id=" + id + + ", title='" + title + '\'' + + ", content='" + content + '\'' + + ", time='" + time + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Post.java b/src/main/java/com/dreamchaser/depository_manage/entity/Post.java new file mode 100644 index 00000000..c2d774cc --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Post.java @@ -0,0 +1,101 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +/** + * 岗位类 + */ +@Data +public class Post { + /** + * id + */ + private Integer id; + /** + * 编号 + */ + private String number; + + /** + * 职位名称 + */ + private String name; + + /** + * 职务编号 + */ + private Integer duties; + + /** + * 时间 + */ + private Long time; + + /** + * 状态(1:启用;2:禁用;3:删除) + */ + private Integer state; + + /** + * 归属行政组织 + */ + private Integer administrativeorganization; + + + /** + * 上级 + */ + private Integer superior; + + /** + * 是否为本部门负责人(1:是;2:否) + */ + private Integer personincharge; + + /** + * 部门 + */ + private Integer department; + + /** + * 名称 + */ + private String dutiesname; + + /** + * 职务编号 + */ + private String dutiesnumber; + + /** + * 归属行政组织名称 + */ + private String aoname; + + + /** + * 归属行政组织编号 + */ + private String aonumber; + + /** + * 职务类别 + */ + private String jobname; + + /** + * 上级名称 + */ + private String superiorname; + + /** + * 上级编号 + */ + private String superiornumber; + + /** + * 部门 + */ + private String departmentname; + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/PostOrUserRole.java b/src/main/java/com/dreamchaser/depository_manage/entity/PostOrUserRole.java new file mode 100644 index 00000000..91785e56 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/PostOrUserRole.java @@ -0,0 +1,31 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +@Data +public class PostOrUserRole { + /** + * 编号 + */ + private Integer id; + + /** + * 1个人2岗位 + */ + private Integer classes; + + /** + *关联权限表 + */ + private Integer role; + + /** + * 如果是个人则绑定到人,如果是岗位则绑定岗位 + */ + private Integer userid; + + /** + * 负责仓库编号 + */ + private Integer did; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Role.java b/src/main/java/com/dreamchaser/depository_manage/entity/Role.java new file mode 100644 index 00000000..6a6e95ba --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Role.java @@ -0,0 +1,49 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +@Data +public class Role { + + /** + * 角色id + */ + private int id; + + /** + * 角色名称 + */ + private String name; + + /** + * 获取角色id + * @return + */ + public int getId() { + return id; + } + + /** + * 设置角色id + * @param id + */ + public void setId(int id) { + this.id = id; + } + + /** + * 获取角色名称 + * @return + */ + public String getName() { + return name; + } + + /** + * 设置角色名称 + * @param name + */ + public void setName(String name) { + this.name = name; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/SimpleApplicationOutRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/SimpleApplicationOutRecord.java new file mode 100644 index 00000000..7d40c0f5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/SimpleApplicationOutRecord.java @@ -0,0 +1,22 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +/** + * 简单仓库出库信息,为了前端展示需要,尽量减少字段的传输以提高效率 + * @author Dreamchaser + */ +@Data +public class SimpleApplicationOutRecord { + /** 记录id */ + private Integer id; + + /** 申请人id */ + private Integer applicantId; + + /** 申请备注 */ + private String applyRemark; + + /** 申请时间 */ + private Long applicantTime; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/SimpleDepositoryRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/SimpleDepositoryRecord.java new file mode 100644 index 00000000..67703522 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/SimpleDepositoryRecord.java @@ -0,0 +1,27 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +import java.util.Date; + +/** + * 简单仓库记录信息,为了前端展示需要,尽量减少字段的传输以提高效率 + * @author Dreamchaser + */ +@Data +public class SimpleDepositoryRecord { + /** 记录id */ + private Integer id; + + /** 调度记录类型(购入/退料/转入,退还/领料/转出) */ + private Integer type; + + /** 申请人id */ + private Integer applicantId; + + /** 申请备注 */ + private String applyRemark; + + /** 申请时间 */ + private Long applyTime; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/StandingBook.java b/src/main/java/com/dreamchaser/depository_manage/entity/StandingBook.java new file mode 100644 index 00000000..8e62b1e3 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/StandingBook.java @@ -0,0 +1,130 @@ +package com.dreamchaser.depository_manage.entity; + +/** + * standing_book + * + * @author bianj + * @version 1.0.0 2021-05-20 + */ +public class StandingBook { + /** 版本号 */ + private static final long serialVersionUID = 7203535351933957406L; + + /* This code was generated by TableGo tools, mark 1 begin. */ + + /** 台账记录id */ + private Integer id; + + /** 0表示调入,1表示调出(外部);2表示调入(退料),3表示调出(领料)(内部调用) */ + private Integer type; + + /** 数量 */ + private Integer quantity; + + /** 总价 */ + private Integer price; + + /** 材料名称 */ + private String materialName; + + /* This code was generated by TableGo tools, mark 1 end. */ + + /* This code was generated by TableGo tools, mark 2 begin. */ + + /** + * 获取台账记录id + * + * @return 台账记录id + */ + public Integer getId() { + return this.id; + } + + /** + * 设置台账记录id + * + * @param id + * 台账记录id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取0表示调入,1表示调出(外部);2表示调入(退料),3表示调出(领料)(内部调用) + * + * @return 0表示调入 + */ + public Integer getType() { + return this.type; + } + + /** + * 设置0表示调入,1表示调出(外部);2表示调入(退料),3表示调出(领料)(内部调用) + * + * @param type + * 0表示调入 + */ + public void setType(Integer type) { + this.type = type; + } + + /** + * 获取数量 + * + * @return 数量 + */ + public Integer getQuantity() { + return this.quantity; + } + + /** + * 设置数量 + * + * @param quantity + * 数量 + */ + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + + /** + * 获取总价 + * + * @return 总价 + */ + public Integer getPrice() { + return this.price; + } + + /** + * 设置总价 + * + * @param price + * 总价 + */ + public void setPrice(Integer price) { + this.price = price; + } + + /** + * 获取材料名称 + * + * @return 材料名称 + */ + public String getMaterialName() { + return this.materialName; + } + + /** + * 设置材料名称 + * + * @param materialName + * 材料名称 + */ + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + /* This code was generated by TableGo tools, mark 2 end. */ +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java new file mode 100644 index 00000000..1775eac4 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java @@ -0,0 +1,86 @@ +package com.dreamchaser.depository_manage.entity; + +/** + * transfer_record + * + * @author bianj + * @version 1.0.0 2021-06-05 + */ +public class TransferRecord implements java.io.Serializable { + /** 版本号 */ + private static final long serialVersionUID = 1696077392188910210L; + + /* This code was generated by TableGo tools, mark 1 begin. */ + + /** 转移记录id */ + private Integer id; + + /** 转出仓库id */ + private Integer fromId; + + /** 转入仓库id */ + private Integer toId; + + /* This code was generated by TableGo tools, mark 1 end. */ + + /* This code was generated by TableGo tools, mark 2 begin. */ + + /** + * 获取转移记录id + * + * @return 转移记录id + */ + public Integer getId() { + return this.id; + } + + /** + * 设置转移记录id + * + * @param id + * 转移记录id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取转出仓库id + * + * @return 转出仓库id + */ + public Integer getFromId() { + return this.fromId; + } + + /** + * 设置转出仓库id + * + * @param fromId + * 转出仓库id + */ + public void setFromId(Integer fromId) { + this.fromId = fromId; + } + + /** + * 获取转入仓库id + * + * @return 转入仓库id + */ + public Integer getToId() { + return this.toId; + } + + /** + * 设置转入仓库id + * + * @param toId + * 转入仓库id + */ + public void setToId(Integer toId) { + this.toId = toId; + } + + /* This code was generated by TableGo tools, mark 2 end. */ +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/User.java b/src/main/java/com/dreamchaser/depository_manage/entity/User.java new file mode 100644 index 00000000..0ec51554 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/User.java @@ -0,0 +1,254 @@ +package com.dreamchaser.depository_manage.entity; + +import java.util.Date; +import com.dreamchaser.depository_manage.entity.Role; +/** + * user + * + * @author bianj + * @version 1.0.0 2021-05-05 + */ +public class User { + + /** 用户id */ + private Integer id; + + /** 用户名称 */ + private String uname; + + /** 表示权限等级 */ + private int authority; + + /** 用户登录密码(数据库存储的是加密后的) */ + private String pwd; + + /** 性别 */ + private String sex; + + /** 负责仓库,序号表示仓库id,0表示全部仓库 */ + private Integer depositoryId; + + /** 入职日期 */ + private Date entryDate; + + /** 邮箱 */ + private String email; + + /** 手机号 */ + private String phone; + + /** + * 用户状态 + */ + private int state; + + /** + * 权限类 + */ + private Role role; + + /** + * 获取用户id + * + * @return 用户id + */ + public Integer getId() { + return this.id; + } + + /** + * 设置用户id + * + * @param id + * 用户id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取用户名称 + * + * @return 用户名称 + */ + public String getUname() { + return this.uname; + } + + /** + * 设置用户名称 + * + * @param uname + * 用户名称 + */ + public void setUname(String uname) { + this.uname = uname; + } + + /** + * 获取表示权限等级 + * + * @return 表示权限等级 + */ + public int getAuthority() { + return this.authority; + } + + /** + * 设置表示权限等级 + * + * @param authority + * 表示权限等级 + */ + public void setAuthority(int authority) { + this.authority = authority; + } + + /** + * 获取用户登录密码(数据库存储的是加密后的) + * + * @return 用户登录密码(数据库存储的是加密后的) + */ + public String getPwd() { + return this.pwd; + } + + /** + * 设置用户登录密码(数据库存储的是加密后的) + * + * @param pwd + * 用户登录密码(数据库存储的是加密后的) + */ + public void setPwd(String pwd) { + this.pwd = pwd; + } + + /** + * 获取性别 + * + * @return 性别 + */ + public String getSex() { + return this.sex; + } + + /** + * 设置性别 + * + * @param sex + * 性别 + */ + public void setSex(String sex) { + this.sex = sex; + } + + /** + * 获取负责仓库,序号表示仓库id,0表示全部仓库 + * + * @return 负责仓库 + */ + public Integer getDepositoryId() { + return this.depositoryId; + } + + /** + * 设置负责仓库,序号表示仓库id,0表示全部仓库 + * + * @param depositoryId + * 负责仓库 + */ + public void setDepositoryId(Integer depositoryId) { + this.depositoryId = depositoryId; + } + + /** + * 获取入职日期 + * + * @return 入职日期 + */ + public Date getEntryDate() { + return this.entryDate; + } + + /** + * 设置入职日期 + * + * @param entryDate + * 入职日期 + */ + public void setEntryDate(Date entryDate) { + this.entryDate = entryDate; + } + + /** + * 获取邮箱 + * + * @return 邮箱 + */ + public String getEmail() { + return this.email; + } + + /** + * 设置邮箱 + * + * @param email + * 邮箱 + */ + public void setEmail(String email) { + this.email = email; + } + + /** + * 获取手机号 + * + * @return 手机号 + */ + public String getPhone() { + return this.phone; + } + + /** + * 设置手机号 + * + * @param phone + * 手机号 + */ + public void setPhone(String phone) { + this.phone = phone; + } + + /** + * 获取角色对象 + * @return + */ + public Role getRole() { + return this.role; + } + + /** + * 设置角色对象 + * @param role + */ + public void setRole(Role role) { + this.role = role; + } + + /** + * 获取用户状态 + * @return + */ + public int getState() { + return state; + } + + /** + * 设置用户状态 + * @param state + */ + public void setState(int state) { + this.state = state; + } + + /* This code was generated by TableGo tools, mark 2 end. */ +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java b/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java new file mode 100644 index 00000000..5b044534 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java @@ -0,0 +1,287 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +import java.time.Instant; + +@Data +public class UserByPort { + /** + * id + */ + private Integer id; + + /** + * 工号 + */ + private String number; + + /** + * 姓名 + */ + private String name; + + /** + * 头像 + */ + private String icon; + + /** + * 雇佣类型(1:雇佣入职;2:再入职;) + */ + private Integer hireclass; + + /** + * 用工关系(1:临时工 , 2:编外人员 ;3:实习&实习生;4:试用员工;5:待分配;6:待岗;7:临时调入;8:正式员工;9:长期病假;10:停薪留职;11:退休;12:辞职;13:辞退;14:离职) + */ + private Integer emptype; + + /** + * 入职公司 + */ + private Integer company; + + /** + * 主部门 + */ + private Integer maindeparment; + + /** + * 子部门 + */ + private Integer sunmaindeparment; + + /** + * 部门 + */ + private String deparment; + + /** + * 所属行政组织 + */ + private Integer adminorg; + + /** + * 职位 + */ + private Integer position; + + /** + * 职务分类 + */ + private Integer jobclass; + + /** + * 职务 + */ + private Integer jobid; + + /** + * 职务等级 + */ + private Integer jobleve; + + /** + * 写入时间 + */ + private long time; + + /** + * 编辑时间 + */ + private long eitetime; + + /** + * /微信UserId + */ + private String wechat; + + /** + * 企业微信UserId + */ + private String workwechat; + + /** + * 状态(1:启用;2:禁用;3:删除) + */ + private Integer state; + + /** + * 身份识别 + */ + private long key; + + /** + * 是否为管理员(1:不是;2:分公司;3:集团管理员;4:超级管 + */ + private Integer isadmin; + + /** + * 密码 + */ + private String password; + + /** + * 角色 + */ + private Integer role; + + /** + * 身份证号 + */ + private String idcardno; + + /** + * 护照号码 + */ + private String passportno; + + /** + * 国际区号 + */ + private String globalroaming; + + /** + * 手机号码 + */ + private String mobilephone; + + /** + * 电子邮箱,比如 example@qq.com + */ + private String email; + + /** + * 性别(1:男性;2:女性;3:中性) + */ + private Integer gender; + + /** + * 生日 + */ + private Long birthday; + + /** + * 民族 + */ + private String myfolk; + + /** + * 籍贯 + */ + private String nativeplace; + + /** + * 身份证有效期开始 + */ + private Long idcardstartdate; + + /** + * 身份证有效期结束 + */ + private Long idcardenddate; + + /** + * 身份证地址 + */ + private String idcardaddress; + + /** + * 身份证签发机关 + */ + private String idcardIssued; + + /** + * 健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废) + */ + private Integer health; + + /** + * /婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异) + */ + private Integer maritalstatus; + + /** + * 内线电话 + */ + private String internaltelephone; + + /** + * 现居住地址 + */ + private String currentresidence; + + /** + * 星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座 + */ + private Integer constellationing; + + /** + * 是否双职工(1:是;2:否) + */ + private Integer isdoubleworker; + + /** + * 是否为退役军人(1:是;2:否) + */ + private Integer isveterans; + + /** + * 退役证编号 + */ + private String veteransnumber; + + /** + * 参加工作日期 + */ + private Long jobstartdate; + + /** + * 入职日期 + */ + private Long entrydate; + + /** + * 试用期 + */ + private Integer probationperiod; + + /** + * 预计转正日期 + */ + private Long planformaldate; + + /** + * 政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员) + */ + private Integer politicaloutlook; + + /** + * 公司名称 + */ + private String companyname; + + /** + * 主部门 + */ + private String maindeparmentname; + + /** + * 岗位 + */ + private String sunmaindeparmentname; + + private String workpostname; + + /** + * 职位 + */ + private String positionname; + + /** + * 身份认证 + */ + private String keystr; + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/exception/MyException.java b/src/main/java/com/dreamchaser/depository_manage/exception/MyException.java new file mode 100644 index 00000000..3fceb47e --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/exception/MyException.java @@ -0,0 +1,44 @@ +package com.dreamchaser.depository_manage.exception; + + +/** + * 自定义异常类 + * @author 金昊霖 + */ +public class MyException extends RuntimeException { + /** + * 异常码 + */ + private int code; + /** + * 异常信息 + */ + private String msg; + + public MyException(int code, String msg){ + super(msg); + this.code = code; + this.msg = msg; + } + + public MyException(String msg){ + super(msg); + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/exceptionHandler/ApplicationContextHolder.java b/src/main/java/com/dreamchaser/depository_manage/exceptionHandler/ApplicationContextHolder.java new file mode 100644 index 00000000..f35f059a --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/exceptionHandler/ApplicationContextHolder.java @@ -0,0 +1,46 @@ +package com.dreamchaser.depository_manage.exceptionHandler; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.event.ApplicationEventMulticaster; +import org.springframework.stereotype.Component; + +/** + * 静态变量保存 Spring ApplicationContext,,可在任何代码任何地方任何时候中取出 ApplicaitonContext + */ +@Component +public class ApplicationContextHolder implements ApplicationContextAware { + + private static ApplicationContext context; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + context = applicationContext; + } + + public static ApplicationContext getContext() { + return context; + } + + public static Object getBean(String name) { + return context != null ? context.getBean(name) : null; + } + + public static T getBean(Class clz) { + return context != null ? context.getBean(clz) : null; + } + + public static T getBean(String name, Class clz) { + return context != null ? context.getBean(name, clz) : null; + } + + public static void addApplicationListenerBean(String listenerBeanName) { + if (context != null) { + ApplicationEventMulticaster applicationEventMulticaster = (ApplicationEventMulticaster)context.getBean(ApplicationEventMulticaster.class); + applicationEventMulticaster.addApplicationListenerBean(listenerBeanName); + } + } + +} + diff --git a/src/main/java/com/dreamchaser/depository_manage/exceptionHandler/CustomExceptionHandler.java b/src/main/java/com/dreamchaser/depository_manage/exceptionHandler/CustomExceptionHandler.java new file mode 100644 index 00000000..30538f07 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/exceptionHandler/CustomExceptionHandler.java @@ -0,0 +1,29 @@ +package com.dreamchaser.depository_manage.exceptionHandler; + +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.pojo.StatusInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + + +/** + * 全局异常捕捉处理 + * @author 金昊霖 + */ +@ControllerAdvice +@Slf4j +public class CustomExceptionHandler { + + @ResponseBody + @ExceptionHandler(value = Exception.class) + public RestResponse errorHandler(MyException e) { + + return new RestResponse(null,e.getCode(),new StatusInfo(e.getMsg(),e.getMsg())); + } + +} + + diff --git a/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java b/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java new file mode 100644 index 00000000..27b4e2c7 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java @@ -0,0 +1,54 @@ +package com.dreamchaser.depository_manage.intercepter; + +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 认证拦截器,如果请求头中有相应凭证则放行,否则拦截返回认证失效错误 + * @author 金昊霖 + */ +@Slf4j +@Component +public class UserInterceptor extends HandlerInterceptorAdapter { + + @Override + public boolean preHandle(HttpServletRequest request, + HttpServletResponse response, Object handler) throws MyException { + + //拿到requset中的head + String token =null; + Cookie[] cookies=request.getCookies(); + if (cookies!=null){ + for (Cookie c:cookies){ + if (c.getName().equals("token")){ + token=c.getValue(); + break; + } + } + } + //如果是访问logout则删除对应的令牌 + if ("/logout".equals(request.getServletPath())){ + AuthenticationTokenPool.removeToken(token); + return true; + } + if (token!=null&&AuthenticationTokenPool.getToken(token)!=null){ + request.setAttribute("userToken",AuthenticationTokenPool.getToken(token)); + return true; + }else { + try { + response.sendRedirect("/login"); + } catch (IOException e) { + e.printStackTrace(); + } + return false; + } + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java b/src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java new file mode 100644 index 00000000..f65f45d1 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java @@ -0,0 +1,90 @@ +package com.dreamchaser.depository_manage.listener; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.exception.ExcelDataConvertException; +import com.alibaba.excel.metadata.Cell; +import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.fastjson.JSON; +import com.dreamchaser.depository_manage.utils.ResultVo; +import com.dreamchaser.depository_manage.utils.ResultVoUtil; +import lombok.extern.slf4j.Slf4j; + +import java.util.*; + +@Slf4j +public class ExcelListener extends AnalysisEventListener { + + // 返回读取到的excel中的数据 + List dataList = new ArrayList<>(); + + // 获取错误信息 + List errMsg = new ArrayList<>(); + + public ExcelListener() { + } + + // 每一条数据解析都会来调用 + @Override + public void invoke(T t, AnalysisContext analysisContext) { + log.info("【Excel文件】解析到一条数据{}:", JSON.toJSONString(t)); + dataList.add(t); + } + + + // 所有数据解析完成了 才会来调用 + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("【Excel文件】Excel所有数据解析完毕!"); + } + + public List getDataList() { + return dataList; + } + + /** + * 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。 + * + * @param exception + * @param context + * @throws Exception + */ + @Override + public void onException(Exception exception, AnalysisContext context) throws Exception { + log.error("解析失败,但是继续解析下一行:{}", exception.getMessage()); + // 如果是某一个单元格的转换异常 能获取到具体行号 + // 如果要获取头的信息 配合invokeHeadMap使用 + Map cellMap = context.readRowHolder().getCellMap(); + Collection values = cellMap.values(); + Iterator iterator = values.iterator(); + + String result = ""; + while (iterator.hasNext()){ + ReadCellData next = (ReadCellData) iterator.next(); + if(next.getStringValue() != null) { + result += next.getStringValue() + " "; + }else if(next.getNumberValue() != null){ + result += next.getNumberValue().toString() + " "; + } + } + int errRow = 0; + int errColumn = 0; + if (exception instanceof ExcelDataConvertException) { + ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; + errRow = excelDataConvertException.getRowIndex() + 1; + errColumn = excelDataConvertException.getColumnIndex() + 1; + log.error("第{}行,第{}列解析异常,数据为:{}", excelDataConvertException.getRowIndex() + 1, + excelDataConvertException.getColumnIndex() + 1, result); + } + String msg = "第"+errRow+"行,第"+errColumn+"列解析异常,数据为:"+result; + errMsg.add(msg); + } + + /** + * 返回错误信息 + * @return + */ + public List retrunErrMsg(){ + return errMsg; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.java new file mode 100644 index 00000000..a343c700 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.java @@ -0,0 +1,52 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.AccesstoAddress; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +@Mapper +@Repository +public interface AccesstoAddressMapper { + + /** + * 查询所有菜单 + * @return + */ + + List findAllMenus(); + + /**根据角色查询对应菜单 + * + * @return + */ + List findMenusByRole(Map map); + + /** + * 查询所有没有父菜单的菜单 + * @return + */ + List findMenusByNoParent(); + + /** + * 根据父菜单编号查询对应子菜单 + * @param id + * @return + */ + List findAccessstoAddressByParent(Integer id); + + List findAccessstoAddressByParentAndRole(Map map); + + List findAccessToAddressByUser(Map map); + + + /** + * 根据菜单列表编号获取菜单 + * @param menus + * @return + */ + List findAccessToAddressByList(List menus); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml new file mode 100644 index 00000000..b412adc9 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + a.id,a.name,a.url ,a.`type` ,a.role_id ,a.menuparent ,a.state,a.icon,a.target,a.ischild + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.java new file mode 100644 index 00000000..241b740b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.java @@ -0,0 +1,93 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.Company; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +@Mapper +@Repository +public interface CompanyMapper { + /** + * 查询所有公司 + * @return + */ + List findCompanyAll(); + + /** + * 根据父级查询公司信息 + * @return + */ + List findCompanyByParentId(Integer parentId); + + /** + * 根据id编号删除公司信息 + * @param id + * @return + */ + Integer deleteCompanyById(Integer id); + + /** + * 修改公司信息 + * @param map + * @return + */ + Integer updateCompany(Map map); + + /** + * 插入公司信息 + * @param map + * @return + */ + Integer insertCompany(Map map); + + /** + * 根据条件查询公司 + * @return + */ + List findCompanyByCondition(Map map); + + /** + * 根据查询条件返回该表的总条数 + * @param map 条件参数 + * @return + */ + Integer findCountByCondition(Map map); + + /** + * 根据主键查询公司信息 + * @param id + * @return + */ + Company findcompanyById(Integer id); + + /** + * 根据主键将公司状态改为删除 + * @param id + * @return + */ + Integer changeStateToDeletedById(Integer id); + + /** + * 根据主键批量将公司状态改为删除 + * @param ids + * @return + */ + Integer changeStateToDeletedByIds(List ids); + + /** + * 根据条件修改公司状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); + + /** + * 根据编号批量删除公司信息 + * @param ids + * @return + */ + Integer deleteCompanyByIds(List ids); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml new file mode 100644 index 00000000..7d530af5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + c.cid, c.cname ,c.state , c.parentId,c.introduce + + + + + + + + + + + + + + + + + + + DELETE FROM company WHERE cid = #{id} + + + + + DELETE FROM company WHERE cid IN + + #{id} + + + + + + UPDATE company + + + cname = #{cname}, + + + introduce = #{introduce}, + + + state = #{state}, + + + parentId = #{parentId} + + + WHERE cid = #{id} + + + + + INSERT INTO company ( + cid, cname, introduce,parentId + ) VALUES ( + #{id}, + #{cname}, + #{introduce}, + #{parentId} + ) + + + + + update company + + state = 3 + + where cid = #{id} + + + + + + update company + + state = 3 + + where cid in + + #{id} + + + + + + update company + + state = #{state} + + where cid = #{cid} + + and state = #{oldState} + + and state != 3 + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java new file mode 100644 index 00000000..3886c027 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java @@ -0,0 +1,133 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.Depository; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ +@Mapper +@Repository +public interface DepositoryMapper { + /** + * 插入一条仓库记录 + * @param map 参数map + * @return 受影响的行数 + */ + Integer insertDepository(Map map); + + /** + * 根据条件查询仓库 + * @return 仓库集合 + */ + List findDepositoryRecordPByCondition(Map map); + + /** + * 根据主键查询多个数据 + * @param ids + * @return + */ + List selectDepositoryRecordByIds(List ids); + + /** + * 根据仓库id查询仓库名称 + * @param id 仓库id + * @return 仓库名称 + */ + String findDepositoryNameById(int id); + + + /** + * 根据查询条件返回该表的总条数 + * @param map 条件参数 + * @return 条数 + */ + Integer findCountByCondition(Map map); + + + + /** + * 根据仓库id删除仓库信息 + * @param id 参数id + * @return 受影响条数 + */ + Integer deleteDepositoryRecordById(Integer id); + + /** + * 根据仓库id批量删除仓库信息 + * @param list 参数list + * @return 受影响条数 + */ + Integer deleteDepositoryRecordByIds(List list); + + + /** + * 根据仓库id查看具体信息 + * @param id 参数id + * @return 对应仓库信息 + */ + Depository findDepositoryRecordById(Integer id); + + /** + * 根据条件修改数据信息 + * @param map + * @return 影响条数 + */ + Integer updateDepository(Map map); + + /** + * 查询所有数据记录 + * @return 所有数据 + */ + List findDepositoryAll(); + + + /** + * 根据主键id获取对应数据 + * @param id + * @return 搜索结果 + */ + Integer changeStateToDeletedById(Integer id); + + /** + * 根据多个主键id将对应仓库状态改为删除 + * @param ids + * @return 受影响数目 + */ + Integer changeStateToDeletedByIds(List ids); + + + /** + * 获取仓库总数 + * @return + */ + Integer findAllCountByState(); + + + /** + * 根据仓库名称获取当前仓库库存容量 + * @param dname + * @return + */ + Double getToDayInventoryByDName(String dname); + + + /** + * 根据条件修改状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); + + + /** + * 根据仓库查询管理人名 + * @param depositoryId + * @return + */ + String findUserNameByDepositoryId(Integer depositoryId); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml new file mode 100644 index 00000000..762c1a96 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + d.id, d.dname, d.address, d.introduce,d.state,d.parentId,d.cid + + + + id,dname,address,introduce,state,parentId,cid,cname + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO depository ( + id, dname, address, introduce,parentId,cid + ) VALUES ( + #{id}, + #{dname}, + #{address}, + #{introduce}, + #{parentId}, + #{cid} + ) + + + + + + + UPDATE depository + + + dname = #{dname}, + + + address = #{address}, + + + introduce = #{introduce}, + + + state = #{state}, + + + parentId = #{parentId}, + + + cid = #{cid} + + + WHERE id = #{id} + + + + + + + + + DELETE FROM depository WHERE id = #{id} + + + + + + DELETE FROM depository WHERE id IN + + #{id} + + + + + + UPDATE depository + + state = 3 + + WHERE id = #{id} + + + + UPDATE depository + + state = #{state} + + + where id = #{id} + + and state = #{oldState} + + and state != 3 + + + + + update depository + + state = 3 + + where id in + + #{id} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java new file mode 100644 index 00000000..c9d6532c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java @@ -0,0 +1,232 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.ApplicationOutRecord; +import com.dreamchaser.depository_manage.entity.DepositoryRecord; +import com.dreamchaser.depository_manage.entity.SimpleApplicationOutRecord; +import com.dreamchaser.depository_manage.entity.SimpleDepositoryRecord; +import com.dreamchaser.depository_manage.pojo.ApplicationInRecordP; +import com.dreamchaser.depository_manage.pojo.ApplicationOutRecordP; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + + + +/** + * 仓库调度类 + * @author Dreamchaser + */ +@Mapper +@Repository +public interface DepositoryRecordMapper { + /** + * 插入一条仓库调度记录 + * @param map 仓库调度信息 + * @return 受影响的行数 + */ + Integer insertDepositoryRecord(Map map); + + /** + * 插入一条入库记录 + * @param map + * @return + */ + Integer insertApplicationInRecord(Map map); + + + /** + * 根据id删除一条仓库调度记录 + * @param id 记录id + * @return 受影响的行数 + */ + Integer deleteDepositoryRecordById(Integer id); + + /** + * 根据id修改仓库调度记录 + * @param map 参数map + * @return 受影响的行数 + */ + Integer updateDepositoryRecord(Map map); + + /** + * 根据id修改仓库调度记录 + * @param map 参数map + * @return 受影响的行数 + */ + Integer updateApplicationOutRecord(Map map); + + /** + * 根据id主键查询数据 + * @param id id + * @return 该id的数据记录 + */ + DepositoryRecord findDepositoryRecordById(Integer id); + + /** + * 查找所有仓库调度记录 + * @return 所有的仓库调度记录集合 + */ + List findDepositoryRecordAll(); + + /** + * 根据条件查询仓库调度记录,同时支持分页查询(需要begin和size参数) + * @param map 查询参数 + * @return 符合条件的仓库调度记录集合 + */ + List findDepositoryRecordByCondition(Map map); + + /** + * 根据条件查询自己的任务(根据isDone来决定查询已完成或者未完成的任务),同时支持分页查询(需要begin和size参数) + * @param map 查询参数 + * @return 我的任务 + */ + List findMyTask(Map map); + + /** + * 根据条件查询自己的任务(根据isDone来决定查询已完成或者未完成的任务),同时支持分页查询(需要begin和size参数) + * @param map 查询参数 + * @return 我的任务 + */ + List findMyTaskOut(Map map); + + /** + * 根据id删除仓库记录 + * @return 受影响的行数 + */ + Integer deleteDepositoryRecordById(); + + /** + * 根据id集合删除多条仓库记录 + * @param list id集合 + * @return 受影响的行数 + */ + Integer deleteDepositoryRecordByIds(List list); + + /** + * 返回该表的总条数 + * @return 条数 + */ + Integer findCount(); + + /** + * 返回该我的任务数(完成或者未完成) + * @param map 参数map + * @return 条数 + */ + Integer findMyTaskCount(Map map); + /** + * 返回该我的任务数(完成或者未完成) + * @param map 参数map + * @return 条数 + */ + Integer findMyTaskOutCount(Map map); + + /** + * 根据查询条件返回该表的总条数 + * @param map 条件参数 + * @return 条数 + */ + Integer findCountByCondition(Map map); + + /** + * 获取一段时间内的库存额度 + * @param map + * @return + */ + Double findDepositoryRecordByDate(Map map); + + /** + * 根据条件获取月份中材料的总额 + * @param map + * @return + */ + Double findMaterialCountByMonth(Map map); + + /** + * 查询仓库当天流水 + * @return + */ + Integer findWarehouseRecord(Map map); + + + /** + * 根据条件查询入库记录,同时支持分页查询 + * @param map + * @return + */ + List findApplicationInRecordPByCondition(Map map); + + + + /** + * 根据条件查询出库记录,同时支持分页查询 + * @param map + * @return + */ + List findApplicationOutRecordPByCondition(Map map); + /** + * 根据条件查询入库记录数目 + * @param map + * @return + */ + Integer findApplicationInRecordPCountByCondition(Map map); + + /** + * 根据条件查询出库记录数目 + * @param map + * @return + */ + Integer findApplicationOutRecordPCountByCondition(Map map); + + + /** + * 根据id查询入库记录 + * @param id + * @return + */ + ApplicationInRecordP findApplicationInRecordPById(Integer id); + + /** + * 根据id查询出库申请 + * @param id + * @return + */ + ApplicationOutRecordP findApplicationOutRecordPById(Integer id); + + /** + * 根据id删除入库记录 + * @return 受影响的行数 + * @param id + */ + Integer deleteApplicationInRecordById(Integer id); + + /** + * 根据id集合删除多条入库记录 + * @param list id集合 + * @return 受影响的行数 + */ + Integer deleteApplicationInRecordByIds(List list); + + /** + * 插入一条出库记录 + * @param map + * @return + */ + Integer insertApplicationOutRecord(Map map); + + /** + * 根据id删除出库记录 + * @return 受影响的行数 + * @param id + */ + Integer deleteApplicationOutRecordById(Integer id); + + /** + * 根据id集合删除多条出库记录 + * @param list id集合 + * @return 受影响的行数 + */ + Integer deleteApplicationOutRecordByIds(List list); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml new file mode 100644 index 00000000..a8e65d91 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml @@ -0,0 +1,941 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dr.id, dr.type, dr.applicant_id, dr.apply_remark, dr.apply_time ,dr.oldId + + + + aorid,applicantId, applyRemark, applicantTime,aorcode + + + + dr.id, dr.application_id, dr.mname, dr.depository_id, dr.type, dr.quantity, dr.price, dr.state, + dr.applicant_id, dr.apply_remark, dr.apply_time, dr.reviewer_id, dr.review_remark, dr.review_time, dr.review_pass, + dr.checker_id, dr.check_remark, dr.check_time, dr.check_pass ,dr.oldId + + + + dr.id, dr.application_id, dr.mname, dr.depository_id, dr.type, dr.quantity, dr.price, dr.state, + dr.applicant_id, dr.apply_remark, dr.apply_time, dr.reviewer_id, dr.review_remark, dr.review_time, dr.review_pass, + dr.checker_id, dr.check_remark, dr.check_time, dr.check_pass,uname as uname,u2name as uname,u3name as uname ,oldId + + + + id,mid,quantity,price,applicant_id,applicant_time,code,depository_id,applyRemark + + + + airid,mname,quantity,price,tname,applicant_time,aircode,dname,applicant_id,applyRemark + + + + aorid,mid,mname,depositoryId,dname,applicantId,applicantTime,applyRemark,aorcode,aorpirce,aorquantity,departmenthead,departmentheadPass,departmentHeadTime,departmentheadMessage, + depositoryManager,depositoryManagerPass,depositoryManagerTime,depositoryManagerMessage,aorstate,istransfer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into application_in_record (id,mid,quantity,price,applicant_id,applicant_time,depository_id,code,applyRemark) + values( + #{id}, + #{mid}, + #{quantity}, + #{price}, + #{applicantId}, + #{applicant_time}, + #{depositoryId}, + #{code}, + #{applyRemark} + ) + + + + + insert into application_out_record + (id,mid,depository_id,applicant_id,applicant_time,code,price,quantity,departmenthead,departmenthead_pass,departmenthead_time, + departmenthead_messgae,depository_manager,depository_manager_pass,depository_manager_time,depository_manager_message,apply_remark,state,istransfer) + values( + #{id}, + #{mid}, + #{depositoryId}, + #{applicantId}, + #{applicantTime}, + #{code}, + #{price}, + #{quantity}, + #{departmenthead}, + #{departmentheadPass}, + + 0, + + + #{departmentheadTime}, + + #{departmentheadMessgae}, + #{depositoryManager}, + #{depositoryManagerPass}, + + 0, + + + #{depositoryManagerTime}, + + #{depositoryManagerMessage}, + #{applyRemark}, + #{state}, + #{istransfer} + ) + + + + + + INSERT INTO depository_record ( + id, application_id, mname, depository_id, type, quantity, price, state, + applicant_id, apply_remark, apply_time, + reviewer_id, review_remark, review_time,review_pass, checker_id, check_remark, + check_time,check_pass,oldId + ) VALUES ( + #{id}, + #{applicationId}, + #{mname}, + #{depositoryId}, + #{type}, + #{quantity}, + #{price}, + #{state}, + #{applicantId}, + #{applyRemark}, + + 0, + + + #{applyTime}, + + #{reviewerId}, + #{reviewRemark}, + + + + 0, + + + #{reviewTime}, + + #{reviewPass}, + #{checkerId}, + #{checkRemark}, + + 0, + + + #{checkTime}, + + #{checkPass}, + #{oldId} + ) + + + + + INSERT INTO depository_record ( + id, application_id, mname, depository_id, type, quantity, price, state, + applicant_id, apply_remark, apply_time, reviewer_id, review_remark, review_time,review_pass, checker_id, check_remark, + check_time,check_pass + ) VALUES + + ( + #{id}, + #{applicationId}, + #{mname}, + #{depositoryId}, + #{type}, + #{quantity}, + #{price}, + #{state}, + #{applicantId}, + #{applyRemark}, + #{applyTime}, + #{reviewerId}, + #{reviewRemark}, + #{reviewTime}, + #{reviewPass}, + #{checkerId}, + #{checkRemark}, + #{checkTime}, + #{checkPass} + ) + + + + + + UPDATE depository_record + + + application_id = #{applicationId}, + + + mname = #{mname}, + + + depository_id = #{depositoryId}, + + + type = #{type}, + + + quantity = #{quantity}, + + + price = #{price}, + + + state = #{state}, + + + applicant_id = #{applicantId}, + + + apply_remark = #{applyRemark}, + + + apply_time = #{applyTime}, + + + reviewer_id = #{reviewerId}, + + + review_remark = #{reviewRemark}, + + + review_time = #{reviewTime}, + + + review_pass = #{reviewPass}, + + + checker_id = #{checkerId}, + + + check_remark = #{checkRemark}, + + + check_time = #{checkTime}, + + + check_pass = #{checkPass} + + + WHERE id = #{id} + + + + + UPDATE application_out_record + + + mid = #{mid}, + + + depository_id = #{depositoryId}, + + + applicant_id = #{applicantId}, + + + applicant_time = #{applicantTime}, + + + code = #{code}, + + + price = #{price}, + + + quantity = #{quantity}, + + + departmenthead = #{departmenthead}, + + + departmenthead_pass = #{departmentheadPass}, + + + departmenthead_time = #{departmentheadTime}, + + + departmenthead_messgae = #{departmentheadMessage}, + + + depository_manager = #{depositoryManager}, + + + depository_manager_pass = #{depositoryManagerPass}, + + + depository_manager_time = #{depositoryManagerTime}, + + + depository_manager_message = #{depositoryManagerMessage}, + + + state = #{state} + + + WHERE id = #{id} + + + + + UPDATE depository_record + + + application_id = #{applicationId}, + + + mname = #{mname}, + + + depository_id = #{depositoryId}, + + + type = #{type}, + + + quantity = #{quantity}, + + + price = #{price}, + + + state = #{state}, + + + applicant_id = #{applicantId}, + + + apply_remark = #{applyRemark}, + + + apply_time = #{applyTime}, + + + reviewer_id = #{reviewerId}, + + + review_remark = #{reviewRemark}, + + + review_time = #{reviewTime}, + + + review_pass = #{reviewPass}, + + + checker_id = #{checkerId}, + + + check_remark = #{checkRemark}, + + + check_time = #{checkTime}, + + + check_pass = #{checkPass} + + + WHERE id = #{item.id} + + + + + + DELETE FROM depository_record WHERE id = #{id} + + + + + DELETE FROM depository_record WHERE id IN + + #{id} + + + + + + + + + + + + + + + + DELETE FROM application_in_record WHERE id = #{id} + + + + + DELETE FROM application_in_record WHERE id IN + + #{id} + + + + + + DELETE FROM application_out_record WHERE id = #{id} + + + + + DELETE FROM application_out_record WHERE id IN + + #{id} + + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java new file mode 100644 index 00000000..24a49dfe --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java @@ -0,0 +1,119 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.Material; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ +@Repository +@Mapper +public interface MaterialMapper { + + /** + * 增加一条库存记录 + * + * @param map 参数map + * @return 受影响的行数 + */ + Integer insertMaterial(Map map); + + /** + * 更新一条库存记录 + * + * @param map 参数列表 + * @return 受影响的行数 + */ + Integer updateMaterial(Map map); + + /** + * 更新一条库存记录 + * @param material 修改的参数 + * @return 受影响的行数 + */ + Integer updateMaterial(Material material); + + /** + * 将对应仓库id和材料名称的库存修改数量和价格 + * @param map 参数列表 + * @return 受影响的行数 + */ + Integer changeMaterial(Map map); + + /** + * 根据id删除一条库存记录 + * @param id 库存id + * @return 受影响的行数 + */ + Integer deleteMaterialById(int id); + + /** + * 根据条件查询符合条件的库存信息 + * @param map 条件map + * @return 符合条件的库存信息 + */ + List findMaterialByCondition(Mapmap); + + + /** + * 根据id查询库存信息 + * @param id 库存id + * @return 库存信息 + */ + Material findMaterialById(int id); + + + /** + * 根据id查询库存信息 + * @param id 库存id + * @return 库存信息 + */ + Material findMaterialAndTypeById(int id); + + /** + * 根据id批量查询库存信息 + * @param ids 库存id集合 + * @return 库存信息 + */ + Material findMaterialByIds(List ids); + + /** + * 查询所有库存条数 + * @return 库存记录的行数 + */ + Integer findCount(); + + /** + * 根据条件返回符合条件的库存记录行数 + * @param map 参数 + * @return 符合条件的记录行数 + */ + Integer findCountByCondition(Map map); + + /** + * 根据主键id批量将材料状态改为删除 + * @param ids + * @return 受影响条数 + */ + Integer changeStateToDeletedByIds(List ids); + /** + * 根据主键id将材料状态改为删除 + * @param id + * @return 受影响条数 + */ + Integer changeStateToDeletedById(Integer id); + + /** + * 根据条件修改状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml new file mode 100644 index 00000000..59eeb0f8 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m.id, m.depository_id, m.mname, m.quantity, m.price, m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,m.depositoryCode + + + + + m.id,m.depository_id,m.mname,m.quantity,m.price,m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,mt.tname,m.depositoryCode,d.dname + + + + + id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode + + + + + + + + + + + + + + + + + + + + + + INSERT INTO material ( + id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode + ) VALUES ( + #{id}, + #{depositoryId}, + #{mname}, + #{quantity}, + #{price}, + #{materialTypeId}, + #{code}, + #{unit}, + #{version}, + #{texture}, + #{amounts}, + #{depositoryCode} + ) + + + + + + + + UPDATE material + + + depository_id = #{depositoryId}, + + + mname = #{mname}, + + + quantity = #{quantity}, + + + price = #{price}, + + + type_id = #{typeId}, + + + state = #{state}, + + + amounts = #{amounts}, + + + version = #{version}, + + + code = #{code}, + + + unit = #{unit}, + + + depositoryCode = #{depositoryCode} + + + WHERE id = #{id} + + + + + UPDATE material + + + + + quantity = quantity+#{quantity}, + + + price = price + #{price} + + + + + quantity = quantity - #{quantity}, + + + price = price - #{price} + + + + + WHERE + depository_id = #{depositoryId} and mname = #{mname}, + + + + + + + + DELETE FROM material WHERE id = #{id} + + + + + + UPDATE material + + state = 3 + + WHERE id = #{id} + + + + UPDATE material + + state = #{state} + + where id = #{id} + + and state = #{oldState} + + and state != 3 + + + + + update material + + state = 3 + + where id in + + #{id} + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java new file mode 100644 index 00000000..468ab769 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java @@ -0,0 +1,109 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.MaterialType; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ +@Repository +@Mapper +public interface MaterialTypeMapper { + /** + * 根据map插入一条新材料类型 + * @param map 参数map + * @return 受影响的行数 + */ + Integer insertMaterialType(Map map); + + /** + * 根据id修改材料类型数据 + * @param map 修改的参数 + * @return 受影响的行数 + */ + Integer updateMaterialType(Map map); + + /** + * 根据id查询材料类型 + * @param id 材料类型id + * @return 材料类型对象 + */ + MaterialType findMaterialTypeById(Integer id); + + /** + * 根据id查询材料名称 + * @param id 材料类型id + * @return 材料名称 + */ + String findMaterialTypeNameById(Integer id); + + /** + * 根据条件查询材料类型数目 + * @param map 条件参数map + * @return 符合条件的数目 + */ + Integer findMaterialTypeCountByCondition(Map map); + + /** + * 根据条件查询材料类型 + * @param map 条件参数map + * @return 符合条件的材料类型 + */ + List findMaterialTypeByCondition(Map map); + + /** + * 查询所有材料类型 + * @return 所有材料类型 + */ + List findMaterialTypeAll(); + + + /** + * 根据id删除材料类型 + * @param id 待删除id + * @return 受影响的条数 + */ + Integer deleteMaterialTypeById(Integer id); + + /** + * 根据多个id删除材料类型 + * @param ids 待删除所有id + * @return 受影响条数 + */ + Integer deleteMaterialTypeByIds(List ids); + + /** + * 批量修改数据 + * @param map + * @return 受影响条数 + */ + Integer updateMaterialTypes(Map map); + + /** + * 根据主键id将材料类型状态修改为删除 + * @param id + * @return 受影响条数 + */ + Integer changeStateToDeletedById(Integer id); + + /** + * 根据多个主键id将材料类型状态修改为删除 + * @param ids + * @return 受影响条数 + */ + Integer changeStateToDeletedByIds(List ids); + + + /** + * 根据条件修改类型状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml new file mode 100644 index 00000000..2920474a --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + mt.id, mt.tname, mt.introduce, mt.state,mt.parentId + + + + + + + + + + + + + + + + + + + + + INSERT INTO material_type ( + id, tname, introduce,parentId + ) VALUES ( + #{id}, + #{tname}, + #{introduce}, + #{parentId} + ) + + + + + + + + UPDATE material_type + + + tname = #{tname}, + + + introduce = #{introduce}, + + + state = #{state}, + + + parentId = #{parentId} + + + WHERE id = #{id} + + + + + + UPDATE material_type + + + tname = #{item.tname}, + + + introduce = #{item.introduce} + + + state = #{state} + + + parentId = #{parentId} + + + WHERE id = #{item.id} + + + + + + + DELETE FROM material_type WHERE id = #{id} + + + + + DELETE FROM material_type WHERE id IN + + #{id} + + + + + + update material_type + + state = 3 + + where id = #{id} + + + + + + update material_type + + state = 3 + + where id in + + #{id} + + + + + update material_type + + state = #{state} + + where id = #{id} + + and state = #{oldState} + + and state != 3 and mt.state != 4 + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.java new file mode 100644 index 00000000..dc9418ce --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.java @@ -0,0 +1,31 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.Notice; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ +@Mapper +@Repository +public interface NoticeMapper { + + /** + * 增加一条公告信息 + * @param map 参数map + * @return 受影响的行数 + */ + Integer addNotice(Map map); + + /** + * 根据条件查询符合条件的公告信息 + * @param map 参数map + * @return 符合条件的公告列表 + */ + List findNoticeByCondition(Map map); + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml new file mode 100644 index 00000000..0fc155b2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + n.id, n.title, n.content, n.time + + + + + + + + + + + + + + INSERT INTO notice ( + title, content, time + ) VALUES ( + #{title}, + #{content}, + #{time} + ) + + + + + INSERT INTO notice ( + id, title, content, time + ) VALUES + + ( + #{item.id}, + #{item.title}, + #{item.content}, + #{item.time} + ) + + + + + + UPDATE notice + + + title = #{title}, + + + content = #{content}, + + + time = #{time} + + + WHERE id = #{id} + + + + + + UPDATE notice + + + title = #{item.title}, + + + content = #{item.content}, + + + time = #{item.time} + + + WHERE id = #{item.id} + + + + + + DELETE FROM notice WHERE id = #{id} + + + + + DELETE FROM notice WHERE id IN + + #{id} + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java new file mode 100644 index 00000000..649f77d0 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java @@ -0,0 +1,60 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.Role; +import com.dreamchaser.depository_manage.pojo.RoleAndDepository; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +@Mapper +@Repository +public interface RoleMapper { + /** + * 获取所有权限 + * @return + */ + List findAllRole(); + + + /** + * 添加用户或者岗位权限及管理的仓库 + * @param map + * @return + */ + Integer addUserOrPostRoleAndDepository(Map map); + + /** + * 获取仓库和权限名称 + * @param userid + * @return + */ + RoleAndDepository findDepositoryAndRole(Integer userid); + + /** + * 修改用户或者岗位权限及管理的仓库 + * @param map + * @return + */ + Integer updateUserOrPostRoleAndDepository(Map map); + + + /** + * 获取当前登录用户的权限 + * @param uid + * @return + */ + Integer findRoleByUid(Integer uid); + + + /** + * 根据仓库获取用户 + * @param did + * @return + */ + List findUserIdByDid(Integer did); + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml new file mode 100644 index 00000000..8090e3a2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r.id,r.name + + + + userid as userId,name as roleName,dname as depositoryName,address as depositoryAddress ,introduce as depositoryIntroduce,state as depositoryState + + + + + + update postoruserrole + + + role = #{authority}, + + + did = #{depositoryId} + + + where userid = #{userid} + + + + + INSERT INTO postoruserrole ( + id, classes, role,userid,did + ) VALUES ( + #{id}, + #{classes}, + #{authority}, + #{userid}, + #{depositoryId} + ) + + + + + + + + + + + + + + diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.java new file mode 100644 index 00000000..7a28dd7b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.java @@ -0,0 +1,20 @@ +package com.dreamchaser.depository_manage.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.Map; + +/** + * @author Dreamchaser + */ +@Mapper +@Repository +public interface TransferRecordMapper { + /** + * 插入一条转移记录 + * @param map 参数map + * @return 受影响的行数 + */ + Integer addTransferRecord(Map map); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml new file mode 100644 index 00000000..68f364a4 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + tr.id, tr.from_id, tr.to_id + + + + + + + + + + + + + + INSERT INTO transfer_record ( + id, from_id, to_id,quantity + ) VALUES ( + #{id}, + #{fromId}, + #{toId}, + #{quantity} + ) + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.java new file mode 100644 index 00000000..dbb81982 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.java @@ -0,0 +1,138 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.User; +import com.dreamchaser.depository_manage.pojo.SimpleUser; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * 关于用户的mapper接口 + * @author Dreamchaser + */ +@Repository +@Mapper +public interface UserMapper { + + /** + * 查询user表的所有数据的行数 + * @return 行数 + */ + Integer findCount(); + + /** + * 查询user表的符合条件数据的行数 + * @param map 参数map + * @return 符合条件数据的行数 + */ + Integer findCountByCondition(Map map); + + /** + * 根据条件查询用户(此方法只能在确认结果只有一条记录时调用) + * @param map + * @return + */ + User findUserByCondition(Map map); + + /** + * 根据主键查询用户 + * @param id 用户id + * @return 用户信息 + */ + User findUserById(Integer id); + + /** + * 根据条件查询符合条件的用户 + * @param map + * @return + */ + List findUsersByCondition(Map map); + + /** + * 根据email查询用户信息 + * @param email + * @return + */ + User findUserByEmail(String email); + + /** + * 根据用户id查询用户名 + * @param id 用户id + * @return 用户名称 + */ + String findUserNameById(int id); + + + /** + * 根据参数插入一条用户信息 + * @param map 参数map + * @return 受影响的行数,0表示插入失败,1表示成功 + */ + Integer insertUser(Map map); + + /** + * 更新用户信息 + * @param map 参数map + * @return 受影响的行数 + */ + Integer updateUser(Map map); + + /** + * 更新用户非敏感信息(一般用户自己的修改) + * @param map 参数map + * @return 受影响的行数 + */ + Integer updateUserNoSensitive(Map map); + + /** + * 根据id删除用户 + * @param id 用户id + * @return 受影响的行数 + */ + Integer deleteUserById(Integer id); + /** + * 根据id批量删除数据 + * @param list 用户id的集合 + * @return 受影响的行数 + */ + Integer deleteUserByIds(List list); + + /** + * 根据id将用户状态改为删除 + * @param id + * @return 受影响的行数 + */ + Integer changeUserStateToDeleteById(Integer id); + + /** + * 根据id批量将用户状态改为删除 + * @param ids + * @return 受影响的行数 + */ + Integer changeUserStateToDeleteByIds(List ids); + + /** + * 根据id进行密码修改 + * @param map + * @return 受影响行数 + */ + Integer updateUserPasswordById(Map map); + + + /** + * 根据用户id查询具体权限名称 + * @param id + * @return + */ + String FindUserRoleById(Integer id); + + /** + * 根据用户id查询具体仓库名称 + * @param id + * @return + */ + String FindDepositoryByUserId(Integer id); + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.xml new file mode 100644 index 00000000..3823ee81 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/UserMapper.xml @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + u.id, u.uname, u.sex, u.entry_date + + + + u.id, u.uname, u.authority, u.pwd, u.sex, u.depository_id, u.entry_date, u.email, + u.phone,u.state + + + + u.id, u.uname, r.name,r.id,u.authority, u.pwd, u.sex, u.depository_id, u.entry_date, u.email, + u.phone,u.state + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO user ( + id, uname, authority, pwd, sex, depository_id, entry_date, email, + phone + ) VALUES ( + #{id}, + #{uname}, + #{authority}, + #{pwd}, + #{sex}, + #{depositoryId}, + #{entryDate}, + #{email}, + #{phone} + ) + + + + + + + UPDATE user + + + uname = #{uname}, + + + sex = #{sex}, + + + entry_date = #{entryDate}, + + + phone = #{phone} + + + WHERE id = #{id} + + + + UPDATE user + + + uname = #{uname}, + + + authority = #{authority}, + + + pwd = #{pwd}, + + + sex = #{sex}, + + + depository_id = #{depositoryId}, + + + entry_date = #{entryDate}, + + + email = #{email}, + + + phone = #{phone}, + + + state = #{state} + + + WHERE id = #{id} + + + + + + + + DELETE FROM user WHERE id = #{id} + + + + + DELETE FROM user WHERE id IN + + + #{id} + + + + + + update user + + state = 3 + + where id = #{id} + + + + update user + + state = 3 + + where id in + + #{id} + + + + + + update user + + pwd = #{new_password} + + where id = #{id} + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml new file mode 100644 index 00000000..58511934 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + sb.id, sb.type, sb.quantity, sb.price, sb.material_name + + + + + + + + + + + + + + + INSERT INTO standing_book ( + id, type, quantity, price, material_name + ) VALUES ( + #{id}, + #{type}, + #{quantity}, + #{price}, + #{materialName} + ) + + + + + INSERT INTO standing_book ( + id, type, quantity, price, material_name + ) VALUES + + ( + #{item.id}, + #{item.type}, + #{item.quantity}, + #{item.price}, + #{item.materialName} + ) + + + + + + UPDATE standing_book + + + type = #{type}, + + + quantity = #{quantity}, + + + price = #{price}, + + + material_name = #{materialName} + + + WHERE id = #{id} + + + + + + UPDATE standing_book + + + type = #{item.type}, + + + quantity = #{item.quantity}, + + + price = #{item.price}, + + + material_name = #{item.materialName} + + + WHERE id = #{item.id} + + + + + + DELETE FROM standing_book WHERE id = #{id} + + + + + DELETE FROM standing_book WHERE id IN + + #{id} + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/AdministrationP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/AdministrationP.java new file mode 100644 index 00000000..ec34a44b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/AdministrationP.java @@ -0,0 +1,55 @@ +package com.dreamchaser.depository_manage.pojo; + +import com.dreamchaser.depository_manage.entity.Administration; +import lombok.Data; + +@Data +public class AdministrationP { + + /** + * id + */ + private Integer id; + + /** + * 编号 + */ + private String number; + + /** + * 名称 + */ + private String name; + + + /** + * 简称 + */ + private String abbreviation; + + + /** + * 部门类别名称 + */ + private String classname; + + /** + * 级别值 + */ + private Integer level; + + /** + * 状态 + */ + private Integer state; + + public AdministrationP(Administration administration) { + this.id = administration.getId(); + this.number = administration.getNumber(); + this.name = administration.getName(); + this.abbreviation = administration.getAbbreviation(); + this.classname = administration.getClassname(); + this.level = administration.getLevel(); + this.state = administration.getState(); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java new file mode 100644 index 00000000..20aaf8e2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java @@ -0,0 +1,59 @@ +package com.dreamchaser.depository_manage.pojo; + +import lombok.Data; + +@Data +public class ApplicationInRecordP { + /** + * id + */ + private Integer id; + /** + * 入库物品名称 + */ + private String mname; + /** + * 入库数量 + */ + private int quantity; + /** + * 入库金额 + */ + private int price; + /** + * 入库物品类型 + */ + private String materialTypeName; + + /** + * 提交人姓名 + */ + private String applicantName; + + /** + * 提交人id + */ + private Integer applicantId; + + /** + * 提交时间 + */ + private String applicantTime; + /** + * 货物单号 + */ + private String code; + + /** + * 仓库名称 + */ + private String depositoryName; + + + /** + * 提交备注 + */ + private String applyRemark; + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java new file mode 100644 index 00000000..fb06355d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java @@ -0,0 +1,126 @@ +package com.dreamchaser.depository_manage.pojo; + +import lombok.Data; + +@Data +public class ApplicationOutRecordP { + /** + * id + */ + private Integer id; + + /** + * 材料id + */ + private Integer mid; + + /** + * 材料名称 + */ + private String mname; + + /** + * 仓库id + */ + private Integer depositoryId; + + /** + * 仓库名称 + */ + private String depositoryName; + + /** + * 申请人id + */ + private Integer applicantId; + + /** + * 申请人名称 + */ + private String applicantName; + + /** + * 申请时间 + */ + private String applicantTime; + + + /** + * 备注 + */ + private String applyRemark; + + /** + * 出货单号 + */ + private String code; + + /** + * 金额 + */ + private Integer price; + + /** + * 数量 + */ + private Integer quantity; + + /** + * 部门负责人编号 + */ + private Integer departmenthead; + + /** + * 部门负责人姓名 + */ + private String departmentheadName; + + /** + * 部门负责人意见(1通过2退回) + */ + private String departmentheadPass; + + /** + * 部门负责人处理时间 + */ + private String departmentheadTime; + + /** + * 部门负责人审核备注 + */ + private String departmentheadMessage; + + /** + * 仓库管理员 + */ + private String depositoryManager; + /** + * 仓库管理员名称 + */ + private String depositoryManagerName; + + /** + * 仓库管理员意见(1通过2退回) + */ + private String depositoryManagerPass; + + /** + * 仓库管理员处理时间 + */ + private String depositoryManagerTime; + + /** + * 仓库管理员审核备注 + */ + private String depositoryManagerMessage; + + /** + * 状态 + */ + private String state; + + /** + * 是否为转移申请 + */ + private Integer istransfer; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/DepositoryRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/DepositoryRecordP.java new file mode 100644 index 00000000..b6393ad7 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/DepositoryRecordP.java @@ -0,0 +1,167 @@ +package com.dreamchaser.depository_manage.pojo; + + +import com.dreamchaser.depository_manage.entity.DepositoryRecord; +import com.dreamchaser.depository_manage.utils.DateUtil; +import lombok.Data; + +@Data +public class DepositoryRecordP { + private static final long serialVersionUID = 8546566842955977610L; + /** + * 记录id + */ + private Integer id; + + /** + * 申请编号 + */ + private Integer applicationId; + + /** + * 产品名称 + */ + private String mname; + + /** + * 调度的仓库id + */ + private Integer depositoryId; + + /** + * 仓库名称 + */ + private String depositoryName; + + /** + * 调度记录类型(购入/退料/转入,退还/领料/转出) + */ + private Integer type; + + /** + * 数量 + */ + private Integer quantity; + + /** + * 价格 + */ + private Double price; + + /** + * 状态(未审核,未入库/出库,已入库) + */ + private String state; + + /** + * 申请人id + */ + private Integer applicantId; + + /** + * 申请人姓名 + */ + private String applicantName; + + /** + * 申请备注 + */ + private String applyRemark; + + /** + * 申请时间 + */ + private String applyTime; + + /** + * 审核人id + */ + private Integer reviewerId; + + /** + * 审核人姓名 + */ + private String reviewerName; + + /** + * 审核结果备注 + */ + private String reviewRemark; + + /** + * 审核时间 + */ + private String reviewTime; + + /** + * 是否审核通过 + */ + private Integer reviewPass; + + /** + * 验货人id + */ + private Integer checkerId; + + /** + * 验货人姓名 + */ + private String checkerName; + + /** + * 验收备注 + */ + private String checkRemark; + + /** + * 出入库时间(验货时间) + */ + private String checkTime; + + /** + * 是否验收通过 + */ + private Integer checkPass; + + /** + * 申请人信息 + */ + private UserP applicantUserP; + + + /** + * 审核人信息 + */ + private UserP reviewerUserP; + + + /** + * 验货人信息 + */ + private UserP checkerUserP; + + public DepositoryRecordP(DepositoryRecord dr) { + this.id = dr.getId(); + this.applicationId = dr.getApplicationId(); + this.mname = dr.getMname(); + this.depositoryId = dr.getDepositoryId(); + this.type = dr.getType(); + this.quantity = dr.getQuantity(); + this.price = dr.getPrice(); + this.state = dr.getState(); + this.applicantId = dr.getApplicantId(); + this.applyRemark = dr.getApplyRemark(); + this.applyTime = DateUtil.TimeStampToDateTime(dr.getApplyTime()); + this.reviewerId = dr.getReviewerId(); + this.reviewRemark = dr.getReviewRemark(); + this.reviewTime = DateUtil.TimeStampToDateTime(dr.getReviewTime()); + this.reviewPass = dr.getReviewPass(); + this.checkerId = dr.getCheckerId(); + this.checkRemark = dr.getCheckRemark(); + this.checkTime = DateUtil.TimeStampToDateTime(dr.getCheckTime()); + this.checkPass = dr.getCheckPass(); + this.applicantUserP = dr.getApplicantUserP(); + this.reviewerUserP = dr.getReviewerUserP(); + this.checkerUserP = dr.getCheckerUserP(); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java new file mode 100644 index 00000000..886a890a --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java @@ -0,0 +1,115 @@ +package com.dreamchaser.depository_manage.pojo; + +import com.dreamchaser.depository_manage.entity.Material; +import lombok.Data; + +import java.math.BigInteger; + +/** + * 库存类的包装类 + * + * @author Dreamchaser + */ +@Data +public class MaterialP { + /** + * 存储id + */ + private Integer id; + + /** + * 仓库名称 + */ + private String depositoryName; + + /** + * 材料名称 + */ + private String mname; + + /** + * 数量 + */ + private Integer quantity; + + /** + * 总金额 + */ + private Double amounts; + + /** + * 材料种类名称 + */ + private String typeName; + + /** + * 材料状态 + */ + private Integer state; + + /** + * 仓库名称 + */ + private String dName; + + /** + * 金额 + */ + private Double price; + + /** + * 计量单位 + */ + private String unit; + + /** + * 材质 + */ + private String texture; + + /** + * 存货编码 + */ + private BigInteger code; + + /** + * 规格型号 + */ + private String version; + + + /** + * 仓库编号 + */ + private String depositoryCode; + + + /** + * 仓库管理员 + */ + private String warehouseManager; + + + public MaterialP(Integer id, Integer depositoryId, String mname, Integer quantity, Double price, String typeName) { + this.id = id; + this.mname = mname; + this.quantity = quantity; + this.price = price; + this.typeName = typeName; + + } + + public MaterialP(Material material) { + this.id = material.getId(); // 编号 + this.mname = material.getMname(); // 材料名称 + this.quantity = material.getQuantity(); // 数量 + this.price = material.getPrice(); // 单价 + this.state = material.getState(); // 材料状态 + this.amounts = material.getAmounts(); // 总额 + this.unit = material.getUnit(); // 计量单位 + this.texture = material.getTexture(); // 材质 + this.code = material.getCode(); // 存货编码 + this.version = material.getVersion(); // 规格型号 + this.depositoryCode = material.getDepositoryCode(); // 仓库编号 + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java new file mode 100644 index 00000000..a477abf2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java @@ -0,0 +1,108 @@ +package com.dreamchaser.depository_manage.pojo; + +import com.dreamchaser.depository_manage.entity.Post; +import lombok.Data; + +@Data +public class PostP { + + /** + * id + */ + private Integer id; + /** + * 编号 + */ + private String number; + + /** + * 职位名称 + */ + private String name; + + /** + * 状态(1:启用;2:禁用;3:删除) + */ + private Integer state; + + + + + /** + * 名称 + */ + private String dutiesname; + + + /** + * 归属行政组织名称 + */ + private String aoname; + + + /** + * 归属行政组织编号 + */ + private String aonumber; + + /** + * 职务类别 + */ + private String jobname; + + /** + * 上级名称 + */ + private String superiorname; + + /** + * 上级编号 + */ + private String superiornumber; + + /** + * 部门 + */ + private String departmentname; + + /** + * WMS中权限名称 + */ + private String rolename; + + /** + * 管理仓库 + */ + private String depositoryName; + + public PostP(Post post){ + this.id = post.getId(); + this.number = post.getNumber(); + this.name = post.getName(); + this.state = post.getState(); + this.dutiesname = post.getDutiesname(); + this.aoname = post.getAoname(); + this.aonumber = post.getAonumber(); + this.jobname = post.getJobname(); + this.superiorname = post.getSuperiorname(); + this.superiornumber = post.getSuperiornumber(); + this.departmentname = post.getDepartmentname(); + } + + + public PostP(Integer id, String number, String name, Integer state, String dutiesname, String aoname, String aonumber, String jobname, String superiorname, String superiornumber, String departmentname, String rolename, String depositoryName) { + this.id = id; + this.number = number; + this.name = name; + this.state = state; + this.dutiesname = dutiesname; + this.aoname = aoname; + this.aonumber = aonumber; + this.jobname = jobname; + this.superiorname = superiorname; + this.superiornumber = superiornumber; + this.departmentname = departmentname; + this.rolename = rolename; + this.depositoryName = depositoryName; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java b/src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java new file mode 100644 index 00000000..196771f5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java @@ -0,0 +1,52 @@ +package com.dreamchaser.depository_manage.pojo; + + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 所有服务统一响应数据格式 + * @author 金昊霖 + */ +@Accessors(chain = true) +@Data +public class RestResponse implements Serializable { + /** + * 业务数据 + */ + private Object data; + /** + * 数据条数 + */ + private int count; + /** + * 状态码 + */ + private int status=200; + /** + * 状态信息 + */ + private StatusInfo statusInfo=new StatusInfo(); + + public RestResponse() { + } + + public RestResponse(Object data) { + this.data = data; + } + + public RestResponse(Object data, int count, int status) { + this.data = data; + this.count = count; + this.status = status; + } + + public RestResponse(Object data, int status, StatusInfo statusInfo) { + this.data = data; + this.status = status; + this.statusInfo = statusInfo; + } +} + diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java b/src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java new file mode 100644 index 00000000..b938f44d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java @@ -0,0 +1,39 @@ +package com.dreamchaser.depository_manage.pojo; + +import lombok.Data; + +@Data +public class RoleAndDepository { + + /** + * 归属人/岗位编号 + */ + private Integer userId; + + /** + * 权限名称 + */ + private String roleName; + + + + /** + * 仓库名称 + */ + private String depositoryName; + + /** + * 仓库地址 + */ + private String depositoryAddress; + + /** + * 仓库简介 + */ + private String depositoryIntroduce; + + /** + * 仓库状态 + */ + private Integer depositoryState; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutRecordP.java new file mode 100644 index 00000000..611ae4ca --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutRecordP.java @@ -0,0 +1,29 @@ +package com.dreamchaser.depository_manage.pojo; + +import com.dreamchaser.depository_manage.entity.SimpleApplicationOutRecord; +import com.dreamchaser.depository_manage.entity.SimpleDepositoryRecord; +import com.dreamchaser.depository_manage.utils.DateUtil; +import lombok.Data; + +@Data +public class SimpleApplicationOutRecordP { + /** 记录id */ + private Integer id; + + /** 申请人姓名 */ + private String applicantName; + + /** 申请备注 */ + private String applyRemark; + + /** 申请时间 */ + private String applicantTime; + + + + public SimpleApplicationOutRecordP(SimpleApplicationOutRecord d) { + this.id=d.getId(); + this.applyRemark = d.getApplyRemark(); + this.applicantTime = DateUtil.TimeStampToDateTime(d.getApplicantTime()); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleDepositoryRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleDepositoryRecordP.java new file mode 100644 index 00000000..d49c28c2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleDepositoryRecordP.java @@ -0,0 +1,38 @@ +package com.dreamchaser.depository_manage.pojo; + +import com.dreamchaser.depository_manage.entity.DepositoryRecord; +import com.dreamchaser.depository_manage.entity.SimpleDepositoryRecord; +import com.dreamchaser.depository_manage.utils.DateUtil; +import lombok.Data; + +import java.util.Date; + +/** + * @author Dreamchaser + */ +@Data +public class SimpleDepositoryRecordP { + /** 记录id */ + private Integer id; + + /** 调度记录类型(购入/退料/转入,退还/领料/转出) */ + private Integer type; + + /** 申请人id */ + private String applicantName; + + /** 申请备注 */ + private String applyRemark; + + /** 申请时间 */ + private String applyTime; + + + + public SimpleDepositoryRecordP(SimpleDepositoryRecord d) { + this.id=d.getId(); + this.type = d.getType(); + this.applyRemark = d.getApplyRemark(); + this.applyTime = DateUtil.TimeStampToDateTime(d.getApplyTime()); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleUser.java b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleUser.java new file mode 100644 index 00000000..2d8ad9c3 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleUser.java @@ -0,0 +1,22 @@ +package com.dreamchaser.depository_manage.pojo; + +import lombok.Data; + +/** + * 用户的简洁版信息 + * @author 金昊霖 + */ +@Data +public class SimpleUser { + /** 用户id */ + private Integer id; + + /** 用户名称 */ + private String uname; + + /** 密码 */ + private String pwd; + + /** 头像地址 */ + private String pictureUrl; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/Statistic.java b/src/main/java/com/dreamchaser/depository_manage/pojo/Statistic.java new file mode 100644 index 00000000..729076a2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/Statistic.java @@ -0,0 +1,14 @@ +package com.dreamchaser.depository_manage.pojo; + + +/** + * 统计量 + * @author Dreamchaser + */ +public class Statistic { + + + class Material{ + + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/StatusInfo.java b/src/main/java/com/dreamchaser/depository_manage/pojo/StatusInfo.java new file mode 100644 index 00000000..1c3082e1 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/StatusInfo.java @@ -0,0 +1,27 @@ +package com.dreamchaser.depository_manage.pojo; + +import lombok.Data; + +/** + * 状态详细信息 + * @author 金昊霖 + */ +@Data +public class StatusInfo { + /** + * 字段作为接口处理失败时, 给予用户的友好的提示信息, 即所有给用户的提示信息都统一由后端来处理 + */ + private String message=""; + /** + * 字段用来放置接口处理失败时的详细错误信息. 只是为了方便排查错误, 前端无需使用. + */ + private String detail=""; + + public StatusInfo() { + } + + public StatusInfo(String message, String detail) { + this.message = message; + this.detail = detail; + } +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java new file mode 100644 index 00000000..c773edf1 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java @@ -0,0 +1,106 @@ +package com.dreamchaser.depository_manage.pojo; + +import com.dreamchaser.depository_manage.entity.UserByPort; +import lombok.Data; + +@Data +public class UserByPortP { + + /** + * id + */ + private Integer id; + + /** + * 工号 + */ + private String number; + + /** + * 姓名 + */ + private String name; + + /** + * 状态(1:启用;2:禁用;3:删除) + */ + private Integer state; + + /** + * 性别(1:男性;2:女性;3:中性) + */ + private Integer gender; + + /** + * 健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废) + */ + private Integer health; + + + /** + * 手机号码 + */ + private String mobilephone; + + /** + * 公司名称 + */ + private String companyname; + + /** + * 主部门 + */ + private String maindeparmentname; + + /** + * 岗位 + */ + private String sunmaindeparmentname; + + private String workpostname; + + /** + * 职位 + */ + private String positionname; + + /** + * WMS中权限名称 + */ + private String rolename; + + /** + * 管理仓库 + */ + private String depositoryName; + + + public UserByPortP(UserByPort userByPort) { + this.id = userByPort.getId(); + this.number = userByPort.getNumber(); + this.name = userByPort.getName(); + this.state = userByPort.getState(); + this.gender = userByPort.getGender(); + this.health = userByPort.getHealth(); + this.mobilephone = userByPort.getMobilephone(); + this.companyname = userByPort.getCompanyname(); + this.maindeparmentname = userByPort.getMaindeparmentname(); + this.sunmaindeparmentname = userByPort.getSunmaindeparmentname(); + this.workpostname = userByPort.getWorkpostname(); + this.positionname = userByPort.getPositionname(); + } + + public UserByPortP(String number, String name, Integer state, Integer gender, Integer health, String mobilephone, String companyname, String maindeparmentname, String sunmaindeparmentname, String workpostname, String positionname) { + this.number = number; + this.name = name; + this.state = state; + this.gender = gender; + this.health = health; + this.mobilephone = mobilephone; + this.companyname = companyname; + this.maindeparmentname = maindeparmentname; + this.sunmaindeparmentname = sunmaindeparmentname; + this.workpostname = workpostname; + this.positionname = positionname; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/UserP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/UserP.java new file mode 100644 index 00000000..223d3f93 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/UserP.java @@ -0,0 +1,66 @@ +package com.dreamchaser.depository_manage.pojo; + +import com.dreamchaser.depository_manage.entity.Role; +import com.dreamchaser.depository_manage.entity.User; +import com.dreamchaser.depository_manage.entity.Role; +import com.dreamchaser.depository_manage.utils.DateUtil; +import lombok.Data; + +/** + * user用户类的前端封装类 + * @author Dreamchaser + */ +@Data +public class UserP { + + /** 用户id */ + private Integer id; + + /** 用户名称 */ + private String uname; + + /** 表示权限等级 */ + private int authority; + + /** 性别 */ + private String sex; + + /** 负责仓库,序号表示仓库id,0表示全部仓库 */ + private Integer depositoryId; + + /** 负责仓库的名称 */ + private String depositoryName; + + /** 入职日期 */ + private String entryDate; + + /** 邮箱 */ + private String email; + + /** 手机号 */ + private String phone; + + /** + * 角色类 + */ + private Role role; + + /** + * 用户状态 + */ + private int state; + + public UserP(User user) { + this.id = user.getId(); + this.uname = user.getUname(); + this.authority = user.getAuthority(); + this.sex = user.getSex(); + this.depositoryId = user.getDepositoryId(); + this.entryDate = DateUtil.getSimpleDate(user.getEntryDate()); + this.email = user.getEmail(); + this.phone = user.getPhone(); + this.role = user.getRole(); + this.state = user.getState(); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/security/bean/LoginRealms.java b/src/main/java/com/dreamchaser/depository_manage/security/bean/LoginRealms.java new file mode 100644 index 00000000..9efdbb13 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/security/bean/LoginRealms.java @@ -0,0 +1,69 @@ +package com.dreamchaser.depository_manage.security.bean; + +import com.dreamchaser.depository_manage.entity.User; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; +import com.dreamchaser.depository_manage.service.UserService; +import com.dreamchaser.depository_manage.utils.Md5; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 内置多种登录方式,和shiro中的realm类似 + * @author 金昊霖 + */ +@Component +public class LoginRealms { + @Autowired + private UserService userService; + + /** + * 认证,如果认证成功则返回凭证,否则返回null + * @param userToken 未认证的令牌 + * @return 如果认证成功则返回凭证,否则返回null + */ + public String authenticate(UserToken userToken){ + if (userToken.getCredentials()!=null){ + //对密码加密 + userToken.setCredentials(Md5.crypt(userToken.getCredentials())); + } + if (userToken.getLoginType().equals(LoginType.EMAIl_PASSWORD)){ + return handle(userToken,emailLogin(userToken)); + } + //else if (其他登录方式...) + //如果无匹配的认证方式则视为验证失败 + return null; + } + + /** + * 邮箱登录方式 + * @param userToken 令牌 + * @return 认证成功返回SimpleUser + */ + private User emailLogin(UserToken userToken){ + return userService.findUserById(userToken.getPrincipal()); + } + + /** + * 根据传入的user是否为null(是否认证通过)来对令牌做剩下的操作(将user刻入令牌,并将该令牌放入令牌池中) + * @param userToken 经过验证后的令牌 + * @return token 根据令牌生成的凭证 ,如果认证未成功则返回null + */ + private String handle(UserToken userToken,User user){ + if (user==null){ + //说明账户不存在 + throw new MyException(409,"该用户不存在,请注册后再登录!"); + } + //判断密码是否正确 + if (user.getPwd().equals(userToken.getCredentials())){ + //将UserP信息刻入令牌 + userToken.setUser(userService.singlePack(user)); + //获取token凭证 + String token=Md5.crypt(userToken.getPrincipal()+userToken.getInstant()); + //将令牌放入认证令牌池 +// AuthenticationTokenPool.addToken(token,userToken); + return token; + } + return null; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/security/bean/LoginType.java b/src/main/java/com/dreamchaser/depository_manage/security/bean/LoginType.java new file mode 100644 index 00000000..3bc75231 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/security/bean/LoginType.java @@ -0,0 +1,66 @@ +package com.dreamchaser.depository_manage.security.bean; + +/** + * 登录方式枚举类 + * @author 金昊霖 + */ + +public enum LoginType { + /** + * 通用 + */ + COMMON("common_realm"), + /** + * 用户密码登录 + */ + EMAIl_PASSWORD("user_password_realm"), + /** + * 手机验证码登录 + */ + USER_PHONE("user_phone_realm"), + /** + * 第三方登录(微信登录) + */ + WECHAT_LOGIN("wechat_login_realm"), + /** + * 第三方登录(qq登录) + */ + QQ_LOGIN("qq_login_realm"); + + + private String type; + + LoginType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + + /** + * 根据简单的字符串返回对应的LoginType + * @param s 简单的字符串 + * @return 对应的LoginType + */ + public static LoginType getType(String s){ + switch (s) { + case "email": + return EMAIl_PASSWORD; + case "qq": + return QQ_LOGIN; + case "wechat": + return WECHAT_LOGIN; + case "phone": + return USER_PHONE; + default: + return null; + } + + } + + @Override + public String toString() { + return this.type; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/security/bean/UserToken.java b/src/main/java/com/dreamchaser/depository_manage/security/bean/UserToken.java new file mode 100644 index 00000000..2e6c0f55 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/security/bean/UserToken.java @@ -0,0 +1,88 @@ +package com.dreamchaser.depository_manage.security.bean; + + +import com.dreamchaser.depository_manage.entity.User; +import com.dreamchaser.depository_manage.pojo.UserP; +import lombok.Data; + +import java.time.Instant; + + +/** + * 登录令牌,默认有效期为7天 + * @author 金昊霖 + */ +@Data +public class UserToken{ + + final long DEFAULT_TERM=60*60*24*7; + /** + * 登录方式 + */ + private LoginType loginType; + /** + * 微信、qq的code,邮箱,或者用户名之类的 + */ + private String principal; + + /** + * 相当于密码(一般是加密过的) + */ + private String credentials; + + /** + * 放入的时间 + */ + private Instant instant; + + /** + * 有效期(单位:秒) + */ + private long term; + + /** + * 可以放一些不敏感的信息,以便下次访问时可以直接取出,如果user属性太多可以另外写个类,比如SimpleUser, + * 存放一些经常需要用到的信息。 + */ + private UserP User; + + /** + * 根据时间判断是否有效 + * @return 有效则返回true,否则返回false + */ + public boolean isValid(){ + return Instant.now().getEpochSecond()-instant.getEpochSecond()<=term; + } + + public UserToken(LoginType loginType, String principal, String credentials, Instant instant, long term, UserP user) { + this.loginType = loginType; + this.principal = principal; + this.credentials = credentials; + this.instant = instant; + this.term = term; + this.User = user; + } + + public UserToken(LoginType loginType, String principal, String credentials, Instant instant, long term) { + this.loginType = loginType; + this.principal = principal; + this.credentials = credentials; + this.instant = instant; + this.term = term; + } + + public UserToken(LoginType loginType, String principal, String credentials) { + this.loginType = loginType; + this.principal = principal; + this.credentials = credentials; + this.instant = Instant.now(); + this.term=DEFAULT_TERM; + } + + public UserToken(LoginType loginType, String principal) { + this.loginType = loginType; + this.principal = principal; + this.instant=Instant.now(); + this.term=DEFAULT_TERM; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/security/bean/VerificationCode.java b/src/main/java/com/dreamchaser/depository_manage/security/bean/VerificationCode.java new file mode 100644 index 00000000..1ebfac78 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/security/bean/VerificationCode.java @@ -0,0 +1,74 @@ +package com.dreamchaser.depository_manage.security.bean; + +import lombok.Data; + +import java.time.Instant; +import java.util.Random; + +/** + * 验证码,默认有效期为五分钟 + * @author 金昊霖 + */ +@Data +public class VerificationCode { + /** + * 默认持续时间 + */ + private final long DEFAULT_TERM=60*5; + /** + * 验证码 + */ + private String code; + /** + * 创建时刻 + */ + private Instant instant; + /** + * 有效期 + */ + private long term; + + /** + * 根据时间判断是否有效 + * @return boolean值 + */ + public boolean isValid(){ + return Instant.now().getEpochSecond()-instant.getEpochSecond()<=term; + } + + public VerificationCode(Instant instant, long term) { + //生成随机验证码code + generateCode(); + this.instant = instant; + this.term = term; + } + + + public VerificationCode(Instant instant) { + //生成随机验证码code + generateCode(); + this.instant = instant; + this.term=DEFAULT_TERM; + } + + public VerificationCode() { + //生成随机验证码code + generateCode(); + this.instant=Instant.now(); + this.term=DEFAULT_TERM; + } + + private void generateCode(){ + StringBuilder codeNum = new StringBuilder(); + int [] numbers = {0,1,2,3,4,5,6,7,8,9}; + Random random = new Random(); + for (int i = 0; i < 5; i++) { + //目的是产生足够随机的数,避免产生的数字重复率高的问题 + int next = random.nextInt(10000); + codeNum.append(numbers[next % 10]); + } + this.code= codeNum.toString(); + } + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java b/src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java new file mode 100644 index 00000000..0993a166 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java @@ -0,0 +1,76 @@ +package com.dreamchaser.depository_manage.security.pool; + + +import com.dreamchaser.depository_manage.entity.UserByPort; +import com.dreamchaser.depository_manage.security.bean.UserToken; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 认证后的令牌连接池(由于获取全局的session比较麻烦,所以自己维护一个类似session的令牌池) + * @author 金昊霖 + */ +public class AuthenticationTokenPool { + /** + * 认证后的令牌连接池 + */ +// private static Map pool=new ConcurrentHashMap<>(10); + private static Map pool = new ConcurrentHashMap<>(10); + + public static void addToken(String token,UserByPort userToken){ + pool.put(token, userToken); + } + /*public static void addToken(String token,UserToken userToken){ + pool.put(token, userToken); + }*/ + + /** + * 根据token凭证获取未过期的令牌,如果没有未过期的令牌则返回null + * @param token 凭证 + * @return userToken 未过期的令牌 + */ + public static UserByPort getToken(String token){ + UserByPort userToken=pool.get(token); + + //如果没有相应令牌则直接返回null + if (userToken==null){ + return null; + } + + //判断令牌是否过期 + if (userToken != null){ + return userToken; + }else{ + //清除过期令牌 + pool.remove(token); + return null; + } + } + /*public static UserToken getToken(String token){ + UserToken userToken=pool.get(token); + + //如果没有相应令牌则直接返回null + if (userToken==null){ + return null; + } + + //判断令牌是否过期 + if (userToken.isValid()){ + return userToken; + }else{ + //清除过期令牌 + pool.remove(token); + return null; + } + } +*/ + /** + * 根据凭证删除对应的令牌 + * @param token 凭证 + */ + public static void removeToken(String token){ + pool.remove(token); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/security/pool/VerificationCodePool.java b/src/main/java/com/dreamchaser/depository_manage/security/pool/VerificationCodePool.java new file mode 100644 index 00000000..415ee1c0 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/security/pool/VerificationCodePool.java @@ -0,0 +1,54 @@ +package com.dreamchaser.depository_manage.security.pool; + +import com.dreamchaser.depository_manage.security.bean.VerificationCode; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 验证码等待池 + * @author 金昊霖 + */ +public class VerificationCodePool { + private static Map pool=new ConcurrentHashMap<>(10); + + /** + * 增加一条验证码 + * @param principal 主要内容,如邮箱,电话号码等 + * @param verificationCode 验证码 + */ + public static void addCode(String principal,VerificationCode verificationCode){ + pool.put(principal, verificationCode); + } + + /** + * 根据principal主要信息获取未过期的验证码,如果没有未过期的令牌则返回null + * @param principal 主要内容,如邮箱,电话号码等 + * @return verificationCode 未过期的验证码或者null + */ + public static VerificationCode getCode(String principal){ + VerificationCode verificationCode=pool.get(principal); + + //如果没有相应验证码则直接返回null + if (verificationCode==null){ + return null; + } + + //判断令牌是否过期 + if (verificationCode.isValid()){ + return verificationCode; + }else{ + //清除过期验证码 + pool.remove(principal); + return null; + } + } + + /** + * 根据主要信息principal删除对应的验证码 + * @param principal 主要信息 + */ + public static void removeCode(String principal){ + pool.remove(principal); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/AccessAddressService.java b/src/main/java/com/dreamchaser/depository_manage/service/AccessAddressService.java new file mode 100644 index 00000000..8e385f6b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/AccessAddressService.java @@ -0,0 +1,59 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.AccesstoAddress; + +import java.util.List; +import java.util.Map; + +public interface AccessAddressService { + /** + * 查询所有菜单 + * @return + */ + List findAllMenus(); + + /**根据角色查询对应菜单 + * + * @return + */ + List findMenusByRole(Map map); + + + /** + * 查询所有没有父菜单的菜单 + * @return + */ + List findMenusByNoParent(); + + + /** + * 根据父菜单编号查询对应子菜单 + * @param id + * @return + */ + List findAccessstoAddressByParent(Integer id); + + + /** + * 根据父菜单编号及权限查询对应子菜单 + * @param map + * @return + */ + List findAccessstoAddressByParentAndRole(Map map); + + + /** + * 根据用户信息查询菜单 + * @param map + * @return + */ + List findAccessToAddressByUser(Map map); + + + /** + * 根据菜单列表编号获取菜单 + * @param menus + * @return + */ + List findAccessToAddressByList(List menus); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/CompanyService.java b/src/main/java/com/dreamchaser/depository_manage/service/CompanyService.java new file mode 100644 index 00000000..155e0d9b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/CompanyService.java @@ -0,0 +1,88 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.Company; + +import java.util.List; +import java.util.Map; + +public interface CompanyService { + /** + * 查询所有公司 + * @return + */ + List findCompanyAll(); + + /** + * 根据父级查询公司信息 + * @return + */ + List findCompanyByParentId(Integer parentId); + + /** + * 根据id编号删除公司信息 + * @param id + * @return + */ + Integer deleteCompanyById(Integer id); + + /** + * 根据编号批量删除公司信息 + * @param ids + * @return + */ + Integer deleteCompanyByIds(List ids); + + /** + * 修改公司信息 + * @param map + * @return + */ + Integer updateCompany(Map map); + + /** + * 插入公司信息 + * @param map + * @return + */ + Integer insertCompany(Map map); + + /** + * 根据条件查询公司 + * @return + */ + List findCompanyByCondition(Map map); + + /** + * 根据查询条件返回该表的总条数 + * @param map 条件参数 + * @return + */ + Integer findCountByCondition(Map map); + + /** + * 根据主键查询公司信息 + * @param id + * @return + */ + Company findcompanyById(Integer id); + + /** + * 根据主键将公司状态改为删除 + * @param id + * @return + */ + Integer changeStateToDeletedById(Integer id); + /** + * 根据主键批量将公司状s态改为删除 + * @param ids + * @return + */ + Integer changeStateToDeletedByIds(List ids); + + /** + * 根据条件修改公司状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java new file mode 100644 index 00000000..024faf82 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java @@ -0,0 +1,232 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.ApplicationInRecord; +import com.dreamchaser.depository_manage.entity.ApplicationOutRecord; +import com.dreamchaser.depository_manage.entity.DepositoryRecord; +import com.dreamchaser.depository_manage.pojo.*; + +import java.util.List; +import java.util.Map; + +/** + * 仓库调度记录Service层 + * @author Dreamchaser + */ +public interface DepositoryRecordService { + /** + * 提交申请,插入一条仓库调度记录 + * @param map 仓库调度信息 + * @return 受影响的行数 + */ + Integer apply(Map map); + + /** + * 插入一条入库记录 + * @param map + * @return + */ + Integer applicationIn(Map map); + + /** + * 转移申请 + * @param map 仓库调度信息 + * @return 受影响的行数 + */ + Integer transferApply(Map map); + + + /** + * 审核申请 + * @param map 仓库调度信息 + * @return 受影响的行数 + */ + Integer review(Map map,Integer userId); + + /** + * 根据id修改仓库调度记录 + * @param map 参数map + * @return 受影响的行数 + */ + Integer updateDepositoryRecord(Map map); + + /** + * 根据id主键查询数据 + * @param id id + * @return 该id的数据记录 + */ + DepositoryRecordP findDepositoryRecordById(Integer id); + + /** + * 查找所有仓库调度记录 + * @return 所有的仓库调度记录集合 + */ + List findDepositoryRecordAll(); + + /** + * 根据条件查询仓库调度记录,同时支持分页查询(需要begin和size参数) + * @param map 查询参数 + * @return 符合条件的仓库调度记录集合 + */ + List findDepositoryRecordPByCondition(Map map); + + + /** + * 根据条件查询入库记录,同时支持分页查询 + * @param map + * @return + */ + List findApplicationInRecordPByCondition(Map map); + + /** + * 根据条件查询出库记录,同时支持分页查询 + * @param map + * @return + */ + List findApplicationOutRecordPByCondition(Map map); + + + /** + * 根据条件查询出库记录数目 + * @param map + * @return + */ + Integer findApplicationOutRecordPCountByCondition(Map map); + + /** + * 根据id查询出库申请 + * @param id + * @return + */ + ApplicationOutRecordP findApplicationOutRecordPById(Integer id); + + /** + * 根据条件查询入库记录数目 + * @param map + * @return + */ + Integer findApplicationInRecordPCountByCondition(Map map); + /** + * 根据条件查询自己的任务(根据isDone来决定查询已完成或者未完成的任务),同时支持分页查询(需要begin和size参数) + * @param map 查询参数 + * @return 我的任务 + */ + List findMyTask(Map map); + + /** + * 根据id删除仓库记录 + * @return 受影响的行数 + * @param id + */ + Integer deleteDepositoryRecordById(Integer id); + + /** + * 根据id集合删除多条仓库记录 + * @param list id集合 + * @return 受影响的行数 + */ + Integer deleteDepositoryRecordByIds(List list); + + /** + * 返回该表的总条数 + * @return 条数 + */ + Integer findCount(); + + /** + * 返回该我的任务数(完成或者未完成) + * @return 条数 + */ + Integer findMyTaskCount(Map map);/** + * 返回该我的任务数(完成或者未完成) + * @return 条数 + */ + Integer findMyTaskOutCount(Map map); + + /** + * 根据查询条件返回该表的总条数 + * @param map 条件参数 + * @return 条数 + */ + Integer findCountByCondition(Map map); + + + /** + * 计算材料总数 + * @return + */ + Double CalculateAllCount(Integer type,String state); + + /** + * 计算材料总额 + * @return + */ + Double CalculateAllPrice(Integer type,String state); + + + /** + * 获取一段时间内的库存额度 + * + * @param start + * @param end + * @param type + * @param depositoryId + * @return + */ + Double findDepositoryRecordByDate(Long end,Long start,Integer type,Integer depositoryId); + + /** + * 根据条件获取月份中材料的总额 + * @param map + * @return + */ + Double findMaterialCountByMonth(Map map); + + /** + * 查询仓库当天流水 + * @return + */ + Integer findWarehouseRecord(Map map); + + /** + * 根据id查询入库记录 + * @param id + * @return + */ + ApplicationInRecordP findApplicationInRecordPById(Integer id); + + /** + * 根据id删除入库记录 + * @return 受影响的行数 + * @param id + */ + Integer deleteApplicationInRecordById(Integer id); + + /** + * 根据id集合删除多条入库记录 + * @param list id集合 + * @return 受影响的行数 + */ + Integer deleteApplicationInRecordByIds(List list); + + /** + * 插入一条出库记录 + * @param map + * @return + */ + Integer insertApplicationOutRecord(Map map); + + + /** + * 根据id删除出库记录 + * @return 受影响的行数 + * @param id + */ + Integer deleteApplicationOutRecordById(Integer id); + + /** + * 根据id集合删除多条出库记录 + * @param list id集合 + * @return 受影响的行数 + */ + Integer deleteApplicationOutRecordByIds(List list); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java new file mode 100644 index 00000000..d9cb3d51 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java @@ -0,0 +1,121 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.Depository; + +import java.util.List; +import java.util.Map; + + +/** + * 仓库类的服务层 + * @author 金昊霖 + */ +public interface DepositoryService { + /** + * 插入一条仓库记录 + * @param map 参数map + * @return 受影响的行数 + */ + Integer insertDepository(Map map); + + /** + * 查询所有仓库 + * @return 仓库集合 + */ + List findDepositoryRecordPByCondition(Map map); + + /** + * 根据条件查询对应的总条数 + * @param map 条件参数 + * @return 条数 + */ + Integer findCountByCondition(Map map); + + /** + * 根据主键id删除数据 + * @param id + * @return 影响条数 + */ + + Integer deleteDepositoryRecordById(Integer id); + + /** + * 根据多个主键id删除数据 + * @param list + * @return 影响条数 + */ + Integer deleteDepositoryRecordByIds(List list); + + + /** + * 根据主键id获取数据 + * @param id + * @return 查询数据 + */ + Depository findDepositoryRecordById(Integer id); + + /** + * 根据多个id获取数据 + * @param ids + * @return 查询到的多个数据 + */ + List selectDepositoryRecordByIds(List ids); + + /** + * 根据条件修改数据 + * @param map + * @return 影响的条数 + */ + Integer updateDepository(Map map); + + + /** + * 根据条件修改状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); + + + /** + * 查询所有数据 + * @return 所有数据 + */ + List findDepositoryAll(); + + + /** + * 根据主键id将仓库状态改为删除 + * @param id + * @return 受影响数目 + */ + Integer changeStateToDeletedById(Integer id); + + /** + * 根据多个主键id将对应仓库状态改为删除 + * @param ids + * @return 受影响数目 + */ + Integer changeStateToDeletedByIds(List ids); + + /** + * 计算未删除的仓库总和 + * @return + */ + Integer findAllCountByNoDelete(); + + + /** + * 查询所有仓库名称即对应编号 + * @return + */ + Map findDepositoryAllNameAndId(); + + + /** + * 根据仓库名称获取当前仓库库存容量 + * @param dname + * @return + */ + Double getToDayInventoryByDName(String dname); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/ExcelService.java b/src/main/java/com/dreamchaser/depository_manage/service/ExcelService.java new file mode 100644 index 00000000..a35916b3 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/ExcelService.java @@ -0,0 +1,9 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.utils.ResultVo; +import org.springframework.web.multipart.MultipartFile; + +public interface ExcelService { + public ResultVo importExcel(MultipartFile file); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java new file mode 100644 index 00000000..22b71e08 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java @@ -0,0 +1,111 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.Material; +import com.dreamchaser.depository_manage.entity.MaterialType; +import com.dreamchaser.depository_manage.pojo.MaterialP; + +import java.util.List; +import java.util.Map; + +/** + * 库存材料service层接口 + * @author Dreamchaser + */ +public interface MaterialService { + /** + * 增加一条库存记录 + * + * @param map 参数map + * @return 受影响的行数 + */ + Integer insertMaterial(Map map); + + /** + * 更新一条库存记录 + * + * @param map 参数列表 + * @return 受影响的行数 + */ + Integer updateMaterial(Map map); + + /** + * 根据id删除一条库存记录 + * @param id 库存id + * @return 受影响的行数 + */ + Integer deleteMaterialById(int id); + + /** + * 根据条件查询符合条件的库存信息 + * @param map 条件map + * @return 符合条件的库存信息 + */ + public List findMaterialPByCondition(Map map); + + /** + * 查询所有的库存信息 + * @return 所有的库存信息 + */ + List findMaterialAll(); + + /** + * 根据id查询库存信息 + * @param id 库存id + * @return 库存信息 + */ + Material findMaterialById(int id); + + /** + * 根据id查询库存信息 + * @param id 库存id + * @return 库存信息 + */ + Material findMaterialAndTypeById(int id); + /** + * 根据id批量查询库存信息 + * @param ids 库存id集合 + * @return 库存信息 + */ + Material findMaterialByIds(List ids); + + /** + * 查询所有库存条数 + * @return 库存记录的行数 + */ + Integer findCount(); + + /** + * 根据条件返回符合条件的库存记录行数 + * @param map 条件map + * @return 符合条件的记录行数 + */ + Integer findCountByCondition(Map map); + + + /** + * 根据主键Id将材料状态改为删除 + * @param id + * @return 受影响条数 + */ + Integer changeStateToDeletedById(Integer id); + + /** + * 根据主键id批量将材料状态改为删除 + * @param ids + * @return 受影响条数 + */ + Integer changeStateToDeletedByIds(List ids); + + /** + * 计算所有仓库未删除总额 + * @return + */ + Double findAllPriceNoDelete(); + + /** + * 根据条件修改状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java b/src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java new file mode 100644 index 00000000..76ec798d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java @@ -0,0 +1,89 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.MaterialType; + +import java.util.List; +import java.util.Map; + +/** + * 材料的服务层接口 + * @author 金昊霖 + */ +public interface MaterialTypeService { + /** + * 插入一条材料类型记录 + * @param map 参数map + * @return 受影响的数量 + */ + Integer insertMaterialType(Map map); + + /** + * 根据条件查询对应记录数目 + * @param map + * @return 对应数目 + */ + Integer findMaterialTypeCountByCondition(Map map); + + /** + * 根据条件查询材料类型 + * @param map + * @return 符合条件的记录 + */ + List findMaterialTypeByCondition(Map map); + + /** + * 查询所有材料类型 + * @return 所有记录 + */ + List findMaterialTypeAll(); + + + /** + * 根据主键id完全删除记录 + * @param id + * @return 受影响数目 + */ + Integer deleteMaterialTypeById(Integer id); + + /** + * 根据多个主键id删除记录 + * @param ids + * @return 受影响数目 + */ + Integer deleteMaterialTypeByIds(List ids); + + /** + * 修改材料类型 + * @param map + * @return 受影响条数 + */ + Integer updateMaterialType(Map map); + + /** + * 根据主键id查询对应材料类型 + * @param id + * @return 对应记录 + */ + MaterialType findMaterialTypeById(Integer id); + + /** + * 根据主键id将材料类型状态修改为删除 + * @param id + * @return 受影响条数 + */ + Integer changeStateToDeletedById(Integer id); + + /** + * 根据多个主键ids将材料类型状态修改为删除 + * @param ids + * @return 受影响条数 + */ + Integer changeStateToDeletedByIds(List ids); + + /** + * 根据条件修改状态 + * @param map + * @return + */ + Integer updateStateByParam(Map map); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/NoticeService.java b/src/main/java/com/dreamchaser/depository_manage/service/NoticeService.java new file mode 100644 index 00000000..189b656e --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/NoticeService.java @@ -0,0 +1,25 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.Notice; + +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ +public interface NoticeService { + /** + * 增加一条公告信息 + * @param map 参数map + * @return 受影响的行数 + */ + Integer addNotice(Map map); + + /** + * 根据条件查询符合条件的公告信息 + * @param map 参数map + * @return 符合条件的公告列表 + */ + List findNoticeByCondition(Map map); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/RedisService.java b/src/main/java/com/dreamchaser/depository_manage/service/RedisService.java new file mode 100644 index 00000000..659e313a --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/RedisService.java @@ -0,0 +1,5 @@ +package com.dreamchaser.depository_manage.service; + +public interface RedisService { + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/RoleService.java b/src/main/java/com/dreamchaser/depository_manage/service/RoleService.java new file mode 100644 index 00000000..5b8ee96b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/RoleService.java @@ -0,0 +1,57 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.Role; +import com.dreamchaser.depository_manage.pojo.RoleAndDepository; + +import java.util.List; +import java.util.Map; + +public interface RoleService { + + /** + * 获取所有权限 + * @return + */ + List findAllRole(); + + + /** + * 添加用户或者岗位权限及管理的仓库 + * @param map + * @return + */ + Integer addUserOrPostRoleAndDepository(Map map); + + + /** + * 根据使用者id获取角色权限以及管理的仓库 + * @param userid + * @return + */ + RoleAndDepository findDepositoryAndRole(Integer userid); + + /** + * 修改用户或者岗位权限及管理的仓库 + * @param map + * @return + */ + Integer updateUserOrPostRoleAndDepository(Map map); + + /** + * 获取当前登录用户的权限 + * @param userid + * @return + */ + Integer findRoleByUid(String userid); + + + /** + * 根据仓库获取 + * @param did + * @return + */ + List findUserIdByDid(Integer did); + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/UserService.java b/src/main/java/com/dreamchaser/depository_manage/service/UserService.java new file mode 100644 index 00000000..358c8ac0 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/UserService.java @@ -0,0 +1,150 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.Role; +import com.dreamchaser.depository_manage.entity.User; +import com.dreamchaser.depository_manage.pojo.UserP; + +import java.util.List; +import java.util.Map; + +/** + * user的service层 + * @author Dreamchaser + */ +public interface UserService { + /** + * 查询user表的所有数据的行数 + * @return 行数 + */ + Integer findCount(); + + /** + * 查询user表的符合条件数据的行数 + * @param map 参数map + * @return 符合条件数据的行数 + */ + Integer findCountByCondition(Map map); + + /** + * 根据主键查询用户 + * @param id 用户id + * @return 用户信息 + */ + UserP findUserPById(Integer id); + /** + * 根据邮箱获取User对象 + * @param id 邮箱 + * @return user对象 + */ + User findUserById(String id); + + /** + * 根据条查询User对象 + * @param map 参数map + * @return user对象 + */ + User findUserByCondition(Map map); + + /** + * 根据条件查询符合条件的用户集合 + * @param map 参数map + * @return 符合条件的用户集合 + */ + List findUserPsByCondition(Map map); + + /** + * 查询所有的审核人 + * @return 所有审核人对象 + */ + List findReviewers(); + + /** + * 根据仓库id查询对应的仓管员 + * @param depositoryId 仓库id + * @return 用户名称 + */ + List findUsersByDepositoryId(Integer depositoryId); + + /** + * 根据参数插入一条用户信息 + * @param map 参数map + * @return 受影响的行数 + */ + Integer insertUser(Map map); + + /** + * 更新用户信息 + * @param map 参数map + * @return 受影响的行数 + */ + Integer updateUser(Map map); + + /** + * 更新用户非敏感信息(一般用户自己的修改) + * @param map 参数map + * @return 受影响的行数 + */ + Integer updateUserNoSensitive(Map map); + + /** + * 根据id删除用户 + * @param id 用户id + * @return 受影响的行数 + */ + Integer deleteUserById(Integer id); + /** + * 根据id批量删除数据 + * @param ids 用户id的集合 + * @return 受影响的行数 + */ + Integer deleteUserByIds(List ids); + + /** + * 根据拥有的user对象包装成前端常用的UserP对象 + * @param user user对象 + * @return UserP对象 + */ + UserP singlePack(User user); + + + /** + * 根据id将用户状态改为删除 + * @param id + * @return 受影响的行数 + */ + Integer changeUserStateToDeleteById(Integer id); + + + /** + * 根据id批量将用户状态改为删除 + * @param id + * @return 受影响的行数 + */ + Integer changeUserStateToDeleteByIds(List id); + + + /** + * 根据id进行密码修改 + * @param + * @param + * @return 受影响行数 + */ + Integer updateUserPasswordById(Map map); + + /** + * 根据id获取权限名称 + * @param id + * @return + */ + String FindUserRoleById(Integer id); + + + /** + * 根据用户编号获取仓库名称 + * @param id + * @return + */ + String FindDepositoryByUserId(Integer id); + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/AccessAddressServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/AccessAddressServiceImpl.java new file mode 100644 index 00000000..3acbf6e5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/AccessAddressServiceImpl.java @@ -0,0 +1,74 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.AccesstoAddress; +import com.dreamchaser.depository_manage.mapper.AccesstoAddressMapper; +import com.dreamchaser.depository_manage.service.AccessAddressService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class AccessAddressServiceImpl implements AccessAddressService { + + + @Autowired + AccesstoAddressMapper accesstoAddressMapper; + + /** + * 查询所有菜单 + * @return + */ + @Override + public List findAllMenus() { + return accesstoAddressMapper.findAllMenus(); + } + + /**根据角色查询对应菜单 + * + * @return + */ + @Override + public List findMenusByRole(Map map) { + return accesstoAddressMapper.findMenusByRole(map); + } + + + + /** + * 查询所有没有父菜单的菜单 + * @return + */ + @Override + public List findMenusByNoParent() { + return accesstoAddressMapper.findMenusByNoParent(); + } + + /** + * 根据父菜单编号查询对应子菜单 + * @param id + * @return + */ + @Override + public List findAccessstoAddressByParent(Integer id) { + return accesstoAddressMapper.findAccessstoAddressByParent(id); + } + + @Override + public List findAccessstoAddressByParentAndRole(Map map) { + return accesstoAddressMapper.findAccessstoAddressByParentAndRole(map); + } + + @Override + public List findAccessToAddressByUser(Map map) { + return accesstoAddressMapper.findAccessToAddressByUser(map); + } + + @Override + public List findAccessToAddressByList(List menus) { + return accesstoAddressMapper.findAccessToAddressByList(menus); + } + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/CompanyServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/CompanyServiceImpl.java new file mode 100644 index 00000000..88e9af29 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/CompanyServiceImpl.java @@ -0,0 +1,133 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.Company; +import com.dreamchaser.depository_manage.mapper.CompanyMapper; +import com.dreamchaser.depository_manage.service.CompanyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class CompanyServiceImpl implements CompanyService { + @Autowired + CompanyMapper companyMapper; + + /** + * 查询所有公司 + * @return + */ + @Override + public List findCompanyAll() { + return companyMapper.findCompanyAll(); + } + + /** + * 根据父级查询公司信息 + * @return + */ + @Override + public List findCompanyByParentId(Integer parentId) { + return companyMapper.findCompanyByParentId(parentId); + } + + /** + * 根据id编号删除公司信息 + * @param id + * @return + */ + @Override + public Integer deleteCompanyById(Integer id) { + return companyMapper.deleteCompanyById(id); + } + + /** + * 根据编号批量删除公司信息 + * @param ids + * @return + */ + @Override + public Integer deleteCompanyByIds(List ids) { + return companyMapper.deleteCompanyByIds(ids); + } + + /** + * 修改公司信息 + * @param map + * @return + */ + @Override + public Integer updateCompany(Map map) { + return companyMapper.updateCompany(map); + } + + /** + * 插入公司信息 + * @param map + * @return + */ + @Override + public Integer insertCompany(Map map) { + return companyMapper.insertCompany(map); + } + + /** + * 根据条件查询公司 + * @return + */ + @Override + public List findCompanyByCondition(Map map) { + return companyMapper.findCompanyByCondition(map); + } + + /** + * 根据查询条件返回该表的总条数 + * @param map 条件参数 + * @return + */ + @Override + public Integer findCountByCondition(Map map) { + return companyMapper.findCountByCondition(map); + } + + /** + * 根据主键查询公司信息 + * @param id + * @return + */ + @Override + public Company findcompanyById(Integer id) { + return companyMapper.findcompanyById(id); + } + + /** + * 根据主键将公司状态改为删除 + * @param id + * @return + */ + @Override + public Integer changeStateToDeletedById(Integer id) { + return companyMapper.changeStateToDeletedById(id); + } + + /** + * 根据主键批量将公司状态改为删除 + * @param ids + * @return + */ + @Override + public Integer changeStateToDeletedByIds(List ids) { + return companyMapper.changeStateToDeletedByIds(ids); + } + + /** + * 根据条件修改公司状态 + * @param map + * @return + */ + @Override + public Integer updateStateByParam(Map map) { + return companyMapper.updateStateByParam(map); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java new file mode 100644 index 00000000..eee1ed8f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -0,0 +1,691 @@ +package com.dreamchaser.depository_manage.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.controller.PageController; +import com.dreamchaser.depository_manage.entity.*; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.mapper.*; +import com.dreamchaser.depository_manage.pojo.*; +import com.dreamchaser.depository_manage.service.DepositoryRecordService; +import com.dreamchaser.depository_manage.service.RoleService; +import com.dreamchaser.depository_manage.utils.DateUtil; +import com.dreamchaser.depository_manage.utils.HttpUtils; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.apache.http.protocol.HTTP; +import org.springframework.beans.Mergeable; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import cn.hutool.core.lang.Snowflake; + +import java.io.IOException; +import java.util.*; + +/** + * @author Dreamchaser + */ +@Service +public class DepositoryRecordServiceImpl implements DepositoryRecordService { + @Autowired + private DepositoryRecordMapper depositoryRecordMapper; + @Autowired + private DepositoryMapper depositoryMapper; + @Autowired + private TransferRecordMapper transferRecordMapper; + @Autowired + private UserMapper userMapper; + @Autowired + private MaterialMapper materialMapper; + @Autowired + private RoleService roleService; + + /** + * 提交申请,插入一条仓库调度记录 + * + * @param map 仓库调度信息 + * @return 受影响的行数 + */ + @Override + public Integer apply(Map map) { + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("applyTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("state", "待审核"); + String mname = (String) map.get("mname"); + Double quantity = Double.parseDouble((String) map.get("quantity")); + Map param = new HashMap<>(); + param.put("mname", mname); + List list = materialMapper.findMaterialByCondition(param); + Material material = list.get(0); + map.put("price", (material.getPrice() / 100) * quantity * 100); + return depositoryRecordMapper.insertDepositoryRecord(map); + } + + /** + * 插入一条入库记录 + * @param map + * @return + */ + @Override + public Integer applicationIn(Map map) { + Double quantity = Double.parseDouble((String) map.get("quantity")); + Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); + // 获取当前材料 + Material material = materialMapper.findMaterialById(mid); + // 计算当前入库材料金额 + int amounts = (int) ((material.getPrice() / 100) * quantity * 100); + map.put("price", amounts); + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("applicant_time",DateUtil.DateTimeToTimeStamp(simpleTime)); + material.setAmounts(material.getAmounts() + amounts); + material.setQuantity((int) (material.getQuantity() + quantity)); + materialMapper.updateMaterial(material); + return depositoryRecordMapper.insertApplicationInRecord(map); + } + + @Override + public Integer insertApplicationOutRecord(Map map) { + Double quantity = Double.parseDouble((String) map.get("quantity")); + Long time = DateUtil.DateTimeToTimeStamp(DateUtil.getSimpleTime(new Date())); + map.put("applicantTime",time); + Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); + // 获取当前材料 + Material materialById = materialMapper.findMaterialById(mid); + int amounts = (int) ((materialById.getPrice() / 100) * quantity * 100); + map.put("price", amounts); + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("depositoryId",materialById.getDepositoryId()); + map.put("state","待部门负责人审核"); + map.put("istransfer",2); + return depositoryRecordMapper.insertApplicationOutRecord(map); + } + + @Override + public Integer deleteApplicationOutRecordById(Integer id) { + return depositoryRecordMapper.deleteApplicationOutRecordById(id); + } + + @Override + public Integer deleteApplicationOutRecordByIds(List list) { + return depositoryRecordMapper.deleteApplicationOutRecordByIds(list); + } + + /** + * 转移申请 + * + * @param map 仓库调度信息 + * @return + */ + @Override + @Transactional + public Integer transferApply(Map map) { + Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); + Double quantity = Double.parseDouble((String) map.get("quantity")); + Material material = materialMapper.findMaterialById(mid); + map.put("depositoryId",material.getDepositoryId()); + map.put("mid", mid); + map.put("state", "待部门负责人审核"); + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("applicantTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("price", material.getPrice() * quantity * 100); + map.put("istransfer",1); + depositoryRecordMapper.insertApplicationOutRecord(map); + map.put("fromId", material.getDepositoryId()); + //清除主键 +// depositoryRecordMapper.insertApplicationInRecord(map); + map.put("toId", map.get("id")); + //清除主键 + return transferRecordMapper.addTransferRecord(map); + } + + /** + * 审核申请 + * + * @param map 仓库调度信息 + * @return 受影响的行数 + */ + @Override + @Transactional + public Integer review(Map map, Integer userid) { + ApplicationOutRecordP record = depositoryRecordMapper.findApplicationOutRecordPById(ObjectFormatUtil.toInteger(map.get("id"))); + if (map.containsKey("departmentheadPass")) { + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("departmentheadTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("departmenthead", userid); + Integer departmentheadPass = (Integer) map.get("departmentheadPass"); + if (departmentheadPass == 1) { + map.put("state", "待仓库管理员审核"); + } else { + map.put("state", "部门负责人审核未通过"); + } + String depositoryManager = ""; + List userIdByDidList = roleService.findUserIdByDid(record.getDepositoryId()); + for (int i = 0; i < userIdByDidList.size(); i++) { + UserByPort userByPort = PageController.FindUserById(userIdByDidList.get(i)); + depositoryManager += userByPort.getId().toString() + ","; + } + map.put("depositoryManager",depositoryManager); + } + else { + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("depositoryManagerTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("depositoryManager", userid); + map.put("depositoryId", record.getDepositoryId()); + map.put("mid", record.getMid()); + Material material = materialMapper.findMaterialById(record.getMid()); + Integer depositoryManagerPass = (Integer) map.get("depositoryManagerPass"); + if (depositoryManagerPass == 1) { + if (material.getQuantity() >= record.getQuantity()) { + // 当前出库金额 + Double sum = material.getPrice() * record.getQuantity(); + material.setAmounts(material.getAmounts() - sum); + material.setQuantity(material.getQuantity() - record.getQuantity()); + materialMapper.updateMaterial(material); + if(record.getIstransfer() == 1){ + applicationIn(map); + } + } else { + throw new MyException("库存不足于该出库请求"); + } + map.put("state", "已出库"); + } else { + map.put("state", "仓库管理员审核未通过"); + } + } +// return depositoryRecordMapper.updateDepositoryRecord(map); + return depositoryRecordMapper.updateApplicationOutRecord(map); + } + /* @Override + @Transactional + public Integer review(Map map, Integer userid) { + if (map.containsKey("reviewPass")) { + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("reviewTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("reviewerId", userid); + Integer reviewPass = (Integer) map.get("reviewPass"); + if (reviewPass == 1) { + map.put("state", "待验收"); + } else { + map.put("state", "审核未通过"); + } + } else { + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("checkTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("checkerId", userid); + DepositoryRecord record = depositoryRecordMapper.findDepositoryRecordById(ObjectFormatUtil.toInteger(map.get("id"))); + map.put("depositoryId", record.getDepositoryId()); + map.put("mname", record.getMname()); + List list = materialMapper.findMaterialByCondition(map); + Material material = list.get(0); + Integer checkPass = (Integer) map.get("checkPass"); + if (checkPass == 1) { + if (1 == record.getType()) { + map.put("state", "已入库"); + //这里貌似会引起并发问题 + // 当前入库金额 + Double sum = material.getPrice() * record.getQuantity(); + material.setAmounts(material.getAmounts() + sum); +// material.setPrice(material.getPrice() * material.getQuantity() + record.getPrice()); + material.setQuantity(material.getQuantity() + record.getQuantity()); + materialMapper.updateMaterial(material); + } else { + if (material.getQuantity() >= record.getQuantity()) { + // 当前出库金额 + Double sum = material.getPrice() * record.getQuantity(); + material.setAmounts(material.getAmounts() - sum); + material.setQuantity(material.getQuantity() - record.getQuantity()); + materialMapper.updateMaterial(material); + } else { + throw new MyException("库存不足于该出库请求"); + } + map.put("state", "已出库"); + } + } else { + map.put("state", "验收未通过"); + } + } + return depositoryRecordMapper.updateDepositoryRecord(map); + }*/ + + /** + * 根据id修改仓库调度记录 + * + * @param map 参数map + * @return 受影响的行数 + */ + @Override + public Integer updateDepositoryRecord(Map map) { + return depositoryRecordMapper.updateDepositoryRecord(map); + } + + /** + * 根据id主键查询数据 + * + * @param id id + * @return 该id的数据记录 + */ + @Override + public DepositoryRecordP findDepositoryRecordById(Integer id) { + DepositoryRecord depositoryRecordById = depositoryRecordMapper.findDepositoryRecordById(id); + return singlePack(depositoryRecordById); + } + + public Integer checkPass() { + return null; + } + + /** + * 查找所有仓库调度记录 + * + * @return 所有的仓库调度记录集合 + */ + @Override + public List findDepositoryRecordAll() { + return depositoryRecordMapper.findDepositoryRecordAll(); + } + + /** + * 根据条件查询仓库调度记录,同时支持分页查询(需要begin和size参数) + * + * @param map 查询参数 + * @return 符合条件的仓库调度记录集合 + */ + @Override + public List findDepositoryRecordPByCondition(Map map) { + Integer size = 8, page = 1; + if (map.containsKey("size")) { + size = ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")) { + page = ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin", (page - 1) * size); + } + List depositoryRecordByCondition = depositoryRecordMapper.findDepositoryRecordByCondition(map); + return pack(depositoryRecordByCondition); + } + + /** + * 根据条件查询入库记录,同时支持分页查询 + * @param map + * @return + */ + @Override + public List findApplicationInRecordPByCondition(Map map) { + Integer size = 10, page = 1; + if (map.containsKey("size")) { + size = ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")) { + page = ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin", (page - 1) * size); + } + if(map.containsKey("applyTime")){ + String applyTime = (String) map.get("applyTime"); + map.put("applicantTime",DateUtil.DateTimeByMonthToTimeStamp(applyTime)); + } + List list = depositoryRecordMapper.findApplicationInRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + UserByPort userByPortById = findUserByPortById(list.get(i).getApplicantId()); + String time = DateUtil.TimeStampToDateTime(Long.valueOf(list.get(i).getApplicantTime())); + list.get(i).setApplicantName(userByPortById.getName()); + list.get(i).setApplicantTime(time); + } + return list; + } + /** + * 根据条件查询出库记录,同时支持分页查询 + * @param map + * @return + */ + @Override + public List findApplicationOutRecordPByCondition(Map map) { + Integer size = 10, page = 1; + if (map.containsKey("size")) { + size = ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")) { + page = ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin", (page - 1) * size); + } + if(map.containsKey("applyTime")){ + String applyTime = (String) map.get("applyTime"); + map.put("applicantTime",DateUtil.DateTimeByMonthToTimeStamp(applyTime)); + } + List list = depositoryRecordMapper.findApplicationOutRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + UserByPort userByPortById = findUserByPortById(list.get(i).getApplicantId()); + String time = DateUtil.TimeStampToDateTime(Long.valueOf(list.get(i).getApplicantTime())); + list.get(i).setApplicantName(userByPortById.getName()); + list.get(i).setApplicantTime(time); + } + return list; + } + + /** + * 根据条件查询出库记录数目 + * @param map + * @return + */ + @Override + public Integer findApplicationOutRecordPCountByCondition(Map map) { + return depositoryRecordMapper.findApplicationOutRecordPCountByCondition(map); + } + + /** + * 根据id查询出库记录 + * @param id + * @return + */ + @Override + public ApplicationOutRecordP findApplicationOutRecordPById(Integer id) { + return depositoryRecordMapper.findApplicationOutRecordPById(id); + } + + /** + * 根据条件查询入库记录数目 + * @param map + * @return + */ + @Override + public Integer findApplicationInRecordPCountByCondition(Map map) { + return depositoryRecordMapper.findApplicationInRecordPCountByCondition(map); + } + + /** + * 根据条件查询自己的任务(根据isDone来决定查询已完成或者未完成的任务),同时支持分页查询(需要begin和size参数) + * + * @param map 查询参数 + * @return 我的任务 + */ + @Override + public List findMyTask(Map map) { + Integer size = 10, page = 1; + if (map.containsKey("size")) { + size = ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")) { + page = ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin", (page - 1) * size); + } +// return simplePack(depositoryRecordMapper.findMyTask(map)); + return simplePackOut(depositoryRecordMapper.findMyTaskOut(map)); + } + + /** + * 根据id删除仓库记录 + * + * @param id + * @return 受影响的行数 + */ + @Override + public Integer deleteDepositoryRecordById(Integer id) { + return depositoryRecordMapper.deleteDepositoryRecordById(id); + } + + /** + * 根据id集合删除多条仓库记录 + * + * @param list id集合 + * @return 受影响的行数 + */ + @Override + public Integer deleteDepositoryRecordByIds(List list) { + return depositoryRecordMapper.deleteDepositoryRecordByIds(list); + } + + /** + * 返回该表的总条数 + * + * @return 条数 + */ + @Override + public Integer findCount() { + return depositoryRecordMapper.findCount(); + } + + /** + * 返回该我的任务数(完成或者未完成) + * + * @return 条数 + */ + @Override + public Integer findMyTaskCount(Map map) { + return depositoryRecordMapper.findMyTaskCount(map); + } + /** + * 返回该我的任务数(完成或者未完成) + * + * @return 条数 + */ + @Override + public Integer findMyTaskOutCount(Map map) { + return depositoryRecordMapper.findMyTaskOutCount(map); + } + + /** + * 根据查询条件返回该表的总条数 + * + * @param map 条件参数 + * @return 条数 + */ + @Override + public Integer findCountByCondition(Map map) { + return depositoryRecordMapper.findCountByCondition(map); + } + + /** + * 计算材料总数 + * + * @return + */ + @Override + public Double CalculateAllCount(Integer type, String state) { + List depositoryRecordAll = depositoryRecordMapper.findDepositoryRecordAll(); + Double sum = 0.0; + if (state.isEmpty()) { + for (int i = 0; i < depositoryRecordAll.size(); i++) { + if (depositoryRecordAll.get(i).getType() == type) { + sum += depositoryRecordAll.get(i).getQuantity(); + } + } + } else { + for (int i = 0; i < depositoryRecordAll.size(); i++) { + if (depositoryRecordAll.get(i).getType() == type && state.equals(depositoryRecordAll.get(i).getState())) { + sum += depositoryRecordAll.get(i).getQuantity(); + } + } + } + + return sum; + } + + /** + * 计算材料总额 + * + * @return + */ + @Override + public Double CalculateAllPrice(Integer type, String state) { + List depositoryRecordAll = depositoryRecordMapper.findDepositoryRecordAll(); + Double sum = 0.0; + if (state.isEmpty()) { + for (int i = 0; i < depositoryRecordAll.size(); i++) { + if (depositoryRecordAll.get(i).getType() == type) { + sum += (depositoryRecordAll.get(i).getPrice() / 100); + } + } + } else { + for (int i = 0; i < depositoryRecordAll.size(); i++) { + if (depositoryRecordAll.get(i).getType() == type && state.equals(depositoryRecordAll.get(i).getState())) { + sum += (depositoryRecordAll.get(i).getPrice() / 100); + } + } + } + return sum; + } + + /** + * 获取一段时间内的库存额度 + * + * @param start + * @param end + * @param type + * @param depositoryId + * @return + */ + @Override + public Double findDepositoryRecordByDate(Long end, Long start, Integer type, Integer depositoryId) { + Map map = new HashMap<>(); + map.put("start", start); + map.put("end", end); + map.put("type", type); + map.put("depositoryId", depositoryId); + if (type == 1) { + map.put("state", "已入库"); + } else if (type == 2) { + map.put("state", "已出库"); + } + return depositoryRecordMapper.findDepositoryRecordByDate(map); + } + + /** + * 根据条件获取月份中材料的总额 + * + * @param map + * @return + */ + @Override + public Double findMaterialCountByMonth(Map map) { + return depositoryRecordMapper.findMaterialCountByMonth(map); + } + + /** + * 查询仓库当天流水 + * + * @return + */ + @Override + public Integer findWarehouseRecord(Map map) { + return depositoryRecordMapper.findWarehouseRecord(map); + } + + /** + * 根据id查询入库记录 + * @param id + * @return + */ + @Override + public ApplicationInRecordP findApplicationInRecordPById(Integer id) { + return depositoryRecordMapper.findApplicationInRecordPById(id); + } + + /** + * 根据id删除入库记录 + * @return 受影响的行数 + * @param id + */ + @Override + public Integer deleteApplicationInRecordById(Integer id) { + return depositoryRecordMapper.deleteApplicationInRecordById(id); + } + + /** + * 根据id集合删除多条入库记录 + * @param list id集合 + * @return 受影响的行数 + */ + @Override + public Integer deleteApplicationInRecordByIds(List list) { + return depositoryRecordMapper.deleteApplicationInRecordByIds(list); + } + + + + /** + * 对查出来的记录进行包装,包装成前端需要的数据 + * + * @param list SimpleDepositoryRecord集合 + * @return 包装好的集合 + */ + private List simplePack(List list) { + List result = new ArrayList<>(list.size()); + for (SimpleDepositoryRecord record : list) { + SimpleDepositoryRecordP d = new SimpleDepositoryRecordP(record); + d.setApplicantName(userMapper.findUserNameById(record.getApplicantId())); + result.add(d); + } + return result; + } + + + /** + * 对查出来的记录进行包装,包装成前端需要的数据 + * + * @param list SimpleDepositoryRecord集合 + * @return 包装好的集合 + */ + private List simplePackOut(List list) { + List result = new ArrayList<>(list.size()); + for (SimpleApplicationOutRecord record : list) { + SimpleApplicationOutRecordP d = new SimpleApplicationOutRecordP(record); + UserByPort userByPort = findUserByPortById(record.getApplicantId()); + d.setApplicantName(userByPort.getName()); + result.add(d); + } + return result; + } + + /** + * 对查出来的记录进行包装,包装成前端需要的数据 + * + * @param list DepositoryRecord集合 + * @return 包装好的集合 + */ + private List pack(List list) { + List result = new ArrayList<>(list.size()); + for (DepositoryRecord record : list) { + result.add(singlePack(record)); + } + return result; + } + + private DepositoryRecordP singlePack(DepositoryRecord record) { + DepositoryRecordP d = new DepositoryRecordP(record); + UserByPort getApplicantUser = findUserByPortById(record.getApplicantId()); + d.setApplicantName(getApplicantUser.getName()); + d.setDepositoryName(depositoryMapper.findDepositoryNameById(record.getDepositoryId())); + if (record.getReviewerId() != null) { + UserByPort reviewerUser = findUserByPortById(record.getReviewerId()); + d.setReviewerName(reviewerUser.getName()); + } + if (record.getCheckerId() != null) { + UserByPort checkerUser = findUserByPortById(record.getCheckerId()); + d.setCheckerName(checkerUser.getName()); + } + return d; + } + + private UserByPort findUserByPortById(Integer id) { + String url = "http://172.20.2.87:39168/staff/archivescont"; + Map map = new HashMap<>(); + map.put("id", id); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + UserByPort userByPort = JSONObject.toJavaObject( data, UserByPort.class); + return userByPort; + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java new file mode 100644 index 00000000..a1366984 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java @@ -0,0 +1,170 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.Depository; +import com.dreamchaser.depository_manage.mapper.DepositoryMapper; +import com.dreamchaser.depository_manage.service.DepositoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class DepositoryServiceImpl implements DepositoryService { + @Autowired + DepositoryMapper depositoryMapper; + + /** + * 根据条件插入数据 + * @param map 参数map + * @return 影响条数 + */ + @Override + public Integer insertDepository(Map map) { + if("".equals(map.get("parentId"))){ + map.put("parentId",0); + } + return depositoryMapper.insertDepository(map); + } + + /** + * 根据条件查询数据 + * @param map + * @return 影响条数 + */ + @Override + public List findDepositoryRecordPByCondition(Map map) { + return depositoryMapper.findDepositoryRecordPByCondition(map); + } + + /** + * 根据条件查询对应的总条数 + * @param map 条件参数 + * @return 查询条数 + */ + @Override + public Integer findCountByCondition(Map map) { + return depositoryMapper.findCountByCondition(map); + } + + /** + * 根据主键id删除数据 + * @param id + * @return 影响条数 + */ + @Override + public Integer deleteDepositoryRecordById(Integer id) { + return depositoryMapper.deleteDepositoryRecordById(id); + } + + /** + * 根据多个主键id删除多条数据 + * @param list + * @return 影响条数 + */ + @Override + public Integer deleteDepositoryRecordByIds(List list) { + return depositoryMapper.deleteDepositoryRecordByIds(list); + } + + /** + * 根据主键id获取数据信息 + * @param id + * @return 查询结果 + */ + @Override + public Depository findDepositoryRecordById(Integer id) { + return depositoryMapper.findDepositoryRecordById(id); + } + + /** + * 根据条件修改对应数据信息 + * @param map + * @return 影响条数 + */ + @Override + public Integer updateDepository(Map map) { + return depositoryMapper.updateDepository(map); + } + + /** + * 根据条件修改状态 + * @param map + * @return + */ + @Override + public Integer updateStateByParam(Map map) { + return depositoryMapper.updateStateByParam(map); + } + + /** + * 查询所有数据信息 + * @return 所有数据 + */ + @Override + public List findDepositoryAll() { + return depositoryMapper.findDepositoryAll(); + } + + /** + * 根据主键id将仓库状态改为删除 + * @param id + * @return 受影响数目 + */ + @Override + public Integer changeStateToDeletedById(Integer id) { + return depositoryMapper.changeStateToDeletedById(id); + } + + /** + * 根据多个主键id将对应仓库状态改为删除 + * @param ids + * @return 受影响数目 + */ + @Override + public Integer changeStateToDeletedByIds(List ids) { + return depositoryMapper.changeStateToDeletedByIds(ids); + } + + /** + * 计算未删除仓库综合 + * @return + */ + @Override + public Integer findAllCountByNoDelete() { + return depositoryMapper.findAllCountByState(); + } + + @Override + public Map findDepositoryAllNameAndId() { + List depositoryAll = depositoryMapper.findDepositoryAll(); + Map map = new HashMap<>(); + for (int i = 0; i < depositoryAll.size(); i++) { + map.put(depositoryAll.get(i).getDname(),depositoryAll.get(i).getId()); + } + return map; + } + + /** + * 根据仓库名称获取当前仓库库存容量 + * @param dname + * @return + */ + @Override + public Double getToDayInventoryByDName(String dname) { + return depositoryMapper.getToDayInventoryByDName(dname); + } + + /** + * 根据多个主键id获取对应数据 + * @param ids + * @return 搜索结果 + */ + @Override + public List selectDepositoryRecordByIds(List ids) { + return depositoryMapper.selectDepositoryRecordByIds(ids); + } + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java new file mode 100644 index 00000000..284ac637 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java @@ -0,0 +1,99 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.alibaba.fastjson.JSON; +import com.dreamchaser.depository_manage.entity.ExcelInfo; +import com.dreamchaser.depository_manage.service.ExcelService; +import com.dreamchaser.depository_manage.service.MaterialService; +import com.dreamchaser.depository_manage.utils.*; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.dreamchaser.depository_manage.utils.FileUtil.uploadFile; + + +@Slf4j +@Service +public class ExcelServiceImpl implements ExcelService { + + // excel导入工具类 + @Autowired + excelUtil excelutil; + + @Autowired + MaterialService materialService; + + @Override + public ResultVo importExcel(MultipartFile file) { + // 1.入参校验 + ResultVo checkExcelParam = excelutil.checkExcelParam(file); + if (!checkExcelParam.checkSuccess()) { + log.error(checkExcelParam.getMsg()); + return checkExcelParam; + } + // 2.上传至服务器某路径下 + ResultVo resultVo = uploadFile(file); + if (!resultVo.checkSuccess()) { + return resultVo; + } + String filePath = (String)resultVo.getData(); + if (StringUtils.isBlank(filePath)) { + return ResultVoUtil.error("【导入Excel文件】生成的Excel文件的路径为空"); + } + // 3.读取excel文件 + Map readResult = excelutil.simpleExcelRead(filePath, ExcelInfo.class); + List excelVos = (List) readResult.get("dataList"); + List errMsg =(List) readResult.get("errMsg"); + + + if (CollectionUtil.isEmpty(excelVos) || excelVos.size() < 2) { + log.error("【导入Excel文件】上传Excel文件{}为空", file.getOriginalFilename()); + return ResultVoUtil.error("上传Excel文件为空"); + } + // 4.通过线程池开启一个线程去执行数据库操作,主线程继续往下执行 + // 4.1开启一个线程 + TaskCenterUtil taskCenterUtil = TaskCenterUtil.getTaskCenterUtil(); + taskCenterUtil.submitTask(() -> { + List success = new ArrayList<>(); + Map returnResult = new HashMap<>(); + log.info("【批量添加】批量添加数据:{}", JSON.toJSONString(excelVos)); + for (int i = 0; i < excelVos.size(); i++) { + Map param = new HashMap<>(); + param.put("mname",excelVos.get(i).getMname()); + param.put("code",excelVos.get(i).getCode()); + param.put("price",excelVos.get(i).getPrice()); + param.put("unit",excelVos.get(i).getUnit()); + param.put("amounts",excelVos.get(i).getAmounts()); + param.put("quantity",excelVos.get(i).getQuantity()); + param.put("version",excelVos.get(i).getVersion()); + param.put("texture",excelVos.get(i).getTexture()); + param.put("depositoryId",excelVos.get(i).getDepositoryId()); + param.put("depositoryCode",excelVos.get(i).getDepositoryCode()); + param.put("materialTypeId",excelVos.get(i).getTypeId()); + param.put("id",excelVos.get(i).getId()); + materialService.insertMaterial(param); + success.add(excelVos.get(i)); + } + returnResult.put("success",success); + returnResult.put("errMsg",errMsg); + return ResultVoUtil.returnResultVo(200,returnResult,"结果"); + }); + // 4.2删除临时文件 + boolean deleteFile = FileUtil.deleteFile(new File(filePath)); + if (!deleteFile) { + log.error("【导入Excel文件】删除临时文件失败,临时文件路径为{}", filePath); + return ResultVoUtil.error("删除临时文件失败"); + } + log.info("【导入Excel文件】删除临时文件成功,临时文件路径为:{}", filePath); + return ResultVoUtil.returnResultVo(200,readResult,"结果"); +// return ResultVoUtil.success(excelVos); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java new file mode 100644 index 00000000..6331837f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java @@ -0,0 +1,258 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.entity.DepositoryRecord; +import com.dreamchaser.depository_manage.entity.Material; +import com.dreamchaser.depository_manage.entity.UserByPort; +import com.dreamchaser.depository_manage.mapper.DepositoryMapper; +import com.dreamchaser.depository_manage.mapper.MaterialMapper; +import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; +import com.dreamchaser.depository_manage.pojo.DepositoryRecordP; +import com.dreamchaser.depository_manage.pojo.MaterialP; +import com.dreamchaser.depository_manage.service.MaterialService; +import com.dreamchaser.depository_manage.service.RoleService; +import com.dreamchaser.depository_manage.utils.HttpUtils; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.apache.http.protocol.HTTP; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ +@Service +public class MaterialServiceImpl implements MaterialService { + @Autowired + MaterialMapper materialMapper; + @Autowired + DepositoryMapper depositoryMapper; + @Autowired + MaterialTypeMapper materialTypeMapper; + @Autowired + RoleService roleService; + + /** + * 增加一条库存记录 + * + * @param map 参数map + * @return 受影响的行数 + */ + @Override + public Integer insertMaterial(Map map) { + int quantity = (int) Math.round(Double.parseDouble(map.get("quantity").toString())); + int price = (int) (Double.parseDouble( map.get("price").toString()) * 100); + map.put("price",price); + map.put("amounts",quantity * price); + return materialMapper.insertMaterial(map); + } + + /** + * 更新一条库存记录 + * + * @param map 参数列表 + * @return 受影响的行数 + */ + @Override + public Integer updateMaterial(Map map) { + if(map.containsKey("price")){ + Double price = Double.parseDouble((String) map.get("price")) * 100; + Integer quantity = Integer.parseInt((String) map.get("quantity")); + map.put("amounts",price * quantity); + map.put("price",price); + } + return materialMapper.updateMaterial(map); + } + + /** + * 根据id删除一条库存记录 + * @param id 库存id + * @return 受影响的行数 + */ + @Override + public Integer deleteMaterialById(int id) { + return materialMapper.deleteMaterialById(id); + } + + /** + * 根据条件查询符合条件的库存信息 + * @param map 条件map + * @return 符合条件的库存信息 + */ + @Override + public List findMaterialPByCondition(Map map) { + Integer size = 10,page=1; + if (map.containsKey("size")){ + size= ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")){ + page=ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin",(page-1)*size); + } + List list=materialMapper.findMaterialByCondition(map); + for (int i = 0; i < list.size(); i++) { + list.get(i).setPrice(list.get(i).getPrice() / 100); + list.get(i).setAmounts(list.get(i).getAmounts() / 100); + } + return pack(list); + } + + /** + * 查询所有的库存信息 + * @return 所有的库存信息 + */ + @Override + public List findMaterialAll() { + List materialList = materialMapper.findMaterialByCondition(new HashMap()); + for (int i = 0; i < materialList.size(); i++) { + materialList.get(i).setPrice(materialList.get(i).getPrice() / 100); + materialList.get(i).setAmounts(materialList.get(i).getAmounts() / 100); + } + return materialList; + } + + /** + * 根据id查询库存信息 + * @param id 库存id + * @return 库存信息 + */ + @Override + public Material findMaterialById(int id) { + Material material = materialMapper.findMaterialById(id); + material.setPrice(material.getPrice() / 100); + material.setAmounts(material.getAmounts() / 100); + return material; + } + + /** + * 根据id查询库存信息 + * @param id 库存id + * @return 库存信息 + */ + @Override + public Material findMaterialAndTypeById(int id) { + Material material = materialMapper.findMaterialAndTypeById(id); + material.setPrice(material.getPrice() / 100); + material.setAmounts(material.getAmounts() / 100); + return material; + } + + /** + * 根据id批量查询库存信息 + * @param ids 库存id集合 + * @return 库存信息 + */ + @Override + public Material findMaterialByIds(List ids) { + Material material = materialMapper.findMaterialByIds(ids); + material.setPrice(material.getPrice() / 100); + material.setAmounts(material.getAmounts() / 100); + return material; + } + + /** + * 查询所有库存条数 + * @return 库存记录的行数 + */ + @Override + public Integer findCount() { + return materialMapper.findCount(); + } + + /** + * 根据条件返回符合条件的库存记录行数 + * @param map 条件map + * @return 符合条件的记录行数 + */ + @Override + public Integer findCountByCondition(Map map) { + return materialMapper.findCountByCondition(map); + } + + /** + * 根据主键Id将材料状态改为删除 + * @param id + * @return 受影响条数 + */ + @Override + public Integer changeStateToDeletedById(Integer id) { + return materialMapper.changeStateToDeletedById(id); + } + + /** + * 根据主键id批量将材料状态改为删除 + * @param ids + * @return 受影响条数 + */ + @Override + public Integer changeStateToDeletedByIds(List ids) { + return materialMapper.changeStateToDeletedByIds(ids); + } + + /** + * 计算所有仓库未删除总额 + * @return + */ + @Override + public Double findAllPriceNoDelete() { + Double sum = 0.0; +// List materialAll = materialMapper.findMaterialAll(); + List materialAll = materialMapper.findMaterialByCondition(new HashMap()); + for (int i = 0; i < materialAll.size(); i++) { + sum += materialAll.get(i).getPrice() / 100; + } + return sum; + } + + /** + * 根据条件修改状态 + * @param map + * @return + */ + @Override + public Integer updateStateByParam(Map map) { + return materialMapper.updateStateByParam(map); + } + + + /** + * 对查出来的记录进行包装,包装成前端需要的数据 + * @param list DepositoryRecord集合 + * @return 包装好的集合 + */ + private List pack(List list){ + List result=new ArrayList<>(list.size()); + for (Material material: list){ + MaterialP m=new MaterialP(material); + m.setDepositoryName(depositoryMapper.findDepositoryNameById(material.getDepositoryId())); + m.setTypeName(materialTypeMapper.findMaterialTypeNameById(material.getTypeId())); + m.setWarehouseManager(depositoryMapper.findUserNameByDepositoryId(material.getDepositoryId())); + result.add(m); + } + return result; + } + + private UserByPort findUserByPortById(Integer id) { + String url = "http://172.20.2.87:39168/staff/archivescont"; + Map map = new HashMap<>(); + map.put("id", id); + String jsonString = JSONObject.toJSONString(map); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + UserByPort userByPort = JSONObject.toJavaObject( data, UserByPort.class); + return userByPort; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java new file mode 100644 index 00000000..c80c962a --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java @@ -0,0 +1,133 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.MaterialType; +import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; +import com.dreamchaser.depository_manage.service.MaterialTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @author 金昊霖 + */ +@Service +public class MaterialTypeServiceImpl implements MaterialTypeService { + @Autowired + MaterialTypeMapper materialTypeMapper; + + /** + * 插入一条材料类型记录 + * @param map 参数map + * @return 受影响的数量 + */ + @Override + public Integer insertMaterialType(Map map) { + if("".equals(map.get("parentId"))){ + map.put("parentId",0); + } + return materialTypeMapper.insertMaterialType(map); + } + + /** + * 根据条件查询对应记录数目 + * @param map + * @return 对应数目 + */ + @Override + public Integer findMaterialTypeCountByCondition(Map map) { + return materialTypeMapper.findMaterialTypeCountByCondition(map); + } + + /** + * 根据条件查询材料类型 + * @param map + * @return 符合条件的记录 + */ + @Override + public List findMaterialTypeByCondition(Map map) { + return materialTypeMapper.findMaterialTypeByCondition(map); + } + + /** + * 查询所有材料类型 + * @return 所有记录 + */ + @Override + public List findMaterialTypeAll() { + return materialTypeMapper.findMaterialTypeAll(); + } + + /** + * 根据主键id完全删除记录 + * @param id + * @return 受影响数目 + */ + @Override + public Integer deleteMaterialTypeById(Integer id) { + return materialTypeMapper.deleteMaterialTypeById(id); + } + + /** + * 根据多个主键id删除记录 + * @param ids + * @return 受影响数目 + */ + @Override + public Integer deleteMaterialTypeByIds(List ids) { + return materialTypeMapper.deleteMaterialTypeByIds(ids); + } + + /** + * 修改材料类型 + * @param map + * @return 受影响条数 + */ + @Override + public Integer updateMaterialType(Map map) { + return materialTypeMapper.updateMaterialType(map); + } + + /** + * 根据主键id查询对应材料类型 + * @param id + * @return 对应记录 + */ + @Override + public MaterialType findMaterialTypeById(Integer id) { + return materialTypeMapper.findMaterialTypeById(id); + } + + /** + * 根据主键id将材料类型状态修改为删除 + * @param id + * @return 受影响条数 + */ + @Override + public Integer changeStateToDeletedById(Integer id) { + return materialTypeMapper.changeStateToDeletedById(id); + } + + /** + * 根据多个主键ids将材料类型状态修改为删除 + * @param ids + * @return 受影响条数 + */ + @Override + public Integer changeStateToDeletedByIds(List ids) { + return materialTypeMapper.changeStateToDeletedByIds(ids); + } + + /** + * 根据条件更改类型状态 + * @param map + * @return + */ + @Override + public Integer updateStateByParam(Map map) { + return materialTypeMapper.updateStateByParam(map); + } + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/NoticeServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/NoticeServiceImpl.java new file mode 100644 index 00000000..9d72c84d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/NoticeServiceImpl.java @@ -0,0 +1,39 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.Notice; +import com.dreamchaser.depository_manage.mapper.NoticeMapper; +import com.dreamchaser.depository_manage.service.NoticeService; +import com.dreamchaser.depository_manage.utils.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author Dreamchaser + */ +@Service +public class NoticeServiceImpl implements NoticeService { + @Autowired + NoticeMapper noticeMapper; + @Override + public Integer addNotice(Map map) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar instance = Calendar.getInstance(); + map.put("time",DateUtil.DateTimeToTimeStamp(simpleDateFormat.format(instance.getTime()))); + return noticeMapper.addNotice(map); + } + + @Override + public List findNoticeByCondition(Map map) { + List notice = noticeMapper.findNoticeByCondition(map); + for (int i = 0; i < notice.size(); i++) { + notice.get(i).setTime(DateUtil.TimeStampToDateTime(Long.parseLong(notice.get(i).getTime()))); + } + return notice; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java new file mode 100644 index 00000000..540774c4 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java @@ -0,0 +1,11 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.service.RedisService; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +@Service +public class RedisServiceImpl implements RedisService { + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java new file mode 100644 index 00000000..0a52a4e6 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java @@ -0,0 +1,71 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.Role; +import com.dreamchaser.depository_manage.mapper.RoleMapper; +import com.dreamchaser.depository_manage.pojo.RoleAndDepository; +import com.dreamchaser.depository_manage.service.RoleService; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class RoleServiceImpl implements RoleService { + + @Autowired + RoleMapper roleMapper; + + /** + * 获取所有权限 + * @return + */ + @Override + public List findAllRole() { + return roleMapper.findAllRole(); + } + + /** + * 添加用户或者岗位权限及管理的仓库 + * @param map + * @return + */ + @Override + public Integer addUserOrPostRoleAndDepository(Map map){ + return roleMapper.addUserOrPostRoleAndDepository(map); + } + /** + * 根据使用者id获取角色权限以及管理的仓库 + * @param userid + * @return + */ + @Override + public RoleAndDepository findDepositoryAndRole(Integer userid) { + return roleMapper.findDepositoryAndRole(userid); + } + /** + * 修改用户或者岗位权限及管理的仓库 + * @param map + * @return + */ + @Override + public Integer updateUserOrPostRoleAndDepository(Map map) { + return roleMapper.updateUserOrPostRoleAndDepository(map); + } + + /** + * 获取当前登录用户的权限 + * @param userid + * @return + */ + @Override + public Integer findRoleByUid(String userid) { + return roleMapper.findRoleByUid(ObjectFormatUtil.toInteger(userid)); + } + + @Override + public List findUserIdByDid(Integer did) { + return roleMapper.findUserIdByDid(did); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java new file mode 100644 index 00000000..693f44d6 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java @@ -0,0 +1,181 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.Role; +import com.dreamchaser.depository_manage.entity.User; +import com.dreamchaser.depository_manage.mapper.DepositoryMapper; +import com.dreamchaser.depository_manage.mapper.UserMapper; +import com.dreamchaser.depository_manage.pojo.UserP; +import com.dreamchaser.depository_manage.service.UserService; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.thymeleaf.expression.Ids; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class UserServiceImpl implements UserService { + static final Map REVIVER_MAP=new HashMap<>(1); + static { + REVIVER_MAP.put("authority","3"); + } + @Autowired + UserMapper userMapper; + @Autowired + DepositoryMapper depositoryMapper; + + @Override + public Integer findCount() { + return userMapper.findCount(); + } + + @Override + public Integer findCountByCondition(Map map) { + return userMapper.findCountByCondition(map); + } + + @Override + public UserP findUserPById(Integer id) { + return singlePack(userMapper.findUserById(id)); + } + + @Override + public User findUserById(String id) { + return userMapper.findUserById(ObjectFormatUtil.toInteger(id)); + } + + @Override + public User findUserByCondition(Map map) { + return userMapper.findUserByCondition(map); + } + + /** + * 根据条件查询符合条件的用户集合 + * @param map 参数map + * @return 符合条件的用户集合 + */ + @Override + public List findUserPsByCondition(Map map) { + Integer size = 8,page=1; + if (map.containsKey("size")){ + size= ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")){ + page=ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin",(page-1)*size); + } + List list=userMapper.findUsersByCondition(map); + return pack(list); + } + + @Override + public List findReviewers() { + return userMapper.findUsersByCondition(REVIVER_MAP); + } + + @Override + public List findUsersByDepositoryId(Integer depositoryId) { + Map map=new HashMap<>(1); + map.put("depositoryId",depositoryId); + return userMapper.findUsersByCondition(map); + } + + @Override + public Integer insertUser(Map map) { + return userMapper.insertUser(map); + } + + @Override + public Integer updateUser(Map map) { + return userMapper.updateUser(map); + } + + @Override + public Integer updateUserNoSensitive(Map map) { + return userMapper.updateUserNoSensitive(map); + } + + @Override + public Integer deleteUserById(Integer id) { + return userMapper.deleteUserById(id); + } + + @Override + public Integer deleteUserByIds(List ids) { + return userMapper.deleteUserByIds(ids); + } + + private List pack(List list){ + List result=new ArrayList<>(list.size()); + for (User u:list){ + result.add(singlePack(u)); + } + return result; + } + @Override + public UserP singlePack(User user){ + UserP userP=new UserP(user); + if (user.getDepositoryId()==-1){ + userP.setDepositoryName("全部仓库"); + }else { + userP.setDepositoryName(depositoryMapper.findDepositoryNameById(user.getDepositoryId())); + } + return userP; + } + + + /** + * 根据id将用户状态改为删除 + * @param id + * @return 受影响的行数 + */ + @Override + public Integer changeUserStateToDeleteById(Integer id) { + return userMapper.changeUserStateToDeleteById(id); + } + + /** + * 根据id批量将用户状态改为删除 + * @param ids + * @return 受影响的行数 + */ + @Override + public Integer changeUserStateToDeleteByIds(List ids) { + return userMapper.changeUserStateToDeleteByIds(ids); + } + + /** + * 根据id进行密码修改 + * @return 受影响行数 + */ + @Override + public Integer updateUserPasswordById(Map map) { + return userMapper.updateUserPasswordById(map); + } + + /** + * 根据id获取权限名称 + * @param id + * @return + */ + @Override + public String FindUserRoleById(Integer id) { + return userMapper.FindUserRoleById(id); + } + + /** + * 根据用户id查询具体仓库名称 + * @param id + * @return + */ + @Override + public String FindDepositoryByUserId(Integer id) { + return userMapper.FindDepositoryByUserId(id); + } + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/CollectionUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/CollectionUtil.java new file mode 100644 index 00000000..03f034af --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/CollectionUtil.java @@ -0,0 +1,14 @@ +package com.dreamchaser.depository_manage.utils; + +import java.util.Collection; + +public class CollectionUtil { + + public static boolean isNotEmpty(Collection coll) { + return !isEmpty(coll); + } + + public static boolean isEmpty(Collection coll) { + return coll == null || coll.isEmpty(); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java new file mode 100644 index 00000000..e3895f2e --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java @@ -0,0 +1,65 @@ +package com.dreamchaser.depository_manage.utils; + +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.pojo.StatusInfo; + + +/** + * 因为在控制层有很多重复可抽象出来的操作,所以写一个工具类 + * @author 金昊霖 + */ +public class CrudUtil { + public static final RestResponse RESPONSE200=new RestResponse(); + public static final RestResponse RESPONSE201=new RestResponse().setStatus(201); + public static final RestResponse RESPONSE204=new RestResponse().setStatus(204); + public static final RestResponse RESPONSE205=new RestResponse().setStatus(205); + public static final RestResponse ID_MISS_RESPONSE =new RestResponse(0,400,new StatusInfo("请求错误,错误码400","请求中必要参数(如id)丢失!")); + public static final RestResponse RESPONSE304=new RestResponse().setStatus(304) + .setStatusInfo(new StatusInfo("资源未改变或者未达到预期改变,错误码304。bug常有,请多多包含,请及时联系相关管理员,我们会尽快修复","资源未变化")); + public static final RestResponse NOT_EXIST_USER_OR_ERROR_PWD_RESPONSE =new RestResponse("",402,new StatusInfo("登录失败,账号或者密码错误!","错误码402,账号或者密码错误")); + public static final RestResponse USER_FROZEN_RESPONSE=new RestResponse("",406,new StatusInfo("账户已冻结,请稍后登录!","错误码406,账户已冻结,请稍后登录!")); + public static final RestResponse CODE_ERROR=new RestResponse("",408,new StatusInfo("验证码错误!","错误码408,验证码错误请重新输入!")); + + public static final RestResponse SYSTEM_ERROR_RESPONSE =new RestResponse("",500,new StatusInfo("服务器系统错误!bug常有,请多多包含,请及时联系相关管理员,我们会尽快修复!","服务器错误!")); + + /** + * 用于处理通常的post请求 + * @param result 执行service层insert方法的返回结果(即受影响数据的行数) + * @param standard 正常执行所影响的数据行数 + * @return 处理后的RestResponse + */ + public static RestResponse postHandle(Integer result,Integer standard){ + if (result.equals(standard)){ + return RESPONSE201; + }else{ + return RESPONSE304; + } + } + /** + * 用来处理通常的delete请求 + * @param result 执行service层delete方法的返回结果(即受影响数据的行数) + * @param standard 正常执行所影响的数据行数 + * @return 处理后的RestResponse + */ + public static RestResponse deleteHandle( Integer result,Integer standard){ + if (result>=standard){ + return RESPONSE204; + }else { + return RESPONSE304; + } + } + + /** + * 用来处理通常的put请求 + * @param result 执行service层update方法的返回结果(即受影响数据的行数) + * @param standard 正常执行所影响的数据行数 + * @return 处理后的RestResponse + */ + public static RestResponse putHandle( Integer result,Integer standard){ + if (result.equals(standard) ){ + return RESPONSE205; + }else { + return RESPONSE304; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java new file mode 100644 index 00000000..a3114c71 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java @@ -0,0 +1,103 @@ +package com.dreamchaser.depository_manage.utils; + +import org.joda.time.DateTime; +import org.joda.time.LocalDate; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.Instant; +import java.util.Calendar; +import java.util.Date; + +/** + * 用于处理时间类型的工具类 + * @author 金昊霖 + */ +public class DateUtil { + private static final SimpleDateFormat TIME_FORMAT =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final SimpleDateFormat DATE_FORMAT =new SimpleDateFormat("yyyy-MM-dd"); + /** + * 获取时间的字符串(精确到s) + * @param date 时间 + * @return 转换格式的字符串 + */ + public static String getSimpleDate(Date date){ + return date==null?null:DATE_FORMAT.format(date); + } + + /** + * 获取时间的字符串(精确到s) + * @param date Date对象 + * @return 转换格式的字符串 + */ + public static String getSimpleTime(Date date){ + return date==null?null:TIME_FORMAT.format(date); + } + + /** + * 将Object对象转化为Instant对象 + * @param o object对象(实际是long类型) + * @return Instant对象 + */ + public static Instant getInstant(Object o){ + return Instant.ofEpochSecond(ObjectFormatUtil.toLong(o)); + } + + // 获取当前时间 + public static String getCurrentTime() { + DateTime now = new DateTime(); + return now.toString("yyyy-MM-dd HH:mm:ss"); + } + + // 获取当前日期 + public static String getCurrentDate() { + LocalDate localDate = new LocalDate(); + return localDate.toString(); + } + + // 将日期转为时间戳 + public static Long DateTimeToTimeStamp(String dateTime){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = null; + try { + date = simpleDateFormat.parse(dateTime); + } catch (ParseException e) { + throw new RuntimeException(e); + } + long ts = date.getTime(); + return ts; + } + + // 将时间戳转为日期 + public static String TimeStampToDateTime(Long timeStamp){ + String res; + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + long lt = new Long(timeStamp); + Date date = new Date(lt); + res = simpleDateFormat.format(date); + return res; + + } + + // 将日期转为时间戳 + public static Long DateTimeByMonthToTimeStamp(String dateTime){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = null; + try { + date = simpleDateFormat.parse(dateTime); + } catch (ParseException e) { + throw new RuntimeException(e); + } + long ts = date.getTime(); + return ts; + } + + + // 获取当前日期 + public static String getNowTime(){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + Calendar instance = Calendar.getInstance(); + String format = simpleDateFormat.format(instance.getTime()); + return format; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/FileUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/FileUtil.java new file mode 100644 index 00000000..bfd478b5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/FileUtil.java @@ -0,0 +1,122 @@ +package com.dreamchaser.depository_manage.utils; + +import com.dreamchaser.depository_manage.config.FileConfig; +import com.dreamchaser.depository_manage.exceptionHandler.ApplicationContextHolder; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.util.StringUtil; +import org.apache.tomcat.util.http.fileupload.util.Streams; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +@Slf4j +public class FileUtil { + + private static FileConfig fileConfig = ApplicationContextHolder.getContext().getBean(FileConfig.class); + + // 下划线 + public static final String UNDER_LINE = "_"; + + // 上传文件 + public static ResultVo uploadFile(MultipartFile file) { + // 1.获取一个新的文件名 + String newFileName = getNewFileName(file); + if (StringUtils.isBlank(newFileName)) { + log.error("【上传文件】转换文件名称失败"); + return ResultVoUtil.error("【上传文件】转换文件名称失败"); + } + // 2.获取文件上传路径 + String uploadPath = fileConfig.getUploadPath(); + if (StringUtils.isBlank(uploadPath)) { + log.error("【上传文件】获取文件上传路径失败"); + return ResultVoUtil.error("【上传文件】获取文件上传路径失败"); + } + uploadPath = uploadPath + File.separator + DateUtil.getCurrentDate(); + // 3.生成上传目录 + File uploadDir = mkdirs(uploadPath); + if (!uploadDir.exists()) { + log.error("【上传文件】生成上传目录失败"); + return ResultVoUtil.error("【上传文件】生成上传目录失败"); + } + // 4.文件全路径 + String fileFullPath = uploadPath + File.separator + newFileName; + log.info("上传的文件:" + file.getName() + "," + file.getContentType() + ",保存的路径为:" + fileFullPath); + try { + // 5.上传文件 + doUploadFile(file, fileFullPath); + } catch (IOException e) { + log.error("【上传文件】上传文件报IO异常,异常信息为{}", e.getMessage()); + return ResultVoUtil.error(e.getMessage()); + } + return ResultVoUtil.success(fileFullPath); + } + + + // 将上传的文件转换为一个新的文件名 + public static String getNewFileName(MultipartFile file) { + // 1.获取上传的文件名称(包含后缀。如:test.jpg) + String originalFilename = file.getOriginalFilename(); + log.info("【上传文件】上传的文件名为{}", originalFilename); + // 2.以小数点进行分割 + String[] split = originalFilename.split("\\."); + String newFileName = null; + if (null == split || split.length == 0) { + return null; + } + StringBuilder builder = new StringBuilder(); + if (1 == split.length) { + // 3.此文件无后缀 + newFileName = builder.append(originalFilename).append(UNDER_LINE).append(System.nanoTime()).toString(); + return newFileName; + } + // 4.获取文件的后缀 + String fileSuffix = split[split.length - 1]; + for (int i = 0; i < split.length - 1; i++) { + builder.append(split[i]); + if (null != split[i + 1] && "" != split[i + 1]) { + builder.append(UNDER_LINE); + } + } + newFileName = builder.append(System.nanoTime()).append(".").append(fileSuffix).toString(); + return newFileName; + } + + // 生成相应的目录 + public static File mkdirs(String path) { + File file = new File(path); + if(!file.exists() || !file.isDirectory()) { + file.mkdirs(); + } + return file; + } + + // 上传文件 + public static void doUploadFile(MultipartFile file, String path) throws IOException { + Streams.copy(file.getInputStream(), new FileOutputStream(path), true); + } + + // 递归删除目录下的所有文件及子目录下所有文件 + public static boolean deleteFile(File file) { + if (!file.exists()) { + return false; + } + if (file.isDirectory()) { + String[] children = file.list(); + //递归删除目录中的子目录下 + for (int i=0; i responseHandler = new BasicResponseHandler(); + try { + + // API地址 + httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(url); + + // 构建消息实体 + StringEntity requestEntity = new StringEntity(message, "utf-8"); + requestEntity.setContentEncoding("UTF-8"); + // 构造消息头 + // 发送Json格式的数据请求 + httpPost.setHeader("Content-type", "application/json"); + httpPost.setEntity(requestEntity); + //发送post请求获取响应值 + String returnValue = httpClient.execute(httpPost, responseHandler); + if (returnValue != null) { + response = returnValue; + } + } catch (Exception e) { + log.error("", e); + } finally { + try { + httpClient.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + log.error("", e); + } + } + return response; + } + + + /** + * 发送post请求 + * @param url 路径 + * @param jsonObject 参数(json类型) + * @param encoding 编码格式 + * @return + * @throws ParseException + * @throws IOException + */ + public static String send(String url, JSONObject jsonObject,String encoding) throws ParseException, IOException{ + String body = ""; + //创建httpclient对象 + CloseableHttpClient client = HttpClients.createDefault(); + //创建post方式请求对象 + HttpPost httpPost = new HttpPost(url); + //装填参数 + StringEntity s = new StringEntity(jsonObject.toString(), "utf-8"); + s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, + "application/json")); + //设置参数到请求对象中 + httpPost.setEntity(s); + System.out.println("请求地址:"+url); +// System.out.println("请求参数:"+nvps.toString()); + + //设置header信息 + //指定报文头【Content-type】、【User-Agent】 + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + httpPost.setHeader("user-token",userToken); + httpPost.setHeader("user-key",userKey); + //执行请求操作,并拿到结果(同步阻塞) + CloseableHttpResponse response = client.execute(httpPost); + //获取结果实体 + org.apache.http.HttpEntity entity = response.getEntity(); + if (entity != null) { + //按指定编码转换结果实体为String类型 + body = EntityUtils.toString(entity, encoding); + } + EntityUtils.consume(entity); + //释放链接 + response.close(); + return body; + } + + + + + +} \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/Md5.java b/src/main/java/com/dreamchaser/depository_manage/utils/Md5.java new file mode 100644 index 00000000..1ef4a8b5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/Md5.java @@ -0,0 +1,48 @@ + /* + * Copyright (c) JForum Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1) Redistributions of + * source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the + * following disclaimer in the documentation and/or other materials provided with the distribution. 3) Neither the name of "Rafael Steil" nor the names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE This file creation date: Mar 29, 2003 / + * 1:15:50 AM The JForum Project http://www.jforum.net + */ + package com.dreamchaser.depository_manage.utils; + + import java.security.MessageDigest; + import java.security.NoSuchAlgorithmException; + + /** + * MD5加密 + */ + public class Md5 { + + /** + * Encodes a string + * @param str String to encode + * @return Encoded String + */ + public static String crypt(String str) { + if (str == null || str.length() == 0) { + throw new IllegalArgumentException("String to encript cannot be null or zero length"); + } + StringBuilder hexString = new StringBuilder(); + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(str.getBytes()); + byte[] hash = md.digest(); + for (byte b : hash) { + if ((0xff & b) < 0x10) { + hexString.append("0").append(Integer.toHexString((0xFF & b))); + } else { + hexString.append(Integer.toHexString(0xFF & b)); + } + } + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + return hexString.toString(); + } + + } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java b/src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java new file mode 100644 index 00000000..b6141e19 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java @@ -0,0 +1,5 @@ +package com.dreamchaser.depository_manage.utils; + +public class Md5Util { +} + diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java new file mode 100644 index 00000000..8ab7fa0d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java @@ -0,0 +1,29 @@ +package com.dreamchaser.depository_manage.utils; + +/** + * 此工具类封装一些常用类型转换操作 + * @author 金昊霖 + */ +public class ObjectFormatUtil { + /** + * 一种较为安全的Object转换Integer方式 + * @param o 要转化的对象 + * @return 转化的Integer类型结果 + */ + public static Integer toInteger(Object o){ + return o==null?null:Integer.parseInt(o.toString()); + } + /** + * 一种较为安全的Object转换Long方式 + * @param o 要转化的对象 + * @return 转化的Long类型结果 + */ + public static Long toLong(Object o){ + return o==null?null:Long.parseLong(o.toString()); + } + + public static Boolean toBoolean(Object o){ + return (o==null)?null:Boolean.getBoolean(o.toString()); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/ResultCodeEnum.java b/src/main/java/com/dreamchaser/depository_manage/utils/ResultCodeEnum.java new file mode 100644 index 00000000..997c0fe2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/ResultCodeEnum.java @@ -0,0 +1,30 @@ +package com.dreamchaser.depository_manage.utils; + +import lombok.Getter; + +@Getter +/** + * 自定义异常中使用自定义的枚举类用于excel导入时的判断。 + */ +public enum ResultCodeEnum { + + SUCCESS(200, "成功") + , + ERROR(301, "错误") + , + PARAM_ERROR(303, "参数错误") + , + FILE_NOT_EXIST(304, "文件不存在") + , + CLOSE_FAILD(305, "关闭流失败") + ; + + private Integer code; + private String message; + + ResultCodeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/ResultVo.java b/src/main/java/com/dreamchaser/depository_manage/utils/ResultVo.java new file mode 100644 index 00000000..d88fa104 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/ResultVo.java @@ -0,0 +1,26 @@ +package com.dreamchaser.depository_manage.utils; + +import lombok.Data; + +/** + * 自定义返回结果,用于excel处理的返回 + * @param + */ +@Data +public class ResultVo { + + // 错误码 + private Integer code; + + // 提示信息 + private String msg; + + // 返回的数据 + private T data; + + // 判断是否成功 + public boolean checkSuccess() { + return ResultCodeEnum.SUCCESS.getCode().equals(this.code); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/ResultVoUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/ResultVoUtil.java new file mode 100644 index 00000000..2d63e4dc --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/ResultVoUtil.java @@ -0,0 +1,47 @@ +package com.dreamchaser.depository_manage.utils; + +public class ResultVoUtil { + + public static ResultVo success() { + return success(null); + } + public static ResultVo success(Object object) { + ResultVo result = new ResultVo(); + result.setCode(ResultCodeEnum.SUCCESS.getCode()); + result.setMsg("成功"); + result.setData(object); + return result; + } + public static ResultVo success(Integer code, Object object) { + return success(code, null, object); + } + public static ResultVo success(Integer code, String msg, Object object) { + ResultVo result = new ResultVo(); + result.setCode(code); + result.setMsg(msg); + result.setData(object); + return result; + } + + public static ResultVo error(String msg) { + ResultVo result = new ResultVo(); + result.setCode(ResultCodeEnum.ERROR.getCode()); + result.setMsg(msg); + return result; + } + public static ResultVo error(Integer code, String msg) { + ResultVo result = new ResultVo(); + result.setCode(code); + result.setMsg(msg); + return result; + } + + public static ResultVo returnResultVo(Integer code,Object data,String msg){ + ResultVo resultVo = new ResultVo(); + resultVo.setCode(code); + resultVo.setData(data); + resultVo.setMsg(msg); + return resultVo; + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/SnowFlakeUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/SnowFlakeUtil.java new file mode 100644 index 00000000..850e64f4 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/SnowFlakeUtil.java @@ -0,0 +1,83 @@ +package com.dreamchaser.depository_manage.utils; + +public class SnowFlakeUtil { + + // 起始时间戳 + private final static long START_STMP = 1480166465631L; + + // 每部分的位数 + private final static long SEQUENCE_BIT = 12; // 序列号占用位数 + private final static long MACHINE_BIT = 5; // 机器id占用位数 + private final static long DATACENTER_BIT = 5; // 机房id占用位数 + + // 每部分最大值 + private final static long MAX_DATACENTER_NUM = -1L ^ (-1L << DATACENTER_BIT); + private final static long MAX_MACHINE_NUM = -1L ^ (-1L << MACHINE_BIT); + private final static long MAX_SEQUENCE = -1L ^ (-1L << SEQUENCE_BIT); + + // 每部分向左的位移 + private final static long MACHINE_LEFT = SEQUENCE_BIT; + private final static long DATACENTER_LEFT = SEQUENCE_BIT + MACHINE_BIT; + private final static long TIMESTMP_LEFT = DATACENTER_LEFT + DATACENTER_BIT; + + private long datacenterId; // 机房id + private long machineId; // 机器id + private long sequence = 0L; // 序列号 + private long lastStmp = -1L; // 上次的时间戳 + + public SnowFlakeUtil(long datacenterId, long machineId) { + if (datacenterId > MAX_DATACENTER_NUM || datacenterId < 0) + { + throw new IllegalArgumentException("datacenterId can't be greater than MAX_DATACENTER_NUM or less than 0"); + } + if (machineId > MAX_MACHINE_NUM || machineId < 0) + { + throw new IllegalArgumentException("machineId can't be greater than MAX_MACHINE_NUM or less than 0"); + } + this.datacenterId = datacenterId; + this.machineId = machineId; + } + + // 产生下一个ID + public synchronized long getNextId() { + long currStmp = getNewstmp(); + if (currStmp < lastStmp) { + throw new RuntimeException("Clock moved backwards.Refusing to generate id"); + } + if (currStmp == lastStmp) { + // 若在相同毫秒内 序列号自增 + sequence = (sequence + 1) & MAX_SEQUENCE; + // 同一毫秒的序列数已达到最大 + if (sequence == 0L) + { + currStmp = getNextMill(); + } + } else { + // 若在不同毫秒内 则序列号置为0 + sequence = 0L; + } + lastStmp = currStmp; + + return (currStmp - START_STMP) << TIMESTMP_LEFT // 时间戳部分 + | datacenterId << DATACENTER_LEFT // 机房id部分 + | machineId << MACHINE_LEFT // 机器id部分 + | sequence; // 序列号部分 + } + + // 获取新的毫秒数 + private long getNextMill() + { + long mill = getNewstmp(); + while (mill <= lastStmp) + { + mill = getNewstmp(); + } + return mill; + } + + // 获取当前的毫秒数 + private long getNewstmp() + { + return System.currentTimeMillis(); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java new file mode 100644 index 00000000..6c6612c7 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java @@ -0,0 +1,34 @@ +package com.dreamchaser.depository_manage.utils; + + +import java.util.concurrent.Callable; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +// 线程池工具类 +public class TaskCenterUtil { + + public static Integer CORE_POOL_SIZE = 10; + public static Integer MAX_NUM_POOL_SIZE = 10; + public static Integer MAX_MESSAGE_SIZE = 100; + public static Long KEEP_ALIVE_TIME = 60L; + + private ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(CORE_POOL_SIZE, MAX_NUM_POOL_SIZE, KEEP_ALIVE_TIME, + TimeUnit.SECONDS, new LinkedBlockingQueue<>(MAX_MESSAGE_SIZE), new ThreadPoolExecutor.CallerRunsPolicy()); + + + private TaskCenterUtil() {} + + private static TaskCenterUtil taskCenterUtil = new TaskCenterUtil(); + + public static TaskCenterUtil getTaskCenterUtil() { + return taskCenterUtil; + } + + public void submitTask(Callable task) { + poolExecutor.submit(task); + } + +} + diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java new file mode 100644 index 00000000..79df33c9 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java @@ -0,0 +1,76 @@ +package com.dreamchaser.depository_manage.utils; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.read.builder.ExcelReaderBuilder; +import com.alibaba.excel.read.builder.ExcelReaderSheetBuilder; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.listener.ExcelListener; +import lombok.extern.slf4j.Slf4j; +import org.omg.CORBA.OBJ_ADAPTER; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; +import org.apache.commons.lang.StringUtils; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@Component +@Slf4j +public class excelUtil { + + // excel文件后缀 + private final static String EXCE_L2003 = "xls"; + private final static String EXCEL_2007 = "xlsx"; + + // 校验文件后缀是否为 xls、xlsx + public static boolean checkExcelExtension(MultipartFile excel) { + String filename = excel.getOriginalFilename(); + if (StringUtils.isBlank(filename)) { + log.info("【校验Excel文件后缀】Excel文件名为空"); + return false; + } + int index = filename.lastIndexOf("."); + if (index == -1) { + log.info("【校验Excel文件后缀】Excel文件名中没有点号"); + return false; + } + String extension = filename.substring(index + 1); + return Arrays.asList(EXCE_L2003, EXCEL_2007).contains(extension); + } + + // 读取excel文件 + public Map simpleExcelRead(String filePath, Class clazz) { + ExcelListener excelListener = new ExcelListener(); + int errNum = 0; + try { + EasyExcel.read(filePath, clazz, excelListener).sheet().doRead(); + + }catch (Exception e){ + errNum ++; + log.error("有"+errNum +"行出错"); + } + List dataList = excelListener.getDataList(); + List errMsg = excelListener.retrunErrMsg(); + Map result = new HashMap<>(); + result.put("dataList",dataList); + result.put("errMsg",errMsg); + return result; + } + + public ResultVo checkExcelParam(MultipartFile file) { + log.info("【上传Excel文件】进入到上传Excel文件方法..."); + if (null == file || file.isEmpty()) { + log.error("【上传Excel文件】上传的文件为空,file={}", file); + throw new MyException("上传文件为空"); + } + boolean b = excelUtil.checkExcelExtension(file); + if (!b) { + return ResultVoUtil.error("上传的不是Excel文件,请上传正确格式的Excel文件"); + } + return ResultVoUtil.success(); + } + + +} diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 00000000..a5ef9dd4 --- /dev/null +++ b/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Main-Class: com.dreamchaser.depository_manage.DepositoryManageApplicatio + n + diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml new file mode 100644 index 00000000..9d910a58 --- /dev/null +++ b/src/main/resources/application-test.yml @@ -0,0 +1,96 @@ +#开启健康检查、审计、统计和监控,即可通过访问/actuator/beans等查看状态 +management: + endpoints: + web: + exposure: + include: beans,health +spring: + servlet: + multipart: + enabled: true + max-file-size: 100MB # 单个文件上传的最大上限 + max-request-size: 100MB # 一次请求总大小上限 + + mail: + #邮箱配置 + #平台地址,这里用的是qq邮箱,使用其他邮箱请更换 + host: smtp.qq.com + #这里是你要发送邮箱的账户 + username: 1789131794@qq.com + #发送短信后它给你的授权码 + password: ###### + properties: + mail: + smtp: + ssl: + enable: true + ##编码格式 + default-encoding: utf-8 + ##数据库设置 + datasource: + username: root + password: root + url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + initialSize: 5 + minIdle: 5 + maxActive: 10 + maxWait: 60000 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: SELECT 1 FROM DUAL + useGlobalDataSourceStat: true + server: + port: 9090 + testWhileIdle: true + testOnReturn: false + testOnBorrow: false + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + #配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙 + filters: stat, wall, log4j + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 + #超时回收机制 + removeAbandoned: true + removeAbandonedTimeout: 1800 + logAbandoned: true + redis: + host: 127.0.0.1 + port: 6379 + lettuce: + shutdown-timeout: 1000 + pool: + max-active: 0 + max-wait: -1 + max-idle: 8 + min-idle: 0 + timeout: 500 + banner: + location: banner.txt + thymeleaf: + cache: false + mode: HTML + mvc: + hiddenmethod: + filter: + enabled: true + view: + prefix: /templates/ + suffix: .html + static-path-pattern: /static/** +# resources: +# static-locations: classpath:/static/ +server: +mybatis: + type-aliases-package: com.dreamchaser.depository_manage.entity + configuration: + log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl + log-prefix: mapper. + +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +file: + uploadPath: D:/upLoad \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 00000000..abd3be29 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,5 @@ +spring: + profiles: + active: test +server: + port: 11111 \ No newline at end of file diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt new file mode 100644 index 00000000..a4b8e471 --- /dev/null +++ b/src/main/resources/banner.txt @@ -0,0 +1,14 @@ + ,---, ____ ,---, + .' .' `\ ,' , `. ,--.' | +,---.' \ __ ,-. ,-+-,.' _ | | | : __ ,-. +| | .`\ |,' ,'/ /| ,-+-. ; , || : : : .--.--. ,' ,'/ /| +: : | ' |' | |' | ,---. ,--.--. ,--.'|' | || ,---. : | |,--. ,--.--. / / ' ,---. ' | |' | +| ' ' ; :| | ,'/ \ / \ | | ,', | |,/ \ | : ' | / \ | : /`./ / \ | | ,' +' | ; . |' : / / / | .--. .-. | | | / | |--'/ / ' | | /' :.--. .-. | | : ;_ / / |' : / +| | : | '| | ' . ' / | \__\/: . . | : | | , . ' / ' : | | | \__\/: . . \ \ `. . ' / || | ' +' : | / ; ; : | ' ; /| ," .--.; | | : | |/ ' ; :__ | | ' | : ," .--.; | `----. \' ; /|; : | +| | '` ,/ | , ; ' | / | / / ,. | | | |`-' ' | '.'|| : :_:,'/ / ,. | / /`--' /' | / || , ; +; : .' ---' | : |; : .' \| ;/ | : :| | ,' ; : .' \'--'. / | : | ---' +| ,.' \ \ / | , .-./'---' \ \ / `--'' | , .-./ `--'---' \ \ / +'---' `----' `--`---' `----' `--`---' `----' + diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..db7f2eae --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + + + + + + + + ${DEBUG_LOG_FILE_NAME_PATTERN} + + 30 + + 2GB + + + 50MB + + + + ${FILE_LOG_PATTERN} + + + + debug + ACCEPT + DENY + + + + + + + ${INFO_LOG_FILE_NAME_PATTERN} + + 7 + + 1GB + + + 50MB + + + + ${FILE_LOG_PATTERN} + + + + info + ACCEPT + DENY + + + + + + + ${WARN_LOG_FILE_NAME_PATTERN} + + 30 + + 1GB + + + 10MB + + + + ${FILE_LOG_PATTERN} + + + + warn + ACCEPT + DENY + + + + + + + ${ERROR_LOG_FILE_NAME_PATTERN} + + 30 + + 1GB + + + 10MB + + + + ${FILE_LOG_PATTERN} + + + + error + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/api/clear.json b/src/main/resources/static/api/clear.json new file mode 100644 index 00000000..e0f5ed74 --- /dev/null +++ b/src/main/resources/static/api/clear.json @@ -0,0 +1,4 @@ +{ + "code": 1, + "msg": "服务端清理缓存成功" +} \ No newline at end of file diff --git a/src/main/resources/static/api/init.json b/src/main/resources/static/api/init.json new file mode 100644 index 00000000..4bbf4895 --- /dev/null +++ b/src/main/resources/static/api/init.json @@ -0,0 +1,227 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "/application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "入库管理", + "icon": "fa fa-mail-forward", + "target": "_self", + "child": [ + { + "title": "入库查询", + "href": "/table_in", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "入库可视化", + "href": "/chart_in", + "icon": "fa fa-bar-chart", + "target": "_self" + }, + { + "title": "入库可视化(测试)", + "href": "/chart_in_back", + "icon": "fa fa-bar-chart", + "target": "_self" + } + ] + }, + { + "title": "出库管理", + "icon": "fa fa-mail-reply", + "target": "_self", + "child": [ + { + "title": "出库查询", + "href": "/table_out", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "出库可视化", + "href": "/chart_out", + "icon": "fa fa-pie-chart", + "target": "_self" + } + ] + }, + { + "title": "库存管理", + "icon": "fa fa-server", + "target": "_self", + "child": [ + { + "title": "库存查询", + "href": "/table_stock", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "库存可视化", + "href": "/chart_stock", + "icon": "fa fa-area-chart", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建仓库", + "href": "/depository_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "仓库查询", + "href": "/depository-out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料种类管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "材料种类添加", + "href": "/materialType_add", + "icon": "layui-icon layui-icon-list", + "target": "_self" + }, + { + "title": "材料种类查询", + "href": "/materialType_view", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建材料", + "href": "/material_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "材料查询", + "href": "/material_out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "人员管理", + "href": "/table_user", + "icon": "fa fa-group", + "target": "" + }, + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/init_checker.json b/src/main/resources/static/api/init_checker.json new file mode 100644 index 00000000..b0254b37 --- /dev/null +++ b/src/main/resources/static/api/init_checker.json @@ -0,0 +1,221 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "入库管理", + "icon": "fa fa-mail-forward", + "target": "_self", + "child": [ + { + "title": "入库查询", + "href": "/table_in", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "入库可视化", + "href": "/chart_in", + "icon": "fa fa-bar-chart", + "target": "_self" + }, + { + "title": "入库可视化(测试)", + "href": "/chart_in_back", + "icon": "fa fa-bar-chart", + "target": "_self" + } + ] + }, + { + "title": "出库管理", + "icon": "fa fa-mail-reply", + "target": "_self", + "child": [ + { + "title": "出库查询", + "href": "/table_out", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "出库可视化", + "href": "/chart_out", + "icon": "fa fa-pie-chart", + "target": "_self" + } + ] + }, + { + "title": "库存管理", + "icon": "fa fa-server", + "target": "_self", + "child": [ + { + "title": "库存查询", + "href": "/table_stock", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "库存可视化", + "href": "/chart_stock", + "icon": "fa fa-area-chart", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建仓库", + "href": "/depository_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "仓库查询", + "href": "/depository-out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料种类管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "材料种类添加", + "href": "/materialType_add", + "icon": "layui-icon layui-icon-list", + "target": "_self" + }, + { + "title": "材料种类查询", + "href": "/materialType_view", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建材料", + "href": "/material_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "材料查询", + "href": "/material_out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/init_reviewer.json b/src/main/resources/static/api/init_reviewer.json new file mode 100644 index 00000000..71c3c4f2 --- /dev/null +++ b/src/main/resources/static/api/init_reviewer.json @@ -0,0 +1,227 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "入库管理", + "icon": "fa fa-mail-forward", + "target": "_self", + "child": [ + { + "title": "入库查询", + "href": "/table_in", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "入库可视化", + "href": "/chart_in", + "icon": "fa fa-bar-chart", + "target": "_self" + }, + { + "title": "入库可视化(测试)", + "href": "/chart_in_back", + "icon": "fa fa-bar-chart", + "target": "_self" + } + ] + }, + { + "title": "出库管理", + "icon": "fa fa-mail-reply", + "target": "_self", + "child": [ + { + "title": "出库查询", + "href": "/table_out", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "出库可视化", + "href": "/chart_out", + "icon": "fa fa-pie-chart", + "target": "_self" + } + ] + }, + { + "title": "库存管理", + "icon": "fa fa-server", + "target": "_self", + "child": [ + { + "title": "库存查询", + "href": "/table_stock", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "库存可视化", + "href": "/chart_stock", + "icon": "fa fa-area-chart", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建仓库", + "href": "/depository_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "仓库查询", + "href": "/depository-out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料种类管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "材料种类添加", + "href": "/materialType_add", + "icon": "layui-icon layui-icon-list", + "target": "_self" + }, + { + "title": "材料种类查询", + "href": "/materialType_view", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建材料", + "href": "/material_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "材料查询", + "href": "/material_out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "人员管理", + "href": "/table_user", + "icon": "fa fa-group", + "target": "" + }, + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/init_user.json b/src/main/resources/static/api/init_user.json new file mode 100644 index 00000000..d112120b --- /dev/null +++ b/src/main/resources/static/api/init_user.json @@ -0,0 +1,101 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/menus.json b/src/main/resources/static/api/menus.json new file mode 100644 index 00000000..e14d00ed --- /dev/null +++ b/src/main/resources/static/api/menus.json @@ -0,0 +1,254 @@ +{ + "code": 0, + "msg": "", + "count": 19, + "data": [ + { + "authorityId": 1, + "authorityName": "系统管理", + "orderNumber": 1, + "menuUrl": null, + "menuIcon": "layui-icon-set", + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": -1 + }, + { + "authorityId": 2, + "authorityName": "用户管理", + "orderNumber": 2, + "menuUrl": "system/user", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 3, + "authorityName": "查询用户", + "orderNumber": 3, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:54:16", + "authority": "user:view", + "checked": 0, + "updateTime": "2018/07/21 13:54:16", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 4, + "authorityName": "添加用户", + "orderNumber": 4, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:add", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 5, + "authorityName": "修改用户", + "orderNumber": 5, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 6, + "authorityName": "删除用户", + "orderNumber": 6, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:delete", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 7, + "authorityName": "角色管理", + "orderNumber": 7, + "menuUrl": "system/role", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 8, + "authorityName": "查询角色", + "orderNumber": 8, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:54:59", + "authority": "role:view", + "checked": 0, + "updateTime": "2018/07/21 13:54:58", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 9, + "authorityName": "添加角色", + "orderNumber": 9, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:add", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 10, + "authorityName": "修改角色", + "orderNumber": 10, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 11, + "authorityName": "删除角色", + "orderNumber": 11, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:delete", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 12, + "authorityName": "角色权限管理", + "orderNumber": 12, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:auth", + "checked": 0, + "updateTime": "2018/07/13 15:27:18", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 13, + "authorityName": "权限管理", + "orderNumber": 13, + "menuUrl": "system/authorities", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 15:45:13", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 14, + "authorityName": "查询权限", + "orderNumber": 14, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:55:57", + "authority": "authorities:view", + "checked": 0, + "updateTime": "2018/07/21 13:55:56", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 15, + "authorityName": "添加权限", + "orderNumber": 15, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "authorities:add", + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 16, + "authorityName": "修改权限", + "orderNumber": 16, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/13 09:13:42", + "authority": "authorities:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 17, + "authorityName": "删除权限", + "orderNumber": 17, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "authorities:delete", + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 18, + "authorityName": "登录日志", + "orderNumber": 18, + "menuUrl": "system/loginRecord", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 19, + "authorityName": "查询登录日志", + "orderNumber": 19, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:56:43", + "authority": "loginRecord:view", + "checked": 0, + "updateTime": "2018/07/21 13:56:43", + "isMenu": 1, + "parentId": 18 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/table-in.json b/src/main/resources/static/api/table-in.json new file mode 100644 index 00000000..7bc51fc2 --- /dev/null +++ b/src/main/resources/static/api/table-in.json @@ -0,0 +1,133 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 10000, + "applicationId": 2001, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "无", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + }, + { + "id": 10001, + "applicationId": 3301, + "materialName": "麒麟980芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "已入库", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2021-10-06 10:05", + "reviewRemarks": "审核批准!", + "reviewTime": "2021-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准", + "checkerName":"李四", + "checkRemarks": "验收无误,入库!", + "checkTime": "2021-10-8 15:23" + },{ + "id": 10002, + "applicationId": 409, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 321, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/table-out.json b/src/main/resources/static/api/table-out.json new file mode 100644 index 00000000..631f46d7 --- /dev/null +++ b/src/main/resources/static/api/table-out.json @@ -0,0 +1,130 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 10000, + "applicationId": 2001, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "无", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + }, + { + "id": 10001, + "applicationId": 3301, + "materialName": "麒麟980芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "已入库", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2021-10-06 10:05", + "reviewRemarks": "审核批准!", + "reviewTime": "2021-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10002, + "applicationId": 409, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 321, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/table-user.json b/src/main/resources/static/api/table-user.json new file mode 100644 index 00000000..37762b19 --- /dev/null +++ b/src/main/resources/static/api/table-user.json @@ -0,0 +1,95 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "外芯仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "李四", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "义乌仓库a", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "King", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "义乌仓库b", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "宁波仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "宁波仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "boss", + "sex": "男", + "authority": "系统管理员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "all", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "外芯仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "外芯仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/tableSelect.json b/src/main/resources/static/api/tableSelect.json new file mode 100644 index 00000000..37fb0ed8 --- /dev/null +++ b/src/main/resources/static/api/tableSelect.json @@ -0,0 +1,23 @@ +{ + "code": 0, + "msg": "", + "count": 16, + "data": [ + { "id":"001", "username":"张玉林", "sex":"女" }, + { "id":"002", "username":"刘晓军", "sex":"男" }, + { "id":"003", "username":"张恒", "sex":"男" }, + { "id":"004", "username":"朱一", "sex":"男" }, + { "id":"005", "username":"刘佳能", "sex":"女" }, + { "id":"006", "username":"晓梅", "sex":"女" }, + { "id":"007", "username":"马冬梅", "sex":"女" }, + { "id":"008", "username":"刘晓庆", "sex":"女" }, + { "id":"009", "username":"刘晓庆", "sex":"女" }, + { "id":"010", "username":"刘晓庆", "sex":"女" }, + { "id":"011", "username":"刘晓庆", "sex":"女" }, + { "id":"012", "username":"刘晓庆", "sex":"女" }, + { "id":"013", "username":"刘晓庆", "sex":"女" }, + { "id":"014", "username":"刘晓庆", "sex":"女" }, + { "id":"015", "username":"刘晓庆", "sex":"女" }, + { "id":"016", "username":"刘晓庆", "sex":"女" } + ] +} \ No newline at end of file diff --git a/src/main/resources/static/api/test.json b/src/main/resources/static/api/test.json new file mode 100644 index 00000000..d5401ac9 --- /dev/null +++ b/src/main/resources/static/api/test.json @@ -0,0 +1,226 @@ + +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "icon": "fa fa-home", + "href": "/welcome", + "title": "仓库信息概览", + "target": "_self", + "child": [ + { + "icon": "fa fa-home", + "href": "/welcome", + "title": "首页", + "target": "_self", + "child": [] + } + ] + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/account_look", + "title": "个人中心", + "target": "_self", + "child": [] + }, + { + "icon": "fa fa-lemon-o", + "href": "", + "title": "仓库管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/my_task", + "title": "我的任务", + "target": "_self", + "child": [] + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/my_apply", + "title": "我的申请", + "target": "_self", + "child": [] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "申请提交", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-file-b", + "href": "/application_in", + "title": "入库申请", + "target": "_self" + }, + { + "icon": "fa fa-file-text", + "href": "/application_out", + "title": "出库申请", + "target": "_self" + }, + { + "icon": "fa fa-exchange", + "href": "/application_transfer", + "title": "库存转移申请", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "入库管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/table_in", + "title": "入库查询", + "target": "_self" + }, + { + "icon": "fa fa-bar-chart", + "href": "/chart_in", + "title": "入库可视化", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "出库管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/table_out", + "title": "出库查询", + "target": "_self" + }, + { + "icon": "fa fa-pie-chart", + "href": "/chart_out", + "title": "出库可视化", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "库存管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/table_stock", + "title": "库存查询", + "target": "_self" + }, + { + "icon": "fa fa-area-chart", + "href": "/chart_stock", + "title": "库存可视化", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "仓库管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/depository_add", + "title": "创建仓库", + "target": "_self" + }, + { + "icon": "fa fa-th-list", + "href": "/depository-out", + "title": "仓库查询", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "材料种类管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/materialType_add", + "title": "材料种类添加", + "target": "_self" + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/materialType_view", + "title": "材料种类查询", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "材料管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/material_add", + "title": "创建材料", + "target": "_self" + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/material_out", + "title": "材料查询", + "target": "_self" + } + ] + } + ] + }, + { + "icon": "fa fa-slideshare", + "href": "", + "title": "辅助管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/table_user", + "title": "人员管理", + "target": "_self", + "child": [] + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/notice_edit", + "title": "公告发布", + "target": "_self", + "child": [] + } + ] + } + ] +} diff --git a/src/main/resources/static/api/upload.json b/src/main/resources/static/api/upload.json new file mode 100644 index 00000000..691902df --- /dev/null +++ b/src/main/resources/static/api/upload.json @@ -0,0 +1,10 @@ +{ + "code": 1, + "msg": "上传成功", + "data": { + "url": [ + "../images/logo.png", + "../images/captcha.jpg" + ] + } +} diff --git a/src/main/resources/static/css/layuimini.css b/src/main/resources/static/css/layuimini.css new file mode 100644 index 00000000..09428a5b --- /dev/null +++ b/src/main/resources/static/css/layuimini.css @@ -0,0 +1,927 @@ +/** +配色方案(如有需要,请自行配置) + */ +/**头部-配色*/ +.layui-layout-admin .layui-header { + background-color: #1aa094 !important; +} + +.layui-header > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #197971 !important; +} + +.layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #197971 !important; +} + +/**logo-配色*/ +.layui-layout-admin .layuimini-logo { + background-color: #243346 !important; +} + +/**左侧-配色*/ +.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul { + background-color: #2f4056 !important; +} + +.layuimini-menu-left .layui-nav .layui-nav-child a:hover:not(.layui-this) { + background-color: #3b3f4b; +} + +/**左侧菜单选中-配色*/ +.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 { + background-color: #1aa094 !important; +} + + +/**头部样式 */ +.layui-layout-admin .header { + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +.layuimini-header-menu, .layui-header { + height: 60px !important; +} + +.layuimini-header-menu > .layui-nav-item { + color: #1b1d21; + height: 60px !important; + line-height: 60px !important; +} + +.layui-header > .layui-layout-right > .layui-nav-item { + height: 60px !important; + line-height: 60px !important; +} + +.layui-layout-left { + left: 295px !important; +} + +.layui-nav.layui-layout-left.layuimini-header-menu.layuimini-pc-show { + font-weight: bold; + transition: all .2s; +} + + +/**logo演示(通用) */ +.layui-layout-admin .layuimini-logo { + font-weight: bold; + color: #ffffff !important; + height: 60px !important; + line-height: 60px !important; + overflow: hidden; + line-height: 64px; + transition: all .2s !important; +} + +.layui-layout-admin .layuimini-logo img { + display: inline-block; + height: 40px; + vertical-align: middle; +} + +.layui-layout-admin .layuimini-logo h1 { + display: inline-block; + margin: 0 0 0 12px; + color: #ffffff; + font-weight: 600; + font-size: 20px; + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; + vertical-align: middle; +} + +/**缩放工具(通用) */ +.layuimini-tool { + position: absolute !important; + top: 0; + left: 235px; + width: 60px; + height: 100%; + line-height: 60px; + text-align: center; + color: #ffffff !important; + transition: all .2s; +} + +/**缩放工具(缩放) */ +.layuimini-tool i { + display: block; + color: #bbe3df; + width: 32px; + height: 32px; + line-height: 32px; + border-radius: 3px; + text-align: center; + margin-top: 15px; + cursor: pointer; +} + +/**tab选项卡 */ +.layuimini-tab { + margin: 0px; + overflow: hidden; + height: 100% !important; +} + +.layuimini-tab .layui-tab-content { + height: calc(100% - 37px) !important; +} + +.layuimini-tab .layui-tab-content .layui-tab-item { + height: 100%; +} + +.layuimini-tab .layui-tab-content { + padding: 0px; +} + +.layuimini-tab .layui-tab-title { + border: none; + border: 1px solid whitesmoke; + background-color: white; +} + +.layuimini-tab .layui-tab-title li { + border-right: 1px solid whitesmoke; + color: dimgray; +} + +.layuimini-tab .layui-tab-title .layui-tab-bar { + display: none; +} + +.layuimini-tab .layui-tab-title .layui-this:after { + display: none; +} + +.layuimini-tab .layui-tab-title .layuimini-tab-active { + display: inline-block; + background-color: lightgray; + width: 9px; + height: 9px; + border-radius: 30px; + margin-right: 5px; +} + +.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active { + background-color: #1aa094; +} + +.layuimini-tab > .layui-tab-title, .layuimini-tab > .close-box { + height: 35px !important; +} + +.layuimini-tab > .layui-tab-title li, .layuimini-tab > .close-box li { + line-height: 35px !important; +} + +.layuimini-tab .layui-tab-title span { + color: #acafb1; +} + +.layuimini-tab .layui-tab-title .layui-this span { + color: dimgray; +} + +.layuimini-tab .layui-tab-title .layui-tab-close { + font-size: 12px !important; + width: 14px !important; + height: 14px !important; + line-height: 16px !important; +} + +.layuimini-tab .layui-tab-title .layui-tab-close:hover { + border-radius: 4em; + background: #ff5722; +} + +.layuimini-tab .layui-tab-title .disable-close + .layui-tab-close { + display: none; +} + +.layuimini-tab .layui-tab-title .able-close + .layui-tab-close { + display: inline-block; +} + +.layuimini-tab .layui-tab-control > li { + position: absolute; + top: 0px; + height: 35px; + line-height: 35px; + width: 35px; + text-align: center; + background-color: white; + border-top: whitesmoke 1px solid; + border-bottom: whitesmoke 1px solid; +} + +.layuimini-tab .layuimini-tab-roll-left { + left: 0px; + border-right: whitesmoke 1px solid; + border-left: whitesmoke 1px solid; +} + +.layuimini-tab .layuimini-tab-roll-right { + right: 35px; + border-left: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-tool { + right: 0px; + border-left: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-control .layui-tab-tool, +.layuimini-tab .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab .layui-tab-control .layuimini-tab-roll-right { + display: none; +} + +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right { + display: block; +} + +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right { + right: 0px; + border-right: 1px solid whitesmoke; +} + +.layuimini-tab.layui-tab-roll .layui-tab-title { + padding-left: 35px; + padding-right: 35px; +} + + +.layuimini-tab.layui-tab-tool .layui-tab-control .layui-tab-tool { + display: block; +} + +.layuimini-tab.layui-tab-tool .layui-tab-title { + padding-left: 0px; + padding-right: 35px; +} + + +.layuimini-tab.layui-tab-rollTool .layui-tab-title { + padding-left: 35px; + padding-right: 80px; +} + +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-right, +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layui-tab-tool { + display: block; +} + +.layuimini-tab .layui-tab-tool .layui-nav { + position: absolute; + height: 43px !important; + top: 0; + width: 100%; + height: 100%; + padding: 0; + background: 0 0; +} + +.layuimini-tab .layui-tab-tool .layui-nav-item { + height: 35px; +} + +.layuimini-tab .layui-tab-tool .layui-nav-bar { + display: none; +} + +.layuimini-tab .layui-tab-tool .layui-nav-child { + left: auto; + top: 45px; + right: 3px; + width: 120px; + border: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-tool .layui-this a { + background-color: #009688; +} + +.layuimini-tab-loading { + position: absolute; + display: none; + width: 100%; + height: calc(100% - 37px); + top: 37px; + z-index: 19; + background-color: #fff +} + +.layuimini-tab-loading.close { + animation: close 1s; + -webkit-animation: close 1s; + animation-fill-mode: forwards; +} + +/**左侧菜单栏 (通用) */ +.layui-side.layui-bg-black { + transition: all .2s; +} + +.layui-side.layui-bg-black > .layuimini-menu-left > ul { + transition: all .2s; +} + +.layui-side.layui-bg-black > .layuimini-menu-left > ul > .layui-nav-item:first-child { + border-top: 1px solid #4b5461; +} + +.layuimini-menu-left .layui-nav .layui-nav-item a { + height: 40px; + line-height: 40px; + padding-right: 30px; +} + +.layuimini-menu-left .layui-nav .layui-nav-item > a { + padding-top: 5px; + padding-bottom: 5px; +} + +.layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child { + background: 0 0 !important +} + +.layuimini-menu-left .layui-nav .layui-nav-more { + right: 15px; +} + +.layuimini-menu-left .layui-nav .layui-nav-item a:hover { + background-color: transparent !important; +} + +.layuimini-menu-left .layui-nav { + background-color: transparent !important; +} + + +/**左侧菜单栏 (正常) */ +.layui-layout-body .layui-nav-itemed .layui-nav-child a, .layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child a { + padding-left: 35px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child a { + padding-left: 45px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child a { + padding-left: 55px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a { + padding-left: 65px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-itemed > .layui-nav-child { + padding: 5px 0; +} + +/**内容主体(通用) */ +.layui-layout-admin .layui-body { + overflow: hidden; + bottom: 0px !important; + top: 60px !important; + transition: all .2s; +} + +/**选择配色方案 */ +.layuimini-color .color-title { + padding: 10px 0 10px 20px; + border-bottom: 1px solid #d9dada; + margin-bottom: 8px; +} + +.layuimini-color .color-content { + padding: 10px 5px 0 5px; +} + +.layuimini-color .color-content ul { + list-style: none; + text-align: center; +} + +.layuimini-color .color-content ul li { + position: relative; + display: inline-block; + vertical-align: top; + width: 80px; + height: 50px; + margin: 0 15px 15px 0; + padding: 2px 2px 4px 2px; + background-color: #f2f2f2; + cursor: pointer; + font-size: 12px; + color: #666; +} + +.layuimini-color .color-content li.layui-this:after, .layuimini-color .color-content li:hover:after { + width: 100%; + height: 100%; + padding: 4px; + top: -5px; + left: -5px; + border-color: #d8d8d8; + opacity: 1; +} + +.layuimini-color .color-content li:after { + content: ''; + position: absolute; + z-index: 20; + top: 50%; + left: 50%; + width: 1px; + height: 0; + border: 1px solid #f2f2f2; + transition: all .3s; + -webkit-transition: all .3s; + opacity: 0; +} + + +/**其它 */ +.layui-tab-item { + width: 100% !important; + height: 100% !important; +} + +.layui-nav-item.layui-this { + background-color: #1b1d21; +} + +.layui-width-height { + width: 100%; + height: 95%; +} + +.layui-tab { + margin: 0 0 0 0; + z-index: 99999; +} + +.text-center { + height: 30px !important; + line-height: 30px !important; + text-align: center !important; +} + +.layui-nav { + padding: 0 !important; +} + +.layui-nav .layui-this:after, .layui-nav-bar, .layui-nav-tree .layui-nav-itemed:after { + width: 0 !important; + height: 0 !important; +} + +.layui-layout-admin .layui-side { + top: 60px !important; +} + +.layui-tab-card { + box-shadow: 0px 0px 0px #888888; + border-bottom: 0; +} + + +/**自定义滚动条样式 */ +::-webkit-scrollbar { + display: none +} + + +/*移动端遮罩层*/ +.layuimini-make { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 1000; + background: rgba(0, 0, 0, .5); + display: none; +} + +.layuimini-mini .layui-header { + z-index: 1001; +} + +/**初始化加载层*/ +.layuimini-loader { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #ffffff; + z-index: 999999; +} + +.layuimini-loader .layuimini-loader-inner { + display: block; + position: relative; + left: 50%; + top: 50%; + width: 150px; + height: 150px; + margin: -75px 0 0 -75px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 2s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:before { + content: ""; + position: absolute; + top: 5px; + left: 5px; + right: 5px; + bottom: 5px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 3s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:after { + content: ""; + position: absolute; + top: 15px; + left: 15px; + right: 15px; + bottom: 15px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 1.5s linear infinite; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(1turn); + } +} + +/*系统设置*/ + +.layuimini-color .layui-word-aux { + position: absolute; + left: 60px; + top: 12px; + font-size: 12px; +} + +.layuimini-color .layui-input-block { + margin-left: 15px; + min-height: 36px; +} + +.layuimini-color .more-menu-list { + width: 100%; + margin-top: 30px; +} + + +.layuimini-color .more-menu-item:first-child { + border-top: 1px solid #e8e8e8; +} + +.layuimini-color .more-menu-item .layui-icon { + font-size: 18px; + padding-right: 10px; +} + +.layuimini-color .more-menu-item { + color: #595959; + height: 50px; + line-height: 50px; + font-size: 16px; + padding: 0 25px; + border-bottom: 1px solid #e8e8e8; + font-style: normal; + display: block; +} + +.layuimini-color .more-menu-item:hover { + background-color: whitesmoke; +} + +.layuimini-color .more-menu-item:after { + color: #8c8c8c; + right: 16px; + content: "\e602"; + position: absolute; + font-family: layui-icon !important; +} + +/** +鼠标右键 + */ +.layuimini-tab-mousedown { + display: none; + width: 80px; + position: absolute; + top: 0px !important; + left: 0px !important; +} + +.layuimini-tab-mousedown dd a { + padding: 0 15px; + color: #484545; +} + +.layuimini-tab-make{ + position: absolute; + top: 36px; + bottom: 0px; + width: 100%; + background: rgb(255, 255, 255,0); + padding: 0px; + overflow: hidden; +} + +/** +菜单缩放 + */ +.popup-tips .layui-layer-TipsG{ + display: none; +} +.popup-tips.layui-layer-tips .layui-layer-content{ + padding: 0; +} +.popup-tips .layui-nav-tree{ + width: 150px; + border-radius: 10px; +} + +/**左侧菜单字体间距*/ +.layuimini-menu-left .layui-nav-item a span { + letter-spacing: 1px; +} + +/**头部菜单字体间距*/ +.layui-layout-admin .layui-header .layuimini-header-menu.layuimini-pc-show,.layui-layout-admin .layui-header .layuimini-header-menu.layuimini-mobile-show { + letter-spacing: 1px; +} + + +/**左侧菜单更多下拉样式*/ +.layuimini-menu-left .layui-nav-more,.layuimini-menu-left-zoom .layui-nav-more { + font-family: layui-icon !important; + font-size: 12px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + overflow: hidden; + width: auto; + height: auto; + line-height: normal; + border: none; + display: inline-block; + margin-top: -6px !important; +} + +.layuimini-menu-left .layui-nav-child .layui-nav-more { + margin-top: -6px !important; +} + +.layuimini-menu-left .layui-nav .layui-nav-mored,.layuimini-menu-left .layui-nav-itemed>a .layui-nav-more{ + margin-top: -9px!important; +} + +.layuimini-menu-left-zoom.layui-nav .layui-nav-mored,.layuimini-menu-left-zoom.layui-nav-itemed>a .layui-nav-more{ + margin-top: -9px!important; +} + +.layuimini-menu-left .layui-nav-more:before,.layuimini-menu-left-zoom .layui-nav-more:before { + content: "\e61a"; +} +.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more,.layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more { + transform: rotate(180deg); + -ms-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -webkit-transform: rotate(180deg); + -o-transform: rotate(180deg); + width: 12px; + text-align: center; + border-style:none; +} + +.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more:before,.layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more:before { + content: '\e61a'; + background-color: transparent; + display: inline-block; + vertical-align: middle; +} + +/**修复左侧菜单字体不对齐的问题*/ +.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{ + width: 20px; +} + + +/** + PC版样式 + */ +@media screen and (min-width: 1025px) { + /**头部样式(缩放) */ + .layuimini-mini .layui-layout-left.layuimini-header-menu.layuimini-pc-show { + left: 155px !important; + } + + /**logo演示(缩放) */ + .layuimini-mini .layui-layout-admin .layuimini-logo { + width: 60px !important; + } + + .layuimini-mini .layui-layout-admin .layuimini-logo h1 { + display: none; + } + + /**左侧菜单栏(缩放) */ + .layuimini-mini .layuimini-menu-left { + width: 80px !important; + } + + .layuimini-mini .layui-side.layui-bg-black, .layuimini-mini .layuimini-menu-left > ul, .layuimini-mini .layuimini-menu-left > ul li i { + width: 60px !important; + } + + .layuimini-mini .layuimini-menu-left > ul li span:first-child { + display: none; + } + + .layuimini-mini .layuimini-menu-left > ul li span:last-child { + float: right; + right: 7px; + } + + .layuimini-mini .layuimini-menu-left .layui-nav .layui-nav-item a { + height: 40px; + line-height: 40px; + padding-right: 0px !important; + } + + /**内容主体(缩放) */ + .layuimini-mini .layui-layout-admin .layui-body { + left: 60px !important; + } + + .layuimini-mini .layuimini-tool { + left: 95px !important; + } + + .layuimini-pc-show{ + display: block; + } + .layuimini-mobile-show{ + display: none; + } + + /**菜单缩放*/ + .layuimini-mini .layuimini-menu-left .layui-nav-more,.layuimini-mini .layuimini-menu-left .layui-nav-child{ + display: none;!important; + } +} + +/** + 手机自适应样式 +*/ +@media screen and (max-width: 1024px) { + + /** + todo 修复低版本IOS不能滑动问题, 但还是有问题, 低版本IOS部分情况下子页面无法自适应 + */ + .layuimini-tab .layui-tab-content .layui-tab-item { + -webkit-overflow-scrolling: touch; + overflow: scroll; + width: 100%; + height: 100%; + } + + .layuimini-tab .layui-tab-content .layui-tab-item iframe { + height: 100%; + width: 100%; + } + + .layuimini-pc-show{ + display: none; + } + .layuimini-mobile-show{ + display: block; + } + .layuimini-header-content { + left: 0; + } + + .layui-layout-admin .layui-body .layui-tab-item.layui-show { + border-top: 1px solid #e2e2e2; + } + + .layuimini-all .layui-layout-left.layuimini-header-menu { + left: 15px !important + } + + .layuimini-mini .layui-layout-left.layuimini-header-menu { + left: 205px !important + } + + .layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) { + width: 40px !important; + } + + .layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) a { + padding: 0 15px; + } + + .layuimini-all .layui-layout-admin .layui-body { + left: 0px !important; + } + + .layuimini-mini .layui-layout-admin .layuimini-menu-left, .layuimini-mini .layui-header .layuimini-logo { + left: 0; + transition: left .2s; + z-index: 1001 !important; + } + + .layuimini-all .layui-layout-admin .layuimini-menu-left, .layuimini-all .layui-header .layuimini-logo { + left: -200px; + transition: left .2s; + top: 0; + z-index: 1002; + } + + .layuimini-mini .layui-layout-admin .layui-body { + left: 0!important; + transition: left .2s; + top: 0; + z-index: 998; + } + + .layuimini-mini .layuimini-make { + display: block; + } + + .layuimini-multi-module .layuimini-header-content .layuimini-tool { + display: none; + } + + .layuimini-single-module .layuimini-header-content .layuimini-tool { + left: 15px; + } + + .layuimini-mini .layuimini-site-mobile { + display: none !important; + } + + .layuimini-site-mobile { + display: block !important; + position: fixed; + z-index: 100000; + bottom: 15px; + left: 15px; + width: 40px; + height: 40px; + line-height: 40px; + border-radius: 2px; + text-align: center; + background-color: rgba(0, 0, 0, .7); + color: #fff; + } + + .layuimini-header-content { + z-index: 997; + } + + /*修复UC之类的浏览器点击无效*/ + .layuimini-make { + cursor: pointer; + } + + .layuimini-site-mobile { + cursor: pointer; + } +} + +@media screen and (max-width: 550px){ + + /**头部右侧数据*/ + .layuimini-multi-module.layuimini-mini .layuimini-header-content .layui-layout-right { + display: none; + } +} diff --git a/src/main/resources/static/css/public.css b/src/main/resources/static/css/public.css new file mode 100644 index 00000000..a4136318 --- /dev/null +++ b/src/main/resources/static/css/public.css @@ -0,0 +1,91 @@ +body { + margin: 15px 15px 15px 15px; + background: #f2f2f2; +} + +.layuimini-container { + border: 1px solid #f2f2f2; + border-radius: 5px; + background-color: #ffffff +} + +.layuimini-main { + margin: 10px 10px 10px 10px; +} + +/**必填红点 */ +.layuimini-form > .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; +} + +/**搜索框*/ +.layuimini-container .table-search-fieldset { + margin: 0; + border: 1px solid #e6e6e6; + padding: 10px 20px 5px 20px; + color: #6b6b6b; +} + +/**自定义滚动条样式 */ +::-webkit-scrollbar { + width: 6px; + height: 6px +} + +::-webkit-scrollbar-track { + background-color: transparent; + -webkit-border-radius: 2em; + -moz-border-radius: 2em; + border-radius: 2em; +} + +::-webkit-scrollbar-thumb { + background-color: #9c9da0; + -webkit-border-radius: 2em; + -moz-border-radius: 2em; + border-radius: 2em +} + +.my-shadow:hover { + box-shadow: 2px 0 4px rgba(0, 21, 41, .35); +} + +.my-card{ + cursor: pointer; + width: 100%; + display: inline-block; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.my-time{ + margin-top: 20px; + margin-bottom: 20px; +} +body{ + font-family: 华文楷体; + font-weight: bold; +} \ No newline at end of file diff --git a/src/main/resources/static/css/themes/default.css b/src/main/resources/static/css/themes/default.css new file mode 100644 index 00000000..4f3cefb3 --- /dev/null +++ b/src/main/resources/static/css/themes/default.css @@ -0,0 +1,95 @@ +/*头部右侧背景色 headerRightBg */ +.layui-layout-admin .layui-header { + background-color: #ffffff !important; +} + +/*头部右侧选中背景色 headerRightBgThis */ +.layui-layout-admin .layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #e4e4e4 !important; +} + +/*头部右侧字体颜色 headerRightColor */ +.layui-layout-admin .layui-header .layui-nav .layui-nav-item a { + color: rgba(107, 107, 107, 0.7); +} + +/**头部右侧下拉字体颜色 headerRightChildColor */ +.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child a { + color: rgba(107, 107, 107, 0.7) !important; +} + +/*头部右侧鼠标选中 headerRightColorThis */ +.layui-header .layuimini-menu-header-pc.layui-nav .layui-nav-item a:hover, .layui-header .layuimini-header-menu.layuimini-pc-show.layui-nav .layui-this a { + color: #565656 !important; +} + +/*头部右侧更多下拉颜色 headerRightNavMore */ +.layui-header .layui-nav .layui-nav-more { + border-top-color: rgba(160, 160, 160, 0.7) !important; +} + +/*头部右侧更多下拉颜色 headerRightNavMore */ +.layui-header .layui-nav .layui-nav-mored, .layui-header .layui-nav-itemed > a .layui-nav-more { + border-color: transparent transparent rgba(160, 160, 160, 0.7) !important; +} + +/**头部右侧更多下拉配置色 headerRightNavMoreBg headerRightNavMoreColor */ +.layui-header .layui-nav .layui-nav-child dd.layui-this a, .layui-header .layui-nav-child dd.layui-this, .layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child .layui-this a { + background-color: #1E9FFF !important; + color: #ffffff !important; +} + +/*头部缩放按钮样式 headerRightToolColor */ +.layui-layout-admin .layui-header .layuimini-tool i { + color: #565656; +} + +/*logo背景颜色 headerLogoBg */ +.layui-layout-admin .layuimini-logo { + background-color: #192027 !important; +} + +/*logo字体颜色 headerLogoColor */ +.layui-layout-admin .layuimini-logo h1 { + color: rgb(191, 187, 187); +} + +/*左侧菜单更多下拉样式 leftMenuNavMore */ +.layuimini-menu-left .layui-nav .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-more { + border-top-color: rgb(191, 187, 187); +} + +/*左侧菜单更多下拉样式 leftMenuNavMore */ +.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more { + border-color: transparent transparent rgb(191, 187, 187) !important; +} + +/*左侧菜单背景 leftMenuBg */ +.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul, .layuimini-menu-left-zoom > ul { + background-color: #28333E !important; +} + +/*左侧菜单选中背景 leftMenuBgThis */ +.layuimini-menu-left .layui-nav-tree .layui-this, .layuimini-menu-left .layui-nav-tree .layui-this > a, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a, .layuimini-menu-left-zoom.layui-nav-tree .layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-this > a, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a { + background-color: #1E9FFF !important +} + +/*左侧菜单子菜单背景 leftMenuChildBg */ +.layuimini-menu-left .layui-nav-itemed > .layui-nav-child { + background-color: #0c0f13 !important; +} + +/*左侧菜单字体颜色 leftMenuColor */ +.layuimini-menu-left .layui-nav .layui-nav-item a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a { + color: rgb(191, 187, 187) !important; +} + +/*左侧菜单选中字体颜色 leftMenuColorThis */ +.layuimini-menu-left .layui-nav .layui-nav-item a:hover, .layuimini-menu-left .layui-nav .layui-this a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a:hover, .layuimini-menu-left-zoom.layui-nav .layui-this a { + color: #ffffff !important; +} + +/**tab选项卡选中颜色 tabActiveColor */ +.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active { + background-color: #1e9fff; +} diff --git a/src/main/resources/static/images/bg.jpg b/src/main/resources/static/images/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5870f5033f1b0ff98b6e94db9f0a84d253c86d3 GIT binary patch literal 26174 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 G(SHHxA6>Qp literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/captcha.jpg b/src/main/resources/static/images/captcha.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92b2a33cc7b7c2c5b8e0ec15e0c8ec22eb05737e GIT binary patch literal 2493 zcmbW!dpy(o9|!R7Y_qwW&@hadxh0k`Ovh!*6xt%m<>Z!2>98>rGAhy%6HY}U9XLIN%+ttcZcB_*w*utQE!T~$*< zT@{5w>lowE+C~@@O3y;y$i&pl%uEwUAX?&WjQ5z~zYhUPNJvOaNh4)ska#VW7XE+E z)^h*>2XuiTFi0B^Lx8{t&{i9ux$T64{tEEVfW*KMs5lHRAt|-pP$v(Ffxuuf2p9^5 zK(@ORx8DH>0;-^8YA3#f>JQV7QpB^ei{TjiTAmVZa7kxR06j%QQh6s*MHQ=y)6+LF z+iPxNNw9KoB$4+!QJfFEdmQmR>UAt|ds!i&Vd0GE7-no-{F&7A7cQoyU&`R*T+7YN z|M~ijk~^h$@0FETR6ctAq^_R(w4w3E%eGhT9sJI&*Mc{1-wh4FADNt*o|&B!eiY3w zudJ@EZ+!W6^XqpP2mt@h+OB`Y{=^kJ_P) zXTcTivx{qa5|}--C8YrRpro>n*(7%PJMAyoe+NtXzhwV{{o6GHNP|J!p9e+&`+yDo zcPE{T&Aq0@Lv3!jmwlu zvqj|4f7ccFMDW7rgP;9P3zWj8 zerq~`M(Ms~Y1!NB*UfOE<}}~B+`7K0-nQ{*%-4xJ?Vdr3#_!h(zNSCxI$=IhCdK=G zs$jwL31`%&Bf=&acV%hGIrYp+nKUvgrF3<1kw)q{zQ7z?6`O{D`%GDavWL~SPXR=y1Y59@yR?Q2n}Mj>ot0q z&eU537@r7jS4pJfNV(xY01j9=2^1z~;ah(a)dR4`t zLhlvB(XaC%CqJH%kESSNk3dr`;LIg5Jt~==R956bZ88gbFqUOdK~7f=AX9vs;*h|Z zf^1%UR0478@;RlKyWdwotcIMD-Nev1z_8ZQ(=-XFThdce);KC0ALh5S`9{zAH^%PX z-dSv~vB!0up*q}M+?J+aye=m2H!8R%dKf!d(Y!m0Gv85(s8f zkJNn576S7hkA1R5KS`v$UKv|^(Nk$tPuU?^l#s)N^?c?B&m3P^O;qz8NJ0(s{B15y z(>PkX#nR@pV}VpeDNo5Fa5+e>qpFcT4@wc3W5Wa${1NUS?Jkpvh8U+ zo>4$IY(k{e>56!wx1YW>F+VrB5;MQ*|Mni|X5hZ!qbu}*ZF)Rvxii} z&#AoR%^>GP$Wzv?5eo$~Uhz58M8qaoN}n(jv49W9%7!pcN`XOvFx$An&5*ug(e8b#=6+ar8qWvgc& zcpZ@4`Cz)QZv5qLnQ_~hL;B>;5Z9hclc*Hr^qcJGqJ}$ho(Gmz4a1oK*nz5g zFk4vq<3VBO4@7GXLNC+cTG)L-#HP24Gwp!)jaT`Rd8P=T-0bc^5aV;79MZDgZD2XS z1%36E=j+fjz9ZO-6mDaNbGcoIlq@5sAZSA!uA};ihP}lnMZx%@x~Xf6UD<34pXH&4 zNp8oc1(OfcLReUC-qhYaEcBCbm}C6nIuIo9an(i`)kz?*Z7K{KZ>|aKG4*AXdtpaL zNV(N{xr&IR9h~32iZV?SDKoYG2LlT-9j4xKUjJ&furXYdi_4(6E;uI-PMl3zUC1Qh zRB*&27bXj>UyfLZG3^7v*48RI*vlwJHaifE>^QhSS9kcVV@tR}1NE5)7dV?7iQflu zH27vUUm5$j<8gHo%MwES{iL9a-zui6n<)nGy z@=zKxi6(R>QOzfsc`%s{((+XK$-h9ZudX7!j6X@*o4D|mslJd#B`LL0ToQ^ae5y=~ z>X0R2>X&#lA3e>3rXA{uqUB>%;_%{23h*xky-{1nA6?0C>z@n0@Obl*`q;%*`&oE( z{(6Jad@m#;)yO?r>RM;Vmo&`0)nVO?c#O7ns$yy}96k@{6XTGUn3Sm06iNMVr`272 zF11IQyfS;mi>|`xA48{pvJ|@bs8CmrYXyrC_5{$Ajyq2%h^rx)$mfbw(#UXmsi1Ye{0nDay#pj&mG;mm b;)y?V(rsXJdGpO0)n!edN>V(3ZtMM@RX$9i literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/donate_qrcode.png b/src/main/resources/static/images/donate_qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..079ac3d542efcad8389663f054f05de4ede24ae3 GIT binary patch literal 51506 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 T_&+*E$X`9%b}O${{f7M)Y3KGq literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/home.png b/src/main/resources/static/images/home.png new file mode 100644 index 0000000000000000000000000000000000000000..348ff2745beb8bf6946be005e27cb6962a841934 GIT binary patch literal 149782 zcmd432{fDC*EgJ2RZGzcZB3n2YwUp3+-g4 z%kuf$cqH-J@KXC8KI!|#()H(e1JY(3W97656kJAEf?TX(2@~GZXqB`8w0gAq4VDQ1 zxt=R@URxwmvKeQ8-C=#|X>D@-DV}`3BJihl^@ev}cJx3X_n%wOFHqKn<;K!TZvYla z1`6x3@NQXkx!AKR@q#CorY5=T{j3cz5sse9!OVX|}^Vdw-X1 z>_5$9|6O{1=*E8|7GO&DcTK<(Kr{GHsU7eV{ipP9&;R=l-=&ba-l+ud`e%7BvzZRu z>{vW)U@}>zVjk?Z(+DqM+b#N#FR@oN{5))FjUD@E7yzLKE_l6paJkP1CGWT#(}p^B z@%91x>cPD5!Hgu8k>!*wX54IlMqq!_I0XvVYS0VqC+)`W_6FOWSfXVu>--V-`OxRt z7H|Qji*(u`!I~lx7@^W)5R*f`NH52Iw=m7sYwBktjSWcP3(sWBo!jc0V1q>7V>A<{9yg?p$gfI!Uzp-yQzJguJpx_MP#vLo zE?gpC5zubQZXYPB8Z3_W9K?RuhVp)=b+qJLSKXDsYXJ`Z?qsrLW!1 z@H8zjM6|4?RwW zEy_LOITCTZ0Xx^ZODd;WqUP?$L9a5yshw!|EGBM8jJ&C{S5)Bpz$LA%j)e}YzwrhQ zmon71ukm-Q03Pv)In`REKPj)!an~Sq&-7j{CMChyWTOn+UPZb@m!twOZWbLGZiBle z^oKkn`32cAbECQ8>p;Nt6W={rvuG308n}b|?rhimdS1?7qec?Su{-{Ow?| zZFzv+pH_QM$%8kEF5(+Pr^&C?C?G{xr_R)&(R$!@DU_sb{>F z&KP)QF$KZz$=kE?9;;jBWiyKT2xbW5`&yMiR>*9V)5K+A9K&n+?NQZj^!Nq=>pyRk z1@u40&Nj&jV(HD)N8%j=J}*B2@1`Ef(T1v>Og5@Mc&B?S%Qbm;-0xwbZQSqx9*wp2eTa@#5EgHvL+9YRuorpe=j8)^9D;ZoIz+I^1w^sHPbq_GJ#n zM^I`(BT5nKOJgLgP+;+OF!1-#-L5;Ou3+c3mPf@0Ns8&th{*B~sqLCkBW{ z2VBekUhW%eEMi73D57lmGdq?Iiv+u+9(W-uRw6|t5Gx%5!T`&&4;xGy1W1NMn!N1; zrKq}d2B3{C!k3N^FOAvwYgV?DmNXx1JM>VjLiHZ<9o5Z#J7GaiZ;uP9dF2AP!%GLe z3Iv(^kJlgPyg86%3XVJ!5K$d=v;OQ0{QgdLqpH+~x~3+j-oq$s6xhQjIUCkpUUhuQ za0)u-RNCFAr=D7v8Z4%10M2P-e1L>1xKHb`DwMv`bJg5* z%tL=z@PY=z>0Nitf|DMPa)pPgPNhTd+ggGrHdNGy@onF91SEZ!p|x%gT~lUHUDYc$c?2BB>*R%(dz$Pm!8;+TyXpDf zjJktcR6kpcNs!XrAs#-phTFtWHeThZ{odi-;{oR<$vBqvcvrf?i5<`|1AoctYeUnaE zv#DAEWs|cWbh&93^~fxb9oei{d}LKMz88Pw2r>Ee=5%9AuwVtT+UCT=wDw+wr4#aF zlUV1zpEX!VcZaSS?O0H?la5N9ja6Np%}v{UWY4+R?wl>WVl_KYwZi3VXZR$G2wx0&sh8E>r=el+^0g? z%(fHg7R#xR?lwdK*?SsbT^e2BV-HFDqid#R2A9q>L5v;DSGm^M+BmI~_C}jJbMAi| z0yMuo@{+74n4tXSMh#@IdT0Mx7a8G#vFcz+b>6=>$#Xj-q(0TkB6oRqimSkQ)vwe< zR(1%z71`f-iwH87zbU{|NY-N(eI4>yk8dU7?W0ZXVGX-3s`c~2F58O-PxS`GCTB;< zmvO@qfh1==k^78*Mt6IN^Y;M@Vs;Ct8-6WnywftnmtEx`&69M=Y0Fs;;x832mI8mJGf;CTNzNYw=%^=1y7vs>{4+A06>5TQ5T^v3}1S}=YX#&8BSVJ%G ztK{$X*=5*M=I^Saiwim)BcB%+zk_ZZ>)4u;W?7Q{mDt%*#jt_nJ40cglR(BQX6)46 z=@U~6*L+k8u4M4HDISx>fOb7Ck$KNdfnDrDyKa+&rrwABUitm;w(c3;Ru z08MnEzc=EQQ{Rf)WnITfvZJFLZZ*Uu{cr@Y^m)&!kqV8qTcGqB`6(NhP{+%M$BLM% z$M!Ocyu06vnkD%3$t{pg_P{ocBkq{=jnV>wn2|cBkSQhxiK)(dt-)x&0nDW`I(q)G zt?4I0$03>*H(l`1ifmn>oM6A@xY>dsQnYEoN?a8SHu&?6R2FTg>b!;B-<98ue5IGV zyUl3g(DurNsPYJ_%)e|hC%sqfjI#psAm`s9u9-5IOR!p=#2-UhU^%@76UhVqwGL@{Zk- zpAl~u@`Zkqurer7-AwTj7V2@ra?-N)QN5bzm1_MY;*)B=Z>6KwnS1i9h&5m-Y`P`O z;ka6q&YM%&vxj^e1ZX>KjY*Oyom-DI@rlCwjt1cfKch8vtHVHqIa&wEeSwtN(Og{vehRRNmKq3@afmZ2V4QamNTysq$w!5H*HOh zG+Z)?wPK83L%M|Od3zvVx$KX_A-(J6{6DOFZxSl|_f|7(^pdU9gB0-3G>a=dwJ!sT zMT*Y()D@i--{cN$!fX%PTZRvb+9@}YUG=IRymLLkm(#6QHQXRp2JDH=O(be? z&!ashrSg4>;tdZM; z$n`u4xGC@A-VKfhuD~Z7pW3nWEEmMv?-IHRGd{dayIB*IhtJ|A(qQHYQ1svi47FHH zGRUuDZ%myOYQzSW-=2*Vkv1Q8st*hqjqibN zOsI!En(Gv#E)KtLdgt+Dq5s+u=_uf06Fb!Di;=JtpRP)_-7Z$3BBsVo-I9;91eTYk z_o=qY!i)oF2wxqsbG-d?e473<%XIzQTQe8LdpYsV?Yz{@$=l<}B#5I+SV|^L>hgHC zS!lseV*sisgP}Wwp;eQsUMIEz2dRF&U*>7k>!xX`RD#lwANun*ET(%wFfFv!6kF$a z_Uxfb#b9h|rpJ~TgT2a?o-?fe6B(DzzoREuX3hoV(*ng0xiB6YZ4eh7`C4jDCH_FS zgt(O0v=ye@QfLA>jV^IP_8&Mhm5EG{NlZUjA47M-C9?KJW&#c+V;`+|Hn|I9Cddqx z{Ym)8G4IvgKmUc?Go-ybq)$(^GjRM))Xrd2HeSyN_03FOo45rMTcyiyoen;A5O9Mtpqhh{*;=W0xp1Q9+RaEuml~o^J=G zF`vR>a9t^l*bAFo9Wj(=vo)K#po-4^0zNH>_kxsa3?uiM3P;@RYM!N5nrrfEs6@WX zR$5i9BiQdEpt9x#?{aKg6v0K{5ZqFQ!409;*=Jhwuz%v;o1lLv6g5>8Yb7XxjreKn zd2=&`_S4it`*5vk8gwLgS(%L&=IJ95gnU#IHGibO_)1$8hN={rkh&^?Bt75?YLQ%W zWEVD=ViG@8?_e=TvG9QC3*iAm_Smf@+Hg&t8PM=(b9Ehj^o)%yluPj1w_7h1zJ1fjI1Ks~%2VFi z0P+(RUlwU74vZcGmQjFVO2KZQhkBVR|EOv=Go>#Px}T!Qt$B~%qkHO_-0FSccjMHFbFL|IQOC5;=bT;H@Fs@Iz}>#2c7`< zaO!(l9WmQBdDOuZ|sZ{nP^?Ad*oGD=TYe9mj)%N9=Ikc?a|Xa8=Z zJ=VVf_3b2Z7dRDo0}JmBZ;hyUw3VM)d!>ve+ez1+bDy4wH>t3NPL84^?Z2LnRH-+e zSMqT}g(C4zO!sp*>$LQOJ9RNJL{*iFfsdV}zQSd!V-pAI>Zlra$^@XSv9=jDdQsfj z)S6OLIZOcYLRL-5eTsgh2;r@WrCVKcSQ_&%+-?N`l z{YBB-d*ih#gSti4&s4~`;|R=*V{(riCW&CzkXMF9NH>IBYuF>{EZhBWHjoMW8YM3j zH>pL6XyreImhK%xV7!M?E&t$BDjJOB#e^)=W`bxnu(7Cfnr65g^Q!{M){dhlFWTBWMp^1? z{GCEKO_s#0?*{bFO}tuDo%)YDd#7Xq5unOJ$3_x`_?Y>h?}kDxRL1n!TMh(S{+Q^p zV01XuTV1_bgEP_UUbXBqFeeE$Cgw6_Cwg(9V;_KWRUjJDgG9SfElM<|^T#RCUXCML z^7gy3H@8g0a|P*HCa(ck624WTZ(FAsi1^KtogHt#?ZBD&Ed_^A)ES>W=d>v^;d>`9 zH#kLG2O-|L=BsIV$ZkIL8!v!JJcnNQ$Qjt{-zTW3v_7(*9OYd+H}ArzOz4XL_#U7UP;xdcGXI;*GV9!{!Ke8JWx zBqF{^=MG_TZz~T&D1GC$i8$abp@kQZ8fnwSFw-AHFLUe1nk?pP5>IrKWDW{BR+;Pux=b?or?3A~Oo@66*)(Gn-_Mk_ zQOSZ@4KYi6zaXNnXqnHD@uoXw8pDm63z9}X-SkVfbC*3x)vF!gat(+=GY~Q z+ri+9j;ndM1pJ)AJ=e1nLXi#BR@ybrgQqn%OuXvK4-hHZG&L2@ zUth!~1Y}Q)7tC-k;qvMYfN6}-4v9K{Dj06)H+fa=aV?YY>80JH$4YD5Vs`?UuIL)w zxl5L}3&JHH9*XjK>&hI-sl8sPx!!J`u;22cvWCm2q_3*2c7YAzD;)AtlRH1lZ8pkq zM{6&o(s4&m_DF41@`ld%^}b3X z>E*Z4cj+4*4?B^?o4S0}aqD#Z#qV0(Z#`Uy#2?aQzJka=`$;3cO_Vt?)nKHF4gaPM z`FZoB&4%o|vr}ucLo7JZlJC^QS8toK^u%f^tj6`e@Vk1_TJrcr_#A@Zr7{y zf-5h6?C+*q;e<;}GNuvkmidANu4d{-$Q z#^;1r0c-YwszY)dM-MYZLc5Sc(kt5^`Kz8Kq;dQWB5rheiWa^W=k0xeYi+Q>zanCH zBW$Pv1rnQ$?|V|PeS~ctdF7bAzgt!1F}b-zLkY@E5ElUvS$?yU(%|k&MAN1pe5KXR z6xkaO=Xk5l6(LkJkz$Vop8$Z8%;5oz>FQ+#iJBb}3lsM=2v{zFU&+Z39E3wAgr2Z3vcPecwNk2qr!5Ed@ zSwDJ@+Jn@a+bQ{zZXk?EJ-R+5s5%`%LaiGKkDNOJsOq6A^EFy2(>HRk`CjQAxM$aP z!m0u$${)zKDYY9 zFH2FBfNf<%RQCfx`nhs&r+59MJqY$jlRb5wSplLh+$tMd zVL=a<1wk6|XD3~_!0zu&m(*vbIoH$)?e|uc*#Pqb?V8SyWno#{q=Dm%63qOin2~fkJS*RM$2@e zFgEL)|2=e|hJ?B?EWc3;<&2I}-+CUju`Jv{v@UW+;19l_CHQ$^J^cI^BSl6nhg1}S zR|mwC)bG;7geohc_*9b4jgLXwTUm^wzofcxRHfw(&}bGBS~Uxsg%O~^Z5Ts_en+C3 zR%)@S$sQN0ft^)^DP1lv&yd2!2TG4FDWRto`Q1*Vg&%|VjQpke0Ves^nF5# zWjOZn5FW571S{BAR{xcAKGe(8oXy&AUvdVb0@z5n; z?qW^Smkx?eE@MKA03H@L|G=1+Wj;uKWO>UQ*I$~1BMLc zkop624ulaa+p0S)zWEW3f@mz}#=!I!c%*b_JIrt_-V^0Zro3B50nUd<8vYz$cuuX(==!7`A3N8*^$e|c6rX!gJ!e;8t<76!NxigZ!>E9@f*T%slTG zrWcok1>_k;sf-9`Q700+yQtr7o7}zPm|1Cem4TgAQ)CJsBBq0?UI`49V1W*1}5xRY?+c58z>7|^sIxP|D4WWw$IU@R8_PfC;l;yFr%bWLi>eKd7 zl_x9SRW5=x{*|b3;GV%I@!8y7nFRHfj1W{Z{dqxEgP31^6SbS9pq6&*#4+lhrM}_3 zzzxqdZ-jVko8&Mw{s@%rvYO5KQ}6#Fo#X$XyovEl(=<;oTkoQfitpv|1h?Uit}Z>A z*y%&)-%C*;JhIRLNJlP?)p*p(W`wc36)pJlhzF2=rBOJjS_}j-hCHQZM%Dhrx&LQ! zLM)#55R5<|P_685NhV94nnylW_#~w~E&zC<#5hNpi8WX(s+#B*_8H5F5?0P;#3X_o z9rHwdC-+!A`!04$&f$I+McT4*-T=N88?@OXDj_bOV}}FpZed4}5YzrP@<@43F?we! z(f0Rh4(8O=Jyd6m^vJo6UAGEY{YLS>R(>abMZn>X>xwdTLPd4G_tr^K<|(eHZBfDn z>dYx#`7=eKb^J_=(?TMnqti7WgdxS&S})>yzmDueenGL4RKxERo$hBoaoM)@kd@zT zT=$wT_w$4BV7sHjOc6M9b)n(QmwJ>@?XJrLX4%lsYm)bIyk~&=!eU>)sXu01&6=Iu z1K(MDML=(15KbaKi-X$gTYb@I^Fyp4*kVkdmZ;v!@5MH3Ej!ie+ z!dm6XSk(@qwu9L?lK0jQ=qnf9JQ+*qoQ|RaXElO#*M|x^2U)`3AwyNCcQ@PA7bjq3 zJ?$0P%4E|8D}!5RE3k>Rre0uTXrn=zh%z8*mQG0XQA-QjTG()~G8B_zkoKi}>ZC$q2lzC`P?%XMSFjn$$2?`}N)%PRLf!H` zts8xY>q)1*T-* zX}G9v$`38pTq5>dpMLu?uHpO3>Y+PZ!5kuPa|fa@{J%3N(l1%q0>%a>v8-gNSBDXc zz>y7;SxYdNeF5dSg}FZVmFv0D5f&eIct?MTdyTUqsN2>e-lkwm;9&uz)!U`_J*_xU zL*1%EY~A^t-S~B*dXw>Nlu4@^&CztC@Buj-fp|*H{_s*%HYyK~;r5rByV6S?QPx;W zInz3Esh__9?qZFo{#dc;XV($hp9tH9uWqx<{DEw9i^No z#7wkfN+>z~P{d<=#Ah4`i(*@tpDNpK6UMWUr1+s@Gj}8g`;pULU2(CD}H$YaUaIfz!Q+&JUqAafcnmA zm43WQ>#jv_C2|9>xf#?SQS=%s9uv`l2Njq&(n#a44Sr*|-UADVf~=PGm31R_;7FqWi0&7P_D0au)fhFHjU}$FRq-L za7nUub%=B6JG$-JeN@bd4(aSZb=d!^O}2=L;AUc#tBw%Qx#yZ9@BdgR_vs{TYHZjTWltrsdUHPRC0Wnki(H?U@ z`o0N(r4ZPpN=Rus?Y)*rpKY}2+|0dt7|oS(MHMXKQ>V_3H7UTJ2;7C)JLo3#tao%6 z$OrU47_D%6vtL*Bjux_t`>65G9njbi6g{NkkKjLE(<5DoT>KffEO2B}!Z#8!H0Kad zr_k^9V%#Qlb>;JYoP7Z^#rWQ4(!G&wdArS^A{auh?~W2h@)m}^&1?J+Q!!A#v3S*s zG*;utad3qm;7|E3E)SikyTIPa!7HNsed9cFJf(jdiVbVz-?I3IU`K-&_~7bX-o%0} zc@sK}bxt*<%6qXpjT=iNMp!UBP_L6fp*&OFoD3PQa5SoKdgkG<@aGV}LR_LP8?nw` z<)Nl)&Yn(^a2)q_O<(|7P-(G|!(z){E9Gk7TP5~*QN{WKwTCr^#0CYB?K4z9_IaaY zRqI`XlZ5Lz#Wgy=v-VZpNS>FO<~LN-9)B+jcO59Zzw)q5#cTvZ5Nc3p6>6v)XMYgx zDe*Ql-b*kGG8Y-)z7tkiAC{>DPYIYZPN}0zHTH;`0FsN&86@WI0&DK|;Az1Tw2Do> z)+cberRZ?;vL~-E=zdK9%O=qC7wz|u&xtFz;=_!0Tt~{jIX<$%)bk&(ydl!n09L1e zH%M-aR@=%YH85PQyf7e_pNs>)j+6z5q(XUNw!AS@A?HIV+Ar2_kzmgqQ(2dn#Sykx zn5Xy%qU^Lem?z-}&9WZ3_CWlhUlAo0rpwD8pL-P~a5(&!5TU4#@8BGlcctL9_PpyP zwQalcbX>)tNHlk)d$BEk>m#G1vd1z{a)Q^j+>Ul}gA;m8m^1245)&jGMr9iLY+tYh zGB+bwBUS=)+yT4`>V1d$=?Z0+ui?g6&XF;oC z!Z9y-^WCyP&17~wdOpE@2%7@O@?}O+hT=9%))VW+a7T+pgPMG2i>xwvxw7*UDjk}Z zY5OI^Sj-|aaILDi&rlC@Jk;VYE*Y%_&)_u;%J{i3Enkp+pDRM@ybPw(qjC^dfA{oR zK+tUi-yY|UraxJ$y+;$}C%h%?LvA`@zfj$q2XdcsvjR)W?8U)r#d>w1AnQEqAcv%_ z2{Y7EizaO`LK8_y%M$Y{cz%l^g9L1KE_X?mM?Vy46o>Z8il6HmY+0KzUb1-p5T(~!7B0f& zN|q_<7+=`Vj1mU13n`hnffp(g`9eIMZ<_KUI8$tA?-hNLGn)2b!>Lz@iGjtAA9_wU zL#V{%e~}s&_zjl;U%(M9`1~)G`MS&6nP&6KM$;&E$!LUIz86;rUlspiH%f8ECMmw# zPb!Fy)Y0botz)vq2JBym=CMk_d4kD}(~ULDt5%Xm z>scbCj(e6}g?+zQ_C~E=g9^zPUMt(o2XDad(^zBe7ZeyGQg6x?adgS(@+}{0g?nO0 zZaQC`BP@CFv5D)v+w?*`jC%!@6>dopQ!SUK=a60ldGxW_L0b%Oi}OQ8NhbBH=&kuoz3#P)Tj37=d!Y^q^tkVxOO0p`keoF9o_%qsoVcshYoi{qQ(D}+WTA% zlK0~xO0#>fklm8Nu-a%96yd!*n#K5&&iw99TwGj!Ztgog*+(srD-M0*TFGRUPJ+z8 zPLbQybDdF%sJ$Oo1nyp``uQhQ{(${SLy!H9FVQz5%=6Uv{+zp4b|;Uzr2V$)0KmZ` z{~vSSZ+O?r0&Ym7@o9fA@X6NcRXJSgNfZF^+}L)BOoRJW$jF{}*6MsE6_jQ*igFGk1^~DbR+^MTeKZ}(BdjF15PHCtHR#^4zn`x>A7`6j{HPmzT5pN{uBK+_ z8b_0L!0?;He~IJ)^&I`!(kc?^;?w?jH~U&;0DyF9ZOpJ(+yQv7T&X%>=-Dd)QPxed z;lFC?)dY9^UGw-qH60iKQ?mpd#Bjs$uqIIsDCjXf+#(zhg ze{0ZU-`vZOyH>c0G4g(pMJXSIdqCC7Q(T3eOH^z0@+rbrrK4jr@gGL|uLJu$O#8v6 zvT=*x31*`HHix6}q=)Y&Y%~r?EZp-zP#6otEELhOgmJDSGFqtVWGU0VTM?;-K{!qwGo zVWLv*zjR3N4@04y3(5&D4zA-LiI2N71Y0endupWb;N~v(xg-f++gKTH7yCwTyYBrX zzPA)nYFdx`BhHOZhfr2TX&Gf$KNpGZPNa5Zlw2?TjQu2N_MWdn{?r3HQAweMnK-W) z-lDi?wf2?fk+tK>peEM36*(||BN#yXw~FQ!?D557Ef}$zWnu@C@BM6CQ*`|(SXe7; zz5cS;Oq`onD$ghn_pt;2S!`=znSUm#e*$T6d*3(tWNH`nbeXW1Tk2y}@yY(rHa0H7 zYrg+xHyqBeW)0c9o>*!HNe%C55`5%r_E8YDfcww^9td)|C4G^$39zfZ)_Lb2kuSBMdJou1A)jY+d$ zNcDA0UAIt!&RGjB@j|B8?KB()G=0lsM<&I?(q$HU8)u*H7xy7y0Vk_MRM{aLbsJl^ z={q)@{oPN+%j4nb?dd8<{TQUJ8szzl403YYW9O+#y;LF2V9>za$lR3GVcTdkm$YNr zW^~KH%ys;+%F|MwJnWboN~#-u9HS+uFLSGWnXPhLW=TNkP;)4kSC>52p(Tvle|rPF zktw=;_b;d2YpJwNf|W~$-q}ESvA&QL7Z-nwXE_(+KKQ`em1eHEq$Hw{E$dCCD?I~M zQ1Cc>cl(rzZ^_zN6m;ofaeu$z__I#wZuha}W~}P!*JHIzN++h&woR!GTmCK8vw8h|z?h9~n6GWZZQ`=82ca9I zNJ!2swVg)m434`tzdWc!EZhR~jhvVjKyPXqf(PKtHu!lj79IU=e|X22-BfXx-Mh6r zKEXG2uv;|knDL~Vt;K?kg`BiSWjtN~Ykg$cg!*ec+xM6PQ(|_K>$BD?mC-4Z6TWT5 z-&)P8Cj1MonM4Hf000)@tRqiE26f(^<;@qYJ#ScYCvpe;m;Hb|za`)XlC(ylnm3MugXFm-EU%6-eHHh zg|7G3jGU@x$yLDvllWr5a~GN{D?Fk|-&Rw;XtnXoZTCqF-q;M~UDU9*j4hK)|;PcGlE)2S!@emLgr>2*?h-I&$uD zYLA9B%y##?c$!eD%vO!nH5!XLyPI}=TZKMbU=D6Z1a&PngL zXctweTi(|w19R?lO}Sk2pp6T0=OFydu}3bE$JmP+Cb zYuH`O^~`;k=v6R?zEQi|#;x|D{@{XZguJHF!ySt%5Ye`33(v~$f0^`u$ zKLo%5rE^vVBzkQ9)ICeqWLp3WnA`s6CeG8dWVmq?6J~ZnD%^*K2pr~a z6YUZ-p_ioaos38+fwHKl#r`ZEL+QZJ;I}_MUCWt!IF#7l`~+5K+r~r4E z<`tP^wlzT8BLB9z3sIP>mjX^ozXAZ-b%$J@^rqh&EqnS#$!pR0TDP0|<>VjeU6P(Y zw?F%mpAnq9o*vT_-#V@L;8Cw^SJcs(a8xF#!`9r zn{1GRzKGIurXscJkW~{R3 z_2}UdlvQU(huq_@2gKc?CcYE|wba;w+;IqZQP@D&;&?75W}@0@r1NQbRQ*I*8Z+0B*iq z2;(>(3zb^MT1@;$OX6>*?Dn%-*xsME=GZB1> z5}$6k*_Fakokufp{!~hT8RsjuKf;0SS)*QM@e-;Ch@AUUs zEJUa9*SXV+p1w)BJUpyWxx5Nix@Uz$>MU;ZPg+Q3tZ-V1cJe z$8}dALsIsF2}LlLDo$y8T^s+hJgKl%!tEh-*tNOXtn}qwu((E#t&uZg_Z`IU>upCAQ}IWonkom5CtWNeVbbaWs*{x zg^yYJFJv8gR0>+I+ZeLcM-f&8i>br$Bfb}yW-PrIIX`UPv3x9`&d2mgBXRZaxdxf> zQn?d{d=_N97W*fShCep9@|U)9Du|TwR&keymgQB$A2*dozHZLRE}0$)Jk1r_(x%92 z$R&d!;E;K*qjP3Quj8# zcnA~79S0!qSwjfUvNy&Agr(9~>$kbGn4kP~=rksQr_|<#Kl%|4FX6qR0wi z>;&?Zzje9tuUr74a1O~Uv>bAEDD2fx1j~Y{Dd5S11gsh_d`xJJ+BMx8S>VT(6v%>~ z(Ox@rg0gLt+1jebN20#plnJF3;^6=^lHQC2qEn>H^)D%OmqsM6EQ%;=71q!{>wUa@ zrbhMzONW~fT>DEJ(Yu<&FUz9rICaZO!QxvvHblZ5H=J6VpuHKUI8uJ8%f8PgP0yB; zHmn$_eBpH}wX=F{pBCQIos9ZAJ;4IMfCU!SRPkU$BwFbykZH_Y|92aOCcQdI&cE63D+VV`T0>OWtdOZJJW1!_zq1Jyj|-x;YcRZ5llWQ}r< z%nPVfc}!p#Q~TR1C(JfhaZq%M8;Rw{zf-GMxIpKfptjcH>C>khuB;g9 zI|&ALnH6A5`4AT;W)K72f9uTWr7?q8Tr~R)PCpe9zk2JZ z_Q0hyr=1IcPkE*AWB*K%o3G-vpTIiWfn)B+Ez3U}Jhxp6xKpMY%DNLAyeL*srU z7rm<5EKL_9!a2{Gqw@sa7Clyoy#}=;`7ImS4;W^$%|9k2OAVlYa7${d_tT-6Iio# zRTNG5XTtBE51oQW=~pj3vl@h>hoGH2NDno`SQ!RTZ(iLv1-Mgw6I9$OQmfZFChi&s zed~lXV?`mX>6X~};?MW*D_24W`7=Gc>K@4VIPJw9W`%Wg6=^59$tL*;)5e@yL^W?# z2-uRL!c<8NDi=u=@vlS3)v&QP@PDowM-2sbsGDUM4lP|ol5-!hBg1 z*9(G~$!_cWV6Ru9J>?bW&p!O?=Vt!7o*U~}ZK4QZ3+j%qmAsNxTpH7eSB>&wfV4T* zxvM7*zho&!1P|=mll3Q&$!ojO@U!MRxt|WlXrGMC_?mnBR++52+_m-?m#guG-*hXb z@|is8{M+dHocrMGBXscJrWj}+oWx1qhCx@a`Ry*qFm z>kY*!(zYAa(#RDEVCgp6!l4`tYb2GoEcvL@hZL-89Go_FATz1bI&kR2O2ew-MISlh z1W~l~@>D(t?KmWlueI1&-tA6s+>f*W<)X_uU`s9e4hhZKG9PE?H3WT8 zUH_J!q_F(R^x+m4q9*qy`VX*1;xdjraEo&DGwAJxZ_&% zmK9si%T%T4Qx~jSI@mk;GCJ_1j$0pI$5}MEPq!*U?duw5I}>nK_@E@8iHAh9vM1W1 z@qF(`vsn0hDE($g^4k2z(}wWl&ve`ER)2o0oC*^httA#)4l3pUgbN%wa^(Hvg}*=Z z^dji^P(R7cCu1#n0|qF^|HasQ2Q{^}Z=;GRAWGfzCMclvB1KvhR8X4IdlBg!q&G#1 zihzogNE4;^8hQ}~gwUju(0dC60wF+v^Mw8W%A9j%zHj}pcV?UkYpv(5*LB@@9_s3z z3i12)?SC-AtUF9zmb7fS!NROr{c>qDkR=FpgJo*@_QudIHH&(@>w&hO?qYHNu(~w< zKzX9U$+EmUp|9K(lcoXtq!HH7)YWair7HG{9{j!kx$leIS1@l1+#sd zP~hD!HJrvCW=<)MY`2CeSd7V|<52-e-G0md$Q2*wz1%$PgKlPIg5%H0K?)AFSr-25 zui#;&&=y#u*SbA+si$nzrv*PKIhe{&zrizBoUd=DwJQ$^%wIY3NYdBk~>MJVm(I*w|E|3+**HXn(s`4XxC$|flU>~OLXZO z9v|{r){g$oD4q%^EtBZK*cv6klHyKyhu(&70gw zuQ>Vqp4M+5ggr9oeh#x$mjB42OH^F-dgilMbz@-TzDZfhWx@;1W7cIj6$*f7_nvlp zBiCe;tG;JcIS&nwR#?N((Y09T4R6?5gJ$8reNa&lro^d3z8Ya5+f#hc-lu-Ib>De2 znie%O9G?(_al8{>>5jBDlCK}h*vY5w>0ta-VwBh?=saC1x+L`=seUNs;qj_^;ZR+^>OU4ch5RYjEY$<~?y3Gl<^Lck~DR^pefsdYc58SNO|If`L#FBMA3R017 zP(f2YW&{itE{S^Mj$Q2TEv(+;#TJnJ@cBAVWA7P%dfHx`Dj}kbTmiRj`nGU8MVAx3 zqFw0P?T?UjHS$(WULF<5XN^H>_9x$ifAg~AKxkI?Goe4c1DDE|rpc1}4}LEDGP%e- zBdS%e8yfv3;2-{c8~bkB>EeiPE>+)L#q?L7gfy(Lhn!lTM5>ny(|U&IPXqHn$VP4; z6Q(;Dn?8=z8=0^*)aiQW_FNbIW}HCzNnhP3?_x!Ng|FU^-n)92yQ7OLWqf~!j*LZp z$&#-s^cu=hD;(a9W?2aq#Z8pV1Rpz3`*{{wb$#ImTPPknBtDL24o|SJ{r|XU#MP7+ zqtEHi>SvF)n@iB;T9_gr-n-nJGxlIAXDsx7$tCyjCi=lb)R`&4U_U(XITPwJX5wC8 z*GLUUsNWoYg+sPd$ei4Els&ju-%n97bFyg4BJYqNRJ!baKl8@bkVos;c^oBHZ-KmM zTd3H;PKyra+R%DstEs0BhRc|>{^#_APHdu0Upb5N$EpMRz{*jqWqpD%BHVT#CNEnl z?8_A1tfhTtmHI!o1HSR$!_21KJ9FDI@kXA16=1x|(Uo)B^b@UjtWbQHo4L5kuh22$ zr)P#X8{>L;I1I~B*VeS^?mh~tioZQ?d`S^ONY?k z*a^yW1FyH~OR@j?IGRt~dH(nNrEI#oVos%qaR9aJZ-I)u?@<(emP=&1i7+uH&2JfM zC_I5Z0YH3JL2+GvkHRA2aRa1lV=~>?wNau_oMYM23XY1wW$4D%i1 zLI@|9x#hbQuU}}@83WxQj*sKjq=@elZpM4q9BtKayX2$?`;+=^*DS<{ZAfpHwrv7{ z_xc6`kOH~@Sq|hRk3ctA&VWpD{A1L!gUNQh#(kkRSpPsF>fO8HhXk|uOv3KlqH%BOYYJv> z^=}&hw9?SA!5=Aay}fe1JWf+#!h6!abJ!YkyeVD}*b3BoK}ny$85Ze^)Yg=bKOC4# zQV76qqUX5RK#Hl@nyN>d1)y|$rfBoN-izwNhTJ_y>0ETJ+F9RV$C)+eOwjW~JkQ+I z<2gRjrZPbv55FlHxwZV1(zK(1hOo4y0{8&Y@vLw8cRmThf(jok|^+}2+Zk#NGLNqFh& zLVV95XLt-+maZ%?n=56?p`fUBg^S2|xfY~Gv5W4J6l~pL&FoELGhk&xH*rn?U{N|qK@PNBRnXz3-&$#;;r&x0y$qnJ~OWs`;V z1o_T|GdQiJ`oNk2$uQ?1hy>?F8;o5W>O93(H(M9m#!YT1a|C@QD+B(sP9EOOwcnE@ zY9;ndLoAFF&m`$&uM4@nAdsbT7xF zT2#>Q%OCrkRQlEK)>bIsL7(1l*2EBK;yYl#N+q8a` zX(7Y9O0^|nR2o?@hu?h3)nG!3T8HLo=R~BRGJWXR?qm;e!ksi=`p7v&Eblb06u4QN z78zH=HcFZmOn9&HsALaT*$-ty59Ky9KO~5Zy)`a&tzAmEe7Ux3eZjCo&!=i^vJaobK@b))fNCpUO9ST@!wW-gPgoGNsAuXv7hnd$r8YD_VT({Hs zbXI)JMp1>oLdn&w25WodN@kR|xMR8P*81GH&;z7%^%T93JzX<#MMHWVufK?EM()uF zcuO~1O@&s2HZ!nuoo7{!LMNuV#AYRP>mjL)e7><$h)7uflV;g{eMyTrZ4W(4;AQVr zrXJtuTH$Ja#t<2&v*91V!Q$HRSsZU|+S68-+mZDmX&|XzW10wol;TB7>VMT=?-0zE zPbw1N^T>P3gQug;gQxkYiy<|C}0Dq=|_*BrQgQW<=K)Nf6)yBSo@P@9|Vl1 zrKUzp`n_A^_bWO$HX!hZxy>oE-1B&eBT1Vnsa1K%4V8nWGBZ-EQ?%Mj%ZGF1euUx1fTjPKK$ zf6<;ue)!rS(<>F3Z&Ft%N?G)+Uk=klMXJrD#$wmx^L_^!HSm@EfvBa(ufoWRutovZ z%L1qjGW#Ko`F&VF+WT*9X>({Y;fSz8zK9ZRl`(*9yt`zb=y>wV+>JP=ry4F)|FV&TovQ?ptk&59x03}cd%eyM zCxE9>EiTt_Og@I65j6hLvL)a%ZOeb;&v%_9t6!%Q4nuOxLK?*EU?Q^3$S?&KllE_8Tr-FmQ{$mjra4q zi1h>ek?mTD)bY+^8$l^i?(OdrEJC`qI z2ykTDS9{IAAwhsp#XQ{>R=PvRZqek#v1uj4qhczu&ruSQKO?RohxjIi?14G#+%&Fp zf(DhNF~f%oq9IZfzBlWuU;fyaKQxfFm}%Tx8k;t03lJt8rNl+^heOuy*Ugnh$Pru^ z+4zQ!`>GpOl=^w!U({9WVMRlrk?Urm+6XDyZ!|Y@GUV^_PKR2LU$Hu*A3D0nG5Xm= z6PC~`y2Wv$m|k(4 z9#T#ohE|=JHz0fkOG|osP=?4V0BV#9M)L;s;RF8umnP=-)$cZw$3awu5LndbJhB`vO^@5E~XRGOFTpIIVm-$H@7SM6vS2Ws<-?7$>fFEjzip zr{C~i*we~n?pHkcxf>dAE}to{v2gk_<^%1~FmfM$Hl&oxPLFS6j7SnW>06EfsUUgR zVAyWkN?=8!kq)w0kNotBEMU@<;)NErLQ50u6V3eXZ4_FKI?U%e6gvao8OvZ|XM+x= za;!p!jcii~`9Gpqs(o!5%#;~>E{FZnJo7SI_n%HXPLsz>MvdB6rxy4`5;8(&hYXP}4WqK6AnNRtJSJ#Ord7asJStDwVVao*=9&2n|vZ3!$gZQzd=Yz)i(@T`>Jb=FE3!aHKaK0@1mOdBBNkeK3J!C}ZWY z%jLt0Bw4KP!i6a@)HIm5iqCRXGf~gCfYA4k({n2&}`9t$6hJo+8xg?Zp`cqd>?|EpyIall_{Wgy6^iG zw;rEw|HfHCK>7PdJChD+$j+l9AByn8^!)*zdxjDwY+nvI@ba_uT`TD!3OXFT2XB!> z5yEaWftYAP!}41x29GRyj)L$rM;h^<>LKNzCpB;IFa8AUujLD0*tusY{Dzvrwd=#n zf>fsklBi)~cRF;6Zn|oHA)XaK-DP7gEOFchd5V<3$&NW#5GcxUywr-AsIZMZ$Zv*_ zS@~^im$6g_2}OW}!SGwR1v3qZ$x_=$EEe&V1hwJXRJGyC?tFHVx!0y6w=699onW#L zUj)+E&41t*dsC?2Nt5f5S{nCB{Jmsv&&JFYdWynQfRR_)aOtTX98a82T&r`XbELX5 z#72g9RZIR6w0@t7WbDbyWPJOKP0khX-~~eY@+V-@GgR z`qU_x=7(4cOYZC5>R?xSw%C1DI>845IF`?nS6m-uPK7i>@ai`f)noiNt5=w@(KjX! z(j^C`X^gB+`9R8+!l%D#O;KD~Nk^s02hiVzaEdSxEjbp~@(5_+Xsh2o5_7{kQ_Gxz zs`Pru*N3B(UCQ684EO!MJe^rc6AB1e5$ugXIeYgC_iXtUyfX6WF>jqs^p8K?Lvp0r zRy{6nudjYpe4C9nQ!)Uz#R7VuERKJ2_vA6H53F5gtg5lzz1GbYs{J5ZD;%jMC9q-+ zlzXMBZ9Af`Wt7gGE-o^tJ-pRnxSmqfpE!4&`7Y@YP(N8AUk#~Cz=E!KGFaiM$bcz>^`WTS)v(0g@r8TNj+#l8`V+ zTuI!ZVB;phE;U9?!HX0Z=a>^)xN@w3ZkN-ojb!sSc%C6}yu3iE&rRecbfae3lbf!6 z5)#4QEx}U`3>};YJ1Cf}6`w>X{&X&@w(J|Fxz}Z^`1b5cP~ha^dkNy=+R^?Q+E#5v z?L^j})qF4O&&q02J!uYla{{?haxhX~Bd% z|0P)tBXbXvIhi?+VsEGlOXAqU=TA};AM)n8)v~l|Wje0*bsms+1$oLT$Z1S=*meh6 zaYen;;UyYp61T~`lCCpM)3=){{~)`1zMt;YKYX)KcAHfZVOU`kPwqx;3YqEO@wsU} zZo)LN6|x(QhQ8Y-l?8$o7d8dGGJU?Gb*SFRrqn@XGqmt+zgA^SwwMtifwBEs9r zbii$JUY9?$@9&ml{Th33IVp6sm*eW`PL6-9wQv*e#RgE&WOLsovCC%)474b@z4$s9 zyamMG+EBr&*$0(JRDb+seMQVlNa_Rg);h1p(3)igfMjdEY|CmM((EZP3nwvpwU%^) z%j+`7jeB~2saEGqg>mQaM@Vg_O|?8jXX-x*q1Eolm{J z?b&ya*HgZzTk`z{aSFf2Adhb^;fucYbVabe}^YjdP$Q+VhP$LaRjsqo||=;_ox^`LrG$u}3B_f6k=v(*2Y_Q{PeRe;>U$)$Z8rZ*$zizqzJF9&$!=VX@%o zujqqJ-$soM*KNVuE`h1*rKWJfqD4)qf8;_qJHwnvnQ`CS6MMkp@SXZxv^^M=+-^KD zvxBa_nf&GkS{`ILgPFlbM-Knq#~lPtCYJ(;A+PsifO-=?^;lLi;{Gi8Cq%A71O4L| zR;IciI==y5tBeE#qo|!u4ocqP=O@Mtmu8R9GJnFGp&=(5<|shwUdwQm3=|E(%|%AW z-N-Y`i{jIMUI{z%AwW`h9*dsUi?~{U{TLwab!0CUUFyYGWdp!ZqnEQ=a7A>TWLXea z>EUP-dH*_F=vdWzR0W5YCqe(_co(k^pJma-TAq^kZEiP2JmTLTes4?=#S(`Z-%!YcnnmLjI`T-X#s#K_LstsWkqXTa0~A%NsE|2P(ocj+0eo>ro|K07%M_ zqPv9b{*X@*lp6nDm%sBJ1DK5BmpYhkZu1?0;L%E?K#_TR(5&=&49o@AgW_7zV6wti zlTaPQi{cXgR=(fg`99cjA>l}guBD20doCx-i$-=LaSVA`{`myLXEZ&;bk4QW397bXNA) zNBF(Wh~$hUI@7?!F%>#3V5@cxwlHkA7wf~M6m_tCww}4E3F%^4}-B4 z=@UQ=n#yFGX4P{uR*t6QQhzlC!KyzewVp%x;FDbLK-Q0HvD^y^%Sl#FIjP>|0BTB< z^xJ(IfT|kXqzu6+K@YvhElFfozrXFSdK+ICK6Zg2Zz^}xT41}z;p{i9roe4nv^!VJ zBL>r#mq;io0lF!s#sUcrlqLi5?C?qab~WJ@44X1z^v}=e;jLI_*aQ!;jLx1eG5jyK z*0kPxPUgXGp<#vAign=($P+rg=2ONS7Y>6Bo}YWT7HG|hW96|1c7i@|!Rm2>Of&`KLB9)dJys!*1%3#c zHH-t0QyFA~s8rx{qj}oA#JAW&B|j1vKJUI#qoRJ|1K=wI0HhSWN;MDMd6bKN@liQ%0zgs_ zLbIqOk+!f+A0l2`1OQIZxQ2w-A>lJMz7r=0GZ1muHUT8Er-ttm!vS*f@j8>(EwvRa zyS%>vz{5v3Q@=VWle-BWJ|pX{DM@yzTVo#Q&%3QLJR3x*v3mozWI$!*A2a0-+nfio(Qht~Z%5m`ROV9ldK*&wBKT&J(Y^T#72Vp1;3j6z*Wr8!3^@TGM zb{&c!LW2Xm&7DMv>id; z3^&Oshun)1?~LJ14;1r!L4pfOqd&m}s&Md5l$*QG zq1Hu#DhA!;lyN<^6&j5TH2{Ava4*TM3p|+e!JeJYoWV_8fy$?rmfe0K7=X?Rvcaz% zW_i zS2Y|zMC;gj{dl*SZ50asf=nx0zRyr-a{3v51=_;%eyx79T(veXkx}SPY3x<=yZ}-( z8P0yhWR<)4=qn-|c9OEU>bsRUAKRNIFPnn@d|hxl??%kdH{9RY;IFk?&ROSu+Eu_Z ze)fOoP+w5eggC{oKq5Dk+5KMHamPC$nT;#$J`-~6oKJ@cf)JE@+Zaqp*j_y&bxsR8 zJw$Vk_G@Gp5qjig&qKW;BSV1qE5Z$lxI6GY%b+WV5g4MLfM1sx!rbge3k@$ru5guq zJ2%{sw>L`1%QmvSk2@i!mbU3Z-lK6ugTLo8hUIHR&E2^EfC>_>wy@v!H47B7m>zK@*~YFo-j&G^>L&n;0q?ebi5!IsfC}S2*M)bx2x&n? zgnXLHYOANbktx;Un`Bnuoxa!C#sNOg#YL9|?u325Z3zsA&>9udbW@!!R-9mwk+350 zM&gBQsbW!w3mj+Tgf$^4aIqNXg+MXM)qapC3Ng=nmH8($Qf0!AAKbsiMfdMt_a>IY z_kI(%)mRnT0U9`Kqte04R=^_#7$z+M!(C_ZMC0cg`CxI z)j2Y<;DL_&PPJSoMaO#$*oSOpX$AK$XQ}_%1mOwO=HA}1a?~Tq-#$GWYmUGc>JaT_ z>2bmda~)McEfKyWe^?p_W_iXzAV`&gjL^L$p`_p_R*q$7Q!MaheNKHR=KQ2cnLn?+SJDx%Tn*|PM?f5pVAeJHwkyX1AAR$#3>ho z&0qa}BxyHrBLKkE;zRc2GbQHDX#e-_c;B6N2Jtaq)Rw*9Bnp-T&JD}!J;>2{Vu1r} z;x=lyla@=Am2BSQoGW-*UX5!gLpBbFZO|r&2o_VlN;&L7QOfUq0udYXk(-Z8B9ZWb zT4T@tuCNJC68uu6Zv%u~n$ywVWGUfmIaHByIG_t|-Hq`(_ZL|}1 zO|%jyXq{za2q*~Youct>^SspD@vQtrPL-B`#5fL3>A5g5UYCIfvoNGf1<29zuZkuB z@2JFk0m5{vO|+I}c;Dbxl_B}3vNs72xqX44GU=Ye zg2pi{hOU-sbs%dV6ad$X%<5mQy#OcW#yA$2|KQX`#wDlQ;Fl{(X%%A8^17;#rTog@ zQK;k=A-A{f6T)0WvvIYHsg1%ZLw2{6;Tp@&tiUHvoIFD3u`t->@)CE0P|6{^k zvoesZ@8E+$sIlw0`I%X*lNbm&q8Jlim#y-@U788lZbZvkh5JizjD&oo+t7V&>{Ry1 zj*h=dGmb}Hk?Ie|a5bFoSze=W^Waj4JJHRvGcgxeQJnb!sN6{xKFH?3ttEu{cmF7H zi*ae)5x4ED#PrDu>l{$;P6lFnN5P18Xu=f8;Ns2V8iSw_VrW_f1!}=2aE|L7-w(wW zf&PHf>I=;+Q7o@+7?+kfp}XbsqPxhpfTjQwR!txUiS#N#L3x^(d)@^A$dG!poG$o4&WYnkL^1~Rh!!_oPu;5W-phc^V-~d!g}ru5okxIY5N-79z;Bv zmMjKxibHD?>c>n*kj^s|^$HCvL8YXIBl?If4z%9~;aZefobC~P6cjnF?1AV90UJft zo51>Q4Q6mV3vD%NlipynNI_MB%JobTU56P`UVm}YHa8@GPiPI|i?#DRfq%OYXmH1p zMoIj288C0 zfYi@%?K4~yiLX~+7lt$jRs6gzunX}&8b@C%a_uUcJLv~#pTW$l3o1=3WWh|>#V}fpftne@U2Aa?j_G!o zTw5e%HDR~Z+!0tl<3t$WkszQ39>Bn_IveFtG=TL!PN0rbPmRrI;286aQ+)+pbGhf&&vYDfa`$+-CT>0Lrwq?Km7tcS0v${D9%F6N z<8M-~O&u`ac;#nsZjO#C&Y%FPp~8s?-JTNc1Ei%Gh9ED%B4~ zh`c_8{=_eFZu=T)>fXIfzPc5H@2i~Xfyd~8J@1=~G%{MTimB3wemsG;Z@=8)9FXc7 zv`M{TE(YmODJtyW4nWcmU6~lTQ=6UT`qMnJHUE86$~_pqsq$X8%c`~H5klF?`}r}i zR{cQJ$DN*m=8zCsFnV>B-7$``rLsN%up3T5Gy?V37e&-~uvk(pQ++ zV1sM_VrM=$Pocm!%{)XFh#}geHTYRwY+U?uUuv@dxi&)M#gAS6hYlPX2KZjrV5>7Q zI%!qXu=_zhMfxw0){ls=11DGp>l7xyiYrwlD8V*?Z@WuBIBy;^%SSDcE7uEAb2-Kk zIL!qgNc&@~6V!TQTC!Z}Fb|W~$FRi9^7ML+PFZF!S1{{~j<+OQJ=S_dynyawNee%Wm~-G+C=7Uu{3KNEPN`_Ak(SV`*Ew7d`OrgsL6gZUNIP^=kuQW&#_>DbR)!;~e{(sLID=u%vtDD# z)$15UO3!|`qqQj_srNS2L9@@$FXJk1I2&tHss6ccHY?HWsxAM5Ysj&2&7vm&O^|@C zPpH*k;Ww%>1GUL{8_tnur?-=RPz9sbOO+bwnq^Hl zceho4)%jFwL^Di;-OJKfqC+2x>yb1=69!83rX(MY5+V9@=|==eSlwRBgECsud(!|w z1f5Ptdux`31E8^+q5xIF@kmK99fIwHO7Fjo%hFwk;Xf4j7C(W`i>QP5>66}()NLXe zud8gT`EO+|5?t$@$|DIN@I`*;F3B!1m8+?*67oGQAE~MRM{e15ShCKfz`7ZA@)B*# zOcOae(Ef+Gzo}s+eep<7quKE@s-6#z`XL(P7`>*=qvzlk8f8LATJS{SYS-oy$?b;P z(Xy9aU#<%Bb5)U>Q>?I@sdf^7KKl8|N>Q@X!Io9AHSAxF;P*Nt4;-Ou7yiSH#4Fv5 zoT!oFw{CW5kn`F0d8GaL;?&1-y8AZMf!q4tkPGv3w)p0W(5cCb?$~_u%-F+vnI32B zAQ`DDVSNP+@|^4ChO!_mAg)!!`r~AP1^K9#32K~cosABUMOfJQyjGB_jwBPSmFn~Z zP4_QQC;QS^=WD zAcns3aOWPLLWiA{2r3vVg-Nnr-3Q54=on$z;K3pDJVW+|kx*sY7PAYBVe!?Zwbaca zH4&%xNW^&IL#oNT39e+37co`le#Z6}OpW{|o9ZVTmI*LiWR^p`K9lJdNyy(L2b#E29-uxeP^`#r30>U#?Vx?4e^z}FRZjb+Q7p2bUM-I zqa`_VL#ig|Fg}qyc*2a=@#ORxi;)mc&~zpYnp$YiDC_H$gkO9oIu{%+_-r5U+d5`M zns{84a(CMv=C1SRz~H}4WBqEYfud=N*5$d)1Y;NbWM`ORjR{y8xun=B-NLP6%@zg= zOE#^0MaC)UJ?*zb1@nJ>jnAU->S#eARM?Oy`7Ypo2)L`F+tVs%F^em|@>L^hhzmDW zKei;STVtVq@?qApU03b$Uy*r}g$z;2n1gkh&`w_CCE+o$>V=@?GONRjm#!4XuUmsq zDpAy-b6UK-usoPwd-r=P5OedSNDMrt*fL|Dq+ryxc|S^o z(VVs)@feLNC!0jM7vg$b`srpR*|88g>yP`U5((P_Imq!pef(pc`;v!S=Q#cOX%9aF zJM}2&3eW=yH@;d(vV^Mfy=_EcfZ9+|x_b{$RdTdgv1lYzcsWCu)3Ll;N|1`@EBF2V zd~UATQUZ!|Wiyi;jYYJ8r3;l5ZqAw{KXbCncVEb>-W) zq5)1A_UYSkdLcdt^d^b}aDT&?3&~zuMLj38=gLn8iGp1zoqfqFCZFgkrp9i)od5A>DIKZKIq{3a3;)nc z9~*QKSLx7nj&wN1wIraSUQ{}?G{?B+9hsn+`3>S`(d>4*U!ty1K`t$}|0S72|DPpu zo;261k1KZ;IwNT_!qQC`cxOdow;|c;$@DR6wF&CU!qZZf zt~1jzK3gU(wTq`mL5~|6;IOo#Y+z4fO|Etr)_m8-4?bQNc*1l-^UI`t!3;6q@6k?9 zd8lM^MB;%yZ*^sWizMc=04gmmJ3((ByXx?BCDSQ!_FxzbL$5tBY@I9F9J(Ctr2OB$ z;~?&;ea-b?v*-(%Se{-MO5Bov;f$u+pWLqX>B>l9xJutfQ3Bbsp^i;!S*LU=C_0{g zXjAHqKwyYr%*+rrP9za&ps6K>S2yF$T=F-PwFxyNdP&(wR#Oo^OU&1`M0%A#R#0t~ zU#FaGoS#s#!ajMJDMJ{Eo#QoSzW-_CB45Vx*E`yZ&(;JF$W-KO_69sbI|SViIy*U# zv>&|n{}#1nxrLSfx2SEn_*~Rh(FCYn>+9(iy`3kszd0$3gE(LSzVg_Z4=$amJRZ;K zUk`4PqbI1a=1O!_amJ!LSQ|c9=v4SV5KqfhdM(?E zeeC67Cz0+d2w(6z#5=uRe?jTks5pA*8HZ}3$TyK!fC9N{{^vM2$2m@Ns7c;Pla|lz z33-SoXA*XF#J(olB7uH{cttL4ax5^uxrtS`LkAxJ^=sH#W!AD}i44!JD;q#(M1ew7 zku!9d@^JigF0w=j=``I?>--;CS>%ZYQ_K+Y z2w^>K4abfGuY0;LD`D5emV0hV{%!mTqRFs)SNSKAt@&*4yz z4oX8E=w9aOWdoj^5x5)_<`lj~(6at}4cjPq3k~vxM8%J$C4Eo0Kg4}$rC;H=(8ST6 zYW?Uakk!I9?+Lk0eq_)T(6t_Z( ze~gXm30}^}TeB-tDVlQ_CykB}kA?|titG9m#vXSt{tmx_=HiNP7lnR`yCKfx;89L7 zb)8gBY-QmDs;ec zLC1STnkc}pk&O)@WRAfa2O*k$UApk*5(I~ENR@*g_y1T4+z)O|^ccOg2Z~zeRxKiR z#ZHr7KV!+%7^9qu((}eW+-EoEsm7|6OS^sRZU}J8WnHe)C#`>(Y~wqwI-thV|B?~z zpR~Mi+%YGNjxy7n*bw(n}h&>vF&cB^A2h@ zeF11rdkC~)%FqkEV1M&63P@6%k zYDo(BKisowZK$v&0oBaTF4MqXEHWo<`qmcnk zSPCq*Fwv{j#KRn?n1)U~ep3-f#J9+K3mR3D@>1R- zax=2@Oi3IeC{J!SANIPoLLa$XTvQ|{VsN?H^4@)!7eo6EXZQtdlOi7?j8k|ZEz*Ei zd-5E`BC!E9({)>Wn&4Xi$Taf?c|FlkYP>p5L#7M#_Z&dyZ&-VBh;j{Kf&B^;@Bxql z67aaD%aqK=9R?S}gw?>bfZ7nQH5h2ty{)ml_cURChL9rh2Ge$+;!HH`#2;eXtnO$H zttEZ8id-8B{4Xs4pcKHR!_hhdltmf0=WeE(mg}a{1b1YVU|vf!-70vK7r`yfGp-i# zy~(AtFtSbOFHH&sqsR>b(J-ZM!Q}`KYftIA%$Q8WRMyItye2l~nQQ2McUe3-e}xsBXP` z;?)i^8_1aVzK6Q@Bj@x-nXnu0-gO3F%xDKf9=O`ir_tzJSkPPC!2|>%0VQFh6iIQt z88}h<9ETt5(kYXz*=cRImy#GOSKvGi#)9X4>1~QQMmS)q5&AQx{jMkUNd70L8UEek*3Df&nzVJJ1$SXAx< zA-Y&v4dG#&6_2eBv&rY(hDKbAbCA zkJ^eT&v5i53-)BQM*r}q=8CH|RT7q>{gia=#6w*PV<473YTy3IB(8|wplgmP{bD7; zDe#MzHyd>-Y z7={XqyrqNUew*xj+{xx+QX?;@(%sR<5}I~LJNs+F!&lSAlFrBWQv*zNaJU^^O|?m>>t6Znkr?Cr zM`k0aM+Bcgc9RKFK(pm0xdyQPBm`FCaZB68W3zpFlKUw|Pi`wpf1zLg2Y`-K%2k}Y zubYZrhJVLcz>&Y{L-QMf$Zw+M%_UUs&zN$+SaqFiKSIuq&5w^ZO4^dh8BAY&7Bs0D z0Gpw=MAG^2nPT}j@q%H5h^^AAliWs7gM5Cm`kxtLho`s#(U3>C_&X|Yeccfi%A1Er z>{!^<-iN0;F@!QIGAOc#GG53v4g3nWyF1VJ;jVeq;ujev@2~`Jl$1SYow;xs8tBwyl z*c_msdct^Vcx)lDCO06t_XG+R}u_EzO*^#Tgwjai=#y6A25466W{1Y7yS zSnE9LTWT-PNFD5G;Yq2)as;|wN!Hjc)nXGY-|OBKhnJ=ibO~}UCOFf~>_O2CIRg9j zpDR;R8^_OONN2o65=y~$AOo;28yPDf|8`@OB_R1DEFdh>FEO)j&&y}diKVbY)(CBCsHRhxn zJdwX<7yT6XAbbXZiAhim^e=x86a(EWuy>|nt}QZB6cSgY7kQmU&!v%_@%f4JA0@_1 zC9q2iZ%%4}0{{Y90P=_?8S00f+vt%PW>3%jLRfW5X$EmKrHaARVmq2kE_lK#26s z6;hL=6#}yg#5bba@hi?IWQwyWjRhp>v+-j60nt$&UB5~r?uR?0d6jzBjXg@UaZZ;v zP&&}gF^P~CWI zT>=U2>3@X{@BAEOnR+!KlV?!$0f7zt&y^RzT)8ps+>V$g`~1!3e+5e zhv}~W7sLN^#1VkztIqY(X+Jv``m_(8|6eQlA51ejM(=S~O{6wh8aPDiXpkrIZ;d~! z1xV#eusZ&a2IOSVEj2%=gTl6F2khv5X?i7+-QNzn7DX>up6uE*q46L14L&Ie*eI|% zGmW4V`X=f84XSZ`2JQbWP@ULTZY=&Oxflof%yUi_>mLp zU|Zb9kiHYIRw|;MjT=bJnlD?6xod-sOU+z_SR3<8NPK>N>n{oc6gm(o>j{>50dpL~9W=dk*wg7-^f z7XSt>#b9ED$?wJBJbR9kAi;vScIsBg%YL3x5b7b7@92MpY3t!m=6{+2!De0D`M`Kr z)wgMKMfFtLpopVMHyORLtf)4}2m>@>oD2P>!ZwUv%0 zpC&WA(ad*?>|LEV%E(5h|FY5z5t|^R)sDMq{6fL9N}RuWFTV^BlAm0W=)vs?qz6v< z&GLrB>04x{qn^|fc~9qry=qYS(n%LW;a40%$zhgpvUF%|eh>N*h>5ISRIjva$+0U@ z;{AmD&M*z!u^Yi2_a)`}CtA%r-BVRz_tOt#I%(2|3=mxpgbu$c?Ybrro^hBGWFA5U z$uv_5<}?QwppnW~{Ew+NM#@OsZkq5K8KqIR3tPfAkhdg7u7P)7K~UL2*SZ|$GhaSq zjfCg`2|B3{5QKf{@q&onD6Z>`aEt9sZb=y65p;W>)2=(=Zm05k<@k%Hn97GSj%Es9 z)RQ@13c!RNc?@B6PkA(N%^i*d18E~;CT`yG+~Q>KeBJ%xqyY;Qa?Nf%f5!6e^F=gY zma}E`jN_Eu7G?KL7gl&5mfjvw6x`YYz(d0UJUcUQ9w3jv_2R#ur<;D)FE_3bt*U3A zefgmolnguy-X-cSCDW5)QV8NO&PtMgT_ZXd zg&xhChp!X)@#+!78V@u_x<-CT86Ix@N=sLvNx$E^-JtB(IB=RgL*{4>WMCeGGyI`r z*EV*?()7Ov@|io5MO_Y!FZe^)#^Q>Utk}0|UUG9~ zD8;hN4`XXTa3gbe18EutVq}Z7VxC2=w4}38y7`_^Vf|KHH{Pz_C$ivp8($i+uT9;J z0W-`u1mCG487|A~-qarv9_+w#x2yz7133bEl4cNN^6XbvQvc4zTdV7sBS&sy__T@O z$}h*r1=3XF*BDsGxf`-fV30HtWNRDh=%Rdjfh3g2)0-PT-#NC3G4c z?hO>a!MK3dS822{)U1^A^nVqu1O|SghVL-XSN#e|9HZ<^aoV1%%r}SV{RK8pQ2Ou% zsS!>#)BC^8HdNnx_cFwzYH9D&SONao-){36JtI0!(&JrDHNtRJ>vq^1(dZQe(Xe~& zufJhgMWgR`w2i;CQ0n%hxKoEAbijyc|?lJA8wd95}X09_6vJ zD-+42xrW~3t2&XOu6AFRM0f|NkW%^$<>ODJX*gu(%YMfBo}laIliENK5$U9d^*V-~ zWGG!kE`-tQp6ao8zJR=GJu|~Owsamm#s`B*JAj(2ao41yFU4Gx(?6BPxXm3d)n-b_ zg~a-@xxJt)p&iw|rXjKur{jB4W{%$y?9kmOc&HWxRC)vp`0W3N${L5BgKn64!4pxZ zm*wARz(&(1jP^SWB%Ket^{lg_>6jzc!XQ`QMA1gx>r?(gWv97EA)6?c>=L4^tjz4a_ud?3 z&tvZ`4$i^vebx8=e7@hGKlCNWmZ^o+!VMv2jakP<*VcB;RLveM=p%c%$3V*niE~%>}QP{q5UhZ8Mm>n zg5L&>1hw4)HbVY0>QT7Ju0TtDPS%esEl_L3A@(Fd_cVYrBZMO)n6!?Ig?NiIoBEBmWRmd{@o#mqz^aNwypouQx_J_5^#qYdKSfLi^ zN8m4g-O!StcJjFsaV>7#FRf7Y0|{yHzt=7Rij6hgujo8l^n6Ccq**< zkv$-!_S#AJgJ2}e!c|Z3h0mhol zP?i~Iu?Y-pxA#R3%Drx)RVMB&9=*`f?cVhH^hyt#`bT@@Zm+dNxz~#G?aFK6EU(;V zUANonghfAY80t0di=S-@p9)8}EQ=@}>iyXh$nUSA;rWtBeT+(L3==HayBK)ytK`YL z=loco$iLyj)6p{+dDs`9|4tKnylgbw+!lVXU0mTJm7W-==N3xK6=pKh2WlProQ~mO(aV1iIiql|Lx~zpt zJsXw(A4o^_^xvleI*v6;m}_%Z{(j;$DMmG?MEG|Hej-AF2hTT*2V56`g>@i_-^+fSTNKNDTb%Ygh>sK9*cW9#w!d zq57&T?e7bi`*-+)>*xRh0eaWv4M;xzRr39P;owo`Z86CC_b~hKj|kzX|6`Q_-!x+U zEA{z%AY>XZ?xeP&5_XbHG+XJ5dk^L`<8fw54^|B0Kv6g}Ah?KcHCdJo=8P`yA$JAH zBYYzQbaJiSPzyn(=h}RR+ND{^-mGfeLnr?Mg1Sj?Oj?5>YCa@ug0}LLkn~ye82o2e zp8PM)XNwo0Wq=FrdeYO_ z6^>wA44EsE;|8pPI~O4z3eSwbRWTS9OwGD35`e)rLIt%6erE3$PxvAD&lDA%o9u34 zW9M?MM!x}rf3LQXaTZKIn1FTjzpFwL!5oc0fq{;8QLJVxU92eDx36wGSZvbydje@g z&$Qx+y!k861UA~dTh-UPc>R5;&3^{COfL?I9rK5(SU@bsH#DhLZqw03n&wwr(uRqFf zD}XX@UiiaL>}HGD9YYSpbCr^7_K(KY#sFu>ai9 zP47+JERIVh5bhJNs7Ma{@l>nYlBT@diEiPKL|jKmmb??3HG`Y!qrfbjLd@N1zy`fJ zv)}OgMiCIitJ$BR?^sPaq$u3y?3^Tm8EtDQp3<)VX(`)wZa6BI&GYWYTw8&ec)`8D zX?Al`h%wr~LA|jyUVYAwfy8Y+{AbSN=|9d-9ahE<(7#un)TYEttbKEinW>zuXfKoG zcX}xqfBV1NAwnw$6x(#){DLa5ys<1Mh<}q914bQ~N(2x`tV2c$22UgMN**L=n|S8w z$XbM33=1a{K;6$!_Da35BkE^xt|e{)?tC3NuU;cET#)$B>EdA6QL)#OW#ZO$v6$Q+ zH!;;C^lwn1a35A12jm8&Vl82%%%;W`aX;WcJ6EU(DZr;5D!XM-(N15@MlI5!<-HY| z-`ISCUTpFd?Q9TVMTM?@^x;oR+PvUm16UFXqB^+itD(tIGrUSD%Q7$gO~dHa-y7tX zxAp{X%y9*K`~mtJ%lVsGK-Uu;Bt-OmjlF2k<;R?TH1ShunMh(QwN9%HeYMWOy}NGw zMHnd)(^pBMNM%meS-Fe@=c3~{aN`6)_!7s@11#9xC__&|AuW)pTw1}@%^x_%hS6Dfm3)>rReeG+& zERBn*Bjx!}P$|dYV=OT=x@*+qFq5mH*@(o>B*EvQsY>+Wd~k)a^ZBuJu|)UlFXs&x zXPdpO@%$C}NPU_@GOQJ>%!c!_Ij;P2o_Xf&n(EzZV=KIEoXOGvq^M%|6$*>Oh$Ue> zi`MO^uBhixrNMVsz{;-#Vi-8q13CC;fo|;{Iz}IEvDg_-w0q80G5(M;XjI?(ysvKh z0z7B@@91e&SZl)K0tqN4uVPbvsb*ucIS0a1FH^10&Xk^e&DooVH1}BFzJ_@WWh(S0 zjDNMI5|`-QEOV<0h28A#ykd<8kJMsdzzo>jo~o>b)PKlo3Cd0|d>N_>m-Tw{eBM@m z%HhqW*Yzof*cw zpVdb*LMJ{)W*;vlM3LqADA`yd2<{sxsgE!~$L!y)^wGW1W;yj|?l+jXZE!z)T}-$Q z7xt~!`H&hCV~1GywcxSj`YsEAe6_`De4eRSe z;9`~84vZa7pgwLZJ8v5)99Eg-riW>(bZ$C|Dv37Mk%5t9i-z756w(5@>*#QjxQt}h zo;__6viP08M@`%H*Z@ps&3Kx#uq&OM?XVJArN8ug0=nQgruS_mvi?V%p0i~~LlG?` zc_m@G?GM|{n?Fi#PR>td&P1x5*1D>nzMMt2Hc^Ho#5QSlD7rz4&L%@uZ0<}<)^Qb0cLb*CV7#DA3exm+6G&bJ; zIK?PZNJ~GyWR|iWuxRh|wL}e%kz|Jio_V8NwZnlTrflO4(IrrG@O4IIdon4h6)(Do z7nUU6H)KL_xY4+Me!BM5r{@fZ3inG~%sE4B#z9Om3^Lch3SdD$FY4mQeS-UX@u@gX zw4uJ+0FKqI?1CHU*287BUib$My*pTr`tL}yG4uvuN{{6#43BSFw%KIWd-0$mocG?6 z46In9@ul3U@$@SF*#ISv;LvR_F@L*MVrSx-&9R?X{-^g-5BY9fT>=We#OeVLZ2YTD zyI8gUv2#mgzJ^lz?5Z{YL3$*g^tw_w1Cww);_R=EB77CnOSE#)YnQX`YR(S%kL+JK zic!mpk@=dfK<)(Se=i?@HBv4$?eD>wVQuB|H8|aC)j*NK{%>IgQj-H6q`=QaHOl8k zvzg0`IX3^GfD=^!1l5|g6L^nsOiIsZN7$*S8JyXGnpL$xt0IfbyYjE1Qt1^d4J86y zd8sZ;2*|Ie8oDwJu6os;X0!M4xHmU{n=Xgs74LTTbS@X@e8{+Kyck_^Sy(f5@kVBH zkjWz4Oxmhg-?lb=liTCni8lXk2wy{x)eSlXsEEgoVW0+`yPnzDh)3W7)tI%+4v_JX zB%+*!@cf@#W47{PzGrDUu4yt3GScX{#@NK3^6cz>(=30@!;(aFCUz=nQf z(qbTC-#8u|7c_{hgg(0=sO<=ZcJ$t3V?y>CKj!py)VhOz!k-!bsAE3Z=u+8 zJ4f@9R6~aZt|X4Q_-^8jW8p@P^I-z{uH}!lYo43p-HVsHvQKcOUS7^f_Xt)!4&DZP zh7&PD@6s1x-qf}%Hs|7@%vuG2AuG*EfnA5yfK_N6PJ05zUbt-e)pnv?>h_x>eX5rX z_OIqe2*V^3u)gUq*d&j$Gu|wgpcK&zTZiN>acCXnNS19_iN^UuuRf%4hV6b-OJ1cjY)pM*mqjT80%akHO)D~O z?kmT0W7fZIjBFglaN(!7V>iS}vZv}k#pE>VKo^pMT`&fIn_MeovA@P1|CgqjKMyVM+nd`>Xk7FSmc-#13}z)y>1bNaTc! z4gr2c6Qi{P-jxZm4pzm$B&=K=bIs4j08VEdZ#W?j-?X0rmPmBEhqDfdH{?D)^{Tt5Ndqe z2!X<%u65NCv(^7;0n7?T?`7lRFzSOSgjZ2)Y@Zfij!6-}heTT`S~1SR7R`7J3>(JG z`bJnOr$Bj!laorovcq^-)}^A>$?$4=>C?yyPzh3Wt#O#W8)+GgLq1MO{MDYNNMz#H7;OP71U3mvgLpEE<(omfGk^Jl0-4@M? zqRydq6eL3f*DMj~}$k+P-Oo4NF=5@^cPD|@&K(9R*uurXidiZ&+ zq2p>*P{C;j<_O(q^s-A)t*|oDR3De!m3ncNpUpMYBzG-TpXij?o5Xg=E!PHi=+#9E zR4G&%`JE%%U8BcBWHc<_S3f6PCx5*e$%qp?tnQyhiO32&+PBYcqwiw7nZm%9Y=PU4 zB$Lu+w$JvZ_sobS^Di#@JWvj|<$xeUvn1V! zY#^8yo`Xbaz%I44-7arxHAa115$kWDj6yZM{Lq8dlxDpp95gcZzm2SAL0NQ_f3SZt zwNnP&69p^pgu;U{Y2KBz00*sH{T5NFZddCG!MjV00MhxmgU+Z9ejM?7Xw^gl#Dt~q zE!S4=K5lyS%z$c-%l&IzO*HXXu8bG!qP1GP-s$E7TGgD-i99JyCkkOt@5z7GiJLkc3 zONwiwkc`wQ61#D)X=sX*Y_eorTMAu*m5SBf&EKsT7jJWpp`xWUoz{`%%hwndo(-8* z7lu_Q1Rjx+FO}$n(0L0SYcadP@F;4H-Hv%T(LioV9`xcOdFSF)7EHdOO|r(Jy(^^B zkGff1DjzuEUwRYBM{n-|y)wL*$tZ948^%g0mou~7F_|#Ly2U5kA|!7zNY=We=X_&m zbL7u{P}(+;S50W>R-J>F4kFo6o-6gr$){yJYhU00>3g$3)UmPaYkAz4H|W`I4+Gnw zW!sY5JcQ3m`@eo;^HkL4x0w~3+p{-@Cc<@_FRgk%yRzyMMMS7~f9g@cSoumB59US* zrc;-^r%8VANVQJ!^rY>_6ZqA+7Ag>3V+}&_u6ZU>kB)iR(izqmF&SPg=$w7;jEYBP z>7)+aCjpgq$3G$~R?FB1NR!-gUY4`cvE@g8y$Va&Ts$NC>Y>tjlZGC zbWqqD`)X;)mF`Hj>aT>b1X;}Vz5hKa1E95~hWcNxx^QnD@sER4?okK;tu`nU_Hwp9 zf8wV;pgnWwVsr)=FyqOgH8Fm`aZ<|W*^tK?XpM6Zc#z~?wmcJ|T93JJuhp z3XV$kd}oZGBz9=O1gTDggo1NEeGSCpXK(8*(8+C>1nWqA`|}Dx%+a|OAXTi0x5W-L zbfUPD8u&^7-|cX44!*Y-h827g956bQTtWPZ6dN8%0Ds1xS{U9LbzlC*VHT#VW=|1N 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
jesNW1oZnN!6sWhb=&^5FW$Fa$TC3m-V@ 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%0ARx3e#^u} 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


gxSeue`TOqSxn1Fc! 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

S7_5}NdP=(gJcakr_b`@Gl$zm zMYggHi;EpBfHVKJH$T<@Jdgs7=~QKdDMNr?0k06WKi$!pc)8{VRk~E;H zORps4qG46bK);I=r*byzw)$wn9)8xkd5Dl69RZw#1#&t|lPn}yTm_@O!ITy(FPok4 zvNjzo&d$!dwqY}&Hc;!Sd2qbC#zcJE=$dak(q=-hiSSSXm#snc?0W6jPzFxm*Acnt zSfqe^SyQe`2TRy*%QsgdCLeI*tOpMyZ5+urn=EPKGuwXg-FNU;5~XmN6NEA&$MBa!DI9;zw>?2pf`4)(MbH8#wxl8Dy;c6Tyz|$c!F(g zw2jXP0oFDhw=n!ft+Ka`Q)U^~V|idO)L^DL6m+FTIa>{)G%6aeudXQoPn2Mfn2{XU zuNz6t;$Q53r#O5rt|F5Jos1D^$dOo*$N5L07t8o``Vi<#3-z73OmU4p#7_34rh)v( z{AcGS=*&asumY>}hTOU$;|C&z0+K@IAXNkY{%6XsE+c)zXW%lD`SZfGxBO^u z^Xk&y>03kQquqfC^zMmKSi?%JTPJLRuZ-&>yl|`+$)rIug~K?J9y}NW#V<{IJ7xww zqJlmFeMf=#zN3cz(D5RD>9Hc67zh2`AOzpTf1eLR@V(DZRZRFBzMZfJ9>Lqe%xDh= z4|tHg0PN&ItNt0k_0PY$staJPKyntqpS^tPxp&b4eEYv8s)1ZIv%R(A=?WWRzor#s zPbJVgfX4ASqn&R!9>;IAnnD~fwnGj_TAjdo6Jw;sE&LI1XV3w6IvHqtcfyW&MO9du z6CHG7qCF{<>I?4Hs)&XL3C_lZ|7NwSfyqr_btQFZ9MMg1IP8RUC^5E!*aXoDiljwd z4hx(yAbE*h^|r`x)`WJ<+IHdPSzB(n`XI)#-ZP#gJ7r|D* z#h;cnpxO$Z9rnvnI9rYuHRjnU$2eOS+Ixhd^AWliN=D+$k-MfmJGD`IAPMvLbXCrl zM~ymR=42W7Z8_V;$30A3I#`m2PVA$L8f^+#)0gm%%JwpI?FWGTCbAJA5#izZx0AOenvef94D#E=jpz0_^39!$Fxa(CZU32>)c&IY zeA8fwS*5@oOeN>`NTW*#x_d+}qTHD?* z4y2O+*o1S~*hx*JR)Yi9tAt;<#~Q11e0pQP)r__d(|L9xVgZ1Y5UgMrNXvuq_;G!% zo@uOx);8rBFlEA@O>E?upA5hz=-UtgO(1}fq`N7EzXtKAc(&=cE`D5So{cYh%OHepx~G!pB< zzX|{kE`XmMfX9!YpACQ~O0j+v08b{trvzY_ga7o)Uon7^{P#Zb_YZOzoc-*hOCP-Z z!u#*Mr4i7D^|gw2Fw7hWz`Xu9Div4*w~aYLBm3%eazLg7t_Vk_~<~X_^>1leS~=D`$rT-TW>d zAc~Vy=7h#emJI7Pu-h>Qk+4BxfG?K67&vEp#Nev@ggRyfkwJWp{QYXpgd%p0I?e`| z5rYG^_^9o7f*JzO>MrW-# z=JZ()69n#N>zi-pP^(nj-rm|XisYG_j*xc{fWPL}m6f&tUk8mlQ?LlJh7xrCm6xW1!A2a!OQ)N8>%=~Q2ezzEeDL13Y z5trF7MIxbUlUIKT3HwJF$lg3h;reBMV(}5)NTr>m zY#t7T{;o%&hle?)l+a750RC5Hz>}rW4gfzJ+Wu4k{*wuS z{sr+@?hliIHNEi0%OC%p;P0!ipTGDB4&e31=AIcC9Rt9$Dl+|iiX$M@5H=hF9DxhC z1;&84H2WCRCXOSAYT&-@X7CgQ+aSUrTW~Pg_VhG3RXV0rCurBf-ZuJF9Bt$AAoCD21ER?ex&}@elm`sf!Vc4ct;^mH^Qb_7Z0)AOuuO$aypGF3y zTv*{&dmWbSB3P;LtPRn+efy$^p6s;_ib$!*Fvj}2mn=6jQ#C^+fHl_e7ckth(E;V zkCJ8MO{;iuKCtP>_KI}0WSEzy3oRTA>h-x*p@Q3+zLmX|8OIZB!Z)l-**vk>1%_zdtnZuH7q(Dw%x8k9!j$m zmy*oQDkW8-qzy_&%LH*2x53(Qa8Np!B^y34Wrn(uU1Sr&@~qv`&MrBW*bJ#}Tl12U zX*rH!`-c{ZEsI_cd=>MI8(kN}O z!22+}ep$SLi2~lrP`Gug{GYvZ)mk-M4OVp*V5M>lqO^u?zfGYGxII{izH&CeeN!n< z-U~BQpQ+Cp0!{y|iugE1Nl{ZT=!h5oLOj|O2E4keNmzotH)n)Zo*4(gGlGL#> zS#RCV;|r+^-Id%2Y_$-!z}RXw+1(%)wE)jyQ|CB4{PVV<&iHqJBwOo20$L=H!B(pd z2+o8;Ynv6e{Mtb@ZATsz^343#)>-h>=kvLt7sUoVKk;T^AJcNKfRQp2E&+j6+zuOe z^6&YO$*EIrd_OHLG_*G5+dDq?aRh+n>HRf>I~i?(9z?kf+n|`MEcw=FcMGR$xEpZ) zgZ!e9D#cO3-MbNd!@~QEz~2p&ADJZTW5XvW0b+fzpH&}qYkCae-SP~dZ#l_T6KqGjUIab~fEU~#ED!!3 zTS<6jD3$BV#7f``7alw?Ja_^CyDF>)lSk0c48U)Df+&Y8flmftONRd^24Is-2?5qs zsK4&r`{a}R&H{LP;j@4D=6`|%>Hqp_nG4{#H94~mb`XvMVD$%TRVn6Vh!--oF_CrJ zfa9=EM$MoKFO#X1LE*ku0~3S?9KmiEUBJ5!9*D>CzL_Dkb~ZSxVCu1A8VUh`=piFI zD?f8BjE_|t9cG(4Ah;Y>gK)>qdrGi$&(5Tib}gLHE+wj%j^OKImNbzV@Oz+$4D3@j zyzF!*;+rrM~aBv=m}It4I*+_At+?9Fy*tH$OxMwb_`S4Yq820m!vR}1pm zToZ6v>Ngu;_u=%nO#qgK;G9N34|X7tYl89i_qFXdr9$X*VW-bSU8>OBPsQ&><|1<$ z1z^6`&paFlz+4{U!WCvF032z><;vW#mzxdh(!5N6P|;MrN?iDLB(9Skw7jGKM-Z5R z=#+_=6C`RRK;PvP%eesKT7h8Uu$j=>7N)U#J~!WWsP8~CC|7(HX4_!2gvb!eDue)| zRXa!Vmz;v+0_MZU;^xIA<7|gEt{Mvl0#9;j7?DDo^68!tfK}O~_`AUvOax&%jb3oWRxB7(oG#nATD=H><>xaYm@-=6`1)q){++)mX-P>&mS$&fhVjt6ly-mH{uE48SMM zpa;UBJtX-0g=1Qg9t;8SFd;lQ35 zw5Ob5M3Ck1U@M6Z3}UcZ2xACpN6}T#u^>$%JtkyP5REsgu{1B54q?r+M_3j@qfvI7 z@T`Lo9qp`x6NUtr5SLX_b5Ds17$#V1xiBk-4k(Q_WlB(~&Kgnjl4ZZdOv`^2cgro@?|E43djEtZzZ(2ubHO;YBJZzKtp#L4qwNr%kF z-fPe)}4D*erl|Ws1Hto-E@r2>cL%R5SC$ zw@{|O9&bgPdJTF_Z>SZj*>izhvhwNCaNhz4t^^T=8nDCG<4kC3(`U*cj;}s&H^B4MHdWMJxWO8xwbdf5 zN13|OUq$1rID@DoPZ^ecuT5^p5sd}-&CG??LYp{m_D7?M-XpC6t%)-3J3{y=^* zwZYRtrh!f-ISAzZausK)9ic4 z^f4?9gg+0ifk*N8%FwNG4g?l}Cv1SPduj>YG-xBj8k>dn((nlS#S`DgVDPbll+T~k ziu9!&L3_MNUw(0lJj#1x!m#dfBkVR45@AmS;Ysj%N^I6HLT?Jz7#q^xr~vDi>Z<4b?{>(|~#2VpW>3#1~MDUHB#4Flf&uPq<3El7&LYp5a2I8RbJBg+d` zJkkOIZszlJBH+QL$|>R4b4g%f2u^BcP ze6YOCn)~E3x5L;G&(gNUVqR10uw)3aV_RCD^%#}#mo5r=&zkxrJFGVU5FY`67hO3v zOMaJ3YF7zCnx&&7V#Pv6~^7c`+$pc{uE~05t7Dm zr)FV(jn$L@ch&gI1CUwABLpjG_w)gTUj?n2-8_(Fz~15`9p2g^LJUW8sVDeAa~{Be z&E-SqDW@s;Xg?2|P(5C6togj%^24BGio6&dytg$q#a5&iiv%=Y5|>smR+C#+Yn#JC zpJY4Q;$kzR{~?hI=gKrkuP{sP?Cb<~I5_vS(-8Gv)Mf*@f!lEi6EhjkWPwSX%4*IH zcCK1@j}l7r1E>^yR#L zZZ(AYv(R6kr%vtRsbZcd1F#o=5ly|JAtl9-ocZI?{Qf@2&#^4z3(FV3x^^4#t5;vc z`WNBPY(IkgcT|4m;hZBx^qAzyf$i_OFplYkNjX?Xhc&(l$ti>wm&S47xHm_E<#YmH ze{cc-pDKrP0tTOu2yH&NfB*hO03Lk%pAdje_~bwT>7Rdj6`c9M|BrjbUpRmt{KpGd zrgwKgyY#_xFTepjn+(?iPj1kGFa*$R>_IXB9ML373RaqMaO9N& zLoAsxZhglStS`QOzbBW&9YuSRDgACdmU#s?&}&QH2a=)zz(9v!4Sh*0=pp+R_+VvH zR~a3ZSutiyptL~^!ayE0H}Lf>95zj_9TSz6FeX`TD$rhG#wH8gE(+XfiS9CyFsbp& z2a6UP3C38|YNWK8MeEPYv(`VX%$T88Rye)9#nGC`yI13kGPhLtK z9UL5$NPIQnOC?w4<(lhmO?O5~MTticXZ(&6NLkfsa36K3AMY{i2^;k)a-X~GTBue% zgMV`bqW#F~uN?Lp_&%UsB>TVyZFavCf)#M=z&mm-+Xw3f4bG+gPx|S;-??n^X{)8r z3k5z*72-DpqcV-(`ex?c>8=4_rvu0&F7x`WR4SXrVkQzrXr%kaedI z1#BUvYRH#Rn>$RoSc5iGP23WWb$B%J zjlbI6J?jDBD+3jPS4JRs7=L%i0Pya!0Ela*PYuA=-8_zA0KRZ606%y}1ZE!A zWB~r~!*Kw790UIH{=anq{`5Ex(lY??FaLb?&%gM^Z~pte?>_nD%MX8#1P<`u>D~9} z0DkqAw=OOj2k?f~YEA%PtJ7o+p*&4F29j5b)r^{u*5z3k7Yf`W0D}cI^D2hUb81CL zuyrFLld`Y><=ia7zEf)EgkxC(-1aVnJwK6Y)tug>cF<5Vgkx28P73(ICKyUyq*V4a zsUxNe>2d<~u1w1U^svT|Giv@K+_C;x*D%cJO6ygUUmOvR0l-HG96K*-MiE}FpvYfeh)~r_f0zAfI(V($3}nFF>Q@dq!~*V{t)2XQSln&Jhf`e;(;vujKpr&8W*tE9_j84OS}tWl z>N;p3wk(7rNRgtgR^i+I!nXpqPxik}(HB){rsS9T{S=0@C{u!V`bLD@uzn{~FRpC^ zU@P+UF=ih*%*yRq@$ISama$W?6$rQcq0v|+?nNWQ70!u0tq${hsp^AsYmpKABuO{WZEe5}=}?MLn{oaeo?y++jux(5sUDo?BS zIwjOgQ<0G*g0Dke*2n_Tc*#p0Q3;-YFNOFsTwG&CvSX+@!HUxh+sgjVr zz@AEm&ri|F@Z*-jo(1sLs{=dWF#s%ohUv3>vHx*T_rK4}-TvUhty>EVZ@m1b;P3nY z_gh~rA7#JK73!hQLHr#6;2BQ_G+ryVDtsO=gmM)CTsJ;_q_DRXgPToofjs|{LwqWg z)A|~g%E^x>PdJC}d-OL>KZCO!RJEyJ2bZ??+i8{^+6OBD2f3QWY_!XI+A0U7?9O9d zQjA)xEVsehDwj1$9efLiF>^)T53EWG!}!6CunL!~CW|g5pfOsN*yqRK=z|09Vl@c^ zJ`th8DohqKJgeOZY!_B371y_ms?O5=u_3$icR;UA!sIN;HLS-62mf-w)iP{R1ba-L z85(kMpz)g4qYRJ9yX~B^22;V&snbXKZ@~YAn_pfjxJKXr!U0Z) z(gj{c>HSm_oq_dC@wYx_;OPSJ8SD2kOIMxXpk`=lZM8lZjTUkRl;`;Uo*qmig6XCZBnNRmMflCgTRqo^A48vub zMH3T_k{CaH-_{_m!)9cCeXb!mzE$z8lD zecUrVn1oA7raxbPOZcy*Uorie0Q}xr3%;KG$y>KPmA?~u7p6!1j(!3F-|{SlZ%vv) zpB{j(4=SNYFnFvCYqSmcX8_<+bt3(h0QgiotiJ{TLwqFw%rAukhA#zwfB)i(53VBt zYvJt6AAj)N3+LW>{rv2sY%Ne&4^8bk^XE|yusMOwvn&m-6dSrF(iR4JnyOD9=lzI| zpreSf#|GF4vD6LB{xZiF?AJ~3&afV9D4nA{qR9$;uUt6j#b9F$RurgNX*8lK85L1Q zI7e19D*?hi6v`n}k@)LuhRaHZ!yOI1=RmrXVEwA`=BTzwcdP0cUKA3Xctq1rDS1FK zwDuctOnhM4l@0_jlmD6RM2j#GBh4eJv0BSo9Ec_Fq5$FD2HfW}?|h zi;j>If_xAm0Epd4(q)u%0!1A7H6NO81s$%J)dVf?fxxi;f>9xN5=B4k`NfYO?xa{X zh&i;}yD=30R=d!@^|bQWbRRLBqU}^U2c3Aw0KG_hh_dAec&AP7ZY3`VBAk$52aA%x zeY7(4T^l(}FNlYR{wH@>IAj5RCbZ_8pZ8wA-V@}_hfa$Zghqlf$WO{NVDRBc#^XjZ z!B|vF;Az9*np(&rad5BKVW;5EN zDguAMzPh%$ihhF4%`Ji4N~N;LN>3mA{x(tUxhCKuUuu=A#z?FFI2u9Xlm?YBd8QhJ z5?UUcM45pz6ki2-$MfXyB%MMNpqv*Fg}LFYJT+06lY*gL2{i7S4IlEA*S0A!w(%Pb zcR$2D3+wM(9uXY!tOg`Qo`xC0Dz?AdR6qMn_rlCGn16?d<6{Eo=hdG)MQwIt?#`Wv z9D110iGY%DxU?+zi}cA?&%FxyGt|!?TvGh~%mDEC{jbTwI*|eI>W|&slL7cR60C8Q zw?;Ae%87wk69&z zkN@sDCUDFq%fY}t97vkLF*tv|IqX0Z0N&f;nrK@IFkZ^$%xsPX7zO6Yux}z778u-Q zW)9BHc=a@|rF`Yzv#(Z01 zgyn(auQd--tObHh&+q{T)EZ_fKXD+vv}_w67H1cYmuXhD)*Np0!=%AJnrr7s3J+uOy)H*?=0z%aL;Giwmu zv^MEEh-4~PXf<1cK&u?C3UE#p5laDIEOdv6T%3~&9`%Ng;|00iQw1<$0V>2K1B?rJ zB482?77V5?|0L8{0}tNVKusvoY~zpA6(_~XYA9U-U`yTQRy5^n-3cKNa!mkn%jZ}NCv^+W*mj}HMuifmHJ$?I%*373^c2t1 z8n1(hS$P-bfg8~qa(~Lw3cC*>U zqOO0L{tWrE=^n)T_vOzV{yV)eu>T!YK@S4(MCH|F03Q5T)6b0G^D%|GEJDXY+O{0R9vIk}~bjKOz3A|A_dz`|`(^ z{*&PEE0?b=hP#1uv|ikJI%6BWCjzkG@6$a9CDj6qqbOdFGIN@ggAFiLDg@vtUX7v! zsG%vt!r}9z z2h*jb!QMsFJ(M(&kV#Nh&ZvQ(vxv6j5SsJp#pLXAa&dOaMmaA*z@=ktbR#YwXa?|- z{5unOwanis9kF&n#oBg8t~#r->vJxf(Q}#I6x5s%hZUj`m>pL4FPrwLe#X>*#Xm7M zdG*ZE28w6ee?5961HCNz5k*GYlm0W$z) zJ0PMUfB<;?FaDEner3iOfvpnDc?o}LD3odP0tMdKo}2sTaYQgO1qNKmdCz<%3R*tB zZa3u>e+}dg8(O9#%ddIa&t(|4QNP>5z6DpjT<$^)^Zi0JUx*T|ggQ1ct!6_ma-!x0 z!;#K0wYG_M>*f?2hXmX=HbXejX6A}G(9X>Xv`42H9uAmm-D=(Wy_LPar#|848_c1Gw;wc|qRJMY z%Xt3EQ94(M%D0s&ForwM757|2z9C4rc;t4N z{;clbS*5>>-+1kJu>UfB@}rkucI>}H{lDV@*rrxZ$lcgIi2*w(Jh>EjJpcWv0Biy& z|1tnQ3H7~-qb0WhK`um1UufBc2zzh8Vw{C!aaD0k1k z_c1$w-+BG^L89CCA4ZCsdxHraLjXK)N>b)2z}ixwWRWglAp{w&isrbpA_XP`j?#>A zczDP*b3A#O2@M`>>dQ` z@G@h$lrTkxh8Podu_|7KR;xrR%iV2~_NCC0ra@W;Lmof$ug{YBdUgaL@SilQ(HMGsqdXniR{*fe8v4;}i&)TuLW-=Asx+uGXN z7L=>6H}is++Vk+l)G#RrM->B_J zm~T^#ol*JMti$FM2(fTcfkh5%>kVOyLUdsv*v7nfb6c2i2*w)0J-JoDyJD2r6N?~DUITj>ut}(fKJ4ih z%*j(2Kf@3f#rzrL=N{}wi%S=8UwiAV*I#+{+&Ps$Yx))AC$0T=`osuGQ@${^_4n+q ziQWMEo*f&F4~GxK}JrCKeA8CcooA$IL`w0n(*XQY}kMi}G5MOg@5_32BlP zT5(@|pu~AGkt9@?ILw8E>lHyqT)BL@h>HTSIKa7#CG#qa$&fLuswp>^tv zB#tL=A0g>KmrE7w+9FLQA1Ee@G$O*OVi5t0a<$4U zxd1z2w*2ad!^YXapGp^QM57oRH{>$c;i_Et!op|*FgsgN#Uev!gxyA)aeDB8O_)Rj zIaBBeYEp)HSfD+)3ED_qb&;moqI?n}7 zt4iKHfk}w5X~tB2F2p-%b8BmF5496t&uAv-PX=Ib_z$A@rZ$ng2N_&M_-~q#+;X_i z%2mI-eDT_~%SeBIAMHnwUzzzc=jOauNVv zuzAo|MsuK#2jJtDz^C&e4Fd337t#p;{NX47HXbA!hV|XOPmc%SXNtob z|5v;K{HH&S17Jv>Sv{!gE7T9t{`->7pBEP1_~_$H&%N-%Yp=d?d3Lc}3#6lS+m#h3 z0c!#P&)b?ZI*_JRgY{dKVQUa2msa(4_5ruz=2=TKa8sVF2;)el6nymuxiAy;Ef4lT z$r(ZP&S*%M+Za5$40h4i&ZKKHadr&4x_k=KJp^VOAYKv8=nlMWpr^jL7e`iNbioB@k2)IlnAL$x+QMbB}xVc?E zc(ix`E778H^lEp}qWydLE&WFc^P45o-bc!p)og?VI6;tcy z0{AU@9fgAQDXfND&G>peK8K7-1U(8^5!)f4b9%z+}fb| z*A1Wixd52zXSw?~Fmglf8p;O`;XVokgWX>E=txee7q4BW{Q2DbX8)_<&mVne=f$Jx zS7W75AizUdde%&x<)gDO5})O7O=7;&oeJ3BdQq0Py{v48Y$#69XRLz(1V<4+60Lwfw=K;XP9PRrMA7j~>Wl zr~2nNKX~^wEPyXAg=6g}(L3${dJ+KJ2rLsApqnt9m0?1v>#040EagYmZF|j2hk}Ljz!|L(;p~j_c)W>*KSwHVSklgRE$}*o*lF5TYHY^S zjFW~Jp(o4pg7xe@Nr=iEW4QWhGsPJ(8uvT2KgFB;K?5Q@iy{AQ~<%&#(Wqo#MN>do`$%NXMN zG{g#@>FJ6|q=9P|ilutP*Z`u<)?u9cV1cO|)nd9(PHTNc8vS5}8-icp&5%1oK)ec7 z*DCX$=M;T8Pr?S)v@sPhh<8$Ithn6oJ{1_*sb2?@Db|w7{~1cSx7XG-H}>3g3}>w6 zMC)vsax)>~#Z}wwEo5Cj*SCjJrM-FmiQb&6ZE0ABEdyVejH{ZO3@aH$o_}NKf9!b9% zNuInlviRM#Ti>$_O!9EZ@NrpK3l8w=7hf1{2A&+maceyO+F0oEeS`*tFS!1r6T+}w zv_D=tsf^Hp;1>-58?b%*`O}+`?mN*~_suAJXas$l9k7Amdy~9KUN`Wm5;>lA32Xt_ zyg3MLKj82D(s+MA{q&x7|7!dO_rISB{{H%f*Ur8A%0GTJn~1gj`ABHP=S{$}3t;!0 z>~t_df#u^fb(?m8qMUze%kTza#p5c2h6a?|FBtd>OX64zq|DAx+OtNyX7&+ahF3g+1{XTnKBYQbM&^Nn=t%M)RVowU*%_Lch(C z<-pt$FKVtcGdAEj##VW;q*)+F=XGRN&zkOR+7-i!zXGT5QWY)m& z9#IM&gA%Qmg$+8!&ZAl_TNUo>Bu=XKDyU-xdtV2P`8Vjc>Uy$MEL!jZY&(z}aPzOI z#M&{BH=qR55p)j94|&N)Bo+uU_ZGq^qp4g}-U~joBC7&1q2i{`XGpG*TiKvxEzp^n zfqG#D1i124u3;f;p-@OTa9s-q4)ZXntKN%3Ybc3tv|5 z@JtXY%dM@2%)CGsq)P0{)nfz-hVz;gol22H)-j4^y2l)FQl3qj2JKCeI@MhqL1PSj zqXjns?-I{b!3LNFvN#?Ry%VYIRxwb{b%2zMlDd z-c}FFjmyYujnLngymsjN7v;#w#ecbY`}{w0{rmoFul?@VFTj0-`SW{>pB!7h;7Q;Z zEdCwNz5?=|wcaBak58xs9sppoRrbVicqh>(DX@kJ@FW1f@UsIjHCJOT!EOxJUkHFt z!r-3^fS;ND9uL4sy&^Hb`sZIT`dPQX_wN&aA87y4?t4Oi5kUFQEC2hoj;$sYmq9Ox{+d+$~Wcpv%oo4 zUW?T+htBIOl-4w;0u~ds+@LYowg!9RqD`)_qseLq#BUEyGEH4`@<6~f`G^wgB)~ekDE~h?N@~It8xjS9kDMN3 zC+VtF;#!ydHmlZV{eh3L&CYhR%H8}erxLb)zFQ$ z8A2P58+7V29PDkonsxWsy*w~|Ha4U@5g7G5 z=)aqy`*g)9t#l6UU7jFBNluSkp=@D;i=MqZa&DY^9O0HT&rh32wGYG!EFo+~;4m(3 z`zo6i)fPQ;X-w zn@B4+B-04h>vsf-wZH*jZrsMK*k-U?iq9H?E$+7+o1MLbex@B99cUDaHV^USivr07 zCgt-KL!6|mN@``^q+#x@m>7_asg12o$jb0^o>M&~W?6jt=CSbQNWQ=ufx9NEr-aO^ z;QHofWkXIidp5=vGqf{55r7}6Jj|}WAj}qSF2@sjacM=$LI+9XJ)`a-$?*Wej{J`JE6bE{ri%! z|3ZHC!E?X<-TUvne)%>Xz`1Bz{L8zW^?38YZQ%bNfOfsceJM=V0Xd+w=dX2@laT_r?0`y zf^evC(B?JOyj+e+Syl8lR5j9|*TXirhu>z0QrDz*s4$B=VIXm*V?#T#VHFhXm{%RP zs*tvo2OUd_SxrO`K1wjSQc)D(D>!;|WT1C3!CXsW!kRX%Z&)KMk6uh9wAL3myogUO z|0K*AcQT==Av$mtTAo$8RW{6<7*@QMTc2g>B%oLASDi4T!Q?M!d2){f0D<2g2(Y}= z)ne4IDgNq7rX92z=zua{lhSS10@`^LY&(q_MufHF*nmBWE1r!5bD()G_z`&p0tp&y z`hkT$$|VE5ETlDuvKSJAx8a-Te05&=uboEE8=l8G>&o87mTzNgLpUq;Cvg107!=3l z**b(p?hse!VWF^(?MbU%Ul;ld&u(SI=Lv~3;T5LI2>k^>2>6nOxZ)o|4~=7{Q0XUv zi+Yk2)YviKJ*Mgya|=z4L~byn1EAN)FtxI-?GLO%!jozajSRx|1=gF*)P7+f#}U8L zE>e#MDFypZp!Lc#00;W*rgn4J3Gi}1twAcqo}vn17tKfPUJ(41_JO&PT*k(zCT%pb^l8ng{3~=@kv{{_fyM%HGc9B|I2?s{08y& z-PZ(v-@3h=EO!Ne>#Lh9^WOQhW1jSOFsOZlWo}x71P%1+D%}bhGl4b;%oT7vPFF@$ zMU>{53sXkkFyI0U8YqZXhGQ5o-ga~d?R`!5<`r6B(zxc}f%4$sKy|RG2+-~Tvl_0d zv4*jgRah*m+9X_Mg9AYsLg}sUDyX~@HJ1yC`DTz6(oJ>RWA_j~4DmS}gZz z6xX%|ek;ED87I-vX%SKr?Yu&SZ=7x#pvS)j&v% z=>YG=QPzNP#5||w?vM(vKfa4DrUL7j@}#kOMM0FR5{m_8nW$6&ArfTw>(03L$jlL7d_j|1RS zL~;D=06eyo;gj(I>`A0N6#yScghzh=SOC8I$E&~m;~%g7k;T8d{bl(P)2|*}zhdIA z-u&QQ%%6e3i=A%JpO5@@+vlhwJps@o0E}T(g#mh-#)AauhyZY-p=H2aTE$sLC>%I` zBcgefgy1Gz7-%v>CKgsnG-gm#nM!HCZ_db7sELLMR@+*4c18lSy!%7P*D~NtGLz7t z2akPkCP`t+TMpaI zWk7G(=|Siuyd!C2*iB*={OE{?oJ?xj65b1|6^OMMtc^yF&Y6`9!jT_6GS$8?8+8&^ zdS%`l^u=uh>LSJ81Z|p52n~c`e(1y%EGbEFdVs+cdHK_G?-x@f5(cDPl zgcXMPpNkz90%lm>6km_jQHgjMZ62!53xSXtkRklH00&ZvX&_9=h!cdPaa$IcS(Q5r zrsg#b6e%+EYCBZaC$sS~C~xNaSDv3jfaMFoLzUOh+G<4}%R!-m!9PAvMaSBv`uFDn zU?+Uiheu5Dw;>NytJy>>Ht|=EjT-)Z9`;|BA3^>6fr;OE&$^EmCT?7>j3iHb(bEF( zt^>fkXDt8^qVVop~o>`T}w{@;4yI=R|YGAJy{%oF$Vl20Qkda0btJ@+Cked zPDq6I0`Pb4Ao{Nh!1x2zKC909JJMfazi(syjPdjIF5@TPec^q<-)k3_li^q}kcuFJ za{lIM2jLI^ub3n_@ZSxti;5gUuWDl5oZSJ}O&qj5i}fXddaP!YBj~2eIZ~>LR#&hx zVA_&Wno`;41X6jha^JqKY9CNUTW69h&2p4jRu~=du7!gp%1@!gHpz1cZAmfkrly)- zBu~JH!~cQCK;NFNQPL1gjjZ528kv>MmeSEKgB|Sv+G1kZ3%=yL3CNriM+~l7G|din znY&n0?bf1p`r2?S(@SjRR<@=If~&G3eV92L3Fc{ZR9(fWO-iujh9(l(o?>lSd3;Cv zpyYR9v|=zxx7Vwd(Qz0 zkq((Gj>KWuVZ)|N==&l(Trc4Ta z6E>cwm8nf^W!BIi6puef%rr*O`1W`|m^#Lq{@mt~1hkc+;#T~wP|my2rb)8V1|^P_ zp!=<_W>#10px0P4uVW?Ll7F<`YPHzU%bo<*j zd^CReVNLF}P_Y3IZ|H}{os84F5P`uc8o3MMwOJPl18xcgqv8ppZ3Im-om0*+a`cdc zxpg?5dA8uI@lq`Zf8{vk+wyJ6VILClJ4oNiGkvoCJ2cm)S8e5d?Di=QbrT+wisb7x2UstTCMo z5M^B-h`~}cW*_186E?tOp!h`WJw+0hi@?uMEM)j_TpGtnBF7-+y6->HE<)Q$XkhsB zdj^0%AJ_z+6p8gL>)@+@)-0@{{jb^lUcLG&3)?jReqzdxEdJW{?`!YB`d?o^|J7_V z(Q7jTT001xtk{R9LB^9oId45ka?Y=8A(C%x%1x^?HEj)N2fW^j8YdE$NKsRuT8KBb zyqj++RaF)+M#D^z0a$MAf$Dbl^un8n6&NamW+Jqmg#d_CeQ@4f$|P|>JRs2UZR&1Ih*-S=CoOU^Di!Sk zSh0auD|_ZA1eog|SLk5hgnl6d85Z!@U7y5Fv~dI?;JMXCMu1%)o1!IMZ;nNahcnFg zki#jAs&XEsewfy#Cw-h8tw_*sr!qFTIR{}hM#^}Sv|5aIR39Jf6f*GnAn0bbSX^!V z7ABn4`khAo&Yj2W@-&OAKYrYb#0&Aei0q0o9)r0b@Ezm}LXzWn+7&S7UPl^rToqlw zVE*4|V158Elq;g-v$hpg_)bxMl}4`Sp&NYG6 zp5ifMG8X_?&PlC86El7EBFn*0@OO6h+WGTu+4cple?PeNvg)rq{P&oB>n$@99v3_5 zVZa^$HW<8nEdQMz4TN5ph`wWx_$2ss0r7#|!9zz-&p;C~AM?BT$}8I%qH zdv?Gh0Q@=m@J|EaNmx7zz*dW;@su`tIf5|HC@VRU>&mq8XDfCuVPW%1LMiuQXgY8 zj$W81SHX1hn=LSNqEjk~&ZQW&Zx_K#VbCES_rbZ*QFOqY-|Oh2Z2_J`g*}4kps6iX zYp_k`AiE2a{3`#olj*LqVQRFH%-CatLreoZG@*kN>0TJg(PcF!b*O;SI^i(Awq@J> zm+ja>2lfCOC{5VXK!sV(q9NB(M{m+p8<~t}>+ua+kCWxVVG{|04R3DgAGN)0^jFp+AKX(lSAK$#w zbog)_hUg-AUR#!?LXFVe+&ZMyDfK$*0Yu9Z+UA3{(eDchPUYasW2<5OhMEV=KpM)5 zOeix4`Oz9;Us1okhP{uRe1V;uJ4L`qTLMl|mX9@?DHbF$|EADnBWSY~=Wrbm!ce<=)VC>6sAFgd|Z1^fZ*ZX^O zGWt&VgJJpA8E-k_Q?#Bkay}Hw+*yxe5}xB3rYi7TDlN@^b?w@KxmT!u}I)Zjd?`hOn~@BJT+RJQ4(L0y)M*ue=|I-{%Kr(BmL@zz00K1pe;3@nh(F z18)kz-cXKDKRxvf`Xm;t0UTHV}sqrey6LD+$A~YYB;C?mNB-TWBM$x3xonuEXS%@MYb#)v>lUmL1Qi0XP6&# z7$J=*u`Y@Yg4&_9H#aNk0ag>WWlD$*zFLh}$0lxI%j_`hGM&Gs)d{_^!hHqxd%aFM zhMTKUi$pJEkYE!`le24gC66uazM#4|aiz@;*q+H4B+hMcp^z4KCp2(QPJnC0?F}$s zPD4p{SMY-$`Q-h|(<$HH#?%&mY~b)XMJyBIyc!Y^F5ZFX2kNOzMyRjOeCM!O4i$^Q z?3Ed(T7E2y;Lqm2Rxy?jV&X>Q8-c{=KAd#c9;cyT?eB304De@5f?;{)^tcdbcW^X{ z=TSz@z+7<4Q*DjWH&dGikC+x&WF3Sh@2rDh9im1x=TVFZ1#|RJz%+iCXClsBY@M6Y zyI{F@A^wiEgx7*hx9;AJ(mB|S9^wX??I_kZToX6CjwgCd*cDvm^cW(TN*-%0Qohx zqbmAhv6QjVd1euemy%{QLYXJtv6>-{Q1@mYeujM03CGH7X)vn_%?qv#FX(GC9fI{~0l}U?PEF8ALt5g^=t&&w|DL1y;VkgN%ZB3<; z)mMeR+hzERFxu9nYMmyBDYOd5x{x)OJH2uOTpc$dMmJT=R6%9ou43jD>yhytp?e`{ zGN0A3r9FeTXMqT;m4oJV4$x~>xQQR(KTJ76gaf^n>Cnq{>B`Y|fqOA6g5Y0oFg>)bF@b_Rw*t9LRA!Y$%w zA=<*|81d6lZiOMtO386ICFfrDbEgjXA)Lmq^G&rUG_g`XNTpv~eVXg=h=k^6jeQ|{+^WO|%jJ?L1Dj>TonpPlj}CeDNSui`M$Y98j(sAT+J zo`B^r)32^Ue)THiH(p@*k&T~x!x(i>n)i+cU~*f~-UTw?U43tSz+MgX?&P_%2X%)4 zc)_E%J~;==L0-o;I9QXtPhAruI z^Jl>4u|d#Rf2l=C!vHM5`$uQ{i<=?@9+P%Wf2RC-_oIJzN$~fzSO5L%Z(X~%d{h?v z?dRi}?XA7}nSm0daR5vSv`MSmWDgPn*fk+}qOe>Pj!=NbeQ--(E#uJ^R3SX36NC%e zRH%-m6x|dlWx|O5wHsk|2QwVlk7*^LxIbV|3OFR#MpgO;!kBa#9T>7F88p_(ssZDg zvl%8k?y~*I+J>3i5$h=sqgYAT!O$;hkfrcPATQFhVj4e{?I`Qas#eSNDe1_VKbH~% zZ)GxBvSYV#*idB7qr;`J&YP1)d&R%Ye+CdH14m|NCzkE>dUAv0Mpc>b9P7Z|Tcv)R zWfNIin$1)_M)Va#uExr>ZVV#;&gk155xBws!GHrMZ5MsDZ^5q|*tExc>Id6a0qqK* zb2|a&>?DsWM;ttDsSMttEkBl@QYpCrOr9f(Ed@W222n?rqe^kN);2b_wkq%Ps1J%WzK^K0xR<=ac)W>9CR2if=sDbDxDS~=x6|KIYXM_7 zF;kE~ZWeg2BJC5_YnGQ`+%LbqkF|2tbQ;%rlVE0&8^u`c8LxixnHInUf7yA_(S$Mi z9ybtv6+$mDLP?^~;>nd1tjejfR9c*!y?FleWt1-Sd771wL4(G06;NPx8NIRh#usiHjo1!u%*o`ra*(EJaTKo z9Uz#VMz+og4nq>1*U@9&?1KAR8kbX(=*XKR%kmG@&U*U*tSXD+)1ajy=A&TM(qZjT z@+NlJsWehM08cdtvVts9!igM7mFiC-v$Q5*kWb8jbsLKXah9bH_@MwZYslsI&Y@IjkHwk${*P1h^CHp;M7C9EOj%OJi@jr%g{W z^Ntp0th0Oa2W+2+b+hbWh;?-vPI0(4I_lH_{4LO~Ipo)_+YR+?YiXpZZZ^PcR=|!b z+G?Lo=cL&xLOjbECKk4^7e35Ah1tpOEPRhcNS<2zVQlUYG!U81Hh_> zMz+-6Q#?5`xbo!^h6FlLGm14tiN&fxlTEJXE#4PTG{3n(LsB$)SCwEKE3Kjk5eZgX zPqEYn8(+~F>OBTT89yLL(UH2TPKvVsL~ZtnE$M6dXDUUZ`Hr1Hm`yyS7KI&b+6!qG zFssr{O~yip!Kc|~3};q`!P0Uxk=Fv>iY+qy!aKO_9=JJnzP{%zYnC>PU5AHVsg;P3mdy!8*a)qdoE5{=ha zr+iMn-mw6@2Zv>aDF)a?aSz2DN+?xS1+5wKbz@{SRtk->%Ww@9_*U(W9@a^_kDV!}=V*tC3e2D*;Z&60Hqe)?=2N%EB0d^w%LU*?U zwK_#kn0EwX(BHBdF_(>nm@2C(!N$Z66P__;4ugrudV;Xs81uVm zpThK+(VCj^Rn>z7z0NWEoVzi6mo)#9{Sz!edxLJWN!#nTHdMFmx%(->vPA)YcRAqk z0JDz4c`pyMzn@|T79MBhHx}~t(Fg0r@hqQ07G)a3TpDc164B%r+7!yWMNRHguwQm& z`XJ2Oqi&y@6J$m}JXo9xHMWZ(oFOxzVq<%opt8EUS`20Ahy_S*ugNE4xW~$hCu4Ck zzC1LsSYU43jRu6!O+6;+{l(OmDn#Y>co$S%7D74UxJskN5O%%jUEShfB95jZ94{)U zD_R+-n^;+yf$poa$p)hgQX1)`ink7<&1M{$=tG=a@@d=m*~dZ0nCE#Ut=SXN6SW$o z8Ga%ZSyS3Ufl~!OVWSbE?_4H??2T=V2KH9m>}Mlpe)yvS*sJ*@0B?fy3)9BgqTVXx z_tQ^MepIWL)&2X`MW%1OqxN5IAN=^^kKTLltgF5{DQ|gt(Eh8tUxULQ1=b({pKAMi z0sx=HfIVaATZ2Um7p`0x8^19IfG-@2zxe+}w+#670Q}kSm9Hq$mFp(-_RM$syWCcV*Y zEQVCtLYx6*7OB$C@EqFZ!JgsgP*9dGExk}2aEH;V>eY%{4LmkDY^w}a1gz?4b~r#W z-0Nnc*6L}85*cu>oan)sq?}Xmu;)Zy=r)+SRDe+#@MwDf961z0rYkb@zI61MQXKH}+| zaf%C;^Z~vpXs}xG=#6ivRW43#3qSNtZKJcuM_(%Ox1za=!XM?D-Jo_KS8egPA+%_& z0deIO9*$tG16;#sbzAjL+t|07fW?&=2WKWj44*@IzWDYw1lm_Ka`-&t!aJZlbKaSl zn(+8mGjj!<4)EKJrx^1H&2ozzcy1LN;O%X>EnAg}Y5KEm$20R^lW_a=DOp6DlBrPQ zxCsf8`}vfSRM<`v!Y+$Rp!|opF5oWX&3lZeb3&Bq%BNK@8gI5p$wRbUQ*uuH{o2~2 zp9Of`)$hZBNDd3Xuxw+}CMTpH@I9>~C6w-?b``atrNyPC<=b!{y>jl{xz~Q@Z6AE& zjk8Yu!oq3gSI+WwcffI^uzQv~cz0;|dlCxoI`XTr8m!a2UGeClZ(Xr93_~O6>*Gey zC#--~2<>3*vu1I;{roY#z)(LA;_vun@MQEIh~k(C!QYLfad-fjxI2)CWs;$v1&4=> z!4`e54xlghzkj}J0b2oB%YQX~gZk&sUcU6^-@*R-`sK^FmrCTnxk6-ab!y9J)txuT z?0+5nH67+#%w$Du-S#$%kXTUapyW^|(PkwKQp}tS>Y~`T3-s+|VH^&#%Rw!|CPbQxT(uP| zy)D6B93%M!M=r-ed&@NO#!Mo00u@F*IY0xvp589KA790_YJwZ=S6js|418r&-9N{`2z8x?# z^?Y;PPe)omSI~HH?aR{U%2Z(o%L!y6MsGx0kMGPi8krExx^jJPZwPDRg<8StSFY}j zjmjn{qQ*YKE{tg{S0^FRt0Dp^1yL}}5u&+W+}uD!7Cw*s5BjS?9tQLt9xF3~A?YEj z?YFjzKZG&@9L;YTgr%zw-jlr=GskhQbgMNx!NlzHJh!O^fFCOX?v#@ zJAIXB%bA%g>A5)`2jmrCYimyfPRv-~=9y=F^8oNel|Gv_I$mp@Rw`(QKrbTeEn0^K z9Y4!eD5ua8T`^u*|^E5iUh*8gj%??5EhWWb%Ie_mJ^ z55Ci0wyGex7#ERm4TQH zTStXugMA zh70SKs~s2+Wet?$IYhWNkd+m*OJRg%1stU`Q8?!EVYVnCp%Ii4n&>J6qZwIgBux}G z(O(;bRjFr$(pkn+3Hl18LZa2dia24Sv!IZMjtb#aVP(c3!br-Hza)RZ(@S(X$Bv<2 zAfW9k(!x1Ubi zGZ$4vj1AA{a~zUHqXJja$B*mCkyyj2P|#93jRWwwT604WFiA!Q12ta=2P_5ibI0U@mvq6NV~j%hnz>zGHhg6!C((z zVz95_5|Kkt6$5^?aB2S{b;-cryA0yszBTiM@N=9bwitIYAeTJDCnyYpcy4kgwVG+n zt+P7`a_Ahq@5rx4jUe^C%I4w-L z6JwM##8=qsGQ1;9PZ5REWnW;!EeLq0XEMP(EyVA|Z(Wp1|j|1x(y zuWg-K)J1BdQ39!ve?T7Cs9nTz9F2thL{vc_8-b8IU?R7;1Vj)<2r4a%cUc%g7>YIx zcri1Xz|ciE&7#mk=rSu0XffXAAJ8A*%|Ld&=iK|f_oPU&oOV&;I(AZ8MbdlcJNKR+ zx~1l4jZlnYi6L7iV%+zaWy9*)bt@VuSYx{ye11|eH7ABqWDNW*-({u5XLB($( zsH}|z!f0z7JPHG^Mn}*;voA=vFL%J|i`C;+mOAJWE0I|D!xjbX&cGr#{RNH`G zPM@{X0m2~Xl>c##*w=Yj(eBq31Qrx57I{WdWgnB(YOK73*iD}FizKzs5G9Wg^@wS& zoKA6SRe9Mmy6)v~q0!bG6OAe4j2zl>$KB1>HI{uJZok#Dv;QMdo2`X>pX_yKA2VfB*W$ttbDz!}JZ7|2}{4Xj6yA zq5f(f08fB#$a}Yr!>#XoJK)H_ez_SqoN!Og!kS9a@8S`v`S-DZ2s;`Ij zVbkW%VFo2srERtl;zEZ?wEX=ZgYlO0HiAYP*1E~C_MH-I-vF3QS;%bPk?jG)H9UYmt0F*WfwZ+6Df)nfw<1iv zB9C++Uy}`1J@MWvfRN-;QV4LPr?FR7TA>!;Uec-6dcAP#>jF>Qj9*6&zMDQ6-Ss0! zBA4tvQXpoyD8d?j2!Ni&RD+9ym3CD6KwBRsS@hhNd>{YdT_GH}v%12z-d4TageGWX z=>SXMrl4Q7N(*Tlo+H%A3hc_SNHm1*N>x^v-=IoBK$lBYwJD(}smk1}ccwSK9{C81 z24=-ds2NEJVmw}7&##mYxqpRt2=ajn&OJj8Mc@td7^$sW*q9tbpol1Su%*%RB23qp z74t|qH#Wus+f_NNb6bqvxil5js?(E%SLOeFVK`!=k9kYgmr6nu62=5(N1K_ascLIQUtKs$+2c_2f{#WU= z+zsIVOAP^kMYE06Z?h`Y-^#B#&|)0Kc3Az~iA6p-N%eO(GuVj{DWb{Pl2EKQ1L8HX^Oh^A*Hd$tYk1z@Z?X(BLuJDx^IaRgmZ z-1TatqtHSZ^!Eyyg@Jn@+_)CSOxZFiE~*mPHq4qOP-GHeuw@TF)9OU^RZ3k>!oDr^ z%H#h-=y%0a=&eCjg*@kma&s=IYoK5>QsHy}M&xPW7m`LiO&+o1MbC}f6TuW9(NKkX zGLn52S+O%{BN6I(B00~RIiX@J7=MqP2wGmVoF988$1NJnptItOTcjT*H)4C1y2Z0h z;9z`db~TOnTD~Qi+Kjgks!$_!Nq_~7n}j3Cg}QZ2nwPtK;J)R2xtq_Ib%7#ZRTm9Z ziDT}3(1f`6L_f7j$&fby;7bOsylxNx(i8yMms98A$Tur6nlC+?!-hO54K3(ISLa6~ zpLM%>ouCd0XA60Zc!(H3ZCnrV_nSy@z4i9NcSYGS0y3J}eAmfoc$L|K;L%CwMU%`GP{8#Yz){`eUzNY&~@OSh1=Esj75IREv^a28` zvFgE(Ep#IQ;H}F6`1lenw9|M^6++K^kh1{z_JRN$$>f*|z!Pqyn~Tb@{s;hm`5^%O z??nOlEdck$9|*uYfgY#7lwSdWL4V)c{Q2*efAs_WN5J1NKSKK;?Y}C&I!u4HUydJ~ zJdAb_P6uFDCu1pCZ4T*d1`YUS6;eG&qSPo|{bt4Gair7sg>z^*nRn<(>Y&$5O^eL1 zJtG4~d>(egHipjWMi>S~A08A2@e2ha1RMPN99tfZMpLy|vGEF}urevc4a<_~1*|Tq z7}L-`LuXS87@)3$d&$5nTpMVMAzB-N#whLs;T#UAHHJKzVr1vLWpt$$Ie@ELxv)pC z5~;9O^Fp!g)heL8Da~@GzzX-zf`e`R-cVp%vo$QETKFzfLIzrLj4iKF^g)A*YIF+9 z;}wppb7*>f<%nV59GTE7_y&`1&_UoKyE& z>+36})oe~fN$3NnB(BEAJl6yRl|ac=nadqzWnVq%WHGbL2?ChN0qa(dv81}); zFZ2bL*F-K!IFRz(leep?etzh(1FjgoF%H1t?Z&*04_Uszvr_)M?_i}UmAFI4MOH~| zXXN3M{!)H*=f)kD|33fp(@olc9~@hbD4!#!6 z#d`X5>zd=f*XFCR?!H$A90;LpAv{xrb^G=Yb9ca>%q(MA2!h8Kz#r60IM;+UHie!A zz;EC0C5!@ag#G?&(KO0=1o*zy5Z;dfa2T0I1m^ttjQGi4{sa4O zL-6-?N3QL7``yOaiF&&J$|P9OTxbt4LpZu!l|ZA)jp$of8oY05SXyeP7@T$`r|Ffn z^CWQ{Oaul2K7=#rkp2s%;V~Nzsg!c@WpyEpJ8+K0!8A2;9~k6DkFo~B7F6jf-zQ2N zCfZn|ysc+tHMS0pS!@Ti!LFC3Rgwkv(M>Q;{{4NC~5akS2<;Pm#n}60!{=LiX$>jO?;ZvI|qzDEpQ@ z`<@x=Fx&s?{{5cc@4oNndEVoB|Hu2j$MHX29hbv-&3Rtua-HY*`}ux8---5v_7ga! ztEHm_(9r<^9rzERjR6_}!{H+gM-DSE9ARK&WH`!vjG38FppvXxco>S*eiHM0yN=foVWX{V-oIfieDe?Oubc~FQ%tx6|Ff*T!5a1Dz_`m%_ z`wVa%r8`d_LQi)FIK)Xu&q+sX1|Z-#kI?<`1N`%c?hrjVUdE$L%q(DqietbbI(qs; zhv|Y7{o;V}_{3zG;*mtF0m_#lb;<>G#_A>K`Domdx{GQq$Gy9)SEbxD8 zX8)Slzvndyu+r0kFOQxRfC2}(;Sw2#{(pN(v3&dHdpWY|uJ&>EoH4GqA5QdIu$K|8 z-Yg$aI=yky(~5ViM8u5v?tMpzwU=Y&Vr)AktVldOk8Pw};h`^V)G*d+*ZX(g;ZLY40UmB%S?gllZLS4y~LxPrIetF>%N z=%)dN^3OXF1lf9?P#31n8+#`%ea!?=tslKc!*wrBeWNlVSr~kgC?9tFE|H5H7dP0%^Q+mx(M*Y)RAsh#S37dT`$vd}zM330V#C^@IFEu;%BO^2H6mgRAH-9`$XH<4Z2QP@>mL1CE_jQO=#D+pWKW|L|_fZ?$=6 z0%=HKTf`Ju%u(hmjT)KPSBGlnbBP!= z{hd#d@}!ySxmDw#-P&4et&r=z0-vn@2p>4-%(B@=%cyapn}`@jV!VT038P_|EuY;h z8hh;P&tuv?-w2GM>pRU6ot`0H=I&41_LAzzD(i-uTQne4d8HNKv)~bSPC@ADsL3`w z%%J)DPqkxN4TQQ;yq-!+6~jD^)lI?yj=?im_qjnF*3KRht*>cEq2H$!B#Ol@o5Ko6GWZ{l^*DA(=2-<$hTD3jyr&dwbCWI6Ust1z z!V}Ey<=D+r9T)1%^EtT9#_VhLE1KFxJAQTZ-wE)EH^&@%m!`tv$_jk_T3WciTFx1N zaBtQ!hA3u0103Jq8)Di=k#sJOBtwGr*Ji&VHK(xqhd0OX-Ai5mhL9tQY2gZgjFJ^N z%`DnP+8vWtUXEDb1PJ>>3oo0R&>Z(u9#j;sk%t&dwz{D5M+^e{Z|TLlQo@`>0~S%D zN@~>wWY}5E%W`{#syb!gn;kldN4wZvZyV@KnCnf{(*TjEf@@VW0>*kS-?u1o7S(-Z zC7v8)$=8Fou+R^#)$;MnR*ee2mb!hTzx3Sfy$FTL0SOPS=|p05osyz*&RuGek;#6{ zX&^ev^wXm_;phD)(gMUpaW84+M26)0f=dxI-F#m6Vx(NwJFob($Q{q$Rb3rYIYE%q zAlyC`eb+vpU3loH(-Z&DV$|X+`uNnyN|G5zXfMLJcCL)|Wm1{5&8N_2GylYyc&@UE zf=jhg`4`#+S@CG8wI*w+R>_VD^7@k7U=EWiN5%86Uzased(+sLqlu86PwqygB~jjMQ~)0MgK**jI0 z1Xg7mez5^rn~QZ_Zl6nR+IaSSE@53}^w@rdz5Hd}bq!%*tk_S)zz7ww)i)Jch{dmS zyOi>-kdY<*ieVMLdI^Ku1?Og4TesLX7C&%zOiMkDy0IT`wx1^D;OaV7MZSWWDTEPk zDj;RdwNC$)tH-)M;%0+=K>raIPt1iZ55Oo!PC&wWn7yp2bG*6+f;Y8=H$N^R>%Uf7KH3vija_ zr1B~v{Zg+ z&cJe`(EA1{64`eW413iNeUh87RtqUS`8#VqyX7xM#K-oy10; z^rC(1yl}(d=dtnDy+e<)os?++)&KsqIb~^2LRm#*;1QMNSI0 zjppXeb0x#-<=Qbqk>6H-iaUJM9(4RZ2IF3(N(}sZhp&jr+qJEc*qn$g%IhZ-QW=IT z(oWo|uf=bRjjr?(@|PktZjp?!IMScSK5)1tebR6qVQeSU>swa|Rp zIlka+r(Uz!oDeX!ZMXhhd(3Ymcm`9Yh0`c#CMjR5=Zp$)^D!d3ZF1UJ*mu#gL5vKYC492#cDi zJ>s|mX{=LV^4HN~Th7bXcbG)&B2QS>|6gDXlLl$R?WpOihwBJzWaCR+RI|F!zzJ7% z!F%vj8ql~-^ritCs>xJUDi``MCAy^nV|YlNMh@}qElX{UTJuk0)`e1mbRt-@!GGfM zO&Pu2U_4J+{)EZ+q*X+Oy%|4HVH09_jiPA`P9gsHv!PW}#G?arYXk5|8qlOeR-ply zu?_NJhwUjwV*G7_OXzw<8vk5e>+Ds58xmfk!W`8ZY$+0%0nGpD!YU9#Te}&EdWf3d zinoQ?4OOi>(G#hx0oo!zdKhzhtuE34wzK#RD%ynx;Mtb`7=q{TA% zd0*7Il(30ktFDd1xAv_kO}ugv@>X0*_|qHv^VkM0{Z@9r z2aBp%Ht=ylCq@-N>O9fB zYu1*+(nc43`QF1CXn)GP_YPuL+@#M9Yh*A=LWn6rh7FJ345Qz8(STLkHQXAu!uq(5 zXljZ=h01%6%PKe&0s;^WM8p&QE79{6HxrICP5bs_cdj3@FIx z-L|fJ_B2C?(DLYmlxw;lo1*mF#v&=%#|p!*40N;}EAWKh>P-R6q>#v~5lPL*^u&Ce z43T-gYLL~Gw+xSshh#Udj2##{iKI8kh6uSCr64ZGxePU8y5 z>#LDE)6c3VmLw(I7hik4WOO1StoWCKT{*g*W&0rL$DowKJ$vIQWxV@}bndehcAQwK zfOnbduNPj&g>B2#qE;Gq#@f)HvV{&wNd;>03Yw$qhyY(!Ppr^~x}*+2!mDe7rW~i+ zo@lz8-NwpBAVrq@<(IZlMcK|sehvcNg!GlWcXz0`6If_7k?PSz;V#qiRT zZil{`4Q7?*{ujS)XZ@ur971wLe_fp3I3T!C_#V?grvbtH1U~flM$o`;@X~-2+GM$@ zms8v4aa8&i8qhqPq%;XN(*<^5LD@ zA5L<$k9qRaTC*w4`p#28l^>_PFV+x52}jT6InaPz#&{Z_t)UKi+zUD~cn7+&tEv{w zu@qZN4&O7R8?c*4%pq5rKDT4LIiji3!m`9Sg;TAcM_a^4iU~cfsr1BDOlyG3T5mX` z*^0ja(F(y&oYL!=9WQi~6}6=vZ96yhDubiA;W$d4=r@fC6<|-4ds%!soyB%5wk-Da zJjo~C(vvJZ6^h=zI6?zvr=}6~#H`!;BF#SOX(#xP4=voJ7bcltw~I14asdC3fBP}a zZ$Ac!!f^oL8&3I7p+^V%d*AQ-*~3s3>6}?laIW%n9Q&ERYj5LXWG4#wI;46z5T<(z zq6_Gf#CQFPIX^czP%?ex^+@xovWDPn4z7Se`MK!H9YO;~4xa+ufe;7_%BB}7th)%} z9ubVF{#1f5MuU~q68>Hb?v%00BS4LJDOlQ*^ssrt6#j7O^Kp(9Hh;^X2k@z>j~nDy z-E0(R^meWpuw%CWk+fUTFXJM6O6_Ewi{ywB({SoZc%R3qPcCx4f-}Jz(;;=`h0mY~YO~B6sbTYO%G@z%#mj6p31~ zDZ@p#GfY;DPNo6Z2RA4*z-)hPCNJV{EA`5N$I^OAuXCj}@73`2JN0Ph*@DFszqyb0j+&G%1_)Dr>?a$5}wK{S9QvViv4Ox1U222;ZcOUS$K=G&1jSV+*?=TJ{ z@I%UW6c!~6@fdDe8|?56*kR`)^{^Zf{Cxo|5aKo$1;T%r&71pj$1AOCSAA=D6t-$xQW zBZEDD8cR-q zGSh$`X2W2$v;H9M6Vv3fFG1y|0Us)`)M#Cb?0?PizF$f1v9Cq#CEq^IcjwcEZElA; zo7u|hgW!qKpzZw&XNNbi{IKzt9*nCd!|w~OwI|;`xp{NT58aG$dV7!1`r+hQ#)Ti( zwKbQH?%7QBRjayKR1%z1<0pw$J7wQJjk{RnW+~Er>vG#^`f}wzIE7incs2_&ey}V1 z4nxpC*R`)TkkEl8sQi&KnaJV8}N##n+S{g?=5D1ErD8D z*?W9*q~H=`dn@cPBn{E6)2X50I!AeX~JYNFS(+dn?1F6oaiQ~ZFU#dTkdlsov{Z(wR}bq zcn2OdbOyScA4X=cUWL6J4vSG`!8jTxAdZ7HYtqn1>S4oj66emj83A!QG7FWdujQu; zN83;jj`SUQd$_4qCZ9p*(%6$<-%@5XiEkfZCQZg6#ACTiEhh0^5jXEr`b9$$bAEK0 zu#V=&EueSz$R~PdZf5d@NX!bq3_wezENCE|?P}mRLkS;d>K<*(IG3IaA1ZKis)Bl4 z#B|kA>{ANI|L+gnS+&#lvEs}k-9 zb!mFVM3FDb2Kjd$v-|jJ9@76~sO`Cml_O>?CFl{u&kHN6tG&Nw%ZAR~x_BgMRFedP zYyB^=*F84R=|v`j=ZAa38>3=i?tiY={Q984)U&0x3t$9QW|CW*^nQud!98u2Qm8+1 zzR=8X)^yy3S@@FR!>C&2^o&6>$>hsg*%o3YZ z%dsMKN69JF>&mdGe~4Q(t+8k|L4~XOtp@aog=;3m>Moa8w?e4imq{h6tJuKN#TFh; z%|)52@Nyk>(-Jfeave+en&iastEp@-2o~J%IGEVizOmWuSGdB zd3Z0DZ!Y4QjizepWIgZChN??3`4e7pMhRu+F-ovl+rGp{1>h8B6~ zX)#E@4x(_lnhkD5Tn3IogO{)^0y!Q4{Z1x2RbaWKHyjI*CyIzY4j0vPjMFd z=NWV`3JwC5y%{A6D;o{)2hs1$KRg=nrzexiotpnosQ-FcY@OkPf;*=I%ELb+Dc>D+ek>Z}8chQ6l1zesQ)oc6q z6GzwWVlQEdxNBTh1#G_8?gD3gS$Ls=@!7fNI2~0tOGGn9&_PX=pxBCie@O}Tp^@Vo zt4(J3TsK1i^TF7zJl@@Pc{DV_`F!8^*1mC@U-@6$h^ZVP2*TFl9>VrTDyMe#q10e? zVYeB~NHStbMd!W4omC%q*NO3V`9hI-jY~*rDnA&JY(x6d8==@7s<_um+w@+jR%yYQ zg+-&S$&DvAuHq}2-n?W*&k*zyeG%0aO}Izb2y!ZtUJ=xw0~ZQ@8~yLUcP7wHa4$P* zfO7XDFKA3a@b!OuyPfT-Mi{gH&zR6rcxXvp^bGQX*s=(pv79sxvNvdpIzueZA>S4# z=qqxOVaLpS2QIpFF1WN_il;PLg{dF$78+h7;D0SFn9ldhM#f!u)G`3W3=#49`yi=!hWX#5cJnQEDab2@g{!; z2guk>!%#dRr}Y+17KBixVu*LAj^Gv-rf2{|8x07@hJ%q^1@u2v0)g~@Rg3)BNBzHC ztFowpi7bq()$T^#tQBa&X{2f{*M^1*a`q|Nd zK5yj40k8#QA#>ujLp;VT5jy?9jvowG-Pmyd#WgF$)Z$~wb%)+IN-QcXk$d(*h%x_R zA5K#c{3&Zw4y~c_LeR#XAw?&sW|@*t#T?JGcY)qz)tc=~@<>K1k5UkH>2WU@@Jd3# z2=d$R$3FKl#EXxeE_tIZQj^!|+m06i@#*T=F!rnP5p)G45~Wm(I+yfKXIO#sE$>rs zl7txCn(m4UymbKRAjRxzeXMYK(KD`CCv(;67Hi0b>YtHr2zK}g=Ho^r>PjYAI=mY` zv`vyu{Pg>YfU|2Znt*E@z~o=L!I0Uh=t^BVa()4;oc7 zbd-ld?KgpTK?W_l#OGg6Z7b02V+x5H&1M&%qbb5!$jJHm$|pFC?&6PQ$ersq`!uD` zNEfW|J%n@5V1xZx3CdNw>B063rQ?sDqw=~-;QZvr^jk^wLA&}OfF8^Nw-`$dg==t0 zSecUKd}d1)CHS7H&A{G!vr6N$Yg?XyMfck3bebJ#0ffuPWYGH6A5%4+K)pg4_w>Iy zhXkl#XY$Ai8{pahCpLdNTkHYhhR)@A;iyf#m;=?-WTD6OIYcKgfPysQc6lmjKyN!D zXK+6YKStGs2BX(xK!rXl4yTt7`cjF%Ux!#o`D;aaHE#mjj`Ldk0@Cweoi{w*%|K3k zfxJbdx{`Dk0j(OA{gfT-D2I7G41d4hi7%ql*r+^)@fFA2eRvcx3qFWC>tf53n9VXF zHOW?{oDPS~r4Y&lN(}G4!|l)jVEcTmLBv~?RyJcj359NUV&IUUyoispONlwOVNnEA z?2*?DuZ?OgaC;zm$MS~XI_eA(Ihg_C{nHmGuLpgCS1fk&dcnASWz|&IFwYfu(A_33cmtKLUW!P6N^v?&i29P#$?-l(9WGyijeEd zE3wc|EqR9RF^1~;3Uz(=>y)n@idAa}KC6{#-^shejw z92(8AH1)g$UjKLr&cwD9J^R*vph*Hc;b51TdSC5RNCLdM!U~6n-5^BA&tN$n49p)N zBp55R#)jBu(EyXD%0`dUX)5r+*pk@dvh*}6Pk>UsYri{p7vzvA{VSwxwaLbpu=$c!+2 z2FG_P>Fqr#XBrDN-~dgf&-;x(k9Gyq0Chho$b|HhCFr-9!w+D)-Tmj>*O5)o`(=S+ z-vgbf_a10Gi05w`YH)Hc2NDn5e!A=*uLGOhC!r}k75h<$JT(ws#)>zAoFYdRXkU=( zf*yqA_52MGk3w$VnUdQzbEN@J53yy)g^f|^Y3;Cv(PP$rNoUaQ zLX}`h)=mSqrHIB2E0kF1T=W=vc#Z}fa0AAa4>VvdA&-LABuAk%QYaS)xEBg&fu*St z|5H`oYveDd?!9`)s(dmU*^Qn~RXd69kp~x_{vizz0Eik2j~c-7hdd#ILs$RSO=gQH zgK+w-V_p!%HK5IMxmF3;xEAnS$`>IaJ;yvh5QAAc{`3!$Tn*o7~qdUTVwuO z3{X4P$&UpE;=c_8`p+^rkbewo3-iP77jc+6j@zyGGq6B6O@*qRB>Ky>g*e$(k(|4) zet(laQTA-A&WqH!Km0)b2$zBS5q~=(iK<=g2wY|G9mE?fDVl_H*^<}hZSX06FDS|r0rH!OOJly*B-2hV? znVfr@=k^(*O(Vl+*7T&VVDdk|Q&~@F3YKI3q_nG6Oywd?n1l!9^;678u`> z@dIeQ#Gn&=_X!b=%$evqPK8Q|$NO5Il;uiI*~k0$OmVu=fYV+$JU_HCpBOrej^3dN z`^nP)IE%fqyzc4XJ74nxv!C}bs|(xwKCCkVs&{w6KH}!5V?eBT06PncWe9HnHY>sE zfrc~RO1N6m6Pp)dA<1^BZO3)_5750-P6BCnl(x!=F$)HKFLw+MQ& zRS_D1f-gsfl;$pvs>KVxLn9qFM_UaZC7gDYSdQO7oYW>Mpw!`pHhsh^G#~~?t?+H@P`9uVFskB$d82jZ1_fl8u#fc7j4aHq=x-n3Uv4 z$CiK*Dh&{<^PJwj##5s>F6A~iNhcM%9N)dF4#^l4{Bq*kNvwcE>|9oC$K3s&6gJfG zPsC_k>+){S0qnFY%oHDyl!U~jixL29IEN}I|s39k7Lfg|;`B$__7r2V6q&tj@ zkQUg!Bo$nu4=sz-7@zqzvlTTdbo*@rni3)h-S!=pRqkQb`#XRs+|r(|A}65#OhMkE z)8zX575OClfEj!P;Yye>2+!KNYZETnqi;ins;UmvWwq5NN1ZMobYg#9W zVK27aeBLK9XJc%#FE#cGJc39SP>p6kruCHyF?ISTHy=`1=f(ufyn;&MYg{)E`|sadD@z+xJedn-&DWd3ahCGPA-OT<=e(h z+NLl{o;g_{bPa1lNH0&>Yb@0Jtexu2c^07!EaW;oi7V?d`ChaQX5<-@Uz_ii&}r>L!syXqtwlA4g4OLL4$5OblU_ zl(d(i$Klh6G0kTBV?Ub;)E!IcmL4K%VKv;+OVlg)^1UQAPIL2ODR0&f`*{li@o`6< z);e~%>*Yqym^0bbYbDV!_L7&rG=-xO}&}b&#LcXU5Khhl~wpXo$3UP+GTQ>+prHRZyzq7 zp3oi8_f`+f{kS-G7db1>x^2pU%%d~Ao4+wYSiL48T%*YaFLw=gMF{*#>Yj!~%s&O3 zl`+8VmgMb-pOE=X@>w)jp(f`0qX z5NHcpT`0hCpno%ZQ<4}##oeU=n&Epme)QKYFm@e|oI0QbVU4oEP#h?kPCZBPiV&?+ z-s|U799Shd7JXt)?5?W!!I2fCuoRXP=${~4#Jn#b7ob)S`tedQ5PE0rLS};emaM=U z%v=AgAqzeX8ja@4BBtfr-_1?gWwALK`?I~Sa)#XpU1o*Q=elzUzTEvBH>ZQA0hFM1 z5Pp~qFDUw_5(TL@FdSekrUnuNn#F(m;vCfHXHlw%C)6J_U{mKb zXx&nw2Zs~!I{^0{d@YOyh&~&m;>1A@SU7D)D%`#C+qZyb8W9ibO!w$&NY}mkjq!5N z;YK~En2NUv5qrHGmU&lZ8o+ox5wh~A=H?;Yn~2vJxw4&s;t9B;KOm8>Lx>s^lH`Xf=hc@SMp7uJEhOI_$9mE;5cXMyc^0q6!-&YXZH zg9|*h2Zo|V5Y*Uq3($aWY80raB0vVT5OmgqlOQh1V0Z)G5{@A{Y;dA`=x>3PYK%G; zbUKL)2GGz0B?<*i6^p0xyR>3J7@38h0`b)hQiCe+31s|$e(1(*FDTYp&d41A_Lx1w z59b$`Q4b3)#q2GaxHDIxGu0EKQ65hVWLAPE>CU`HYU$H@O&85}td9C?q17C162 zNY)O5^ZCA1m6h+lDO1>J+`pHastWnb zA_l0nWL9?vP0G{|x|`OO5cO5zlQZ)f<07en@I85{%e_kDLednzoAH=5wekJ3CmkCZD3yESpT3g7bTQg&DT1!YFry3AsZ z{8;Jv7!jCx^>rKmrZUwJEwFa<@cqbefQ(HPP?9|77_A(5UVB;xks~ZgL{B5QTE7)9 zC3&(pxul4&oD%+i9{Hutmn5Sh_r~pKr(TDuX4;hWaE9ypiUj@K3TbNB2($!}S)j=? z1#Jxy-l8Up_y064IE$QNyX32Mc>R$@;r6`wyA|nmmk~JiW=RYUump`lZ?QUr?+>XK z1ET1ENwp#Po-Yb7aP2?8J9JvFJ(+(hCIZQOWGPW_^ zeXjXnJ{qdK^l-z}iut9+&vhX%ha=fToUl+Kx`E&{oy@L>W#-|t0tgT1h}FmZ&4uJm z{iEkjLGw#kcS_2d`<#bS`V!EmlcQ5x)>C~o$~*b3y;c$6nYp{>^@!))mA&M-SLKF= zgP5D#KOUzu)DP4_UGqbJ{Csq@+Z0$eO=s?nuEA5OlJI>>b8n3^d@?2>w zGQD*_%|!U>ppRN&!P0H!Y>TsHs=V4BuOuUXG1Q7=o34C#jXlG9;mgvsgW>q)+Qe3j zMBEwOJ;rxf7(N$gR{%V3hV#vzoQ3Mn7BHms;(x4_G%#2V#XGAGtq#oBY5vq(SGAh? z?Du})=`+eaM0bvVp7V7?b&N{x?Tg#koFX3^6=P^b1H^}>?nNEr9cjTRz zZ>nv+()7Ff(>!~StYq(=&2z`*!ICye9)<7w)W6;JANpEX+h^-q`Ec^h8W&(- zu-hzL&SPGAFzB_xM&WNqS@*KX%<^~S{%}sX^?JD*G4ug-HbZYl#>gr2>KTIuQ)q3) zIu4=$s~}pjT{|H^qQ)O;8P&Gc;)-AzJk`6A2U!(Oko5x~6d#M-(06&MkWvhU-RoFGnWgWMYqY(7?e>4{H&o|?^%4v-$O z%*c@od)$&47e27VhGuy#L#}K-Bzr&Z9Kdkw+v+_@N}P-T;Rlboxz;%aqqI(GzX zD!=!NqdR;jCRo3!Y53Aa@y4S_^psJW<}Y%0(9C;O^=nuiTI^Z7=_K&V6lFKC-p1mW zCt6Jd>;)kM#;JZtUVX8tS(nf>uM;D%6TY*UW!T|$Q^;BPv|WvXCiiw|I(N6%RwKw@ z*Qts{6)DVg=^WQO)-ZJTwl>rP(pW1XLEj9Wep7dZG64hG#2Df|&>)a6#rjQG@?h)vU*u2Eo!1sCv^AfkZ1Kl>k`Vx}K;mT7KuTIdP3IOD$93gv2ZIFyV zv3m;-3ne3b-Gn({ngAJvlbC6B!6|%>zc4tEQk#7U$joqIo2CwU z&Y?x9iXd8IgWwmbfuQ)oC{DbK*nLHO#+5iAXZlIvV?3rWKt+5Pi+2v5X7jv`V7Dij zYP-6K=*Dh~o(HHE)7(omK*;}0OqlR_{p*vHdVXr7oGwmWp$n}#=O#YtkOQ!nGZ_8> z5_SI!5-;;FBl6YwE0J<+%f=u5h%#rw8r}y$=G6u6frOry-8yKwMdKhOCUDzl=pZ=Y ziZBu*_#QHhLVxpq@G$C-+J#~A z*}Nr=>CW3o#_FVNk`a*efK4$9TsfAk83=_MC25_b^~iSVf- zQf$q=OD(r(xC`>pC0a#$W*ydSK#YN7?&x_vc${>Hp;6C{Pl$lf?xC~dCE3t`cCk=u z;~j8e+w)zFA0UZ|bLdan!3>n6x z*?lx9m>!?O{seC?`NUoV$l-!#nxbR|6*+?QT5C}Ss^xAfZst;HOX03KFhR3|bQyKM z7VjCgzBVr-mR#^PX-jh$c_P?#8(WXuy80PJ9*r&;c2x8`aO<`Bl@j!3Ln81S&GuOi zW{=)^Tve|UT;Fw~3j>~NLnSjfOfwt6`Gu6=hbe#}rc3U(4D7JM28IHrWDs7>`$*1FHJXfhL^j0l<9G$2dUfCuIX%E`n7OT=p{u7P+>!tI#%x*;ZO*wZx+t%^7Y zOAp{f2oRJ1rLSIhcseMs7v!S!BkuZ1wQly9@C~-KPQCSCv$2OxC@#7Ghy~J6`!)D>C$<#J@N~(Ip|S~q1!wqk7}{Uawp&|Nb-$Q9pZz~ z9qtZzDQtRQt{r06g!mOhzEzPo0?VIlLD~uL&s{d!nN=7Y(~FQC6|7E|REe&gTRessi1Wp8gTx>0M=F4h|BEOQu6|s;~XuZHxXyH>+~_N zQTl9uzz_-SHTb|0NBQ)I1l4gj0bDDJ(bN4e=gP1cD%lqO{G<`*h;3Msf zRV$^R-!?w@6(me!xaA@%wCl<$uRpCDS{~ED@dlejj&h~<&Lc!io{A=krsoxNB~+B| zS+iI4jM|sB95z(`Ww*F&K`g19^hh7#v3mDJ)9%txTM%ZbSnGwQ_`}J{3p*pBZ+E>u zlwut{6qBL}mu*GQFI`)}uHN}LvEfoX9^Uyr&{&nVUUNEQwzzjmn1dLkmcGnTB;f1( z9E^OC6Yg*GOV+KctM22!(o3`NY#RB|BV6B0P|BJ|&hb~5bv!ftiME?%h0hJG7+ zt~h@xR(Mjg3$L(G19JQh)k5eU^s~Lv8`p2E)ZD}5BGU_;FyGQIZ9jm^7)*s{7WSq| zI`*p-5`^=R?;qC&N4zqg5i?kG{eoq}3lYkwJ*DxdgPczuJVBbtcn?}1!M$LfwW;2$ zGwkMX{PaqD=!0j9UE{;;D<5|78y}H_LOJujPp>I1nw1M{Wy#aEK7|VWViMA~x%65Q z3V!QWhx*WmC(W(MpNL2y9`E|6D zyxP8fWTMzquBec_I@G|8CF}0Msk{SXB3pTPf1*VetILQ3^^he`gPkHT+#J?RgIY6= zUgG|c7~wodl_wf8;;&uBkQTWeoMes4yTEV^GN~I%0Q~_m0bvQ zwS4N}C^imuR~=Y2Jc=Mi`$rhSmy$n!lfH`&Z454+7X9%~wDn2`M>k9ivA-xz+0vQ& z2I}8)pvy<@2(DeiY^^d#0&HQ-D(;l=Pc>fb<82FF{Rlg!i2?xtF?_`|_6E{{A@ z*^A5gAjK#jpJ9-@s|2M^Um~2ckBb{lqjn*f&k`EyYD^5ZKZs|Se-Y1fI4=Ja&_Jrhl5#^73%U{N znSaCIAl5~UunDpGLFJAi*`V7^L#bb0fe`p9eAILI+1_rai}!IomSegfx=+nPN|0Zv zGGx{=V$@9bP>DxGgt+;`s?Dr0lLvYy!3|um4mo<Ez&f>|u$ z%ed`}R_Li0862?^SWtZgKL#`M{`eUE=TGBc_1b3CbA7F$Gf{|}$KPlMj}K*Dzksv( zxVT*u+n&K_V5Y_o%C40tog90AyX4)m>f)-|UmH(qD99B9lDK_6S>GE>n&l-wK2)^^ zQW?VOvfX>@xP-)=v)+iuLM`S-f)Z)#h<<=BPB4%7g( zyy1+PpSdFfT_jp6ncL+z@g68R8M?0@JpN~a4Hw7=eowkEGB%K%> zmQuZ0JfYj){UJ%kHaW2{b^M_ZU;DXB4)0-hE-fb0_Vy32M;e5FFCSfoy|IK?r0rZE zjL^%gaxB>Q4aaJ-AzW{B7Vz>H=6diPgrxb=g>3D4|ME3#n(kEde=y|Kiym9GC^;gd zeYVo>Elg&Y*Tg4Ux-!aN+{1oapFtcxfV#&1W%NR)`yQ0D9LKS=noBgB$hlBpl-SAz zLHH0>B$X|uPSkMAC%&|wak!GxZ%gD+WNF{{HCOW~HYY_R>5-yUxb(f^Ox4FNni4Ih zrwUG6_P468DEH$j@e>FUr;gL#?saaqRN90U3Mk|lnv1&2Ymf$oN-ZYZ+KU3~ZzPV~ z=G5!(zh{s#>pqCAe{^wWZdmb(B~%oZq|M7WRJ3bwRn&5h?#_?)IbxD0DCHP93O5fm zA1gZl<|L}Lz=jBiX1k>8{DO&jiuxU~<^81c9a^JX43h@48Sp2>hJWdqe4krXfisQP zBDlwoc9==dp*k&w9ab`mPprzbUd;+#NZRyNBuiwGoS7iMZU|_p1xPBcLYZeT5HAgB zlZM&1?1tS0HZ4WYFZ)#Vr7C}!%OiC?3*SSqo6-QgrDr?=_cfShRS8B$qnEbS?7~*I zX7BNigp>7Ou8KDn?si9Wl52R(9$eX$ouW7l>*nE~Uhtdk=3Plm49hChpf0sj^sN|_ z-v6)m-aH=4w|^TSsT49H2{DSIY-LHdnIt4h_7L-tWDD81VTxoYga||SWlUvX$F4}0 zEZG^^w;AhTX8N7(&wW47{k@<2@89qF*dq2W!mog-=sFm5m;09gW6J{l=E&i&`=6ymKcSdqq_lr4X5*4qCapdZ zROJ}=GWAI}>XRd<%$)Qg56G=!X}J?G5t?6=Y`$*ezB`fc9oCAJ$BlsG224lXi0P}K z0K?#pq%Z>k5dGG?z+gnQ38n21+lYsiIRt+A2u8)3V8yezTq3tv?3n3{J*rn zE%fkm3wPIK8{*XH_|nL0q9U$Z&XG4B??F|*nGUTz-lh% z=)*Z1jMu*&z^F&=k$qk={%66_fQbE1jTK}D;n2Nz+{=J2^hPE|*z1rA>i&G8M z(;-t285UDH_OgM^Zao~#AI}Eyf2*k2CpiI1>cXO@o?}4GC%dc@r9C8Ci%F;M|{`5mVM7S_V(El!-KmxBY(xw?)af;O#+}dikXsUi4un7pc&*U7NK8K7QWKkWSMj>C0~&Q0Cj}D zN^^4SdT?2dmg)Vt&brdK8tklZPvCq3521V5Ew?5QcDA6ynk_0hhvKfuigXqvjaz{L z0|gOd^ptSHe)Q@w661cGCVKU5`sPguX2xQM&#Pv^6v;$T3q<_mGobCk-e6Q_?n8S4 z-R6e`(eEuKaj_b|ldb&t5LObb)-;uUYwCf|G6i-ZYFjR=;Y@INrn!9^I=niw(OdPK zP2=YNlb8I|aK-B~<*8V&D1scTqsNG8T!TAto{Fuvj9@+_R+7FZR}PA&6yeM3IVc%EE%h#^l=TJI+^;kgP_>qgkRPFr2t%nR@ zv?26{x+7wF2TDCL)YOjk`*~mvl!t(d$Nd5xT_h79P(|({|1RK9((u-x+ZImW`*$2w z0y?%n-Rhxe^UObg{O$hfpuvKiBmW2o@@|) zMFfY%bP0Gz>Mj{g#Kj+`j;BkKe6Y(D4ZTL{74flqqUM-3rAm-i|LL#TDEI- zHWs?LVKF0YUw?I_dnI22S}>kh=UdR-vQu+kV9fO5*VI%|3D%miW#HR{jF0v_3AeKr zn;BKFCJywzMrWC>R)zC=Ug+MyDGlv(`cych^J*g<*=a}RU}^Thvguwi(;fXQaLg!f za#;FoMYSuss4wR-!q=NcpT;0S%6^Th9&#F@or?AqY$<|Yzv3X{l(x_wAfVW*mOB>{ z5Zywk-YeD8Ybu#}80`M;HB^ShK+EOqhPM&xSH!D8Xv186cv;#hqw4_7Y6MDJ-ZwoOV`>9Oi!-fm6Rav?i>0C7IbAzcwUR!%vfDF zxaoU$+%Z~@BiK9j*rn`8HbdLHnHhtWo4dNl%OM&)9>uq5ZS&fx8MSZjK7}d}lP-zi3 z)k|DhmPVVb{0m{mv#hN=U*|u5{M~aZtGG?a>`gTBz^Gn$$S&b@1*y9qy6ZD!4-HV1 z%V{b2qMbKR_dWJh9`w_?arGySnl!kOVw1(Bgsjv`8O1{pcei(K+c-d(i)p+YVua3F zSj;sI5up13Q!r9X=)LvoiE60&Um`IiMCe~%pvU4)ibIbDs}?gDy3g8R5Fu?(T%8}}MU+vcuUX6mYZ+I_x!X39Y@Go6l*X%#`mgb{o{PMrl&G-#0UE~Y+-t0)jxMqg!uer6U@eagdil5YK^6rV{ zA2i+(u?cM6QURiuaHM01+H%n1r{#0rT_&x3#osBS#qU||GFplv&r(yVsd;7X62G8M zNnBckA*O+ep@JxkPk|}uRmQG{uAQUcb3}s4k&3}8;rGkCN6O^-`mV`OM}J3O-8Ey< zj=tAhRAd3URI7Qe{Zp%toR!j?w^yi}1SlP@oPTwwnKZXO&;X?kR+2W=8BEOT>gI|1 z?p>GL&H5bOx=hB!pF46s|BO)MV%U3i3zjHdw$B41k(#K%fTaBn_;s06DG$j=>K6j!f%7m@@+?_`>ylVfra3`5^|x za3IlO9E1JC6(_6>;yNVoR50Wny0!4Yt@RQyeH*0)G++Q6uT#(z0~j#_4vdTSe;~Uw z1nnw#1rAV9A_zJO(mH~60i!|!21g#DRZ3yCm3%3qh zCV2a5b+S_x%uAv+zE-|%71C-36e>9NAR*!=Eht=q;(KT#YWokxyBmg>MdL&Fe6|AD ziH`Jua}jqErz6GO#ukW;P9c28#x~JDOy$4^xHsd!d^W$)TX_%0P;k9JqhF(11x+ z21>{O+!MB<5f&2HSwUmRatvN?>Y^FFgqL zxQ{Od$^%5~z0xZpE#F)^5t2!#&kQ-HaTsb6^taXy5RjkVA@-Sustp{}wM+W3l*rqI zOnI&~ok{e?elKk3H~P1;a6hBTcTnKGZi#^wpwpuW15l~bjM+N!6G7xaG`&<*_z!{# zsWzY_tNE#K#%60&!S{}9Rl>QZBYqFA{#%d}-Nq6r&f>j_UGQ`>7Pq#y@ns{FJmfPo@5#Bbaxfd5)GE~w2bxHy_R;ISI`pUyhi9DIj(yP95ler5%ef5!!<%$8c-lDbN zK_Lp-%<|V()ccJ*i9cHw?J&c#QForZ(z7>V?#;Q22t{#;UhXtoT;4!98f6sm z`-W{_;+v70DYjnAy##?Va7lx>|cy zHVuA()Ft9($KBgZf#=|z~at1c;7;l$l zzRy?BDc5XZYxp?U%*T&fci%xlr{C>LL^AH>-3x*Oi-qWDt$me}yP zy;T3~DX*tTN8vx$ADb6WkFLW1!m{6u@F?W(mRazJk^B;}%jKeD5Se_?88Z=n#qF)U zM`7*HE3q<#m@x3 zy-|aw8+IkWUN638Eph@eAtzJwJNIMH_WJ9F<`@lCf5e0tOeP=FzSq1NHOj3PL zk&V1ZwuiGlS18Z=k724vQ7=Wz()P_;t}Ncs+*vchCpRBDUO8`>AqWvk%l5+ZN3*l1 z=!CfuKke1y=QpKFVbIaV%olu5=hyF!VQ6J`ljEa{6bVr>R)g<7HB_eI4j@%%HTwos zdC^e1GP~l7ZwRMsg~N`fYP-URfXSCdRCw>YW9&I%*2bePow4LC1l{6d-V%f1aD{d$ z%=(iqe0MjCV&B)t)U)1AifNoqU`vQX1}LDRi=P+vWwKw>&jvw+`gdh;u;b|}`n4K` z?HM*kvVEu@h2?^4YhFjH*jy7oz)vj%Hl0Ni<0!_q?;St)Tx|2@nxq`_&3-Y-fRd32 zMu98$?#DeEHBg z^>ep*YM)BGgXLQ}u|E|JG*ZvP2>y)SV%<#`rY>jE*zY^nOB5rk-p}LOv)B-7sR(-9m~a6 zMog%yHw}|KY%~0VEo-W`;U)o5~*nb zMfsB$0Hksv6?adgn+~Fn+H=a5czw_tNU*8R;OGyE_x_=#1@ZAv&-+-AQu!t<+hC2x^Dcoyv`GIaDI!+^e#1hL*&9QfeujDOo&`N5A{TgJAe zf0LQRz-ZDyv#lV!HgU;1*xlCyNcdUcadB%!QN` zy4sl*aboVJG~gX^p{00Ma^e)eb*_ZOvAw#MSkoET6+do%T=8zznmjFjCo*V^JLny! zN33Z1Ccm4z+)-}GXEk-KxBBWS5|<*=^vMe)aohtNr5+9L%3xY$+?*VCZ8G_h)kWxL zvolHQc^ZE6a%xA_+Hdx~hYUaE_)3kwqsz?;^A^8NudggG7i!J!dP{zBq(u5c8xKMq z{aJ0;yAM0qg=7sLQEkPzTf7tCCgSCuqx=YBOl|59!wu>&D?|4u^eb4tHakxRI3rPB z46Pn;DPmnhSx)8kAAvsB?BL`X&n|PnuYs>~%T_@aqUkFWcyZBNG4!Bw(?AQFm zx_%T>(YHMF$KzkCLm&R^c*^gs(I7aKgnBf%ZR#|lJ2-gi!H$Ano^gJVkkx(8$B|X7 z5Whs#%N{w}7I8>%lrH%v7Ub7DouJ4XZgOj1D$bluD)}*aOUZ_QiR*IMg(Sf{d_@hq zS)u&j9gCFo=jt8$5Y`TQCP9uUXTtac&D_0+hZ=9e%zfl5B}k7X(Fo-r%a3TO1JoZ@ z#?@813Gb4AEk)PQ`~rOyvL6sebQ%UgS~2Zfl>>cC!CU*7D<@`V*&UXyFNrwq7^aDg$3dt4$h`)zdtbND7edk^(F&wh*I!G3Bxt4Vctn^04 z^g`L{y$+^Sjf~?W!AGuFC^FBK`7-=HYSI2})XK}00SUbS7|i~;S>_kz8rjr&D)pJ~ zVy#yG(pQqVxxvo_oi#}t`hHOUlgR`IlLN72FMt0R0 zat}PvP`266-W^6y^AG>_%P4o)takWueHH2aU-?41#}zFYW_1Fdas1J>7V_o=|D~C? z_W2)kbaV|Z!)HC!znh%es<`pRbfUORt*bWtH9RxZU&(HB3%eds&z*Q@V21Q8j!9Zn zv5@@G9l1_bbzKzoJT2H$X*2G5g|`)zAj`bazhPZ>yC9$Gy}97ew7HvWMZ}81cDJX% zEVdT>YluE?^nz+_`BCL7vkEQLeyYfTNtK`HgVVJ`38cg~=HeE-?Yr%j1K(R}8H<@41FK8+~GqslF zBKBZIV%w7q+J@GARs@GOb&g*{;PW1fGVp*ItN7VxC8X?|4O)(eZHu^scjRHpKH zn*-i;e*J2b`O?{~o-tplq|hP98HU8!QyZ9?gtr@uxu@{m|kX?tLUS;do0p< zMQa6N#@`y~>ts3Va*aEkT%AtUnmd-gkYcvZuEy-y(9#Ax%0rrA(Ydd(mh|_;SIV*$ z*(S_Ro$Zg2PKRem0=p|%eb2v#=hpcii!3rUj4?IkziauhfFT={Id2Ew{`p$i^T#}@ zFYSxmlD)tDZ>(O@@N<9LkQQwYLxTd~w})PQ)ONQh`qW~3JL0sZuIz$5j}xeOF%R(u zPaB{N@*n4y_ihX*Z(V)w%(Wu>H+;^73wl>mcvgADM}kdFQG2bwud&t zUMl5I*?&X{5c6!=!_T$rEShzva#FT{mbc!R>_oh%g>I<6k*8={XiWVw{%qrd3#-&G zS2H1s)NA~f;xc9zoK+;`x&Pos+vLeC#-*0=Hpo%eK~Ph$MD7X6{()>$4y8k~|u%UtgA^`uC(ht!~M_2bunA6DWtoRI4h^S1=b zMdl{S*3qo!-hckdJcfv#p2(b1&I2w5uYmbS2M=!SeQ$rJB&h{K)sP6|;%FO%%F8?- zV+qHswvRFo>5yQ}o_`=m;TINZqQsWx(maVgnL6?i>LUN;z=dYW0rd)|{09qm+BJnn zcn)*uyal^Wk*?I#em%ik`F8qZUxo*~>6-m-On`?3Nnob8e>+H)Rj_Z#Rb&HhxW}Lr zc;?&=F4ygY?K;}J#?)RQJk$*m^9NFEflEVJa&f>f**ULYz-YzU&~^j?p)zy}W(ywV z#QY@enAh7yoP1+~P^M=v7Lo2hfBmq{2FvIAp zP_A~9)ve{5E23hn7sPuTx!bZwT~8mEQ|dx_lA_uP&}L1C8}_*K<`YcqPwCDTkEf#} z{Zxo)8#6j&+vyLT!)f+OTjZy)>IdIj=>&Tit{f;+ZiKg|v3nQI=wN^4#}1P^qZa(} zKWYPayvVH#L8YC*D&h6xSw&c@xu(%ON;B`1{e7bWpW+PrY}*Rip^YNLPZwg<9bes= z!y_oq5|Qln7wtz9U%Mr29Jjv0y}{~JwF_WUF>x-n0OdojyOEK%ZpO`dj4JTj?^k=( zI@0c!abxbVimf$Us}tkvJ322RxMaNLI;ZW!#R_wd$}k0oM|Xb;Sf0AM2Cc;9+R)FU zM?I;?H}zkPN>Lo3XG=|YA23A!wr>R)BkNVuxT5$~*fGTK2(l}!ab}MjvL`eZ{6-qj zNioLvxxZH&HNIGNvs;b#oS#S;*`de|Mqhu`%*&`n@_G*rc~Zcy=j7fckQt0vsRPQc z3H1J~J7synX@q{d)?AVJF4jbi)AaLkQ)9?1Y2f4*;>SxRHCbazqsTx3<^XwCB>SPs zHm(x3bM`Y(emNUqX`uO7X9uMh6$J<<8SPDMu5czbYjBgI3x;A*x558b{p)`pGK}g2 zjttd);P?mfmAz?ldlNwmh+hEF5{e;kW-qjO;4IklMsMK{gu~?C5icX!q4l>%_p?8g z!j3*eLHv}7Az)1!%$yL`6)vnVTK)V=Zo!PbN$BoJfaT6GH#&Hr$%EnP|%{}I=D z3ZV){wmu2iPJ#LwK%r|nqtC%l;)4_!&_$RtONl_#@s!%y?5NghIrvfm_6tM1!|O_G z0>@NUH#Z^$(;fh^VUrdGK z4Ptu})qI0<*!3!tm-c~H`$m^n_lm{z`#J9JP{+55o&4oNA7X2*qGw|EjQkEvv!aP_ zoJ5J@8KO!h#*?30ze`eNYl1j;dnT^AF26mI4n?JJ_8TE)B87AZYp;7-d|VQGfPeo) z;qA#`^Xp(06i%?Fo&kLGdO|u24G{=G9o*X9k}x=AxSyNmDBJp?qox~~c(ZY<2s+Y_ zZcVB?pYpf?K_Zzm5h6|7`A(8kEvHviT8Ans(~f%>@k`dQTsPl4Fa~4NdC)U(?-5(q zZ*d_$e-FVktp&={Q!|8g8HiY4JQ&-zqiOpbq}&GNYwek6hB3Rq7N4l3@Py!w^5<6? z&TsGH?tzlKa~v%=(vwDmkC(taNHE0Ly-IE@~92|7}^ z=>(k2bUAWr++GiUZO}0&yYRb3@@<2rh*be45ezldi&PQ9Kvij{MF1$sb~rE9UnEcd zfe5KEQ2l?QSLF{p{moZJ^`-`Ue6)!=%$8HSlJOwoh|Q59|p< z-T>M?IeYXLVhI?X|3KR6c&4Gv_JCCH_TSy7{`e%We{6F&stH;pO}DweYFadAKY3;a zg-eYmb+LGR2!e&B0;yp9Q&++{xk zkt6O%P9$%Ch0gFut%fMxE02L|p9R6VC$%GGg$y&weh($b-;=v}m`7?foQ$Ug;Lyu~ zfUUk)?BMr$IPS1G;Awhn{Q(O*Wl;ef&V%lohn%YcMI;8%+%CZBCgf90=?L z_PNbSY44ahTWp#Zt|oH9DMkx2|4TgZ@09xC?<&6br&f!~cZI*GUW~UA;1AowwiuUZde)ur+m z;YJ@Weeq7{{{D%t{h)LGar|~-Oz1@?$s;d#&PP8{;NHsNT7I-!?Iqr4`tlt0H^P0n zAl_Z<5`MdCVRkS6alMH>OCcp1@v(fpH1>Pfk$2ADLaU>*Eo&WkINUGPopM8F!sky$ zW=2HIaH6}IKZZ#u55K^MGd=pN{J?DfJH8>X&hlsH^@mL7C6tr3ZWLLXzbjBr5FhXK ztd6KqaT*J8Q(e_xR9dwA7%LusvoBhd<849f1O2ytg|6EDPwJIz3xxS2MB57nPo{Gx zsow2my)6@;7M-~iJ~Ei%*4fPZVo7b*V$6UsR>NF3M_v3@!?%SiZwjttKeN9l8Nv3U z=J06{%1`uSxPDzd^8EqiNYSXV<_o5L{UC2!@Z1UYDlGPR6OgS)+}7j8Yq(!YWsVPFS@b8?qb9<94|Er{@ zaAPEy_}TG}2$g`SMc=Cx=QhB^G@E=3sHz}_H@f~hiBcsTgBBy1gA_vqRs!naFRxu! z^%Ik~OYzp3?RfBD1u&XlZvQ(l#t(S?3m2O!A1I?l`r(%^zmXn2u$Rg$ZLOUZ@*t*O zr>#QVFh_vI>Mby?)e6uI#*LJSo5~-WXeWEOG?QX&iyQ{e#vG?VEg!b<`4*qhfhmcY zti8Vn(2on_n7}t!Vn%`rO+b*LX6WWfhW2E`d}oOW zl)6K~aILRpm~gp+lL=(ca|TUGahu%UX4v4^6+|q>QG1a}lv`wuBCihwRGLu5far9& zt!3P|r%!%8_QYlAcoak{he0+ZKx|qrMTn1^bHv2b{AX|yJ-C_bmk}Ue`Zp#dO}>ug z5k5W2Ya+z`Ch|t%CW$MrECrXMOc4Ok}xu}ZjC3jO2|DLjS?37m9f)C$H3Yr?`NqR_ zqQ=p$kp<&W$+cSwz#!zy_#4hhIRR%T9UYkr!SVMyy+dan)eHHy)ULEVVM9MNIRb0& zOoNadDk4!=xtTOBv(S)tt%UHOaq0EUD3wxj;PlPno{()}NYvU9Z=-f(#&js=(B~o*nKi5~W@b(&Xa@JaRjz}GmGkA_T|4O=!WllfASJQ(2ZXjK> zA_)B#*)az@SVvG@s%h>!11PYA;Hfvbspt?FuQ$7TrIoJ|3|QNWc;*+8w+>B;rO1GF zlmJ0fJCyIVVc4UrQ(iGdj%tSXj0O94u>534M8cI8`S=r#mB;StmWgqvyfk{U`v>At zzu#Yk-4;2yvi?K^n|nJ}ZRWzORiun9qQo&H6QxozC`~o#Uo@=v=6qgK!21>b@zJy- zU{iT;7_GAjTdnyKI_e~| zYY0>&X^dA2pKI@{#s~3nRuP?ENslw`*vu#QUz1e3mMf~goz7BUo4b<=F8w-|Y6-Aw zt54p!VgDAk7Jo(~|T@5zxULJ3K>`Gg8uD?Ns6_5i7zu{tm zx}{+Q;^~#w}FHAp3yGV9cG@VK{Qi}_8r90tw-UVT@XSDO2`;Qxo+}$6GjqzL6$+B$GE#@s>6v;de zqIx~gL@kAUUkx(XP%50~m1=;Uqwq40dbzfEBnQQ&2pXN*HL94%?ngmMm{yXeHI5w6 zsrAL5SL}x;R5{9qzQbQ+>7f^XC#1rGN!CUjJ9P{Z8S}<@6?uy`h}lqE$1l%8smz9n zO~^oQSo4nT%TyI3i$HhbgZdhEyIwr9;nCKT&v`k7wk1wLb{I^2*6g-*1pX zxP2QI?<>>@4Kd`qNpufCIdot+A@gR5&Ht~C>liSy%;9oI?DpMu8T<`*l1Zj5KP- zKJzugR0C`Kinlyz)YhG^vh_LHaw;NjSp$nw8Js7vWbmv-oh2M={JMwEhIqmm2c0O& z#BmuvlVPl*lSQ)ArC{Np4}Sp<+l`@4%;!W(yvX{&F%2Mgy@)GW!?u)5j^>bkPuE+a}6iD#_tihdpbhFIxgs68ALhz}y$S5=$(PQ=Ftcl?^w&ck79l{4+kS?X^je=Hqjc0Sg#wZdKhp}?d*$+pl~2}`*mEq+af zakgdJ(%8PLj(a1E5}nj}{9$L$#?=~3a`hx93f`|MBQUn8P`vdc2ae@+IVtGLc<=nR zrQAGR3N|Q}%Q&q|zBjKpMBF0EB9s#zTv^oFc{IuSVlY@GWHJu=UuBc;eUO!zvoMj8 zeedzsX!u&xgY`Q}{`TlpKZUT)SfSAJuUV{S>-SX7bBZM1dF!)X9MT_Ai!Yw93MR;J z)s5ZpPIS*aD5pdnNvL6pWa)bx&l0(6{L{<*UEKMZg@Np()jq;`4z1Y^%0L98$$n9$H7$A4m>*wSDF<#k&s$g+B|gWQMg4gpKMowmKgdVN0<+h&h;??3pWFXO!tI8rdSu zSYNT_>}2%kT`mRIIQ_`m7bA|DL-O>nT4^F_dhcigEq3ckO9ycojU4J`Lk?~>XS%9Q zLvOyBfScvp0I!(@1tDu5Ie~Um(FEA9{Cgn%M4j+)~mmG%CCL`e6Y?r{Tyu zW@bi_$?SX5nKo(9=jPS`&5XVKe?BSkzdb$i|E_JU{qpgDoluJO{sW1iaog^NkO6Gi#N{io)94M82QEGHu zFedGUMe-ET4F-*vEqc4n-Ec{}{VKk@ueM{)#iwEGie>fPy+8u{U6#wJ!_>oPX`P=z?nF`Q<4)r?zHnBQO60gvmJ8%-g;|7<4Q4! zjv~oAsq&7A659)o+1&AGe##-wbzw(TE=|NqU$H%Z=WDSfnlYbPZ~p+rF zAUBF(UD_|MakrRW_PQ}@?W!?Qup6YPO3iY@mTB4$YD$k~{kqBTPO*=uj~7!k%2O)a zs#Z*TzQz-Xal+c8L_Q@GW(?{p$9g*6D6PQvgpyYZA6)-9@$J&YyeLn+CVVB~6xw89 zrlz)6dKCG|ls$Du6cmE4j`mTEdAkGF%WPJkXck(O#hrItv48cdE6y&VJh`^oFHh*Y zd}??9lWJtJiQw)8^Pt#o-EiLx)k=4MKD45a`RNGn>@W89mr5dAHTP@$L1^K98*Xg~>HSa%Z zloKVd4{aB(H?X!&V@_SF&yeRy^oY+?sVsJW)oL9T@J@oGBisJG&KCIlg}tSxO;PX)xU4hsbo|%aVR+J?2N1RWM8!s!!$mG zVq)mT_QNez7(?ECN!w7S{WSXIg={q8eDl}IoJTFu6SpNnNhr4F+8)YwS?q^hWv)^L zlG)2rgZLvYAz3NQgCwDwnE=lk902hoA3qjF8IBGFozc0k{C_6V{%11n|JCmyYIbij zG8gv)IBHAZJXC{QarlR6303~Iw+!v~=eCi3`koMbkc}m7m z#kBcn)u#)3eoO|>s?*r>D6DC-yS0Oy(B-Qz;z#IfpOq5=ZydyL2CEtf>>JhS=n_kZ z@74Bh&UQBdygbuY}GIW9=zimJr(L4o$c#zhK4=$zOFP{w3K{3 zGyn3=+S6JBDGmuP!I#oGa(5!>-1k6MtPD>!+s5{37pBjE*`)xD_5I fqI=|DM8*IA`aiwQ{~xvo^v^KA}*`g@M!|2`ky&;R?-!!7Pv*Q{AHvu4h7t~*dkK^p5e$!!P(f+Z^>p#p*2utNU6 zg${o5rrXvW{6TClsbQ~bZDQ|aU}p?@^2*xKm`c{tz|>g9*x;3m?GIxi2n5XpuBKtH zA^%Lk$l8+C0QntOXG zo55vV?Tl4j71WGeUmNkiq7fCL5^@#*3s@T48&El0T38_joP}ww*A)Ptkw0dmp}PKx z{cB;Gf0WXYSE3TPwlk*UVdY{mV&~wX;^k%K;O61wyV+X%@Sva@_cz6Xk zVO0P5j|M!=?v;sviiFgEo(29UOk-wmZzI6Q=H%qW>cqurZD-2H!Ozc+T!WL71$=`A z;bLWP;LKu$p#66R31ftj9o)tqZf!+{T+zVL+QD9!259=v7A$S#<^L>fh4_!5fXUdL z4Q$vrSlQVuEs^`W{x-s1#rUrp|Kqn2YA!a$Y%0bGYX>_ca2_VK{|W=!{l6cC{36gs zK+z5k4#mJi!rI8e(%8ygRzjEt{0r+V_$z@Y+&r9;oZ?SloIHGzPdGUE#ku&ONPy2= z;+#*!dAR>wVTSzA5%Xh)g&AYXaw zMG^B4$<5~upX^nVrL?~>5#BOJgLdBWyBTwj@Ro(Q4r&eRgzfEz8UE1Xuf}7MbX8A_ zp<3lZ&-12Dq-eWq5mdF$iXX*JOhKHu1dYj|hsT_M5~ECyLR9|vNo~>g zlf$s>2fuyW4`r^k-voSXzkl=2FD#h8$Q~T%G1u!nQYKAK5;7r6);3Kh)5%Ouo_dCj z9qLL%1nWF<;{GzE;B|GRP+je*uN!aY;81veCUVd||B5qP=q`H6f#@Fh1Cz^3OZ9Zy z;UC`ox6*N!mC`6g>61L{ftpIcm-VM>L#(<2L_|2rIl&VdIf<_Q-QBVUFPM1Q)YFw0 zKacdflI%-4HJ46%xV~IANusDY-!rIKS<&qrp@y=*WlB29df)PtmpJ+%2A#xyL1dW4EZH$^?&gYf@vJk)^-c=t#I*$KTS!6BP`E>ZVwl;!6 zM`z@HO$|e+v#Zoy7q_#6v(u^v$w{|v#Yzeb=G>+rkH>yMNx74lv<^(v<4SVZVRPW! zTvmzQs?2v@Mo<vm+O|)|uQmCxTqukln=KVd7KfSiR#k0BDbM{O_ zX<8te-~N>|jg3X_gthtZ`&eDC!Df9%R{^H1clLyYtymC!R zf^9-V<)PIz3|PmQ3 zi}RaB6yFyv!ZZB?>$Nvh-#S9r7w@&ctAm=)UW-%BmTzxfRbET3Cp( za$!Dd0+)bb=Kj6k=8m&@42@D~*^dm(`tEtGsN|Sfoqr?Jh2tNM5#TzA)_(69nNvu|5)q$Z<(sCg@yVH%`yM= zMK99-b`O!U&B(du;?vW5n>%~GRrm1lxMt_)B_4UZ!`s?S=1)(@o2A~#ozpXTGA%RM z{kJ>pJvotl+ti$*tG9Y|aPdsbM&@aj)V$Oq?~5Rk2kb3}M?5#eLhFBt^6#km@D}K? ziaH`A{-1b!SXcRj?U8+oy~EkMcUZ4SGD-L8a38y9IzG-2Frw9EZXP;`W_8o40#yT`}wC4y8`%N82WEtNHbS(s?YdbJJ$2t!3D z_2WLJKog5~A~%GcqU=h$^nXbcz<~OpQTbL!`)8+16*v8JMJe&-esn8BmiX4c#_S)+ zw;di0fi0Xj4d^@PKTb3)UJMHa-oxHr_8$DP@Le}J5hTd&@Yo~qsmn{JQV9v@%lhs! zuz-AH%dv%u`pDS!uV12C^%t*z@8}nK-Tiy`#aVME(k?4))NES?4rbirO99_M!c9#* z-=Hw_#l{m4_2&o2e!@TxLZffFbkU78esf zCcdfvTJF>}D`x+Y0+X2hq`QPzvw&^T%O9yU5z<>!?U<~lMGH)%!@L@adf)lyZQj0R z|H~BDTkS0lmOO)l6XhLJic@PvU(Xr$lwk3{)&g$(DHmkpD{ZI8jYK^X68Y5&Yn_5h zkXH<#i!;$2X^r|NF5a-$zjowaSCrrPsTn7l+l)Z*tWr8&C2rCrGJ;H%ngW5)pc4Y{8~Bo{AFbS+VatH{Fg7U1-YMCL9rlvOs=z$ zo|>l1ZfUf%Gh?yI12Qxak@pOH`XRu&ugpcRJvP=rv0$t8-8+vo5di`Fcj{>n{U-k2 zp0E7^0Xz;M%Yc=yrkzu}Hy)b{~tSYe(x)g9rH1Y-nt~ox$ z6FKQ%>(w{Y|t_=5OD+L@i<69@;R(Y zq9i=*+j$_9VaVQ4!v0si>ZCcTBpt4W#e=#M16)0`fKY5sej5$~$oG(RV_n6S^#?Mm zo2NRBEiGZUOI-#sP)A|^ik@c7nK;Srd=2*TQA`TZisYG{Zyw`;=raH(EddW?3nn9T zcScqecqr@mtysCr$b!N{%@%Q#7K8zU$m>k)nFSOkj^cfR2UB6OwyudAoVti2Dz`dg z34|QJ{nr?mx|0FT@6J5jy>uz@OZMDlzF_=-co#FTtR+8vZS5uCY_T74T^d1lL7sYj z9j{l_InZn-s@aP6x%m?R+FE{#2M_{QeZ$Gp>asF!L$lvZz?&0fZiKU4Z%4V1sqX0m zZ_6pC!t=vDYU(h`U_}jqjrC_#5N{lt_;}?!E8&sajDjt}UgKBwVl>|8*JclS1NO8V zp{Mqn*~;HMDB%35k(xau5CUP9ernpTWH-`!<$lHcl^73Y!RLB61Rw#1*MsEO077&o zDImBehl#51tpo(3PUCK7CUEiXga}-G^)EkmlTzb89%r-y4k*ogfGncr5pXHLomt3$PgRw)MxdeTjYs8J(&0W%_%9*g>&3s^WxlJHVPfXkv*u$% zQ6U<)HU|d2mM!;Cgw+jR&0cn`Kf*)F_{ZAU`h}i#c3Sa~5?(G89Un`iN8$TGAcWW9 zSY38tVW@Z{-uuer0w@jtSn0zPM0yiAy2aLXkna(Xq{R9DtI0^2C^Vc=2*jfKXEB3@ z%P;ql{>@G6EBIRZ1r&7@6j{I(7$3A^=?gkhem!;vc@4B!`nJl* zXt+L>;N?y6`#33~fhQGhjJHW4-nAL_j(35VT}|K7sZ_HG4LBk-2nQnqN!wKb1$ zJgRgFcq5ciGEgAlCB{U8{;?GmURSLwT3+HLjo&`~*(+hsVTZV$AUWxoZ)Sju7f^dN zY9T+kxpQLNbGsiXLXV|y@Yg@~6l?JuI9WH_<#8iC!Pbac~Dmp~f+ zk2%=AHuD%~bScUAQnQQ9pW%^?!l>Y&g}DKWcQKZhj>lfVqf+RvP*x`>ZB`EUuBLu1Ea-^qPS@h!gf!m2754yUX=Of6 zB*1yD@58I8NYluW{^vAA#*(EUQRY2;dHTEcaR?I}0KClqWdRA3Ztbur-}Di4R3RNBd)~ZDe(XV)>+rO^sFV$52(J%{Ds( z68zo6b-Z@*nUU@K=gS(<42eTgl_qC>|2dVXu^@vu|7br_|L~);o)46f&p>lN8fs!; zVInsWKXWrAvApe}`}^+;L??FNE^~6G zGGH;@|D#s4nL1pyf2^=jJtu}fD~`;W2_Wka?Ml~`d3j+x^oRSCnJOeA`=_aARORM6gb#R zvaI|-TMMKCOKnPQH)&g69FI$oF2GjSpMzRKD~ta3XWxg}FuOV!1ac^;O_}m@blY*T zk{r`0%U*$T3kpW12VUW{rbB9>*&Sj83{NV#QOqwtwv*+W$ogl#*yp|@4ERw z(wpG-Xw(#)Bu6)Hgjcr0%MMFr2!zqE(!*R_4lxg^N!WV#&+@2S>o*lAXVFp}Bp{DB zt@vMFtc{FV3wil5)uTX^2#Pj?5A?cFVq9inP}D|>otBU{J1tlXo8aQ_nzxnH1^H?? z92ie#y%?C|5PI!%1auHCKTohpo$5J;mjKEgMSvW1L#30&t?(n25y3E84$gD@xfNr0=V z2Eu&onE@IEl5aInn~!b%bhG-)RATxD4Xz9^u$*|R9s%sBq%GRRn)&a)wmxKKdU!Rq zw+C`VPHaoVerPvCIr>)=ycVh@kImm7HJ14dlXGP8$pymExHb3l4FvDx6{oTKVEc zkJWZ^qta78Jq1w?(d>U8)@?F8a<$!?$a@vQP4)aw z?1X>92nwDfN&j>wCn^$81}z*rHTz*ng#v5?-nS-vaEckWvO*0Ir6=m?MKcaqplYGdbF}gE6#_OMTDm|tk_Ed?sSmP)g}d01I-&uN=2Qa;Y(lp#}@@0d^xK7 z<_-xxLp)N;b9f?~n-qp8oo=H8ogSl|!M&pTxHq4@Pb^+lyxRW|lGq?l5{~yLUCF$4 z?pU(7uz-VDzYB+eOR=0lNFcMqLg}4HW@a@2qh5513NDHWdkhYl<+6gNH9V3#Aj|o# z`2l)zaHnf>@LCWitm2phCoF)P&HBnyj}q1?I-gChkCJOCJW^kq$C8+3O?Ch8e%}a& zsd?sbTegN_)Yb8KqF3HtjVFG7yj{p@<8IOCWjI%xrRz0r>HhXwL4!q`$Jrn<~&b>2#I3XJUun zvH-Oj<*CJ|O65mEq@x{m_c5HvpUGZqW7FVME%IPO-jM(_x}C<&1cWJ0oM0b z=-}Pap{X$?J$YAaXmNjclvVynXpNf%+3xPs&Aq)lD?2zg$qoyArxp~hA z_9i$FBhW4W7Ouf8zz;UWY`zN`!#hhx*&$a{x`-f(N^V>sfpJ`R4%4sD%|lBn4V_C57xeq+mr6BTHoTv6TL&pjP5w!QEeVfvLRBy;D_ z6+$?0v1sff9mDGJnTNY8iu>cM&=?1pJ3w?e_y&pjL|!bX57cdZ9=RARei%nXK8i$o z+x-&H$c;8PVc4!`xhuEt2CQP=vgg?mU?O0xuQ0V!MeHSmlC@5bM1%Q{e`sWccpFuC zH6rMkUQFky=V0ClqQ$OxPf)z4i4Stzq`}8D>bpEsP~l)LDR@K7jjUxa9Nu9NcCB zBoFu~xdmQs3i2GRU*@ihL($x5db)@YwnuG$jKE4%(>416pw&UWrxdifu@U`c0>3_b@h#{b?DR+$WS@B-p-!?@la#`&KK1 z=2$HA6(BeE0E9dMpeU@)q55h%F=|4Zv+=r`qD+u|XcZkahrYKGlRl(Kn5S`4CJTdQ+I~-Pz9EubbLRg2`?imF zVBpMV_m4b=`}&vQa1}^*cU=p6d#@5=wzuhORqj;n4X$;Mt1@_9oStIgM4&JI_0T0> zXK201qv~RFxE&t+aVXi<>8a|BvxV2p&)J_pMV+6K>dv;^)Bibqul*s>NX?mt$CaX% z&G%E#S5DLG=Dc|ZNOW`Awe?X$O>uM?H1*&=1(Et%z3-w^Ojf4w#Qg`q#Yn>O!L_m1 zznOnnn3m>*+TMO;q?mumoDC^wz!sp`KfH8ReB5}@{R@}Fh=M|>6;m_t0a;RyS#HDC ziDf)n1bRODpM%VA3vnnr!^zclxGF8-GI&h*2_5||rtnl*Q+oPY?LoB%G9Rg+WH5mk zH=gYFP;V&M%10RddM(I9qORgYR@v3{C7<7AF1}(Ucj^gArOF>Cul)ApB|<>pP{u(; z1r`3dqa}n=&ee@!?)2=DnDo0VBQKLf6cv<(*8sKSsq?(lYq&>Nyy0&4g$PC@whFGR zB(3S6<$>y1Hgta)R~tHUgy!llOn`?3*6&S##8@J$YtZLU&v0&phFz?K9%UXt5vj?> zbSoe`U)fRf9fN}lXe4G}5c7dbV%`1CMY?M3LeG^G&W%Ly{?jwX1#9KxcxqNYx=4Gd zu6`MSANeUIUiq{3`g+L9mKTeS`?)EA?}=n?Dup8NZ}hsltIxuG$HQ&kzbMfbY>OEJ z77H;QIImb=ZZHp%L5ux+bg{I+aOwO)pFYvhIq<+AKT3K=|9rPK7!9O2YqK_~D@*Ip z@?wDsu@0t073kxGxb$0Dan1+ z{p)jQN6*{0E+8MvCuv6g2UN=k5$=DDW87?PN5Wb{v-5iwh%|$dWGtMc`DbJ@Ps9{^ zTb7o%_yGbw7>+K2`Ntnbet@>A!9(Bp)F_>T;@p2$90kSnaa*r zpcax`yu2l!>hd1BoBd|^4`|R8i-Z?`W8XSH%#Irk0Rc@GfR=bqF=8o6K$E~N`)VAN zKY1$dqL&p!*OyK4TnGFFNl1Zz28DFKN@yT z&3A4*Y0?wCPfA*Vu>GaTRQUUaPGw)os@PgJGL`px1Hb|xbIJfv(5PvsU9avhT`X|8 ziC!IvPH2m(Lg(NVM(^NMN5&^|IfX2XGf?%5Ko5vb45H0e&bcL-<=3xzlN7#InxF?{ z+^ks0)a-C$+ypXL*ch_~5>)TLMx4IoREw8tylYiP~h#B`FRmbI*n8QNfZ2B2j zi5%!Y)YciLi z9@9_bPk8pVG&Ho{Z+cS{{n@kgkDyGGe*}TnN>$%=aq-yFHalKkOHUVnrp*%ib|x;{ zP9gPC;M!KryOFm~ko}a160)BPnZxLxHIkcKWA>5+n^&1VK3@NNXBkKGE|$o*gDl8` znW^TF>U{6UR3x0}(3hBHQ&`yFTcN8xHe4Pv;{V|vv=YDyQdN%8AFPDq5?+i_5G*K= zXxy4Be{Y6cZ2jpEWgMK8leSublXtHyYbmzqu3ilT1uNJ+eWAWt{de0--#pw9=19q3ps==fDEjuMZeW>mQ#ui*a-k-sxXrQ49y`O?X!B z{#x1&@Lw}B6mt%_z4tJ^D2+9{<~0|_85738K^ek{?9+0B!$fTb=y~I~*(oQpu$Fl8 z^0GiOt*-)XMw|p>*4HsQc1iaZ_Q_l03!OBC?PsuEjp=E}AH|pXli&lB#ol#0of!*$ZVA#gV z1;7yk7FXDolh@JIO^F>QF!%LX@mYX)@LuXnOp!nLI?+FycHt_Iy}Le?H}qVw7POl% zEOQ=%*&tBslF6=_T>*G=VgBa05Pl$}aR|wKk?riCD|pyoXK@aLG%qMhcBwJ=`fSO4rv3#de$Yy1Tup6VzzUH53wA86ihX;a=?2EBJ* ze`TS~he14l8)o+ilt5b=OZB8O&6fb25pS5et|Qv&0}|6oK79(K)J#YcBZ*^@j*>0Q zEISZWQ5;cE?f&kXC;`#8bwAV}3t=(9ZO9G|3*+M7b>v#IQbi2J5B7vUpX4*v`*XLg zOM`-S$xKY;B71c7UVo!DUvE#)w;uZXmcfMWV5%6 zl@810PhS*K;l_l$>1ukgDjMo+Hw6<(X0$-UjTAEzH3(}3E8#$hw-B-hdyR$Vfy5;R zZep|g&n)<@oEo)@9G#cH_sF0I@WFpB@m+`Zh~}BA&V;g=5dg1Y-4ywGRv?iay0zgl z`ww^taX~7V$-`~Y3sAeoTCul^^CH4|)oJ;M7+%w*C;l1Kihq~0SGDY>oYAaX^3k+P zX=JeBj8|LhDKCW{?h6%yoWu^a^B7frQGH^eF-i%n7sGjHcEH4EEo^AR?e&JhBM9*y zXgDHuQk6k2SUtCk2GjkUfAu4P=l4YS^mw__bFJwBtDV_+Krq{9hf>jfV2))OG)VL> zP%0h)c>7{#B`%Jt9~1zS_L&@uhNiB_kreK~go6|XSgS6SCD6L`{Jtc~G2>2MT~v-% zukb0rsud&AA&dh6&&C;o(u+)kaR3GIjU15WOV7)YT-Fnk{(ndn;2E?YfHxKorKjiR zm6F5&9JA8Gmn%aSBG(r$TWFuC>?Ao_@Efc}Hp0Nf%RuuP@GamIcJOVI;`{L%5gVUgz84*bc*27 zlG%i2ABs2edK5BZ1Ss)#v%Y@*v7$|l{TkQT_ub?G157yi10sn#Bak0wxKjLHcpQ>Y z+sb?C5#5hIjI1L(deeNz0s6Qm0T-u%cq^6w(DXAX_{uayTLi>tj%z>NbfE;J)5_g#V?0tsRCHRdU9a`yZYIg~jfYE~OKBg*dCPd1L9q4*mWU05jct zf)vDElWT0@^B)(dTT_A73ibP0jzxG z723_`Uh4?*d%GZt#DePljdzPhPy_uhT{JxSVK_XhdD=o%l|6!;0 z={-249~8BteaNbFZ|M}Pp}(q9X`C?*VBAaPtF(&TQc^cX5+e@i0eeOmtle%ccISdwUPTB4S{X?;FphDcn4!-cha%nSWDa+HBJR;GU&a$rU^Tjb z3oKzFnJaE6jJFo4k^1qOA?y9U>^N0mQNVjPqFd#N?3Tbr@~-lK#&@PiKPt*{I|p3R zM5pS&@K*Pa4S*hd=LH_fBYNz4R>&{O{ z_whf6eEI^ek*X|(7(K6Ag}rN93)n@wuF`nTy2TYtE_AeeQdnGP)T|-Z@O|RL7Q(C}0QyzYqY2x*no2!%4b|*5YcadBn%A zN`3iqT4U)YHZwXQr4ugNorMB*&jOt*`JPhcP+&yy*FDKKmY{@rf~4q5fC}#yI}ec| z?SP3{0LChAh6i2XBQ`)m=P|&!oS-*VxPps^LWm*wR3Bwh*Wp;&I#1{7`(1TUrZ@gg z`t?QmhhyFHrf-mV_*0r;;iAhx2c=wpsNq$M`|EfFCE*?`91`ri)_DK@S|d>#($fKW z5E4fE(2{`qbBU2n_sMYLp{a>F%b{1|YZ{P=o;`K^5M%L0R>rx8pks__{Ec6R-u z+0Zq(Xxp#f)BJ5NkW`<-vOs9R59p~n&gjk8xztuYE^29Ib-P>=Nox$QclKlxu6@#= zB)&Ra=niW=mjj$7kOc%s;)w%b+}Uc2JeyU)&?5#Y=#UKLaI&D=8dtpLV)?o4 zHUkHw@h<)Ix%I^KK-mJAw8Zfam(@%QrHRLq*#VIrAY+d*nv(qAHsQk>g(@pPonKZA z=cktzApoX2RK^h6P_^+)JUmYhj9h0tOY)!{?tC3a>DFv)^6v3^obly-3_?-5C4+tl zAwVQ-K5VkF)oil89^Oc_M}S3)I6w_qPMKf3QTKc$)#ZvFIQ=$ei|dK*>8jRdX>O_^ zIUVj9-I6{BPH+-oLq1s%RgTR zC36S>L^wbk&vpbjsO4rE>fB#r3LItNAPPRw==uScpbR3Ny^U<=AIZrH4$o75q{ljo z_N+gc>*kTh*BdWB7y+DI8MlSEk{q%KG|;{e_~2x`c?5xKvrR zN&&zg8y7PRu!5dCNrW7q^cl%vYm>zb%hwisX~GVi`=Fy016$X(4RC-R?f+me!WOi# zDVoAX%D0lqlQez+cN^p%*?Ke=aeqFG;}=4XaOh?4R^zf`)h?7 zVXf8AXbvU2dJRMAF=sn~+OgC*m-`VN3&z<%4kQVBtL*IQ^NzOe8Cr1e7IL}mhB}06 zT<}pM4(VW*1gJL?xH#N{NY~6$+2pk9BcSW;X9ZH^o#uSx#h@h$0>cyG=tZo-2b#G9 zwF1U^EkZ0y=8=%4&^h$u8x`v0F6+trLr39$7u#UMv4SG+)J5{?Y67Yyg+Dbago?w^ zgK(|Xxb8Arqe8aDGob2a*9a7)3#%1tn*&Lsy=}wYFk{YFGsb(3rE((o$=W%bZ%(&-Lk;6I)-NuE{${S})N2T@?yYNLTfG#om z!$rY-?LmA(`b}v---1afDNt!aTyWPaG}^86`A=sIb^Ol*`L((xkoSyuBX(Ut8Q{%FF^cko4|H<(GN`@s($Z24 zF9{KRa0n%6KAmTfuEAh5FD5HC-7=IGk98moE8~6(>b3Gn;MIqcxm$+G6}d-4+Qh70 z*MhRwf`#7&ZO^B!eS_K>jH%2CCC)@=Wm8SAqcBVyxgT6nIiA#IoTXHv+^-dGnOWY^U^f+{NVm>A#0?FZ=*?v%S_(L_uwtfTM^SO0B4jhW1V?^o3~y zxZ1st#yVzXvz*>-$&=2>$D$;e>obfm?pkXCFtfA_D!}i*1*pHq&dkWC#&mfK2<RY1#J6VIG(1CuECV(`9new!O zU4S3=-K0pyGy0*j_OLonJ{L{%>%kB(%)-jN*Q_?wzwnAfF`x={muBhc+w&F0bw;Lc zDlA4vMTr}QPS*y>o|d z2bbuLc#sV0Q;_#+9F`+GtjRTsc1?gR$mH3e@5}?h_L>e-**j0Vhz+MT03jnuva3?; zE_t}|+@F#GlMw*D>;0j-{p&|B@-72^MCi@gMGpTI2_I8xcm+oC9$pK}c99ZeVac_e zKOxyQaI{gA;9c1prwESRhWIVcQ^g~b$B&fTu@?u!U= zf#4@yc^VNSAWm9FT%;NmO-G@nRozyDBf2sEmcHV+@0%IndZNBjm?LPa-03604qZHIXF=2%_ruds#^NJ)slqj!YHqmVl;-~o(R?N1t1L( z@(lvPLe2|YY}yzM%bgG!Pkt1Pspei?({|$j-RVn*9t5q_ZgAOKXf&oU)lN|1&j5J1V|}UdS`;!oGM;rY8Cva>b+G|S0Lj;} zoV~dn=`9TU-`wklB+dBY3Y6LduxDevgJg9lAcyrL=T5@WI4UMB;`Lg{#7X+qBOf$18)do+c zKg3wfh8F}~pu!tF z@s6DI`9V;9HbyHdLC|Ii=_E%JDB|@KBC_>j5vOXWU5qqxyLb%iaS_-+Oy1D& z9Ladeq8@^QqhdR2$&*90oPMWpzfu-3INHJQV181+ob z^iS%bC{-ZiSRfHu{BR3*hy{^?(XimD?cRt?yzwsIa`=vMbnM}WA189>8nTtrx$myCFI%jJ`G zS{YP3FovjEiS)|Xc=)m5e)cRIt0diK7BZ!GIdqVxAN{yX7-YrB7BUHve!4^4)NKA! zQJ^I_{e>w#T}Sbs9nY^M@cKUtP6?NTYFq_L%W{LcpvZO5)Z!z;cRd{IM0- z6&zdxp8>_P38j{w<9%xxg7q*7G$D}a%?mDTl}gK})h+ekiW?YdF~5Tv3cA)q`yq_t zWlV7bG~?k?Kb?+=$Hi@A40<=JnpXpGlZuf^7U~=%iv$mZ$sRHgq@pVBNG`mJN zH5mo<$Fr#l?JYMV{Pz8@aEK9#sgtz;uSx+ngovcX#kNdBmp~mwQ8aV!3_H@B40y2$ za@>9?a*?S#%5UGSt=(i#A!+o`{)GZL(mC7(IADP%vR%qZMQ5lFDWNFYz^7gz(edZ> zY;H{-U*NxMIaZL5&li2+bOGGa9O;gg?uMS#hsQ-)Ekcqc{WOQ<{xP3xsSc?#P#z+s zlkQ*%_7ReO8=AqJ&mKv%&dsZG`%gs)iK{W?DxR(fKqta5p9Tw#tL~SIb%%`}QwCIY z&|k=rG2yt#>Ii5?YqyyiG9fDdTh2k$H%}~y&#b=Wc(e?CkASJD7BL&wjfREa$N*eA zZ$(W8--5pRINP((bGvA~gZ13i%<=S@i-BRwn@I1pInV_y4-ss5=yLRDiBpa)O4+JBMdBSJ;|1|m@D_r@QW0w zF=a3lO-5TRhomp-ctxmziyIkFyqyN4!|G8;z2-pK8qdt7@inelMqHppq_tS@gjn|R zBSx#j-vIXvVp5cMi-Ts+0^-#W;Om_%&CT3MzhS26Jm;ZXV&@2pcxNA-nRmRD-yaE$ z^d?Z6)c?sNB}s(s;vyK~$Bp#TiWL5m9!~DN$TZ(LhmVMhYj4q(BI#$JTUi;sNABSb zrMd|wMbw1=zWR`z8g;`0 zRMf#>ykA+(qPsaR<%X7fF86thOP?#e&@Z?z+Jp5gM>HV46n1`d_Ed)Y& zgv3G(Xr^mv=-$p8(?_kos~)FB4t|Rwv!1to08+$I*LNdOJ##hP=(a2>?^FXW3Sl#H z-cX&6MV=ZHUb!^*qe6GAaz!~3JSZFhXF7=87E&lR7C^G(S|V_uC|YTiO>dAB#&+y< z2Ml0p?_0QcNVmNFR^HQwcqov{SgYF~s<1G(GKXTq85QNv)I00x-$V8908`kQHaFw! zpPcYV`E9V&jPfT9j}?Vp3$c}z82QG{$b36QcXv->IU~`Hed6~1|N;#JAJZl-6G=8T^Q%=aq|w6%q$D`AyJPk zWI+a6wUI-Z%|^w>3i)AqZ$h2t@6|q-Vug!Gyb>5bg>bYZ(V_3JNnyeU_H&UhwD8Un z!EnLc>~FIEM#Eo$q|5<;anA?N)=7ss(Fq!?_}Frbi<`2eDJABQ#>WiSvs@9sO^~OG zpkAt~oo_z`mH`uG-Gpc4k&TAH*0spN>|9wH_vznVXgcLFKS!0$4im}*WyBtJJ!1Hv zknZ@vOV%2@E(QD#HyX8T>l~+gy560V0QHM{`N1$SL(vvB7BjkMn!)tJ>B*HMLc)(y zcJu{u)?dYGgfKFkf??=Y<+wp@qds#{BvU#Ni=%P-ve7!O4hS$z(0 z7`nnr+R@H{YlX><##FlKPgTW~A!k>>EuuWlC-`3YGtA$L4xEflRf~JYrA22Z=zFaa ziaCn5kRuWjc*yyzICaxcpQcH`%;d-iESJ@TrKEwZ&3mwW;qOZMvoqfeVW$_^E`c@T zg2926fcdWJWs{7WBD&7{_OypIyDX87V)OU#x)N(}o(mm=LY}*acR`;w2h{oNGe}A> zihH3+_Vb<6^OicG&eY0MpDK81CrplS7Q;Tb9nNe>JRbb3y4T5L?Yub1KT_FEKg91-YVDEy;hFCrzI%K@`5 zaEydbKrd#ivT`wmP0L2yMST>BPBr4wK}KnjFu87=a_Jc&@E$P@VGbJMwK#W`G7{&J z9St45BGXJbzf(j>gT*|Vgwo}!Am5h?CT@V&B`;8aj(4)s>?xH}cygf&iUro0IFfBos_AucCZK)+DsDUD77djh}|1Wj&=UgLE=v1*Y z6(-he4M*Ih$+RZzTRXgpSJhJFZM8S`n*v>wy50h5Lp|uBG}PxLmCKtc8qD{rBuDQf zu%YG2V3>1tMx)`^lgPq$98+Kaaf1bZU;YI|2Fmv^4dT{#*sqfLqvN=&)I4Q>TQfTE zn+!{09F&oMmH{3Sqm+RjcyN8sBlO1mt2;QOBS_>BuN-$~f~yMj+w_rz%Q(LqVqgut zalRDvSdYia)V_vkg9&=arEYQ&ljdn~TDN3TG|UV|2oN-~qwlU4lm!dkY`pIb-Y_aM z)Vz)HWjvsFFxmxyh$_Ek01q#zEw|MK-(P_6yrc&t3{>~6ol?B$VIYaEzU{*Lv1Lp_ zL;iFBwulE{3};E4gCWQzg4;rTJ*ves5X$c5hB|v2yyRIcu=J}*P=$9EL`rFv!nqlE zJ>@=}anbi>G>kS3>9%(I98_a29Vb!szI=Q1c8=%R)+IZ(`L{6&`&yEmyMN$|5+G;^ zQ%4ziq$O&l@Zx%(pv6VGF?DQ-MwW7afLhRksfttN=&>T+)3d@9M^(YQn+|H-lTS#z z7x)C-pW4zoCxj^AmKZs?#)l}{=yQ0#JzSPg^kQ6+iYyEPWZ*-928}+!i%YG8uw#Hg z3+2I-Rg5P)`D}DYc1p(x__!uCZ4hUjn5e9IR>YV8I5-1ECMejqW8Hy&Mp?)O|FVM1 zI;B9_f9D3d_f5JbDGt%dmN_ndzAxtU_?}FMiWxpRGZ+v=-`3jE1bA&j7g}`O;?|Lv zkhlk4uXF8J+Vwwt|8j%BWv)N!Ej!t%Uniq*YP~Yr5}93iw003D+S|on zQuk`2YkfVl|FiThF)B+;sz*VwqOrPN_v^HaDuNl`+{_K2Vv(WZzKOea|KQ!duQy|% z`=QYAl&N)vt>u&6lEB+>e(Nb*rdjUO1?svsbqP}!3TGFdZarHM?E}V0RI$B28~tPx z=CRuw2|g(sPH_0fl1aQdwg{vBmpx|?J>HY0Y7^QHUvT^;DA90*iBqT_3B%(S6 zig|>^%j0s#V{i(J;#P)Uc&EqRY;0e2v#!@7(q<+)gcRQ`U&{?DJF7R-SR#^2c3wm= z4SgP<^}vTyt)O^%I$|P|GuC#3z}v9@AS0hi_M69B5%U*msRDjb_QPt*(VJ|3u3izG z@^5T3b?DPWop;`bv92dl(qdVJ5x5j6V(b3G9ov&ZdjLCqktH z(0`~he@i^-YlcG5jPh1MbtDnFr25JwSn}mvt3vTRF|64h?nlD)kMUR=7+K`HT$WaP zr??BY9Qqs0EXk+udOS=QXh=~@Bg8||PE-8w)nS!wqPmc8H%;op$+R68d!RE4pZrLC z_4J?v!{p~PrYX~i8&X5GcqopqF8s<<3oNY*s4<<$PrmJW)vX1@t4H2wd%9K2u{hgG z5pm+K^0pR=TDen=a14B&+~HELZfpl=ga`P#ZM&hb^{h%Q5v zUk$zGbkexTMYRhQA*E~vxiXh`JIiav3K0_3ezjyb7eJIE`Zm4c7lAO)uP=-1Yx2x0 zMA9QKnOy)^8%ZuY6qe^(Gj-Eh1g z!hhMykHegNxGa1$_Z26$+hb|vs_Np4=27I0B+K)COVwsm6SXt3en`+u#rqrO5_N@q z(P8xs&p&%z`Vo&NS0WcqMcj5^l&#F^v+f@9Ad&^}A=a$rCE=|}ih{hwb8DiFDo4vo zC!5)HsE=Vd%@)sMA3yPsC(oT=pHJIQ(}G^AT54&yy9alihYw^zfC18~Dd;edetXIt z=|FvSnr6|h5liBonODYP!Z_d`28}sa!`1cp4Gd=7^OYrk${4t~+jTP3(RgS+bvTo~ zVWSo@(xm#?F~jkdf$hRE{f85S2I6%ZM~K2thcEfk4mwXsHh+4=ZZ^oEZoO;5nqK;# ze>7JL$MXwb64~2NuINd)V3+-P9IdNyj`@F>`tEqD-}nDRAtEK42**5%>@u^@v5&oF zM%g2KBxG|Olw)MC>>0;Sh3r|`BQtx?-|hYR_xhV0Y14ah8*b)HtI}i9y-mPh^e;V!=tS{m`4I{w{iS)N#l%XyNoW6q zHSD5_!rF|H0Ux3|a8OvP2?R8diXOy=0ZzPeE0`|I(_=oTn7iva(&3lI)NiMwfh0{h z?!s?dBBj&C0R=3xml6UmA9c&DIGr{*1vuEpmvS+$Du*OJ+lie%b3+tXo+WDLO=c7M zP4FkM89yhR(9aCwdb4X0d$|n$;QA~?$*xlW$wFeX+B{|9+PTr=PRB0xFxA8N`&Mv@ zwM8aec{MKWbqc%5QlnxGuU{5&v9=XMk|4kuJtt@tGR|i>UF%_AZJ^j3xcIQyqlo*b zV-|nDi&L{jg=q8R!DLm7q1daw3#f)4I*#=$?PPHP9;!I`Gy5hw|5@VR&60^p9oRt& zu_Hv}`FL?i!+`|q6Hmvng_Guz>gj?7752ZFCz|Ilc{f9({DcJ>G?e|0spGq~_PUHE zPE?96k>IA_Xl+R6o?EPR2*WuOW@x%#Fs5e{OJ5g)#qYaiiM!|IkloaQ1 z2c2eUET8Q85hulDnrxtPaefX*nh(=@?PG38p_jZ zwfLLUI@z#X#TVpkkBU+=thNLl9lSF0liQ+id*c%feJ?c{bRI0(v&hkCYH)1+HWVE1 za^ioGDD0(i^wHqUC7eNg*0hA=eEf%GhET($MHa=E%2C8<($GC1?=^v&@tH}yKu_;jX7-gD|tBDn7 zC@w7p+SZuFwOlvvWtD-5UWY0q=|1N99To_$^_vGz_CV>)Ye^90RA`D3`{++{)jFF; zbkQOyaTvbr!(JONyHoRRVQl)<7`+-9hbiI%vv)aXb^yHS?iO9EhhnBBXDU|>3kgfU zid<}pS?;D+JF)V@y&JqbJ|)I`L4Rf6_Ba@A`>Hw8=}ygVQBP`R+OVshQ*zcX6fCDV zUFLcDom=BtslsJskA$tnw>i=~#LcCpJ5Lp%IA-BW~53 z6tmfkR1m+KG)FmozxF|Cq5&ZGV*;bkKKA;+39>u?YCL+KbfLZy@K1akFW&!n9vU?h zj|}SQy5UJz#y!=TdzmS}v;>9m)pa7SUS8+*Fp^fio8Vm^5EL42!O1f=|F~VrlbJbb zTBR@8(dkm3U_V^`F3#uKz&OU^bFF=O#7scTw^M~CVvwe7HB9`Tb|bI5#{~AQxD#PI z?uhRv<^Yjb8n4^(J4keOYl@ur@tB963iH+%vgJ$cZgYlE`4hm&XMR$d9QW8O^ft#r z)x(MJJ#CGvz-V%bBnkw^E7|*oA}fuWXK4R(>v(&eHUCgy$hY~!Z0jl4uaP`rs$`u< zlV8IhTEflG*|^6`Gm9x}iFUe=}2UhfSq{1b|XxweieTWP}UM$|x0c+VQ$ zSiXw8;owJm9hX%X{=17zH+c;-g&f45k2gUze0f5oljEh`LBL?`^E__zQd3PIQX=cT zhP43=<&KwZC@HI9QOEgVVw$GdKY4-i4}`7qRhPuXb=<6hmi)fZOeBZhYkkR`BI=l3 z>I2U@PEX~l(LHj7YBYfZhU?yFgFPZ8eN%C*qJbv@kBs9wfJzR_D*$J1^VI{#G zqbKgaCBWZJddLV`4u5|EDGIx!vsh^-^EHo#&&3si7o$`Zm;9Y(RGv_O>;SF*l90__ zoa;P)QV7qi+U=rv-HbeWbJ@*QflT|i+}-C(hNGkID!&B?vwqz1Imxwgl(ZXb0z%^w zPlIWgCA!dq>$yMrXJ5!4G?i=r8rM9nF5CnF9NDrV9E=~!6=OP;1eVE~&QoQ7_-_h}nU+jrS<=1{$;T6z5wdcBQ z7J{8Pwa_e*BOr~+<82KLY~k}mercOqidmi@9J_XMntsW>S_(ggx{v(+$b73SWau3JR>t%c4IkMPo9cX4I1&fK$SQ#0|h2QQp7 z+bFq>ht2_be*jc1XuFqZ>GZNkAByvOiGr|&ljZg>SF85R0?KB@=?gn8Rn?zhQlnyM zyoC1#!Ok}B1VsbGnEMkrxVcq(`-X_X|{(i!e$Qbs{d_0pz_wWK7CIK+?khj_&1RU6!{<6JG|BYk;<=%7KHvd6dDuY*X_OxS-k>VKvm&8(&eJ4f~<4+1EO$htW5GFG|+hA0nPNgfK(mhjE5vz zwEAtjljms?T-fo5zLzz~Iv(L01iJ+{CTNV=*S$YNBNUE&8n#%%*FYG@Z6e!fMuT&0 zQ<)w=_#SX0J3CA`FUqJdQMlko{u>HjZ4=dQh5bHEhRbjAz_da4%F<-`+h)=}a62#h zOb%Ov)Kt@+MMER<`RV&q=qG%i!66nW18_l%%gP#{wVue3HN~4tr8C6dIY{lQGdUja zX(8;%FA!JeX&`0_ZcU%ptx+5dQ%7kh1AO?a+8Q$1S=hl}C&QnUI}9UM{dk%@I{=aH zfZ{|Q1hZ>8cF$#a%5Dk_N#XGpm81`KU>sl`FENP?3Z$i;M34yvW1jVf|31<0)o;;K zXt-TLhQ^a?>plEhJ#~jYeEwsDvrHC@>=FRq38&&CNl9P6nmqajzLEwBC0Y(wZQ=Ss zJMF%Oy7{etgo7W5kw9L@mSWs5fN^A>Nlp=9vXR{pDV*CRCaIO$C zo8~qpc2P6lEdPHb_ZCq1tEL`r<*19DHCK4gma?B9t6z_n6S7!j{J{+tCB< zAt^73uta@NTit)+-4cn(_xJAk{T^ut;1<9C7G%q9d`{t9Z+sB?obi_E0X|ndJivE@ zzqsL?`;?ok5IqqvT69|xS11E+R8liV%Ivq)JJ1QldQnnl6Vp_7uXC1_e_ixF_AAj@ zi&(NYGfgLhOxw1M7E2Vb+meTE-f)*xBug~n$!5mV68oownkcB316!utKZ2xEF#HP98R1`4wP`R0T4r3cA_UxdfS+o%cV%AflCyl7zewdK_gg%T?9Nul_Fr|Q~nAw3-|8&-3fVRMN@Nr|)SjowU=9CAWJB#ST zDxwRfx>Q|Dzo<%~fsyln*I_b7&SeG0BiZPAm?{~6bM`PybIhiDZg03~50yjY1;3e# zAhPP_k^sdc&|MD^)4#vx=@fyf4OAp=CmYUS0bJhjw2_zYNpK4Kwvqc&Ta~@1+s9+ zz@c8}rW$qh0kP!0O9=H1hgr)M>RU$}Nz%Qfp37XV_(Wgn90Q`_Lhs|7eGXr)3`sC;#qxpWP#U zXCPQ1UN+Y+J?nMJ<_1;^?%$SIimN4TY_sl- zfks#?jTDAao_5Nk3h2pct?V>id+JyY4$ec%Zq*vwyFP|Pa^hRc3U^)1C0x`oiCE{{RmmvXz_q+Ghvg#7{H^hEA0gp7-()BkK`@5zz+A1r zFh`v}413zG8Tq$wq1o^gIc6~)=2)AWA0`Y~BlI2`;zuqLj4^&JmiPfh+M=5wR5M9T zugENQ@Y`dQMDR^Kc3{{QpHpjSnZ3KuHdf5-yk{yCL|*BGw4U%nI^k3qGO1NmJ4)iI zXS#0AfySIW6c?Q_?d#^?YYg%AN za>U4(_${3PeJ}YNep=)#EW_?ZjMP{L?LZY&6DyTb)DL9zm|u1ttyhx;YzhZ&ynqy; zOB-(=Tm!%A<{i2mbsC_Ok3c0O5`td4Owc*8GOJY|dr3GMhk0Z&`wezFYo!#ImHjBY z#xMci^cwV{R^gLEji<2;({B3VlHxD$^Wtx*r{y_JY!e!Xb$Ep|J2z}H!n1HANSHZz z3~A|j=p9}zI>X)uoBI5#>8x57lP2R}fNRgYWw9uPkY>bb*uRO#{}!I?ZMOkH%;6%- znY&(Bqwa?w8ldhB>5GdGr5*5guLj4F3l=z9k|>&QPdFfMI3{98S{H zj@{{+iv_l052vtWxmSO7t|`cnS&;vFn~0Tdxr3lqzbnJ}H@SM6+k?_|=K)D`f(x#D z=-4U-quTLnlTUcJcW7E;H&s$)eH8-@bjhWnbbLArLrE$XI!Jo8K0@BoM5;YCM@sl^ z--NmUyKikqWD6OU8=njD_7#VVs2#_-w}0{cUCkw{)`+cPE7ns`y15$;8O>IY z<(UKp6u^~oV^h_LmZIBKK8h?2hN%T)XD7@^P_#8We!gVlge1zsWkO^7ipB_j;65IZ zp;JwCiIcD|5@qyL3rjrjAmVod;H!fK&2820yik&aLqgY!m{(5XrfJ3 z1`d4Acl|wuNI3wV0ii9O@230ojC^f(5>$yVZ=;+{GBbSDGRt1GhVRN|YTyG;HXJwcY)eUF?$TKRf z?j{dB>sTkf-lL49T30u zNgrc&5O0JrEe~q1inQq{`&0HHaL6cvhx<-TKkUA6j+WCiuhu($MOv8^W*!TbT_@W( zfJdLQ|AZu;-=IK@uQxcb6WXj^B9A^oHB5kslpow@GqQx+J}a!OVP;jt)=X()k?A!P_{eB!BMZXpo$!n4k$cRMse_flT9dP4j3Vw zboytd8dyKpqoBNx|E0w}MRGjKd(ZH?`v(gYNA#GY=a}~$>$#5aQF{hOPp{N_*}!hs z@q7GbD-Wm@<8S&|*8mcprRuYoNm{zOQN%)M^Pt>rbPB*w*U=l_iklY3cUcuEQd%Z_ zT(VX}a)<;`1o9U}lv$xLhi|badXs6f|9;uBCYAEu2#dR=?saI|wB~?xO4{UiZ-J97 z1-Ge$8wh9q>&cn@{7nnt9@@dpiobow+w=ZZ4?6z4zFyQI3Q>{jnYs#d1cvKVWB8wM zRVm&q;0`&xxZM!LPI%gD_iZ-s<|Dm^uY1y4UuEF!`q#vaovJsjE*=Vb-EtDSY4Kx% z2gx;|KueAHSBOFrG24q$+t!`Q#!P)LvO__Un-eFztMWpDV09iA!1ThI9%lqK&x#IyMaQh`bi z#7q}d0Y=etlI+@Vcx=t6tnoOQ08ICXH5;}@T-kz}QW#KZ`FHO%uly$RwO<+J-5{Nk z?QO-1dwP$Oi7_uX`DfC%kiYn<+d~Lvi>4WBVC8rt?_Wbpof@jEqb2O^wuE5rBpr00&R4yg)yE}O$@Viw-ofE$zyr<+PCVpXQN>aSFn=ND0dVDi)s zq&cKdI3WD7ru?Q#VXJcv4(m%QLK~;;ViarVezvx@>nA9d@)kWX=3k&+ zw>_`#$^b-Beq74Jbk9+A3CYMmK6*b%1E-izqWSc5WlkkOvEKd*&8^k@?cnPePq*X6 z$4YJ|yvx4e5IsjwGa^}Mqrw=)HXJXd0J6y6mcOJ!O0C8lIcvVaGLPDIZ&NVDU){3R znu8gzk~2%jBnn_*2O!SzFK+z!ee}4oD|Y z)x`8h#3&xOz;Odb8FLCLHSd@v>s<1~v)4W#IUZ-jmI>7Lygm7!zU;ijP7-gZF-x6r zjGR%eH8A$kytKQd=S15zg*zWv`z+HVo%#TlFsXUzFk^s%%ua_DGEBcKQ!Xx5i<3Wy zvs)B#!WXvcBTw4sQpoqv4{y{>@wemqq`cxC0Qjs<{5#j_m6cQ_qFjSl=0<5vuWh$_ zGSx-lA~w5u(ZX@KkRwTTg;3!cwPMwzGwoRU!mST7a@PuVtV50SVR5>@=k#Jq+3}XK zlT%ZrXPPLE&S&=*?CLXjs`PmTGc!C15^uNle%FYe=E*Di>c<-(9l zZ{;t@VBaeLR5)BIM+txCz2Os&uYOA8esv_86)y%CVR=Q(a={5ln@5K`*VHzpg(Thi z?Rc6)TZyx! z6Z+~XYIo=d#rY&4VWv=uJ&`wXH<6~LP@<~!jnRGhKhL_Ox5Elkxl$&>K_r)6<=g9l z<&QA$5$OQh!eYr}D59kFYyGd0Ar~%A5u3V$^&}K-;LvFtsC4;;SsLEk88b34ve z{OeL+f1}qW2SoV-QRAEI<5Oxxz(^eO)E<3FAzQH4PQH4GbXp1jjNT3l<6$L)hsMS6pKqzOD>glf#gu>ft8q`KFxZr5yqj2Yn+=^9xgo`0o)8kM1hxnOoSgeYDJ>L6!CP->0soP(sMkP8)`wgyu39 zNQ)8Z#*nwOKh-WO`p{06>FZ{mOwke+(kW#-coDdHTd|#{48Ku^{VT8 zBl+Z}JXJquf^;gdDJf29aAXZf7CxAJ7NhGL^RXv9M)8A%hsI;aFPwa>Gw}Gm6qlDl zx;g$Iv@%u6IKO{aAL%aXpwr4s_jNM>(GK*8CNcy9hXxp;jf&204AkiuQ9Zx8X*l)E zotIO@A_Fx4^aSc01>v83PsL_S)Nb`u*?aC84{>ySS1Y9DBrjX%qU=`4zxnwXv_6C2 zIXF?0Q&d<`ZxW7s$FJi)SeHbEFZ}o#TWenaJ#y8@%7E#KpY}*dcjE~o%`|aFn#RAn zc==xyAHM6Ht?RCYbT;9@E?0>7%Spo_3y$-Uiy%#ttzBWt({WqqlS}H!`q%Xpa|uad z6KQ6Pds*USUs9nEbiiKn5pdH*(3GdJMQh(1ot@JuECK+5V6VcYh2p9MF)RtN#m*>Y zw6E?FVY%8-Nyz2FeW(VRAi-pHVeWwl(&-z+`k2EPTay{Ep7x3C^@HhmlBs|I$H{*Y zv+ic60DW+Jk}^lk+P_LN$$+7KM(}X)@nD@2#pzAeWS1Y`lE#h_q&a>2TD8mGoE!nr zqdZ-`>W_q|>jwv7ztYWF#k$OdGNv{Ig9r7MTcnn7!9H&4wX}>Eop^4dD4jE$bBm13X+p);@h zncj$kLbTXeeO*>&h~v#(I1?sFQ!}V0wtL*%-AR{{@Ms~o13Y?j*spy=x0-{M(f7@ z?fr`K5bzI8j?R4GZ8XMn+iHq9QcG%h+_pb{U_Ym96AW>5G9yNvI!Qdf0$fmQ&IA;; zgc$C3QERmV)Q}=aiqY_?Ac2wdHyKg}!GX!waqs-ZgKw-F+Vq-8lR=7t7^XkCcs4Uk zmzUR%L~vMDexlxD0|9@dnoJjP+wUm++4Rn;zmqefym4%VXKsweXZk4W{*)V~)DAC2 zqRCS$zBjmEfbi15VcVT)K^%|eENoy;AW%2)-W}{R)|qd(E*lO(Cacc8Px15L(b4uj z4B6?Rc=-6& zC~!EDy-cfNVdW2IsCRx~0^LL}?j%b)Y91(a&OtH?kt|fPD(kZy<>6L~x$|b}4(R?p7??m>2)n4>V)nUk{E6qNHeqe+zgzrE+$J`B=@f zm11e~bp`LW;)`Pm7Z)PIAVn|$&tahuIj5afg%%TgGf$=1Md|^3{vEZIV{qZp! z8L~qa;Jjry;L+x8@;Mn58e?fP2P%#3ZN7#e6=NME9_~xyxi8fK&~-ks<@bAc-_6u; z#qo$ae5c^4x>o#YgDZM5c_W5gXl^?i2>E04ekJJX;JE<2-ayvt_+6N>_wl$DD{hs4Uq6`c@2*{&f!`^=ULYIu}VZ;(0dOS?@LytCitgT6A)+}Yuf);m3%;@Dpxb)mRM zKrxKq;^a7un;RcgscucF#l2&>c;w^o4JR1G{D=1i?h(#2v)`vA zr_@fh5jd@?fFD^(YRWUH7S1v)Y8W9oO6!BN8%p#PdAO}TZ-}gC@yArSNj@iw*{^F% zczZ@YNj?a05v}eU55f3%erJE`87*HeNA6n!l>Clo$Sw*uHIIt&&Cp=H$XF}yyqP32zaD?7DrYWlmg@5Veg@R5)}V{j!Bp;1#GwKAU#anNoi zNNcRX9C1&Md6F<_t9QG|JAdeXBftCh(x^n^d*GUfIxW~yUGfVQ1L|8 z*FaU^@=>AmqntUnd%1ef!OYDbkM5PvgW}1InC)pS`@Pm?I7YZdnJ8xe3qiu$KY|1i z)+#;<;3Rvbq%#Uc5MCYc7tXIEI6GiSF5Y0V)Q%DS&VU$Bzu)K<7-P#JXLh9FeaLA9 zs=T(O1VcUvsEuNux6>~ZIs-!$RQbux8t%c=_ohl@5VKe&b4?POMwVRMJ$MI=iPe+F zAQ;e#T7Kg3U_xHTpZgFxH`C0s+Y?p((wM?CW0X?`58K=M_hX~!@?4NIBKqQ%bWBmcOX9~Ic^ObGhP2zhQmfb(fLe%|-%9m9fhliioTElT2Rx9T( zLF{=|rVieX;uX3t?3mZ`Y37kAu|tGq$2&rwgtvZa@jt|K0wXfT&O-@U+hFrd8T9_l zg$-X6ra~X3H{iW$QmK>AiJc=c^8UvKppEVu3GW$@q+?|R2iM=r2dEJ3H!g(&%i#u< zlDeXv83frOXd}IZf2E4Q$rZME3xQU@@!{6moC>ILpuSDer%nwpCjZqP_rf@k_M{Mp zx2BDk4&|$y+&DQd0lp!xc0|?CA1Dsug~4qPnAF6^1G^;{^MyVdrCdsD)<~mIZ<1FOg;qh zn3A)h=jXLr_;w3Ekx)<=&pG@(h~P085x6<{yJ11Gt$AQ}))hp7&g;nlrff+B?240{ zn*n1nQ{V7nGo`pxf8D-;ll#>WH+QIE?IZ5XK@jO)x6tI25_lZcRE0=%#5dQ)G><>R zwoyH=&zw_7mY1>6eu*WAd^*N54_f_KB$yNu#7A28_eYMDHH*6)=8t*NQOW7+5mSNm z^Y&!okxAyAxoS?czrSuV*ub zs9ni0*7$3BZU$%29q(TNtB3@LJ~C-c+BV$j11LgQE#>k){N}_L(1|Jm<9AQtWI|`t zhj&g*l6mW$Cum5;Jw0=p(=mVS*J$W{6UiZFVzjOCbG>P{OQuq^jj#VKH`9Lk_u7gJ zymGqE;|I!|W1^1l2^_=;FLbaS8L_4Z=s|b0AkJw5v%zqjB3gin(Kq*=e!F*X={M-8% zjyD=>j0$^Z3xfXs6^FN_$Gn8LfMJT3xSNouH}P?HLQC7RV$A)H!ycdPFUk(odnWw- zf6->pW6wrNW<2eIHkVU{@Pys<37hu*CWn?!gO`R{8oc@@zq`*oCp#n-8oX-IOlZ@1 z_2-W$5T72@cAe33ksLV~<)?0%1}ADP(f{nor9X17Aqf>Ns>r^oDWnrjtCKv1Ko9ben(Xm@Q$?CFkI@TvH5i(4m<` z?R#)59;Y!*$8co1&8IKFiqFhY9EWF5>F<}7oZRA^7^jUCmjc4=@MId=&>b^<1$~Yc z<;NL0>LtiqdsA0FUXBxFd$Go6O@;m8vt?g)fgbgC`s{B<_A`^rW*E%xSOHVW%KHn- z1sl(ZW5UPADn4{=-bZo{#;I0)piV^G!|85(`D28J@BB-EbNv6zrfr(rNMnk;F1s%G}$NqOR?sM{5e53{?wLY#EPD_#*cBhwZt zPVf^hR=iCwH?arMAfiMH0b7oI{`-S=8cix#~L?e!#WVapFOJVkJ#j`?BG% z`^lJQ1$N_n5TqM@Kld%j$7O%7Gx_ba;5$*9=omGg%^1FVm0`9H* ziWfFGofi9;@10M9HjjWSYP1-M6ZEs3Kb}7cZVnl2x1g1HRe^VtpY{)x&#Q4M5jnjdic*4z zckqSpydNLo)34^_6{rpedAm~a1!$jUEK(H0P+W^81B}Bk*&Q}6Z#~!1f%DShgzq__ zRw_xrzUJ%ZA3TR0YRc&OU0BDZ<0M|Cl9KKzSpvb&!T1A~Q1qdWVWa4O>T8k(>hsDe z7t13K7=fW$ihgE*BsF=y03%0YAGyfx33g@g$y6o*%r)%5`Uh}ZQRNp8)MyKi{h_qE zj1`;)x^)Dc1*~fYJJpPE5&(}yt<=7Y*LJM17M%IK#mij&t$A0ms?|)^PgQ z3VYJ#*x7PbJ?JiB`|0gj{F!1_oNMD%nilm=4%L_DoRD9RVf&4^G*%2D+-D z&)r*a_X1d^q@ zDH*`?pU*5%P7J|x7^K9^9Jm_=C^m*%opo0h@)9(|>-%A3Z**Gw&57nNd0v8sbIgkJ zPQv1o=|@?8^H1@{*MwkCGyg;wzam-}8IsDijg=ik;a)g%nmbu&f}2q9esksQt6-s5x=Lj{FbO*bFwX?wQS&NrK{vAJthOp& zSCv*`mG+ycYQNgO%8!354yq9gz#c{wh?Hpgyk&K2#86t9yVxx~E(@_1tcjklt7Wa; zht#ECKeq8p1@D6Kc9mNO6)?~kMGSpFRJ=*Jte2g6^Fpb<`2{mD**F9b3m&9E)!Wme z`$v4}d+{V>+f>ii8Dk5~;qvi|(f8}^d!6lzulv~sTg_GK^IomnYEnsBxS2@N7Q{6# zG9k;S7>`hI_oyc)1SY=5+jxLAqV}K5r*K?I(Z^}8`w~B4WObmQUB-7d9gRGG?9vS@ zrIC<7hdM`%bkIeD6dZ1%w^2tnvZLqO;=J$&H4sSq*{A1Bt{d4%@)X9Piajy`wJB3P!D;xofCp5|l`S>FDNbYUuGCH0_1X6u<#DevHkjyw*Uvt3B@BQcv99 zQ33PsS=&ZC!N+HyM+K5!9cb&dMwrfPp739ne!M=t9;vCv0PESmL=oWQx`RjIjNfA^FmmE*9QAoqh*~iGMv+%8 zAw|nU75VqD!~wzf^kctC#w47m5BQ%=ch#L)}=Q8S6cSwMzh&+*n@Z^AE#>Vj(=eO4d znH8br-%1}*K41nvTUR;=778>Ew%H0Bdb!4VKK;cNhQVE{JUm>7l@$D0< z68c9ypou*#@ZI3}Lvt{IJ^%&?BBk7GQeE`QsmaS#K<9d`PyuP1br#g30BOV=d3 zK1$Ry*}+U?&a;PGfR%$%yDDTa6U-x5ZAp!V1f7*)v`Gk}5zm%9QQr$EetFK}RAnNe z2;*E?d!Z`OpSbSkV?}w^##y!B)Sa0cuPSMGpGsucYr{4p9y~5p`3b(;=(QBs%etdK zSgfZPh0Hl4pDGLV|Kc_+{Dcjj(XU2iF^+m~csU6n)*$}h7NU3W4jcg?Ru#cuMhwz)rz)%&Y(M&{C}ew$?yqt^)Z z2eaH1@6Rg~YIMd|aOO{@oJam&;{AUO9w|oszV;YYGi@nj?VkJx)iPiuQWc(ZmA&j? zN%>l{_2zyg0AZ3RdP&BEx!{K=SbIN_bOF&oOIs zOh*ubwFZ8CnvM_Bz&RExVTwR2p(VQ0#HPu}Hhnn7?z3avaYBs;2~mw%VUb&3CBC+s z*B5ml1l|}{IF1yYuL9WGjJJ6R`?cW$JVaQH8P8@LUj*NFc!M>h;*~1&^Z%I9v@1^i z(Y#X4@nX_dV*9g+FD=@mI;RxE0r_f}Q@?YwosMJYNkC*&%8}7bu+t0L#4FOFKn&3Z zLiXqpz-crcD@=GP@0}9_qaK4mmuJZbc%mwwGJdNkrT8ja#$+XTE-s_XUq>xLX|4Vy z8Ny=u$@}8UMii1M;0AWwMJvnoNFDtF3aFp1%ULnp`0*hxgFMxn=W7A0Uo!-lkp)-c zLp&|^r`$zL<9kwFloG4*8T1W;U`fL2jH2lPv>Q=K31?T!7!W5h08r(I34=yvBGA!w zNo)Kx3F;SF(oYPyz!(p8P1Fm4g!YNie9cL=kfIzSN5&ioT6!nJfzRsrkL~CQ9;VDL z<8!KzxmF(lyYsaDgjW&V1W*cb;+UFaANWaO$;g^;Hf8S~nK!XrUQnsBSK z^#^kGXd)7Z?-dYMO$ey?FV0u*@+cO?Ilc~vQ-j=_*`FUp)1wPZViVnE5I&Fx0ULV?!GC%Q3 zV69-VheKwP3iH^XTrwt2*eSYM&iQSk9q9kfczrAP>0$X#%$)-w`A0g2uTXEJg!NxfWxTl%yGt-z^1X4%ZL-@+~KI;`M}Vz6ySr$H<}!4=Cw< z+Ksp(Uz&*N{=ofmH zOqfC{hW)BGGvMvvw0PO51KOz^v)J*<4@Ng2h-%*M5o(v?y^sKtZHIi7E-p#1)vy`e zdv_+v-_r8MlW~@|N2lFj@#i$xAo0wzg+@T}=ADB_#Q@}7P0A3dj<8cx^svYPfgk&y zfZs7kJ2|5dKDw;XfoBjl`mQh$Fo#;18KD}e|EGHHL!62jz?`#mV8)D<=2YWFllh7_ zfV5YNL6=_y?CwXEQtx=a&EfSB{PkIHLReCs3=%l>IL-y^%Y`@F+kL-!gfA?b1tN^v zhPt!1uLQ`x^Xod{La<+VE6tN7Ub&elGnXqJJ*o-0#H&5Ek>nKFxeOf?-@(eW19Ovk zW)%Ji|1|Bg+~5&zk=@ z;y;a{t{oX}nOM&dH^CQ<8G%wKV!sc|5n1Ra_wiQZL(m$TXnqwMiSIC^FjTwXU&)mu z{6US9L(I>6y5C}GfRBO)b8R(uu8MSjIf6LI7WOHChW%+rPY7wu2n+Sp{r-iy=$Sq` z(@YnqJ1Hg5 zt=8+f=$p9XuZ{KSFI>{P)6{6GEv`^(c&E!d-)61RE(~hd9;zaQ0g=gZVSdgM_fu4t z^ocE4g8>U__E&^Hr1F|FoMrWr{(;9YHavIOM6Z2AC!7*yJZ>+?<2$x;P8)7kZMSN= zlA#1qI*{+$_0)5+4(3T-kmb~>s-LCA`ScSb<+r4AY(X=6Pk70RBs?kxJfje~a<3iz zbf+uS${h7unuDVOydsiIOLTQQx*Qer?VUi2hoXmHjAc1Y`IPE(8Rf~?QDE6*vKd>` zmfRx;$H6Y+a@Zgjf#+om$7AprW*t#Jg)sR;*MXQTf76Y|WS zN0+QhSLS5_f7i4Kz$6fBBzt-jdn%Iq2p0lj@uw4&H6nise~pfozDHoh*M=Ak`#h0f zmnPK7V^yJvy6kkg`uXZ-xJ1e=d3FnG5@7K15{&G45Xh&c+qo+;;eMUDgQSt}sQVUk z>DDk~s>&?W0?jWx3HTnrTl6S0$+Bkrip@Z|%S!sIk|`ea&M zNZ^|>-ENpeEWKc5xo4u8=Zz!4Zt5sRTb^45fSnXN_{}Y7A|f95Vz2&aP?q-@O^4<8 zXcBpe{x2EeHRVPSCK)?p>8_1k?!UmlK*Hr?3*ORrcn_N$K=c1C%Op0L{I%E|Is!N& zWFp=tD=eCu`#N9PzD+DzuQgvDE#9CK;iBK?+3#mP5`(@S?4rd#TKVPGUNLza@TYfV zNN%MKNj|K8f10F-93fXT@*L%!Yq-vLM8rm?4j1CA=+A#8ecAHr+b68nJr zQq*_%N4xp7;#`srOq;G-K~lf0(iChzOOWC4KK2v1*E(9Otq(^^)gYzsfH})3m1gx? ziIhnNBQkM~&vSqp7r?FTq;)pVy%R6kY_%9!l0k8;qQ~p$&IFgD1hQ> zr|yX(&qe%G^vpMQDY5 z?KK$~u5|Zwbx7+r{-H4knf!lLy@g-Y+ZQ!FfTDuP6%iB=ln{_^k(3Yy7(h^vR_QM3 z7J&{sZ5cbIy*n*IxUanrZk02;J40-%h{1W-e(5 zTlDJOjiXNwUlLgMmIWZ!l`qyLLJV0ug z!{qRmoC3Xw1>*nwr_~zO(sxLuLgz^WE_jl=wd;Hvt0AH;?K2~z5}ZN^QTV|=ppX?( zxLW3`*pvE^wyy_hWR=z@V@6gptykc|#&*Ts@39wG-b6pa!n(@94wv*%NHS(vgmc30 zb89OW%a?Q1P>($Nrz91r>wJ<9W8dc(h6oEBIM7V(_Xcg~0tb{?zPn#4rrHXBk(4es zsSKRl%>g|xdIfH02uqbc&p%wS4jSMV+6I&Ah%4R}u%OLX0pl&PCuzx(#qEAj%~~l? z@n}T7?wI;1hKhxG`b6{46O@T}3A^h};98BwI%7DZUoDJ+8L}{A4A;S-tD90@QC<&E zASpe*rZV8nhSqT}Z!FFHIsJwI?{m2aSZ_*RY*s9HO2`>2M78~$rwXIZxN_=e!n(_A zqy^F4qa2kr=STYLys26od){z$OHXGJ$2_40Y^>cY6`6w>izeaI>oQ z!r^DE)r$X6pIKHlY#$mr#KV;Oo)?d3<1 z)%`Z_5s}z)_^wm+zBMzKZ5MkhwXb7?uh(dc!m)oEVOYb|BZ}pp`=xo@?%o@jbA?+U zOD#hQcO+&P=nT2*!*||g7*Ww9=u8!adfoCxmM^mDv#QK+U1G-(o4gZi7kVOiQ;jw6 zOX#0ipL{T0S_$H;lG*h>x%!j<_9nzE`tQa*d0>p7*;ul@u!`n^&7q}t#vZ|#3{@O(lYx1EH#y1DI?Va2X|RYUaTO~) zBGPJz`=zCX?BLT5QZrdZpo#%CN;JKC=7W^rMhRS(`sq9I))aGR@@|71PJdTu zKx4^9*sA?>k4LuPkafLVD53s}V*&=&nWnxoFB-H!3`_}Yxl2;@o@=d)N=4-p1`JY_<&iItWoblzcuIQk%{{r5$0B*pXq->At zWX21#RVB}JYRuxNYFC=-m7o@s?+eA+*%fr6ccr?TZmQS>>SS5e zgf2u!Z6*(NFM^%$@M8I=sfj9!%^w}!f5Y!^6a5v1=HTmJzH}8yz*ib=;$}4ItU1kE zUwidBg+9vK(0$7`jp|gI(J(ryzscww6C1_Dk)6O$-+M$G%@eBq`NZp_^h!6_Q?%|j zN*e4OM+lrw*(Zj_?yt*26za|p&z;CU$^YvsVcy&mBp;%Av<&-ZId6~WYTc8SIp<%7 zGoy(&wf-~zt{_na&@xSDMq|PI^ZBn^Zlgg1S;_J=FR>=`x+O=w<=uv0yVqW0wVS#d zf9&0A_>sVnWOc^eYfl?q1%)REj*>bv|?awEq_6P$G?YiF$#zAAEg$+BxZ;a9#m$9s2?0QwmeZ*w<_Q zEZ?R%ewZmVQ-GZcY%_-5VZpBtckSdwq`2Cxg^H_N&R(bU^$-n24V+2hbWnb%ae{rP zNbT>QN*R!6`CqV_x*a|%WHzMTCz*WoB3)}IE8dg=g>yVh&A)P|OE#qLcK|%YQ>w=m zI)V|#K1BX5Q{K^>RcC;T(;Q)Lg-w*!-`(WY|1c0$%jI*8NQ)@A)ZDCBn>I*t`>9P^ zWaq~i{#AVvo~y#M3kF#EGyyUE_oFxOK|5XaNmy0ZO_lRIDrI5(k*_B|T0`3DJg;^_7Vt zoAc(!=K7K@9v?!)bReb_rM`cw+?);*BpXjiHn$biv+fwpdEV!0hKT%_5l^eVRr4S^ z_aH6#r9E$aphVBkbbp5|+#3Q1%Yl)w&8ByIu6ECm1L8zWh{%&p%6k#V;W-5~XAIVP z2hY*V)K3WJT#SmkreJiWXvozsN@?K_2OZ7zp~bjrG`?_o+mV2ttUhf!8DV3M{0<+T z`Nj5ieD2+N8rnb02vr_=U6*OREX?0Y6pv$6-fef3CbUPrHbdmorHZDimlEN zlrj@zhNq!G)8tly4D5J(d*y4$Qf7F}n=-}UWm+%EV8);;0=cP=sK?ri))?7) zediMQ74P+WQ&rErEbA@Wa-*X)c5Q9_4@!(XQ=RWJb2&Sy;_ZiAS1;}Rr_)Rk?O!aT zGg;@lG359mI5urM>6|yC2miN7bw9$#%&UjHGah*~apHtEFD;^Z?n+JFqn9px}WP}h73f&Bic~+T|Pn-M{ob3qS2DMWBMF_5CKB#RiIY+ljBxHkY zV{M4Gk#O&x=kTF>H!~TAvh_wDxhu?Pvkyt_U`sAn*Mz+e+#M#IM(wt@SH`L8c=c7h zd&@TdCnEJ(A4vr@C7c7=@#mV!(v=fsCqxMPJ5t>5SYkerv1Xy4(;rVOMvrAtpI^HO zTkADYyu!kzvu}Ry%}x8zNBvEF1=u9NbapM-^3%Rw4$H%y> zy}38KO`M47=Ug7~pVtJYNn*l$VW&|{$oYG!@6=XFdB;kR8sf_GE-5uxrs>q59{Udv z;jj%B6*-_HNUD%H^G*Q=77ti%j!*M*-!1lu*z7iPb@|w^*rdh2!1pHCy{we_=N~=H zvlkmQ3eCGB>8rFrS<1)=FOO>bP2-3To_%RbMQj3~>2T0nm`Nr%5tG8R3B5l4XN{Yy zqm$eObn)PE4%)M2t_1Y*JP|k~Ja>K?jqH3AHj5>l=l`svM2?n4TVl}kq%oXM88v6p z-iNjK@pD)!tKyxTzQ8*O#vZq_c>7D>!@EMV>KKm(w<66baU6&7v^lHZj2L7htHHR8 zJj!;M+KZq0)7`r_UtqaoLUK(>{mkD6mKd`T74=#}b#B27o2XvAv*wR>wue6z`{6#y zaqS90f+oFlWo(Kj^F#P!g!dmjc;w~Vc7lZmRk2qB1C~B%-pb)kM(hg1s$kb-MgNL6 zK*E5HGQz%Eede-%87^?q!7ZSPqU>krZ%gq97xQXt@`i+p?dd^Bj}V@Tq_i&t>p&tj zUGTH2H~9<3`dtB)$4;b1udnSGIjueF{jN!${BYmuc~42y_wM0)U90m6EM!p5yDKDL zPk3;YHf3CGC%n9pCpPWkovqoGb=|&8go=0YeX?6jH)S#V&wDw8T#yde*LsHvqnpO| z>?6g}m2n=)RI1B!nmu;(jBQIn!XNth$Ywrzz!?-^&wK5rZmR5a zazLhuHczJbfKAj_;gKa?#Od6(o{%zdFiaJ*H~eems#A)go@5Up<>7WO+m=Vq+&zXqfb<6{6R8*=UaGUFPSBeD2V6%0N> zuCA#YI8~|=7^l#w^7(X6DNPe&-->=B_C4kk>(U3wLGizE&Y7SNxPtQ4^I^vBOI_G7Y^EJ6YoBsE$X7f4jP!ZQW*Gm%x;p3Mw?CxslZ00*1;GI4yOyYjX$Qi;5 zsP_|5sbG?~Bl1d)i>st!z}QFwWb6oyj;HD>4*dG)g(g^XJcrb{3B>45hXXmbXYF#b zJG;&u4E0J&g^)3(`xTAUy z`-Okivm+Mc4ly}tsBEPSftTp)WBh^o`dL8JE;EvN^xto?rMnL`+d$wgyJsItpQ!fq zDu#KqzTSp(R)QR?+YCoaH0B-tH;TfhO@=g&2HuV)rD+Ga&L|@k_j4nPJkuxN6FwG| znI2Dw2qVv+7kMSqK(*^ztE4EV`5p2i+EdLVh+HYK{AW_74C(W;J#=q7oyElL4!sc?P{+j>ieTgJaYr$4eCr^o( z9L$afnQ-;@_C9Z~DALMtlkhlPpR+<^prpHZ!4?tBZm#qi4^nSVy!E4l3-s_+4XB$` zKkuz1lU%%&!rSiPR-bLJ@Esf3wKd|BD_Y*(dL=aJ^z~b{>Bz3yB6);tz!v(ukKwyp zi&iW_BCg)&7oosOKc3-`L7E9v?07?^BLTS$KV_hs)^M^0^~lfw>~Ys$0-QF{@923Ah#L7~!MooB=2>bPxHZHvs#PWxo{4p55xGxKS;F zuAU(>Z-fz5F(rAQNMhv-Jnwy_r-~(=xxP(Nu==Z1@!Wn>r7U~4B0>uY+|FB*`V!yk zI7g8QKMls`Y(%2FPVqb+?sVVrWG?Du@;rbW~ZL`g!6!jcU9<~GUUrmmD6@)T{gy^3}=KQ6VYEiTqq>P#=fT%?(@M0 z^%kO1tPes8siGv{{kfAz{1fEnm#OmcG6uoLhipIZG53CAx+TEP<*FRj?{==gVZVMf zsKLkQuzzVT>$2A0LjCd$VY@>nDai`$U&H#xdqGW-03qeGen-T+Z9N?e{Iqqe+;9>x zSH0@c)L%p zsn4!)518n8`L8*?Adt?g*E`-a;`Ajn@a(AD0 zx5PcLCa&CjPnvrX-`|ui_5>5`0_RJhIgQuZ-ZfE^8(*yIII8K+W6WuK*6)nmk-0r8 z{y*cm0ONR+gneo<*<|6%Y@+*hpt@v~{8F}*(|j=AaWtlL>fp>#(`9A$eWGP3tsC>< zP5QYs9um{XSHp1W2}22|?+OOTnfi5;hampuNyY^6$(}6i14txl1z2``O>eOLGuMA@ zf?teUJzbz(=v1q4Uj5ocNS_gy5$ON15%ui}N;}C+Eo0opLa#bINYj{YSF|TFyd-8H z%XPlZY`nN2L&}W*oXX99Q@z0mIZDLf=Ys|15I&jvrNL+f2vLRUg`*3EFD)rNFtwZ; zWaFkrM;&~HD?$KVR^Z=iu{@p4l;$b?p|HN=%s!dnA9oU&UkxWlC~OLcxx=NtTn&@0 zVc5&g+}O=CfoD=ymGo4~QIr)voPSfQ+gBw~3hiS0l9mxuBX5Dd1y!d#Wps3$w`i|^ zbCeo0Ia#zFGk^37+s1OcyM*3-WoCw1p}9+#^+*rKfk~1%t|xvZyXa4tNX=YOqwGhL z03`x}BDt`e30>d-zv5L8rZQMF^7>%7+H_Ex2|g^ux0^l2Vmh{!f|FnIf>bHsGd1t5 zzh@%~<5N?kEySObx|ur=f27oekv9$A+k4Z9-01!9^a`YLwdU8jbXZI?rQuNpCZ-XLF)n1CNp8Q$)AbEMU`j_LG;@IYey z>HftQsl==2o)uS{nug$?DhzO)>>J1b3y*4rRk`;L=(aB5Kq0`x#2KQO6+9Z$U8kJd zFVEv!!_=v*$mVo}Dlc4F9Nn{5=}*Luv)-^{ndm>5TxxC(GoK_&_gA+5`uEQs_54X$ zpYIiCBFdn9pPaYD4k|wLr~E&UJo&k=+AI49Yew|e6;lteTGLN!TC(7AnduV`jwN+L z#56?jFYn^`Df39btuBh2Pq#S6YUN!T^TJJ*TTq7gR#dY{;~ck~oJ&h$)XZrw)Ccb{ zWHiBTzP|~cL#36pK)Ni!ZnR}vgyWMHPtp5I|Ba`<(wO#TPfpW9L_M33#blxci`mo% z%k$~!uyHd#$C45-H_3_VhkVlW87ySqq;U|B!Y~i5c*M+O6<2?zm2#;3*pG|1J z&ORu=?s#|=5sKn1nDbt*2^0}V?)5-<`J+Md@>zlx%kpc_O70HQlEWwlJr%6Q{$cGY zC@}Y7GY*+FclLIE#B{|Dj`7I~e5MkgO%3FAE^Dosvr07s0#X&A zzG?FkALDHqcvS+GD$he(ur*db@D?A)5+I!V*4Co-50-M<<|Ew-?3cglj(sza8;QH0 zLf#ns-BR&k!mn*w$wxxG@p3nnl{BBj1RBbfX8$vNQn4y!bN0=@yn?!auxqL`ZmwkJ zyXc=5s1(ld$T*FkYFU$Sm>JABH1hW5Q^tzop7Djp66C-8I6E6?{g@a(Af~Qzo15&Z z%81GnInUbehGcj8FZ+v;qp-y*FBM;y6^R8gd1C|`vGrDWq}Nu<{`Ya==#>vnOP?M8 z^J;q754-qklfzP$YW~IFVu@32O_uf&8Qh(J{v=o`3U|23^mZ!CQ9EMOzx9KA#S}GC zLM}=lWqnnn?3Vujdv-lfsD(c>lWr=Pg;_>lai0uV|jZOGat_!6s zL1f+1=y#JVVL1Zc*{*1KUoMkyA($Y}yz~+aU8M3zb7a@%8?E(RYn_i&W>WhmpuPBI zwsZLSgnZ@gnH>B>I(F_8NFGf}g!;nUTyXb_)h00wUJ>RtLkl<1y)^`cF7CwO*tX!< zy(wN(Q3|5%z|nqq=U*Z)o~M>I+Mn9g_I`2Xb=%j#j;YGk-}#yo8yPPoKYZB3kNwpE zcIPglJu3t$Z{MeWF%;9i#rmhABJ!4(Vn#AKo9^E1*XwJvcr`Hq-4yAW&JvPI7J{#r zG_s%yN65`GiX{e%SARvp38K?<+~BXxerrvKV~5}PkQ1**#$U(kgrM5^n*h=Zx}D-CQW+bIYH6Z_{=CV$Y=?TXe7?8BlHXx;*}Qc6 z_(zuXv0bd}`6`s%SCxdG9zB7~O-nGKl&xh)1T)e7fLdExR&deSXyARaGHpS#np6K< z7I5?BH(68n-<;Lk3Mg@F?FkB+UwD~M^j;{6w}zaZuXv}sO$g7X)?~hT@eOtx5BuXy zI&61(DI8Paj+J{MY_t)y;@)7|DKg_~E?&0?=zAQir?0lU)-(0B&+@WJxArb^p?R5H zp|tsPi-BfV(!COQ2t{6vjjl+X<5k}m#AuoUg+cQUm}|WI=Va(&5(q=}tY9N)qnSh2 zpZCl%gT4~v`z&tsWO5fTZ=YE4ZZvhiv7exc8QtiY%67OzLUDOjUw0e5pQl7D4v(L) zQz9vad`CxTA@QXaNzv>+5Pcz}>)-kaGGB{>$&(~(^G$_%xbUa=X*mj&@2yI*7Cf-- zxK;q4)~Z-;$FHn3truEVGF%RZjR>X6`V+8YQn z#ox7)<+21D>95$Qcy#vBDa#I>wsi}-ndrH~7RIDY#EFX{b@2-NN44!BZR>w+v%K7E z=W$!f3+Qs`G`|(M+47(NlQJBsV>r(hR@L^rr-O;j*P$DcPZ1C$HT=iYaOC z4|4KvVZIIhm1f^&=}Lr|505;AoO^=OCQzszNGn63S5k=@sIjK;1ck!Iauiye$AVs8 z8u+)qBfzN0Xpj^N9TcHhQ>c%FGX_ziW=me${wSRbA1v9`O+kaC5W>6(A z{jL1%>Yx{gqhn*bT^do&H*tdd4^G+W=gjT26^~8|jrBsVAP&jS9y1ExN~t9pmBUjx zr$;-5iiksow7>cir@17SS+pKr$B%pow=szGsT-C0%g1A11*&Z}ESF!sq~J-Nw1Egr zSqc$&9d&-rzZ+QQAYQS z)w331N-8UB$)IN)Z>@6=oZCT*YnB?*UJ)FFKgmllx|?zhB&`rKcp1!B)_bN3SAQMP zTa6zwY7AOVwz0%nNa;&xC0uS8y0{=a8SNlmB%aiI*eWznee-VQ1*rVAzarz}Gt-mC z|Cv&-8P}0VGD+%|Cpz;*4c08%94t+!?WN|82njpKwOZgkFfKzK+NF4Y+2u&bg52Zcam zpe~w%<{eG0pkE^vx0$02@jA1LCER*bo6hI0{^rl3jZufQx(9r=3#WFx`#%&Htsa;9 zH==^49yWcj(??RewX8(rf{<$~-sI)Bi=vX7Cmfgt?&tnNW+tnbs(9POgz8Dx>HpXs zggtgDsYC_(w54-*{NLi4KE7IC&rYv7!ph)ZGJkm-Z9i2oWDUP+3Gs#H6TINNi$L9a<&z(S(-!sMSou>zuVaED(y~n zE(J+4d>MyBEHWw31%}dqRgC&7k?}I1Gb(Y&YTwEAunB4^e z0?g3^E0-w>%NG)&N^T%b_XM~C=eb%|u;n#j^iW$NwMHCRJcq)A;Y?crB9^pSO@Zq9 z5P$CC%Q?vy9$5{i?^P3>_h$uj{$-9Fi5mgS8=Dv=teWxV%12^;OZ{nsEzbxdg=qS$ zYAQe$+Dzefms_ur;qqv2C<^*QuHUH zW$0Kn(3;%N_mMNo^C^Zp?f(3Swf|ROm+795xaGdHuwc?}o%?P%`*9_BrW~2TTDG#n z{P?PUOo;Z%U3q?}P4s$m>5foEp<#DY=O=qnmD$cp%2o{UeW!RZEJ*6b?TAx8@Wq690bQNetTJ z(X76-ae^Hb$*uo9@mHE50h(IXY3+2~(Zr1R!C}2Q?`f9#RLRU>_waCh#gv|{-R4Yo zBtM{w-lwcvg!F_j&ub)FX(hzDwYxngTWu=lFr4 z|90CAn3GYfXB$49yocrH=3^EbA9Uubqj^wR=c~L_kMRRYBVOU5Z^QBWMKxIw1hY00 zE8R7JGEbAYRDkvl<@otD!;9tFR$3_MbZSX>T%QiUkeXRX%(X6!50`-Ma`ft8!%H2?Aod$E5c2|r@2=FcfH)5SWFd@406 ztflteQ{w2=-#UBxm3pT*i{6$T{jnFq$ftNQ#@2ae>dGg%il0(~ai#@!1NORZ5q6!v zrl&CYDG}{b_n5HceJa;x&isn5qhGn`6py61&K+{s&#Y5Dz#S->>-`Eg!cDuUNx`P){A0N=%b@ap9nBKC;?Cg!MBi`4|4AI zDYXB@mP;>|*qBV@VWPZExT)@$g$4{8v%SlVNW#Xd6Yn-iU_rS!DVu(v070`Qtkm0sWC5KG;4SzJ$$GHFDBvv+o9!fgf12?4IS@oxushye zw2o9gUBOo>L~wMMrtuLpEd&>8GAjF|Eyerp`h_GJL$N>V6jjqb!J{I><0inPe&CG2 zEGjh#Pv}E-Zbv(Nlh34em?Hy(<*|g*5B$WjztwP+$w2Xix_uNxpEcNx#t|ODj%-QT zLZIuh4aFW$#8u-|sc+&MrE)VE(zZrk@dBX&K{oK`b|T7@&k4MK!OP5Lhwz>%0kVcF zGIHrgUdYW><^Nj8uTwt@K8F~>tiON?B&qlj3fYn}&4HtyBzEF$Ab)$!dqSLm7$p0T zTyrLRLhqE!L|T$_ek6j9P#kEK4UkdEDW9;g>JC5!`xoJ$bFO+%iZ>rhilSucp0R~2 zBwbG?$3BN-4`<8$XzId|1oI~$EZaEq`)|&EfKkd*2TIMbYK*ug&}Y4YNc;v}>7;nE zw5QiHqYVk%SuVR+;?e~u5>b+7pg55`Ne$A)?X5a5BokR}IeC<|0BsQgb4VCX|8bLD zcMti95C;f8#srhi-a3Eav_y9L+0{8aNS;;okYAX_kegHE$q>SaIP>{-`C(l@=qNQ_ zcg#Z5<|8hhFNX9LGd7()!~fBn2lrnXNvPs#jHP%T23;R#C`kb&i_&l|WxXK~ojm?watrw^GXZ9Q!M2)N4M|ldD5A-MNS6@vMkE@Bxo_%_Vz~5nLS=VNF zJ@+`>bh6RiGI>O;HKP58Ir)-DMfH=t(dy{11bzjkR=gP=h*?UW6BqTG=mzp_QMi@s znyz_6q$kX8toZS9|aH8l5L}H^C(V@qu*Q(pPf1 z#0pSb=~t&!e!N&IEFf_-R>l2=L!R@D^QXOiz!RNV&YA#2-*Wxsyf3^^P9q6BC%qdF z(Q{tIAffwuGY1Xi)Utvdd6TfGrV_-pXz>8Ita*0CJa#%-29EEM?{pWKIHum7Z7vn8 z5+ z4lY8+zbq)a>o1-FM@btAXUa~!)) zXyJx7slfa{*fp=agWpsz4p>s!@9T< z5JS+@KXu8aKu4BAmzbZk!2n$1N9EfT_uo=NXy^)?Sw-D;@Bm;7IcA;XbN?4W&1KTK z9J|=eM2iZXs`VV&2V0vwtG^T_uekB^$P;X671-~8{`QS6gf4bb|AEs&D_52$d=%3; z$x8Jq+gr*rsl17>1X7vXXyw*BbQUJ(TDr+N`5f9&%qF*s^EhJGW~N{xFMS(PH=_E& zhlO#x@`cEhoT!3XLaw+c*;yR2knlvZra5RgH(S9n(d-Hu{k;h!DJfL+U;FcmzC<}$ znhl~wYAyM3@ejwo25RWy(IjV7Uydcqzscp6EB64p5rIV?TnwF%`8%R%k(6gopg*_? z06tK^zgr7(h9Kx%P=GN>jt2oilJ(M=bDBvtV=Xc{7W~caUimI3pUdvb8xwhvT5+(Xk${8dK-j0yVbe_K?Yf9asFQ7B+tpr*0b2kM zDIwmnN3lDPB!u%IDpqb%6>|LWW|lEdm;hM71=-(FUk{5nHR_T_otx=Fx_!luw)Eu&Cw^O=(XTwOQ$1Wh~a9I$!9<-vHfkk zkX*xtM|1uWW#@7H$H!kDv(~3N-pCV!@v!gzRj+Gfk_29b^Ccs@xmu@UcaR8#lt=zfW7uu|g$_-0moFi> zpo>+ZoWp1<69V&dN{if}h{PW9sEsx5LX|+Khrt;aj!D#9o13Tl3Ut}oQ@PL^atWZW zu^|@Dc*^5bvHZ=~yAyNO0ER`-iTLU9@%`u_FSX8^ z{BYG*1_kCj?Cbkm75>YY6UWQ)i>*BgBxa~Mj?ETeog?!zsU5G_Y{6~$UGIIGgELx$I1nix$f8U2)~`Xz3zDodgWZ5{%msp?CLS1tQh-L{-^r_}UscO=s&lb+0S z5FBX%Uy$WHWBBztHPBu;S6>(zOW`rKrPm60%a=y^7^kX;f`qIbLirkZ1BzbVYBMB- zRCZ})g%-U^W2MhOYBA0n6oj?{@A1B6zn8Zn0%(r^f}S#Lf}ZQcJ1N}FFlQ|+VgOBj zf0Pa)GK12B8vCEmrv82qFLmKZh|@Mg;%ukgHw68%_|kbniwGu{IrkP2=Rs`5`+A)Q zO%c_Xqt>D2vbot!$r1`uyPJ$=1wOMKN(Xkp5z$bybAhW^2ArR3bu;-t#L0F!*tX8q zD%X3AL>yH=a8B%ad`*U^Iz$zkaQk1cr=kylh^jJ28E?Ew&flyUw9yd;B7P-tre=BG zZog~(WOy{9e9KSIbou0#hnrAp9sx?P=vqe0;E5ZAa0cKCF7IsB_r7m=!1d5gghTKd z0@XPi&mCNd+xdNh-o*g==t`N=Pe-X78F&|GX1Zw3Jz;;2W2`Wk?Pjs zJd50=h{RfQUoN$gDU+Ux_MogdR>1(qYA6=S4n4-FEo?tn98~zq!UPBe%N9dRA+Jh)4Z+1Z6y6c} zukDM$`XY!XqqN_$p+-0O52PF8sv zZ`6)X|K}}gFYvy_D~a;qMe|tna2gvpLV&77qi|ElaS6(l0Qk;0@KFbfhwH19u<@>g zzdANmF6YFlF^CPs5a0iSBYa3}{PhiG4QMy(O%gsN4@|3t8ZB|1PS-QK^Fa;tX1w*n zM{Za@=!IdDH%q2YVM?5q~NA$4QoBHSy(Z?=k zbR-Mg%odvnoF?(c*obK+Jy^sC|H(Zi0(uQjGyYWWm~*Rri?2*Z{%?2JM)H;UOE<_u zge~c@u3dmnxtLtL)s_BAArQz!B6N`kt?}GV#dC_0tk;$8t)wO5d=_nYgh1k{(RE6a z`zW|qY_?HbiAhb6+q~9Q?9pv4bQ!7JKivS$&XcF0(4*9UYnddl!vcZAABLwe zJowKcOb2!>OKk62b}I*y+(tov5o%E~Qn^Tu%acO6c8Ct{Ly!bJbE)m-bvg$A zS7O_H1WWCu*BS%c*cKASW8q7g3?+691j8OM6G{Slpbz*nEiI-wpv3qpOH^Bu;~)2H zSO7TfttZtXj_pCOi(&3yt4N7zU@{9^Fi+0E3Ozgk+@Jn@KwpK!l7rT4xunicPsw&V za1%cPEpuCnr+8 zv|wsxyx&AW4dT1jXeN)wL~7GAg$%*R!=GqEXx~@E*ENLhO8{-VA^Pax`B3;f;H$hU z!a|wgV<~*QUG%1p&}!zoaPEfOLzTYk6+fqyob=ijZ>3e3yJ{J zz$^-qGZ|CcW_ay**uE~dPx-%gu&$l)+Bn{|W(-AN$j{I{_<^pi+eS>$xUL-X!+3&t zG01|!M;T-#cl8?Z zQe*$?jte$|Q=@@H-|6d1i9^GlMJB0dC4>AykW;-QVZap2f1;E88_$p2L+$8}#F+Pn zeD6Au41>Al?$qvif7)+N*ZI+BD72i#K$m$m@%?8sa0Kf5q`w9gr#h$W35yMengL9F ze$gd>C&Zf%#Nil1sucw;8{Z~wgwWjr7i{a(&!)VAsCi{+P@GX#JSsu~ngDcFs8&o; z!k^(?6v!Y5;R`k1*+{w`>^2VPIFj0=l7bdlr2ab_+L9YAvTY)0cEC2oUwB~z^}ozr zh4iikopW)ZwQ{Q?fML027lUKQ^GRwKl*LMufP(E@>NLejK%$`MXMeP2UB$}~su$Ds z-sRyFzhQ3U!D1xl)sj*v+=Q*`x7?A$@&vrqA?n7>qleH20eY+E4LBH&UG-)STfQ&d0LUXT}iC~ww4-{>Tyx6 zXT0^tC|=-H`frBxbT$yN;Ca0g<{2NzE=fQ~94@tR3pxpYFbH4{6Kk8w=M+{&IEzrt zsQQoA??VA0WWLMg>duK1i1`6W1=4Pj&0;6K*UeuZ{k~SFU_}dw8M%^dH7)lqnY`?i z@b+SS0q&GVz$MHuohZmWam*rfiDMjK{%V&@Cj5+S&COzR02W^~l51w2$uLo3FiUDAiDIu=i zL0p|R@AaT5vL9cL+RwO%0a>yVda9B0k+`RT0#8S);1+DZ26c!KtgRbewe2N~=?ftV zo)=W1Yn9?&v7o+D;@QuEgzo@0j3<4;h<3CbAHL+k^5hb?M zaYwP2{=sRL1Wv>LxG!xXh#}2xAQ6fLy9jrzCt(}a;OY7)TTu{w(9Ql#IlKy%1o5Kz zNCzxp-f|Rr!+|h1>YLr8c>M2lYWk?j!6r1@?lHa*^G@}R&?DQW3PGeMdX`IV-@kEP ze;#!>1eib%NGvqYVS*B2XRg+x0qs%&Fq#TP*eQ;o26T8CBx94Fb;i1>z;Ioh_S==p`s2@6ZUNQy zQtik!Hk2z~4<;qi=t*`j-NTr`=*Yp}>K|sys@qxl606Za)+PYCqW|WWY+M~Wk=r+} z=3aiK_A@pY)qbd==)?l)AT`fDSl;g!`H46 z@u-bZnC)^+icv~@v0Ek_8Xr3K*c!gq_RxRrkT!nDtmxV`M3^TG;`XIxpAZG2FeVpn zGQt4&|8b-YI8lME#Wt2B5Daht76V zwWULF%*Es_ppE$3iKG&h@zkSViK^ix^n&CI8tJ1Yapy{21CT*boG zJ^f8j3zoSe%up!*O{q?b9KNyYp3>6`)FpcN^M)G>W&>GR0AxEk?IV=-Z^8!k7D-XI@@2W}OK>Gpa5_60Sd{(2^ zX5@}j9MoXQ@vAmA%vFcwuPn@UemSRp>8$YbH-)U=F)5_eTcOy~^dz?tUhi&H!ze!w zb)X938<eK!jT@51xTn_W;)MriwPt5c$GelH3nTxg4EEO9s zW&wy;D2KcP87f0A73F=2)foBt&x;KTf;3a-G6J+ zObPUS9}wV1tI7;QqY2_XXe}Sm)_4b!HshVH4bYVoYzoLb*cw@M-u*51@ih-Kw54#@ zv&`+os9U4h8He>qgrl&);!1oE%MUO51zE%4ud{;givKxX}{yiLcQ{!-U_pvmOnQ z&aZ`Wk{e_B(SN6ARD0#xYB+fvVrJTi2y!pOqb<~^B(4dBA&@59$uHEs3UZ=bn_5ux zx1O0!O$O417-y?##&Q41%t}4L2th~gxBS z*o6QZOdimz@IVIyeHf!vTKiLj3F7e_;PMd$Ze(xHSQKsEvIUTyMJPVwQ!?T{ls3B$ zLtCSPG3N~AQJ7MpI{$J`ljvu`yCqZaS~Hu_5>hZ+?!BxFe7p2uJlM4uApSEW1)(ae#v?S)9M$)NeD;F9;Jm?pA2r3lp&1Is>_}`gf66 zwsO!_UfN0SszSXfWG*!Ib#5aZ9Um!$PCR;3wEvn^V*TH{nDx3VmldYmJ5 z^$!5aGdDQQoQHS_;Zkezn7mJyN$445boPUjJjl3UxMO5bh3;?^9=xFjw@Oe@9g_2! zO|bO5oG*E`5)G4_#7e~LpBw6(NJ!jJ1j5LfXV+yy&;txNE}1|;4Z$!71;7g(l}52& zU7qp{Y~^c%D%&4Yv_U(0mB7P}>fM!^_ar<=LKFFWXL}=K#X@2P8!PF#hnxTM1fWm$1nzVZA_`jY8QUvatfEV^^yDF& znzEZMn4Gi>u^8Hv6V#pg%ltyk>@Es(fvMMXSatTJJ@MHwx3Xc$o2~_ z(kIDnu!$~z0FR>24SrC4~V5q`QU~x|@5=F2BF$4|tCI#qFEDkG);%v(~k)I?wA` zYxHPvT*mSq52uJ8q4#vMD<6q1 zcX5;n^KV-D?$B3v6gHwaBSE;S#btXL{x^iqBK-g*vYq83WK;rN$LBjb7T}sL`sS}g z)vcN0Q(Ix~y#O$)icg6f*Lk!rw-|uE`87-*mQ#{f;9a)B%*y&hZY{0GDx8dg`dCW_ zN9HRN*J~4gn3;%T$4vQ$wF6Q8W;F%Zrkw+#$4m7Nn(9<=#Xu~A=WhNoQt=@N$1Cf$ zgc}Yei>74J9d|xtX5(@&AzZgPy;`5b(N;ZbINC|@^D~%n!MHD>de?;D-Y1FH3XLRF z^F(+CzL!nnm zYO!+NWZr|mBI1SEj!LRjtqhf8zu!`!iPN0G@ z>rwTi8Bm}cmInJgtmn{}yo{7t^8U;Xag*b$8d0!%qx~bAFTUZ~FME?dsM7Q~;`7l5 z7a~~Cb9axb7tXr%l~j*@ec(3Lv$hM;veTO}Kq)RrW5(kUPiJ8pD`eY~MMTFUmvP_E%um zodq@;&tU$js*Kznytq;&yt+~X|JV7CLqa{=EDfIVn}f&rnx_-g)*`&a_p(gGrTTNm zqerOXd32FVaj*7fo8WI=&Ls2{=U3S!hJq(m%F{Z^b{2!1nyNk9dW7?* zMtP)z&zkJjxPwL!uI{`!g%|y#aQrGFl`o!-_><;PdOvQp`D9uIkCW)-4oSy43^VxF z*4nwOtNI8dkche?TN0vDF5OYLM|EZs_K2qw#CrREN}=3?*Ac zxZK6*=B~@9czK}eg?bC;ian%}&x^nrEL!uz5#(D}n*!Kr)n@aD0zQ<3tngw!7bUsw zxZZ#dZm|Iys**2G&v5Z5N-iDg%%9eZ+MD2af0`-x+#mVeedV>Cgv7r}9$j(UHSM!l zXiY1>#5g!^EoNwpa$n!w(xDdR6)du5^t|4h?$xUf3ti^GR+FhQz`&KIbL+o;Wen`0sW^szpHJHuEoV(~cR$3hp|<&IIT&&4wgdy{8Lsu7-V zlC^bxe}BdojKcT6cm^{}bv( zeF75$Ikj0N+cvb!61a&H+s>5N@Y!g%lpJ&DNhtI1#Y`JHDHYBimYW#9=2lF^Z%Z=x zjBh3mgJ#L>Ex`}^blu7k_BGdQge`SXM_ZxhL|hBUts_L$9D*EMI!ubKi0qpE(r%NV ztyVb{L?&IWFWt-=>vuW!mfUt_sc4V`UxO#^WriNt%nfYhvrWzTF&~Yb`cJzHVMTvD z*pn=%wr1CB)SGWSQk-mbg$YGjS#k9o?wNbh^S?v9rmh}4TF|<>%>B{OJPoH!R;Y}lx67-TP=S*rb5oR!6Nf#`!w+S2YfI^y1EDEz5B zxvl5gng}g=QT02|8U&rR$orl^1m2GA-sO6vic7U?wF0vJOWUUC+BJ2_!2GR8tz@p< zrRidqJsakVk9TTV2eG8w6Qr)lOeqlci8Qu|*y)B+PuJ_)OO#^5A>t+{`dCTlDEv#r zV*2~GC%hc#I;=AExUQ7vN=g;-rw(zKhz#}B&)v3(UfVo~*v&1tn_+LAYDrETL2FzH z!48U}yERGw+vMHM&Wv>B05$apR;5q@WrTa&Ekc;%&+S&F&iPm=7Rp99dSnm!1n`ZU zPt6WuZ^aY^_YqaI-HN^po*?7W^QP%B4*g*?Ze1bo^BmUlO~lCl_U_b-PV}##_2oWM z0$$|T5iJ`bXXBQLeMCcsft3I9YfcEn^yy2ti;o7dy_P28A|EaRlRn>k)W@y*-nXh# z?)#nMP4x~_<+7fQ-4)+U8%G(A(zzuhD7Q7}@<$1ZFdRwR4KDXOHeEwE0-!yfW!pFl+$)IW^sYS zS<9#Hdq12(P7(%H{Kz)>`P0->QfE$A8#+vgKGypNBK2Edwi3?^;m56&(*a4}^=p=n z`#p5ElP(Fl@E?g;{eJ)OzWJlZo@U5tSUGlN98H_==GSp#n`zjA!5QAx@JI2Is~#> zJNIG?6=+Dzme4z~zPs(n_@?T-`SZ6Q4+yaq{pYdD=RXaZH_7G-czmYKFi=z!pu-1$(-k_fvyyZq&jTw*3(l)8}@u%t;*BfkBNzU zv{bl;v9<3^cIpKB9)jGcs#TaC$;pw{Gdxldlnk{)$NtH8o(!oNPiw(I)Msv<=~*sr zV|pC(yK!-#L1hPq_X#{WUV_UJ80@z0&UWU-BAZV9;&l&>m_Y-6J@0ke5TE3Dr@q3z zq8@&ooiti1^2+a2n;j%i3TCH>!79h-kZkC&h}TEYv>Vnu?K+>O;yz7ew9zLj&Mr9B z1?j(JOjLx5!}5)^kYx3?Iu;<6@?}KwwmnDS*r_+DvS%Wbg?Cu{ZaxyJf9l`UIy7Q- zf`@D0_3=HK9-KYIMGFitm69}RoAc)gjgwuv1c`g&PJ7uviZGXN#jD9?(^e*xg!}ie z6bJ{Xr>#p_M?v!>kOku8x!YK`;bzQ$R~f)aQ_O^$4F{wBX08E{)h}>A`GzWsgVmt^izn^ZSIW`H&3@6Ee6ShvUMSOb20JHu*ib&oa0a!jVu?AOX;Ls6I0UG-@S#*m--s*^{+ z2g9qs!CXxxxfyRU`yS~F-Q$Z2yRlISr3OD1B=g+;_F+-RqI$vYLw7)GK;mo9WJ7F6 zQ=;JV2sQh#h9NSPg*`mm=-7SM(^~ZMowL)$gxk~ztfo;p2bk~Mempz{L`9PadqrVlb=lx62 zvjDJV5Z^uqBt3^%uz>7lWaiL_x>lK^`N{B)cXp{7`p!y|PwjuW*ESJOjQ)}!92i6{ z?|hiScT|5^ryr@chT{53)E;o&GisPz%7VMSdmoi57>Sf3&bTTNG67NH;5X>)$g=&6%IwY;yU-!cC6{iyiJ)?`{ForhQ0{b&bFh2A8+1g)s8 zRxUh*Fp$@IMSwAxKSs6z+n&&gshNCU`&+Az>)0++`$suiW+L$!wIr z@L4nB8{97g;JP~ng?Y6tCRSnWv}>NyL3K|3#LEKMF~Fs~qUONXSpF)@LBh0AO7gGa z`P}wR5Qky@oJdIBQ8>(v^`XaE&BMXnn{0Aj)#w5*nt$Ooyd-dliVysl_&xP_32OU< zdFtm3mcA*FF7dRiZbFjhrZ%~Z^vGBV`<9p7=Tty4fKm4hHwpG4}JNxP4cF?vITE^Py=dv(FzkroMwCL`gVbYHM!A6L$+60y&gL2pCQiIN+OmcCO5R z8UOV0e4!4H!Ziqt1zXf`GtfB=706bwzbt4Sx^bh9xUEgiis^9}JFrOJY_@ zYucOjvqh_56emYIl0bN z%+Jfpv%DDWB6IE7^B!LbGl2BShq$;9US)-rS;K|6PLq5=oW2=o-sNUO{o?Otuj%3kj1VB-tFAZ_jd!;2cwIGUfW55A?S*(W1XjUf|Hi*6K-xyfYA$`hTr+n<@l4+EBlqT;!CkXyy?f zRx%fk2(zfnY0wf};K_>=7V{4B&6oYE64gCKYD)6Dt zbTv{A9eaNg3CTQ9jd&6gEO4(JzIxekV-J0N+PEBiK__$D-{RXcsMrb{8^>cZ<+>dJ z^pL@n1%Xv!>{EP&x%JSheN0q#p1@q=R-rV1w_6`bCH8{cz66Ab`&?*AP#RdsHL);#&`5w%@_*1ah zMRWO3H3q_H^W`bfQ={O@w1Vt(ebJhuxy>`ttt<@47du0WlHMB~ zZJv*i*E?h5`$kekz5L@xWH8}j^H?F3G&Bw~BwgK&MO>sf;_Zhl8i}rNm0qGQJZ^tO zOUZ=Lp?Pj4{xwQF>ILa89nzj7ZR=$pBNgtfIM{6k;EvCl_&&y6Xj+%v4G2^FAa%T< z@KSJZ$cxS;3K&=y^{@{Ic5+0}HVy6x;U3(H)khPtoPptauMPL!R`|!?TUPu|yCN}B z)y}rI8>rlT-5QWe&Y(S7m)%4^jbiA59s(nS%GQvgx_2ou=K4159-pt;Fo&8!r1ZZ5#HJ z^BOqX76zi40CjX(M?^Sw1lA~Is54?qf~tG7EF*r|YSN_sdx&MZY^K>P9gaa?%1WxU zn$0|TfsNe`{`a_-XN3>I7oYxhn2&6S56;I%RMZ>jhg}Au#5iotR9_dMvsiy_-#$qg z=DGheS6RezGCwRX>3ef#*1GSre6S5c`2(6Jl+mf_! zue%Oa@zrgU@}$knU=5<*Z=(jToQ*VATLjai+1Fd=BsfBkTG?!;(3lXo&nRqEZG&#X zj3GG#?%5+GitY0!Z#l#Sh;!s2&{>uGtYTJoTYCV#u(O9!K8-99CZ`GskLbSXT%Qt$|o; zruY$?M&he_?jj?!mq3ri9d;5>D(EvzK`PH2N+1Rei@?Y=Ffza7O9Kl_;VHsAri5)- z{Q2a}n*{eoG@Fa|T~=}h9m7s1@o&;(S{e(AL{;dJ<}r{W+%{ah`{? zUJvb@hU!zx)}$=+72=kGz+-^G%jF8149SU6rElV7S{vUiFSpb6$TPPJ1DRLOL22wh z6@>PT?%sAPh2b8gWEkktE2Lzf8291f}F&*a~} zg*3!)W~{ArdbBh-MrY_vk2`z%Y7(Mitm9exT0Jc|e0}|QY`{gokU;K?g6yT{a~vj#;naf-^Cuu4iz#^iN(#&&o^wFd`a4T0CcD5dsV@D77+jYsA&os z^U>_x6Qwy@y5fSGe{+sO@q&C?hC*SsVU2+jMMKf5-k;2^^ zz3q0QrRq)TKH=wJA>Y742GQAC<15{&p&tDbAX1B)H|^YTd2ub(Qr-tW8js`cMw>UGE9=#kk(E$vQPIIsB;gM?v!H81r=gI>YyizxDSkAhqJ9kn?E@8ZlNQAgk~ z6e1ciAdLN)=~l9lVzyowK5q&_X$`MhlbO*o#9*=Sxkh6ke48?hF2BoXc6cvIyQSZx z>Fr(936?pc2+^2i>RkoDAmyw4W~6~9khslpQ&x7Gc37OS)F&b?vf|`ZybF*9IgrL3 zHxZK|7h9m;mf;D^ADAVElI`?h3RfU1=_0#S0C1rnt^tmzaer-X=q&FCji<~DDmIEj zheD@DFHJ;E1_oljNrW0=+6z*Y8Nim6&L~ea2J&b702V8SPR_^!U0?wZ{6W^koxJLl z3LHSDHI?Zy&j@X+x2xzaH!P~`t&Rj+>b|-Rg2ZbKw{1ix$wglAErpjQ-^MurtiZ<1 z2uL{D(e+1g#`X-uT%|=CBh}Syf>PAC-1}Wmq?2YsYd|FudJd(%rjKl>;aoE4f-Z3g z^5-0~hW1T1P?w^L{IMzMfk?E2oz|!Bp# z6D{@lC`~gehNh+MG3O7a%H-w>G-c+nC!#-2HOx}#9qd#v);E*z;@+WQzhHI9$)^FV zlAR_AAca1F3mToecZ`~l7AjqUvs9BxPfyoXlqn>Rd$}|)2NHE6)NgQP)uB#u1$u_$ z{$)XKLxRYC6Pf>#V|Ake#Uuj)^ZOVhw1sLQ|2S(dXLZu|_==+5CE z4bOm1mQ+r@JAYcr8hjvAphElYWt?mh(7#@~CJaCyVOTBN=H`35qDpBZSHmQKyvl)v zOR9m2+tNnHB9e_<N_-}Rj z;-a%>Gd@b8)1dCr_z&D4^ScKJmFn{=GjdB&(_U?SU?2KbZ$?s}ZKp;$ftT_HQncT+ z4JjJH(xt#;iqe=-#FcG7P!d|flag5Qb@b_tev02;FHz`lTfD`9r>N^xRqN>OaV9@e zHtga#yv%Dw#|9|edfs{NsoT$<*^-B7BqNp@=1ke&*gRqO+D04i$N38*q~CzjB%^14 zfa4^KPRxYbp#0U9?yJzwzsynw(;Go;fjww?(lR;fYY$1bp04fGLp6Ram~vZOuExU8g;Yu%``YUV$^MC=O+QOcLr@4=w|dv zo_Npp`eVcIFhFK&gAZO5FdKS(t?+wydTxV-xY@ z#~&2SYv6Wm)9~XK7H{v~3_oVk$*Zi52y2ZoTr%D}U`J^ta!LmKAHIAc!D9=NF{XsR zBp#j;scoG9od;4Lh0eK4&b_AqLftEQE1ud~;-tS5vpYVk&o|I)oJvE33Ewi1TUiQ=F zG03dcPdq$wqFY^`lmX?DnGP=nI7fTwE>c%iY%T1dNg%^dk#K05_v0(Avtwp+OK&++ z$d{Lf3v&y%NiM@gthUWx{~qFH7#?E%ywG0@l4rpXC=`@zhtRB;AUOqW9zYQ~FbOE8 z&pezM-QEth9Mq%6g}e&zIEJEUptF(T7$5}M!+XWZp`ff zLSWFht9tZH3B`g}%|k8j$hW!avWRKib%VraV21n`Qoz(u%?YQp)dc==t= zN z^9yK7Kf^CSlP5uyxi3vfq^aS;kNjZ*w)AyKhJgyKKe2XpR*XWc#4fkLKl-WN5RgZ} zNU}g|g$P&v_%sEy4fkWje0u<>FzA4q7-l4En0FJkz0F;7{l{b-9clpFTM}1Qik8rb zlm~$W;cZo_SbqNe>J8vu##j^^D#H*T7Uj{yn(5 z9TXc#()NTN_vI(}?u+Nv8y{AxJ_lZvu^N#CLz>s&E_yrRJX8iv%#k699ctg~Sd{x- zt9S77v@e4`mob!4#(xu<{s>TEm|=cHoCZP;4yH<0X%Ws2$(knM^eM`-<#91U(2&5& zYx&{rZZUn%&SlA4wDBSN@!5sS3AzejanvCT!@O)znH;?X3Qk?tQjzBtAbwYmA?}VC z!5mb!fWBXOI;oBK$zVdVI>-a@y{{ZyTV47PI7d{t+RU(0KQ@3vPtll?ac)QXKV{)s z1V0^yTKxC~uat0413GA(ha{5|W5;aliKeN*elteSwcj+Y=^CqY&R2WMWu-k^Z<8-qOiqeVLgg_a| z+rn{`CiOoDw3n3Sd|-G?O@k?oIr!bg>UWIe<#}#R3JK+stSV$1Hh)X$0K>0|NvGtI z?$#m#i#MJahKrj5$OFP^6B9l_K>xEyU?=6^H?h{N-j2>)$bF`d!paIA?R3@f@;du5 z{8_I7UA(3RKT)$O>^eKK{Jf=c?{c!{yA^-fYDLxBelXxMat}S1a{8YC=j;$wNwSf) zJ}weJOk**nER7PI(wv-04WUq7+|><&vsrCg0*Gw1RuttZa^Vcs71Sw2dhMDc?Yq@Q zeo!$77;p~+BU>eVyuVFFtMS*EBv!na3x)7@&(UjIVUgLjuB^6r=S?hs6A2wqrb{7d zs-_Wfzz>F$sH2(R-`LkL=UdNn?u!eO2af2EyG4Y>^QAKSEP^Q2$0&09KRGs=wwMCz z@{%(;+U|X18p0oL0aH;?chu@myTHQs$@nc^hcQY5TZ2^xb~KH=e}9q2H8*#ejQ8Q8 zN6N1;^EWQF_UQw>RF~ZUtkhe4S`w=y1hNO(zcN;b%y00y@`#v?F=?PecNPG2>avGgm}KvNvWmgYuv2?C+k=)kOVTAD_MJLg>eWR!;|ol;gSl`~hzTQgwi6{|Sgu zwP<`6m~M2KjBn8SVI$aufuySHkmaqd$B2*qZ16^c22aMd*+Fy-Wpj7ma~G6pA7}c3TXHpD*gx7c#Bex2ZiQMJ@|D9&O8I zx3u_&M_6fLn!_GKE3JfK^VPN)8KSbJBLRQp04@D$^mAZzB=P*hDFcJao{UnR#ln0w zb;6B9>`T*C9LTKGXzw>)TCq&l)em-~^iY`B96*2ANdg(!%^NZIriVR=LU+-M;_l+}5AjJoDB!d9ip&(;xax2Gc%+BS~#f zNDymTcb%UYsIJ*aX@4A=^Pbdi302(xcI`xZAcvWDrey!P&$FhU#W7Uw5r6$jR$ zQtxml+!|@p!O;IsuY{qRLg*9$N|#p%wd_YOqT=GnmEqyqFOAb8jpE{cHr<+fGLM`0 z$IzKr$JE7lJlix}p08i`Jf^11Ego4GrKf+!%~rU)?D@omAKQ)qMW%lgZoMaK{+km( zJI+H`f$&(Yb>nDN2}h?@uA~k=$;f>Ozj4=R}Rp2)Z5zMugw%?XRPX< znQ8mc{-cCQX~ViDzc;l3X67!5V~!vTfwIRc|CL~@D}hr&0bBh6LSvR)8~!L1yL?PA zqZ%Kvy6HY+t3Qj&b`dnX2oE&&jV!=yykIRla`AAV9$sH=D&XZGbx0me(>H7VbbI7= zifC;~Ay0QLURYEox>Wq{7REq|aybD&P#Wx}@Or|+G2CLaE!5vYWNOIU-~U9nrKPX5 zpW~yX731U<(%A<@q5xvOrnUn=KMHzm?00@sgxSA~iun)x(G(4~IRfuLN8CJZ&GcAX znfSh%@+*TOH2I{(c^jXBUMU({Oph{9(yW|mbCQe8UaqCT z^35?76EjordZ*mV%j-xtJe+0QhsdK29|Mra^yS|!nJ|bspyKqn@eTaRC9D5yxkseA5Mu)%84t2QaLrFq!-9iV!umfl{Mqq-XF74Wl7wzqEH+}zz> zv?FDV0KHfyuj{X5L3~t)@6N9OanK(Z0T5xM(7m^3Z*5lsHGlfEwehCG)KvOc5s~mq ze@qjA^K5IvNvHKAua72AoAwVO`b#<)FPyqA*5I-#f2xluQ z!1@nLxaFzzrS9&7eH)mSwjfmP8l^pFg6f=3in!m!MR=pXzX=6a3x$jSWg#e4i4J_f z<0W=TF;FupoHJ;>;^d;ZzI_<+b{F4{(!r6IO#j_zlxTX{H{i-XrSB`rJI^!1dq>APZVBFfj{(#FmBkPnCg96Pl&(=!3-e0S?olN8Vu0>m=U! z#bnWy`55lmwc3)wL9U9ai4N;G*$YWe><-u>RP#Yv|HQ_IFz#fNn!p_3z?mcfwSc3B zJC1E{k+iXT@H&;M(elU2dw*jr&VYDs**-U52R zR+I{zdxBzBev~LwXY}>3lcOz` zpuBh?7hCh+@1#NDI}NpxL#O{`W>$!QbRl=78VN*ZYZDMQS4(m;?yB}R!0ia1O-^dNPfhY9 zi{3&|qWU$GE!g1??}!%}8Hv=EmfC;={#O2TG>0dA#Ii&FAYuWjiHdZR9krFx7M)m`ePCe! z>xG6-vZbSAywF-s_=6z}Ok4#8ZyE)K#umYpvyyTJzLoiTpbfGBXh`qYI8>H~<3a_x zBtakCKU4{(XDu70=)S9r)jAQdx^*wi&M1D7?jHRIF62<2+OY74jz;ZDg+DXErLOR| z@(cdsFqPtVLk@w6$RnZn9<1;&;kOsC=2H)vVamGS#C!4SW0R&zx$^Ue1x+KS7i0^I z#dG=`_}&A^uZDYju*!C$-K_*3(hayIk-hn`k_MUlaGKU{QU=u4Nz#yoIw~@CxNoQA zGKWim-&Mn>uYYBBg)7f#pIcC{7FwaH?mzrfV{36S!^PR23^pwA#wU`2G>QuCx%Rud zveBJ=G6PZA|2a`enl-3^xH^p{pM(BMLw+Yv6W3n8O{pf^Ggi(4eiav;)IC^oYNG?xbo0j>het^Rit3_=U27G3F#+dj|1%1?=ern8 zg#zq_!$4l2Y7SEps4uD!I{3#^wvs(F$9&p8)9p%N%uEI-_^B!ELoruI(;Zuo1f>9Q z3-L?@zP5j8$c(}Z)CtUF#HaZ|%H`B2D224kmKpV|b1w5y&^5zI&SnqkoCfSNMdQXw^a-dz zruDy)#DsiFCgB=((kr+!#QRc#pNjm`x*Id>1rPLv#2EO`7tDR7H~HLtaH{B$%RfX%vF(O?4nPOU+tFf6p^^@;aRq4 z)0@|)F@d^@TDTD3mqAWi=qhP;1;!WEe}s%^1htiZkk1rThU-?eB36MuNXNi6Re=U^ z0bEpV4MHmwfyqM9zwjPXg)WRAk!d}+$ljv@)DQ;5*YU|)OQ@`<&t{sgcHQQU0pF(p z8!o6aK|=O_)b5jTDX6J;UWPYDp5MK>i)~yuhEQ_tl-cT1n+3ZK%yd;qN57$Hy!%nu>1RQh) z8}$wL;Q^R{=!%yyq)Ybpt;`Umgp z`OI1RXvFOho6qk33BXZRLU@$tbI~gjVpfNHF6d^kqM78)qW<5Bt zcORtfsPTHQOGkcswUgMda+cv~AxAaQAm;-{t;E6(3P*-9EzN zIXP=`1^qegfSku_2bO$eq+bcVG(FTdr=xR(Zsd7J4JZDylSMN?Ks$Qr&-Q}MI7X^c z^BM+ZmWUr3o(I;}v8-F~Is?j=q=erO{^v`2Nujriz)ibN{wj8N4)rf!ah%xY8rn>2 zh#ytMEPZCi)BfP}&W-OMV3$@Pcj^u4G>*KXAiDQ7R7M#*f^e?2z- zGqMqWddh&V+iMLpTm9Lv{?(?S>+D=eXD7qoEE~i(8Q{Ys*8F0hc~Hz~qQOPb|8b~Y zu#xYW_-c}pmmcT}9+CkWDF1%7 ziIURomw0&BuR-GPM=UJlwT_REgSOtQ-8iR*b<)?B!BPDqd&t#Wz~HWdLQmgk36`J{ zAprtVQIdp*h367l_N66`^zY0@gdxOfuQB~edwmrhK!a;eyRWaIf zlPi?lF9E;#2@@bve@w`&WzY(*kdx1nIyiN)4GifqpTFHdI%lB>#pGR-0LV%6~8pCOq_*0 zHRT?5^8$fX-O;l93b>^Ue$e<8ruv2UZ}o#j<>u-pYyx1jZz^`B2l^*%P12H}Ne?l7 zTiwFL;z4&1dD7t2K?8s)bhOtp{|1X-q4JgR8ftJ_<%5H$>>&dOUZB5w)H0B$&nv^9 zFWY*0gsx$oQg#EGJR$&0F*}Y=9Qgz8 zN{#lKC+~kp_wqhpESltK1n_e!HBpGo=2zPXIc1Dyp50$47T~EK|ELqZ+9UB%n2|wi zDCkRoaPmOgdhQ#FFRf?x+TYZU?9Vdmn)eL_K@2 zis{c%JHS%WEvPHohu#^Wx+V|$QknZ0AzDc@{i2}!>HR3Dcxx4n#e08`eEm;4A1A?~ z@ZKjW+&tVqHjVXpIy_cV;>#gb)rP^om;91m&Cya${e{`GZqxVgX6V+>#PDJ{Ae;DG zAy7yZlgDEl`firaqb)#zR}6I=9VV8Pd=S~BAWgM~47Rzv{Y5r4V9#1ny=)73r>39X zy{m~EXCO@eH=gCM@gsLuwKq5R_s_>c>3I=c8@3^?Ok|*JRt?Y@0<161o}gd^_MJQD zV^d$Qx+}GDECfN@41XcGBPl`p3*}y!-))v)E7n3` z`hVs=ITMP#rQd{fbP4Z8t?&~8VlOLD_bSj@10}R*Kl5k21Z;1NmxP4=u(rl0eQJUM z_1x~&i?~3Bzy$~=QjDKnw74Oi172MH%gl8JAEYy%ejb#9wf|#SA@imd=p#hAI86MW zTS}R}dzZZ$T=kWE?CW^r=#Z2~NC`WG5hqRgK=$bxVbOG~UjbpSaisYxx?i<>; zWL4}#1o$@R5Q~W^6kfAp1l0lVZ~5hbx@v0mFh1_H7yX6=Y2^QW*BwoGan7#U`@{t< zp8{R~fQx~#DJdoO4#U)U*jQP@*%=QM@{^A!$r!iE`o*dN6CukKnFjm;`+Z>BkHA9* zTG8h&3QROv_lCCrmqt+)R~PlrtEWCSN86nfn^+h5pt_DJ z+XJq!{h6d(k?a!}5dM%ZUv-!>Wf~oz>!#fq%y@o6C;@P(L^QaTvcapXyUbkSqvFLr z&t#+qwZZkCf0Y0fUv&ZV7(4ybyajN?x4kwunLt$9OFBRI!qU-Zbog?U!o7j6zAhis z0lxHlyj{r&eAYB!Vr8X>rgK(3LDRsWxui$HGYh||QZ}nVaYPNw(+`R{7{in`WCF(W z+7Utpb#;Sansya2`%xX+paZMl&UB`bjvlVZzyqS%$;feJ z41gbk)mZz_%<319blR2IeSfvU$*VcXDd;>pW-RFf^fs>s2qw@X7~i}mkc zU!YvWYhmpc46&t%pT>fpKr%+pa)J&*FJTnue+Yo?kVJic-mt3@H^DDCMp=3DV^V3<4jNHxAVXw@{P($J2 zl|o4`trh5v(qsEojV>nlB9J?4pvMN&XYeCHC4bB+DiQE!w(0&xIU4DB9Om3q^w=Hx z;K#dsv=?Uiiu&Q<0)p;<1LBMI_a6=IXvu*63Kx1?A&HI6fa)MGOtZaETzK1n8{Xf) zGk}K}W|9z@Uq6qYif_ALjZlYiN3{zs1TiznUy6+M_rne{lhkr6=m+7>lg7?ud`V;- z^7MfFKSk{*1;Wbv`-N@nI1{kQJ34TOCmvQ^*7u$67+~+YRv+xu6{O8DiV;ZquRp>6-+%i5gCu6J%8fey zIt2go!tBy?_G`XOz;MB>6*`c}fUp7xCp2~U*YU&?@}d8m3OGc-lF5Ro10Iy~X_X`> z8EMH;qCht^&@>%x>A%n3|K9tYci%bhojb<8cf%;gsP0u&YpylJH@`Ux%6G~va8g@c zOC6x10st!T7obc4ssQa#8d{p8w6rv|bab@z3?~^FjvZrQV`4sWl9P>#i<6CmgNIiD z!gHGc39UTKb11kdqt1u4-kMMu`hw=e9 zMNgGPuRu+89yoG}iux24r5%8P^Q58r{R8~vhw2D5IA1#YV+_Z^0W~LqBUIGXM~+g{ z&>TGqjt&672acYiVL2ytotD+$KHYg2HtFZFS@irjDn7E`8N^(WdEolu7y}0<7dMZ9 zppdYL=w;a}a#!UQRBx)OYiMd|8{RcCHZe6bw|V&Jv8|oGgPXgDrnZ%}YZXxPhF z;c@W^iAitXCZ}ZQi@@*9TeQbPgeqr&) z((=mc8g_dJx4XBGKOp>)iwdCrLoD#`AA+6O&k10EiS}Ev|967D_%BKJSHb=! z*En#3nhM-J>Qev|AmoP&XCC?2@vk-bPwN0PyYZGmRh2H<;+=_K?wVZl zTYxc-pV2D%&^08}bYQGI)4s)Q(O?8mPC&4^xDaB^8b{FMYNCdI{Po$*^Li0v$c^hS z4#{{uvS=~|I3C}I+WABQ$On34i5O?SdQ!q6U!t1NB9v3{nxtAYWB_`hWhY}Q-(hj3TD);Kl8Dw#}4K<;98d1t&Y|AWlNrn>6LZnw)W zXE!&(v0EqoO&i}fn~T@Kf-aYA&&-NF8p?|N%`BZFMyI?~Yz!5~V~PPS=l z)H_fB7I%xYU!DwEYtj*`Ad*Y)$ZxH}YhLuL1#RqwP>=qvGjrDV%Ph)jU26!11z8Hf zZpCZn?#RHFj?YM**(~5LhnDq~R71OYB^h}fc80OGMGk>tqsX+V&Y~-$XR_rD4o(=K ziQ_gsi2Ho7HQl_uq3CFP(eOfrwevlm%LX9?w1>mCQnQ})(bxnIeOIbY8Oxfr9ucj} zBw1o#_}%%<(r>M>*mr*ON*rS;VkP+28`p1)oh7sN%D@Iaj%P7Ojoi`p72=29LZ_$- zCg}bjHLY#{;VapULVg zHv3su)0p1%;f%&9LZ)o5gSFhylg;tbYc4+0Pd^=h`V_9y!O3Ed_qvnLa`V-3cK(W0 z5Ifr8vFUwZ&&k*>TbdEEu@uD{EyCaZnveLhFso;?s)? zh_|rOacou=@9OXVNLG150nC5mpwYe$he~;BN|P$%`@Fkm;eGB8?QkVGy=)QUuI;;5 z%bD+B_fp4uH$wJe_ewM^ixO$|c(n>tS&bbF%bE}$1_VYB~E{~LE zNDZ=jU&Q^>tw-WoOm?_vH-m8Yvwt1`hps_R@mj69ZbdrT{S~k^LZWe*R=~&HpTk`; zzf|9%2*@)a%Dl_V3LVlfG|HJbZ(p>{wP@(Vv3FZ=(tD6mhS}+ShLfAkW?1vJjq!=L zl?S&&t&by~Ar(@4-LC2S$msH)iH|3w=T|jrcqk`kTUy%Ju3mUueuM9sm-6lsK`zSU zGu4RfQO*>2E&4kk6(BW?MP5s<6_mI;J+*(}d96WYz(Hos%Q#T5q7f}PWW#b18}vnj ziocK@X$_n2-dJp`#43jgKP^4_;pyGOaGc|Lg1FA@7n`h!v2HP{lO|ULV=melcubS} z!r6UtXUWzfU(rdchUM|tE33|zO0JzOzfH#GvE}vOczB;X z&m@_IZde}vuARZwoWGn!9_+_Ke2du4RRcXJ$Zl3 zi*M$Nc%{1L)z6D2r}FIr&tqyjdhAMQb|cH0Z0c{crs=`@8c`cB5zAQU)&~l}pjx6z z0if#?Adn7k>`nnZQ|{<0N6F;-cuF`zZ7!f=zjn+;!K~1;BZ^v!7Hw2C;)8WhnN${{ zYi1@t2-c*qJC zLely0{UR+`S+v;4#&G=kH9{9G)Q-dCM7$`6G4-ncS{+>%pX_jFGFz05V|8^TJr~`D zLzB$YEjKkHqOOP)_7k^VNNzWINNKe!^Fwe+8$QmRvW6dD*E;3mt#}a6+vnpJ-&Own z7Nz97>t4pNy)t`IiUnoqVtsv9+Y z<0&_}gC2TyJvqbk9Wxr2A`#_yFRJ-wy?CUPa!rUrMUGad!$ym7$&CWtkrWqS{ys9> zDtZW?P614>#F>59z3cv8;6%`qE-#>F7()}^KlLBKHxLG zWkQ{p&RX%YusRCS8F(bMrL@3gD9p&mVqh}Y^t!9Fi#n#gq zn!{pmPuXSX35Ka zESI@2`chf*V_E0j(ed56c(@SW`aVhTzGWbUxLiIjas?S%w)sGj-KPiPhH zfF{B1lfqHUp=jirC0{Q8D|N4vMkClZltx0~or_hFMX_jnvR|3K zy=_2&C40rIuD20gN|gbOa&2#9y0QEg(LPptoi{=iX+F=I*az6NZ={aa3G;}s711^y z=nj?U85%i%{b^t%Qs1Wjc*VS|wI!#+<0Q>Pt4g7)O|kxq@#Ir5?%skaVBB#ZxYRR? zEAaN)NI!{wL>)6OD|McBu;7O z;}UK|+pUkdZtKjg9u2f*ramLWH~nqUTTbnb$}nR~@Arg?srO851cs3~gy5w|_m8R; zctS%STEgGhU< z)Npr|&ag4b8Qpq)@5@q*7T~;WHjlRQ;v4cQd^LO2pL)Fa%Z>ECvitOyFC}1Wf&}-m_~?twBqSev|naBb|`yi}TCL#}tIRZ!yU(*lVxy4%0q*{F$p?&j}7`4^+Yg zOI}GX*4wK&ti1U2AeT;RTd?&E`E6PKfEG=|-ac*I5dUp+EJlVVMjMZEjAIvR)Vc-W$N zBQ;3p4Td2L8`ggFx-R}#YsWdmHbVMJF7*gXpG5eytarE1KazJfg#B0}#@q;Dr|E~T ze_q=VKUY;_;pZ{N6X}9px8!KR^mUS#bY4o9&)2)fS=B|770ERcF-7okHZPND*_NA? zT&4^9+{rQffr(>dRuePhU2gWGUyetX6wRU&e!v)ognRbaYOguouB@_fSCrHq-2JX- zfN;)*EfGfU=i0nj$1hKWZzx_X@@}bNu5#FWO@H^%(rX*)3HuJcJbNz=KKW7Eh*Gr& zJqB89i?fTyc^ebcHy_tOt{X;Yl10P@N{sGK36|FENM+r)ZJDsu8^Gz>(J@e84}ExZ zI)~Qt43!zDZ-Vhe@P#i@>-_FS(WJcM%d=`uiY1R$f>5JX@l)05l$Gb`lxWOlB|Hq|3oTu(u(rSD><^JjVXCrstAk=7uw~O~ykOih>h>R|UTi{+ zs98P<+t`6FiH8lgQ-K9fop2d1&1w3Q`DJUCy8 zA9M6z(oW<(2Cx!~tHjHjF1R+M#t4)C9p0(OnD0@51uNT-X0uBzJd&>#I2tqO<@F|0 zJCY@oh+riyD*NkA+_d+tNriEh~uOpryvA4Bm0? znYKa8PXDIQo!#?FMq$=sb;v+gLlcdZZ)tB0)YxzQiz@kNHT~aeO|Z^U)AA|j)6Wc8 z1nhRVNmBs&{qp7cu!u~|o6v$rPl%mMt-z)hGQ(d9{7m(|;eDo4C)oxX_{aTbD4u9!VdbhZCVnyW1Kr^Vv=pXQ1XnM)wb z_)6@ktH-WaVWe$EXS`|`HAMFEo3_x%KIm#dOk zwsd&zYLT19(2T&6!d(ZG(j5B3e!}4^q|gp}gYc%Co&p#;leXMUIroQQI<1dq1HSRH z-ErWIo4NfkfyDWq-Mng&bXugxe)j&?-FH(I;B|Gi!CgNPDI@^ZCiz5p%=yXl4vmYZ zAq_8R$W?-)3igC)vVYih!?R#75+a~Bpmo>;zA z>0WQ$c2%}#+AbyPU95|}=yRgQZIL3ipZzyNABB`78D92fC+2wkNQf!SUrOs68UAiA zBBO2}3I5eCw%kzB;rjr_Yr8Q!^Rl@kGkOgO#Kq?aDKiy#FQg^A^rxgX-()V^ZFUJQ z4|#`$_alf`29n8LgVrCjh?2vZVuBT3vfW!}pyx9l_>OLt&8D#|YsXD@eiHNQ`n(_z zHgB&GYo*7BWW9e*mVT<71m)E`l3l*e<4!QbCDn-<4J@qRbu+F}e!&_!pU3Im0cOX- zRQ!2QKDxn6%_ZKIu~s9xS_Yts;u9I#ow+%^PHqn{2^9%bqQ&dm*J7CAu49(S(B=mf zeQ_~3ivn&fbgiztwIH@LZ0<3~eicUp@L-z#3l&MMzjV{lLkIFR>Ir!^^`lEh3f<4^ zxH3?!`=1a71{F;nIZIR=p{Z$#rP^882%1jFI_9@+;q(UNjF)_pj?}_T#=h8AZTjBM z@S)9mL^GB9LdPdT;nF6frQ!F;ApOp4sT#oO3~=>GzWHoxd=a|VJZ}Piq^K4l2Br84zs8O?_0G|vp5d+S*D8PqYu&w}| z6CQxB$mJtu?;xUpCkAGF3e$-QXuM64nPqR(w53c*t?vB!}G26A5KtSdOw zujT)sf|LPp15*lsNw9Wfhe;B8;8OR*Z%ev`(yC};`0mk-g(H6@4@uIED^_Qt!|J|~)Xnt1Fcl(b_S$>WV zkdU1pcc*aOnaACYp+o^5Iub3epU9wx%^|a-QImsGU}Tyu@@1+DwTBw>jtm-iW6X!m zCNeE@FOX}HDl}{c|MP=g9i-}pFCPS(5JK{*bDfS|?g@^uWc}%Y{PXiN8NDXWGHgU-=c7j9FFWqrQC#t4A5<-c?ih>5~j>|8Vlzm(d4UVGYu7N%Dw z4$zjd$Nt+|mHlO{z;(*_(>h(ILaJ#vE1F!&9o@cAakZxrWCwn#X@No*o)~1R6e8h- zsc?4#{h>Rf(8HBGr4?28AF3-q3sPbJFLP^^imLODtZfn0@W!;VXBl1zwojX|kqfJ_ z2cr<8xFj`VU^ovkgH_>8WA6m5We@`;F)Emlz*1&TmN&Z1`fSUg;Hxq-m}Q8B%?p)w zs*wRY)&I~C{}-l+29|wEquaVNG*N6-tgCm>vE%_h@p$b)R?Xp53Sc*LiYH`EX1c0G zS#z>pHSPNjjLo6a|2lRgF79?zel75Gi;U=(?S-RQN~?Q49TmoV;4?yDc6zFlOxH{v z&GiZ@oz@H;lz%G2PXT;l46VK9QDKJT)2(H5^3!6kb*cp#Nyo@WJMT->TOJp;D0uD$ z79fRhr*fX_^KOD+3SJJTFLiEz!Z9a3&4I?0U7K@$C7U#AsHMfYnVuQ9&Ah99Ey#k8 z2b&f(^?8VBl7F2xo2g$ao6BZ`zoKmBWEV}%&I0#@Ivj-IQ=bbLPg- z=BmWLRHRQzaUQ|{WzF%5^64)P;dY}M5;HqvBr)o{DENBRqGOc$_W^eUW7&weLszTU zFP7!Csw0+jyll*P;fyR=PiiTE4DMEpD4|rT1{Mtq`yI3c=zsN0nD}7OpNa~nkCSdI zj@@vr$T+ZTBN$5tHOouX`R2Y5ANVoeQr<^jx)DducG2zU|{U^cf=ypRyb`@x?Ff%{K0lU0m$T)>8PY0FSa$ zSxKPg?Pl&n*0!LRYPq|oyihimf9~D21DVW@8ct$ zw)HAS2etZFaT9kJF|`pw z7Q$Ua@8__)5oZ;z1e|8iahz`wi@e89bkj*r?TeNUO^Q40a6W2x(bbU?YVM1d11&d$ zzIf8Sqj|<9Y+lWbQ)}!wQBA^jl24MWdil+C&wFp%o6r1H-08^F<|oa@Zq$d5vhjTu zv2hW)HmK3SHdA9-;`q*>D)R8NuT!Yeh*UY`u@cd8$c?Sh)Eu(_&QV$KQTVdSV5oNM< zx?|(`;WqvC(U8F#Q<(=A=<#Oh&1oH-}zjb~26SGj&@oi{swZ}5FjtYuiVq9jKZ zwce8~NjBS<`Mld@)wYkdQWY;G^7LU4VMOXq5eJbN9-Z9u|m{Pb;bSVrGQ~MtMbL_(N}~Qoq)4;MliFl@Fy&SBS`i z#{cZMz$503M}PjP8e!`wHLH8$cG^QIe+{`n0bZscf;Gm19X*PrLp6a9`o0{pT~=0l zXX~)m2?dA7Z4R(@)b_OUJ1h}oJJI-%T-Et4MpJyj^P9$8(pI zozTjOm)Ry7iPrn{1mhAAC8?c>b9$^qO_Z)4*v??K8vKKwpBwTM>0IWUUo#tV8c8b= zaW9nBuBi+r|H!2u=36)Ge6nNSnQ_A5l*W$+KFgw*#)U$@Zv)LmM_F{vwYwB~DnC0h zV%)CVpI9O=upDx=aK;rxAW)ueq@8Z=T3Maxa7?@?UoMk0d{k`F7|UM%X1;{^jJK1j zV45Q8QLFV^`411o))_^?dZ%7pQ{BD6p6Ac`b~ol6cGSPlmob^Rn`eiM6}JC-VP9;? zc>+OJv1X?LNH99%*pd10fB1+klR5U4{JK{Bnw?XA+%u*AJ!J|IhoS&aS5YY@ld_nt zpI}xkfFREeBQ7KB3;$f%p^DczbF%wlUlE&w*;w?E=iP!8&^c)gnnYKP`W3iy@gWr8 zJo78WPi{8~kez~(v7^TIlUXGh5d(fYe}!Rxx&ryNN0=I?2V#noIB}tm=HE7=D{Pb| zjr$k7*gqvnsB;34JB)#zz5LogCX+nnA1n0=NP{g4c^yE&K1Rb3vlZIPWvB3DoSeM; zQgMu`UhQ1!CO`K^Y9RY07|?9zG6>A8h+k+7mh64`-T>Wd0Z}lJ8w4-pH^0HlWyF8$ zpf%&PLbEjxq1p{^W;F&0_G>O6Fn@8p$-Hqq zgRn*c`btiUj^X zZqQP{{6`!z0s0Vna8aKEpc7`g;nOHM1vuc}Mxb%f(PxS~WS+ida)=!QbCCjIFC*H_ zz@-`}V?r!*fYV6uL29+AofaaGDY4`_(&Y-4D`jLi(=k^}!dl z*8^E7K=&Pt7bz6%$HBSk)2%A~LV`Za8&qXcbaPi)TrYV4NIK`tdhX-o@|i$xq$=_) z)Dgy#ZBLL3&3b)MDb<{;p_}u=k}RLeoP?;^g&a_TCJKP+C0|Cs*PuHTz>5MP-Vq(5 z<-xT;ks^Oi;dH&sTN-^HCVAAx^uDezGN|9({Y)%bg(yfKtYqvDAbVp@+7Xt6`1;1T zm*9_^Yod2qxV4Gp(lXJzksf7+(gWDv&}xci7G#bSq0EjgyGeJ6tjOK>_xr zi$I8dZHq|njLkW8z6+{n+CKTH9DabVg8bbn25Wysy7uzQ^>H_%o;7cO7O`lbQ^vA; z$+Gw2koy#W5;VDRKLDWsK$(YHb4f3AZ@%l$-VE3Npd#KUy}LcVRi+2`akKmCC?OF1 zzKtujJg`2Kc_ap$`x-d+oW2OMZvhD>woL&JZGJsFaSKF%zh?61Gw=%Lzg$ruCKfPC zw*ueZ|GN>$Lev9`^(GYlR@~;2{Ws-KldrB5Zp*gZ1m>P+%30-d9S~Okb90VH)l+_E zFNSuFEZgT^edMNlZk6bN?$8|3Z8t&z)~CV3vl^%uZ^)c)+E4^;N7Pmr=+&WfKK=@z zMkY;=@dymE-yHNBV!wtU|K~&gc9(;lJtP(#rU-I4^cc)^4llN5Cvt*{%FD3}mW50g zv7-{vFxM8QHffVPHI5IvRbTJ=y3Or$lP~Zg<#2+`8S`sK;;5}8a7M)4+)U;H6y6%j zL;+SFf~cz1f+!58Z3~z!a;T2;;Sba&l#=j&ZH(ApW}?sw`RsdxpR*Ffp8C+D#IUf! zKrqRAO`A*stU*&+Isfdk*b*;dFRNk5qgPcA%r+djmA_nTLv7r28h6QPg6WwodBva> zebC^tk`bg619Ss0(2^lIG1b3Vat>&G3x9P5vfJO-sCFfP8M5>7e;ZN?Qt)-KM9s>9 z%PUIUi=b&R98|s$Vx#(*GPA+CK+<%4K_34YAbt-Z+sgigR&u`b$Y9A}?MFIzne2$& zVC(x)8}lyD-($M9lJs)Hy#}j{d-O$h#O82>YL}56Q_zVzUF5PCg=QNwFLT8^&DWoU&0{)^o})<9$? z)bSk1)M@B0lkcBGtgMzS696$>%+ONwjwz8UK4`EAxvHI zM?Thtb$(e5F2@R|Z!1zbdUVP)z;sXlTD-~`$qhOzizF5PicxI>tr+$L%OKc&3tE1ne=7U~rrS%PmGJS(OJir{UixdKHx zkVSzKX+c#1TL~BDmqV4$I&g9*oT(}s5m|bYt`rjH?>qlYi2-$0S;)a;6)V)CUH688 z)3^z^81-Q%V;ZHgzGFD=1I1MNTl5nvx9=>%Pum%3}5@Ni{yadBIY8jrPpI+qYEs_;7$k zgG^PvNG+o|R*HBqlR7@GT|>)Z{r2MEhZa#nABrxX`plr5b#{Ca z@%~zXp6t$rA;lq?&t`cxNf);DiZYo!!T6SeMG+5IVR$A4zIX&v0PYxFd-{dpYQNKt zA_dLK43b(yoP=c-b`32ZfuX42= z)n68m)+@^DTzqu2h@YFc$S#vPIPk2$20m)enR{(q248UJ$mm?6oZ}CfL?tD$G$@bq zd0Vo2i|P&xgH$C|HeVxUEJQFm2pkdDo`Ii){>XlcxFNQjj-%SA``LmO-S14fl2riT zf4pp3>2fv}!=w2w>jO^Fq|QobaY9#^`+Guo3CZbDEoy*R@n2+K4vO zbreo~6}5k`0xnkt8nI$AjM&;i_a-Dz;R=Yd(Z6mm{qNiWtp)^$fT7-|9E25h`4nJg z8T2z3K09p71m)G)rI^VENiE8w)HAUZES=| zJxd$ER8Jz;@;Zzyx@I$@qKlZ=0R4GdjvSmowMSwz2`7)VN~8U`=N!+kx0&?Xx+u+s ztJ9wrtB988%haca*{K|I<%K)1rnegJ}l z&Y#1qskIVXKB5+ z8DH)Z#Xh_w7?He;o6#N?EqZs73tAcw()OoIDO^=R0KJ-z(5e<;_)$H zFBn_K{`?;jKu&?7;Q=Uu#vdZEvmYFSA}q{9Nhj_gW?udwg1Am(#XF+_*GebI_;zc6+9uy~dWHJ{M`44s16_&%R9Yw9E^}@y0zdM?Z+V+IK z7U5UwbhCbi?OM2uI#E-m+^KZ_8rH+fc5;|a)az7q*ih?LFr?2f;dRKL_A&_aV&hQ9 z{)03AN?_DwqyRZQ&n~0>hJ3*V_>Fwgzmc!OZ{!OmG;2^0`6B-T`Fi{b`MQD#Ck70@ z>tOKx1Nr{K;Zul#GP*xtxFrZZbAG{a&~s*)GyjI+dXEl`tt_W4J}8RQOMfoPsNs`# zA&noHBUcdHJj00fW(0u?glWQ-&6Wer35piWA%EY9l-(jMm-HH!JdsXc*!e@w(^& zE8tO!G=H3Ed*4Zlu~dYCSfX%e+ESbT{ShZfVJ34Jbk3c416)U>0dW}A*c>vaUc1D!*a+hC zuMO)jh{{f0c&f_Je)iB%Mg?LL_yx+Us5S4*16#Ge@NIeIyr1F4^G_a`Y4%-GVhqrM zrNNGXZ+qZ10!8iQB0KK;w1XK5xJ{C~>;zFJbq(#mlJQG{7x0bD)ZSMP+vSXhtW+Ir z7}*}uI&KzqBBp!2V?ZYy@ymyT`;3Td>K}hc*7SNQMOt?z2}ifmEIm_h1r^}^An15U z5L?@zaxvb|{^e2&L6^FSeC?By0uT<#JZ);AXwKl*sP12W{cpEyy}lG}N4>s7vB2s8PaFm=hF zxbGvUzXaFRB>B)E<4L-J{&LJmC^GQen(sy%tL?+i(@${XlVmQE*eIB6>#<%5nr#r@ zh#^?bZRb!I2{z|{x!E|}eA0bGKJME7v$Tz2Kcn_mOV!{U%t307CJfOy*%AeGRrpf^qXD0 z6{j&t_x>xF88n${rEzV=)gm9|!r0O_PQ>&yZ#uQjr2H_}Ds}I6-i-E8GF<9jKVzK{ zvz@J^AiU|`&&ZF+T#Y5=lfrJ0G|7n>r88Hu5Eqw&h3Ip#3s=Ohw#6yFK^?ds?kmTf z{Se@Us!iFyk4NEYl$+D5?=U6QWD$PTy&&aFwQ0=)SIsi7i3`5b9DT55UT1P+bZSYg zA&h#wd3~-kd**Ta*t?K(As#zl1w)3R-X=#k-`ygjAffJ3GQnxPid`M)7n(=%WqI}KkS-rC`My->&AA?xK3QikRDa@7_2*ALEt;Wwh$IpX{>u(M~yveT#!cIY~+Vk z*uap1_9uI#u2;Fd0xlqxaCxh`AKVYnqGldveaJZyan4nv0y@4a6;u5MG!w>~U%$G3 z)!G+)_gtNZLnZr-%9>qX?&Th)1l)s2?qf#{g|qA!Epd8ByrX|MPH4)tYts0U*;nQc z(aHYM+V3x1n@O|qdcUc{-t-{Zwre70kmSd)VWVrJIy&hH?DaBe^@6GX@yN$F#9o&1 z`eKp0W=juln=U9Prdd^g%MKu0Tpwt=!Q%VfgU#U9CWESu8enIq5O41rew!BmS>&Q^ zPSzTuM<8>P-f{1WYD2*dPGg8&h387{E^O73-Fc#uupBBlJos{?dg<^{gxA#{NpV$; zNna0~1ip~U1j1kJXQ5J*8b`;En+AIhYOvX)65b>ekqPxP$u?YxVv4EQ%W@Ik3VffbHA-S6)^kCm@^ z7xp+943p`I)W;0%%`)@{Z@n-|;rgMP=y5`1_ow*nOaErig-9U_3$5}qEV2CZ)a5|0 z&RsA*9#A7&2UyLsYlL7z_ z$2PTr*71L<|M^3Eo#AQ16ho7j%;vu&4S|Fqyy! z3b1_ygCzNb%9fcIAoEWj0si4rx&mSzmlLQqVHI1%M35G`_nRO!`U^n{W|ZF*oR<>! z*#Y(rq5(c4&tHD{;#N(eM1J_1^EsNv7pnKtT{X^_*u$=pClK2g@CfoJA&}gV1?(W> zZ$8f8m_`v>LkR3$MB5$wHS+Vuei8wEQ?^yCd-rm(a{e=@Rvk)t7*WU|t?OU4jarcu+7G$7FJFLI27a^(CW zf$=X10;7&FtEPZrz4_CJ5KOV+FUVC}1j5-8oI^N31gW+Vg9Q+m)#x4W{`rw4p6q9e zUVA2(y^=X(X#5zwR>sV#HS1!wi27-J%@5ElsUwqmEFJe9^HW$vb+dG{h{bfn@>>aL`V_{eO4OIA|D8Pw|Ic5R_Xj_vY z(uZKa@PXX|nfX-|AfO9OBu11KNV#u5wMu?-mzk?_+2f8BbgtQ$d7ir9cn<`w1tbRW z7SA(CA%HvTAFmz!hnu^BB$Pe4G4BwwAm+ahVwM!dK>iFKT#4`cbUObq`k$tP2C*08 z;|!cg9hnxf$M(n59sir2ZijcF|dFbG{EvSpPg1 z_6_iz86wD#9cTTdVZi~t53%z;YW)}lhiuDNA=8;m(_jw)z2xTX`^xmq&Fj3)^bceE z)%2xx16}>iuw26Sh)m@VnQ zluh_0vox^QGl>SZ@VLf@44m8w0?!5Zw?K}A`DYP!hQu(QK{@~pQZE|JJ&i}e7L(op zaMzFP{B5uX*lutHF)))w0cIb7-8cS{AahpGg}{k9AoiDH@J7nlK=*862wH>e{yz+c zV5*zJnX3kdfxG+)v=t2M@1_bm4Ez@8F!abo^wd8NMtmB=fY}HELZ%f0`E>CA4`7P@ z!9BWBTLAinUn#EP0t)m9(8C>=``-=zCBc6zE)qoT4<+f>TRHi}oKM=7cO->Sw@9(${#fuxU5h2d3jF< zg!ZzrTjBn4*z?zTk6ScV)Le0C2p0sL&Frq16N zy5#U{%Vxn1fzCPM_sOAUdSo&)CX?CvpC0({OyM))&lly8Ird`^D}TKsu)BqS*rG=c zZGsYyI+I0X{_d>q|h=bXL&3lsR$MgPeOM36bQVo)pg|F!~pc#CN;)z2#VrHMgA zVQMsLE^Ze};Q0wE&M6cgj81=dx()gJ3&e1D_}{)J6oMq1J}F*Sac92d55ZfJ!;Vqu zY49he@}UBe@45N_ZjxvR*m4o;kWn@BY*$HriLf?`pS08*`uxSS?P8Z;i)T21i8)E` z3p`RYP;)%O!UC6m+UJ7mUhUaScQoi$VW&*i=)zHprr$u)b_hlS&_753`v#(l?pd`Y zpLc{wP`kdCQcGT==F2#?qe)#?k!;93!~@9#o@OnO%mC5$iaQlfJqlCsfuI7bz{77( z7M%O>Qu71JLUzo;;<_VO^f=et^$(^a!X#0!-m=rR7X%VDU*=;71hCnQqj?*pO}suU z$$$^F7aVoxRo?VE9BNke0gaRi{#DW7PzDdZW8%oCQzrT#7l>LC^kZR$mI40i0gRS| z&_yX53Sc!18Y25T`6?+*5jHm?9U#R&`UIT@#;z;Y3wO)MsOtCBx@QUJn5eL5SkpNTfGrS!X`dGHbaom7={)?Kl-<4jfW| zIg_?BvALxewdTIBoG$>AR__n;oL7`e;z>pR{LC*~xvd=-f;Psl%DJEdf=KrWj>{P2 z>qUIQ!mIOAb>Xts-t(?vSN1!}BCXYNrim2y7%KzZGybM_oK~%@8O@iL3m3*%(Xl~xAQQDmff2xL!L9!4@!OLP6+CngQcR_ zpo{tVI&vE)f*`-XI`bXfu>|^*#;{PQTyfc;fb1C|p`Is4ptN12U6_d&RN&t(kPs8Gm6;jCl^FKHix8Ft!g9awv;T; zS~cZ5m+;w9FK<1csT#pdUN6IM3RndzDtNl;WyKT4)*c$&G*V+Iz65XqcLslRV0@g1 z_w2whFc<9mLh#XW`5^wx1|lJ5B+v*;wGPWqSHz6)Nn(=nvaB>8gl~(d-{Tf`d#$o} zz7+v_L){9{H>59904g-t3%Ph`pE5l!pL5mw`z7UI9+C*Ayi|53%-6FhF7R7HX;g+) zD!Bnk_v^a%zph*VeI0y~2$@6TZz@tTh3(ZgSzP7iFy^}8ssV`t0^xU}s}uC;S^~d9 z8U3MH2IwidSLf5OKfZU0K2IcSVkZ^RC^i}M6OF-8fG=s_|I(pVdJ26%Lx|x*w7`jZ zWrs22Ic-lTby)4pE2Jv!xIt`Uw)8=jC(6LuPzO684fCN3N#ELtKW*>l@?;$HYO?Lz zjW5s>*SjD}zScR1Ms{(l`%>TSd`rEYS?R6D#fukD9y@5HhMnu_n5;^z;%z6ygMgG& zfRTi5Q(^T;6aYfBa>DcL;H4HM*-Te_t;6PTHZ?t_ADX;x!eAO7ieuj?hYtiE!}s6D zK%&p1J^VyA7ebHmN1fw;>bc;h=zbB(0}zm8?y9+E;=vjO&xJ#@$r3@TF+)j}0#Nfc zWZ)gP!2S_xuywT+?{`|W^K?~vywq%R*Xco z2aI{bvdjB{osQPEtK*tNK{)m$6z1DB4+v~&!F>z>d9x0a0bkuU2Xm`Doc8B8QWuNM zMrgS|5?79V^Z#+^c*a|(4Xnr@gs~LsbIj|qgR!7m8&WS+@ekS%7bvx>9 zQe%oXNdSZrwzFWnLv;+1)*L!#h8H4-1n`4fp7acQr4Tt}fEoVCUl4-(^)=pYAw4T= z4RUH%0Mimulb&oJahGF_{oz9)w^`pf1RzY^|GYy$`0pB1LlD6nCu=T;K-aqw$z{xV<3JFzWm#x~D)*>7<90>O@RR#h!yEIp zH6flFY&tdizEtDSE}FEXYMqIR@1TcA!KKc5gsd%@hfT1FJ3}j_9?9DN(LzhThi8) zP^q%rH$8FQm6?R&XquUDBWpmI5$GVqN@phXyACaf^haN{NXyi_g~f3736EpArwGvV zheF2+KG0qk)j zzspPPH-6O^PJ=auUu7hHx;2_QqF)DjmTV;OPbCKL{SDputht$xedDKEwTC9om7P={ z$3|~JnV_>qKV>n{4UvToY(cxoXwRK->$i+$6?8vbnfn&j{0LMke7fqwZ2ENdH|kbsZY_YbdmpTYCbO_h4N1b>t4A1|-}p#>2Qq=vkb zUBv@%ZGZz zvA!WDsGIX9c$XLhP4m}NVR|(#!oKjJyx?rm3&z0LM1HJdpaec3*P-}B&%nzizBoxn zLO5}2J`WAf#P$avo1tEA z;-zxx(nIZ3kG`)FZDZy-yfcW>p&?*$!&d~RBcS>*#CO8LW;*`Bi{EgDbMf-;8{#H< z49pamWCGKq*vz0JUNRvLGXfIgNk3S2y^56$B>&Au@tQ znDF19QCpC?Rd0Yc8gm!Kx(1;8f?#@hI7uhKZXl415ECNvd_@f8A~13wfC4MHe>=%! zbjCkoJWdW(0y!EDGMIx4+re;BU^mek6jPdkhf9I5E*3QW8S*EvxcsNHXR@fdgv*iy zu3eCUf#AW1p2*5V40M6K513kfs{A|gp#L9a6+^ckBkDm|t9!M7+Gl|Ik4^G}iDjR6 zl`^Tb`gCn57UGq3X6$H1=5-lMjYnrAwcBVav#JPa8S9usH5V+h1GbCFAc%;zt5(6FerK z${zUSLc}KvtnY-LVe1!d*p=(w>l`}Kf&6ykaxWhZ?J~>q0)j@Cg+dj%c=sjm8q}$& zwES()b2F79g~R~(T*(Y0Y_0CfXq`kXra7vUuAfBDqg4Rd&VXRr+w7pkE{jW%_zjYpr7Wx#_pE`D-1`-yTXK3SZLafDN@r zD&a=RmPwMF$VZalaW0Q3LNrJQEB$7KbHNv2<(j#l-XFn^g?PanxYw=S=9($MlN(C# z7Wm`tt~{4fYb<6`O;>}xcZxq1+uQiEObFr=A?_+W?Y(xkkvC|6$22hU6VGZ62BI3< zpFu;neh{I?W|aQHKWP$N+kgYeTr) zty>lL%-ZIvDtw8VlHYN=mfLslHs;OgD!Zk7KFEHro-_o#MRk{`#;TF~)op@(xy-s? z>1j-D`}!!X=%dtRd-_uNbsg*Hga^jPe|?X#E_b@Sz`=9h1(GhC)U3W(GoMU)~+l^QI7z`>v>C@m@iLIeavLJfj|bOiwgC0G!U5>blOP(?tb z6N(TLdXt0_LYjBsdEf6l=e*x<+~2+9j&aAh_s_kvlfAOaT+e*wGv_KvuTYJ7VdwNo zkEg-%-Gd26#&%Cy3i4uX)ujL~-4wRtN)ZD=Ig(5qJmBuUq}0!z)lH>yQy6(p73AO= z)+cn%ZA}GviRmM{iFNq1l*oErIQeJiwUXFxNrOstoG;$+Jwwauy>R<}+*VI`^SH*t z556;othAh*Gw(_%^&)58iNW&73fqVz3one5I8wgR9$)R~S~Qy}7uT5Eva9;jnT-2_ zx(^nfIE0hg8x8wW9%H{CX0|-CD=q0){w{5BfTgR+%Z*GiVsRxL+3A&%= zX2in-8{MICwjNF~OH$=)3d#jS)aIcMup> zhaU9okx9SNHXGwk|*X{fO; z(C)a+18RJXT^N=?|C(>m1OsrEU!P>52hRa#>0K6I!dAl=2&xKjqFjRkG0Fu@%fT9I zHP3(C`dzc_7&0I`Gy3i5e8AK89WM)I_rX+tR`BnCP87uX&6;L=_et82V( zR==jR0(*^>$5!ACyolaC>!V3^%9#G?bjmi`fRVLvrLzm;pfF>gHGh=jU1{~nta%BU zfu(ze562snuEYMl`l!%mO)}mFJSINeK50?#v70rV?8G1o7QFS(_`h2hU!1s;5 zyQODXi5W+rEol~9E@W)ofIftrQkH!4eeZR>Z?x%ae3omAdim4P;Th|`J0VA9G^{sL zDH(?b3sgTI5AmqO5A{=ombQSLJ#3*tdAg5d0+23GkchQIeP}Yk*C4;{d?}XB1LPGT zKsa&Df8&k*8pk@=+HT~I5oX!ans`4US-D5Y($CN~;eX(JuB<9An*4%DdV$;*v0)5=J-~b;(Z1dZvHZ{_nzZsI)q~X--NxDIut10Dtr52XDA>@%NL`|$ph3APzu3~pf^_qb@+x*EjC2w6c> zAlfR61fAvYW)l8s(|FI_w`8DfraAL%11W&!)*#Nx1%{}}|BX6zhN;T+06kNb z4`>_CE&Xcbb+R&Zy&p}ML`Oh^jMEk72nlG;AmwpPR9e7Ty!vKU*wv@Iv-iAJ-Jw^r zFf9*JMcie#pjXbrSr47Tl)Y3df&Gkj#BIvRu^Uv;v&Rf1hz>f8%c#W5WPIcKnQo8t z0o#nevJ^Zv_3LD4p!e&Vm}*h#HzRaJ>R}--c0bsT4BHK$0#&+6s#?y@S~8g?@6wmm z;1Lq4{c5otR!RqNE4m-{AG1xK+Lo*0Rh3s)v^P{3Vajeouc*-y*)`Ij6&*qS|9z(# z%%iRjNbuQ-<<0%;%XA7@^#;@B)Es(a9u7c(@L6D8UL~3V{B&unw?+(u!8G0T3Jc!X zk_~9|JQx5#PP}LUm6X{m6Se@ys=MG?8o+6|EzFk&Fdq=x1K#y1h-%Oet>GB!a$saS zO00Vj0F3>D05pbR(UX4<%-0Rn7j#pl374;|btWS!tD+EtVW#D5?K_tni+Fz>7Zr3#Q?laBgk3o0d3FJNz~0%6!a*=bR6T8aFlZzA%=3EX^>FpyC=H& zCY99Mpwql@;j$+5K>=q%fB6J_-w#xNv(38-)GN7~=h;X1p4o=72!_-#74}(hgd^VX zL+2*4x|#W_JdMM5=mRx5uBqK6$@Ui>zs6ctgkpQwEOOs#bHqSwKy^)3T}y>};!B6C z_DSa#r=6VU-yW7s3}F5QXghfVK^G~-GI^7k$Te8=qaKv?wR55`3*JEjUPj{7a39qr zn>1eD-*pQ1*^`{bn^$|7_JwpL63xGG;M~NX`1_M5)}+22KFXGAgj|w$U0X5|tvhI-Q5misUcbJ*i>qJ2y3WS0h45%V2HnJ1+Vy$ULuuj; z`xMuD(Q4x_NU1}GhXKCCOti0Mto(jNG}Dh8!q`~>bZ9!{&bSm?o8H5LZzWs2!|&u8 z!=L%mMJB6-7zQY4Q_;8W2#U}cRZ47V2fF_j|T{D^EAB`I2LAp2=B=MZ!aw@r2^H%pqP`3oZRrU6RjDF+YU#A*JA z0vxiqwJ~o-Q30rVjEF=pl;FNvx2n_Q3vB0lhN>$|ORK5mV~?Mc4(x#3da*Ci`YD*w zJv6YMVF55UkL@o=JP13PiNZ#=vpCcht$N$M#4f=Yx#q$BLd}Wc#bV9D*@u5YT+F?G zK}zPE5W*n>=ll%w2M@2?3Ujer4WN6BU(NSSwD)>GlgPO4$WpLstP4@Z>A36ayl*GO zIzzu%kGN9s#PqwFQV)ZboB%_13~ZaV`l7%HwF|L1!9Q*SE>DOY8T}|of$Bq2I1H=fesL zLpS1IOvUWfG133r4Dq=Fk_s{=CL9t(tF0kuLK+q-?l$&3*WT6UsnGDfmD9eQTrpQi z_7rIEyUn>S_1fAdQ`^Q&_S#Qa$^D2)fA#6C z_={Zu1#W!f@@|mLj0x-)s3=pP@}trz#??K?>_Eqzp1Nx>nS0OQ_#v{2rMVKI=uRc@ zLJqJ?#bV*Ck{}or%j2rOX!cxj=7dQ^=huliOfCyKQQS%b$~qbkg>a1$7562Il=9)U zkFZ9kr*Pto*wW;SNwhp&8Tj^(-3csj^dxc>)}Y-7;Kh;W??+U37s_4R$!8~F7?R8? z(lc(v+zFjlh()M}#65?84}~eax`Nad019ppXjBTCF@R%O)!O#MCglP_*aiboGd2(Q z`!m1);j=96imVr1+W2n7C%HzxJ*W+XfubNoPcOAH{4s$LyQve|-T@X|-=9w3!H$pgRF^@0MthpcL(XswxHqppYR)amH63|8UaojikDWq(E+-o; zo2aGUjRK5uKvW#_qJN>=$Fw9rS^g3e=25-SqPs8BAzU_}a(?jGE(C^){2}!O(e9NJ zBsR_vDZG%yheix%G|#@WHtp)ae4Rt!87G?oj8SABC5pwV24`%@fjkrhtoJDAER5!c zIfU*~1x^9Z8%?=~ZoEuuWIsrkV=1)D2_^mJ@vR zowqR?KS6c<+MsOk7!Ew;_^+qH-r9^eAumv4De&lO&)2i~^!v%;HB$}E(k-GtA#|sO zshDMbE_ACsxttY}v!2D*9kbPI|5Rs}Qu~9<7y#$BUi$!WPsXPe!8kjAov-ajwNBXJ>f+!zzu2`g&9PAnt%D7N_2W!R3 zDSbMie{wfB z8&I)YsDD$j0hq;DB5n~KX`Xlf8OHjvYom)+bjW484{jB!$SQ|TdXqO;C{1=8Sb&wO zN!jIa6_N~ll>;DmcVX;@UaBQ|Rq7yqUB#<)@aZzmX=^@q1zG|;av)S+`*m#-7%Y%$ z%HmpwF^CGGv{ABx37IPlW81rKHj-y`FSad3$n}R;=26a>@PWTlrC0W@qrt3vJoXY) z{N4}n=F9WHBew40s?QY%Q3r&o_kw~OHy~$3r}mD|LR}@1UHGMQ|n ze|W&N`fUD>`GC^K9|*f*e;JRNt^hu_j`~g@)~aT=qxXz7OGw+JtsdZtOYnOhM78UV zre$XNsy75dY3_MJh7>Vi!@6C`ACOfqyhH*6GaGOQLCRTkY~ij#wRkBG-j^Tm82$`4 z(QD1(HC1TS^{0$9gz!+rzr^OXvD>mb#Cd{^YWPm*L2=jb-jomRH4VCHs`zT&JZVjPsukvMh3Rj z^7S$IlN4UcU5mZ*1e5ef(8nBSo9P7AW=P1xARbyWlETyQYd4()s93Cx?0Da%UuBpIYK0kv)F&%db2HIK13iW+G~K zt!-rOZ2$~0-*@GB=!zB79#~o};998K*#}RNU_;CGA(D9PIxx0NC;b9d;mT=VrG6({ z>skcCOxn{r4yDJU$E^WrVF2a3h`0*^0V*gi_GQB$4PXRr%ON4s&Gn@yR&@D1S&ddc}r$ z1uT`_ASpVjnp6X&0&g%0Pr}k^aF#&Ii~yvKb!>|^mg#MTQuzRDV<5O$h{%R|W^$C* zJeSQ(vuPK*#{9$ls)`zcuZg`Q+~{SdTIvtQc;WiiNqj02vCG%?_FHoy%hjcfR<@ue(4+Rms zh9QfM;i2+$2ObPRD$RB@ncm(0qx2ykJ4#0G2R*M_qr-Fk;TBJrnBr34ZUH@pEq}zRB@J?^KeSfwX;N%$M$qR>M*?2)XsbvhXF1q=pN+%?cRPsoZ5H zc*Hl#_gdwlR>qV2Oy5&gg+}w!M*c@a0y#sEQ3Fa@FCHxYoVJ24-3l=RSsba~{UV(j zkG)^7c|8y{bmpaSy{y0lO`>%?@!-(HVygDHeWE{Zm}My__v-PL-lwyw4~`w^k0>~K z=H2K=X@e|KrNywi$M$T3P?!K#{h30-7-*m$bwO(SWP{S9Y1b74C5rOKh{ zdwN$My~F#{Bfe#b0q*`2~qO>PFahFTcaoWN}?5_Pp3k>q_{>$2U!;>Yb?);lq_~soHI*^iMHy+4q88=WPG^q>h$g2?8H6Y~g`@iwVmb zJ>_}7Ag8d|Z?04F_r|FrG=f~p9Em8;39fG+KAU{h*|W;bC+Ld$Q-Pvxu3Toabz505 z3Tv&L*C8tQ?9qrNC`pVxKmD5le*>tKuRLIZV_jiu{MPRi08b*RWX!GsL_-(IK(p)K z%2~h^t6N$ zxCcabg?&Aj$}LR{B&HY=0M#I1)V&#-*}=_-z3hMSfbZC@2rr--|5L?%8@i&< zzu7_^0U3(Y2H>^PzW5R;i{=&@EdqJ0pc#lqvjELwzv zsA1^fbqxY%46wx)v;#iwP3X+(ij`ziyj?&oeeeC>~LPTd(! ze9vdMqaZQ9R91jv0lI^I!kpYNaxqd#LeIqWnqBJWlXoN?89C~6QPh$uK=T+8enEEf z0~}0`36mUnejINWfI1n)B4kmjF8cYsw%K5M)VtL>OZ?7>L>CEWVztIRsN<%bCj2(nzhB zC-n>OPf(tB1e7mcSEbnef{dKc_ysXO>mZsps!q-GyU&P)tG4<1%09~s-o&C=(c{V! ztoswrR(hHM;{Hrc*$WfTS;^wV`2L&H#WLqhul1oP5BmT&2(j7k2B9tw@v+UeBi5%h z*RU1&M9g0=b2(SB6D`bCs301@fIe)ue;!#wqW~Tv3IrJGgs;}y1JWUD=plxEZ;%!R zZrWFxkzG<8f6F@c!kMJcGlEoO=JCWR%$gb)#R&otk;yrn5pDo|4I@|TOMvQKj=vy@ zXb`vk>s5%~^=|OYjgW2vzwTiYJffWL98omlfG|^&z4=J&u^4|}05^@D5pH6@_jjfi z!HfTaDF*rP0Hxg!#;t);F?Vx|l(H&z9lw!a5nppIMidzkw*hjS_wYd}jT z7Q?FAJ!~%w3YKmZ31nLQ0Hg5^`>np`ue9u+B<%l0%eoX0TC!a=(^m7H=`j6%?Eunm)r?1&d7#gsJlz z&}-ZAu;piH+EmaDkc*4~&e0VjjJ^$t+4u%ydMDD{u)D#;=Le*GE%2fyQYaB%)uNf| z)&Pgj?k++TP5`2#4Mu!l4IDEAb079502&F_Ux26pM3Tw<4xoRsjsS)~sPPx1Ws8CQ z-BRB_TZ%Yz(Ey5K>eIl&BZ$(<+8gO18Sh8zN0(Q|h>k-m(proHxS?MD;KI1_5Sne4 z6B$wtqnjxOGk)i1no`AeE>zZ3%A9uRH$TiNBOjNk9|nXnUtpzQp5!5z7Zc1xd8!^Y zKRtWTB2~EEPjCrM27qrbZdMvN(4pR2)8X&ekf2LJ%0=KGi&_BU0`wW+n}t9=H!sjj zsRAN07`XYo(&Pnpm?p>(liPwv&pTQo~7rI5_mVlsh+*x0p=&s&Asj$(uB?vCmt zAV1^R>~)$%>?%D3z56XB9fifO+PAUl7B)xeDd?6`imZ*9Vn0-4!o-jqh-HSv%#*PuN(2EfnDRg79 zC)>pMA#72|6Sy28V_gj>Ih<(uY{Pg2y9RhMUA!STtml^hrn8aa z`m`%3wQNw-Ct~6AFGxVBzW>{;`0q0H8fc@!Ye4^O(G{!M;WVNk8=Koo0&~1!E<5d+dU1Ut znRev%)I`kX@31opU(g`(R?C(Gl`X(9MFhg?JEPL08qvFuHuqoU+KwqM_I~M#BzmVZl24-_xP=uPtBzx0aZ1BsTcLu|{+UoM8a}E_ZtYeBc6uPfly^yc~iP)gqm5r^|jAe-Csk=a(XGo-pFxu9PWTG^ii!8G9#>O z?!$qy)GTuBe6Yz+SBxNA4hh?@o>+n?E-!wB`7|u;Bn|Cj;J3kbyEx%CJ7kY$?Hw84 zh%BgfqzD;xt)EpH`cW0V=bXZI1x+rlp4vj#Cuk^aUKvoyV7H0JCg~qS73vC3yi`V{ z_80YZJbQM9dT<9f*=reL2mr7vpeW?+(c?F_Dxq-zIbGvP8YdgfHJSiytJKFcCI_G{ z&`fS9)7%^6t)-(`+-V5fA>8kxXn(na_~OXlLLk2&xj6O?zO7m!&M*kN4*^1+06Xy8 zr7_jt0U&ZF8_(Ve8pm$}ma{7u&8{3@&{RNjG%@!QyMhC@Anz!UJ|3Tg|+-hZkL};>L2pG#FP?o3?1a)#AIgGn? z9ZkGz>xdnkX~Dar^1v;S@C4sf)WEIJ!Pwyj5 z!VfUp!rl+$0WEKiw3{r{)_aRS; z2n_D!y1z!Z#1XxjdSKD!z?maVh1CxmYe2`-4X4@R_|UViy}uwD04b3Zhr>x@4@il8 zwkUL?CfXgL3)gEnwo7A%TQzQVtoCMh7FR+ky0Q3q(CK$Zu!QN80FlRZh>5Iw4&mxQ zp|B(?jKaAVc<&4QPB}^59QlfMIWQOmuj5~zfXd7BfB{ryy?td<9_ZrkB`8Dr6Z+^M4KdAW&Ve5xbjM#wN>|?~ckbv>KTotFF z@vis|Sea%#yCwS?%Czl{xgYxpN?=7A>U)9DCpk=q8?uRL7HMvI_#)2Ifwxprv&MH-tRw?%VAK*Sqf1C3qUNY2^&RMZsO%FP=DqnKUwb` zzVWy`S3k3#jBAEQYHu`-Udiga?s`XzOjSz~&IZO{y^DX-ba&)7HYqaoiyknO?aIuHMtO2FJ5 z?EDB@Q(uKg>uTnsJS_s1JQ_%CQx`N$pLKSvNrl4B)(WEDBScXAf8dWxoGWYzCT^B@&*KOy>QEqwp=eK;Cf{MD`!ho z2Cf%jqv=oAi?AEr#ShSb?cv{^SBm^PsAZ%>&L?T4QRIv(`#^F-6{_&viumy}k)tJ= zooKlhk>~L@6tG1*0FV>b>uQ_eUG6V zKKVK(n-_gmP=LO__%5&EguP(YrAys^dS3pZ)KY4cTXUznOIWsRNGduznN-%bgY4rerjl4D&wS_L-{Q z&;2;JptG>i`P3h6x{2ti5XAE*2Cq}W0RwNd!8T(~)60G9_Y30ey_1AfB8IC{zzb9(Px!#`5s z=4h2K{he0v@LBo!^&+mC#0MvX{G8SKxZDP4-)9f80cB%4k8>G4y97d9Yv0OdqJzrl zF&$O0ou58GT0;$?PsVhz(pJKK!7Yci>gIIhIX zF2COkcA@vn1^{D-;kq|F;wYrju@5c1dh3LO(%TC?DqdiMt8c5cAd z`+q@RTIFm1S)C;R7eu?zKw|WFMUv~WTNO!CHq?Vu|9%Y#@nxdGuGHt6@J4h4Z6Vg(b_)tq)xbKMciYbIT526nz zg3!QYhDL+nln+4WpaeRXDNB_CQg9!I$bd+ZdnY@_jrmO+c0RkoyR7dkEJr2xioW4UixR z*UW+`Y)ghQ*$bErHjJ%l=gCwD2%+m4js`k(=`y;}7RTBRmQ*;5-ESZcG|U7*Nz7~j zlZ*pDPpSORHi`b@t)TeaGVp z!mQfIIho4Lj%SyKMyBG{*0Ha0Aq7zI@~^QZWd@fWdbX@^zW(=!Z`qCyzAfxnHwYN= zV>yMV?!C(_fy^s()$T-zw3CDqcE;xZ=tM%w{M+l}TUiO-@Ap8aA0`4lt6sqN`psNW3I(awf4}$lFZ}QRhy^P}SDudw)C||Z|5P-rdQgln0P?eTJM(M?aUKV;1{E!6UXdxbuv3mD(m zZdNw&m2+NSdWJ82%(|iYwrEPmWxLn1gG4~rw*RR>2AX+hzYDY*<@;*RNN(! zA@U$F?r04N858sxC*s)^dLRkAc~Biq-*RC=>P3XXjzB`)a)O9UBbK}4?bw`}ICT3VjV0DpDF5 zP4Q`@r(*qhv*UPArutv#H@N=92o1E~AyFViSK`^sV3~nEX(*Gwf7xAaN#|tAfZtA- z{)HKNZ-Y5}=^dsw>s7C13FZu0;dALzHEYeE**1og?s2{ldM3PFeHAK`decn8KWlFq zo4@lAs1S|YhaUd|D(93{3m2glnjPeNOKkZBXb*C#o*qG$xNKVM7H?K^Bs+wdbOc8* zWSMHg(s0j1Zj>i}fd|`@Y_P$P$`4A|AhgH7#$9os;s5G3s=+8|TXy8EY1MGK90v_!FD#hkK zo(%qw!&=z}@Hm7@pdlSGn+Nb(}sp1seh`=?SgCGG})z2H;o z)lk4`4IB{6xM^rNl9oVzDs^T?ZAY@#12A~a}OJE~wMMwakI72C)sK)Ipx!iqk>14^0=C=cF zJ*MJQ(x=4saBSkEdXHvtHH(@^z4rcgS7B|72kCGjj;aj9ae^hcLtYtRW6;ioNTFH< zihE{ppvT;+xfR7F1&%Un%O{7{XSOqf4THN*%>lNdm~ofYxtrwyqngq)Yj3kYtOcKS zz>)7`-d_9RU~lTNt!0l>CmATEzm^W8%!s&0O!%95k(vlhTJ~VwYP&D2?V5J0T@0I5AiY#2H;~)HnEe=H;>zB`kjLQf8!ayKd^< zx%bb_$lzUHv0kh)FK{%RUzD9s#?CE%8lj1=V)x-y917&Eawld#i|MK_l5&;DjY4t02Dj|_A1g2l(1*b5;gz? zq{Ymmk>bY94k8qzwBR?isB6W&p6+3f3O!|`4;n5sd=Qolci5{hMH_*E3Kn3@c7lHn zwvRcmb+u<|0vuQ)3UD9}F!*L*Kr1HDn~ZMsG5}Q+!4?`HsXV3xduUEGJuSMlz5UQn z{?4$#)+5$&FHQ`8J59o!zMdi%sde*ucV*-yo$#JeeRDElF)vTOLG#i2!qKG`S;g*` zwa>4=u1zLuhTlVMpKX6Pd+_z4PZd8_Ry6a0%Vxb~Mlrq;-rP0oaB#r$j?{-lO}Nut zifY?v^d%L@#=JQS%~XVox?qG+0D$fUz#6oj4mS)+VaVIlJ~d~a_}r(ScmU~_Zj~Wn zBfLC)&tEiR`@#CU)_QE=ZBC(PhlAbK*IeC^B+*05g@x1nZ!hteqpa*+_!8q?U8x%B zzVB^asa?Y(Sq;tH+b^zdD*$95AO(fTqz069VXqKw!%xF>%uc0W+iUPuJQCHa%jbj0 zVCzuS@v+s`xeI=af0SQJu)Z4ssmu~>BnkIuRI%60DI?x|>5B1-4+I!7k3l#^Z?j)mKK&bi4W1nOSy%yxHo$+y`zc6s{}s#7%5L|1|r60mMDP~xs>_X%l!vtgJz`e27#+^Lyf zJs3C65aNvTJl$KZ{?;&iwv06VMe56`@B>0}a@$w?23~@50TCP_eb5zqT>xM_2y`>S zV8%c1K>Q8eQJQA4wiJ)3Y&)H|)*ED-DrF0-RGu^;y}2ldh+sZl2B&h|1dfAoHYC^@ z%+liVW%_PVv2q2*mI9tbA{V;L>>8NFPqt?5+76Iw3A`?q7Epynwg8x{uUpH6q^}yZ zjXV>^`q5vcX?%NTGIZ^{+#%xWWrQvMDH}A@NF7)3yOw%r@tJjjr}=#rT!Xk` zIcBtkB*62)UF$YO7+Zgb{qq*6Ig;}q9Q2we*j3G}L6$BNwsy(-MZ(kniyCHmB=0Aa zYR~g_?8sUxnjeF(pH?)!nvsP`Mb6uU!@dHdSa;E^?f7;K4?x=!P3}x%i^n1Fs_%@9 zhhX08?Gc*4zua}%yytB|eEu}w<#FAs`rQQCC@JB${eN^2}bv$~|89lUpz9 zwfCe|4hu0fdN54ig{WkfW3YMPy(@2^@P3R*!~ALiYiCcli4F9+lC1EXQV{m!y>~hv zxuDpdVQY7Oa~6KXVMy`WAu*0FYbg0k{hc6nv1~8dRu%rG;YyQRtwp9u)rlQG)t1dS zr-rqqQ)yWT;d`nyFW)uvf$msCEP09;tVrH=Kb`XN)I_!`^J4Xv=e(bFzizgCD9Rt_ zEwR!TpJFy{q^WGTWP{;c7$_lB2An8VJZ_@po9qfy9`6Eva$UL$nWS@XCX;H*hKq1_ z1wX#0A+oUkl*}6Os7U3U_|V5WsnruZs_<wHvnX9Z$QD34p$~i z5~thNwhCnz(+^!Vggf5eNZvIuQK27}eBb(rPyDG0lOZYYd;BKb!_M2i*-I)P?mAH#UfCQe&iL%-&iiVu%|JKXtmmSn{f}Y z9l`u=+E+$mdCV_$EP0Nbj6c4S@&&zr78yr&i7R20h@hw~>RUZ=iX{d?y8$ws-oMx9=kbpW3-xRFwbybsnSTC^hkB^ zTl5{8*~Jo06@RBLbcq%=P3@2|Q^v~6R3D*rmUA78b;6a8&5vsBthJ`3V5yo3MXAcE z>KPr0Lnfqm16}0Li2cWm%7iK_*9WPh?Jt}wpa&Z&BcCh&p?_ob*qV9>vRhF>s`d*0 zF5OD6|NFTAcVwaiGShswX@sGAHC#zD?{MU<@ot-t!=a}`nvD*?pIO=a8IIbqj3Tbs zJas#sYjf66>0<8ikK)8mvSy5<#~DL`(7@%E^#aq;ZaDMOm^{MP5YQye`$r}8L$GQ6 zYlw8cjCwy_FQUD?vzD^QLrgd62~7&p!vJNVLl7Ep}JVuQAxvuLw!{nP5xz_Y>n#ybw77Nf_9%tdMkKJ z`mv#cwDiXlho6qeoCO+T-1Z;@G+tlaH6U_b^P*&V#l`+x7qkQ8pkJ!mXqHqLT09VD zTF0{M^ZsamB3rYa z^RK)#`?Ewfh(cY-Q1YM>mjV4C=R^?wSifvIlc%br>q_^PU;?np)h9Z&luyd}_XY~4MI`uAPTzrKn7uWuTN z;d)-$pQ8Cs!0G&3=jDVAfu!CFM>4KOvv+$`L%^VH*|ZrrWa1746nl)uc6)}>_tc8g z%!vy;Pj}zFuKHCq^VUtkGlVh~zUcFYeAl$Hd8>^})D1m+z5A+B{l>n43Ngn)Pzfc^ zm~-3jqAmYVv%^&(-MAGaT{94lN;ABY!0!T22 zKGc_>#b?dqE7ykOyoY}joMfe5IUQD^)s_w+b1N(nXikJ}=*|JafII*|ZHv%N3)&4x zW}9X94$wPaW;sdn|9g*Vn=aHIo7Kn^qJe zGZqh}D*+9_i7hsj*pnX61uDk1U{SY{vff6#QRb!~Oef>op2g>ptvSyV)mF;Hfx@V%3iP z6ZUmtE`EA$c&3VTHsB7Oa@bqP9SIpofT_%5+d^2=L?UPh2oom1FI(8oOMkxAHRL#I z=M1qtM!FlT{2J$~lr(83B5>$td)xv4HW3oXOk5WiHb|M4G6Cj7w8X(rwG<<)7g9gR zQ=r?#`&&_=j@h*Mwt1m3TPfco4v}N%=s~z~BKrG24&L{RMGH zY|2(zvm(Ld?&j~}YIZ4<1;WQZ%m)H91l7W>7)ER5FK}O2HYf)0E}J@|%! z7`_R^pA%laKOdQp>1fmNhbwDFS9u<}8h)*>Xg%0!!J<#rwa7!pRlHM6W)eS!0j2Jq zp!fZPe8$j4@O5Px$zx-ukx0>2-S5)pPJjL+0jbO4Mev{;uTrk`e-jbU8Fm;x`1x5X z_W||!7P&RS2Z#WsI?YF@u`@!uz;Z|O)v8aawiU*XABY@l&`x#o70A&A#Cdk}NtrP@ zims1*tLWhCj~~8D;!HQoYM-(m;Ub1-Bx#7(7{3ztaS#F- zsb5Nc$!{7Z#K@&DhTo>U4{kqf5mYP|da`xvGGvoT!w*+5qnS*5MZ1 z#^97OZaikI0RI(;e~sWAl>9bC8XSt?|7Q{Yt)S{Z9%`2Lpyf1*;3L%4dzpqeWFsbw zj$ECrm)$KXvHQ?hX>x&TU)Q!vq@=1PX`)<0X}k*FqPJShPcNnE=G9v}Aop~`RO(g@ zz#x7EIVv@L>>*!u^}$#cc|%qv@*||K@mu{TXs7v&Kq7V}AZi&Q8=izYE$e^$V;hl#BUJx?+2xOJj z3)F{Xcti>2p*HJh3i0K^?Z$Je5XkDjD>w`>~>(G-A-YR?!h7fO;yx)3^+Fy{r$f&Wg`p3|%<`hp>#81FE z`rwDrA3K>(?1fmHK#pkLj1j>7E{oi-0m>rJa;CqI`9b!KTxQyn0(p7PpNJhPQxHxm z%W6oKc_9JeDuvwWMws7*evHgkd{BLsBx-iA<(Lz{sn5DQuC1oM4z`miI-X`0uVXHx z9ky0gt$!!<7vxi>P|gitmocF*NDa)3#!{nj!K-ybk4T@*r)SrI>8S%mGjN>+<=m&vcB|DYAJ^ykF)DKf2zGv~$ zEbml8>uMzb(D*;td(W_@wr_njhzbG{kzS*Mpwa|E=|Pbu0wU5&P((@uq)3M#2uK$Y z*rE`m2uO)YuaS-v=^!9N=$(WbAj$qu-20rf_wRiC-}^lG!~KvCS=<&M*#o8VPs#+A}m6Qkp%0t5G3%8 zQ@eNR6-jgQGy0S(J@sS_KV)87V-KlS&1GpcpJ+QFux~12Fa_390K=$_y57v zNc4D`rU_?UUE3=^@A8Qx^4jf9ODWouL+73;_XyT8tK&yj|Ab`g2t^#Kq^Vjpt;xN+ zLj_w+Y9Oh4D}_9AhChzBZ!Eq(_T$~$_E<35Ii*&JuQd>^MY=exOTWS-og5;qD7GyB zfHSC7^}@xqP0URTRzH3)2Np;dKAW^-oo^Yfu7$k6T%gk^w>^LPk*7d2IJ zJKx(J;Pbno&SGa%iD*j0@2;z?BIjuYDFMq29;W2NZ)KSPJB-iGZ`qdHV~`D{Q(m#U z_~hnpnCY-Zf9sEL^HRvV(8bZ4Ust}d?qEn#D8REpYl)iTH)TKt;PQ93_wQ<$4!!ti^K6uD^tstsMoOU0lk*T2K_|y zM@=n%m9?}K#HlHDG>LR5&k}ys3xEa(;aVd2iHn|%lRF3K;Yzvx3(kq*e*(F{m;xXd z-D25ycoCjV@L;D7DXE0VgNCg%rQrvvF3I^W{z5XY}>lw1M zo{Q+A%j&hE)|Y8yQ&nXUm+0wuckYi^Wh#t4xm=k~0>2ys8Tbz0m;q#7^94)5o%$1k z1TBNi`$N_v!$;`u-v{*fdue`QOKo4maUw*7*SSdloj~?yR%ZkBwy0vCQVj4+_p^dz zdAP_rbQoGANWK`YVyp1hdGBL7! z)zvs{dtA%g*(sxA+i~wXFckTAMfR(l)Pf9asRMHyt9}6`3bG9^v7Gg3YBP71wucuISa}>6BAt{MrVJTxA*s4WB0U<2bryVFA~)C zEl^FmRLk{B1O_>$1m+VHZ`YweL*$F$3l**>APyuJqKh}E5z!mF(#e+Sr1Hx=cV7=x zgWli^CQ(TrP=8puZps&j{Ah2uJn^ZvhFcS3Gb9V<$T&~@j$^VMxt6% zWB+5o>f}Pi((j%X2qp++kD);|3KPVZjV}o2EUT>Dd(Yz}v|xS^+|wIzI94kUIEY`5 z)bmCg{!$!CxtnHpUh=ME6EsH!Fu*m{o%TSSQb61YQtCqy#?gGK)P$fI=VrT@fRU5D~;b@#RDo8>Gq3`l__c0G$L zvR@y?a8OUufb!iJs(#@hrDmNEj7Ql+P`dF8^!SRJQ9|;eha^DIIN`0krmReqC|sxl z(U=PB3<^JNT0y2agzfFGe6JVwvnQ}On@J69@Rxt??<4h;jN9(LbQf!WKZ9qXntK57 zSD%zi)T_=vUZYx=rU8d$ESaTj+tDj_H7u(hjnA^s9Hy*m4q9hKT>>LOj{ooS;Q65? zc&RNZ2?P3Y8&Qi{nCt1s{*%Qw0BN+O+Zekqmj939H31s4pf&98fUhpH!GU36JB909spgfKD|F*>vx30 z<}F&G^lN;=s~<$`RovNk8&cS_KoD!V*y~Ec{dj$Fv(svP^EFr&%FMKSh%IG5UI7?g z5cZT9F?qZbvr$_vYTCg#B{%(r!cMZOZY>S_AxX{#;e}2gV7Q*CVu8IDG z;ZaqSsgLN7vMPDXOcdAK{N}0d%R1$3&vNRb*Gv3`6KiE_(d1oNTv5Jk0{;ir;DR5T z&ir>XC1k(*pSIN=MawoN^6L~Vb&uAV%|6jnGdNYb1t~QK7we0QL0Jj z|9O2Sm%H=zp3+OQs^5}j51w!M@n`IN0z>=>ge#5U=Vn!z3AB9k;0F<*Qs0jSK1rFB zJnRG}QF;wKZd4Pnk@ADIvZTwia%QpmME76;_1a~wy(iL}q#~QRiK-_8DLo7+H45v@ znHSfDr8B>90_DVE|36Y!beobzk)OUUdXO4RPHWq=blLWW+#Q;+Mzd-gWXdSzrR_@Z zJ}c<%yd;#e1rP7%PF15%&k+e{<_<{rSa%05q#VRL-uu}_NUk$hs66!N6$dM5>5*@12J?FL<-gs(^Z9jxk> z|HNN02E4u?F%wJn)jY!QAf&2{2vf)&{D^h<5O`~VWB8QtIvweAsEO#@*;}hIa+2?v z46$W9(0y_>$Y2!$k*kA9gd}Brfg%vV3fta-Q-TsVbAXyUz+);9dpp?H^vc@Gs`1_M z>||%{RWl%urwjxOSuzVDzOk#mz{NsQa9b!TOlAINy{zRa>c;>6kuvB$<-dO^*?{z0y;3XJeb?SeAZpHU;OjmAP?X&Mf%cu<+rk&u2J)7< z9^E86e023+q=K4WT68eJ;2VBl=1pl-gMs>eZHRx#AB{=$;O;gy@eSZw^qbW3n@RI*cp6IGA1_v3V_NXCZx|KTsA6T^ymD z8y0o%zA~{c?qn|Df^qdlD=Q+mX{Inuk%%xQmY6PY*X0U`rth=NFw}bNuKLaWK@@F0 z^CFs2#H5hL!eJ|y`Bytu0yd#X0sz@&o9+yZZSfc504OPGzJanS^JL0j6-`pCOh3I$ zjNEMnfJ-5a?A3B)-}}yz0*KFf?#`HtspAWv3ER{4w}>+{uWC^~~h4o7(C2H#xjPdKTMJ zj?ak_J0^(}!K79y#Z^(%@zR?GeVWIkdD=UcpBaSGN=3A2Sb-WG2>IUeGqmS|+b={A zFrz9a*x`Cs(0tqps!jYwYn@h&U(&q80~ zA$1$3L!HR40p0g!Rq$5pqwXB0)N}spzz!k`0h0!8vBcfOTLY!tlGDFVs2QOHwyJI} z9H)aEs6`MbDO{Kq_%?MPN)~>k?v<~g56}xm_N@e9UDBanE@6Pl`1eszF;wzDmq38h z!_i&-ap?cGyX1;IK}K?WzlUt96)7*C;>=s5{tb$rCniuDDtZab;_$_+f#6KQ zx*5CEfZCQoq?H}89;&0haS+7G&k$q=qlH2U>#oodrS=8XE7Zz9eA^fkOJll&3dV9e zQ@HGncCVWnlr2wm35s6(lGr#?2Jzol^$P{1DUV_MY@k%?5U>H_hvj;J0yT4zd`1a!;JM16YE&{Jjs3V?F(C^9urLE1%=4E*9iHs?Di z;8E5#1K~R;HK)`4_svuZv2C#g_SX9=j*h#=hO8Aq4C}&N@d4H`I>zYMN~N8$BchI4 z_&iNMYDxf&Gn0ch!MKpgr`XWA!h1& z$Z^W0yE<)woOuusJXs_jUki(<6;lDo6 z2rw_O{VS%<R+s5_s1Dbf@TmBix7li=_fd(Yyhc z@G7e#Kxl^p<+(sgQIhm~q?rF6Y5w+J3u;psfO~(Blr9jY;KL?Ql8k2R&Mc47emOk% zrseJY4_7%tu%$D?IRNmsYmQT}*_1a_({Owj_6&TP2|QwehldyFa{8Sj#J*IJ^(2I!ITC*0Cn< zW5GUd3LevF0!1q<6!i-YQX86<)dKNrYb#|pg~y9C-kYKF7k0(f1H^wXfk$l*81et89`)c6J#P9F%2Z%!fh zcZWg3k`qp>Ccg3=eElK*_U+|1=LKb0Ua?G)KwQ8Iq=}I8fbCpibfw~L2k4xBFHHz# zGzpBEA|`t*ho)K zA;fe*ly6V3tn6k|ih(jsRg3=~A@-gwEs0@>zayMo*Fs5Rxhq3SDKLR()CNDc?Y!0# z@r$?gis{8FW+iwvT7qJ*f+{zPR{fRt5GQ~6loovZ-Dmj12iT>hQB62r98jnxy%>%y z^c4a!bU4t!L%Xp7ywY&Nltz>ACH^Q@-8L++`||jd))8Dz13h=N`K#lGt&|nf?|b_} zTQM$WE-MH|uSrBDK{rxb+i4Yjeb*zI^DsY+#jTeC+E|yrTS^Q@pY@!{=!ere<3C@gS?`?X{qdEfo%djSWfhR7xP4fH zF_gV?$sOzQMp2vHWN-}=F$?ligaEbK^FZW7*Hpfj<_DrgDH62y*aE?EyDk6m&iq#; z1IJtcfTs!1MjN)yXbp)Khz(}9lom2$KIjJ{>?o~YV}YE_?%8Bum+#DD9S|?|9Yn<= zNjFaJ54oY91}9TfOriQK$}kBc+zj1hd1>HzwD%|{F z;!y1#q-9q5@|F72U8R}q0L1(Cb9kRe^>O6aB+pMR(v>Pc`7ydBu-uI6M zWpcrQu!PEdvKhNC6d(lNE1RS4qb1>YL@*$Mjb>nE7^;Ag0n~LV!oS|>9O1^xAj7SO z;30OjH4Trrn09;cgg?Fy)Ece7?wal~9|}6W1%~fqC)i`Sfro@qBqxELvdRlZ9*-q6 zUG(2mhVi4C1RVfp*(iXPe~ZrknZlP z#OlF(6`IX!tBH@PG6;GW$#&p3P(ltwODhVi)el0$MLx2a4sHujc7%^j#?B5ZgA%T}!LLo8OkR@@#UV$5B9{flkTftp=xn6{F8c!#2d|pT)z^ z5*J}q5A7*pUKZAejRa#dL@*G3d+`XS{0}9%k#Pfp_}V)VTRrKaG=S)Hanz2wAy(hA z`w-0SH$&Y60+`HR;Z|M!BN$rz9l?WTsk&n-z#ag?6ZVAGO|37|Ppm<^3vzkw#;$g` zi9wk-tCooOe$uZlHI3biMF zF`!3DwF!hX6XHTiV@vyvQ`^=*dG;`g!t2;ku~Sw=xPxGHZ`se)8<#n`tGAS4XI4xt z=EFbzv_D9!E#LE4y{|FLam68NHRW(-Cb?l8`fB*rdS84`^BFPz%C@tZJ=l2fF6Nbj z1X<5R%077X^cyTm3r9WrL}n{)u&0eW;gZ zS@%?H`^>*4n6<|@Pf1qugwj+>?^|6<6CS8%Cp{*J2WA)BI@=B z!f)DPZUDmJuqHkwiE-oa!(*8Y?_@(c2nnUz(o4THX;k}rhswlpLr{7oYC1-_RW4^S zIGi-x9-vA)=Ly?=$0>xzNLZ&V1qi~3ReZwW?J5JimczVRA>^VzJ-%sXIC2U`Kept- z2YrHmMEEk8*G_Jtu=WhtP}w7Ynta_T?U*e2MoK?Z6BpqVS@rW z0G7w3EiNhZO+G)=_S&@V68+df=`cG6Crl&JBNREWL-PSKce096bfMV2tUTUQ`zl?% z*HxIS8G+Q_zGXyQqW*!k!LXqkZxF7J4SQcVS&rN_k^FJ5Z5`GV+giVY=`^Fydy08j zQ}HPNE3WUw>={?#?Y4%L4zIAr6rDoO_L_1{-D3W@{rSM_N2&?J{{bxnusM)m3w)d7 zUL|IgLpy6cKbM);wl13GWlogcieU|0gaCbztxxZDRQ>mW-?)b#poHwh@k+pFiqZS$ zfdz2j9?e&8smCLeXnYUiG<*>OA~x!EIB^d4AKxKf2t4MQySV;OT??=hLa^bopF&SygvTf zv+o0RnvK#&$Hqs^vg_V6-8{x1;&RDAZxOIe9Iz!KKP(RW*aXq8IX*JZ)LT4ZiQyhX z+4US-N=cmvX&AaY++QonQg*`gazn$!vaq-wIful~niZQfwmf1)-=I_!@tPL-c|Ec%2&gv|rq68j2v|kJiVx z5OC+~=-PVEVyBSF1QAQax`02vGE2a2xmhH)74g*`AOf}sJNiPpCEfeee;u%D`i<_6_sd14A@%Z65*76%&m*l*ExK_ zdVO#vU$w6QCl(z0& zA%;T{;c+3gr%5tJ?(Rh+MipDzU*z6Mw`|KOs$Mx;Ybr+!$Vg&O_~cA#1eLTs&yF%< zeFHm!73T#y)ej<;MAi#1k0icbco<4o=JLQ_SoWr(t}y!>y=JX3^@(J6kJD2drR7hZ zGR~!iy?^kTBsVAkCu~7Tr(ODfc607u1fnVL9XvC$e>PE0+Pgj&)j;Q4&txIR-|OB6 zPUY9E>p6MpH-ii`I7us?m9F9^UzQG*eo1svC@y;xmge8>rBG3EpCGXLdGC<};|^nF za+~n`AxYCe%Im8PzImAPe;{BYHvIGg1gquG>0Ag2ScVdcTvJt_X2gF{td=@|i!N3A zaWyC#eBi(;`nvn4GRo%zYYy&*skWLTw$V*rZ?mBU%?`I!)AwhV<9@XdyYp?NRg@nP z(~N*p@C^7Lm%iSZ0|__XSD|M_p8OBT{|Q=9!Vl?M0H8HaituvmhWM9lpO zSKT^0TY(4P4s#dU#BJ50#RVz5*2ItZlkQOMzYUu)&vx`mbCz6tNb{;ycMy0y#&tB( zLwBx+@9ZnmsGnjLt0qtR3{Om3<662L;NIRq2M_j(N_R&(+~V%=ybWG0KA2hS*+>k0 zbRrHwz=p+^n=)P*7(trk{S-vrTFT=`-1K&BRMvV21})ND5D0a89($RKqRBo!`M$TI z8;BefW^73y71UX5+r*VRerdwRo8M`NGq)D$y$e0%P{G+?%n{&+GF`&j)+zk(lN`7q zIP&&xluMAN^wM0%W>u%fqK^T?ZzW4H)CSeNg-e#~mX8iZcKYQ|O-nrU2yjmk0={U+LdR?T=3L{MTvK;4~2GyrgfL z+`h5`!XQ!LCxvHH&WN+4dhuz7@_!DA4E3?gm?!jZ+2MR=`I%U?RR_q)dGdVOqD1U-e8QP^E ztA*}%0ZiD|8qn?@2Ogwp-DV{;8U{6+Ru4Vbudm1DtNN^D|D*U-o?{YGpnj6HIvwPN z$;IO0i?EB&!a&(;+u!?R;&Wh_U&4uEfNUvH$(;2=hP{!`_k3i|(r3k%iRK`gnP^wz zl!M4Sv!cGzE$7%%?PWCp_h(L zHeyZ*1^Ll`wEGa;P3M%_M$q_Ku?(Plv%fYGss#j-64Xn#O*LomX?IaNYHq!E-wE}L zmz%)4g^of!fw3$--6Xn#y{%$~DPgvAqXE#{mx49OOHPtHZPbKf6kC-Zr;nsB&g-B& zSP4>VZ&lB2R~RV<$(5r8{BIl>6O7QYq;!l8j_7}by?T0GK8gE-Ulh8~5cVYixZo;+ zsQ^+yfTG>Ef5E}PaXrF^d&r;Qvn2q>`3@sPjH*ejM5a8T#8c`sF<)%&eYQbB$y`qo z{f=jrEIe8!e#*=9L9K6{)~x}t_4kne9*3BPWsPn~fVCbXdlDZ=RH20UGXri<@YLwQ zlJh$cmRx-}2>XGf5&{XZ1E+zI|9{TQ1n0qVRQND5-GLB=3h3ri?SD`W0FhWDH4b{f zx~)q(7W(o`3-ia6W|f0IX(O=u7ybQ6C&n2M7F*XJE9bUQ7mRiUoxO zu^Wrg5{h(A=?p+o5w`)72oNX$CI07-9PMG7bfEj7=oGL>5fvJrSpQ;1OJ^yi3MNof zZo|(4`AgtgsY(YtVN5&-nWm@yw8)k8p67f`dD5f{g?G^iUg!t@2g8R#AljP)nySF! z10mVRqgqN32HF!~WFK`fiWE;EaR=~36+QsP1i(nh!FnnZ&!7_L@h+=UOh-_xfzmPXSJVMK^%YDi9fX8qEljsF z&3PqFE8_0Ui4n_o{8W4y{+3r_7<)^-5knP|#`M><)s8|M1Ma>k{yU$`zJwKZdL`1# zo`86xR|)tEKzkVa%TfE0^BDxh$wZdv+?+K{y?k5){O(BMQ6@2X=7{I|sPNxvC6>%K zRQI5)=ERUYa!pCyu7928MXFD(4L|=DV4o`nmCqw1V2yn{fB~JrSn|OgI4)ru4%C%l zhud$c=HW+m&Xd3EoPj1OAJGUeu1)lwPAD8*9`Q`z;Dd@iFyMG3JF{fjq9#~?fIZ%?_5YD1A1*W)ai}#tvU&)Q^>g-} zrma=weO09~(2i6QoOs1vL>S>qYy&WW1*&(FhC<&1_~Fu_Nx7I$=g9F{la#pWoy(M# zQ0U4cH5`Voe0L^8K$cK=N64V`Fd*6UiJ4Vp$n?Zg zB@@teG=+b$=yB#y0h`X&5&0eUT&+<*>ffj>*pV0#o}>49&HDBGC}_SP)}pW0m(oT*!Qfw00Qhjv_BaBZa zWfFv1hEwX23XwKE*R>q1lO&s8uaC}D^c)z0lYyipdRx+dat{Ye>;skTG5zph#HMB~ z4BRK*naozUl?>jc|F&x2U0Q}yFMjcIYp52Cl**S%VskN*inz*=5zk3(YsPN>6>|Z8HKg7;^Rroj^x81=c#jYm1jkf}$F;xr7(K;ae z9`(P-G2k^$s34=XfKUiXF=zr;;6o#f#Eu3O>>GIJuR?$fBqm~HnjEzu@kVuyy#C`` zI`kU396pla}9n~gg(M#l+t0z6Js@Ex|@IHPsnpa zX-a4v5=>N+E`t~2S*g>C_vez46L&npHjC#USiE|P+U#pREV8j4+V8Gm<~nLtpo*=X zFs2BkfMWF$qOWH*vD%r{cs#j(=S-ojs!W6x1PsU*vQQ;h-<>O7D7vwBv8*mgIMQBi zB*K89K#^98YTv=0W7g;w7eL>arg#nY1=u`Ik<9TT3s-XRR>~ydG}NeBqlhj^N4i&$ zy6LYz2@;nC0{Bl&m%Y>hkINo;4Z*Z5cphbODnKnJoJ`T>5D10VcUzVQfAz~ z!nY5LZ@o|-`FYrT@)ZY!F(`kT-No40+~Vg|W2@+F55+)E=|{Q9G3}zN%!#FxK#$Vu zsJ1JaZ!YTU#kB)}tcMr5G40I0Jl54UYiX_!Uh^IhCleWr6bDCsq43`k0M%Y(29CuG zuy+su50I?i4X}Y|_fSp(6tLwUO=LjJ*fk5Uaf6{h9?8q=int8D2ZmVsYd}8@jN1=9 zVhgZk^l2iVdC`AOp?M)vqrM#<6q2$t|^_0_`_8m`F{xp=h8I4 zxeJ9z%5MZxug@nBIHfiY@xZ(&!=$a>KiDnbH2?luIciIz!GPs)u~Oo8DrPk`pA%9= zkd9Yh;VqFM8yjIrVnkLP=9q$A)EFl7@6yUxxFdR>w-yde zBrxTGz@-VpOx(dc98OzSd|YOe%dSfvb?jm&Iqx|7$W;QQY(t@@5{NsfCZQD+u(f|e z_P~Q{eQ_wXa%6hJS71_r?L}fTvDT9(eolI2II~!MHEeCY##<8?y;(uSS9ugB<8xLE zvrWyj>IH^B4)UABF8mU|s5|sUN9hkthLq!#w%Y?%1Kat=g-@p}id(p*sFc}%gJAy~ zM&8OD2yi9 zP`K*ATvp8hTirGs0^UYR6rp&GzvOK9T9Z%o;}gHnU#HS3?o``_ zN3EiM-iMB{!~)Vkr;Cj^igyKXeWZJSQ(nu%98=Rjvd+`Dch{!T+_j2v18!4e*-s)f zE-ZrNEGHJ7eMi)-`)7ysE7xmVe3jdrnBrPaJbwcp$LQq&Z0Y())=0BvYzBFHxvPgt?!xpH*m4pUSfrS8%27?%pu8>E#X6hW^W!WHQ>Xr?kfe^Os|N+@s$*t>}~i& z+PNPG%z&Z-MoxmymM#Hmsw1D_*U)?bH&GM^XYgvAY?fm%y6$-#u*yK+u6EF#fxs(_2={iKV)Y0L%L zKJsx8dMdSj)eQ&UMBF0;i7pthFXZ2&^q|fPKvGYg@lpJV=*!>ubcq^Q<2?GVZIis+ z{{g%!i$`vFA@cAFv06>Hba_lfnY@PKj{|WY!^kKgB}gz}N!9{P zJWJb?qehK{6LO&?`9D9e%>6M#1FB2m-|NG`>mR8@PNndUu5G#JZE*VbJQv!$PqSnZ zkcb~?Ff|;o#`#~kZW-gK_ipQ4$_j|m-=dywFq#R4m5M$Z{w4G4)Y#DOIZng->blP{ zaj}9}omvxIDt}A0ihbI-60=T0tNH7XuvZsdX)jd967OM;whVJ!(y8R%MKnFjhi<#d zBj5Az!;W%lT`4x5YLcV!-1D&EYQ%q>T=Wj8IgzBN-ijfb z!*u&raU~_M9$pCdcmcez{O#X>>u;`_9$4w~id|Hsf^?xcl`WIR_R0D%j37B{+Zu$V zm1)u^&GhH9_^II-qqhwn~}H zOuKL;1%lh)V~2r2Ad2bA0(*>V8%XQPF*&!Z9OK^C3~oGT%8E+lFh1 zmcoCWHD)vj^;)}Uxzy-oeB$^XUs)$zjHD9sM0DE83h6q%xxunN2R^nsjjYPjkhySg z8@>39s(xAlrXaas%a^9{)k+(uBeEmH6osAvD%`idM~H>srIx=tvh-91?WpXsx;2lV zHP`&YBK9jN!CtuddVCEB)guT`TH?5ur#8~;<~3+)RnDRk+vcFTMO<7vYhS7F=TBEN z(~G!nmdo3h^>@-YupmxlHvI~?UFiQYxbrqzcQ+h07spLlL5j5RY3=wTwS?6f^J z4@Dy{&dok+>y$0DQ|nAk8Zmgz)Ghf3j>*iZ}n4FDcWO$B`)k z$yTCknNf@^ZsypC4bTs^F>?2dV{hh@Tk_~T3(jK?{9}1lX9%wEh|V5|7t+GGyKHI_ z$dA|1jpa^bib{=IZvpt{mpOP~P$$=NF2wS#fQF<$qzI{hXd8~H&8PigqV_BcuT+No z6`=M8w?op(S3Fm<=JaZAJ}x_P&MnD0K`$*41DYze+3YU79U8kmk+}9QfQzq3*w19JJ^BG>WJV#Jg?FX$iiP0^q58{ zmxyMn%6ym1*6w4TqFxIx*}WEUNVlSj*xe+W-k^ZZJ5;6^nhvNz>#qIrpO)+Y|Ng(N z`Tv*ZL|DA}z{erw^xFGCCXu_c2Zq_lA3ykhMbE`wEj6_#p`J^AtmV_98}t0qo(Kz{ z(tYHYfW(lQLna&?@GPr{rWK``F%Nh;OgQZjek?n&I!|sb`wj~A96MPAZ6lN?=P&*` zuS_@IIs4Ox#Tfxe;1M&$$o+$`kPLhEgMj4oW#~Z+KINN&(Wk_^kzO+U<(2|VHfgy+*eAse z+{9uPJ|vKad}seQs-{JsfC<$%j9oKSR>@WG_(H(`7~#jiGc`lzm5z?jzFUYD`mioM zXwtA`Uefo280B}xhPc$hIO1t(pC<3<^~-H^GAHrbd&wI+%>TPz&laYbQcXeD(N`^(d;@l@S4C?O6O-_gHv#mKz51yN$ z;ZH0wGx~Bp`8L&I`5daTRLn7?hPzu3A$iQTT@Evx6G0i*e>pyJI(FIL0q3<`F8_Hu zCkXVhZ|M6LyLYgJ$RGzv#LH(Sj%*Ucw3z&0b)`w}r?Pa`5$m{!|i#-!AzsePa zr^DT4gT9AOch_&Lepc`8&%60xFQe_POq}EqdR8!bJk(0o+)={1qt;)NcqE@@o{ zBG(^=f%+Xr)7@pGjMw*fKFJ@8aF_Td^5KG-r{b}wlr<6@KW;cEA(s9vXWY|1fB?Jm zR!8FJLi6+@&br&wQ0A#&YX~kCVeyChM-#2)o6y=&bv2@TA zzA(r!w)Emd*axTivfQ8K4qv{Q>uxQe3jg7D(8Tt(8aBdDga35Sl8|5bW@#|dL6KfN z@^0x3_868Kku~G%`X=^}c4AeHQ&W1O1^iAu;drM@Zc;>_ZYRf#^!tnt+)uIBB8s@A zat~$dP5lujKHki4#r*W(agKjTHOtuYTGr5W%RF66qIai@kkGP6vStah&@$0Hygy;C zVr?th(&QM;QoL8B*@K=?4|`R(mXfV$s>r@f>bXXYmPu$N^Gp-wKrA9|oO(JC6vN z*@dA*m@3Jqrt3;>4J2sx6%<&vo(tFKucA({bi}=TJW_wY^mFu>&Wke@VSQQalWDp* z%i`e@jPOMmdS??Z+4{&*oLO!oe_-Ilg_JlANJ1}NxQ`)w^Jy!)G$w4dVRMT@CHV(l z_>z!d+&59$0Ge_18PHw}dzI?OK(qQeULLC3UmuK-Co8;Cz4V2d50LE>4+i&?sh- z(uakL+DNqJTKt?LekgN=-@7s#d8kZM8oI~?+HN)N=7M6&l-n8o2@#N;h%5DIe`M~M z`tzKhO>U0oI<%NW4f&c4z)plwAULaQ1wwByD^8DZ7k}nyS$6!^n4U*<{YE@YlE-Pz&@PFExro zj|t%_AHmCW+W&;)Tn1^`9Z{isWkaQ%7Am@LZA+@6Z6Z_`JJfEb(?8I=o1z-Zo}}_p zRiv$#4&u)`XE+I?@S0m@e?mG5c>bUt>&Qp%Ma=N+EJrj9O1=hH@zSQB$cRw4dezlN z2bfIQBDPZLXLMieOrB}TSV}2~UuOO`rxrS?24N+e6ow@jp>rPiDY@qs*}#^~fcR#6Z2gpFH+0zwVhf z`Wq@P3~|uzH+0*I;`+ryg=`C2wH37$PPboc@aj%qIyP~HRj|a%wT8@EeUcS;Pi5&c z4UbMc)@u{b9qqyWcA&r`;tBjN23831QDvQGLzK1!E>uc%J(qv{{dm0D9O{fdbFI35@E5xXtpes$#rEYQ%vBGlbzgRYLJ7t zIKl9X;X^aeI8AhJ(tKcn9C5kR33sIv=cX?2%=TptW#8y=6*UOx6dMp+tDLCd^&R=x zOQp)%PQ*^Dza*XWSQ#5CtDW3x(bimt1nU{H(;*y*hc!>q zd#x|ek2e`@ns++|X|hgv;j?DoS9zD=yngz4^ouf?rwW>=i)CGXr{WAJW;-57&D~r- z4e?|#lAS_vEh@2s}8>MCC3)OM}AE-q0lJxL7FP?Mzil3eQhIDaZ zPvt7CX{Ve0>joZ!hPojNDj$jYH_M0JWhs3*KiB`BG`u%YkgzFu^l-D`(h0imqMgVU zU*U(tnzOWU)6H(=ZZr{<<8;Py!hu2FOj!rT_Vp+YREtn2XVp@pO3i;F>}Ls-I42F# zi1czAAAvD$TK>G}2Z!q;!wbZz*VmQm-%#bLvNm~5PUnR9G3BXSPs?{knuRm_JQ`Lv zLQDcV=YytHxoU(+{H;DG{vv9KMv-kRjDy6E zJMH5Lvl#pseDCFDFOX)Sb`9mp<^RA!wdii(D0wicKTzmgFxgdJ75*fg5Dj>4XBLs) zpF79=g7iOs*L~&CC`rCk^VgWop-8sDVB*6{F`08)%6w>5{k|P}MO&@%LHE)A>F;yL z<234M;q8Y89pI_d4j_oQDMcFdnto|TQ)5h_jl|ucVKus@+@I_$R7>vnFEgYEzgAN{ z>ijYnicu2rQg7h;Vqeccc(J0^>t#o{qX7D{0CnPVk95ZMh;ICR#lvYuwh@DVp{-RX zBftBO!j=Be3#GXrBZpIPCRjJ}of;arOJK{qST=K8khXkNbMvgS>^*<5fZPo|!=&?J zOp8e=e9O@XT&~@jiS(kq8OLV71Q^hm)VG0{95)rVh^s)GPqv| zRAh_5^+l^XUX zMptjFw#I<`QGv!rLd#}(SHl2C7 ziGK&9Kd|BWoLghPK3JyQwtH1d!mUQed3t^E_ z8%g03{@X&(0Si%N593pUEgux7rCR6T-7|76IFnbJc+=w?ReU8+oHAdg>O*2@i>Z3B zyV_9gO;^VPgJH?(>uy!m43`9J5C6WG(_hvmP|+h|Q=DjrIWjq%|7CLExQzOvf&FuX zvcrHTp3sQ@8r^UEg)uIxj9DM%e#Py6Ki%E=9@u5UPF)$xL3)69ekpKu#dMZe@;WJ8y00Yt%#r94!YZR zenvsq8Xf}ic%x@xd6{rB73X+z#bh|=s{QV`-?w8){B9?B7^|d7GD%SC%y-U}4u&~ts%7z}+jW@f% zQKX1U=ANX^3CLd-T<9Oq2T;BI^Kt!aiho=6BQNE@rucuJJ@trP!6YLxiSI(6=yOLw zYw3`Vjfh*>u9E61Jq}x$hd2G?*!eVvpFpv;*W+ho+bl|{mbdlKrO3bHPhp3$MEtcG z=Nyf7-Vn}HOXFX3Gs|rG%e$qb6Q9nPy`etum~QJNM^NT_r)o6ld~Trh@ZESD)3{k{ zf5!sRKuwbr;*B6l={BJbPV0i4r2Y{*;L01LI8>7=={iVag33PP36RZX23pOCCg*>i z1^lr8b(Uo~4t91aK&&@?Sn6_j%gebS*;_9Y1$ctnXYZZtW}Oc>N1U00LsxE?TIPJ} z=3OgUO=KH3qVtzzX9X2Wr&;mil;9gMBK6TPD)ZH-db5+HjKI$_{6tMLOp>&p+QGT% zVJmL092Ha@dBOt43_kQsPtifPO)nQ~B&dD4y}a0T{>?0t4zM)B!30E0&vBw94)~=W zlWUr(y$x^8nSO+Phl2jF4&lbwHN`2H=X12u)-ck}88Nu%C|S51pWF(iCVsRDzB_VG zD{1L;`_xP1U-1; zlZ+f5D!N2f(0~dV)r`QKkl@!oOhfI9(AVuVFkz1>e z&2(_nLOs)nxltBJeMZvz3e8Q+XkeC)+_Z0Ad(%Rpq?4l1aE#^1npth(=h}D0BkRE{ z=BWQ!DlA~BKz!C%XA$^5#A)o}HQ;~+UIS|zELgw)!`GX~L*2G-z@$4$n##UTi={|X zN!B4*A}NKk%`Ie^m?VsCMkLuoD8-N@>yS0uRJJ6$jD5`5_ZiC=X1U+X{oKFjeV*U@ zetv)Shw*J@e81OqUgvop$9WvP%eteL&C&6O!&W- zalO93K7N^-GVcAf_%nuJa?fhJ$WL2>8W9m>^t4>@LCZ!$dZ{rl=flj^x_{Mn z{;JDINV&h6GBk$1>{|1)wzxX0{iGsOpV&hKRI{_Mft6;c!d%Cd0gaKmcN>) z{;9fUQ(DYf*I{DpS}ZJ9{DzVDbb%Vjxz!xdFE9Vnbfp}fF1k2%c{QJ`^^7gbexOy? zYhxzSU3%{@kii$DneouyE4u$SzkigvPZU$XqR_(gO)XCmi1Jt@3Oo5s9Yz?x+NO=} z#B?b<*A@!6_OL6{DWLtghaz&qwK&^~JL_bEt#8<5_*yUD&BKO!Zm|%B&uP4$p1m~s ze0=3&^;C{fkV=q{9H;r3sm+5p$X!ZuN1p%1dEQon>w-d3+Uff*3xEEcEJh3stuHAk z-R@gfx)VtsZe= z_Z-6SCM8c4p$3~!yen*NH(eR@!-lI`v}p2jy=6p?1NH88z1eI9*kTrB)x(KT{Gmfn zPw7q+v9Hc0|K6u-PQpAI*9hyyu2YZPlBY8pMs@&3+x9iHpEjL!?D z9%H^0*@BX6_r*>kYOmz^y_uZvx@EVLR5a-R;^5H`R!_A`o4kdaM)qu}ny(zss!HyY z#{sROSHm-YydZv()CGLLwr-~2CwJlNRa{GytVWH4v-6Agg}MUwfx?OPui*@zs2tNi zbNquXeNzY^^GWkMdWv}sxJX?eG~P4pzdCdn?}M1h6O0qQ*J?L5U_EJ z0C#^%u9cuU%{vM76dT3!RV7YIGb~KaZhr0)_SyVtfcf$pf7~8fh+4O-}y@ty9s%b;`=T2dMV>-{fFwy zw*Zw<5~EJ`As$%>7=2S$t)XEM=8o$=(3+j&`~BUYMFN3?wm81z%Qz!M!l+k20(JG!Q^cFcBOUpA6j?c9aw&X;~5$u74J_oLt~Sl zl;}zrA5}S!T_V`7dHsG7S7Wow#(e7#DI24e(B&$1wDR-tmP^+wU-l6@Csz)RgPh&w z@&o7s+@Ra7B+YLhmc<^MdR^-*SP9x#AS?eCT$M#!8tiX7%`38C=DrRUN5#0`R!Psk z-+Lj{kP7IZ_9v)XGbPQO=SJdQ4h+-i~D2D+(zN!=92y}x@b?o`VWfm4Dq z0#-fQ9slnM^giT5-L(R}EL5QR?_vXo&sB+})=w64&>S>IANE4~e2{5*WqpmJe_lt0 zH}>rKIbI2+_r;TNFDAUV7|2me$@XoqT2>IEniclNI-SH;5hj8Rd8#c}Mu9hL$(jFd zG<1!jtyeME59O#HncKg&o137{{T0UHW~tn$9hLU%n~wj=o7bhSa-v@g<0aUg4UmB+ z^OzD3%x9Iu_*#_hw$sGK`FGS6g`tPV%d5-xzkJS6i1xR7d`*0xrBr5AMu_$yy2E6> z_XOZM%=W6lRT(Otn$e7V>SqtB;;JPWQH&Zc@K7 z(!!Ck=y^el@%_IXO3s~Eo>OS(*_gW+E8lgaoJb42nr_9Z1x*X#zW}$~G~Jf-U}S{4hQ)02m-} zBf#dlyz4qFmP`f`;7IWKBndj=EY=fL3gSyYIHwHMytn_vd@UGOAi;;jnvbFi$nR=` z-@fs9GI55abK~Hf?M|)7Ui1ST>pz&#{Pqbq=G{_EQ@%oS#RDyq!~Q!iT-qP32H>Be z(Q#!Hfw6~XbUdHr!F=~meIJd};{3rx6!dC~f5q>K2>Woe%7?*M)qOC7)@itW z5Eu1g#$I}ndunr5RmN=x-w!YM-8gSpb`V&W``o?@G>-JQ{&t)AU6WUc`Ei25t_I3P zu3T%=>hVRvIShH`b$|oMgYf#y3- zXJIUF2>j+#SaCOa`ZGsK@EFc^A2rtL9k zGqawFZ>t1PPC~Z@DsVe%pa|7bp&-90ZJ*5mEZdSWj4ZCM&Jn0SqyV@U3<}Kc1DqW; z@0_o;EImEbb*J3GMm+DXamd8WlMfa*1!=nUKPap05X`nHpp7*cv)%#eYC4b_0W7We z_V_EOxW3gHGL%u;v>|+{OGDq;fC5p?ez{R8FW~>(S>Q1Vduo5-h@LMcMSL=0|GCkR z0m*adbp2rP*?NpybZe!<%rp4fyIc12@cBp83j)E^jgchqyyqJZqu2y8^jTIv$>KQ` z=I7%nu5H5zlzLxlQt+b4Bd5AL!ST7w*_Bq#I|maHWa8kgZ6M?YLET3CSijfA*^x5=eYHjHLdB%Psq<#r;jS#Hyl^_j&8LVh_b0C&}a;yh-g+d``i(=#&Ela|fk5UYwFI3iXE%Bkl5slB`{3z{}`HdfN z@AF^o6+v!3R>wVL2P2l{^9tq%h8vRoa^Wp9%c$7CT!3)bU}YwPLG)H~`%S9dOb=rIXvY{6ATbQfdPSz@sRM!&m5 z3pw}tf&J_C3G?I1EW4&^9ajuY$w2oKKRoP3d0wizMgHu|pZ@Iu{|WPL;OI(N9o zu?Bil_Rv^n+HkP7h?8DV@<)#NCVu<3)UvOs*!`M*&N!4)`@U4^43C0bW~o<9%e797 z6d=$~WHrneYmm%hmo)v`L+`>{c1C(xo>T(D3l;;(62bR+p;lj4kchQZeVt9 zDr`K)U*14&pSc93Nr8T~@gL|Hi^4tgH5StwO+3q4{&%tZAoO+-%ez`kum^u=s*n)j zrq>9ne!OkrMkK>*F%o+}^8mKx(jr+&wCiySe>(Mw*{Yo6P~;q+zu$AkS$aJ6@lOqM zuXY~V>GkY;7q7*UJ@~7NisbT&sPVBqdPn!_OL73s`pdjZp#WP^Y*HWvp5|bm_S1ki zrLC_<0?Z5@@o7G3jIL~B+COReq-yMS4s2{T8J7iSdLr3e%zM8zA>^wRVx-fXa^Kfq z7tfklH#{<;b=`s^vI}1n$B2qJ9e&J%J43blirGtl+aw&&neBn9N;R9gHf8(Jd~h+w zZ_z&K!=Pc#d`jgx&3M6b#LlfH6011 zuhW&#)tL15hvRB{*Y3=y$clK;vDFPNHTJ0 z(S&*^+@1S{;=r{B-)3gcwVqtyAlGyaX^=5#(G&HacAwAQ$XJsyE5!5zL(t7Xg1i_A zFoD3z0=G;FC_&c;$HOJi!$7?s=8B>5{>3qj(~%-E6ftcFDXRmsV1Y{)XOppUXX-df z3hDM+kW<@=q^|Qn0wB47j>hVRvVEYXL?4d?7EoUa3Rpb?)VN)s1 zzm)y-IxAIE2@=sDFu#Si9Oo9X4WgpI|yD?ifU5V21 zpjp(cdrE8@(;Q$GrM-u~CfB<1==KX-;mEH0hS!RiqN#O?6I|}X*-xNDQR|)=LhhYTy~(;bw;#U%QQIYR^7b1 zv3v~LiDjH--i|CMP*PtMC(2cr)69Pjj)tXNG0R0Fb2tM1n$5)T(RsgZ1vHNnUh}1N zCxxAf$YkdZH^|ccNwGHM*(N_# zun$Tjpo=2!gqddZa4Y5!x<7X#kw?#+B>np=N8-w#YKlYNbLuy_5n1z=0kR2hALmO7 zFZuSonABhTBS@KHiD~l~z$_-?*^$$2!A>Z#111yJOeVbm?0i@YoF)QD)nF$} z0o4wssk%Mb>OANQ?K4PmpP0B&eI;n^Y?<%Y4uP;q&0UtGq-!4c@*v0a>L_lc49Y&& z1W}?RLnIJ7qc9G0!AI@~dzIUu>N8}yo#RBU`8lVJm%)LIS-{!NBh1RRLbeqe&Vug{ zL);NW$NukEIMC5xpR^XjRv^>ncYN{GMF=Bo`_3y4t7d4W6*E}@I1IOf$r+Vk99)1s z1Yf)J5D)Zg*w6bpHzJm(V5fLD!Z%ki8z=2!?Y$YAm^KLtffa~l@es0sJirn3AlQYL zB=GsR@EwU{+H#OS17tpJHWBP^UYNPZH@W*@Wdz{KZ~#Nd1L1JEL5Bry$5a&^%c5g8 zu2>O3=>I={f0KI@eh5E>MLDv+`Qmp@BO+Lt+6wxV#jA1Stxh$|3)tfj=I0yFuV~k6 zJPJM+2pkpG%<6U%>smMv^`&52;YUo#_^6$+?_Uymimf|GPfPEOSrXZq)C4Xcrj!Cw z@fT{6ZS6n>WARz<)=XflMuuU_C0W!2=h9_d?nT^FJmd*o2u3&bSb4$LNO6I6)?gzV z#HuI}VHeYn4&C9sE9i8RK6UaeF`C~_kOS2ki*Z5jL!>+g34nFF7(G7GX#eSVQu%?w z%J9qd+szH9=qD#@V`aC~iyU4n{?1lb{*nGB`0~_|aHc*{fyNiP@_Cj~x0?f^> z88a0@qIm=(zf=%QR{;wK2ejBp!fVAp|JB7@zo*R|q?Krpz|`3PKqhh>nzT*G0j8)A z(EEZkPO|m?IgEl-COWisWBx#MzgJiPOCk@6cqFJ>755wzEYnXX3s_UUmEu+BPg zY%sFSK(YmpjlVd-&RT+PfpywaIFH@O+@G`HTN54^cF@ZA^O@4iz8d##=uYhrvcTub zG2oas$+v7gsI7+zn()rhy(mmeK<*3vrWD?Q%95u0miPChC}m(*2$gICam^5%#<)2c z&3zp{7|7O>Is*n>g@Bi*z$?yWIORQC64PCU1P%yzIylY`D3J&(USBZzG4jvBI)nMI zYX~1~bR{dwZ|Y>7h`e$l?(0ELb4z5T%H<6>#NGNGaba0;>NPk}?xb;SkI>%I+q`q^ zu90B8wy#%w$+VdZ&p{cqC!=+sgnba*)!1Ztjvm&sZp#}OA|2IXgZKffTkhwYw>P7- znkIqWEW9ySammeedZ_x#LzhQ;%fN76_h64>thvg8sB;{1U~+UJNRW<7`3|A$7aFyw zR+5QZ1Kw#AY#f%8Oeub&6sdW1U9qUD%j;pM$<=Dc+}I-x0>OfBx?Hs~$$HG-v+jA3 zDFeV5;mL$>vQpV+ZBfO-6vB(ybsvQ5)`+dzc5aLh-$Emyy14Q0!dI9KXMmg2`?^5* z8`$py2_!iG;9`L1mrv2r_pU~ZS`0VVU>$AX6~fGycz(=C75i1Q4pbZ6OkA_@fiU)( zfRN~bt5_t*57x4ci?hI*jl^s`RG|Su{b_tTh#$e2c_=%^dQ*OlIE-K$HQ+Zuo@=1U zfs$JS*^!L!U9fT-Ku}H~3{_B5|39ylb6Ckxk?d;`QJ5vkT~WTGViPivnFIkf_MkeL z=;-Ed!j};uo^%N?%}V=J+8w-|dW;UlmHtr3cKAhCq_l#D`b z21oMlzUMx!EBzP8dBnQhZBQqtcd>ksAnGn?1ov&=I^ubTzG0|J*FV?lDi-df8J@tB zZ_9$mkppvDjU*0V!cZa*7alB(c{?g(INi7wzn~ruTxc3j(5Vx=`0xzXGOBR+@1pWI z&PRvqf>;^1+Vqy^m*M72N$N7LNok*rd&0&0JDPfd2QckwII|u7y1f;s zt2E)GKV)9K^W1X@_UizH0Nl8eR{1gi*i8hfF;p>aNJ=Zq7u3{O+jO9InC~%kKXBXr z+2r81VGn`mWEb)Geaq?5k#YmO?*g!m;04tV5iEYOW#)xUw+7K3QtyU|b4BTk#Dvq* z2j68hZ03Qn|0hARV}k~5ZFh=3ILprV|as937aUB{S%cA zN9^Ald_T?Ps>Qbq(Nf9S{@C@CwAlDZfqvX^>DnKDUu4)>-KZ|bhd-#O z){{sm`SB;B9kR4FaSNnluHO!2As@@EziNDPN5MtYt2tm!gaf!&&k~y82i>teY?rxw8y#~Jw37ZEK&@01~)!{I* z74rmIOkFDZ9DA_;=JR3ysFUAdx4W(K>9tJ*QX-U!nc84^RtisD^DN8ZAVI>Y z@9gBw4LcXd<_yp81epjHmEXVIW2hrP4KPRDi3cH?a9SL_gw5GA+4sb}2nRoYY7|-~ zXF3(I6Rgmv%@=f{A1!ZdN><{BkIBAsIzH?8#?wY(A|w4vu^hR$Of{}Sap88$)zHAM z&o)QEG{f&ops`2N5+XJ>i1(F8>+|w`P&nNBm|Kpjc9F9cY_7cxQbRUpV3b&Ev-rvC z_Akt9xJ&dhhML<2H$Us#r{*?V27kC&w!u%I7QK9(HL!vEa4Hj$fO&w4CZze6c}x)b zudljX*uIoxj0T=XP@0*U`_4k$g(gfHCZYn%Z@+jtpE%UvtyaC3d52e=ADbHY24_py zJWg6Y0AH{&-)|b8{cEMsbFBc|D2*=XoWOvE{xmJn0?7^l= zV~_})&u7x+36(o~_Df~oM-OTV) zfPc`TZmJDR(mleJ4KI*FiE7SC63jyXeGSQ=KcmaSqA$2x%YK18V>(Os4quZ?5GZpA zE=<2viHXn*v?6>B<&+46A3_h=)$?`ErP!oCuZ;-eZw zT+?DYYDo7PnyqRwlN#4xwl07mvi3hZuwQ@zE_Tg~X$p?Rb}UQacefRc%Fn*G+jm+L z1x<N{5d1Ob3 zt1>W(5t{El99&uS(e5t%>gVCnmL8*+%kl<%94OT#0yPCAxJ)5Lei$p%mzp~ZZhU;W z8 z>u(;zE{hfXLv=0ll1?ic$?0=VyiMu#I=JF@$hI4Fo1HvZab=+}M`BNID4)v} z+~-u~+wtf7yxS`RjrtA!o&4^N#?Hr2X!Wxc&eue@Tl65M%ip;e)IZGjd&<&xa8EgZ zckH71WA%bVFT1FggtuRgl6T26rKKbX^5&vzD4fBP+{TqBztE!*Ok zwIz^yuQb7X=ILhf(WE_PH08_Fjn(ka!`tb#eA@GV_l3K1t#f4)9MAe*w$wT|rtm74 z+o9*hj+j=G&H3zC7CB7$H3J6Sug*IU2u$R4ytivj6gVgOEuYux{6>l{PzEg6pKmV< z3u={&4=6D8Q9o%SY33efpHED%Hj=s!VGgNoRv#xL+_;*S3N^x_dQAiF^JJWwf?mJ< zY}lfYy(arK-iz&JmcA@)(_|S{;cjJb%@$9`glj%XD)&u`963&M(t-@sESuae?<+$0 z_{bO9)ti;zpl=P&st)~1I#e3~?Mzct5&v5HYfUiz=}f~FmO>gT;BoS*V{=i;pNn^B z30V1sN(Qd9hzt`Mch}D>8}o2SePwiPs{G8Sam!Y)TOAS2V_*GN^4%8mhizgjD?<{- z;$i7e47x2twXFHWPpvteu54IsUUAX=IA#|5vJ!H|P%sxsD#&FlC9q7bQf=#lo;k&0 zh9rJpQ(Bo~5Fp!RYy&gaS>nm&4P_?g$NULO-TpAI$H8AkSnit*Ngr%Bl}kYnaozTU z>B-=22~hCled)S=bN+_SkC_a+$UNqCy=?`lB&n+D8im&<5S(2UriCT z+*sjN3uyQYoTi1FRbDOg$cg@ZcllPTZ#^X9qC)ici}Re7B3;xka|$BOZJ)A*6%^iq zNpEwED5~}b#S{DGy``}5QvIH=?`bv%XWFad@$y& z`Ecc@aqm>FQxIKyJlycv`@FB~2(veXU@mS+`9G1~0~Dobcvjr315NgJVHuu^PlD`VXZQG|Bt0x1O6{{A*Rqlsqi$fu3Wz;@Hc5}SN z;pw~SmnMG1#=Wu7s#mrw(pF>Mro3B7W8PmlXS~$^kfth$c0S+@%pNN4_yo(D4Llqt zSd@jXjD0gtI_3}ta;_h2A#^udikke(+BZ*_cB$a_h}bpRxg6~%x`=iYT4mXSqO^R3 z!X}VbW3$4px!9?%LCbAIhn%KDzbt+e+{7+zku|VD(5VOK!|m@$wyaDvT$mR5q|I~$ z1-9ycgRxbVW+3rPH@w*Qe)LA#y(+WMxE<9a9^&dT8?Dx4n7h)pqIwsj6f?J{p`Y#o zikrnoD2=ZQ6q5)Ys9Nw_+RMKL#+-WS;`QJp6l4rV+WYB6K@Jq6QNPJb zjZt%bm%WS*=i=fwCIUAAn>qr(N?U-P>Z+`{EV+@1rKtE@l;&U98hrfnVXomj3oyYp zroy6@BU@LPxcLnbart$i>BK)UQ-we`?fWCl-2H|%dg??iM3R1E(Xd}o?;LS&HGsqn zpoHNDKDq)(09?L9Y5br{)f3!N(}6;QB&g0{LXQ|(We=quqHhdM3vDGV|1j)4dTW`* z7hL9b!X(#3`ns6vi_ax$dw~(?A=ak`kVt&L^&a!x@WWMDMfsGh)19`AW3V(}hneHZ zZpZS&DmArWVViFvXtB@uXa>F-IWM@9XKTRkuixYjV;%)hc%B4oD|l4b+!^gHu(i_& z_~!I(!(oCL3SYC+gaOIEeQZ;>KdP0juZUpReFQZDA4iZR<1%PiQ}8TbP>x=$M?bTg z#V>((lBxO*+6=>HtfQMdM|A#p3T-hYN~v>Z~l47aPcDQqn0`E_glk zI4m_|mb8-uN=8sCmw5})+ezQvp|>O0ml1<_Pf_?%2LB7sL3>iXrV~%ASxa3b?M^Sz zoZgsgywCjS>9Zm`LDkSaoFA*STvSCV;!?o7{a-fPOV*%9qk^#FVUBEu;MM2}56@d$ z<8%e|{?>Ked&D$+@U3mE6ICeuB&Wi|ni&56g9R96xCNko0~g>~+_ErIvZ@6ua7K^E zQ^>42+W^_0#z-QCH>G0u>P~xU2Ms+buzI-jI#q?D8efcU!3b95ZR8}9DkQJ<4*s$I z#$@@1c8JwnO7x#;maz`GO@4-MNQnbxkMadD@*K<=3Y3|Qfq*`aJLv2i7NNsX>)%tP zE>h}OqVr`P($Q9}%GGm?qhic$irha}dj9LmB;cEeg=p&MGa>X`?;OOZww(4;p>u%I zh)uC*wRM4AK`bu@z9?QkSzVdn9D3(aT<-B#F`)`Ae{s0M!zWuB#MO(F5B$a9dH1-( z(=biP#5bFghSRowOIcLq6%Xt;>x~b#BMRc8G7c%X29#{$#)mQ?*eCyq(*}1@i>)F^ zu&4}~QS$d&@t>N5l-?gkpL3g%2*Vl1GkFAecqb*#AkYH8H$WIs^8I{8JI4s1kcLa? zd(D|neZR&WtKRgnmhls&!9;jEao?r`2@)M}W+z1XgQ~$W+IPA0X3~Z%{;KYeA3*2% zHg%+VT!m6-t%njevNO#+ADk&}_4ZG3UskVj|0eDv*!g&B75f<-Pq6|^RTzE`IBAF? zpygIgV?uM*3&RGf&fZmisa}rqmmqqfEQJNgGxmvEs!L-%ziq#{bZy;>y6D5-r!ZAWE}t9N&Jn_f!;wCcpH58x3>!B~|R+Z-1cjy^8gdxMMz6rutU%d>D|FrUmXA?J4Z{w9N1xQh;yBWT@4a}2^f>$SS z+x#15J8KbuTLJ{`2{i1o|E z#ONq2#_wK)jKGY8!nrq6VHPqxay3|q{JWXHVj{$?<~VP^ z43|bXLDwXyR;)m9DrRW~BXthL^^o4qnyR1T5hu?7EY>#v@EB65uJ{W2v@$Dg@N7Tvet7^(wY|fQHMlfm?_P{JGWv3npR8c*m zIvz~qygM2P9k`;Uaj<)z*^*E0oS*iE`Y-*qlGZ#=KSxr-SToS&Lojv5`35dJmc(}( zY~v`B7tlM@Y%blpjY*$Zv{u$wOm{iq?SzS}dZn>&ErqLD^d zq7{H$HByKnC}3DeE4Ffigc+cR58ztZzu;O9h8`)GnS|p70pTpbTl5vt=pb-KB6d=V zanK%YK3q5KId<(vof25`wMc*iZf{eq*v6O`{F1UiSg#o&Fas5jvwb!_o)^cAkE`VT zvbTK^7z#@d((^e~L4lCx63?v-M*P$WD)4#Ony|^fYBlDCDKN{#Y0{@DYtR?=hth^G za#>dFvr)SckA*(M>M^N0lDU7+fVuhxR3@KG`?;Vj?FqXX{O!ldeyiE4|H5elW|zKE z4@`bsptm_+teOK!L7rmewZ2VugR)`rIx%)$ON2!ZJrVI~Kl zTik1T@)~gZW(4aSGv63^O2m&Su#IC=S-U!)0A3~FqF@hk+wzy-wA~1#=gyHt8ik5u zztOnA^LI%_ma|^pKlDaRHHKWHREF*WV+)%wwlNUmQ(4BAwK5aBKy!qEXa7Rt8&)e<%>ry z1(kU@$a}WhIs?hs`-ETk%3YUN=4n9Bxd0v_uZ~naLxTya%T@f}7x6b*9hVseP~4F+sC z(7?RWmUyNq3fX*_X`Z13!qcTUF@$d1*#WRM)g1^~=}(}25+N#+Rl zp#Y=|9*$r9t~6~2B(C=1r;_P5?795eV;^8wkz zzkbBw<}xA4nhJSLG?L#9QCOVKdhO{btWmi9b*+kT^jX(+LM1aWflSvTe~g)UD|dTC zQ*5<>i@fip&+1-8jde(upUW8|V4nC6U7ZPu!#JHXH;bm!R&_|e`<2~40a=7UCd?9+ zHVbo~v(LHq*;U6%ClpD`WsYCkl?|Hvmjj{TH0D2HPW!ik{(r=n$n-~xU5q@MH1;O+ zlho8pg*E;NSNd{$dh<6{}kW!!Oyo%?vDldYVNk5d?G z=wKLOy1*a0t-u!S{2Mn_f&Lpe1v{BohVF&_v(>{N6Zt(FRFuM2x?*!POnC&?BUY3N zF-shq&B0an_ZT-YZNdcnaw@=6IVkW!9LOC?K_CU^SN2I<8Ddgt_a*Hz@DfOLdm`Zv zx;brAoAKMSQedT*JOL81#g$)_qA_dNcfAk)oX2l)=|J}csirocqvwyC?TPHH7OX2h zpirsYb&#h;3o(o-2dUDksTn|GitzNPNr267pBaGu8$JC21(*1J1W_c!lE~DTU%-?j zy+FnNuWV>H{}H^{r`B6!I)m>0(@gak7v8nYEQl~`7=oWFn8VP7z^XThVjTz6$mH$% z3D~wg5I7Eh557F;BM7PMXQSW z7R^*VP5Mz6^Qi2qS-X7LsLL^yfj_QRp#|>-f9}{aE~K84D&#Y!!rLO?t*Ms;B~&xP z3NN`g+8F4@_q#A!vF?X-Z2#2xgqMaS_&fG)CD@UT84Q51PFZgehc1wB9iu~Slb@A3 zm(zSkLbNvwiE1aQQppqcN7U%;*-*Q`ujF8?{x@WbMxpj^&eg$l+rU|?%J8>q=$Jm{ zJ62H^qRTzq<<5fqZ#b5Z-SIBS6YN1B5R3uDDwV*>+ohfRfk*XK1Ia!Szic+F!Kg`P zbJ}32f}5Kl`-ISPmnB(aCjUI2omM@>$DTr)TYK$aAMSX`Ni6rA2%IVI0Tnq+T-z*0 zN*1|;M$X%hIWw$ukuFGHl<^hwbI+nlo%>*4mhI)Jxoi{QdbP*|89AfMgyQ%7#v50& zh$oMOUQG?@vwGMaK=+=hQV82P1!EuN21>WZ5Hhq?NifKuG+5lQk1zaL>rs7o>wC`d zl`_ZNl0EfrY0v4Z4#jkz3M8*v$?yV==We6h(U!9(C6d2>9o4W(VYfq%Dh4SPULzHG z91k6)*)~6#6MUcgQM4X%10agdjPpzhe2>rNIxBLtZ{?S(Cwd3W8fu^Oo?HG#u2~)4 zA-kd>Z4!E0-b7uA+@8lau&v&rKxcpA@*i0ZcuGW*WyvSE_s?u|Ve1`X*d9|36!(&u z7%)5RJ+l5WL(r@=;Tro25ETsvq@a%Ai}2_pHlxNzC2x!^tIgNFY^NtyGZ8CM98_p* zgBm@OgcY>8N0-wzH8c&pm^_V8lWEEs75rHuDR@I`u@mt7kxWl;#HuSX1-pP?E@9x# zP44EJ_+=R?^m=WeouO&3qUTK#Ii*wIc_(y}=27_E#?|Se=aYk8ebQE6v4Ad-5`P#| z4+Vn>jG0EZCP2g&K?_5kBcs8RRmc_z0`cY|jUi#E)z? zn;I>M-ZQ(RtOI=q-#^K)YQ`Lt=_by&KU$T-YoX(AB}wuYw@FrPO~e~zFZ zSR_4u7Z_tT_c7g1D9gda|KUhhb*!`ALg9I!AbWRLSsQnml`REK08v?4c3o2~%1h2V znCpbB(JsNFy0THD1l^;l{t_e$oi=G2hn3PK@2MaUO1pXJkX`ogi<8nEagW=+T;A*) z=Gf+^8HB2_m95*9#-DfkMURyTuwxJ_0n8m1)<=(oj~V74-xq8BpzM|Mu<$SQFxVAc zrox8M-<&9ID^?ZxI?Db&%%3sURrM2*$BL2j*A{nIzO-EGepXmZOrYtDDa;{8 zmwU)wz?P1@k)VyvKHXMYwC`h_b@h19lrHgibe+K`th`pW5u0d8ASTMU3`iI}-6T(>p&_FyGUmDB&h z3&-)guKyM!pTdp!vGue?K_1|S**I?hh5;(DHc61=;6UQAA-@j$zkkm`O9NxAFfG{s zg6`HRF3cz~IhH?296=*g_1}%q6+rk?SXKH19P(N3F@#sJ9ga-Cv{N4*9LRY+!I|jF zwO%k;(%J$Q#1PhZW69#zIA@As#0O;Euum;CFA}jn(pr_>4CVK!ZNL7bYB=UOg!ZaI zc%vB|jSBcNU$gJ+{lN}E%6fD9)}xL@B@__y+h&*mN~%FX#D!QYs*5IZVX!djg1m#{G(rSaF)oOZW-NwmI( zeDo!@HCJ!Z)@h*On%Ip`gS^c-ZS(B;;^i8#to*xrdDi8^T*o#%7lQSl+$?BEwIhE# z$}^AoZGE=aFm2q%1fij)PKsE(X=SET`={G*X`>P|aLo5)H$lrEq4;6u^mCrMK(P%a z$JNJm0~y*_x1t`NoDTx!QYFt5)2~HwSf4)a%E>3Ao`e?&x&E8McOLO8VeQzgmteN@ z$3_HnSZU0Q^)v6&Lf4}Pi|Vy339s?8na90yY1G>|C70(mNV(4&EBDsVYPjCn z*OzZB{ZLh%xSy+O+Ne10=MKT*nGG?&kk}}9y`Ry&e$^NibFy}~l1NfoR|_&9_*jmPQFH-MY!vFpWhX7jCs!;SJ~69??Vpv-p*6jY042uE_HN6IN$g2 z@QSfKh4B+%tXFMWhP@Sz&UyB6;kU2R#YK}qo6{=6uG_vxf}7ZOQstKl-;(42}1eWuR$t!m)mS#x&BQ-wE&&kgg;899R4abQjnFJu){!`%d> zC!wOo>QYm@KC9i8@Mg8l;w1yD>a4I#L;5umTxtbtQFdu3!8W*tu>bVL)7qGGqAMB) zI93&BqsRg&<9AZzM6C=C^3YDa!2}|5hwD37zb*~To$vic5=4I>{7M2@{>fhFu5e8+ zY2}2N%ZXzV=+e?I?eBS}3?Nx!S!1?L6w}kx8XI;SLq9ED9S_l5q{UOGaq)ElvF}q; zO-o{|za6{b?9o)lN!a@ik`wGm;c86P7N*~Re;3};W3R5#)KhimY;%bAvpwgv5L_f2 zfX+zBefG_tM$2nj^7uXD5XlD;GMaCCB`jRS-Oq$P#s6Q3ki8YvkmheDN&mTO4~nT* zgW@5X-)K-(5fR4teQ?IoFbC%`gJ_A~4V*?7L$KU;+;gm!cFJ~APPFxU_r7FM5J5BW z<$$gj{To0*E7%=Hg;fZ|Rv$4jc8Tn_|DffO+6xjK@6TOR0goT!!ozf)v@>hsZd!Js z&04u?f17#uJ^U;3oJ(#_Kx>qyqIT)T{yG)seDQsWLmsBYL}?AccKRZza}pQ8K{tVe z!KN&#yZ^D<(lte^sRt%yPImt8)Dk$r;_iM@8_cg?+IOa3vHpX?0mz@qX;k7fV%cVD zNRWBjbW6F9Tb9AyTZPOl@guQAHYfyt z(>uTDKuRCEEZ@o2b@=)8<&yygP7+eh7(IAqbe?V@N{?auD+%f6INQ2dk#v$eQ&%v_ z{Z#}00xd5#B}SxOUp~-!o|V+KE{fvADtoO>{25>sNCB$dbi=P+DECPVc8`&z5gEHg zR{S({+;>Ioo7}r@?(dlY1c>m43bROV^e-wM(Y#|>ogp9i)Zt0$iG3v_c(=~6afeod z;D#y3-aS0W4x^3{nqlS0##$mL3dcSQJ18FQaelkqKV?nuoN++0;W4TA4FiQ3VN^hC zv%O?}&!$o1h;5d+S7JmN2hb^QPw{|K&3sA^Ri0P7&rHv~Vnw1*%=k8fkt6H_f6DScwYHYm$!Ml zAL?blp9~#>n5NCCMQft{wur6to|7f8d}Fr-@gA z;&l=J;rDt zyB&P`a55cVBXxwjZXkXe^lUQv1yJOB*<5Xdvapvgc^=Gg$ zOze|9DJ|aC{m6$Xap{ab==?9xA`?f3qPyyPB=Z*eFAkM86Q28S*T92R6Jf@3pa@N? z{BWiXJ>~4hcG2|QAs5Go*@`9nF_Q!@xjvOGXd~nh>{$@k`?=djGAW&W#f`N`@3M=c zvMGzC_~${K4{u*7lbvo|J-fo=52t?RqU@=42l8eAMz*s5jcf(BF5$pZQ3a29b@VTe z`K!q$lV)G1=x@n3T7NDsf7GgfKkScjS`Tv=3v&sWTuq2t1xJ~#Cig@vtg&=l{CD|z zsAlW*>e;2)>9*GK&CEmjfGh}!fq6i-Pt~}v!dltSf3E`E7trothcLCO?6`n-dKX1k zTV|0~lSLT0j{0-$60h0ib8Tv!o14X3q}*^AiHBmDPNMqLh^5b^Fv-)aqsv{I6~R2Riec)q-rjCzpZ~1_fDdEquI1kC zj}UOeUU1=X^m~1wulEa)?(_mwBi=}+5QetEu@m1J%?^-bZJb&M{h5qNFko?D+nX(V z95(j^vwO)fjFiaFjxYov%>_`2G9h^u$qkEK8!A-na?UQK1s>bKAT5Pa?E_5Vcv4)! zCpe#1g=+0Hz4GDh;~WoXS1aA|E!a>frA$-bEgyOq^B_25&}JKcf4$1#O&L}hQ{N}R znZr;9)s0ZMHYkl+aJP#cNmb7X-=z3Tx{of6D}HjA6=Bv7-AC`<34)o9lm$bVc`=^M z{cPAoOX!5Jz4|Frj=QB7`L zw?PmDR21ngcmPomkS0nCNCy$=N>vak5s)4r5E~r{T}3HU1Zhzu^db1&$Z^7b1Bp7D*4MDhT2{v=mZx7%ojv~7L%XM(cwj3%Wj`+_=BTLWhWI2C8{OU&% z*=R_718sDMH;BTXf}M)rK`h1w0QYMMw;x0sNZXwuKZ9-c&u~_V?ZX!S5C~7t%e@rR zoh~!H2*hhX5sW~|jy3pbu^n6-$nXl`1ZISJEh*L+>ym2nv0l-kj2Ctf80;_^xgc-E zkG3~xWw7qBFGWj;jwhjwzgqt6@0_%;-H!P>F(GeWVlTugv-yLE3fnD!wY zf-mDyNnd(KS37$4m8BB|qq@4npk!eMsB~KzPE7!jwsBv`0u;Q$jVi_b0NbBqLpvP;j#zNKWkoJ zNS4C`x!4>!bR?ZBq)?tF77*Vwl5UYS)vn^;yZfs|eLinvPbmloZMXn5!RYU?l-+Ou zcJkvLzYW!fpf20W-Aoo!vI`Kt)|-G6iWw*iobWIi>gG z5BikF{Vq4}$3~uMosHtWy*W_J&|>$KP63$jfp&XLE}pfyOSJk48f<3U;rn4T{kTUu zpam4n%Xye{$mILSy8_ULl)frhB4h+{R;eA^n##xJ`)f$(-5sIKMC9lWDrqTxF|M{` zYs;U*AwhRLm7-Tu5w7z5OR<@6R|< zaGH-S$O3~XzYQb+Xa>p~fTQVKKvjsfs7S#X4I`*xNGl+%2rV1ccdQ`Rw=L6_{pf+W zP)Q)4zjc&ICV;*Js`UU9sP;dFmXo$1`~+FOal-uN`zx!@?TN?ppX7=6{T6Vj;s6#* z!+1a31LvlW5yfme?lt8WQ=6AIC!%WQKR{}L#*ixfGF5jQs4{JELV@*?QmegJLbmfP zzFRNZ=N2>S*H2d;$0jS=_x;DhE-Ua$*|QgC&{OfK#Po zXmerk8I%P14gON&v}8K8eKt{ND2K1t@#R}WN6c|ujeTt+Fe&wt3un4hXsxTDZ4Vsl z58OV+OqM)fH{&+#9|`+rwXb^yq*79x&SVqh2%?*p2@2qdKuU2~81hPDp3IpXY!~sC z^e>0ovmmj0D&X`?}V(h`UgYGSQ`55zZ~fR zXS(CD6RuSR0&uO|=)X}YX$Kh&G!a}aL$I$-v=gj;m;1+0MIe4QrHswJ-r8ZwvwpzP ze`3`J%h&`O{e=DO4ykW|51?cz5jnBS4lS-d1(wWk_uIW)q+M`J?7z60B3~NNg5$ci<0~YTDH=~cwD=BZBI9yl(OT$% zTEigrlq#kOOk(*^B`A1viiXr36iP}f|KcKEym4{T>i4Z$ud9wvw!|819gc32q2_5@ zvdl+m+*r}yV^<;s#^_!%06y0J(Vt$IH$?u#$YR!Dl^Hp34F6d8C zb)5lx9C~zzd}JuC{S`LN3*$vjOtixZ@V}{UpX_{TS8^bE!iJ;@w(+>v3;5 zG-D5x2+ekxIRA+wBl}UalhcK!7S`F|;NGetL}WUvAs<=D7{BrUS%-&G!%W0+_a|YC zqblyB%Ju1&Dn^v(hJ^xG$le)%Xwqu7a~+L2<|gxHoP+Co79l*+bQjT3JF$%r9o~;z z<^C1>4D1_2Ad8fc!3?4%Y5T|#U>iB=?pGlrRW2Fwl7WLkHDP1CxbMNUi`!yh3}3YZ z0eYEw;1 z|3m0ml)(WQW8mXpPNoA&KoF%=Pi-DgecE&9>XDW?0Cb;-(!}d z45?M`2#4Wu9+BnOzUOjQKfptz>V-_1LUNBH3H1@cBng}lqJlgXINFYULBYDqz~wl( z`fLIHh+fk_LG__zV)KVG9| zHGyGbFR=T8Q*sSROMrK74sS!4m3Wj+&(=U#ig)ay{o-qP!0*$#ta!aVV@@(1ptOQm zD1{|b8+vz9eRX0~H9rKY1+sh5mH}rtUaX{#=+1f-@)E3fDBXP}c7Uz= zqf?qGL$b+Z@5#-Mwn4!D1KA2J;A+5^i8D=K?-JsvzI=wG&u1>HJ7;uOEGmkFMe$BJ z_eh+w^mOmTnm2}oQ&%7T@v*6>P0(HaSBEgXJ`d?(HX>WY551q>Y=(~7>T$#h8<&_O z3Hzwigz$~3Im-RTEhWW*Dd)wGE1WUbTGEK{WI?|*XWA849QE?C1|Hz}cRM6}KaElQ zIHfFw+*9s)Ba^%s7!unUR&D74AcYZ=66WzovMSykXR46DxV3*>T85n3kV);NS=I&8 z_W*as$4{e1SmkN3T@Jfc9uWRRF?uEja!E7@<{g~hU4NH`xHqSAu?2Bu(q2K$)z98TM;4uUYPZVG0r$v0xD%aJEc@`+is!yc5wxis_h(z%>g4m8 zM8g-KorX^O=6BC2x$tnLeJu(za&qIZ^pdKv5A9KOVo#n$oOV`W9B4s?KX)j<%kc5q zlCBO{XNC7+kcGA?n2S0HW-6(@GtYf&@&~N8)(}fz}Swr0_eGV zc}gl=3}sz667B8zrDyp@{M8hRw758JlqG22>~a#j;G1@#x)&L&)N3&BUxDymL=f9V z%HZNdOk>Wo%{Y~n{oAOs9^h*e-1#ppA%o8iF2x+3i{Oi@TfSFxA7; z`Nx;obS~fZo=m_Xf4@|+_*Ks_LY0FXR1TqOq{sE;CnUCB!{figR1LX*{o)&)8sUh0 z_(;vgg{RHq)ES)SNp{IpnCT2m?k#ICqj3CY7Q0Q|Fp^*xI?V94l>OIiK;?f^g;w+Q z63(Z}y`wcAJX^0*SDt|F!qz+^iGB9`?34?FUpl%~-A2f3)*Ls3kJDRGtLj2t9sG|_ z8xN+O2hi1N1f?1n!I}g#BMbva=%YVD*nHYG2mr;_04SErsuie^@dcG~62UE~;U`t- z6G&FgWJr(S+Wzg zZV}jWp@B{t(I@B;ORZl9o)@a)oErNHD*N{;73Kz2T6nL_lm=jl-k-OvL(qfASMbts zWjx%H&A;_n79<0>?-P6fj%#H>9v7?;F1M*yL?Iyv%97 zOkom8VA)~t}DL2PmU z_19OSo8G#EbJ8`2=@36q??!kZic+E}=VHe)3aW^Jf-r{GE!Bd+?@-{12`80wsuqRhaKraso$OHg%c$&>wTpfSb5xH;;zhJ|qnjmZ$t^gAaOKg-PMq$>p`ehF&D)va<+#GCr=OSW0v>KV~FOK53AXSkLJT90Nx<1VC zvpJMujePNjK)WI^Pgl1v>-wOX;Ow4bogQgh zL^;lf{Q=X}DGg)2cGK0?BvbpMxH2P68MSL_*S&7b8maQ1`&tXutwh(K9{YOn$LCQ< zV@_7qO{2P)t8?G_ynKdBw%Cj`A5|LZrn2aPEKRlIn*?uQW@$!BRu64j*0@z37AH9_ zC2eYgEq^-r4Bi_NI9G9GHmd7;O^a31Ci}1tJw}wdvCi_++#}Tn*jaeGcyZa&VQvO0 z!wAvCcPc86koMDWu*E)99(?h1c1ZPT^sSB;5ZrV-qVQFaCk3L=Fb6qfxl%Iv{{Con zPPnAEq^M|#%;5S+HD>c+Pibr%0z%w?bI5aAflVeXLZY*-sIq}TARk(^lF4ZuvAAWC z`{)kX493E!mnHo8_E)#S-3{IVA{)tJ`#!-xa&d4uTDvbxK3%X{(LOZbBJHsO6>&&S z#CyzT!EA>~%1@}{D4XM*Nr>>J@!->eT=&F28NVkjd5soi6}iF%$q0|xw9^_NKABWf z7P}U_x`NmHoU`g*UwB}yojNtu6m_-W!pXeTe;)tY*T78K%AjKS#`N?mt=M^7u60(T zo?e$r*%tC+t=sIBdZWVI_kn@36Q=J{)Q%x~*-rlFHmkecu}LKU#$CBx3h6WFNU7Bn zrnCunwn)bI5^g4JG?0HNH80$2Z((tMlZ;%q)smz|1OVlRWvWwlc#D;mH_HRGx*Poc z9WDAhquW|jn)jeB$#>L&IGU>>|+O^e=1KDuQLR7pNkSU~c;i-6fDx^NE_GP&;fY3iw4W{j7QEX(irYa?fo%N_&8kH9j_S*wyS+K?&> zPY}(d0$sEZl9wIx@P9oOVcUs=bHGhwioE_jI;H;F1Cz6?5@#`Zper?6T7B* zpaad1tpVWA{7#&WW+_CO>nz2+($|507;7F;GRbve753-ko%%$lA@e5=P+%=xuGRE8~N~(qzX5roN0uei7I6qe8%a|Gz`a$Eq zH<_vEhK=L4p*sLNZWc>AigfU*tgB;1%3eQ4Eoe|l=D}CStFb_($!ESSFJ62;zDL6| zh6=JsY6H4FS^|r{yRd$8Hsv^z$7Sa|IrPAGVyi=B)S(#n<2Ll_@cVdxdU6EvhhD~p z?Q8=D$Bg46!-LfM-EG!&zy{!y%d}uzH}`d3e-X76wUVE0Ay-uROQSa$ZI|F5Iu<~R zI6`5vD0eH9{1VpO)H}u@IVMN3!=;m}c2|tbYn(W#DmRuJhF^BSDT(9PF^CH# zLbU|lV2F0l!cX0xGy|_)Efh+w31u_7r}m!|YX14H z|L;e{NY%_m7({pU!lzHZkAigG&{to-?#M3AHT2n6J9Pa|5Hp&YmFN;H@r6MV5zXFg zySi_lz_m3C``{-8{(>rWP07xEFu=_Y@$cn2XN__kBaP1S| zYU!19$0X(=snApFdux6KyXoVrT&L>REy#9Xt;3*<0>cp?mfEb!Zi~5+pUyVL=3+_b zLa{?gYm3v?Yzb4?ZE8KPBwa$;yuow%o+@2Bh;9@~76wL;GFB^v`hSAx?FU;lkM6DC z;Pf-edYqk>7Z)ss>^l~5%(U(Hc3b+EtoP(VDAm-Z`ey1>nL?tO2xqBQ?xApsKckFW zWVWNjij=KPR>wD(w?$E$r*lRPa1a*VlGQ78Nt)7- z4>8s>8S33o^WuWR2NPF(<^sLFrqZFDk)%ER+~7dxt<{SW-HYiLSnM(j8%{SP-0W}^ zy9C;hXCIXA%(p+kpW^;UY!^wuxm6~0Ly0AK4CdZ3yp^4@W=M*qY3nnazvG~16g6Vg zV0_JHDCQHkYRNz4<|FcIFY zR3e)!1E)A2qK}G91}J*lhS9;%o-+z$f0t` zR;|<5JWDUUg|cNk34i zULeJ&gRdh~}J9i zisS!xR8IT!ov?A~AK#TDx}Vv?f^=)!CZ3DW@T;g_{FB~!Rj{qM4SCtRPKGLamJ3iF%V#DXRh;4A?H84kn_*| W`{(}sU)BK4pW}kk96$jX1o~g>GJORA literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/logo_back.png b/src/main/resources/static/images/logo_back.png new file mode 100644 index 0000000000000000000000000000000000000000..fb86f6f6cfe3dadd52e3a1fa434023748084aead GIT binary patch literal 122259 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

{8 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 + var cookieEnd=document.cookie.indexOf(";",cookieStart); + if(cookieEnd==-1){ + cookieEnd=document.cookie.length; + } + cookieValue=decodeURIComponent(document.cookie.substring(cookieStart + +cookieName.length,cookieEnd)); + }*/ + return cookieValue; + } +} diff --git a/src/main/resources/static/js/lay-config.js b/src/main/resources/static/js/lay-config.js new file mode 100644 index 00000000..dfda8c14 --- /dev/null +++ b/src/main/resources/static/js/lay-config.js @@ -0,0 +1,31 @@ +/** + * date:2019/08/16 + * author:Mr.Chung + * description:此处放layui自定义扩展 + * version:2.0.4 + */ + +window.rootPath = (function (src) { + src = document.scripts[document.scripts.length - 1].src; + return src.substring(0, src.lastIndexOf("/") + 1); +})(); + +layui.config({ + base: rootPath + "lay-module/", + version: true +}).extend({ + miniAdmin: "layuimini/miniAdmin", // layuimini后台扩展 + miniMenu: "layuimini/miniMenu", // layuimini菜单扩展 + miniTab: "layuimini/miniTab", // layuimini tab扩展 + miniTheme: "layuimini/miniTheme", // layuimini 主题扩展 + miniTongji: "layuimini/miniTongji", // layuimini 统计扩展 + step: 'step-lay/step', // 分步表单扩展 + treetable: 'treetable-lay/treetable', //table树形扩展 + tableSelect: 'tableSelect/tableSelect', // table选择扩展 + iconPickerFa: 'iconPicker/iconPickerFa', // fa图标选择扩展 + echarts: 'echarts/echarts', // echarts图表扩展 + echartsTheme: 'echarts/echartsTheme', // echarts图表主题扩展 + wangEditor: 'wangEditor/wangEditor', // wangEditor富文本扩展 + layarea: 'layarea/layarea', // 省市县区三级联动下拉选择器 + cardTable: 'cardTable/cardTable' //卡片表格拓展 +}); diff --git a/src/main/resources/static/js/lay-module/cardTable/cardTable.css b/src/main/resources/static/js/lay-module/cardTable/cardTable.css new file mode 100644 index 00000000..71449a3b --- /dev/null +++ b/src/main/resources/static/js/lay-module/cardTable/cardTable.css @@ -0,0 +1,92 @@ +.project-list-item { + background-color: #fff; + border-radius: 4px; + cursor: pointer; + transition: all .2s; +} + +.project-list-item:hover { + box-shadow: 2px 0 4px rgba(0, 21, 41, .35); +} + +.project-list-item .project-list-item-cover { + width: 100%; + height: 180px; + display: block; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.project-list-item-body { + padding: 20px; + border: 1px solid #e8e8e8; +} + +.project-list-item .project-list-item-body>h2 { + font-size: 16px; + color: #333; + margin-bottom: 12px; +} + +.project-list-item .project-list-item-text { + height: 40px; + overflow: hidden; + margin-bottom: 12px; +} + +.project-list-item .project-list-item-desc { + position: relative; +} + +.project-list-item .project-list-item-desc .time { + color: #999; + font-size: 12px; +} + +.project-list-item .project-list-item-desc .ew-head-list { + position: absolute; + right: 0; + top: 0; +} + +.ew-head-list .ew-head-list-item:first-child { + margin-left: 0; +} + +.ew-head-list .ew-head-list-item { + width: 22px; + height: 22px; + border-radius: 50%; + border: 1px solid #fff; + margin-left: -10px; +} + +.ew-head-list .ew-head-list-item { + width: 22px; + height: 22px; + border-radius: 50%; + border: 1px solid #fff; + margin-left: -10px; +} + +.cloud-card-component { + padding: 20px; +} + +.cloud-card-component .layui-laypage .layui-laypage-curr .layui-laypage-em { + border-radius: 0px !important; +} +.ew-table-loading { + padding: 10px 0; + text-align: center; +} +.ew-table-loading > i { + color: #999; + font-size: 30px; +} +.ew-table-loading.ew-loading-float { + position: absolute; + top: 0; + left: 0; + right: 0; +} \ No newline at end of file diff --git a/src/main/resources/static/js/lay-module/cardTable/cardTable.js b/src/main/resources/static/js/lay-module/cardTable/cardTable.js new file mode 100644 index 00000000..6218ab8b --- /dev/null +++ b/src/main/resources/static/js/lay-module/cardTable/cardTable.js @@ -0,0 +1,247 @@ +layui.define(['table', 'laypage','jquery', 'element'], function(exports) { + "use strict"; + var filePath = layui.cache.modules.cardTable + .substr(0, layui.cache.modules.cardTable.lastIndexOf('/')); + // 引入tablePlug.css + layui.link(filePath + '/cardTable.css'); + var MOD_NAME = 'cardTable', + $ = layui.jquery, + element = layui.element, + laypage = layui.laypage; + var _instances = {}; // 记录所有实例 + /* 默认参数 */ + var defaultOption = { + elem: "#currentTableId",// 构建的模型 + url: "",// 数据 url 连接 + loading: true,//是否加载 + limit: 0, //每页数量默认是每行数量的双倍 + linenum: 4, //每行数量 2,3,4,6 + currentPage: 1,//当前页 + data:[], //静态数据 + limits:[], //页码 + page: true, //是否分页 + layout: ['count', 'prev', 'page', 'next','limit', 'skip'],//分页控件 + request: { + pageName: 'page' //页码的参数名称,默认:page + , limitName: 'limit' //每页数据量的参数名,默认:limit + , idName: 'id' //主键名称,默认:id + , titleName: 'title' //标题名称,默认:title + , imageName: 'image' //图片地址,默认:image + , remarkName: 'remark' //备注名称,默认:remark + , timeName: 'time' //时间名称,默认:time + }, + response: { + statusName: 'code' //规定数据状态的字段名称,默认:code + , statusCode: 0 //规定成功的状态码,默认:0 + , msgName: 'msg' //规定状态信息的字段名称,默认:msg + , countName: 'count' //规定数据总数的字段名称,默认:count + , dataName: 'data' //规定数据列表的字段名称,默认:data + }, + // 完 成 函 数 + done: function () { + + } + }; + var card = function(opt) { + _instances[opt.elem.substring(1)] = this; + this.reload(opt); + }; + /** 参数设置 */ + card.prototype.initOptions = function (opt) { + this.option = $.extend(true, {}, defaultOption, opt); + if (!this.option.limit || this.option.limit == 0) { + this.option.limit = this.option.linenum * 2; + } + if (!this.option.limits || this.option.limits.length == 0) { + this.option.limits = [this.option.limit]; + } + }; + card.prototype.init = function () { + var option = this.option; + var url = option.url; + var html = ""; + html += option.loading == true ? '

' : '
'; + html += ' '; + html += '
'; + $(option.elem).html(html); + // 根 据 请 求 方 式 获 取 数 据 + html = ""; + if (!!url) { + if (url.indexOf("?") >= 0) { + url = url + '&v=1.0.0'; + } + else { + url = url + '?v=1.0.0'; + } + if (!!option.page) { + url = url + '&' + option.request.limitName + '=' + option.limit; + url = url + '&' + option.request.pageName + '=' + option.currentPage; + } + if (!!option.where) { + for (let key in option.where) { + url = url + '&' + key + '=' + option.where[key]; + } + } + var data = getData(url); + data = initData(data, option); + if (data.code != option.response.statusCode) { + option.data = []; + option.count = 0; + } else { + option.data = data.data; + option.count = option.data.length; + } + + } + else { + if (!option.alldata) { + option.alldata = option.data; + } + if (option.page) { + var data = []; + option.count = option.alldata.length; + for (var i = (option.currentPage - 1) * option.limit; i < option.currentPage * option.limit && i 0) { + html = createComponent(option.elem.substring(1), option.linenum, option.data); + html += "
"; + } + else { + html = "

没有数据

"; + } + $(option.elem).html(html); + if (option.page) { + // 初始化分页组件 + laypage.render({ + elem: 'cardpage' + , count: option.count, limit: option.limit, limits: option.limits, curr: option.currentPage + , layout: option.layout + , jump: function (obj, first) { + option.limit = obj.limit; + option.currentPage = obj.curr; + if (!first) { + _instances[option.elem.substring(1)].reload(option); + } + } + }); + } + } + card.prototype.reload = function (opt) { + this.initOptions(this.option ? $.extend(true, this.option, opt) : opt); + this.init(); // 初始化表格 + } + + function createComponent(elem,linenum,data) { + var html = "
" + var content = createCards(elem, linenum,data); + var page = ""; + content = content + page; + html += content + "
" + return html; + } + /** 创建指定数量的卡片 */ + function createCards(elem, linenum,data) { + var content = "
"; + for (var i = 0; i < data.length; i++) { + content += createCard(elem, linenum,data[i],i); + } + content += "
"; + return content; + } + /** 创建一个卡片 */ + function createCard(elem, linenum, item, no) { + var line = 12 / linenum; + var card = + '

' + item.title + '

' + item.remark + '
' +item.time + '
' + return card; + } + /** 格式化返回参数 */ + function initData(tempData, option) { + var data = {}; + data.code = tempData[option.response.statusName]; + data.msg = tempData[option.response.msgName]; + data.count = tempData[option.response.countName]; + var dataList = tempData[option.response.dataName]; + data.data = []; + for (var i = 0; i < dataList.length; i++) { + var item = {}; + item.id = dataList[i][option.request.idName]; + item.image = dataList[i][option.request.imageName]; + item.title = dataList[i][option.request.titleName]; + item.remark = dataList[i][option.request.remarkName]; + item.time = dataList[i][option.request.timeName]; + data.data.push(item); + } + return data; + } + /** 同 步 请 求 获 取 数 据 */ + function getData(url) { + $.ajaxSettings.async = false; + var redata = null; + $.getJSON(url, function (data) { + redata = data; + }).fail(function () { + redata = null; + }); + return redata; + } + //卡片点击事件 + window.cardTableCheckedCard = function (elem,obj) { + $(obj).addClass('layui-table-click').siblings().removeClass('layui-table-click'); + var item = {}; + item.id = obj.id; + item.image = $(obj).find('.project-list-item-cover')[0].src; + item.title = $(obj).find('h2')[0].innerHTML; + item.remark = $(obj).find('.project-list-item-text')[0].innerHTML; + item.time = $(obj).find('.time')[0].innerHTML; + _instances[elem.id].option.checkedItem = item; + } + /** 对外提供的方法 */ + var tt = { + /* 渲染 */ + render: function (options) { + return new card(options); + }, + /* 重载 */ + reload: function (id, opt) { + _instances[id].option.checkedItem = null; + _instances[id].reload(opt); + }, + /* 获取选中数据 */ + getChecked: function (id) { + var option = _instances[id].option; + var data = option.checkedItem; + var item = {}; + if (!data) { + return null; + } + item[option.request.idName] = data.id; + item[option.request.imageName] = data.image; + item[option.request.titleName] = data.title; + item[option.request.remarkName] = data.remark; + item[option.request.timeName] = data.time; + return item; + }, + /* 获取表格数据 */ + getAllData: function (id) { + var option = _instances[id].option; + var data = []; + for (var i = 0; i < option.data.length; i++) { + var item = {}; + item[option.request.idName] = option.data[i].id; + item[option.request.imageName] = option.data[i].image; + item[option.request.titleName] = option.data[i].title; + item[option.request.remarkName] = option.data[i].remark; + item[option.request.timeName] = option.data[i].time; + data.push(item); + } + return data; + }, + } + exports(MOD_NAME, tt); +}) diff --git a/src/main/resources/static/js/lay-module/echarts/echarts.js b/src/main/resources/static/js/lay-module/echarts/echarts.js new file mode 100644 index 00000000..fcb939c2 --- /dev/null +++ b/src/main/resources/static/js/lay-module/echarts/echarts.js @@ -0,0 +1,19 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";function e(t){var e={},i={},n=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),a=t.match(/Edge\/([\d.]+)/),o=/micromessenger/i.test(t);return n&&(i.firefox=!0,i.version=n[1]),r&&(i.ie=!0,i.version=r[1]),a&&(i.edge=!0,i.version=a[1]),o&&(i.weChat=!0),{browser:i,os:e,node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!i.ie&&!i.edge,pointerEventsSupported:"onpointerdown"in window&&(i.edge||i.ie&&i.version>=11),domSupported:"undefined"!=typeof document}}function i(t,e){"createCanvas"===t&&(dg=null),ug[t]=e}function n(t){if(null==t||"object"!=typeof t)return t;var e=t,i=ng.call(t);if("[object Array]"===i){if(!R(t)){e=[];for(var r=0,a=t.length;a>r;r++)e[r]=n(t[r])}}else if(ig[i]){if(!R(t)){var o=t.constructor;if(t.constructor.from)e=o.from(t);else{e=new o(t.length);for(var r=0,a=t.length;a>r;r++)e[r]=n(t[r])}}}else if(!eg[i]&&!R(t)&&!T(t)){e={};for(var s in t)t.hasOwnProperty(s)&&(e[s]=n(t[s]))}return e}function r(t,e,i){if(!S(e)||!S(t))return i?n(e):t;for(var a in e)if(e.hasOwnProperty(a)){var o=t[a],s=e[a];!S(s)||!S(o)||_(s)||_(o)||T(s)||T(o)||M(s)||M(o)||R(s)||R(o)?!i&&a in t||(t[a]=n(e[a],!0)):r(o,s,i)}return t}function a(t,e){for(var i=t[0],n=1,a=t.length;a>n;n++)i=r(i,t[n],e);return i}function o(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function s(t,e,i){for(var n in e)e.hasOwnProperty(n)&&(i?null!=e[n]:null==t[n])&&(t[n]=e[n]);return t}function l(){return dg||(dg=cg().getContext("2d")),dg}function h(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var i=0,n=t.length;n>i;i++)if(t[i]===e)return i}return-1}function u(t,e){function i(){}var n=t.prototype;i.prototype=e.prototype,t.prototype=new i;for(var r in n)t.prototype[r]=n[r];t.prototype.constructor=t,t.superClass=e}function c(t,e,i){t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,s(t,e,i)}function d(t){return t?"string"==typeof t?!1:"number"==typeof t.length:void 0}function f(t,e,i){if(t&&e)if(t.forEach&&t.forEach===ag)t.forEach(e,i);else if(t.length===+t.length)for(var n=0,r=t.length;r>n;n++)e.call(i,t[n],n,t);else for(var a in t)t.hasOwnProperty(a)&&e.call(i,t[a],a,t)}function p(t,e,i){if(t&&e){if(t.map&&t.map===lg)return t.map(e,i);for(var n=[],r=0,a=t.length;a>r;r++)n.push(e.call(i,t[r],r,t));return n}}function g(t,e,i,n){if(t&&e){if(t.reduce&&t.reduce===hg)return t.reduce(e,i,n);for(var r=0,a=t.length;a>r;r++)i=e.call(n,i,t[r],r,t);return i}}function v(t,e,i){if(t&&e){if(t.filter&&t.filter===og)return t.filter(e,i);for(var n=[],r=0,a=t.length;a>r;r++)e.call(i,t[r],r,t)&&n.push(t[r]);return n}}function m(t,e,i){if(t&&e)for(var n=0,r=t.length;r>n;n++)if(e.call(i,t[n],n,t))return t[n]}function y(t,e){var i=sg.call(arguments,2);return function(){return t.apply(e,i.concat(sg.call(arguments)))}}function x(t){var e=sg.call(arguments,1);return function(){return t.apply(this,e.concat(sg.call(arguments)))}}function _(t){return"[object Array]"===ng.call(t)}function w(t){return"function"==typeof t}function b(t){return"[object String]"===ng.call(t)}function S(t){var e=typeof t;return"function"===e||!!t&&"object"==e}function M(t){return!!eg[ng.call(t)]}function I(t){return!!ig[ng.call(t)]}function T(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function C(t){return t!==t}function A(){for(var t=0,e=arguments.length;e>t;t++)if(null!=arguments[t])return arguments[t]}function D(t,e){return null!=t?t:e}function k(t,e,i){return null!=t?t:null!=e?e:i}function P(){return Function.call.apply(sg,arguments)}function L(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function O(t,e){if(!t)throw new Error(e)}function z(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function E(t){t[fg]=!0}function R(t){return t[fg]}function B(t){function e(t,e){i?n.set(t,e):n.set(e,t)}var i=_(t);this.data={};var n=this;t instanceof B?t.each(e):t&&f(t,e)}function N(t){return new B(t)}function F(t,e){for(var i=new t.constructor(t.length+e.length),n=0;n=0;if(r){var a="touchend"!=n?e.targetTouches[0]:e.changedTouches[0];a&&de(t,a,e,i)}else de(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var o=e.button;return null==e.which&&void 0!==o&&Mg.test(e.type)&&(e.which=1&o?1:2&o?3:4&o?2:0),e}function ge(t,e,i){Sg?t.addEventListener(e,i):t.attachEvent("on"+e,i)}function ve(t,e,i){Sg?t.removeEventListener(e,i):t.detachEvent("on"+e,i)}function me(t){return t.which>1}function ye(t,e,i){return{type:t,event:i,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta,zrByTouch:i.zrByTouch,which:i.which,stop:xe}}function xe(){Ig(this.event)}function _e(){}function we(t,e,i){if(t[t.rectHover?"rectContain":"contain"](e,i)){for(var n,r=t;r;){if(r.clipPath&&!r.clipPath.contain(e,i))return!1;r.silent&&(n=!0),r=r.parent}return n?Tg:!0}return!1}function be(){var t=new Dg(6);return Se(t),t}function Se(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Me(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Ie(t,e,i){var n=e[0]*i[0]+e[2]*i[1],r=e[1]*i[0]+e[3]*i[1],a=e[0]*i[2]+e[2]*i[3],o=e[1]*i[2]+e[3]*i[3],s=e[0]*i[4]+e[2]*i[5]+e[4],l=e[1]*i[4]+e[3]*i[5]+e[5];return t[0]=n,t[1]=r,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t}function Te(t,e,i){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+i[0],t[5]=e[5]+i[1],t}function Ce(t,e,i){var n=e[0],r=e[2],a=e[4],o=e[1],s=e[3],l=e[5],h=Math.sin(i),u=Math.cos(i);return t[0]=n*u+o*h,t[1]=-n*h+o*u,t[2]=r*u+s*h,t[3]=-r*h+u*s,t[4]=u*a+h*l,t[5]=u*l-h*a,t}function Ae(t,e,i){var n=i[0],r=i[1];return t[0]=e[0]*n,t[1]=e[1]*r,t[2]=e[2]*n,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*r,t}function De(t,e){var i=e[0],n=e[2],r=e[4],a=e[1],o=e[3],s=e[5],l=i*o-a*n;return l?(l=1/l,t[0]=o*l,t[1]=-a*l,t[2]=-n*l,t[3]=i*l,t[4]=(n*s-o*r)*l,t[5]=(a*r-i*s)*l,t):null}function ke(t){var e=be();return Me(e,t),e}function Pe(t){return t>Lg||-Lg>t}function Le(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null==t.loop?!1:t.loop,this.gap=t.gap||0,this.easing=t.easing||"Linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart,this._pausedTime=0,this._paused=!1}function Oe(t){return t=Math.round(t),0>t?0:t>255?255:t}function ze(t){return t=Math.round(t),0>t?0:t>360?360:t}function Ee(t){return 0>t?0:t>1?1:t}function Re(t){return Oe(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function Be(t){return Ee(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function Ne(t,e,i){return 0>i?i+=1:i>1&&(i-=1),1>6*i?t+(e-t)*i*6:1>2*i?e:2>3*i?t+(e-t)*(2/3-i)*6:t}function Fe(t,e,i){return t+(e-t)*i}function Ve(t,e,i,n,r){return t[0]=e,t[1]=i,t[2]=n,t[3]=r,t}function We(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Ge(t,e){Yg&&We(Yg,e),Yg=Xg.put(t,Yg||e.slice())}function He(t,e){if(t){e=e||[];var i=Xg.get(t);if(i)return We(e,i);t+="";var n=t.replace(/ /g,"").toLowerCase();if(n in Zg)return We(e,Zg[n]),Ge(t,e),e;if("#"!==n.charAt(0)){var r=n.indexOf("("),a=n.indexOf(")");if(-1!==r&&a+1===n.length){var o=n.substr(0,r),s=n.substr(r+1,a-(r+1)).split(","),l=1;switch(o){case"rgba":if(4!==s.length)return void Ve(e,0,0,0,1);l=Be(s.pop());case"rgb":return 3!==s.length?void Ve(e,0,0,0,1):(Ve(e,Re(s[0]),Re(s[1]),Re(s[2]),l),Ge(t,e),e);case"hsla":return 4!==s.length?void Ve(e,0,0,0,1):(s[3]=Be(s[3]),Ze(s,e),Ge(t,e),e);case"hsl":return 3!==s.length?void Ve(e,0,0,0,1):(Ze(s,e),Ge(t,e),e);default:return}}Ve(e,0,0,0,1)}else{if(4===n.length){var h=parseInt(n.substr(1),16);return h>=0&&4095>=h?(Ve(e,(3840&h)>>4|(3840&h)>>8,240&h|(240&h)>>4,15&h|(15&h)<<4,1),Ge(t,e),e):void Ve(e,0,0,0,1)}if(7===n.length){var h=parseInt(n.substr(1),16);return h>=0&&16777215>=h?(Ve(e,(16711680&h)>>16,(65280&h)>>8,255&h,1),Ge(t,e),e):void Ve(e,0,0,0,1)}}}}function Ze(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=Be(t[1]),r=Be(t[2]),a=.5>=r?r*(n+1):r+n-r*n,o=2*r-a;return e=e||[],Ve(e,Oe(255*Ne(o,a,i+1/3)),Oe(255*Ne(o,a,i)),Oe(255*Ne(o,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Xe(t){if(t){var e,i,n=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.min(n,r,a),s=Math.max(n,r,a),l=s-o,h=(s+o)/2;if(0===l)e=0,i=0;else{i=.5>h?l/(s+o):l/(2-s-o);var u=((s-n)/6+l/2)/l,c=((s-r)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-c:r===s?e=1/3+u-d:a===s&&(e=2/3+c-u),0>e&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,h];return null!=t[3]&&f.push(t[3]),f}}function Ye(t,e){var i=He(t);if(i){for(var n=0;3>n;n++)i[n]=0>e?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,i[n]>255?i[n]=255:t[n]<0&&(i[n]=0);return Qe(i,4===i.length?"rgba":"rgb")}}function je(t){var e=He(t);return e?((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1):void 0}function qe(t,e,i){if(e&&e.length&&t>=0&&1>=t){i=i||[];var n=t*(e.length-1),r=Math.floor(n),a=Math.ceil(n),o=e[r],s=e[a],l=n-r;return i[0]=Oe(Fe(o[0],s[0],l)),i[1]=Oe(Fe(o[1],s[1],l)),i[2]=Oe(Fe(o[2],s[2],l)),i[3]=Ee(Fe(o[3],s[3],l)),i}}function Ue(t,e,i){if(e&&e.length&&t>=0&&1>=t){var n=t*(e.length-1),r=Math.floor(n),a=Math.ceil(n),o=He(e[r]),s=He(e[a]),l=n-r,h=Qe([Oe(Fe(o[0],s[0],l)),Oe(Fe(o[1],s[1],l)),Oe(Fe(o[2],s[2],l)),Ee(Fe(o[3],s[3],l))],"rgba");return i?{color:h,leftIndex:r,rightIndex:a,value:n}:h}}function $e(t,e,i,n){return t=He(t),t?(t=Xe(t),null!=e&&(t[0]=ze(e)),null!=i&&(t[1]=Be(i)),null!=n&&(t[2]=Be(n)),Qe(Ze(t),"rgba")):void 0}function Ke(t,e){return t=He(t),t&&null!=e?(t[3]=Ee(e),Qe(t,"rgba")):void 0}function Qe(t,e){if(t&&t.length){var i=t[0]+","+t[1]+","+t[2];return("rgba"===e||"hsva"===e||"hsla"===e)&&(i+=","+t[3]),e+"("+i+")"}}function Je(t,e){return t[e]}function ti(t,e,i){t[e]=i}function ei(t,e,i){return(e-t)*i+t}function ii(t,e,i){return i>.5?e:t}function ni(t,e,i,n,r){var a=t.length;if(1==r)for(var o=0;a>o;o++)n[o]=ei(t[o],e[o],i);else for(var s=a&&t[0].length,o=0;a>o;o++)for(var l=0;s>l;l++)n[o][l]=ei(t[o][l],e[o][l],i)}function ri(t,e,i){var n=t.length,r=e.length;if(n!==r){var a=n>r;if(a)t.length=r;else for(var o=n;r>o;o++)t.push(1===i?e[o]:$g.call(e[o]))}for(var s=t[0]&&t[0].length,o=0;ol;l++)isNaN(t[o][l])&&(t[o][l]=e[o][l])}function ai(t,e,i){if(t===e)return!0;var n=t.length;if(n!==e.length)return!1;if(1===i){for(var r=0;n>r;r++)if(t[r]!==e[r])return!1}else for(var a=t[0].length,r=0;n>r;r++)for(var o=0;a>o;o++)if(t[r][o]!==e[r][o])return!1;return!0}function oi(t,e,i,n,r,a,o,s,l){var h=t.length;if(1==l)for(var u=0;h>u;u++)s[u]=si(t[u],e[u],i[u],n[u],r,a,o);else for(var c=t[0].length,u=0;h>u;u++)for(var d=0;c>d;d++)s[u][d]=si(t[u][d],e[u][d],i[u][d],n[u][d],r,a,o)}function si(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}function li(t){if(d(t)){var e=t.length;if(d(t[0])){for(var i=[],n=0;e>n;n++)i.push($g.call(t[n]));return i}return $g.call(t)}return t}function hi(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}function ui(t){var e=t[t.length-1].value;return d(e&&e[0])?2:1}function ci(t,e,i,n,r,a){var o=t._getter,s=t._setter,l="spline"===e,h=n.length;if(h){var u,c=n[0].value,f=d(c),p=!1,g=!1,v=f?ui(n):0;n.sort(function(t,e){return t.time-e.time}),u=n[h-1].time;for(var m=[],y=[],x=n[0].value,_=!0,w=0;h>w;w++){m.push(n[w].time/u);var b=n[w].value;if(f&&ai(b,x,v)||!f&&b===x||(_=!1),x=b,"string"==typeof b){var S=He(b);S?(b=S,p=!0):g=!0}y.push(b)}if(a||!_){for(var M=y[h-1],w=0;h-1>w;w++)f?ri(y[w],M,v):!isNaN(y[w])||isNaN(M)||g||p||(y[w]=M);f&&ri(o(t._target,r),M,v);var I,T,C,A,D,k,P=0,L=0;if(p)var O=[0,0,0,0];var z=function(t,e){var i;if(0>e)i=0;else if(L>e){for(I=Math.min(P+1,h-1),i=I;i>=0&&!(m[i]<=e);i--);i=Math.min(i,h-2)}else{for(i=P;h>i&&!(m[i]>e);i++);i=Math.min(i-1,h-2)}P=i,L=e;var n=m[i+1]-m[i];if(0!==n)if(T=(e-m[i])/n,l)if(A=y[i],C=y[0===i?i:i-1],D=y[i>h-2?h-1:i+1],k=y[i>h-3?h-1:i+2],f)oi(C,A,D,k,T,T*T,T*T*T,o(t,r),v);else{var a;if(p)a=oi(C,A,D,k,T,T*T,T*T*T,O,1),a=hi(O);else{if(g)return ii(A,D,T);a=si(C,A,D,k,T,T*T,T*T*T)}s(t,r,a)}else if(f)ni(y[i],y[i+1],T,o(t,r),v);else{var a;if(p)ni(y[i],y[i+1],T,O,1),a=hi(O);else{if(g)return ii(y[i],y[i+1],T);a=ei(y[i],y[i+1],T)}s(t,r,a)}},E=new Le({target:t._target,life:u,loop:t._loop,delay:t._delay,onframe:z,ondestroy:i});return e&&"spline"!==e&&(E.easing=e),E}}}function di(t,e,i,n,r,a,o,s){function l(){u--,u||a&&a()}b(n)?(a=r,r=n,n=0):w(r)?(a=r,r="linear",n=0):w(n)?(a=n,n=0):w(i)?(a=i,i=500):i||(i=500),t.stopAnimation(),fi(t,"",t,e,i,n,s);var h=t.animators.slice(),u=h.length;u||a&&a();for(var c=0;c0&&t.animate(e,!1).when(null==r?500:r,s).delay(a||0)}function pi(t,e,i,n){if(e){var r={};r[e]={},r[e][i]=n,t.attr(r)}else t.attr(i,n)}function gi(t,e,i,n){0>i&&(t+=i,i=-i),0>n&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}function vi(t){for(var e=0;t>=hv;)e|=1&t,t>>=1;return t+e}function mi(t,e,i,n){var r=e+1;if(r===i)return 1;if(n(t[r++],t[e])<0){for(;i>r&&n(t[r],t[r-1])<0;)r++;yi(t,e,r)}else for(;i>r&&n(t[r],t[r-1])>=0;)r++;return r-e}function yi(t,e,i){for(i--;i>e;){var n=t[e];t[e++]=t[i],t[i--]=n}}function xi(t,e,i,n,r){for(n===e&&n++;i>n;n++){for(var a,o=t[n],s=e,l=n;l>s;)a=s+l>>>1,r(o,t[a])<0?l=a:s=a+1;var h=n-s;switch(h){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;h>0;)t[s+h]=t[s+h-1],h--}t[s]=o}}function _i(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])>0){for(s=n-r;s>l&&a(t,e[i+r+l])>0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}else{for(s=r+1;s>l&&a(t,e[i+r-l])<=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var h=o;o=r-l,l=r-h}for(o++;l>o;){var u=o+(l-o>>>1);a(t,e[i+u])>0?o=u+1:l=u}return l}function wi(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])<0){for(s=r+1;s>l&&a(t,e[i+r-l])<0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var h=o;o=r-l,l=r-h}else{for(s=n-r;s>l&&a(t,e[i+r+l])>=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}for(o++;l>o;){var u=o+(l-o>>>1);a(t,e[i+u])<0?l=u:o=u+1}return l}function bi(t,e){function i(t,e){l[c]=t,h[c]=e,c+=1}function n(){for(;c>1;){var t=c-2;if(t>=1&&h[t-1]<=h[t]+h[t+1]||t>=2&&h[t-2]<=h[t]+h[t-1])h[t-1]h[t+1])break;a(t)}}function r(){for(;c>1;){var t=c-2;t>0&&h[t-1]=r?o(n,r,a,u):s(n,r,a,u)))}function o(i,n,r,a){var o=0;for(o=0;n>o;o++)d[o]=t[i+o];var s=0,l=r,h=i;if(t[h++]=t[l++],0!==--a){if(1===n){for(o=0;a>o;o++)t[h+o]=t[l+o];return void(t[h+a]=d[s])}for(var c,f,p,g=u;;){c=0,f=0,p=!1;do if(e(t[l],d[s])<0){if(t[h++]=t[l++],f++,c=0,0===--a){p=!0;break}}else if(t[h++]=d[s++],c++,f=0,1===--n){p=!0;break}while(g>(c|f));if(p)break;do{if(c=wi(t[l],d,s,n,0,e),0!==c){for(o=0;c>o;o++)t[h+o]=d[s+o];if(h+=c,s+=c,n-=c,1>=n){p=!0;break}}if(t[h++]=t[l++],0===--a){p=!0;break}if(f=_i(d[s],t,l,a,0,e),0!==f){for(o=0;f>o;o++)t[h+o]=t[l+o];if(h+=f,l+=f,a-=f,0===a){p=!0;break}}if(t[h++]=d[s++],1===--n){p=!0;break}g--}while(c>=uv||f>=uv);if(p)break;0>g&&(g=0),g+=2}if(u=g,1>u&&(u=1),1===n){for(o=0;a>o;o++)t[h+o]=t[l+o];t[h+a]=d[s]}else{if(0===n)throw new Error;for(o=0;n>o;o++)t[h+o]=d[s+o]}}else for(o=0;n>o;o++)t[h+o]=d[s+o]}function s(i,n,r,a){var o=0;for(o=0;a>o;o++)d[o]=t[r+o];var s=i+n-1,l=a-1,h=r+a-1,c=0,f=0;if(t[h--]=t[s--],0!==--n){if(1===a){for(h-=n,s-=n,f=h+1,c=s+1,o=n-1;o>=0;o--)t[f+o]=t[c+o];return void(t[h]=d[l])}for(var p=u;;){var g=0,v=0,m=!1;do if(e(d[l],t[s])<0){if(t[h--]=t[s--],g++,v=0,0===--n){m=!0;break}}else if(t[h--]=d[l--],v++,g=0,1===--a){m=!0;break}while(p>(g|v));if(m)break;do{if(g=n-wi(d[l],t,i,n,n-1,e),0!==g){for(h-=g,s-=g,n-=g,f=h+1,c=s+1,o=g-1;o>=0;o--)t[f+o]=t[c+o];if(0===n){m=!0;break}}if(t[h--]=d[l--],1===--a){m=!0;break}if(v=a-_i(t[s],d,0,a,a-1,e),0!==v){for(h-=v,l-=v,a-=v,f=h+1,c=l+1,o=0;v>o;o++)t[f+o]=d[c+o];if(1>=a){m=!0;break}}if(t[h--]=t[s--],0===--n){m=!0;break}p--}while(g>=uv||v>=uv);if(m)break;0>p&&(p=0),p+=2}if(u=p,1>u&&(u=1),1===a){for(h-=n,s-=n,f=h+1,c=s+1,o=n-1;o>=0;o--)t[f+o]=t[c+o];t[h]=d[l]}else{if(0===a)throw new Error;for(c=h-(a-1),o=0;a>o;o++)t[c+o]=d[o]}}else for(c=h-(a-1),o=0;a>o;o++)t[c+o]=d[o]}var l,h,u=uv,c=0,d=[];l=[],h=[],this.mergeRuns=n,this.forceMergeRuns=r,this.pushRun=i}function Si(t,e,i,n){i||(i=0),n||(n=t.length);var r=n-i;if(!(2>r)){var a=0;if(hv>r)return a=mi(t,i,n,e),void xi(t,i,n,i+a,e);var o=new bi(t,e),s=vi(r);do{if(a=mi(t,i,n,e),s>a){var l=r;l>s&&(l=s),xi(t,i,i+l,i+a,e),a=l}o.pushRun(i,a),o.mergeRuns(),r-=a,i+=a}while(0!==r);o.forceMergeRuns()}}function Mi(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function Ii(t,e,i){var n=null==e.x?0:e.x,r=null==e.x2?1:e.x2,a=null==e.y?0:e.y,o=null==e.y2?0:e.y2;e.global||(n=n*i.width+i.x,r=r*i.width+i.x,a=a*i.height+i.y,o=o*i.height+i.y),n=isNaN(n)?0:n,r=isNaN(r)?1:r,a=isNaN(a)?0:a,o=isNaN(o)?0:o;var s=t.createLinearGradient(n,a,r,o);return s}function Ti(t,e,i){var n=i.width,r=i.height,a=Math.min(n,r),o=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;e.global||(o=o*n+i.x,s=s*r+i.y,l*=a);var h=t.createRadialGradient(o,s,0,o,s,l);return h}function Ci(){return!1}function Ai(t,e,i){var n=cg(),r=e.getWidth(),a=e.getHeight(),o=n.style;return o&&(o.position="absolute",o.left=0,o.top=0,o.width=r+"px",o.height=a+"px",n.setAttribute("data-zr-dom-id",t)),n.width=r*i,n.height=a*i,n}function Di(t){if("string"==typeof t){var e=bv.get(t);return e&&e.image}return t}function ki(t,e,i,n,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!i)return e;var a=bv.get(t),o={hostEl:i,cb:n,cbPayload:r};return a?(e=a.image,!Li(e)&&a.pending.push(o)):(!e&&(e=new Image),e.onload=e.onerror=Pi,bv.put(t,e.__cachedImgObj={image:e,pending:[o]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Pi(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;ea;a++)r=Math.max(Yi(n[a],e).width,r);return Mv>Iv&&(Mv=0,Sv={}),Mv++,Sv[i]=r,r}function Ei(t,e,i,n,r,a,o){return a?Bi(t,e,i,n,r,a,o):Ri(t,e,i,n,r,o)}function Ri(t,e,i,n,r,a){var o=ji(t,e,r,a),s=zi(t,e);r&&(s+=r[1]+r[3]);var l=o.outerHeight,h=Ni(0,s,i),u=Fi(0,l,n),c=new gi(h,u,s,l);return c.lineHeight=o.lineHeight,c}function Bi(t,e,i,n,r,a,o){var s=qi(t,{rich:a,truncate:o,font:e,textAlign:i,textPadding:r}),l=s.outerWidth,h=s.outerHeight,u=Ni(0,l,i),c=Fi(0,h,n);return new gi(u,c,l,h)}function Ni(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function Fi(t,e,i){return"middle"===i?t-=e/2:"bottom"===i&&(t-=e),t}function Vi(t,e,i){var n=e.x,r=e.y,a=e.height,o=e.width,s=a/2,l="left",h="top";switch(t){case"left":n-=i,r+=s,l="right",h="middle";break;case"right":n+=i+o,r+=s,h="middle";break;case"top":n+=o/2,r-=i,l="center",h="bottom";break;case"bottom":n+=o/2,r+=a+i,l="center";break;case"inside":n+=o/2,r+=s,l="center",h="middle";break;case"insideLeft":n+=i,r+=s,h="middle";break;case"insideRight":n+=o-i,r+=s,l="right",h="middle";break;case"insideTop":n+=o/2,r+=i,l="center";break;case"insideBottom":n+=o/2,r+=a-i,l="center",h="bottom";break;case"insideTopLeft":n+=i,r+=i;break;case"insideTopRight":n+=o-i,r+=i,l="right";break;case"insideBottomLeft":n+=i,r+=a-i,h="bottom";break;case"insideBottomRight":n+=o-i,r+=a-i,l="right",h="bottom"}return{x:n,y:r,textAlign:l,textVerticalAlign:h}}function Wi(t,e,i,n,r){if(!e)return"";var a=(t+"").split("\n");r=Gi(e,i,n,r);for(var o=0,s=a.length;s>o;o++)a[o]=Hi(a[o],r);return a.join("\n")}function Gi(t,e,i,n){n=o({},n),n.font=e;var i=D(i,"...");n.maxIterations=D(n.maxIterations,2);var r=n.minChar=D(n.minChar,0);n.cnCharWidth=zi("国",e);var a=n.ascCharWidth=zi("a",e);n.placeholder=D(n.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;r>l&&s>=a;l++)s-=a;var h=zi(i);return h>s&&(i="",h=0),s=t-h,n.ellipsis=i,n.ellipsisWidth=h,n.contentWidth=s,n.containerWidth=t,n}function Hi(t,e){var i=e.containerWidth,n=e.font,r=e.contentWidth;if(!i)return"";var a=zi(t,n);if(i>=a)return t;for(var o=0;;o++){if(r>=a||o>=e.maxIterations){t+=e.ellipsis;break}var s=0===o?Zi(t,r,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*r/a):0;t=t.substr(0,s),a=zi(t,n)}return""===t&&(t=e.placeholder),t}function Zi(t,e,i,n){for(var r=0,a=0,o=t.length;o>a&&e>r;a++){var s=t.charCodeAt(a);r+=s>=0&&127>=s?i:n}return a}function Xi(t){return zi("国",t)}function Yi(t,e){return Av.measureText(t,e)}function ji(t,e,i,n){null!=t&&(t+="");var r=Xi(e),a=t?t.split("\n"):[],o=a.length*r,s=o;if(i&&(s+=i[0]+i[2]),t&&n){var l=n.outerHeight,h=n.outerWidth;if(null!=l&&s>l)t="",a=[];else if(null!=h)for(var u=Gi(h-(i?i[1]+i[3]:0),e,n.ellipsis,{minChar:n.minChar,placeholder:n.placeholder}),c=0,d=a.length;d>c;c++)a[c]=Hi(a[c],u)}return{lines:a,height:o,outerHeight:s,lineHeight:r}}function qi(t,e){var i={lines:[],width:0,height:0};if(null!=t&&(t+=""),!t)return i;for(var n,r=Tv.lastIndex=0;null!=(n=Tv.exec(t));){var a=n.index;a>r&&Ui(i,t.substring(r,a)),Ui(i,n[2],n[1]),r=Tv.lastIndex}rf)return{lines:[],width:0,height:0};x.textWidth=zi(x.text,b);var M=_.textWidth,I=null==M||"auto"===M;if("string"==typeof M&&"%"===M.charAt(M.length-1))x.percentWidth=M,h.push(x),M=0;else{if(I){M=x.textWidth;var T=_.textBackgroundColor,C=T&&T.image;C&&(C=Di(C),Li(C)&&(M=Math.max(M,C.width*S/C.height)))}var A=w?w[1]+w[3]:0;M+=A;var P=null!=d?d-m:null;null!=P&&M>P&&(!I||A>P?(x.text="",x.textWidth=M=0):(x.text=Wi(x.text,P-A,b,c.ellipsis,{minChar:c.minChar}),x.textWidth=zi(x.text,b),M=x.textWidth+A))}m+=x.width=M,_&&(v=Math.max(v,x.lineHeight))}g.width=m,g.lineHeight=v,s+=v,l=Math.max(l,m)}i.outerWidth=i.width=D(e.textWidth,l),i.outerHeight=i.height=D(e.textHeight,s),u&&(i.outerWidth+=u[1]+u[3],i.outerHeight+=u[0]+u[2]);for(var p=0;pl&&(o+=l,l=-l),0>h&&(s+=h,h=-h),"number"==typeof u?i=n=r=a=u:u instanceof Array?1===u.length?i=n=r=a=u[0]:2===u.length?(i=r=u[0],n=a=u[1]):3===u.length?(i=u[0],n=a=u[1],r=u[2]):(i=u[0],n=u[1],r=u[2],a=u[3]):i=n=r=a=0;var c;i+n>l&&(c=i+n,i*=l/c,n*=l/c),r+a>l&&(c=r+a,r*=l/c,a*=l/c),n+r>h&&(c=n+r,n*=h/c,r*=h/c),i+a>h&&(c=i+a,i*=h/c,a*=h/c),t.moveTo(o+i,s),t.lineTo(o+l-n,s),0!==n&&t.arc(o+l-n,s+n,n,-Math.PI/2,0),t.lineTo(o+l,s+h-r),0!==r&&t.arc(o+l-r,s+h-r,r,0,Math.PI/2),t.lineTo(o+a,s+h),0!==a&&t.arc(o+a,s+h-a,a,Math.PI/2,Math.PI),t.lineTo(o,s+i),0!==i&&t.arc(o+i,s+i,i,Math.PI,1.5*Math.PI)}function Qi(t){return Ji(t),f(t.rich,Ji),t}function Ji(t){if(t){t.font=$i(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||Dv[e]?e:"left";var i=t.textVerticalAlign||t.textBaseline;"center"===i&&(i="middle"),t.textVerticalAlign=null==i||kv[i]?i:"top";var n=t.textPadding;n&&(t.textPadding=L(t.textPadding))}}function tn(t,e,i,n,r,a){n.rich?nn(t,e,i,n,r):en(t,e,i,n,r,a)}function en(t,e,i,n,r,a){var o=a&&a.style,s=o&&"text"===a.type,l=n.font||Cv;s&&l===(o.font||Cv)||(e.font=l);var h=t.__computedFont;t.__styleFont!==l&&(t.__styleFont=l,h=t.__computedFont=e.font);var u=n.textPadding,c=t.__textCotentBlock;(!c||t.__dirtyText)&&(c=t.__textCotentBlock=ji(i,h,u,n.truncate));var d=c.outerHeight,f=c.lines,p=c.lineHeight,g=un(d,n,r),v=g.baseX,m=g.baseY,y=g.textAlign||"left",x=g.textVerticalAlign;an(e,n,r,v,m);var _=Fi(m,d,x),w=v,b=_,S=sn(n);if(S||u){var M=zi(i,h),I=M;u&&(I+=u[1]+u[3]);var T=Ni(v,I,y);S&&ln(t,e,n,T,_,I,d),u&&(w=gn(v,y,u),b+=u[0])}e.textAlign=y,e.textBaseline="middle";for(var C=0;CT&&(_=b[T],!_.textAlign||"left"===_.textAlign);)on(t,e,_,n,M,m,C,"left"),I-=_.width,C+=_.width,T++;for(;D>=0&&(_=b[D],"right"===_.textAlign);)on(t,e,_,n,M,m,A,"right"),I-=_.width,A-=_.width,D--;for(C+=(a-(C-v)-(y-A)-I)/2;D>=T;)_=b[T],on(t,e,_,n,M,m,C+_.width/2,"center"),C+=_.width,T++;m+=M}}function an(t,e,i,n,r){if(i&&e.textRotation){var a=e.textOrigin;"center"===a?(n=i.width/2+i.x,r=i.height/2+i.y):a&&(n=a[0]+i.x,r=a[1]+i.y),t.translate(n,r),t.rotate(-e.textRotation),t.translate(-n,-r)}}function on(t,e,i,n,r,a,o,s){var l=n.rich[i.styleName]||{};l.text=i.text;var h=i.textVerticalAlign,u=a+r/2;"top"===h?u=a+i.height/2:"bottom"===h&&(u=a+r-i.height/2),!i.isLineHolder&&sn(l)&&ln(t,e,l,"right"===s?o-i.width:"center"===s?o-i.width/2:o,u-i.height/2,i.width,i.height);var c=i.textPadding;c&&(o=gn(o,s,c),u-=i.height/2-c[2]-i.textHeight/2),cn(e,"shadowBlur",k(l.textShadowBlur,n.textShadowBlur,0)),cn(e,"shadowColor",l.textShadowColor||n.textShadowColor||"transparent"),cn(e,"shadowOffsetX",k(l.textShadowOffsetX,n.textShadowOffsetX,0)),cn(e,"shadowOffsetY",k(l.textShadowOffsetY,n.textShadowOffsetY,0)),cn(e,"textAlign",s),cn(e,"textBaseline","middle"),cn(e,"font",i.font||Cv);var d=dn(l.textStroke||n.textStroke,p),f=fn(l.textFill||n.textFill),p=D(l.textStrokeWidth,n.textStrokeWidth);d&&(cn(e,"lineWidth",p),cn(e,"strokeStyle",d),e.strokeText(i.text,o,u)),f&&(cn(e,"fillStyle",f),e.fillText(i.text,o,u))}function sn(t){return t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor}function ln(t,e,i,n,r,a,o){var s=i.textBackgroundColor,l=i.textBorderWidth,h=i.textBorderColor,u=b(s);if(cn(e,"shadowBlur",i.textBoxShadowBlur||0),cn(e,"shadowColor",i.textBoxShadowColor||"transparent"),cn(e,"shadowOffsetX",i.textBoxShadowOffsetX||0),cn(e,"shadowOffsetY",i.textBoxShadowOffsetY||0),u||l&&h){e.beginPath();var c=i.textBorderRadius;c?Ki(e,{x:n,y:r,width:a,height:o,r:c}):e.rect(n,r,a,o),e.closePath()}if(u)if(cn(e,"fillStyle",s),null!=i.fillOpacity){var d=e.globalAlpha;e.globalAlpha=i.fillOpacity*i.opacity,e.fill(),e.globalAlpha=d}else e.fill();else if(w(s))cn(e,"fillStyle",s(i)),e.fill();else if(S(s)){var f=s.image;f=ki(f,null,t,hn,s),f&&Li(f)&&e.drawImage(f,n,r,a,o)}if(l&&h)if(cn(e,"lineWidth",l),cn(e,"strokeStyle",h),null!=i.strokeOpacity){var d=e.globalAlpha;e.globalAlpha=i.strokeOpacity*i.opacity,e.stroke(),e.globalAlpha=d}else e.stroke()}function hn(t,e){e.image=t}function un(t,e,i){var n=e.x||0,r=e.y||0,a=e.textAlign,o=e.textVerticalAlign;if(i){var s=e.textPosition;if(s instanceof Array)n=i.x+pn(s[0],i.width),r=i.y+pn(s[1],i.height);else{var l=Vi(s,i,e.textDistance);n=l.x,r=l.y,a=a||l.textAlign,o=o||l.textVerticalAlign}var h=e.textOffset;h&&(n+=h[0],r+=h[1])}return{baseX:n,baseY:r,textAlign:a,textVerticalAlign:o}}function cn(t,e,i){return t[e]=fv(t,e,i),t[e]}function dn(t,e){return null==t||0>=e||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function fn(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function pn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function gn(t,e,i){return"right"===e?t-i[1]:"center"===e?t+i[3]/2-i[1]/2:t+i[3]}function vn(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function mn(t){t=t||{},rv.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new gv(t.style,this),this._rect=null,this.__clipPaths=[] +}function yn(t){mn.call(this,t)}function xn(t){return parseInt(t,10)}function _n(t){return t?t.__builtin__?!0:"function"!=typeof t.resize||"function"!=typeof t.refresh?!1:!0:!1}function wn(t,e,i){return Nv.copy(t.getBoundingRect()),t.transform&&Nv.applyTransform(t.transform),Fv.width=e,Fv.height=i,!Nv.intersect(Fv)}function bn(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;in;n++){var a=i[n];!t.emphasis[e].hasOwnProperty(a)&&t[e].hasOwnProperty(a)&&(t.emphasis[e][a]=t[e][a])}}}function Vn(t){return!rm(t)||am(t)||t instanceof Date?t:t.value}function Wn(t){return rm(t)&&!(t instanceof Array)}function Gn(t,e){e=(e||[]).slice();var i=p(t||[],function(t){return{exist:t}});return nm(e,function(t,n){if(rm(t)){for(var r=0;r=i.length&&i.push({option:t})}}),i}function Hn(t){var e=N();nm(t,function(t){var i=t.exist;i&&e.set(i.id,t)}),nm(t,function(t){var i=t.option;O(!i||null==i.id||!e.get(i.id)||e.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&e.set(i.id,t),!t.keyInfo&&(t.keyInfo={})}),nm(t,function(t,i){var n=t.exist,r=t.option,a=t.keyInfo;if(rm(r)){if(a.name=null!=r.name?r.name+"":n?n.name:om+i,n)a.id=n.id;else if(null!=r.id)a.id=r.id+"";else{var o=0;do a.id="\x00"+a.name+"\x00"+o++;while(e.get(a.id))}e.set(a.id,t)}})}function Zn(t){var e=t.name;return!(!e||!e.indexOf(om))}function Xn(t){return rm(t)&&t.id&&0===(t.id+"").indexOf("\x00_ec_\x00")}function Yn(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?_(e.dataIndex)?p(e.dataIndex,function(e){return t.indexOfRawIndex(e)}):t.indexOfRawIndex(e.dataIndex):null!=e.name?_(e.name)?p(e.name,function(e){return t.indexOfName(e)}):t.indexOfName(e.name):void 0}function jn(){var t="__\x00ec_inner_"+lm++ +"_"+Math.random().toFixed(5);return function(e){return e[t]||(e[t]={})}}function qn(t,e,i){if(b(e)){var n={};n[e+"Index"]=0,e=n}var r=i&&i.defaultMainType;!r||Un(e,r+"Index")||Un(e,r+"Id")||Un(e,r+"Name")||(e[r+"Index"]=0);var a={};return nm(e,function(n,r){var n=e[r];if("dataIndex"===r||"dataIndexInside"===r)return void(a[r]=n);var o=r.match(/^(\w+)(Index|Id|Name)$/)||[],s=o[1],l=(o[2]||"").toLowerCase();if(!(!s||!l||null==n||"index"===l&&"none"===n||i&&i.includeMainTypes&&h(i.includeMainTypes,s)<0)){var u={mainType:s};("index"!==l||"all"!==n)&&(u[l]=n);var c=t.queryComponents(u);a[s+"Models"]=c,a[s+"Model"]=c[0]}}),a}function Un(t,e){return t&&t.hasOwnProperty(e)}function $n(t,e,i){t.setAttribute?t.setAttribute(e,i):t[e]=i}function Kn(t,e){return t.getAttribute?t.getAttribute(e):t[e]}function Qn(t){return"auto"===t?tg.domSupported?"html":"richText":t||"html"}function Jn(t){var e={main:"",sub:""};return t&&(t=t.split(hm),e.main=t[0]||"",e.sub=t[1]||""),e}function tr(t){O(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function er(t){t.$constructor=t,t.extend=function(t){var e=this,i=function(){t.$constructor?t.$constructor.apply(this,arguments):e.apply(this,arguments)};return o(i.prototype,t),i.extend=this.extend,i.superCall=nr,i.superApply=rr,u(i,this),i.superClass=e,i}}function ir(t){var e=["__\x00is_clz",cm++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function nr(t,e){var i=P(arguments,2);return this.superClass.prototype[e].apply(t,i)}function rr(t,e,i){return this.superClass.prototype[e].apply(t,i)}function ar(t,e){function i(t){var e=n[t.main];return e&&e[um]||(e=n[t.main]={},e[um]=!0),e}e=e||{};var n={};if(t.registerClass=function(t,e){if(e)if(tr(e),e=Jn(e),e.sub){if(e.sub!==um){var r=i(e);r[e.sub]=t}}else n[e.main]=t;return t},t.getClass=function(t,e,i){var r=n[t];if(r&&r[um]&&(r=e?r[e]:null),i&&!r)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){t=Jn(t);var e=[],i=n[t.main];return i&&i[um]?f(i,function(t,i){i!==um&&e.push(t)}):e.push(i),e},t.hasClass=function(t){return t=Jn(t),!!n[t.main]},t.getAllClassMainTypes=function(){var t=[];return f(n,function(e,i){t.push(i)}),t},t.hasSubTypes=function(t){t=Jn(t);var e=n[t.main];return e&&e[um]},t.parseClassType=Jn,e.registerWhenExtend){var r=t.extend;r&&(t.extend=function(e){var i=r.call(this,e);return t.registerClass(i,e.type)})}return t}function or(t){return t>-xm&&xm>t}function sr(t){return t>xm||-xm>t}function lr(t,e,i,n,r){var a=1-r;return a*a*(a*t+3*r*e)+r*r*(r*n+3*a*i)}function hr(t,e,i,n,r){var a=1-r;return 3*(((e-t)*a+2*(i-e)*r)*a+(n-i)*r*r)}function ur(t,e,i,n,r,a){var o=n+3*(e-i)-t,s=3*(i-2*e+t),l=3*(e-t),h=t-r,u=s*s-3*o*l,c=s*l-9*o*h,d=l*l-3*s*h,f=0;if(or(u)&&or(c))if(or(s))a[0]=0;else{var p=-l/s;p>=0&&1>=p&&(a[f++]=p)}else{var g=c*c-4*u*d;if(or(g)){var v=c/u,p=-s/o+v,m=-v/2;p>=0&&1>=p&&(a[f++]=p),m>=0&&1>=m&&(a[f++]=m)}else if(g>0){var y=ym(g),x=u*s+1.5*o*(-c+y),_=u*s+1.5*o*(-c-y);x=0>x?-mm(-x,bm):mm(x,bm),_=0>_?-mm(-_,bm):mm(_,bm);var p=(-s-(x+_))/(3*o);p>=0&&1>=p&&(a[f++]=p)}else{var w=(2*u*s-3*o*c)/(2*ym(u*u*u)),b=Math.acos(w)/3,S=ym(u),M=Math.cos(b),p=(-s-2*S*M)/(3*o),m=(-s+S*(M+wm*Math.sin(b)))/(3*o),I=(-s+S*(M-wm*Math.sin(b)))/(3*o);p>=0&&1>=p&&(a[f++]=p),m>=0&&1>=m&&(a[f++]=m),I>=0&&1>=I&&(a[f++]=I)}}return f}function cr(t,e,i,n,r){var a=6*i-12*e+6*t,o=9*e+3*n-3*t-9*i,s=3*e-3*t,l=0;if(or(o)){if(sr(a)){var h=-s/a;h>=0&&1>=h&&(r[l++]=h)}}else{var u=a*a-4*o*s;if(or(u))r[0]=-a/(2*o);else if(u>0){var c=ym(u),h=(-a+c)/(2*o),d=(-a-c)/(2*o);h>=0&&1>=h&&(r[l++]=h),d>=0&&1>=d&&(r[l++]=d)}}return l}function dr(t,e,i,n,r,a){var o=(e-t)*r+t,s=(i-e)*r+e,l=(n-i)*r+i,h=(s-o)*r+o,u=(l-s)*r+s,c=(u-h)*r+h;a[0]=t,a[1]=o,a[2]=h,a[3]=c,a[4]=c,a[5]=u,a[6]=l,a[7]=n}function fr(t,e,i,n,r,a,o,s,l,h,u){var c,d,f,p,g,v=.005,m=1/0;Sm[0]=l,Sm[1]=h;for(var y=0;1>y;y+=.05)Mm[0]=lr(t,i,r,o,y),Mm[1]=lr(e,n,a,s,y),p=xg(Sm,Mm),m>p&&(c=y,m=p);m=1/0;for(var x=0;32>x&&!(_m>v);x++)d=c-v,f=c+v,Mm[0]=lr(t,i,r,o,d),Mm[1]=lr(e,n,a,s,d),p=xg(Mm,Sm),d>=0&&m>p?(c=d,m=p):(Im[0]=lr(t,i,r,o,f),Im[1]=lr(e,n,a,s,f),g=xg(Im,Sm),1>=f&&m>g?(c=f,m=g):v*=.5);return u&&(u[0]=lr(t,i,r,o,c),u[1]=lr(e,n,a,s,c)),ym(m)}function pr(t,e,i,n){var r=1-n;return r*(r*t+2*n*e)+n*n*i}function gr(t,e,i,n){return 2*((1-n)*(e-t)+n*(i-e))}function vr(t,e,i,n,r){var a=t-2*e+i,o=2*(e-t),s=t-n,l=0;if(or(a)){if(sr(o)){var h=-s/o;h>=0&&1>=h&&(r[l++]=h)}}else{var u=o*o-4*a*s;if(or(u)){var h=-o/(2*a);h>=0&&1>=h&&(r[l++]=h)}else if(u>0){var c=ym(u),h=(-o+c)/(2*a),d=(-o-c)/(2*a);h>=0&&1>=h&&(r[l++]=h),d>=0&&1>=d&&(r[l++]=d)}}return l}function mr(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function yr(t,e,i,n,r){var a=(e-t)*n+t,o=(i-e)*n+e,s=(o-a)*n+a;r[0]=t,r[1]=a,r[2]=s,r[3]=s,r[4]=o,r[5]=i}function xr(t,e,i,n,r,a,o,s,l){var h,u=.005,c=1/0;Sm[0]=o,Sm[1]=s;for(var d=0;1>d;d+=.05){Mm[0]=pr(t,i,r,d),Mm[1]=pr(e,n,a,d);var f=xg(Sm,Mm);c>f&&(h=d,c=f)}c=1/0;for(var p=0;32>p&&!(_m>u);p++){var g=h-u,v=h+u;Mm[0]=pr(t,i,r,g),Mm[1]=pr(e,n,a,g);var f=xg(Mm,Sm);if(g>=0&&c>f)h=g,c=f;else{Im[0]=pr(t,i,r,v),Im[1]=pr(e,n,a,v);var m=xg(Im,Sm);1>=v&&c>m?(h=v,c=m):u*=.5}}return l&&(l[0]=pr(t,i,r,h),l[1]=pr(e,n,a,h)),ym(c)}function _r(t,e,i){if(0!==t.length){var n,r=t[0],a=r[0],o=r[0],s=r[1],l=r[1];for(n=1;nu;u++){var p=d(t,i,r,o,zm[u]);l[0]=Tm(p,l[0]),h[0]=Cm(p,h[0])}for(f=c(e,n,a,s,Em),u=0;f>u;u++){var g=d(e,n,a,s,Em[u]);l[1]=Tm(g,l[1]),h[1]=Cm(g,h[1])}l[0]=Tm(t,l[0]),h[0]=Cm(t,h[0]),l[0]=Tm(o,l[0]),h[0]=Cm(o,h[0]),l[1]=Tm(e,l[1]),h[1]=Cm(e,h[1]),l[1]=Tm(s,l[1]),h[1]=Cm(s,h[1])}function Sr(t,e,i,n,r,a,o,s){var l=mr,h=pr,u=Cm(Tm(l(t,i,r),1),0),c=Cm(Tm(l(e,n,a),1),0),d=h(t,i,r,u),f=h(e,n,a,c);o[0]=Tm(t,r,d),o[1]=Tm(e,a,f),s[0]=Cm(t,r,d),s[1]=Cm(e,a,f)}function Mr(t,e,i,n,r,a,o,s,l){var h=oe,u=se,c=Math.abs(r-a);if(1e-4>c%km&&c>1e-4)return s[0]=t-i,s[1]=e-n,l[0]=t+i,void(l[1]=e+n);if(Pm[0]=Dm(r)*i+t,Pm[1]=Am(r)*n+e,Lm[0]=Dm(a)*i+t,Lm[1]=Am(a)*n+e,h(s,Pm,Lm),u(l,Pm,Lm),r%=km,0>r&&(r+=km),a%=km,0>a&&(a+=km),r>a&&!o?a+=km:a>r&&o&&(r+=km),o){var d=a;a=r,r=d}for(var f=0;a>f;f+=Math.PI/2)f>r&&(Om[0]=Dm(f)*i+t,Om[1]=Am(f)*n+e,h(s,Om,s),u(l,Om,l))}function Ir(t,e,i,n,r,a,o){if(0===r)return!1;var s=r,l=0,h=t;if(o>e+s&&o>n+s||e-s>o&&n-s>o||a>t+s&&a>i+s||t-s>a&&i-s>a)return!1;if(t===i)return Math.abs(a-t)<=s/2;l=(e-n)/(t-i),h=(t*n-i*e)/(t-i);var u=l*a-o+h,c=u*u/(l*l+1);return s/2*s/2>=c}function Tr(t,e,i,n,r,a,o,s,l,h,u){if(0===l)return!1;var c=l;if(u>e+c&&u>n+c&&u>a+c&&u>s+c||e-c>u&&n-c>u&&a-c>u&&s-c>u||h>t+c&&h>i+c&&h>r+c&&h>o+c||t-c>h&&i-c>h&&r-c>h&&o-c>h)return!1;var d=fr(t,e,i,n,r,a,o,s,h,u,null);return c/2>=d}function Cr(t,e,i,n,r,a,o,s,l){if(0===o)return!1;var h=o;if(l>e+h&&l>n+h&&l>a+h||e-h>l&&n-h>l&&a-h>l||s>t+h&&s>i+h&&s>r+h||t-h>s&&i-h>s&&r-h>s)return!1;var u=xr(t,e,i,n,r,a,s,l,null);return h/2>=u}function Ar(t){return t%=Um,0>t&&(t+=Um),t}function Dr(t,e,i,n,r,a,o,s,l){if(0===o)return!1;var h=o;s-=t,l-=e;var u=Math.sqrt(s*s+l*l);if(u-h>i||i>u+h)return!1;if(Math.abs(n-r)%$m<1e-4)return!0;if(a){var c=n;n=Ar(r),r=Ar(c)}else n=Ar(n),r=Ar(r);n>r&&(r+=$m);var d=Math.atan2(l,s);return 0>d&&(d+=$m),d>=n&&r>=d||d+$m>=n&&r>=d+$m}function kr(t,e,i,n,r,a){if(a>e&&a>n||e>a&&n>a)return 0;if(n===e)return 0;var o=e>n?1:-1,s=(a-e)/(n-e);(1===s||0===s)&&(o=e>n?.5:-.5);var l=s*(i-t)+t;return l===r?1/0:l>r?o:0}function Pr(t,e){return Math.abs(t-e)e&&h>n&&h>a&&h>s||e>h&&n>h&&a>h&&s>h)return 0;var u=ur(e,n,a,s,h,ty);if(0===u)return 0;for(var c,d,f=0,p=-1,g=0;u>g;g++){var v=ty[g],m=0===v||1===v?.5:1,y=lr(t,i,r,o,v);l>y||(0>p&&(p=cr(e,n,a,s,ey),ey[1]1&&Lr(),c=lr(e,n,a,s,ey[0]),p>1&&(d=lr(e,n,a,s,ey[1]))),f+=2==p?vc?m:-m:vd?m:-m:d>s?m:-m:vc?m:-m:c>s?m:-m)}return f}function zr(t,e,i,n,r,a,o,s){if(s>e&&s>n&&s>a||e>s&&n>s&&a>s)return 0;var l=vr(e,n,a,s,ty);if(0===l)return 0;var h=mr(e,n,a);if(h>=0&&1>=h){for(var u=0,c=pr(e,n,a,h),d=0;l>d;d++){var f=0===ty[d]||1===ty[d]?.5:1,p=pr(t,i,r,ty[d]);o>p||(u+=ty[d]c?f:-f:c>a?f:-f)}return u}var f=0===ty[0]||1===ty[0]?.5:1,p=pr(t,i,r,ty[0]);return o>p?0:e>a?f:-f}function Er(t,e,i,n,r,a,o,s){if(s-=e,s>i||-i>s)return 0;var l=Math.sqrt(i*i-s*s);ty[0]=-l,ty[1]=l;var h=Math.abs(n-r);if(1e-4>h)return 0;if(1e-4>h%Qm){n=0,r=Qm;var u=a?1:-1;return o>=ty[0]+t&&o<=ty[1]+t?u:0}if(a){var l=n;n=Ar(r),r=Ar(l)}else n=Ar(n),r=Ar(r);n>r&&(r+=Qm);for(var c=0,d=0;2>d;d++){var f=ty[d];if(f+t>o){var p=Math.atan2(s,f),u=a?1:-1;0>p&&(p=Qm+p),(p>=n&&r>=p||p+Qm>=n&&r>=p+Qm)&&(p>Math.PI/2&&p<1.5*Math.PI&&(u=-u),c+=u)}}return c}function Rr(t,e,i,n,r){for(var a=0,o=0,s=0,l=0,h=0,u=0;u1&&(i||(a+=kr(o,s,l,h,n,r))),1==u&&(o=t[u],s=t[u+1],l=o,h=s),c){case Km.M:l=t[u++],h=t[u++],o=l,s=h;break;case Km.L:if(i){if(Ir(o,s,t[u],t[u+1],e,n,r))return!0}else a+=kr(o,s,t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.C:if(i){if(Tr(o,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],e,n,r))return!0}else a+=Or(o,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.Q:if(i){if(Cr(o,s,t[u++],t[u++],t[u],t[u+1],e,n,r))return!0}else a+=zr(o,s,t[u++],t[u++],t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.A:var d=t[u++],f=t[u++],p=t[u++],g=t[u++],v=t[u++],m=t[u++],y=(t[u++],1-t[u++]),x=Math.cos(v)*p+d,_=Math.sin(v)*g+f;u>1?a+=kr(o,s,x,_,n,r):(l=x,h=_);var w=(n-d)*g/p+d;if(i){if(Dr(d,f,g,v,v+m,y,e,w,r))return!0}else a+=Er(d,f,g,v,v+m,y,w,r);o=Math.cos(v+m)*p+d,s=Math.sin(v+m)*g+f;break;case Km.R:l=o=t[u++],h=s=t[u++];var b=t[u++],S=t[u++],x=l+b,_=h+S;if(i){if(Ir(l,h,x,h,e,n,r)||Ir(x,h,x,_,e,n,r)||Ir(x,_,l,_,e,n,r)||Ir(l,_,l,h,e,n,r))return!0}else a+=kr(x,h,x,_,n,r),a+=kr(l,_,l,h,n,r);break;case Km.Z:if(i){if(Ir(o,s,l,h,e,n,r))return!0}else a+=kr(o,s,l,h,n,r);o=l,s=h}}return i||Pr(s,h)||(a+=kr(o,s,l,h,n,r)||0),0!==a}function Br(t,e,i){return Rr(t,0,!1,e,i)}function Nr(t,e,i,n){return Rr(t,e,!0,i,n)}function Fr(t){mn.call(this,t),this.path=null}function Vr(t,e,i,n,r,a,o,s,l,h,u){var c=l*(fy/180),d=dy(c)*(t-i)/2+cy(c)*(e-n)/2,f=-1*cy(c)*(t-i)/2+dy(c)*(e-n)/2,p=d*d/(o*o)+f*f/(s*s);p>1&&(o*=uy(p),s*=uy(p));var g=(r===a?-1:1)*uy((o*o*s*s-o*o*f*f-s*s*d*d)/(o*o*f*f+s*s*d*d))||0,v=g*o*f/s,m=g*-s*d/o,y=(t+i)/2+dy(c)*v-cy(c)*m,x=(e+n)/2+cy(c)*v+dy(c)*m,_=vy([1,0],[(d-v)/o,(f-m)/s]),w=[(d-v)/o,(f-m)/s],b=[(-1*d-v)/o,(-1*f-m)/s],S=vy(w,b);gy(w,b)<=-1&&(S=fy),gy(w,b)>=1&&(S=0),0===a&&S>0&&(S-=2*fy),1===a&&0>S&&(S+=2*fy),u.addData(h,y,x,o,s,_,S,c,a)}function Wr(t){if(!t)return new qm;for(var e,i=0,n=0,r=i,a=n,o=new qm,s=qm.CMD,l=t.match(my),h=0;hg;g++)f[g]=parseFloat(f[g]);for(var v=0;p>v;){var m,y,x,_,w,b,S,M=i,I=n;switch(d){case"l":i+=f[v++],n+=f[v++],u=s.L,o.addData(u,i,n);break;case"L":i=f[v++],n=f[v++],u=s.L,o.addData(u,i,n);break;case"m":i+=f[v++],n+=f[v++],u=s.M,o.addData(u,i,n),r=i,a=n,d="l";break;case"M":i=f[v++],n=f[v++],u=s.M,o.addData(u,i,n),r=i,a=n,d="L";break;case"h":i+=f[v++],u=s.L,o.addData(u,i,n);break;case"H":i=f[v++],u=s.L,o.addData(u,i,n);break;case"v":n+=f[v++],u=s.L,o.addData(u,i,n);break;case"V":n=f[v++],u=s.L,o.addData(u,i,n);break;case"C":u=s.C,o.addData(u,f[v++],f[v++],f[v++],f[v++],f[v++],f[v++]),i=f[v-2],n=f[v-1];break;case"c":u=s.C,o.addData(u,f[v++]+i,f[v++]+n,f[v++]+i,f[v++]+n,f[v++]+i,f[v++]+n),i+=f[v-2],n+=f[v-1];break;case"S":m=i,y=n;var T=o.len(),C=o.data;e===s.C&&(m+=i-C[T-4],y+=n-C[T-3]),u=s.C,M=f[v++],I=f[v++],i=f[v++],n=f[v++],o.addData(u,m,y,M,I,i,n);break;case"s":m=i,y=n;var T=o.len(),C=o.data;e===s.C&&(m+=i-C[T-4],y+=n-C[T-3]),u=s.C,M=i+f[v++],I=n+f[v++],i+=f[v++],n+=f[v++],o.addData(u,m,y,M,I,i,n);break;case"Q":M=f[v++],I=f[v++],i=f[v++],n=f[v++],u=s.Q,o.addData(u,M,I,i,n);break;case"q":M=f[v++]+i,I=f[v++]+n,i+=f[v++],n+=f[v++],u=s.Q,o.addData(u,M,I,i,n);break;case"T":m=i,y=n;var T=o.len(),C=o.data;e===s.Q&&(m+=i-C[T-4],y+=n-C[T-3]),i=f[v++],n=f[v++],u=s.Q,o.addData(u,m,y,i,n);break;case"t":m=i,y=n;var T=o.len(),C=o.data;e===s.Q&&(m+=i-C[T-4],y+=n-C[T-3]),i+=f[v++],n+=f[v++],u=s.Q,o.addData(u,m,y,i,n);break;case"A":x=f[v++],_=f[v++],w=f[v++],b=f[v++],S=f[v++],M=i,I=n,i=f[v++],n=f[v++],u=s.A,Vr(M,I,i,n,b,S,x,_,w,u,o);break;case"a":x=f[v++],_=f[v++],w=f[v++],b=f[v++],S=f[v++],M=i,I=n,i+=f[v++],n+=f[v++],u=s.A,Vr(M,I,i,n,b,S,x,_,w,u,o)}}("z"===d||"Z"===d)&&(u=s.Z,o.addData(u),i=r,n=a),e=u}return o.toStatic(),o}function Gr(t,e){var i=Wr(t);return e=e||{},e.buildPath=function(t){if(t.setData){t.setData(i.data);var e=t.getContext();e&&t.rebuildPath(e)}else{var e=t;i.rebuildPath(e)}},e.applyTransform=function(t){hy(i,t),this.dirty(!0)},e}function Hr(t,e){return new Fr(Gr(t,e))}function Zr(t,e){return Fr.extend(Gr(t,e))}function Xr(t,e){for(var i=[],n=t.length,r=0;n>r;r++){var a=t[r];a.path||a.createPathProxy(),a.__dirtyPath&&a.buildPath(a.path,a.shape,!0),i.push(a.path)}var o=new Fr(e);return o.createPathProxy(),o.buildPath=function(t){t.appendPath(i);var e=t.getContext();e&&t.rebuildPath(e)},o}function Yr(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}function jr(t,e,i){var n=e.points,r=e.smooth;if(n&&n.length>=2){if(r&&"spline"!==r){var a=Ty(n,r,i,e.smoothConstraint);t.moveTo(n[0][0],n[0][1]);for(var o=n.length,s=0;(i?o:o-1)>s;s++){var l=a[2*s],h=a[2*s+1],u=n[(s+1)%o];t.bezierCurveTo(l[0],l[1],h[0],h[1],u[0],u[1])}}else{"spline"===r&&(n=Iy(n,i)),t.moveTo(n[0][0],n[0][1]);for(var s=1,c=n.length;c>s;s++)t.lineTo(n[s][0],n[s][1])}i&&t.closePath()}}function qr(t,e,i){var n=t.cpx2,r=t.cpy2;return null===n||null===r?[(i?hr:lr)(t.x1,t.cpx1,t.cpx2,t.x2,e),(i?hr:lr)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(i?gr:pr)(t.x1,t.cpx1,t.x2,e),(i?gr:pr)(t.y1,t.cpy1,t.y2,e)]}function Ur(t){mn.call(this,t),this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.notClear=!0}function $r(t){return Fr.extend(t)}function Kr(t,e){return Zr(t,e)}function Qr(t,e,i,n){var r=Hr(t,e);return i&&("center"===n&&(i=ta(i,r.getBoundingRect())),ea(r,i)),r}function Jr(t,e,i){var n=new yn({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===i){var r={width:t.width,height:t.height};n.setStyle(ta(e,r))}}});return n}function ta(t,e){var i,n=e.width/e.height,r=t.height*n;r<=t.width?i=t.height:(r=t.width,i=r/n);var a=t.x+t.width/2,o=t.y+t.height/2;return{x:a-r/2,y:o-i/2,width:r,height:i}}function ea(t,e){if(t.applyTransform){var i=t.getBoundingRect(),n=i.calculateTransform(e);t.applyTransform(n)}}function ia(t){var e=t.shape,i=t.style.lineWidth;return Fy(2*e.x1)===Fy(2*e.x2)&&(e.x1=e.x2=ra(e.x1,i,!0)),Fy(2*e.y1)===Fy(2*e.y2)&&(e.y1=e.y2=ra(e.y1,i,!0)),t}function na(t){var e=t.shape,i=t.style.lineWidth,n=e.x,r=e.y,a=e.width,o=e.height;return e.x=ra(e.x,i,!0),e.y=ra(e.y,i,!0),e.width=Math.max(ra(n+a,i,!1)-e.x,0===a?0:1),e.height=Math.max(ra(r+o,i,!1)-e.y,0===o?0:1),t}function ra(t,e,i){var n=Fy(2*t);return(n+Fy(e))%2===0?n/2:(n+(i?1:-1))/2}function aa(t){return null!=t&&"none"!==t}function oa(t){if("string"!=typeof t)return t;var e=Zy.get(t);return e||(e=Ye(t,-.1),1e4>Xy&&(Zy.set(t,e),Xy++)),e}function sa(t){if(t.__hoverStlDirty){t.__hoverStlDirty=!1;var e=t.__hoverStl;if(!e)return void(t.__normalStl=null);var i=t.__normalStl={},n=t.style;for(var r in e)null!=e[r]&&(i[r]=n[r]);i.fill=n.fill,i.stroke=n.stroke}}function la(t){var e=t.__hoverStl;if(e&&!t.__highlighted){var i=t.useHoverLayer;t.__highlighted=i?"layer":"plain";var n=t.__zr;if(n||!i){var r=t,a=t.style;i&&(r=n.addHover(t),a=r.style),Da(a),i||sa(r),a.extendFrom(e),ha(a,e,"fill"),ha(a,e,"stroke"),Aa(a),i||(t.dirty(!1),t.z2+=1)}}}function ha(t,e,i){!aa(e[i])&&aa(t[i])&&(t[i]=oa(t[i]))}function ua(t){t.__highlighted&&(ca(t),t.__highlighted=!1)}function ca(t){var e=t.__highlighted;if("layer"===e)t.__zr&&t.__zr.removeHover(t);else if(e){var i=t.style,n=t.__normalStl;n&&(Da(i),t.setStyle(n),Aa(i),t.z2-=1)}}function da(t,e){t.isGroup?t.traverse(function(t){!t.isGroup&&e(t)}):e(t)}function fa(t,e){e=t.__hoverStl=e!==!1&&(e||{}),t.__hoverStlDirty=!0,t.__highlighted&&(ua(t),la(t))}function pa(t){return t&&t.__isEmphasisEntered}function ga(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasisEntered&&da(this,la)}function va(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasisEntered&&da(this,ua)}function ma(){this.__isEmphasisEntered=!0,da(this,la)}function ya(){this.__isEmphasisEntered=!1,da(this,ua)}function xa(t,e,i){t.isGroup?t.traverse(function(t){!t.isGroup&&fa(t,t.hoverStyle||e)}):fa(t,t.hoverStyle||e),_a(t,i)}function _a(t,e){var i=e===!1;if(t.__hoverSilentOnTouch=null!=e&&e.hoverSilentOnTouch,!i||t.__hoverStyleTrigger){var n=i?"off":"on";t[n]("mouseover",ga)[n]("mouseout",va),t[n]("emphasis",ma)[n]("normal",ya),t.__hoverStyleTrigger=!i}}function wa(t,e,i,n,r,a,o){r=r||Gy;var s,l=r.labelFetcher,h=r.labelDataIndex,u=r.labelDimIndex,c=i.getShallow("show"),d=n.getShallow("show");(c||d)&&(l&&(s=l.getFormattedLabel(h,"normal",null,u)),null==s&&(s=w(r.defaultText)?r.defaultText(h,r):r.defaultText));var f=c?s:null,p=d?D(l?l.getFormattedLabel(h,"emphasis",null,u):null,s):null;(null!=f||null!=p)&&(ba(t,i,a,r),ba(e,n,o,r,!0)),t.text=f,e.text=p}function ba(t,e,i,n,r){return Ma(t,e,n,r),i&&o(t,i),t}function Sa(t,e,i){var n,r={isRectText:!0};i===!1?n=!0:r.autoColor=i,Ma(t,e,r,n)}function Ma(t,e,i,n){if(i=i||Gy,i.isRectText){var r=e.getShallow("position")||(n?null:"inside");"outside"===r&&(r="top"),t.textPosition=r,t.textOffset=e.getShallow("offset");var a=e.getShallow("rotate");null!=a&&(a*=Math.PI/180),t.textRotation=a,t.textDistance=D(e.getShallow("distance"),n?null:5)}var o,s=e.ecModel,l=s&&s.option.textStyle,h=Ia(e);if(h){o={};for(var u in h)if(h.hasOwnProperty(u)){var c=e.getModel(["rich",u]);Ta(o[u]={},c,l,i,n)}}return t.rich=o,Ta(t,e,l,i,n,!0),i.forceRich&&!i.textStyle&&(i.textStyle={}),t}function Ia(t){for(var e;t&&t!==t.ecModel;){var i=(t.option||Gy).rich;if(i){e=e||{};for(var n in i)i.hasOwnProperty(n)&&(e[n]=1)}t=t.parentModel}return e}function Ta(t,e,i,n,r,a){i=!r&&i||Gy,t.textFill=Ca(e.getShallow("color"),n)||i.color,t.textStroke=Ca(e.getShallow("textBorderColor"),n)||i.textBorderColor,t.textStrokeWidth=D(e.getShallow("textBorderWidth"),i.textBorderWidth),t.insideRawTextPosition=t.textPosition,r||(a&&(t.insideRollbackOpt=n,Aa(t)),null==t.textFill&&(t.textFill=n.autoColor)),t.fontStyle=e.getShallow("fontStyle")||i.fontStyle,t.fontWeight=e.getShallow("fontWeight")||i.fontWeight,t.fontSize=e.getShallow("fontSize")||i.fontSize,t.fontFamily=e.getShallow("fontFamily")||i.fontFamily,t.textAlign=e.getShallow("align"),t.textVerticalAlign=e.getShallow("verticalAlign")||e.getShallow("baseline"),t.textLineHeight=e.getShallow("lineHeight"),t.textWidth=e.getShallow("width"),t.textHeight=e.getShallow("height"),t.textTag=e.getShallow("tag"),a&&n.disableBox||(t.textBackgroundColor=Ca(e.getShallow("backgroundColor"),n),t.textPadding=e.getShallow("padding"),t.textBorderColor=Ca(e.getShallow("borderColor"),n),t.textBorderWidth=e.getShallow("borderWidth"),t.textBorderRadius=e.getShallow("borderRadius"),t.textBoxShadowColor=e.getShallow("shadowColor"),t.textBoxShadowBlur=e.getShallow("shadowBlur"),t.textBoxShadowOffsetX=e.getShallow("shadowOffsetX"),t.textBoxShadowOffsetY=e.getShallow("shadowOffsetY")),t.textShadowColor=e.getShallow("textShadowColor")||i.textShadowColor,t.textShadowBlur=e.getShallow("textShadowBlur")||i.textShadowBlur,t.textShadowOffsetX=e.getShallow("textShadowOffsetX")||i.textShadowOffsetX,t.textShadowOffsetY=e.getShallow("textShadowOffsetY")||i.textShadowOffsetY}function Ca(t,e){return"auto"!==t?t:e&&e.autoColor?e.autoColor:null}function Aa(t){var e=t.insideRollbackOpt;if(e&&null==t.textFill){var i,n=e.useInsideStyle,r=t.insideRawTextPosition,a=e.autoColor;n!==!1&&(n===!0||e.isRectText&&r&&"string"==typeof r&&r.indexOf("inside")>=0)?(i={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=a,null==t.textStrokeWidth&&(t.textStrokeWidth=2))):null!=a&&(i={textFill:null},t.textFill=a),i&&(t.insideRollback=i)}}function Da(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth,t.insideRollback=null)}function ka(t,e){var i=e||e.getModel("textStyle");return z([t.fontStyle||i&&i.getShallow("fontStyle")||"",t.fontWeight||i&&i.getShallow("fontWeight")||"",(t.fontSize||i&&i.getShallow("fontSize")||12)+"px",t.fontFamily||i&&i.getShallow("fontFamily")||"sans-serif"].join(" "))}function Pa(t,e,i,n,r,a){"function"==typeof r&&(a=r,r=null);var o=n&&n.isAnimationEnabled();if(o){var s=t?"Update":"",l=n.getShallow("animationDuration"+s),h=n.getShallow("animationEasing"+s),u=n.getShallow("animationDelay"+s);"function"==typeof u&&(u=u(r,n.getAnimationDelayParams?n.getAnimationDelayParams(e,r):null)),"function"==typeof l&&(l=l(r)),l>0?e.animateTo(i,l,u||0,h,a,!!a):(e.stopAnimation(),e.attr(i),a&&a())}else e.stopAnimation(),e.attr(i),a&&a()}function La(t,e,i,n,r){Pa(!0,t,e,i,n,r)}function Oa(t,e,i,n,r){Pa(!1,t,e,i,n,r)}function za(t,e){for(var i=Se([]);t&&t!==e;)Ie(i,t.getLocalTransform(),i),t=t.parent;return i}function Ea(t,e,i){return e&&!d(e)&&(e=Og.getLocalTransform(e)),i&&(e=De([],e)),ae([],t,e)}function Ra(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),a=["left"===t?-n:"right"===t?n:0,"top"===t?-r:"bottom"===t?r:0];return a=Ea(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Ba(t,e,i){function n(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}function r(t){var e={position:H(t.position),rotation:t.rotation};return t.shape&&(e.shape=o({},t.shape)),e}if(t&&e){var a=n(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var n=r(t);t.attr(r(e)),La(t,n,i,t.dataIndex)}}})}}function Na(t,e){return p(t,function(t){var i=t[0];i=Vy(i,e.x),i=Wy(i,e.x+e.width);var n=t[1];return n=Vy(n,e.y),n=Wy(n,e.y+e.height),[i,n]})}function Fa(t,e){var i=Vy(t.x,e.x),n=Wy(t.x+t.width,e.x+e.width),r=Vy(t.y,e.y),a=Wy(t.y+t.height,e.y+e.height);return n>=i&&a>=r?{x:i,y:r,width:n-i,height:a-r}:void 0}function Va(t,e,i){e=o({rectHover:!0},e);var n=e.style={strokeNoScale:!0};return i=i||{x:-1,y:-1,width:2,height:2},t?0===t.indexOf("image://")?(n.image=t.slice(8),s(n,i),new yn(e)):Qr(t.replace("path://",""),e,i,"center"):void 0}function Wa(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function Ga(t,e,i){for(var n=0;n=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,n,r){function a(t){l[t].entryCount--,0===l[t].entryCount&&h.push(t)}function o(t){u[t]=!0,a(t)}if(t.length){var s=i(e),l=s.graph,h=s.noEntryList,u={};for(f(t,function(t){u[t]=!0});h.length;){var c=h.pop(),d=l[c],p=!!u[c];p&&(n.call(r,c,d.originalDeps.slice()),delete u[c]),f(d.successor,p?o:a)}f(u,function(){throw new Error("Circle dependency may exists")})}}}function ja(t){return t.replace(/^\s+/,"").replace(/\s+$/,"")}function qa(t,e,i,n){var r=e[1]-e[0],a=i[1]-i[0];if(0===r)return 0===a?i[0]:(i[0]+i[1])/2;if(n)if(r>0){if(t<=e[0])return i[0];if(t>=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/r*a+i[0]}function Ua(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?ja(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?0/0:+t}function $a(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Ka(t){return t.sort(function(t,e){return t-e}),t}function Qa(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Ja(t){var e=t.toString(),i=e.indexOf("e");if(i>0){var n=+e.slice(i+1);return 0>n?-n:0}var r=e.indexOf(".");return 0>r?0:e.length-1-r}function to(t,e){var i=Math.log,n=Math.LN10,r=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n),o=Math.min(Math.max(-r+a,0),20);return isFinite(o)?o:20}function eo(t,e,i){if(!t[e])return 0;var n=g(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return 0;for(var r=Math.pow(10,i),a=p(t,function(t){return(isNaN(t)?0:t)/n*r*100}),o=100*r,s=p(a,function(t){return Math.floor(t)}),l=g(s,function(t,e){return t+e},0),h=p(a,function(t,e){return t-s[e]});o>l;){for(var u=Number.NEGATIVE_INFINITY,c=null,d=0,f=h.length;f>d;++d)h[d]>u&&(u=h[d],c=d);++s[c],h[c]=0,++l}return s[e]/r}function io(t){var e=2*Math.PI;return(t%e+e)%e}function no(t){return t>-tx&&tx>t}function ro(t){if(t instanceof Date)return t;if("string"==typeof t){var e=ix.exec(t);if(!e)return new Date(0/0);if(e[8]){var i=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(i-=e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,i,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return new Date(null==t?0/0:Math.round(t))}function ao(t){return Math.pow(10,oo(t))}function oo(t){return Math.floor(Math.log(t)/Math.LN10)}function so(t,e){var i,n=oo(t),r=Math.pow(10,n),a=t/r;return i=e?1.5>a?1:2.5>a?2:4>a?3:7>a?5:10:1>a?1:2>a?2:3>a?3:5>a?5:10,t=i*r,n>=-20?+t.toFixed(0>n?-n:0):t}function lo(t,e){var i=(t.length-1)*e+1,n=Math.floor(i),r=+t[n-1],a=i-n;return a?r+a*(t[n]-r):r}function ho(t){function e(t,i,n){return t.interval[n]s;s++)a[s]<=i&&(a[s]=i,o[s]=s?1:1-n),i=a[s],n=o[s];a[0]===a[1]&&o[0]*o[1]!==1?t.splice(r,1):r++}return t}function uo(t){return t-parseFloat(t)>=0}function co(t){return isNaN(t)?"-":(t=(t+"").split("."),t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:""))}function fo(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(t,e){return e.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}function po(t){return null==t?"":(t+"").replace(ax,function(t,e){return ox[e]})}function go(t,e,i){_(e)||(e=[e]);var n=e.length;if(!n)return"";for(var r=e[0].$vars||[],a=0;as;s++)for(var l=0;l':'':{renderMode:r,content:"{marker"+a+"|} ",style:{color:i}}:"" +}function yo(t,e){return t+="","0000".substr(0,e-t.length)+t}function xo(t,e,i){("week"===t||"month"===t||"quarter"===t||"half-year"===t||"year"===t)&&(t="MM-dd\nyyyy");var n=ro(e),r=i?"UTC":"",a=n["get"+r+"FullYear"](),o=n["get"+r+"Month"]()+1,s=n["get"+r+"Date"](),l=n["get"+r+"Hours"](),h=n["get"+r+"Minutes"](),u=n["get"+r+"Seconds"](),c=n["get"+r+"Milliseconds"]();return t=t.replace("MM",yo(o,2)).replace("M",o).replace("yyyy",a).replace("yy",a%100).replace("dd",yo(s,2)).replace("d",s).replace("hh",yo(l,2)).replace("h",l).replace("mm",yo(h,2)).replace("m",h).replace("ss",yo(u,2)).replace("s",u).replace("SSS",yo(c,3))}function _o(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function wo(t,e,i,n,r){var a=0,o=0;null==n&&(n=1/0),null==r&&(r=1/0);var s=0;e.eachChild(function(l,h){var u,c,d=l.position,f=l.getBoundingRect(),p=e.childAt(h+1),g=p&&p.getBoundingRect();if("horizontal"===t){var v=f.width+(g?-g.x+f.x:0);u=a+v,u>n||l.newline?(a=0,u=v,o+=s+i,s=f.height):s=Math.max(s,f.height)}else{var m=f.height+(g?-g.y+f.y:0);c=o+m,c>r||l.newline?(a+=s+i,o=0,c=m,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=o,"horizontal"===t?a=u+i:o=c+i)})}function bo(t,e,i){i=rx(i||0);var n=e.width,r=e.height,a=Ua(t.left,n),o=Ua(t.top,r),s=Ua(t.right,n),l=Ua(t.bottom,r),h=Ua(t.width,n),u=Ua(t.height,r),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(h)&&(h=n-s-d-a),isNaN(u)&&(u=r-l-c-o),null!=f&&(isNaN(h)&&isNaN(u)&&(f>n/r?h=.8*n:u=.8*r),isNaN(h)&&(h=f*u),isNaN(u)&&(u=h/f)),isNaN(a)&&(a=n-s-h-d),isNaN(o)&&(o=r-l-u-c),t.left||t.right){case"center":a=n/2-h/2-i[3];break;case"right":a=n-h-d}switch(t.top||t.bottom){case"middle":case"center":o=r/2-u/2-i[0];break;case"bottom":o=r-u-c}a=a||0,o=o||0,isNaN(h)&&(h=n-d-a-(s||0)),isNaN(u)&&(u=r-c-o-(l||0));var p=new gi(a+i[3],o+i[0],h,u);return p.margin=i,p}function So(t,e,i){function n(i,n){var o={},l=0,h={},u=0,c=2;if(dx(i,function(e){h[e]=t[e]}),dx(i,function(t){r(e,t)&&(o[t]=h[t]=e[t]),a(o,t)&&l++,a(h,t)&&u++}),s[n])return a(e,i[1])?h[i[2]]=null:a(e,i[2])&&(h[i[1]]=null),h;if(u!==c&&l){if(l>=c)return o;for(var d=0;dn;n++)if(t[n].length>e)return t[n];return t[i-1]}function Ao(t){var e=t.get("coordinateSystem"),i={coordSysName:e,coordSysDims:[],axisMap:N(),categoryAxisMap:N()},n=Mx[e];return n?(n(t,i,i.axisMap,i.categoryAxisMap),i):void 0}function Do(t){return"category"===t.get("type")}function ko(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===Ax?{}:[]),this.sourceFormat=t.sourceFormat||Dx,this.seriesLayoutBy=t.seriesLayoutBy||Px,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&N(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function Po(t){var e=t.option.source,i=Dx;if(I(e))i=kx;else if(_(e)){0===e.length&&(i=Tx);for(var n=0,r=e.length;r>n;n++){var a=e[n];if(null!=a){if(_(a)){i=Tx;break}if(S(a)){i=Cx;break}}}}else if(S(e)){for(var o in e)if(e.hasOwnProperty(o)&&d(e[o])){i=Ax;break}}else if(null!=e)throw new Error("Invalid data");Ox(t).sourceFormat=i}function Lo(t){return Ox(t).source}function Oo(t){Ox(t).datasetMap=N()}function zo(t){var e=t.option,i=e.data,n=I(i)?kx:Ix,r=!1,a=e.seriesLayoutBy,o=e.sourceHeader,s=e.dimensions,l=Vo(t);if(l){var h=l.option;i=h.source,n=Ox(l).sourceFormat,r=!0,a=a||h.seriesLayoutBy,null==o&&(o=h.sourceHeader),s=s||h.dimensions}var u=Eo(i,n,a,o,s),c=e.encode;!c&&l&&(c=Fo(t,l,i,n,a,u)),Ox(t).source=new ko({data:i,fromDataset:r,seriesLayoutBy:a,sourceFormat:n,dimensionsDefine:u.dimensionsDefine,startIndex:u.startIndex,dimensionsDetectCount:u.dimensionsDetectCount,encodeDefine:c})}function Eo(t,e,i,n,r){if(!t)return{dimensionsDefine:Ro(r)};var a,o,s;if(e===Tx)"auto"===n||null==n?Bo(function(t){null!=t&&"-"!==t&&(b(t)?null==o&&(o=1):o=0)},i,t,10):o=n?1:0,r||1!==o||(r=[],Bo(function(t,e){r[e]=null!=t?t:""},i,t)),a=r?r.length:i===Lx?t.length:t[0]?t[0].length:null;else if(e===Cx)r||(r=No(t),s=!0);else if(e===Ax)r||(r=[],s=!0,f(t,function(t,e){r.push(e)}));else if(e===Ix){var l=Vn(t[0]);a=_(l)&&l.length||1}var h;return s&&f(r,function(t,e){"name"===(S(t)?t.name:t)&&(h=e)}),{startIndex:o,dimensionsDefine:Ro(r),dimensionsDetectCount:a,potentialNameDimIndex:h}}function Ro(t){if(t){var e=N();return p(t,function(t){if(t=o({},S(t)?t:{name:t}),null==t.name)return t;t.name+="",null==t.displayName&&(t.displayName=t.name);var i=e.get(t.name);return i?t.name+="-"+i.count++:e.set(t.name,{count:1}),t})}}function Bo(t,e,i,n){if(null==n&&(n=1/0),e===Lx)for(var r=0;rr;r++)t(i[r]?i[r][0]:null,r);else for(var a=i[0]||[],r=0;rr;r++)t(a[r],r)}function No(t){for(var e,i=0;ix&&null==y;x++)Go(i,n,r,a.dimensionsDefine,a.startIndex,x)||(y=x);if(null!=y){s.value=y;var _=a.potentialNameDimIndex||Math.max(y-1,0);h.push(_),l.push(_)}}return l.length&&(s.itemName=l),h.length&&(s.seriesName=h),s}function Vo(t){var e=t.option,i=e.data;return i?void 0:t.ecModel.getComponent("dataset",e.datasetIndex||0)}function Wo(t,e){return Go(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function Go(t,e,i,n,r,a){function o(t){return null!=t&&isFinite(t)&&""!==t?!1:b(t)&&"-"!==t?!0:void 0}var s,l=5;if(I(t))return!1;var h;if(n&&(h=n[a],h=S(h)?h.name:h),e===Tx)if(i===Lx){for(var u=t[a],c=0;c<(u||[]).length&&l>c;c++)if(null!=(s=o(u[r+c])))return s}else for(var c=0;cc;c++){var d=t[r+c];if(d&&null!=(s=o(d[a])))return s}else if(e===Cx){if(!h)return;for(var c=0;cc;c++){var f=t[c];if(f&&null!=(s=o(f[h])))return s}}else if(e===Ax){if(!h)return;var u=t[h];if(!u||I(u))return!1;for(var c=0;cc;c++)if(null!=(s=o(u[c])))return s}else if(e===Ix)for(var c=0;cc;c++){var f=t[c],p=Vn(f);if(!_(p))return!1;if(null!=(s=o(p[a])))return s}return!1}function Ho(t,e){if(e){var i=e.seiresIndex,n=e.seriesId,r=e.seriesName;return null!=i&&t.componentIndex!==i||null!=n&&t.id!==n||null!=r&&t.name!==r}}function Zo(t,e){var i=t.color&&!t.colorLayer;f(e,function(e,a){"colorLayer"===a&&i||yx.hasClass(a)||("object"==typeof e?t[a]=t[a]?r(t[a],e,!1):n(e):null==t[a]&&(t[a]=e))})}function Xo(t){t=t,this.option={},this.option[zx]=1,this._componentsMap=N({series:[]}),this._seriesIndices,this._seriesIndicesMap,Zo(t,this._theme.option),r(t,_x,!1),this.mergeOption(t)}function Yo(t,e){_(e)||(e=e?[e]:[]);var i={};return f(e,function(e){i[e]=(t.get(e)||[]).slice()}),i}function jo(t,e,i){var n=e.type?e.type:i?i.subType:yx.determineSubType(t,e);return n}function qo(t,e){t._seriesIndicesMap=N(t._seriesIndices=p(e,function(t){return t.componentIndex})||[])}function Uo(t,e){return e.hasOwnProperty("subType")?v(t,function(t){return t.subType===e.subType}):t}function $o(t){f(Rx,function(e){this[e]=y(t[e],t)},this)}function Ko(){this._coordinateSystems=[]}function Qo(t){this._api=t,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function Jo(t,e,i){var n,r,a=[],o=[],s=t.timeline;if(t.baseOption&&(r=t.baseOption),(s||t.options)&&(r=r||{},a=(t.options||[]).slice()),t.media){r=r||{};var l=t.media;Nx(l,function(t){t&&t.option&&(t.query?o.push(t):n||(n=t))})}return r||(r=t),r.timeline||(r.timeline=s),Nx([r].concat(a).concat(p(o,function(t){return t.option})),function(t){Nx(e,function(e){e(t,i)})}),{baseOption:r,timelineOptions:a,mediaDefault:n,mediaList:o}}function ts(t,e,i){var n={width:e,height:i,aspectratio:e/i},r=!0;return f(t,function(t,e){var i=e.match(Gx);if(i&&i[1]&&i[2]){var a=i[1],o=i[2].toLowerCase();es(n[o],t,a)||(r=!1)}}),r}function es(t,e,i){return"min"===i?t>=e:"max"===i?e>=t:t===e}function is(t,e){return t.join(",")===e.join(",")}function ns(t,e){e=e||{},Nx(e,function(e,i){if(null!=e){var n=t[i];if(yx.hasClass(i)){e=Nn(e),n=Nn(n);var r=Gn(n,e);t[i]=Vx(r,function(t){return t.option&&t.exist?Wx(t.exist,t.option,!0):t.exist||t.option})}else t[i]=Wx(n,e,!0)}})}function rs(t){var e=t&&t.itemStyle;if(e)for(var i=0,n=Xx.length;n>i;i++){var a=Xx[i],o=e.normal,s=e.emphasis;o&&o[a]&&(t[a]=t[a]||{},t[a].normal?r(t[a].normal,o[a]):t[a].normal=o[a],o[a]=null),s&&s[a]&&(t[a]=t[a]||{},t[a].emphasis?r(t[a].emphasis,s[a]):t[a].emphasis=s[a],s[a]=null)}}function as(t,e,i){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var n=t[e].normal,r=t[e].emphasis;n&&(i?(t[e].normal=t[e].emphasis=null,s(t[e],n)):t[e]=n),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r)}}function os(t){as(t,"itemStyle"),as(t,"lineStyle"),as(t,"areaStyle"),as(t,"label"),as(t,"labelLine"),as(t,"upperLabel"),as(t,"edgeLabel")}function ss(t,e){var i=Zx(t)&&t[e],n=Zx(i)&&i.textStyle;if(n)for(var r=0,a=sm.length;a>r;r++){var e=sm[r];n.hasOwnProperty(e)&&(i[e]=n[e])}}function ls(t){t&&(os(t),ss(t,"label"),t.emphasis&&ss(t.emphasis,"label"))}function hs(t){if(Zx(t)){rs(t),os(t),ss(t,"label"),ss(t,"upperLabel"),ss(t,"edgeLabel"),t.emphasis&&(ss(t.emphasis,"label"),ss(t.emphasis,"upperLabel"),ss(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(rs(e),ls(e));var i=t.markLine;i&&(rs(i),ls(i));var n=t.markArea;n&&ls(n);var r=t.data;if("graph"===t.type){r=r||t.nodes;var a=t.links||t.edges;if(a&&!I(a))for(var o=0;o=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var v=g.data.getByRawIndex(g.stackResultDimension,d);if(u>=0&&v>0||0>=u&&0>v){u+=v,f=v;break}}}return n[0]=u,n[1]=f,n});o.hostModel.setData(l),e.data=l})}function vs(t,e){ko.isInstance(t)||(t=ko.seriesDataToSource(t)),this._source=t;var i=this._data=t.data,n=t.sourceFormat;n===kx&&(this._offset=0,this._dimSize=e,this._data=i);var r=Qx[n===Tx?n+"_"+t.seriesLayoutBy:n];o(this,r)}function ms(){return this._data.length}function ys(t){return this._data[t]}function xs(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function zs(t,e){f(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,x(Es,e))})}function Es(t){var e=Rs(t);e&&e.setOutputEnd(this.count())}function Rs(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var r=n.agentStubMap;r&&(n=r.get(t.uid))}return n}}function Bs(){this.group=new lv,this.uid=Za("viewChart"),this.renderTask=Is({plan:Vs,reset:Ws}),this.renderTask.context={view:this}}function Ns(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var i=0;i=0?n():c=setTimeout(n,-a),h=r};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function Hs(t,e,i,n){var r=t[e];if(r){var a=r[p_]||r,o=r[v_],s=r[g_];if(s!==i||o!==n){if(null==i||!n)return t[e]=a;r=t[e]=Gs(a,i,"debounce"===n),r[p_]=a,r[v_]=n,r[g_]=i}return r}}function Zs(t,e){var i=t[e];i&&i[p_]&&(t[e]=i[p_])}function Xs(t,e,i,n){this.ecInstance=t,this.api=e,this.unfinished;var i=this._dataProcessorHandlers=i.slice(),n=this._visualHandlers=n.slice();this._allHandlers=i.concat(n),this._stageTaskMap=N()}function Ys(t,e,i,n,r){function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}r=r||{};var o;f(e,function(e){if(!r.visualType||r.visualType===e.visualType){var s=t._stageTaskMap.get(e.uid),l=s.seriesTaskMap,h=s.overallTask;if(h){var u,c=h.agentStubMap;c.each(function(t){a(r,t)&&(t.dirty(),u=!0)}),u&&h.dirty(),S_(h,n);var d=t.getPerformArgs(h,r.block);c.each(function(t){t.perform(d)}),o|=h.perform(d)}else l&&l.each(function(s){a(r,s)&&s.dirty();var l=t.getPerformArgs(s,r.block);l.skip=!e.performRawSeries&&i.isSeriesFiltered(s.context.model),S_(s,n),o|=s.perform(l)})}}),t.unfinished|=o}function js(t,e,i,n,r){function a(i){var a=i.uid,s=o.get(a)||o.set(a,Is({plan:Js,reset:tl,count:il}));s.context={model:i,ecModel:n,api:r,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},nl(t,i,s)}var o=i.seriesTaskMap||(i.seriesTaskMap=N()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(a):s?n.eachRawSeriesByType(s,a):l&&l(n,r).each(a);var h=t._pipelineMap;o.each(function(t,e){h.get(e)||(t.dispose(),o.removeKey(e))})}function qs(t,e,i,n,r){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,Is({reset:$s,onDirty:Qs})),o.dirty()),n.context={model:e,overallProgress:u,modifyOutputEnd:c},n.agent=o,n.__block=u,nl(t,e,n)}var o=i.overallTask=i.overallTask||Is({reset:Us});o.context={ecModel:n,api:r,overallReset:e.overallReset,scheduler:t};var s=o.agentStubMap=o.agentStubMap||N(),l=e.seriesType,h=e.getTargetSeries,u=!0,c=e.modifyOutputEnd;l?n.eachRawSeriesByType(l,a):h?h(n,r).each(a):(u=!1,f(n.getSeries(),a));var d=t._pipelineMap;s.each(function(t,e){d.get(e)||(t.dispose(),o.dirty(),s.removeKey(e))})}function Us(t){t.overallReset(t.ecModel,t.api,t.payload)}function $s(t){return t.overallProgress&&Ks}function Ks(){this.agent.dirty(),this.getDownstream().dirty()}function Qs(){this.agent&&this.agent.dirty()}function Js(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function tl(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Nn(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?p(e,function(t,e){return el(e)}):M_}function el(t){return function(e,i){var n=i.data,r=i.resetDefines[t];if(r&&r.dataEach)for(var a=e.start;a0?parseInt(n,10)/100:n?parseFloat(n):0;var r=i.getAttribute("stop-color")||"#000000";e.addColorStop(n,r)}i=i.nextSibling}}function hl(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),s(e.__inheritedStyle,t.__inheritedStyle))}function ul(t){for(var e=z(t).split(E_),i=[],n=0;n0;a-=2){var o=r[a],s=r[a-1];switch(n=n||be(),s){case"translate":o=z(o).split(E_),Te(n,n,[parseFloat(o[0]),parseFloat(o[1]||0)]);break;case"scale":o=z(o).split(E_),Ae(n,n,[parseFloat(o[0]),parseFloat(o[1]||o[0])]);break;case"rotate":o=z(o).split(E_),Ce(n,n,parseFloat(o[0]));break;case"skew":o=z(o).split(E_),console.warn("Skew transform is not supported yet");break;case"matrix":var o=z(o).split(E_);n[0]=parseFloat(o[0]),n[1]=parseFloat(o[1]),n[2]=parseFloat(o[2]),n[3]=parseFloat(o[3]),n[4]=parseFloat(o[4]),n[5]=parseFloat(o[5])}}}e.setLocalTransform(n)}function pl(t){var e=t.getAttribute("style"),i={};if(!e)return i;var n={};W_.lastIndex=0;for(var r;null!=(r=W_.exec(e));)n[r[1]]=r[2];for(var a in N_)N_.hasOwnProperty(a)&&null!=n[a]&&(i[N_[a]]=n[a]);return i}function gl(t,e,i){var n=e/t.width,r=i/t.height,a=Math.min(n,r),o=[a,a],s=[-(t.x+t.width/2)*a+e/2,-(t.y+t.height/2)*a+i/2];return{scale:o,position:s}}function vl(t){return function(e,i,n){e=e&&e.toLowerCase(),bg.prototype[t].call(this,e,i,n)}}function ml(){bg.call(this)}function yl(t,e,i){function r(t,e){return t.__prio-e.__prio}i=i||{},"string"==typeof e&&(e=xw[e]),this.id,this.group,this._dom=t;var a="canvas",o=this._zr=On(t,{renderer:i.renderer||a,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height});this._throttledZrFlush=Gs(y(o.flush,o),17);var e=n(e);e&&Ux(e,!0),this._theme=e,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new Ko;var s=this._api=Rl(this);Si(yw,r),Si(gw,r),this._scheduler=new Xs(this,s,gw,yw),bg.call(this,this._ecEventProcessor=new Bl),this._messageCenter=new ml,this._initEvents(),this.resize=y(this.resize,this),this._pendingActions=[],o.animation.on("frame",this._onframe,this),Tl(o,this),E(this)}function xl(t,e,i){var n,r=this._model,a=this._coordSysMgr.getCoordinateSystems();e=qn(r,e);for(var o=0;oe.get("hoverLayerThreshold")&&!tg.node&&i.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function zl(t,e){var i=t.get("blendMode")||null;e.group.traverse(function(t){t.isGroup||t.style.blend!==i&&t.setStyle("blend",i),t.eachPendingDisplayable&&t.eachPendingDisplayable(function(t){t.setStyle("blend",i)})})}function El(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function Rl(t){var e=t._coordSysMgr;return o(new $o(t),{getCoordinateSystems:y(e.getCoordinateSystems,e),getComponentByElement:function(e){for(;e;){var i=e.__ecComponentInfo;if(null!=i)return t._model.getComponent(i.mainType,i.index);e=e.parent}}})}function Bl(){this.eventInfo}function Nl(t){function e(t,e){for(var i=0;i65535?Ow:zw}function vh(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function mh(t,e){f(Ew.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,f(Rw,function(i){t[i]=n(e[i])}),t._calculationInfo=o(e._calculationInfo)}function yh(t){var e=t._invertedIndicesMap;f(e,function(i,n){var r=t._dimensionInfos[n],a=r.ordinalMeta;if(a){i=e[n]=new Ow(a.categories.length);for(var o=0;o=0?this._indices[t]:-1}function bh(t,e){var i=t._idList[e];return null==i&&(i=xh(t,t._idDimIdx,e)),null==i&&(i=Pw+e),i}function Sh(t){return _(t)||(t=[t]),t}function Mh(t,e){var i=t.dimensions,n=new Bw(p(i,t.getDimensionInfo,t),t.hostModel);mh(n,t);for(var r=n._storage={},a=t._storage,o=0;o=0?(r[s]=Ih(a[s]),n._rawExtent[s]=Th(),n._extent[s]=null):r[s]=a[s])}return n}function Ih(t){for(var e=new Array(t.length),i=0;ip;p++){var g=a[p]=o({},S(a[p])?a[p]:{name:a[p]}),v=g.name,m=c[p]={otherDims:{}};null!=v&&null==h.get(v)&&(m.name=m.displayName=v,h.set(v,p)),null!=g.type&&(m.type=g.type),null!=g.displayName&&(m.displayName=g.displayName)}l.each(function(t,e){if(t=Nn(t).slice(),1===t.length&&t[0]<0)return void l.set(e,!1);var i=l.set(e,[]);f(t,function(t,n){b(t)&&(t=h.get(t)),null!=t&&d>t&&(i[n]=t,r(c[t],e,n))})});var y=0;f(t,function(t){var e,t,i,a;if(b(t))e=t,t={};else{e=t.name;var o=t.ordinalMeta;t.ordinalMeta=null,t=n(t),t.ordinalMeta=o,i=t.dimsDef,a=t.otherDims,t.name=t.coordDim=t.coordDimIndex=t.dimsDef=t.otherDims=null}var h=l.get(e);if(h!==!1){var h=Nn(h);if(!h.length)for(var u=0;u<(i&&i.length||1);u++){for(;yI;I++){var m=c[I]=c[I]||{},T=m.coordDim;null==T&&(m.coordDim=Dh(M,u,w),m.coordDimIndex=0,(!x||0>=_)&&(m.isExtraCoord=!0),_--),null==m.name&&(m.name=Dh(m.coordDim,h)),null==m.type&&Wo(e,I,m.name)&&(m.type="ordinal")}return c}function Ah(t,e,i,n){var r=Math.max(t.dimensionsDetectCount||1,e.length,i.length,n||0);return f(e,function(t){var e=t.dimsDef;e&&(r=Math.max(r,e.length)) +}),r}function Dh(t,e,i){if(i||null!=e.get(t)){for(var n=0;null!=e.get(t+n);)n++;t+=n}return e.set(t,!0),t}function kh(t,e,i){i=i||{};var n,r,a,o,s=i.byIndex,l=i.stackedCoordDimension,h=!(!t||!t.get("stack"));if(f(e,function(t,i){b(t)&&(e[i]=t={name:t}),h&&!t.isExtraCoord&&(s||n||!t.ordinalMeta||(n=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))}),!r||s||n||(s=!0),r){a="__\x00ecstackresult",o="__\x00ecstackedover",n&&(n.createInvertedIndices=!0);var u=r.coordDim,c=r.type,d=0;f(e,function(t){t.coordDim===u&&d++}),e.push({name:a,coordDim:u,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0}),d++,e.push({name:o,coordDim:o,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:n&&n.name,isStackedByIndex:s,stackedOverDimension:o,stackResultDimension:a}}function Ph(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function Lh(t,e){return Ph(t,e)?t.getCalculationInfo("stackResultDimension"):e}function Oh(t,e,i){i=i||{},ko.isInstance(t)||(t=ko.seriesDataToSource(t));var n,r=e.get("coordinateSystem"),a=Ko.get(r),o=Ao(e);o&&(n=p(o.coordSysDims,function(t){var e={name:t},i=o.axisMap.get(t);if(i){var n=i.get("type");e.type=fh(n)}return e})),n||(n=a&&(a.getDimensionsInfo?a.getDimensionsInfo():a.dimensions.slice())||["x","y"]);var s,l,h=Vw(t,{coordDimensions:n,generateCoord:i.generateCoord});o&&f(h,function(t,e){var i=t.coordDim,n=o.categoryAxisMap.get(i);n&&(null==s&&(s=e),t.ordinalMeta=n.getOrdinalMeta()),null!=t.otherDims.itemName&&(l=!0)}),l||null==s||(h[s].otherDims.itemName=0);var u=kh(e,h),c=new Bw(h,e);c.setCalculationInfo(u);var d=null!=s&&zh(t)?function(t,e,i,n){return n===s?i:this.defaultDimValueGetter(t,e,i,n)}:null;return c.hasItemOption=!1,c.initData(t,null,d),c}function zh(t){if(t.sourceFormat===Ix){var e=Eh(t.data||[]);return null!=e&&!_(Vn(e))}}function Eh(t){for(var e=0;eo&&(o=r.interval=i),null!=n&&o>n&&(o=r.interval=n);var s=r.intervalPrecision=Wh(o),l=r.niceTickExtent=[Zw(Math.ceil(t[0]/o)*o,s),Zw(Math.floor(t[1]/o)*o,s)];return Hh(l,t),r}function Wh(t){return Ja(t)+2}function Gh(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Hh(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Gh(t,0,e),Gh(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Zh(t,e,i,n){var r=[];if(!t)return r;var a=1e4;e[0]a)return[];return e[1]>(r.length?r[r.length-1]:i[1])&&r.push(e[1]),r}function Xh(t){return t.get("stack")||jw+t.seriesIndex}function Yh(t){return t.dim+t.index}function jh(t){var e=[],i=t.axis,n="axis0";if("category"===i.type){for(var r=i.getBandWidth(),a=0;ae&&(e=Math.min(e,s),t.width&&(e=Math.min(e,t.width)),s-=e,t.width=e,l--)}),h=(s-a)/(l+(l-1)*o),h=Math.max(h,0);var u,c=0;f(n,function(t){t.width||(t.width=h),u=t,c+=t.width*(1+o)}),u&&(c-=u.width*o);var d=-c/2;f(n,function(t,n){i[e][n]=i[e][n]||{offset:d,width:t.width},d+=t.width*(1+o)})}),i}function Kh(t,e,i){if(t&&e){var n=t[Yh(e)];return null!=n&&null!=i&&(n=n[Xh(i)]),n}}function Qh(t,e){var i=qh(t,e),n=Uh(i),r={};f(i,function(t){var e=t.getData(),i=t.coordinateSystem,a=i.getBaseAxis(),o=Xh(t),s=n[Yh(a)][o],l=s.offset,h=s.width,u=i.getOtherAxis(a),c=t.get("barMinHeight")||0;r[o]=r[o]||[],e.setLayout({offset:l,size:h});for(var d=e.mapDimension(u.dim),f=e.mapDimension(a.dim),p=Ph(e,d),g=u.isHorizontal(),v=eu(a,u,p),m=0,y=e.count();y>m;m++){var x=e.get(d,m),_=e.get(f,m);if(!isNaN(x)){var w=x>=0?"p":"n",b=v;p&&(r[o][_]||(r[o][_]={p:v,n:v}),b=r[o][_][w]);var S,M,I,T;if(g){var C=i.dataToPoint([x,_]);S=b,M=C[1]+l,I=C[0]-v,T=h,Math.abs(I)I?-1:1)*c),p&&(r[o][_][w]+=I)}else{var C=i.dataToPoint([_,x]);S=C[0]+l,M=b,I=h,T=C[1]-v,Math.abs(T)=T?-1:1)*c),p&&(r[o][_][w]+=T)}e.setItemLayout(m,{x:S,y:M,width:I,height:T})}}},this)}function Jh(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function tu(t){return t.pipelineContext&&t.pipelineContext.large}function eu(t,e){var i,n,r=e.getGlobalExtent();r[0]>r[1]?(i=r[1],n=r[0]):(i=r[0],n=r[1]);var a=e.toGlobalCoord(e.dataToCoord(0));return i>a&&(a=i),a>n&&(a=n),a}function iu(t,e){return ub(t,hb(e))}function nu(t,e){var i,n,r,a=t.type,o=e.getMin(),s=e.getMax(),l=null!=o,h=null!=s,u=t.getExtent();"ordinal"===a?i=e.getCategories().length:(n=e.get("boundaryGap"),_(n)||(n=[n||0,n||0]),"boolean"==typeof n[0]&&(n=[0,0]),n[0]=Ua(n[0],1),n[1]=Ua(n[1],1),r=u[1]-u[0]||Math.abs(u[0])),null==o&&(o="ordinal"===a?i?0:0/0:u[0]-n[0]*r),null==s&&(s="ordinal"===a?i?i-1:0/0:u[1]+n[1]*r),"dataMin"===o?o=u[0]:"function"==typeof o&&(o=o({min:u[0],max:u[1]})),"dataMax"===s?s=u[1]:"function"==typeof s&&(s=s({min:u[0],max:u[1]})),(null==o||!isFinite(o))&&(o=0/0),(null==s||!isFinite(s))&&(s=0/0),t.setBlank(C(o)||C(s)||"ordinal"===a&&!t.getOrdinalMeta().categories.length),e.getNeedCrossZero()&&(o>0&&s>0&&!l&&(o=0),0>o&&0>s&&!h&&(s=0));var c=e.ecModel;if(c&&"time"===a){var d,p=qh("bar",c);if(f(p,function(t){d|=t.getBaseAxis()===e.axis}),d){var g=Uh(p),v=ru(o,s,e,g);o=v.min,s=v.max}}return[o,s]}function ru(t,e,i,n){var r=i.axis.getExtent(),a=r[1]-r[0],o=Kh(n,i.axis);if(void 0===o)return{min:t,max:e};var s=1/0;f(o,function(t){s=Math.min(t.offset,s)});var l=-1/0;f(o,function(t){l=Math.max(t.offset+t.width,l)}),s=Math.abs(s),l=Math.abs(l);var h=s+l,u=e-t,c=1-(s+l)/a,d=u/c-u;return e+=d*(l/h),t-=d*(s/h),{min:t,max:e}}function au(t,e){var i=nu(t,e),n=null!=e.getMin(),r=null!=e.getMax(),a=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:a,fixMin:n,fixMax:r,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function ou(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Hw(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new Yw;default:return(Rh.getClass(e)||Yw).create(t)}}function su(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||0>i&&0>n)}function lu(t){var e=t.getLabelModel().get("formatter"),i="category"===t.type?t.scale.getExtent()[0]:null;return"string"==typeof e?e=function(e){return function(i){return i=t.scale.getLabel(i),e.replace("{value}",null!=i?i:"")}}(e):"function"==typeof e?function(n,r){return null!=i&&(r=n-i),e(hu(t,n),r)}:function(e){return t.scale.getLabel(e)}}function hu(t,e){return"category"===t.type?t.scale.getLabel(e):e}function uu(t){var e=t.model,i=t.scale;if(e.get("axisLabel.show")&&!i.isBlank()){var n,r,a="category"===t.type,o=i.getExtent();a?r=i.count():(n=i.getTicks(),r=n.length);var s,l=t.getLabelModel(),h=lu(t),u=1;r>40&&(u=Math.ceil(r/40));for(var c=0;r>c;c+=u){var d=n?n[c]:o[0]+c,f=h(d),p=l.getTextRect(f),g=cu(p,l.get("rotate")||0);s?s.union(g):s=g}return s}}function cu(t,e){var i=e*Math.PI/180,n=t.plain(),r=n.width,a=n.height,o=r*Math.cos(i)+a*Math.sin(i),s=r*Math.sin(i)+a*Math.cos(i),l=new gi(n.x,n.y,o,s);return l}function du(t,e){if("image"!==this.type){var i=this.style,n=this.shape;n&&"line"===n.symbolType?i.stroke=t:this.__isEmptyBrush?(i.stroke=t,i.fill=e||"#fff"):(i.fill&&(i.fill=t),i.stroke&&(i.stroke=t)),this.dirty(!1)}}function fu(t,e,i,n,r,a,o){var s=0===t.indexOf("empty");s&&(t=t.substr(5,1).toLowerCase()+t.substr(6));var l;return l=0===t.indexOf("image://")?Jr(t.slice(8),new gi(e,i,n,r),o?"center":"cover"):0===t.indexOf("path://")?Qr(t.slice(7),{},new gi(e,i,n,r),o?"center":"cover"):new Mb({shape:{symbolType:t,x:e,y:i,width:n,height:r}}),l.__isEmptyBrush=s,l.setColor=du,l.setColor(a),l}function pu(t){return Oh(t.getSource(),t)}function gu(t,e){var i=e;Wa.isInstance(e)||(i=new Wa(e),c(i,vb));var n=ou(i);return n.setExtent(t[0],t[1]),au(n,i),n}function vu(t){c(t,vb)}function mu(t,e){return Math.abs(t-e)>1^-(1&s),l=l>>1^-(1&l),s+=r,l+=a,r=s,a=l,n.push([s/i,l/i])}return n}function bu(t){return"category"===t.type?Mu(t):Cu(t)}function Su(t,e){return"category"===t.type?Tu(t,e):{ticks:t.scale.getTicks()}}function Mu(t){var e=t.getLabelModel(),i=Iu(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function Iu(t,e){var i=Au(t,"labels"),n=Ru(e),r=Du(i,n);if(r)return r;var a,o;return w(n)?a=Eu(t,n):(o="auto"===n?Pu(t):n,a=zu(t,o)),ku(i,n,{labels:a,labelCategoryInterval:o})}function Tu(t,e){var i=Au(t,"ticks"),n=Ru(e),r=Du(i,n);if(r)return r;var a,o;if((!e.get("show")||t.scale.isBlank())&&(a=[]),w(n))a=Eu(t,n,!0);else if("auto"===n){var s=Iu(t,t.getLabelModel());o=s.labelCategoryInterval,a=p(s.labels,function(t){return t.tickValue})}else o=n,a=zu(t,o,!0);return ku(i,n,{ticks:a,tickCategoryInterval:o})}function Cu(t){var e=t.scale.getTicks(),i=lu(t);return{labels:p(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function Au(t,e){return Db(t)[e]||(Db(t)[e]=[])}function Du(t,e){for(var i=0;i40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],h=t.dataToCoord(l+1)-t.dataToCoord(l),u=Math.abs(h*Math.cos(n)),c=Math.abs(h*Math.sin(n)),d=0,f=0;l<=a[1];l+=s){var p=0,g=0,v=Ei(i(l),e.font,"center","top");p=1.3*v.width,g=1.3*v.height,d=Math.max(d,p,7),f=Math.max(f,g,7)}var m=d/u,y=f/c;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var x=Math.max(0,Math.floor(Math.min(m,y))),_=Db(t.model),w=_.lastAutoInterval,b=_.lastTickCount;return null!=w&&null!=b&&Math.abs(w-x)<=1&&Math.abs(b-o)<=1&&w>x?x=w:(_.lastTickCount=o,_.lastAutoInterval=x),x}function Ou(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function zu(t,e,i){function n(t){l.push(i?t:{formattedLabel:r(t),rawLabel:a.getLabel(t),tickValue:t})}var r=lu(t),a=t.scale,o=a.getExtent(),s=t.getLabelModel(),l=[],h=Math.max((e||0)+1,1),u=o[0],c=a.count();0!==u&&h>1&&c/h>2&&(u=Math.round(Math.ceil(u/h)*h));var d={min:s.get("showMinLabel"),max:s.get("showMaxLabel")};d.min&&u!==o[0]&&n(o[0]);for(var f=u;f<=o[1];f+=h)n(f);return d.max&&f!==o[1]&&n(o[1]),l}function Eu(t,e,i){var n=t.scale,r=lu(t),a=[];return f(n.getTicks(),function(t){var o=n.getLabel(t);e(t,o)&&a.push(i?t:{formattedLabel:r(t),rawLabel:o,tickValue:t})}),a}function Ru(t){var e=t.get("interval");return null==e?"auto":e}function Bu(t,e){var i=t[1]-t[0],n=e,r=i/n/2;t[0]+=r,t[1]-=r}function Nu(t,e,i,n,r){function a(t,e){return u?t>e:e>t}var o=e.length;if(t.onBand&&!n&&o){var s,l=t.getExtent();if(1===o)e[0].coord=l[0],s=e[1]={coord:l[0]};else{var h=e[1].coord-e[0].coord;f(e,function(t){t.coord-=h/2;var e=e||0;e%2>0&&(t.coord-=h/(2*(e+1)))}),s={coord:e[o-1].coord+h},e.push(s)}var u=l[0]>l[1];a(e[0].coord,l[0])&&(r?e[0].coord=l[0]:e.shift()),r&&a(l[0],e[0].coord)&&e.unshift({coord:l[0]}),a(l[1],s.coord)&&(r?s.coord=l[1]:e.pop()),r&&a(s.coord,l[1])&&e.push({coord:l[1]})}}function Fu(t){return this._axes[t]}function Vu(t){Eb.call(this,t)}function Wu(t,e){return e.type||(e.data?"category":"value")}function Gu(t,e){return t.getCoordSysModel()===e}function Hu(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function Zu(t,e,i,n){function r(t){return t.dim+"_"+t.index}i.getAxesOnZeroOf=function(){return a?[a]:[]};var a,o=t[e],s=i.model,l=s.get("axisLine.onZero"),h=s.get("axisLine.onZeroAxisIndex");if(l){if(null!=h)Xu(o[h])&&(a=o[h]);else for(var u in o)if(o.hasOwnProperty(u)&&Xu(o[u])&&!n[r(o[u])]){a=o[u];break}a&&(n[r(a)]=!0)}}function Xu(t){return t&&"category"!==t.type&&"time"!==t.type&&su(t)}function Yu(t,e){var i=t.getExtent(),n=i[0]+i[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return n-t+e}}function ju(t){return p(Zb,function(e){var i=t.getReferringComponents(e)[0];return i})}function qu(t){return"cartesian2d"===t.get("coordinateSystem")}function Uu(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return Ss(t,e,i[0]);if(n){for(var r=[],a=0;a0?"bottom":"top":r.width>0?"left":"right";l||$u(t.style,d,n,h,a,i,p),xa(t,d)}function ec(t,e){var i=t.get(qb)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function ic(t,e,i){var n=t.getData(),r=[],a=n.getLayout("valueAxisHorizontal")?1:0;r[1-a]=n.getLayout("valueAxisStart");var o=new Kb({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:r,__valueIdx:a});e.add(o),nc(o,t,n)}function nc(t,e,i){var n=i.getVisual("borderColor")||i.getVisual("color"),r=e.getModel("itemStyle").getItemStyle(["color","borderColor"]);t.useStyle(r),t.style.fill=null,t.style.stroke=n,t.style.lineWidth=i.getLayout("barWidth")}function rc(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e}function ac(t,e,i,n){var r,a,o=io(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return no(o-Qb/2)?(a=l?"bottom":"top",r="center"):no(o-1.5*Qb)?(a=l?"top":"bottom",r="center"):(a="middle",r=1.5*Qb>o&&o>Qb/2?l?"left":"right":l?"right":"left"),{rotation:o,textAlign:r,textVerticalAlign:a}}function oc(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function sc(t,e,i){var n=t.get("axisLabel.showMinLabel"),r=t.get("axisLabel.showMaxLabel");e=e||[],i=i||[];var a=e[0],o=e[1],s=e[e.length-1],l=e[e.length-2],h=i[0],u=i[1],c=i[i.length-1],d=i[i.length-2];n===!1?(lc(a),lc(h)):hc(a,o)&&(n?(lc(o),lc(u)):(lc(a),lc(h))),r===!1?(lc(s),lc(c)):hc(l,s)&&(r?(lc(l),lc(d)):(lc(s),lc(c)))}function lc(t){t&&(t.ignore=!0)}function hc(t,e){var i=t&&t.getBoundingRect().clone(),n=e&&e.getBoundingRect().clone();if(i&&n){var r=Se([]);return Ce(r,r,-t.rotation),i.applyTransform(Ie([],r,t.getLocalTransform())),n.applyTransform(Ie([],r,e.getLocalTransform())),i.intersect(n)}}function uc(t){return"middle"===t||"center"===t}function cc(t,e,i){var n=e.axis;if(e.get("axisTick.show")&&!n.scale.isBlank()){for(var r=e.getModel("axisTick"),a=r.getModel("lineStyle"),o=r.get("length"),l=n.getTicksCoords(),h=[],u=[],c=t._transform,d=[],f=0;f=0||t===e}function xc(t){var e=_c(t);if(e){var i=e.axisPointerModel,n=e.axis.scale,r=i.option,a=i.get("status"),o=i.get("value");null!=o&&(o=n.parse(o));var s=bc(i);null==a&&(r.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==o||o>l[1])&&(o=l[1]),o0?i=n[0]:n[1]<0&&(i=n[1]),i}function Vc(t,e,i,n){var r=0/0;t.stacked&&(r=i.get(i.getCalculationInfo("stackedOverDimension"),n)),isNaN(r)&&(r=t.valueStart);var a=t.baseDataOffset,o=[];return o[a]=i.get(t.baseDim,n),o[1-a]=r,e.dataToPoint(o)}function Wc(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}function Gc(t){return isNaN(t[0])||isNaN(t[1])}function Hc(t,e,i,n,r,a,o,s,l,h){return"none"!==h&&h?Zc.apply(this,arguments):Xc.apply(this,arguments)}function Zc(t,e,i,n,r,a,o,s,l,h,u){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=r||0>d)break;if(Gc(p)){if(u){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],v="y"===h?1:0,m=(p[v]-g[v])*l;_S(bS,g),bS[v]=g[v]+m,_S(SS,p),SS[v]=p[v]-m,t.bezierCurveTo(bS[0],bS[1],SS[0],SS[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Xc(t,e,i,n,r,a,o,s,l,h,u){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=r||0>d)break;if(Gc(p)){if(u){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),_S(bS,p);else if(l>0){var g=d+a,v=e[g];if(u)for(;v&&Gc(e[g]);)g+=a,v=e[g];var m=.5,y=e[c],v=e[g];if(!v||Gc(v))_S(SS,p);else{Gc(v)&&!u&&(v=p),j(wS,v,y);var x,_;if("x"===h||"y"===h){var w="x"===h?0:1;x=Math.abs(p[w]-y[w]),_=Math.abs(p[w]-v[w])}else x=yg(p,y),_=yg(p,v);m=_/(_+x),xS(SS,p,wS,-l*(1-m))}mS(bS,bS,s),yS(bS,bS,o),mS(SS,SS,s),yS(SS,SS,o),t.bezierCurveTo(bS[0],bS[1],SS[0],SS[1],p[0],p[1]),xS(bS,p,wS,l*m)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Yc(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var r=0;rn[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}function jc(t,e){if(t.length===e.length){for(var i=0;ie[0]?1:-1;e[0]+=n*i,e[1]-=n*i}return e}function $c(t,e,i){if(!i.valueDim)return[];for(var n=[],r=0,a=e.count();a>r;r++)n.push(Vc(i,t,e,r));return n}function Kc(t,e,i,n){var r=Uc(t.getAxis("x")),a=Uc(t.getAxis("y")),o=t.getBaseAxis().isHorizontal(),s=Math.min(r[0],r[1]),l=Math.min(a[0],a[1]),h=Math.max(r[0],r[1])-s,u=Math.max(a[0],a[1])-l;if(i)s-=.5,h+=.5,l-=.5,u+=.5;else{var c=n.get("lineStyle.width")||2,d=n.get("clipOverflow")?c/2:Math.max(h,u);o?(l-=d,u+=2*d):(s-=d,h+=2*d)}var f=new Dy({shape:{x:s,y:l,width:h,height:u}});return e&&(f.shape[o?"width":"height"]=0,Oa(f,{shape:{width:h,height:u}},n)),f}function Qc(t,e,i,n){var r=t.getAngleAxis(),a=t.getRadiusAxis(),o=a.getExtent().slice();o[0]>o[1]&&o.reverse();var s=r.getExtent(),l=Math.PI/180;i&&(o[0]-=.5,o[1]+=.5);var h=new Sy({shape:{cx:$a(t.cx,1),cy:$a(t.cy,1),r0:$a(o[0],1),r:$a(o[1],1),startAngle:-s[0]*l,endAngle:-s[1]*l,clockwise:r.inverse}});return e&&(h.shape.endAngle=-s[0]*l,Oa(h,{shape:{endAngle:-s[1]*l}},n)),h}function Jc(t,e,i,n){return"polar"===t.type?Qc(t,e,i,n):Kc(t,e,i,n)}function td(t,e,i){for(var n=e.getBaseAxis(),r="x"===n.dim||"radius"===n.dim?0:1,a=[],o=0;o=0;a--){var o=i[a].dimension,s=t.dimensions[o],l=t.getDimensionInfo(s);if(n=l&&l.coordDim,"x"===n||"y"===n){r=i[a];break}}if(r){var h=e.getAxis(n),u=p(r.stops,function(t){return{coord:h.toGlobalCoord(h.dataToCoord(t.value)),color:t.color}}),c=u.length,d=r.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),d.reverse());var g=10,v=u[0].coord-g,m=u[c-1].coord+g,y=m-v;if(.001>y)return"transparent";f(u,function(t){t.offset=(t.coord-v)/y}),u.push({offset:c?u[c-1].offset:.5,color:d[1]||"transparent"}),u.unshift({offset:c?u[0].offset:.5,color:d[0]||"transparent"});var x=new Ry(0,0,0,0,u,!0);return x[n]=v,x[n+"2"]=m,x}}}function id(t,e,i){var n=t.get("showAllSymbol"),r="auto"===n;if(!n||r){var a=i.getAxesByScale("ordinal")[0];if(a&&(!r||!nd(a,e))){var o=e.mapDimension(a.dim),s={};return f(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(o,t))}}}}function nd(t,e){var i=t.getExtent(),n=Math.abs(i[1]-i[0])/t.scale.count();isNaN(n)&&(n=0);for(var r=e.count(),a=Math.max(1,Math.round(r/5)),o=0;r>o;o+=a)if(1.5*Cc.getSymbolSize(e,o)[t.isHorizontal()?1:0]>n)return!1;return!0}function rd(t,e,i,n){var r=e.getData(),a=this.dataIndex,o=r.getName(a),s=e.get("selectedOffset");n.dispatchAction({type:"pieToggleSelect",from:t,name:o,seriesId:e.id}),r.each(function(t){ad(r.getItemGraphicEl(t),r.getItemLayout(t),e.isSelected(r.getName(t)),s,i)})}function ad(t,e,i,n,r){var a=(e.startAngle+e.endAngle)/2,o=Math.cos(a),s=Math.sin(a),l=i?n:0,h=[o*l,s*l];r?t.animate().when(200,{position:h}).start("bounceOut"):t.attr("position",h)}function od(t,e){function i(){a.ignore=a.hoverIgnore,o.ignore=o.hoverIgnore}function n(){a.ignore=a.normalIgnore,o.ignore=o.normalIgnore}lv.call(this);var r=new Sy({z2:2}),a=new Ay,o=new xy;this.add(r),this.add(a),this.add(o),this.updateData(t,e,!0),this.on("emphasis",i).on("normal",n).on("mouseover",i).on("mouseout",n)}function sd(t,e,i,n,r,a,o){function s(e,i,n){for(var r=e;i>r;r++)if(t[r].y+=n,r>e&&i>r+1&&t[r+1].y>t[r].y+t[r].height)return void l(r,n/2);l(i-1,n/2)}function l(e,i){for(var n=e;n>=0&&(t[n].y-=i,!(n>0&&t[n].y>t[n-1].y+t[n-1].height));n--);}function h(t,e,i,n,r,a){for(var o=a>0?e?Number.MAX_VALUE:0:e?Number.MAX_VALUE:0,s=0,l=t.length;l>s;s++)if("center"!==t[s].position){var h=Math.abs(t[s].y-n),u=t[s].len,c=t[s].len2,d=r+u>h?Math.sqrt((r+u+c)*(r+u+c)-h*h):Math.abs(t[s].x-i);e&&d>=o&&(d=o-10),!e&&o>=d&&(d=o+10),t[s].x=i+d*a,o=d}}t.sort(function(t,e){return t.y-e.y});for(var u,c=0,d=t.length,f=[],p=[],g=0;d>g;g++)u=t[g].y-c,0>u&&s(g,d,-u,r),c=t[g].y+t[g].height;0>o-c&&l(d-1,c-o);for(var g=0;d>g;g++)t[g].y>=i?p.push(t[g]):f.push(t[g]);h(f,!1,e,i,n,r),h(p,!0,e,i,n,r)}function ld(t,e,i,n,r,a){for(var o=[],s=[],l=0;lu;u++)a[u]&&xd(t.childAt(u),e,a[u],n,t,r)}}function wd(t){new uh(t.oldChildren,t.newChildren,bd,bd,t).add(Sd).update(Sd).remove(Md).execute()}function bd(t,e){var i=t&&t.name;return null!=i?i:KS+e}function Sd(t,e){var i=this.context,n=null!=t?i.newChildren[t]:null,r=null!=e?i.oldChildren[e]:null;xd(r,i.dataIndex,n,i.animatableModel,i.group,i.data)}function Md(t){var e=this.context,i=e.oldChildren[t];i&&e.group.remove(i)}function Id(t){return t&&(t.pathData||t.d)}function Td(t){return t&&(t.hasOwnProperty("pathData")||t.hasOwnProperty("d"))}function Cd(t,e){return t&&t.hasOwnProperty(e)}function Ad(t,e,i){var n,r={},a="toggleSelected"===t;return i.eachComponent("legend",function(i){a&&null!=n?i[n?"select":"unSelect"](e.name):(i[t](e.name),n=i.isSelected(e.name));var o=i.getData();f(o,function(t){var e=t.get("name");if("\n"!==e&&""!==e){var n=i.isSelected(e);r[e]=r.hasOwnProperty(e)?r[e]&&n:n}})}),{name:e.name,selected:r}}function Dd(t,e){var i=rx(e.get("padding")),n=e.getItemStyle(["color","opacity"]);n.fill=e.get("backgroundColor");var t=new Dy({shape:{x:t.x-i[3],y:t.y-i[0],width:t.width+i[1]+i[3],height:t.height+i[0]+i[2],r:e.get("borderRadius")},style:n,silent:!0,z2:-1});return t}function kd(t,e){e.dispatchAction({type:"legendToggleSelect",name:t})}function Pd(t,e,i,n){var r=i.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||i.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:n})}function Ld(t,e,i,n){var r=i.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||i.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:n})}function Od(t,e,i){var n=t.getOrient(),r=[1,1];r[n.index]=0,So(e,i,{type:"box",ignoreSize:r})}function zd(t,e,i,n,r){var a=t.axis;if(!a.scale.isBlank()&&a.containData(e)){if(!t.involveSeries)return void i.showPointer(t,e);var s=Ed(e,t),l=s.payloadBatch,h=s.snapToValue;l[0]&&null==r.seriesIndex&&o(r,l[0]),!n&&t.snap&&a.containData(h)&&null!=h&&(e=h),i.showPointer(t,e,l,r),i.showTooltip(t,s,h)}}function Ed(t,e){var i=e.axis,n=i.dim,r=t,a=[],o=Number.MAX_VALUE,s=-1;return cM(e.seriesModels,function(e){var l,h,u=e.getData().mapDimension(n,!0);if(e.getAxisTooltipData){var c=e.getAxisTooltipData(u,t,i);h=c.dataIndices,l=c.nestestValue}else{if(h=e.getData().indicesOfNearest(u[0],t,"category"===i.type?.5:null),!h.length)return;l=e.getData().get(u[0],h[0])}if(null!=l&&isFinite(l)){var d=t-l,f=Math.abs(d);o>=f&&((o>f||d>=0&&0>s)&&(o=f,s=d,r=l,a.length=0),cM(h,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:r}}function Rd(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function Bd(t,e,i,n){var r=i.payloadBatch,a=e.axis,o=a.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,h=Sc(l),u=t.map[h];u||(u=t.map[h]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(u)),u.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:r.slice()})}}function Nd(t,e,i){var n=i.axesInfo=[];cM(e,function(e,i){var r=e.axisPointerModel.option,a=t[i];a?(!e.useHandle&&(r.status="show"),r.value=a.value,r.seriesDataIndices=(a.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&n.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})})}function Fd(t,e,i,n){if(Hd(e)||!t.list.length)return void n({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}function Vd(t,e,i){var n=i.getZr(),r="axisPointerLastHighlights",a=fM(n)[r]||{},o=fM(n)[r]={};cM(t,function(t){var e=t.axisPointerModel.option;"show"===e.status&&cM(e.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;o[e]=t})});var s=[],l=[];f(a,function(t,e){!o[e]&&l.push(t)}),f(o,function(t,e){!a[e]&&s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}function Wd(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}function Gd(t){var e=t.axis.model,i={},n=i.axisDim=t.axis.dim;return i.axisIndex=i[n+"AxisIndex"]=e.componentIndex,i.axisName=i[n+"AxisName"]=e.name,i.axisId=i[n+"AxisId"]=e.id,i}function Hd(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function Zd(t,e,i){if(!tg.node){var n=e.getZr();gM(n).records||(gM(n).records={}),Xd(n,e);var r=gM(n).records[t]||(gM(n).records[t]={});r.handler=i}}function Xd(t,e){function i(i,n){t.on(i,function(i){var r=Ud(e);vM(gM(t).records,function(t){t&&n(t,i,r.dispatchAction)}),Yd(r.pendings,e)})}gM(t).initialized||(gM(t).initialized=!0,i("click",x(qd,"click")),i("mousemove",x(qd,"mousemove")),i("globalout",jd))}function Yd(t,e){var i,n=t.showTip.length,r=t.hideTip.length;n?i=t.showTip[n-1]:r&&(i=t.hideTip[r-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function jd(t,e,i){t.handler("leave",null,i)}function qd(t,e,i,n){e.handler(t,i,n)}function Ud(t){var e={showTip:[],hideTip:[]},i=function(n){var r=e[n.type];r?r.push(n):(n.dispatchAction=i,t.dispatchAction(n))};return{dispatchAction:i,pendings:e}}function $d(t,e){if(!tg.node){var i=e.getZr(),n=(gM(i).records||{})[t];n&&(gM(i).records[t]=null)}}function Kd(){}function Qd(t,e,i,n){Jd(yM(i).lastProp,n)||(yM(i).lastProp=n,e?La(i,n,t):(i.stopAnimation(),i.attr(n)))}function Jd(t,e){if(S(t)&&S(e)){var i=!0;return f(e,function(e,n){i=i&&Jd(t[n],e)}),!!i}return t===e}function tf(t,e){t[e.get("label.show")?"show":"hide"]()}function ef(t){return{position:t.position.slice(),rotation:t.rotation||0}}function nf(t,e,i){var n=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=r&&(t.zlevel=r),t.silent=i)})}function rf(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle(),e.fill=null):"shadow"===i&&(e=n.getAreaStyle(),e.stroke=null),e}function af(t,e,i,n,r){var a=i.get("value"),o=sf(a,e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),s=i.getModel("label"),l=rx(s.get("padding")||0),h=s.getFont(),u=Ei(o,h),c=r.position,d=u.width+l[1]+l[3],f=u.height+l[0]+l[2],p=r.align;"right"===p&&(c[0]-=d),"center"===p&&(c[0]-=d/2);var g=r.verticalAlign;"bottom"===g&&(c[1]-=f),"middle"===g&&(c[1]-=f/2),of(c,d,f,n);var v=s.get("backgroundColor");v&&"auto"!==v||(v=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:d,height:f,r:s.get("borderRadius")},position:c.slice(),style:{text:o,textFont:h,textFill:s.getTextColor(),textPosition:"inside",fill:v,stroke:s.get("borderColor")||"transparent",lineWidth:s.get("borderWidth")||0,shadowBlur:s.get("shadowBlur"),shadowColor:s.get("shadowColor"),shadowOffsetX:s.get("shadowOffsetX"),shadowOffsetY:s.get("shadowOffsetY")},z2:10}}function of(t,e,i,n){var r=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+i,a)-i,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function sf(t,e,i,n,r){t=e.scale.parse(t);var a=e.scale.getLabel(t,{precision:r.precision}),o=r.formatter;if(o){var s={value:hu(e,t),seriesData:[]};f(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,r=e&&e.getDataParams(n);r&&s.seriesData.push(r)}),b(o)?a=o.replace("{value}",a):w(o)&&(a=o(s))}return a}function lf(t,e,i){var n=be();return Ce(n,n,i.rotation),Te(n,n,i.position),Ea([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function hf(t,e,i,n,r,a){var o=Jb.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=r.get("label.margin"),af(e,n,r,a,{position:lf(n.axis,t,i),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function uf(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}}function cf(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}function df(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function ff(t){return"x"===t.dim?0:1}function pf(t){var e="cubic-bezier(0.23, 1, 0.32, 1)",i="left "+t+"s "+e+",top "+t+"s "+e;return p(IM,function(t){return t+"transition:"+i}).join(";")}function gf(t){var e=[],i=t.get("fontSize"),n=t.getTextColor();return n&&e.push("color:"+n),e.push("font:"+t.getFont()),i&&e.push("line-height:"+Math.round(3*i/2)+"px"),SM(["decoration","align"],function(i){var n=t.get(i);n&&e.push("text-"+i+":"+n)}),e.join(";")}function vf(t){var e=[],i=t.get("transitionDuration"),n=t.get("backgroundColor"),r=t.getModel("textStyle"),a=t.get("padding");return i&&e.push(pf(i)),n&&(tg.canvasSupported?e.push("background-Color:"+n):(e.push("background-Color:#"+je(n)),e.push("filter:alpha(opacity=70)"))),SM(["width","color","radius"],function(i){var n="border-"+i,r=MM(n),a=t.get(r);null!=a&&e.push(n+":"+a+("color"===i?"":"px"))}),e.push(gf(r)),null!=a&&e.push("padding:"+rx(a).join("px ")+"px"),e.join(";")+";"}function mf(t,e){if(tg.wxa)return null;var i=document.createElement("div"),n=this._zr=e.getZr();this.el=i,this._x=e.getWidth()/2,this._y=e.getHeight()/2,t.appendChild(i),this._container=t,this._show=!1,this._hideTimeout;var r=this;i.onmouseenter=function(){r._enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},i.onmousemove=function(e){if(e=e||window.event,!r._enterable){var i=n.handler;pe(t,e,!0),i.dispatch("mousemove",e)}},i.onmouseleave=function(){r._enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}function yf(t){this._zr=t.getZr(),this._show=!1,this._hideTimeout}function xf(t){for(var e=t.pop();t.length;){var i=t.pop();i&&(Wa.isInstance(i)&&(i=i.get("tooltip",!0)),"string"==typeof i&&(i={formatter:i}),e=new Wa(i,e,e.ecModel))}return e}function _f(t,e){return t.dispatchAction||y(e.dispatchAction,e)}function wf(t,e,i,n,r,a,o){var s=i.getOuterSize(),l=s.width,h=s.height;return null!=a&&(t+l+a>n?t-=l+a:t+=a),null!=o&&(e+h+o>r?e-=h+o:e+=o),[t,e]}function bf(t,e,i,n,r){var a=i.getOuterSize(),o=a.width,s=a.height;return t=Math.min(t+o,n)-o,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function Sf(t,e,i){var n=i[0],r=i[1],a=5,o=0,s=0,l=e.width,h=e.height;switch(t){case"inside":o=e.x+l/2-n/2,s=e.y+h/2-r/2;break;case"top":o=e.x+l/2-n/2,s=e.y-r-a;break;case"bottom":o=e.x+l/2-n/2,s=e.y+h+a;break;case"left":o=e.x-n-a,s=e.y+h/2-r/2;break;case"right":o=e.x+l+a,s=e.y+h/2-r/2}return[o,s]}function Mf(t){return"center"===t||"middle"===t}function If(t){Fn(t,"label",["show"])}function Tf(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function Cf(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function Af(t,e,i,n,r,a){var o=[],s=Ph(e,n),l=s?e.getCalculationInfo("stackResultDimension"):n,h=zf(e,l,t),u=e.indicesOfNearest(l,h)[0];o[r]=e.get(i,u),o[a]=e.get(n,u);var c=Qa(e.get(n,u));return c=Math.min(c,20),c>=0&&(o[a]=+o[a].toFixed(c)),o}function Df(t,e){var i=t.getData(),r=t.coordinateSystem;if(e&&!Cf(e)&&!_(e.coord)&&r){var a=r.dimensions,o=kf(e,i,r,t);if(e=n(e),e.type&&RM[e.type]&&o.baseAxis&&o.valueAxis){var s=zM(a,o.baseAxis.dim),l=zM(a,o.valueAxis.dim);e.coord=RM[e.type](i,o.baseDataDim,o.valueDataDim,s,l),e.value=e.coord[l]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],u=0;2>u;u++)RM[h[u]]&&(h[u]=zf(i,i.mapDimension(a[u]),h[u]));e.coord=h}}return e}function kf(t,e,i,n){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=i.getAxis(Pf(n,r.valueDataDim)),r.baseAxis=i.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=n.getBaseAxis(),r.valueAxis=i.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function Pf(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var r=0;rn?t.coord&&t.coord[n]:t.value}function zf(t,e,i){if("average"===i){var n=0,r=0;return t.each(e,function(t){isNaN(t)||(n+=t,r++)}),n/r}return"median"===i?t.getMedian(e):t.getDataExtent(e,!0)["max"===i?1:0]}function Ef(t,e,i){var n=e.coordinateSystem;t.each(function(r){var a,o=t.getItemModel(r),s=Ua(o.get("x"),i.getWidth()),l=Ua(o.get("y"),i.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)a=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(n){var h=t.get(n.dimensions[0],r),u=t.get(n.dimensions[1],r);a=n.dataToPoint([h,u])}}else a=[s,l];isNaN(s)||(a[0]=s),isNaN(l)||(a[1]=l),t.setItemLayout(r,a)})}function Rf(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var r=new Bw(n,i),a=p(i.get("data"),x(Df,e));return t&&(a=v(a,x(Lf,t))),r.initData(a,null,t?Of:function(t){return t.value}),r}function Bf(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}function Nf(t){return"_"+t+"Type"}function Ff(t,e,i){var n=e.getItemVisual(i,"color"),r=e.getItemVisual(i,t),a=e.getItemVisual(i,t+"Size");if(r&&"none"!==r){_(a)||(a=[a,a]);var o=fu(r,-a[0]/2,-a[1]/2,a[0],a[1],n);return o.name=t,o}}function Vf(t){var e=new VM({name:"line"});return Wf(e.shape,t),e}function Wf(t,e){var i=e[0],n=e[1],r=e[2];t.x1=i[0],t.y1=i[1],t.x2=n[0],t.y2=n[1],t.percent=1,r?(t.cpx1=r[0],t.cpy1=r[1]):(t.cpx1=0/0,t.cpy1=0/0)}function Gf(){var t=this,e=t.childOfName("fromSymbol"),i=t.childOfName("toSymbol"),n=t.childOfName("label");if(e||i||!n.ignore){for(var r=1,a=this.parent;a;)a.scale&&(r/=a.scale[0]),a=a.parent;var o=t.childOfName("line");if(this.__dirty||o.__dirty){var s=o.shape.percent,l=o.pointAt(0),h=o.pointAt(s),u=j([],h,l);if(te(u,u),e){e.attr("position",l);var c=o.tangentAt(0);e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[r*s,r*s])}if(i){i.attr("position",h);var c=o.tangentAt(1);i.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),i.attr("scale",[r*s,r*s])}if(!n.ignore){n.attr("position",h);var d,f,p,g=5*r;if("end"===n.__position)d=[u[0]*g+h[0],u[1]*g+h[1]],f=u[0]>.8?"left":u[0]<-.8?"right":"center",p=u[1]>.8?"top":u[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var v=s/2,c=o.tangentAt(v),m=[c[1],-c[0]],y=o.pointAt(v);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]),d=[y[0]+m[0]*g,y[1]+m[1]*g],f="center",p="bottom";var x=-Math.atan2(c[1],c[0]);h[0].8?"right":u[0]<-.8?"left":"center",p=u[1]>.8?"bottom":u[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||p,textAlign:n.__textAlign||f},position:d,scale:[r,r]})}}}}function Hf(t,e,i){lv.call(this),this._createLine(t,e,i)}function Zf(t){this._ctor=t||Hf,this.group=new lv}function Xf(t,e,i,n){var r=e.getItemLayout(i);if(Uf(r)){var a=new t._ctor(e,i,n);e.setItemGraphicEl(i,a),t.group.add(a)}}function Yf(t,e,i,n,r,a){var o=e.getItemGraphicEl(n);return Uf(i.getItemLayout(r))?(o?o.updateData(i,r,a):o=new t._ctor(i,r,a),i.setItemGraphicEl(r,o),void t.group.add(o)):void t.group.remove(o)}function jf(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),hoverLineStyle:e.getModel("emphasis.lineStyle").getLineStyle(),labelModel:e.getModel("label"),hoverLabelModel:e.getModel("emphasis.label")}}function qf(t){return isNaN(t[0])||isNaN(t[1])}function Uf(t){return!qf(t[0])&&!qf(t[1])}function $f(t){return!isNaN(t)&&!isFinite(t)}function Kf(t,e,i,n){var r=1-t,a=n.dimensions[t];return $f(e[r])&&$f(i[r])&&e[t]===i[t]&&n.getAxis(a).containData(e[t])}function Qf(t,e){if("cartesian2d"===t.type){var i=e[0].coord,n=e[1].coord;if(i&&n&&(Kf(1,i,n,t)||Kf(0,i,n,t)))return!0}return Lf(t,e[0])&&Lf(t,e[1])}function Jf(t,e,i,n,r){var a,o=n.coordinateSystem,s=t.getItemModel(e),l=Ua(s.get("x"),r.getWidth()),h=Ua(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(h)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(t.dimensions,e));else{var u=o.dimensions,c=t.get(u[0],e),d=t.get(u[1],e);a=o.dataToPoint([c,d])}if("cartesian2d"===o.type){var f=o.getAxis("x"),p=o.getAxis("y"),u=o.dimensions;$f(t.get(u[0],e))?a[0]=f.toGlobalCoord(f.getExtent()[i?0:1]):$f(t.get(u[1],e))&&(a[1]=p.toGlobalCoord(p.getExtent()[i?0:1]))}isNaN(l)||(a[0]=l),isNaN(h)||(a[1]=h)}else a=[l,h];t.setItemLayout(e,a)}function tp(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var r=new Bw(n,i),a=new Bw(n,i),o=new Bw([],i),l=p(i.get("data"),x(ZM,e,t,i));t&&(l=v(l,x(Qf,t)));var h=t?Of:function(t){return t.value};return r.initData(p(l,function(t){return t[0]}),null,h),a.initData(p(l,function(t){return t[1]}),null,h),o.initData(p(l,function(t){return t[2]})),o.hasItemOption=!0,{from:r,to:a,line:o}}function ep(t){return!isNaN(t)&&!isFinite(t)}function ip(t,e,i){var n=1-t;return ep(e[n])&&ep(i[n])}function np(t,e){var i=e.coord[0],n=e.coord[1];return"cartesian2d"===t.type&&i&&n&&(ip(1,i,n,t)||ip(0,i,n,t))?!0:Lf(t,{coord:i,x:e.x0,y:e.y0})||Lf(t,{coord:n,x:e.x1,y:e.y1})}function rp(t,e,i,n,r){var a,o=n.coordinateSystem,s=t.getItemModel(e),l=Ua(s.get(i[0]),r.getWidth()),h=Ua(s.get(i[1]),r.getHeight());if(isNaN(l)||isNaN(h)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(i,e));else{var u=t.get(i[0],e),c=t.get(i[1],e),d=[u,c];o.clampData&&o.clampData(d,d),a=o.dataToPoint(d,!0)}if("cartesian2d"===o.type){var f=o.getAxis("x"),p=o.getAxis("y"),u=t.get(i[0],e),c=t.get(i[1],e);ep(u)?a[0]=f.toGlobalCoord(f.getExtent()["x0"===i[0]?0:1]):ep(c)&&(a[1]=p.toGlobalCoord(p.getExtent()["y0"===i[1]?0:1]))}isNaN(l)||(a[0]=l),isNaN(h)||(a[1]=h)}else a=[l,h];return a}function ap(t,e,i){var n,r,a=["x0","y0","x1","y1"];t?(n=p(t&&t.dimensions,function(t){var i=e.getData(),n=i.getDimensionInfo(i.mapDimension(t))||{};return s({name:t},n)}),r=new Bw(p(a,function(t,e){return{name:t,type:n[e%2].type}}),i)):(n=[{name:"value",type:"float"}],r=new Bw(n,i));var o=p(i.get("data"),x(XM,e,t,i));t&&(o=v(o,x(np,t)));var l=t?function(t,e,i,n){return t.coord[Math.floor(n/2)][n%2]}:function(t){return t.value};return r.initData(o,null,l),r.hasItemOption=!0,r}function op(t){var e=t.type,i={number:"value",time:"time"};if(i[e]&&(t.axisType=i[e],delete t.type),sp(t),lp(t,"controlPosition")){var n=t.controlStyle||(t.controlStyle={});lp(n,"position")||(n.position=t.controlPosition),"none"!==n.position||lp(n,"show")||(n.show=!1,delete n.position),delete t.controlPosition}f(t.data||[],function(t){S(t)&&!_(t)&&(!lp(t,"value")&&lp(t,"name")&&(t.value=t.name),sp(t))})}function sp(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},r=n.normal||(n.normal={}),a={normal:1,emphasis:1};f(n,function(t,e){a[e]||lp(r,e)||(r[e]=t)}),i.label&&!lp(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function lp(t,e){return t.hasOwnProperty(e)}function hp(t,e){return bo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}function up(t,e,i,r){var a=Qr(t.get(e).replace(/^path:\/\//,""),n(r||{}),new gi(i[0],i[1],i[2],i[3]),"center");return a}function cp(t,e,i,n,a,o){var s=e.get("color");if(a)a.setColor(s),i.add(a),o&&o.onUpdate(a);else{var l=t.get("symbol");a=fu(l,-1,-1,2,2,s),a.setStyle("strokeNoScale",!0),i.add(a),o&&o.onCreate(a)}var h=e.getItemStyle(["color","symbol","symbolSize"]);a.setStyle(h),n=r({rectHover:!0,z2:100},n,!0);var u=t.get("symbolSize");u=u instanceof Array?u.slice():[+u,+u],u[0]/=2,u[1]/=2,n.scale=u;var c=t.get("symbolOffset");if(c){var d=n.position=n.position||[0,0];d[0]+=Ua(c[0],u[0]),d[1]+=Ua(c[1],u[1])}var f=t.get("symbolRotate");return n.rotation=(f||0)*Math.PI/180||0,a.attr(n),a.updateTransform(),a}function dp(t,e,i,n,r){if(!t.dragging){var a=n.getModel("checkpointStyle"),o=i.dataToCoord(n.getData().get(["value"],e));r||!a.get("animation",!0)?t.attr({position:[o,0]}):(t.stopAnimation(!0),t.animateTo({position:[o,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}function fp(t){return h(iI,t)>=0}function pp(t,e){t=t.slice();var i=p(t,_o);e=(e||[]).slice();var n=p(e,_o);return function(r,a){f(t,function(t,o){for(var s={name:t,capital:i[o]},l=0;l=0}function r(t,n){var r=!1;return e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]&&(r=!0)})}),r}function a(t,n){n.nodes.push(t),e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){function o(t){!n(t,s)&&r(t,s)&&(a(t,s),l=!0)}var s={nodes:[],records:{}};if(e(function(t){s.records[t.name]={}}),!i)return s;a(i,s);var l;do l=!1,t(o);while(l);return s}}function vp(t,e,i){var n=[1/0,-1/0];return rI(i,function(t){var i=t.getData();i&&rI(i.mapDimension(e,!0),function(t){var e=i.getApproximateExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:0/0);var o=i.getMax(!0);return null!=o&&"dataMax"!==o&&"function"!=typeof o?e[1]=o:r&&(e[1]=a>0?a-1:0/0),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function yp(t,e){var i=t.getAxisModel(),n=t._percentWindow,r=t._valueWindow;if(n){var a=to(r,[0,500]);a=Math.min(a,20);var o=e||0===n[0]&&100===n[1];i.setRange(o?null:+r[0].toFixed(a),o?null:+r[1].toFixed(a))}}function xp(t){var e=t._minMaxSpan={},i=t._dataZoomModel;rI(["min","max"],function(n){e[n+"Span"]=i.get(n+"Span");var r=i.get(n+"ValueSpan");if(null!=r&&(e[n+"ValueSpan"]=r,r=t.getAxisModel().axis.scale.parse(r),null!=r)){var a=t._dataExtent;e[n+"Span"]=qa(a[0]+r,a,[0,100],!0)}})}function _p(t){var e={};return sI(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function wp(t,e){var i=t._rangePropMode,n=t.get("rangeMode");sI([["start","startValue"],["end","endValue"]],function(t,r){var a=null!=e[t[0]],o=null!=e[t[1]];a&&!o?i[r]="percent":!a&&o?i[r]="value":n?i[r]=n[r]:a&&(i[r]="percent")})}function bp(t,e){var i=t[e]-t[1-e];return{span:Math.abs(i),sign:i>0?-1:0>i?1:e?-1:1}}function Sp(t,e){return Math.min(e[1],Math.max(e[0],t))}function Mp(t){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[t]}function Ip(t){return"vertical"===t?"ns-resize":"ew-resize"}function Tp(t,e){return!!Cp(t)[e]}function Cp(t){return t[II]||(t[II]={})}function Ap(t){this.pointerChecker,this._zr=t,this._opt={};var e=y,i=e(Dp,this),r=e(kp,this),a=e(Pp,this),o=e(Lp,this),l=e(Op,this);bg.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,h){this.disable(),this._opt=s(n(h)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==e&&(e=!0),(e===!0||"move"===e||"pan"===e)&&(t.on("mousedown",i),t.on("mousemove",r),t.on("mouseup",a)),(e===!0||"scale"===e||"zoom"===e)&&(t.on("mousewheel",o),t.on("pinch",l))},this.disable=function(){t.off("mousedown",i),t.off("mousemove",r),t.off("mouseup",a),t.off("mousewheel",o),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function Dp(t){if(!(me(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function kp(t){if(!me(t)&&Rp("moveOnMouseMove",t,this._opt)&&this._dragging&&"pinch"!==t.gestureEvent&&!Tp(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,r=this._y,a=e-n,o=i-r;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&Ig(t.event),Ep(this,"pan","moveOnMouseMove",t,{dx:a,dy:o,oldX:n,oldY:r,newX:e,newY:i})}}function Pp(t){me(t)||(this._dragging=!1)}function Lp(t){var e=Rp("zoomOnMouseWheel",t,this._opt),i=Rp("moveOnMouseWheel",t,this._opt),n=t.wheelDelta,r=Math.abs(n),a=t.offsetX,o=t.offsetY;if(0!==n&&(e||i)){if(e){var s=r>3?1.4:r>1?1.2:1.1,l=n>0?s:1/s;zp(this,"zoom","zoomOnMouseWheel",t,{scale:l,originX:a,originY:o})}if(i){var h=Math.abs(n),u=(n>0?1:-1)*(h>3?.4:h>1?.15:.05);zp(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:u,originX:a,originY:o})}}}function Op(t){if(!Tp(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;zp(this,"zoom",null,t,{scale:e,originX:t.pinchX,originY:t.pinchY})}}function zp(t,e,i,n,r){t.pointerChecker&&t.pointerChecker(n,r.originX,r.originY)&&(Ig(n.event),Ep(t,e,i,n,r))}function Ep(t,e,i,n,r){r.isAvailableBehavior=y(Rp,null,i,n),t.trigger(e,r)}function Rp(t,e,i){var n=i[t];return!t||n&&(!b(n)||e.event[n+"Key"])}function Bp(t,e){var i=Vp(t),n=e.dataZoomId,r=e.coordId;f(i,function(t){var i=t.dataZoomInfos;i[n]&&h(e.allCoordIds,r)<0&&(delete i[n],t.count--)}),Gp(i);var a=i[r];a||(a=i[r]={coordId:r,dataZoomInfos:{},count:0},a.controller=Wp(t,a),a.dispatchAction=x(Hp,t)),!a.dataZoomInfos[n]&&a.count++,a.dataZoomInfos[n]=e;var o=Zp(a.dataZoomInfos);a.controller.enable(o.controlType,o.opt),a.controller.setPointerChecker(e.containsPoint),Hs(a,"dispatchAction",e.dataZoomModel.get("throttle",!0),"fixRate")}function Np(t,e){var i=Vp(t);f(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),Gp(i)}function Fp(t){return t.type+"\x00_"+t.id}function Vp(t){var e=t.getZr();return e[TI]||(e[TI]={})}function Wp(t,e){var i=new Ap(t.getZr());return f(["pan","zoom","scrollMove"],function(t){i.on(t,function(i){var n=[];f(e.dataZoomInfos,function(r){if(i.isAvailableBehavior(r.dataZoomModel.option)){var a=(r.getRange||{})[t],o=a&&a(e.controller,i);!r.dataZoomModel.get("disabled",!0)&&o&&n.push({dataZoomId:r.dataZoomId,start:o[0],end:o[1]})}}),n.length&&e.dispatchAction(n)})}),i}function Gp(t){f(t,function(e,i){e.count||(e.controller.dispose(),delete t[i])})}function Hp(t,e){t.dispatchAction({type:"dataZoom",batch:e})}function Zp(t){var e,i="type_",n={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return f(t,function(t){var a=t.dataZoomModel,o=a.get("disabled",!0)?!1:a.get("zoomLock",!0)?"move":!0;n[i+o]>n[i+e]&&(e=o),r&=a.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}function Xp(t){return function(e,i,n,r){var a=this._range,o=a.slice(),s=e.axisModels[0];if(s){var l=t(o,s,e,i,n,r);return cI(l,o,[0,100],"all"),this._range=o,a[0]!==o[0]||a[1]!==o[1]?o:void 0}}}function Yp(t){return PI(t)}function jp(){if(!zI&&EI){zI=!0;var t=EI.styleSheets;t.length<31?EI.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function qp(t){return parseInt(t,10)}function Up(t,e){jp(),this.root=t,this.storage=e;var i=document.createElement("div"),n=document.createElement("div");i.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",n.style.cssText="position:absolute;left:0;top:0;",t.appendChild(i),this._vmlRoot=n,this._vmlViewport=i,this.resize();var r=e.delFromStorage,a=e.addToStorage;e.delFromStorage=function(t){r.call(e,t),t&&t.onRemove&&t.onRemove(n)},e.addToStorage=function(t){t.onAdd&&t.onAdd(n),a.call(e,t) +},this._firstPaint=!0}function $p(t){return function(){iv('In IE8.0 VML mode painter not support method "'+t+'"')}}var Kp=2311,Qp=function(){return Kp++},Jp={};Jp="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:e(navigator.userAgent);var tg=Jp,eg={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},ig={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},ng=Object.prototype.toString,rg=Array.prototype,ag=rg.forEach,og=rg.filter,sg=rg.slice,lg=rg.map,hg=rg.reduce,ug={},cg=function(){return ug.createCanvas()};ug.createCanvas=function(){return document.createElement("canvas")};var dg,fg="__ec_primitive__";B.prototype={constructor:B,get:function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},set:function(t,e){return this.data[t]=e},each:function(t,e){void 0!==e&&(t=y(t,e));for(var i in this.data)this.data.hasOwnProperty(i)&&t(this.data[i],i)},removeKey:function(t){delete this.data[t]}};var pg=(Object.freeze||Object)({$override:i,clone:n,merge:r,mergeAll:a,extend:o,defaults:s,createCanvas:cg,getContext:l,indexOf:h,inherits:u,mixin:c,isArrayLike:d,each:f,map:p,reduce:g,filter:v,find:m,bind:y,curry:x,isArray:_,isFunction:w,isString:b,isObject:S,isBuiltInObject:M,isTypedArray:I,isDom:T,eqNaN:C,retrieve:A,retrieve2:D,retrieve3:k,slice:P,normalizeCssArray:L,assert:O,trim:z,setAsPrimitive:E,isPrimitive:R,createHashMap:N,concatArray:F,noop:V}),gg="undefined"==typeof Float32Array?Array:Float32Array,vg=q,mg=U,yg=ee,xg=ie,_g=(Object.freeze||Object)({create:W,copy:G,clone:H,set:Z,add:X,scaleAndAdd:Y,sub:j,len:q,length:vg,lenSquare:U,lengthSquare:mg,mul:$,div:K,dot:Q,scale:J,normalize:te,distance:ee,dist:yg,distanceSquare:ie,distSquare:xg,negate:ne,lerp:re,applyTransform:ae,min:oe,max:se});le.prototype={constructor:le,_dragStart:function(t){var e=t.target;e&&e.draggable&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.dispatchToElement(he(e,t),"dragstart",t.event))},_drag:function(t){var e=this._draggingTarget;if(e){var i=t.offsetX,n=t.offsetY,r=i-this._x,a=n-this._y;this._x=i,this._y=n,e.drift(r,a,t),this.dispatchToElement(he(e,t),"drag",t.event);var o=this.findHover(i,n,e).target,s=this._dropTarget;this._dropTarget=o,e!==o&&(s&&o!==s&&this.dispatchToElement(he(s,t),"dragleave",t.event),o&&o!==s&&this.dispatchToElement(he(o,t),"dragenter",t.event))}},_dragEnd:function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.dispatchToElement(he(e,t),"dragend",t.event),this._dropTarget&&this.dispatchToElement(he(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null}};var wg=Array.prototype.slice,bg=function(t){this._$handlers={},this._$eventProcessor=t};bg.prototype={constructor:bg,one:function(t,e,i,n){var r=this._$handlers;if("function"==typeof e&&(n=i,i=e,e=null),!i||!t)return this;e=ue(this,e),r[t]||(r[t]=[]);for(var a=0;ar;r++)i[t][r].h!==e&&n.push(i[t][r]);i[t]=n}i[t]&&0===i[t].length&&delete i[t]}else delete i[t];return this},trigger:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,r=n.length;r>3&&(n=wg.call(n,1));for(var a=e.length,o=0;a>o;){var s=e[o];if(i&&i.filter&&null!=s.query&&!i.filter(t,s.query))o++;else{switch(r){case 1:s.h.call(s.ctx);break;case 2:s.h.call(s.ctx,n[1]);break;case 3:s.h.call(s.ctx,n[1],n[2]);break;default:s.h.apply(s.ctx,n)}s.one?(e.splice(o,1),a--):o++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this},triggerWithContext:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,r=n.length;r>4&&(n=wg.call(n,1,n.length-1));for(var a=n[n.length-1],o=e.length,s=0;o>s;){var l=e[s];if(i&&i.filter&&null!=l.query&&!i.filter(t,l.query))s++;else{switch(r){case 1:l.h.call(a);break;case 2:l.h.call(a,n[1]);break;case 3:l.h.call(a,n[1],n[2]);break;default:l.h.apply(a,n)}l.one?(e.splice(s,1),o--):s++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this}};var Sg="undefined"!=typeof window&&!!window.addEventListener,Mg=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ig=Sg?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0},Tg="silent";_e.prototype.dispose=function(){};var Cg=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Ag=function(t,e,i,n){bg.call(this),this.storage=t,this.painter=e,this.painterRoot=n,i=i||new _e,this.proxy=null,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,le.call(this),this.setHandlerProxy(i)};Ag.prototype={constructor:Ag,setHandlerProxy:function(t){this.proxy&&this.proxy.dispose(),t&&(f(Cg,function(e){t.on&&t.on(e,this[e],this)},this),t.handler=this),this.proxy=t},mousemove:function(t){var e=t.zrX,i=t.zrY,n=this._hovered,r=n.target;r&&!r.__zr&&(n=this.findHover(n.x,n.y),r=n.target);var a=this._hovered=this.findHover(e,i),o=a.target,s=this.proxy;s.setCursor&&s.setCursor(o?o.cursor:"default"),r&&o!==r&&this.dispatchToElement(n,"mouseout",t),this.dispatchToElement(a,"mousemove",t),o&&o!==r&&this.dispatchToElement(a,"mouseover",t)},mouseout:function(t){this.dispatchToElement(this._hovered,"mouseout",t);var e,i=t.toElement||t.relatedTarget;do i=i&&i.parentNode;while(i&&9!=i.nodeType&&!(e=i===this.painterRoot));!e&&this.trigger("globalout",{event:t})},resize:function(){this._hovered={}},dispatch:function(t,e){var i=this[t];i&&i.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,i){t=t||{};var n=t.target;if(!n||!n.silent){for(var r="on"+e,a=ye(e,t,i);n&&(n[r]&&(a.cancelBubble=n[r].call(n,a)),n.trigger(e,a),n=n.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[r]&&t[r].call(t,a),t.trigger&&t.trigger(e,a)}))}},findHover:function(t,e,i){for(var n=this.storage.getDisplayList(),r={x:t,y:e},a=n.length-1;a>=0;a--){var o;if(n[a]!==i&&!n[a].ignore&&(o=we(n[a],t,e))&&(!r.topTarget&&(r.topTarget=n[a]),o!==Tg)){r.target=n[a];break}}return r}},f(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){Ag.prototype[t]=function(e){var i=this.findHover(e.zrX,e.zrY),n=i.target;if("mousedown"===t)this._downEl=n,this._downPoint=[e.zrX,e.zrY],this._upEl=n;else if("mouseup"===t)this._upEl=n;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||yg(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,t,e)}}),c(Ag,bg),c(Ag,le);var Dg="undefined"==typeof Float32Array?Array:Float32Array,kg=(Object.freeze||Object)({create:be,identity:Se,copy:Me,mul:Ie,translate:Te,rotate:Ce,scale:Ae,invert:De,clone:ke}),Pg=Se,Lg=5e-5,Og=function(t){t=t||{},t.position||(this.position=[0,0]),null==t.rotation&&(this.rotation=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},zg=Og.prototype;zg.transform=null,zg.needLocalTransform=function(){return Pe(this.rotation)||Pe(this.position[0])||Pe(this.position[1])||Pe(this.scale[0]-1)||Pe(this.scale[1]-1)};var Eg=[];zg.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;if(!i&&!e)return void(n&&Pg(n));n=n||be(),i?this.getLocalTransform(n):Pg(n),e&&(i?Ie(n,t.transform,n):Me(n,t.transform)),this.transform=n;var r=this.globalScaleRatio;if(null!=r&&1!==r){this.getGlobalScale(Eg);var a=Eg[0]<0?-1:1,o=Eg[1]<0?-1:1,s=((Eg[0]-a)*r+a)/Eg[0]||0,l=((Eg[1]-o)*r+o)/Eg[1]||0;n[0]*=s,n[1]*=s,n[2]*=l,n[3]*=l}this.invTransform=this.invTransform||be(),De(this.invTransform,n)},zg.getLocalTransform=function(t){return Og.getLocalTransform(this,t)},zg.setTransform=function(t){var e=this.transform,i=t.dpr||1;e?t.setTransform(i*e[0],i*e[1],i*e[2],i*e[3],i*e[4],i*e[5]):t.setTransform(i,0,0,i,0,0)},zg.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var Rg=[],Bg=be();zg.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],i=t[2]*t[2]+t[3]*t[3],n=this.position,r=this.scale;Pe(e-1)&&(e=Math.sqrt(e)),Pe(i-1)&&(i=Math.sqrt(i)),t[0]<0&&(e=-e),t[3]<0&&(i=-i),n[0]=t[4],n[1]=t[5],r[0]=e,r[1]=i,this.rotation=Math.atan2(-t[1]/i,t[0]/e)}},zg.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Ie(Rg,t.invTransform,e),e=Rg);var i=this.origin;i&&(i[0]||i[1])&&(Bg[4]=i[0],Bg[5]=i[1],Ie(Rg,e,Bg),Rg[4]-=i[0],Rg[5]-=i[1],e=Rg),this.setLocalTransform(e)}},zg.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},zg.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&ae(i,i,n),i},zg.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&ae(i,i,n),i},Og.getLocalTransform=function(t,e){e=e||[],Pg(e);var i=t.origin,n=t.scale||[1,1],r=t.rotation||0,a=t.position||[0,0];return i&&(e[4]-=i[0],e[5]-=i[1]),Ae(e,e,n),r&&Ce(e,e,r),i&&(e[4]+=i[0],e[5]+=i[1]),e[4]+=a[0],e[5]+=a[1],e};var Ng={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)))},elasticOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/n)+1)},elasticInOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n):i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?.5*t*t*((e+1)*t-e):.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Ng.bounceOut(1-t)},bounceOut:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return.5>t?.5*Ng.bounceIn(2*t):.5*Ng.bounceOut(2*t-1)+.5}};Le.prototype={constructor:Le,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)return void(this._pausedTime+=e);var i=(t-this._startTime-this._pausedTime)/this._life;if(!(0>i)){i=Math.min(i,1);var n=this.easing,r="string"==typeof n?Ng[n]:n,a="function"==typeof r?r(i):i;return this.fire("frame",a),1==i?this.loop?(this.restart(t),"restart"):(this._needsRemove=!0,"destroy"):null}},restart:function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0,this._needsRemove=!1},fire:function(t,e){t="on"+t,this[t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var Fg=function(){this.head=null,this.tail=null,this._len=0},Vg=Fg.prototype;Vg.insert=function(t){var e=new Wg(t);return this.insertEntry(e),e},Vg.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},Vg.remove=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},Vg.len=function(){return this._len},Vg.clear=function(){this.head=this.tail=null,this._len=0};var Wg=function(t){this.value=t,this.next,this.prev},Gg=function(t){this._list=new Fg,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},Hg=Gg.prototype;Hg.put=function(t,e){var i=this._list,n=this._map,r=null;if(null==n[t]){var a=i.len(),o=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=i.head;i.remove(s),delete n[s.key],r=s.value,this._lastRemovedEntry=s}o?o.value=e:o=new Wg(e),o.key=t,i.insertEntry(o),n[t]=o}return r},Hg.get=function(t){var e=this._map[t],i=this._list;return null!=e?(e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value):void 0},Hg.clear=function(){this._list.clear(),this._map={}};var Zg={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},Xg=new Gg(20),Yg=null,jg=qe,qg=Ue,Ug=(Object.freeze||Object)({parse:He,lift:Ye,toHex:je,fastLerp:qe,fastMapToColor:jg,lerp:Ue,mapToColor:qg,modifyHSL:$e,modifyAlpha:Ke,stringify:Qe}),$g=Array.prototype.slice,Kg=function(t,e,i,n){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||Je,this._setter=n||ti,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};Kg.prototype={when:function(t,e){var i=this._tracks;for(var n in e)if(e.hasOwnProperty(n)){if(!i[n]){i[n]=[];var r=this._getter(this._target,n);if(null==r)continue;0!==t&&i[n].push({time:0,value:li(r)})}i[n].push({time:t,value:e[n]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;ti;i++)t[i].call(this)},start:function(t,e){var i,n=this,r=0,a=function(){r--,r||n._doneCallback()};for(var o in this._tracks)if(this._tracks.hasOwnProperty(o)){var s=ci(this,t,a,this._tracks[o],o,e);s&&(this._clipList.push(s),r++,this.animation&&this.animation.addClip(s),i=s)}if(i){var l=i.onframe;i.onframe=function(t,e){l(t,e);for(var i=0;i1&&(ev=function(){for(var t in arguments)console.log(arguments[t])});var iv=ev,nv=function(){this.animators=[]};nv.prototype={constructor:nv,animate:function(t,e){var i,n=!1,r=this,a=this.__zr;if(t){var o=t.split("."),s=r;n="shape"===o[0];for(var l=0,u=o.length;u>l;l++)s&&(s=s[o[l]]);s&&(i=s)}else i=r;if(!i)return void iv('Property "'+t+'" is not existed in element '+r.id);var c=r.animators,d=new Kg(i,e);return d.during(function(){r.dirty(n)}).done(function(){c.splice(h(c,d),1)}),c.push(d),a&&a.animation.addAnimator(d),d},stopAnimation:function(t){for(var e=this.animators,i=e.length,n=0;i>n;n++)e[n].stop(t);return e.length=0,this},animateTo:function(t,e,i,n,r,a){di(this,t,e,i,n,r,a)},animateFrom:function(t,e,i,n,r,a){di(this,t,e,i,n,r,a,!0)}};var rv=function(t){Og.call(this,t),bg.call(this,t),nv.call(this,t),this.id=t.id||Qp()};rv.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,isGroup:!1,drift:function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(){},attrKV:function(t,e){if("position"===t||"scale"===t||"origin"===t){if(e){var i=this[t];i||(i=this[t]=[]),i[0]=e[0],i[1]=e[1]}}else this[t]=e},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(S(t))for(var i in t)t.hasOwnProperty(i)&&this.attrKV(i,t[i]);return this.dirty(!1),this},setClipPath:function(t){var e=this.__zr;e&&t.addSelfToZr(e),this.clipPath&&this.clipPath!==t&&this.removeClipPath(),this.clipPath=t,t.__zr=e,t.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var t=this.clipPath;t&&(t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(t){this.__zr=t;var e=this.animators;if(e)for(var i=0;in||i>s||l>a||r>h)},contain:function(t,e){var i=this;return t>=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new gi(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},gi.create=function(t){return new gi(t.x,t.y,t.width,t.height)};var lv=function(t){t=t||{},rv.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};lv.prototype={constructor:lv,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i=0&&(i.splice(n,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,i=this.__zr;e&&e!==t.__storage&&(e.addToStorage(t),t instanceof lv&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,n=this._children,r=h(n,t);return 0>r?this:(n.splice(r,1),t.parent=null,i&&(i.delFromStorage(t),t instanceof lv&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;en;n++)this._updateAndAddDisplayable(e[n],null,t);i.length=this._displayListLen,tg.canvasSupported&&Si(i,Mi)},_updateAndAddDisplayable:function(t,e,i){if(!t.ignore||i){t.beforeUpdate(),t.__dirty&&t.update(),t.afterUpdate();var n=t.clipPath;if(n){e=e?e.slice():[];for(var r=n,a=t;r;)r.parent=a,r.updateTransform(),e.push(r),a=r,r=r.clipPath}if(t.isGroup){for(var o=t._children,s=0;se;e++)this.delRoot(t[e]);else{var r=h(this._roots,t);r>=0&&(this.delFromStorage(t),this._roots.splice(r,1),t instanceof lv&&t.delChildrenFromStorage(this))}},addToStorage:function(t){return t&&(t.__storage=this,t.dirty(!1)),this},delFromStorage:function(t){return t&&(t.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:Mi};var dv={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},fv=function(t,e,i){return dv.hasOwnProperty(e)?i*=t.dpr:i},pv=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],gv=function(t){this.extendFrom(t,!1)};gv.prototype={constructor:gv,fill:"#000",stroke:null,opacity:1,fillOpacity:null,strokeOpacity:null,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(t,e,i){for(var n=this,r=i&&i.style,a=!r,o=0;o0},extendFrom:function(t,e){if(t)for(var i in t)!t.hasOwnProperty(i)||e!==!0&&(e===!1?this.hasOwnProperty(i):null==t[i])||(this[i]=t[i])},set:function(t,e){"string"==typeof t?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(t,e,i){for(var n="radial"===e.type?Ti:Ii,r=n(t,e,i),a=e.colorStops,o=0;o=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(){for(var t=this._hoverElements,e=0;er;){var a=t[r],o=a.__from;o&&o.__zr?(r++,o.invisible||(a.transform=o.transform,a.invTransform=o.invTransform,a.__clipPaths=o.__clipPaths,this._doPaintEl(a,i,!0,n))):(t.splice(r,1),o.__hoverMir=null,e--)}i.ctx.restore()}},getHoverLayer:function(){return this.getLayer(zv)},_paintList:function(t,e,i){if(this._redrawId===i){e=e||!1,this._updateLayerStatus(t);var n=this._doPaintList(t,e);if(this._needsManuallyCompositing&&this._compositeManually(),!n){var r=this;wv(function(){r._paintList(t,e,i)})}}},_compositeManually:function(){var t=this.getLayer(Ev).ctx,e=this._domRoot.width,i=this._domRoot.height;t.clearRect(0,0,e,i),this.eachBuiltinLayer(function(n){n.virtual&&t.drawImage(n.dom,0,0,e,i)})},_doPaintList:function(t,e){for(var i=[],n=0;n15)break}}a.__drawIndex=v,a.__drawIndex0&&t>n[0]){for(o=0;r-1>o&&!(n[o]t);o++);a=i[n[o]]}if(n.splice(o+1,0,t),i[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)},eachLayer:function(t,e){var i,n,r=this._zlevelList;for(n=0;n0?Rv:0),this._needsManuallyCompositing),o.__builtin__||iv("ZLevel "+s+" has been used by unkown layer "+o.id),o!==r&&(o.__used=!0,o.__startIndex!==i&&(o.__dirty=!0),o.__startIndex=i,o.__drawIndex=o.incremental?-1:i,e(i),r=o),n.__dirty&&(o.__dirty=!0,o.incremental&&o.__drawIndex<0&&(o.__drawIndex=i))}e(i),this.eachBuiltinLayer(function(t){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},setBackgroundColor:function(t){this._backgroundColor=t},configLayer:function(t,e){if(e){var i=this._layerConfig;i[t]?r(i[t],e,!0):i[t]=e;for(var n=0;n=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;io;o++){var s=i[o],l=s.step(t,e);l&&(r.push(l),a.push(s))}for(var o=0;n>o;)i[o]._needsRemove?(i[o]=i[n-1],i.pop(),n--):o++;n=r.length;for(var o=0;n>o;o++)a[o].fire(r[o]);this._time=t,this.onframe(e),this.trigger("frame",e),this.stage.update&&this.stage.update()},_startLoop:function(){function t(){e._running&&(wv(t),!e._paused&&e._update())}var e=this;this._running=!0,wv(t)},start:function(){this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop()},stop:function(){this._running=!1},pause:function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},resume:function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},clear:function(){this._clips=[]},isFinished:function(){return!this._clips.length},animate:function(t,e){e=e||{};var i=new Kg(t,e.loop,e.getter,e.setter);return this.addAnimator(i),i}},c(Wv,bg);var Gv=function(){this._track=[]};Gv.prototype={constructor:Gv,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,i){var n=t.touches;if(n){for(var r={points:[],touches:[],target:e,event:t},a=0,o=n.length;o>a;a++){var s=n[a],l=de(i,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},_recognize:function(t){for(var e in Hv)if(Hv.hasOwnProperty(e)){var i=Hv[e](this._track,t);if(i)return i}}};var Hv={pinch:function(t,e){var i=t.length;if(i){var n=(t[i-1]||{}).points,r=(t[i-2]||{}).points||n;if(r&&r.length>1&&n&&n.length>1){var a=In(n)/In(r);!isFinite(a)&&(a=1),e.pinchScale=a;var o=Tn(n);return e.pinchX=o[0],e.pinchY=o[1],{type:"pinch",target:t[0].target,event:e}}}}},Zv=300,Xv=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Yv=["touchstart","touchend","touchmove"],jv={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},qv=p(Xv,function(t){var e=t.replace("mouse","pointer");return jv[e]?e:t}),Uv={mousemove:function(t){t=pe(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){t=pe(this.dom,t);var e=t.toElement||t.relatedTarget;if(e!=this.dom)for(;e&&9!=e.nodeType;){if(e===this.dom)return;e=e.parentNode}this.trigger("mouseout",t)},touchstart:function(t){t=pe(this.dom,t),t.zrByTouch=!0,this._lastTouchMoment=new Date,An(this,t,"start"),Uv.mousemove.call(this,t),Uv.mousedown.call(this,t),Dn(this)},touchmove:function(t){t=pe(this.dom,t),t.zrByTouch=!0,An(this,t,"change"),Uv.mousemove.call(this,t),Dn(this)},touchend:function(t){t=pe(this.dom,t),t.zrByTouch=!0,An(this,t,"end"),Uv.mouseup.call(this,t),+new Date-this._lastTouchMoment=0||n&&h(n,o)<0)){var s=e.getShallow(o);null!=s&&(r[t[a][0]]=s)}}return r}},fm=dm([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),pm={getLineStyle:function(t){var e=fm(this,t),i=this.getLineDash(e.lineWidth);return i&&(e.lineDash=i),e},getLineDash:function(t){null==t&&(t=1);var e=this.get("type"),i=Math.max(t,2),n=4*t;return"solid"===e||null==e?null:"dashed"===e?[n,n]:[i,i]}},gm=dm([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),vm={getAreaStyle:function(t,e){return gm(this,t,e)}},mm=Math.pow,ym=Math.sqrt,xm=1e-8,_m=1e-4,wm=ym(3),bm=1/3,Sm=W(),Mm=W(),Im=W(),Tm=Math.min,Cm=Math.max,Am=Math.sin,Dm=Math.cos,km=2*Math.PI,Pm=W(),Lm=W(),Om=W(),zm=[],Em=[],Rm={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Bm=[],Nm=[],Fm=[],Vm=[],Wm=Math.min,Gm=Math.max,Hm=Math.cos,Zm=Math.sin,Xm=Math.sqrt,Ym=Math.abs,jm="undefined"!=typeof Float32Array,qm=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};qm.prototype={constructor:qm,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(t,e){this._ux=Ym(1/tv/t)||0,this._uy=Ym(1/tv/e)||0},getContext:function(){return this._ctx},beginPath:function(t){return this._ctx=t,t&&t.beginPath(),t&&(this.dpr=t.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(t,e){return this.addData(Rm.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},lineTo:function(t,e){var i=Ym(t-this._xi)>this._ux||Ym(e-this._yi)>this._uy||this._len<5;return this.addData(Rm.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,r,a){return this.addData(Rm.C,t,e,i,n,r,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,r,a):this._ctx.bezierCurveTo(t,e,i,n,r,a)),this._xi=r,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(Rm.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,r,a){return this.addData(Rm.A,t,e,i,i,n,r-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,r,a),this._xi=Hm(r)*i+t,this._yi=Zm(r)*i+e,this},arcTo:function(t,e,i,n,r){return this._ctx&&this._ctx.arcTo(t,e,i,n,r),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(Rm.R,t,e,i,n),this},closePath:function(){this.addData(Rm.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,i=0;ii;i++)this.data[i]=t[i];this._len=e},appendPath:function(t){t instanceof Array||(t=[t]);for(var e=t.length,i=0,n=this._len,r=0;e>r;r++)i+=t[r].len();jm&&this.data instanceof Float32Array&&(this.data=new Float32Array(n+i));for(var r=0;e>r;r++)for(var a=t[r].data,o=0;oe.length&&(this._expandData(),e=this.data);for(var i=0;ia&&(a=r+a),a%=r,f-=a*u,p-=a*c;u>0&&t>=f||0>u&&f>=t||0==u&&(c>0&&e>=p||0>c&&p>=e);)n=this._dashIdx,i=o[n],f+=u*i,p+=c*i,this._dashIdx=(n+1)%g,u>0&&l>f||0>u&&f>l||c>0&&h>p||0>c&&p>h||s[n%2?"moveTo":"lineTo"](u>=0?Wm(f,t):Gm(f,t),c>=0?Wm(p,e):Gm(p,e));u=f-t,c=p-e,this._dashOffset=-Xm(u*u+c*c)},_dashedBezierTo:function(t,e,i,n,r,a){var o,s,l,h,u,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,v=this._yi,m=lr,y=0,x=this._dashIdx,_=f.length,w=0;for(0>d&&(d=c+d),d%=c,o=0;1>o;o+=.1)s=m(g,t,i,r,o+.1)-m(g,t,i,r,o),l=m(v,e,n,a,o+.1)-m(v,e,n,a,o),y+=Xm(s*s+l*l);for(;_>x&&(w+=f[x],!(w>d));x++);for(o=(w-d)/y;1>=o;)h=m(g,t,i,r,o),u=m(v,e,n,a,o),x%2?p.moveTo(h,u):p.lineTo(h,u),o+=f[x]/y,x=(x+1)%_;x%2!==0&&p.lineTo(r,a),s=r-h,l=a-u,this._dashOffset=-Xm(s*s+l*l)},_dashedQuadraticTo:function(t,e,i,n){var r=i,a=n;i=(i+2*t)/3,n=(n+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,i,n,r,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,jm&&(this.data=new Float32Array(t)))},getBoundingRect:function(){Bm[0]=Bm[1]=Fm[0]=Fm[1]=Number.MAX_VALUE,Nm[0]=Nm[1]=Vm[0]=Vm[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,r=0,a=0;ac;){var d=s[c++];switch(1==c&&(n=s[c],r=s[c+1],e=n,i=r),d){case Rm.M:e=n=s[c++],i=r=s[c++],t.moveTo(n,r);break;case Rm.L:a=s[c++],o=s[c++],(Ym(a-n)>l||Ym(o-r)>h||c===u-1)&&(t.lineTo(a,o),n=a,r=o);break;case Rm.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],r=s[c-1];break;case Rm.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],r=s[c-1];break;case Rm.A:var f=s[c++],p=s[c++],g=s[c++],v=s[c++],m=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>v?g:v,b=g>v?1:g/v,S=g>v?v/g:1,M=Math.abs(g-v)>.001,I=m+y;M?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,m,I,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,m,I,1-_),1==c&&(e=Hm(m)*g+f,i=Zm(m)*v+p),n=Hm(I)*g+f,r=Zm(I)*v+p;break;case Rm.R:e=n=s[c],i=r=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case Rm.Z:t.closePath(),n=e,r=i}}}},qm.CMD=Rm;var Um=2*Math.PI,$m=2*Math.PI,Km=qm.CMD,Qm=2*Math.PI,Jm=1e-4,ty=[-1,-1,-1],ey=[-1,-1],iy=xv.prototype.getCanvasPattern,ny=Math.abs,ry=new qm(!0);Fr.prototype={constructor:Fr,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var i=this.style,n=this.path||ry,r=i.hasStroke(),a=i.hasFill(),o=i.fill,s=i.stroke,l=a&&!!o.colorStops,h=r&&!!s.colorStops,u=a&&!!o.image,c=r&&!!s.image;if(i.bind(t,this,e),this.setTransform(t),this.__dirty){var d;l&&(d=d||this.getBoundingRect(),this._fillGradient=i.getGradient(t,o,d)),h&&(d=d||this.getBoundingRect(),this._strokeGradient=i.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:u&&(t.fillStyle=iy.call(o,t)),h?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=iy.call(s,t));var f=i.lineDash,p=i.lineDashOffset,g=!!t.setLineDash,v=this.getGlobalScale();if(n.setScale(v[0],v[1]),this.__dirtyPath||f&&!g&&r?(n.beginPath(t),f&&!g&&(n.setLineDash(f),n.setLineDashOffset(p)),this.buildPath(n,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),a)if(null!=i.fillOpacity){var m=t.globalAlpha;t.globalAlpha=i.fillOpacity*i.opacity,n.fill(t),t.globalAlpha=m}else n.fill(t);if(f&&g&&(t.setLineDash(f),t.lineDashOffset=p),r)if(null!=i.strokeOpacity){var m=t.globalAlpha;t.globalAlpha=i.strokeOpacity*i.opacity,n.stroke(t),t.globalAlpha=m}else n.stroke(t);f&&g&&t.setLineDash([]),null!=i.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(){},createPathProxy:function(){this.path=new qm},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;n||(n=this.path=new qm),this.__dirtyPath&&(n.beginPath(),this.buildPath(n,this.shape,!1)),t=n.getBoundingRect()}if(this._rect=t,e.hasStroke()){var r=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){r.copy(t);var a=e.lineWidth,o=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(a=Math.max(a,this.strokeContainThreshold||4)),o>1e-10&&(r.width+=a/o,r.height+=a/o,r.x-=a/o/2,r.y-=a/o/2)}return r}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this.getBoundingRect(),r=this.style;if(t=i[0],e=i[1],n.contain(t,e)){var a=this.path.data;if(r.hasStroke()){var o=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(r.hasFill()||(o=Math.max(o,this.strokeContainThreshold)),Nr(a,o/s,t,e)))return!0}if(r.hasFill())return Br(a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=this.__dirtyText=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this.setShape(e),this.__dirtyPath=!0,this._rect=null):mn.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(S(t))for(var n in t)t.hasOwnProperty(n)&&(i[n]=t[n]);else i[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&ny(t[0]-1)>1e-10&&ny(t[3]-1)>1e-10?Math.sqrt(ny(t[0]*t[3]-t[2]*t[1])):1}},Fr.extend=function(t){var e=function(e){Fr.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var i=t.shape;if(i){this.shape=this.shape||{};var n=this.shape;for(var r in i)!n.hasOwnProperty(r)&&i.hasOwnProperty(r)&&(n[r]=i[r])}t.init&&t.init.call(this,e)};u(e,Fr);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(Fr,mn);var ay=qm.CMD,oy=[[],[],[]],sy=Math.sqrt,ly=Math.atan2,hy=function(t,e){var i,n,r,a,o,s,l=t.data,h=ay.M,u=ay.C,c=ay.L,d=ay.R,f=ay.A,p=ay.Q;for(r=0,a=0;ro;o++){var s=oy[o];s[0]=l[r++],s[1]=l[r++],ae(s,s,e),l[a++]=s[0],l[a++]=s[1]}}},uy=Math.sqrt,cy=Math.sin,dy=Math.cos,fy=Math.PI,py=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},gy=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(py(t)*py(e))},vy=function(t,e){return(t[0]*e[1]=11?function(){var e,i=this.__clipPaths,n=this.style;if(i)for(var r=0;ra;a++)r+=ee(t[a-1],t[a]);var o=r/2;o=i>o?i:o;for(var a=0;o>a;a++){var s,l,h,u=a/(o-1)*(e?i:i-1),c=Math.floor(u),d=u-c,f=t[c%i];e?(s=t[(c-1+i)%i],l=t[(c+1)%i],h=t[(c+2)%i]):(s=t[0===c?c:c-1],l=t[c>i-2?i-1:c+1],h=t[c>i-3?i-1:c+2]);var p=d*d,g=d*p;n.push([Yr(s[0],f[0],l[0],h[0],d,p,g),Yr(s[1],f[1],l[1],h[1],d,p,g)])}return n},Ty=function(t,e,i,n){var r,a,o,s,l=[],h=[],u=[],c=[];if(n){o=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;f>d;d++)oe(o,o,t[d]),se(s,s,t[d]);oe(o,o,n[0]),se(s,s,n[1])}for(var d=0,f=t.length;f>d;d++){var p=t[d];if(i)r=t[d?d-1:f-1],a=t[(d+1)%f];else{if(0===d||d===f-1){l.push(H(t[d]));continue}r=t[d-1],a=t[d+1]}j(h,a,r),J(h,h,e);var g=ee(p,r),v=ee(p,a),m=g+v;0!==m&&(g/=m,v/=m),J(u,h,-g),J(c,h,v);var y=X([],p,u),x=X([],p,c);n&&(se(y,y,o),oe(y,y,s),se(x,x,o),oe(x,x,s)),l.push(y),l.push(x)}return i&&l.push(l.shift()),l},Cy=Fr.extend({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(t,e){jr(t,e,!0)}}),Ay=Fr.extend({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(t,e){jr(t,e,!1)}}),Dy=Fr.extend({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,r=e.width,a=e.height;e.r?Ki(t,e):t.rect(i,n,r,a),t.closePath()}}),ky=Fr.extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,r=e.x2,a=e.y2,o=e.percent;0!==o&&(t.moveTo(i,n),1>o&&(r=i*(1-o)+r*o,a=n*(1-o)+a*o),t.lineTo(r,a))},pointAt:function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]}}),Py=[],Ly=Fr.extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,r=e.x2,a=e.y2,o=e.cpx1,s=e.cpy1,l=e.cpx2,h=e.cpy2,u=e.percent;0!==u&&(t.moveTo(i,n),null==l||null==h?(1>u&&(yr(i,o,r,u,Py),o=Py[1],r=Py[2],yr(n,s,a,u,Py),s=Py[1],a=Py[2]),t.quadraticCurveTo(o,s,r,a)):(1>u&&(dr(i,o,l,r,u,Py),o=Py[1],l=Py[2],r=Py[3],dr(n,s,h,a,u,Py),s=Py[1],h=Py[2],a=Py[3]),t.bezierCurveTo(o,s,l,h,r,a)))},pointAt:function(t){return qr(this.shape,t,!1)},tangentAt:function(t){var e=qr(this.shape,t,!0);return te(e,e)}}),Oy=Fr.extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.cx,n=e.cy,r=Math.max(e.r,0),a=e.startAngle,o=e.endAngle,s=e.clockwise,l=Math.cos(a),h=Math.sin(a);t.moveTo(l*r+i,h*r+n),t.arc(i,n,r,a,o,!s)}}),zy=Fr.extend({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var t=this.__dirtyPath,e=this.shape.paths,i=0;i"'])/g,ox={"&":"&","<":"<",">":">",'"':""","'":"'"},sx=["a","b","c","d","e","f","g"],lx=function(t,e){return"{"+t+(null==e?"":e)+"}"},hx=Wi,ux=Ei,cx=(Object.freeze||Object)({addCommas:co,toCamelCase:fo,normalizeCssArray:rx,encodeHTML:po,formatTpl:go,formatTplSimple:vo,getTooltipMarker:mo,formatTime:xo,capitalFirst:_o,truncateText:hx,getTextRect:ux}),dx=f,fx=["left","right","top","bottom","width","height"],px=[["width","left","right"],["height","top","bottom"]],gx=wo,vx=(x(wo,"vertical"),x(wo,"horizontal"),{getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get("bottom"),width:this.get("width"),height:this.get("height")}}}),mx=jn(),yx=Wa.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){Wa.call(this,t,e,i,n),this.uid=Za("ec_cpt_model")},init:function(t,e,i){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?Mo(t):{},a=e.getTheme();r(t,a.get(this.mainType)),r(t,this.getDefaultOption()),i&&So(t,n,i)},mergeOption:function(t){r(this.option,t,!0);var e=this.layoutMode;e&&So(this.option,t,e)},optionUpdated:function(){},getDefaultOption:function(){var t=mx(this);if(!t.defaultOption){for(var e=[],i=this.constructor;i;){var n=i.prototype.defaultOption;n&&e.push(n),i=i.superClass}for(var a={},o=e.length-1;o>=0;o--)a=r(a,e[o],!0);t.defaultOption=a}return t.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});ar(yx,{registerWhenExtend:!0}),Xa(yx),Ya(yx,To),c(yx,vx);var xx="";"undefined"!=typeof navigator&&(xx=navigator.platform||"");var _x={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:xx.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},bx=jn(),Sx={clearColorPalette:function(){bx(this).colorIdx=0,bx(this).colorNameMap={}},getColorFromPalette:function(t,e,i){e=e||this;var n=bx(e),r=n.colorIdx||0,a=n.colorNameMap=n.colorNameMap||{};if(a.hasOwnProperty(t))return a[t];var o=Nn(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=i&&s?Co(s,i):o;if(l=l||o,l&&l.length){var h=l[r];return t&&(a[t]=h),n.colorIdx=(r+1)%l.length,h}}},Mx={cartesian2d:function(t,e,i,n){var r=t.getReferringComponents("xAxis")[0],a=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],i.set("x",r),i.set("y",a),Do(r)&&(n.set("x",r),e.firstCategoryDimIndex=0),Do(a)&&(n.set("y",a),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,i,n){var r=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],i.set("single",r),Do(r)&&(n.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,i,n){var r=t.getReferringComponents("polar")[0],a=r.findAxisModel("radiusAxis"),o=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],i.set("radius",a),i.set("angle",o),Do(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),Do(o)&&(n.set("angle",o),e.firstCategoryDimIndex=1)},geo:function(t,e){e.coordSysDims=["lng","lat"]},parallel:function(t,e,i,n){var r=t.ecModel,a=r.getComponent("parallel",t.get("parallelIndex")),o=e.coordSysDims=a.dimensions.slice();f(a.parallelAxisIndex,function(t,a){var s=r.getComponent("parallelAxis",t),l=o[a];i.set(l,s),Do(s)&&null==e.firstCategoryDimIndex&&(n.set(l,s),e.firstCategoryDimIndex=a)})}},Ix="original",Tx="arrayRows",Cx="objectRows",Ax="keyedColumns",Dx="unknown",kx="typedArray",Px="column",Lx="row";ko.seriesDataToSource=function(t){return new ko({data:t,sourceFormat:I(t)?kx:Ix,fromDataset:!1})},ir(ko);var Ox=jn(),zx="\x00_ec_inner",Ex=Wa.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new Wa(i),this._optionManager=n},setOption:function(t,e){O(!(zx in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null)},resetOption:function(t){var e=!1,i=this._optionManager;if(!t||"recreate"===t){var n=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this.mergeOption(n)):Xo.call(this,n),e=!0}if(("timeline"===t||"media"===t)&&this.restoreData(),!t||"recreate"===t||"timeline"===t){var r=i.getTimelineOption(this);r&&(this.mergeOption(r),e=!0)}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this,this._api);a.length&&f(a,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){function e(e,n){var r=Nn(t[e]),s=Gn(a.get(e),r);Hn(s),f(s,function(t){var i=t.option;S(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=jo(e,i,t.exist))});var l=Yo(a,n);i[e]=[],a.set(e,[]),f(s,function(t,n){var r=t.exist,s=t.option;if(O(S(s)||r,"Empty component definition"),s){var h=yx.getClass(e,t.keyInfo.subType,!0);if(r&&r instanceof h)r.name=t.keyInfo.name,r.mergeOption(s,this),r.optionUpdated(s,!1);else{var u=o({dependentModels:l,componentIndex:n},t.keyInfo);r=new h(s,this,this,u),o(r,u),r.init(s,this,this,u),r.optionUpdated(null,!0)}}else r.mergeOption({},this),r.optionUpdated({},!1);a.get(e)[n]=r,i[e][n]=r.option},this),"series"===e&&qo(this,a.get("series"))}var i=this.option,a=this._componentsMap,s=[];Oo(this),f(t,function(t,e){null!=t&&(yx.hasClass(e)?e&&s.push(e):i[e]=null==i[e]?n(t):r(i[e],t,!0))}),yx.topologicalTravel(s,yx.getAllClassMainTypes(),e,this),this._seriesIndicesMap=N(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=n(this.option);return f(t,function(e,i){if(yx.hasClass(i)){for(var e=Nn(e),n=e.length-1;n>=0;n--)Xn(e[n])&&e.splice(n,1);t[i]=e}}),delete t[zx],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap.get(t);return i?i[e||0]:void 0},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,r=t.name,a=this._componentsMap.get(e);if(!a||!a.length)return[];var o;if(null!=i)_(i)||(i=[i]),o=v(p(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=_(n);o=v(a,function(t){return s&&h(n,t.id)>=0||!s&&t.id===n})}else if(null!=r){var l=_(r);o=v(a,function(t){return l&&h(r,t.name)>=0||!l&&t.name===r})}else o=a.slice();return Uo(o,t)},findComponents:function(t){function e(t){var e=r+"Index",i=r+"Id",n=r+"Name";return!t||null==t[e]&&null==t[i]&&null==t[n]?null:{mainType:r,index:t[e],id:t[i],name:t[n]}}function i(e){return t.filter?v(e,t.filter):e}var n=t.query,r=t.mainType,a=e(n),o=a?this.queryComponents(a):this._componentsMap.get(r);return i(Uo(o,t))},eachComponent:function(t,e,i){var n=this._componentsMap;if("function"==typeof t)i=e,e=t,n.each(function(t,n){f(t,function(t,r){e.call(i,n,t,r)})});else if(b(t))f(n.get(t),e,i);else if(S(t)){var r=this.findComponents(t);f(r,e,i)}},getSeriesByName:function(t){var e=this._componentsMap.get("series");return v(e,function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){var e=this._componentsMap.get("series");return v(e,function(e){return e.subType===t})},getSeries:function(){return this._componentsMap.get("series").slice()},getSeriesCount:function(){return this._componentsMap.get("series").length},eachSeries:function(t,e){f(this._seriesIndices,function(i){var n=this._componentsMap.get("series")[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){f(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,i){f(this._seriesIndices,function(n){var r=this._componentsMap.get("series")[n];r.subType===t&&e.call(i,r,n)},this)},eachRawSeriesByType:function(t,e,i){return f(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){var i=v(this._componentsMap.get("series"),t,e);qo(this,i)},restoreData:function(t){var e=this._componentsMap;qo(this,e.get("series"));var i=[];e.each(function(t,e){i.push(e)}),yx.topologicalTravel(i,yx.getAllClassMainTypes(),function(i){f(e.get(i),function(e){("series"!==i||!Ho(e,t))&&e.restoreData()})})}});c(Ex,Sx);var Rx=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],Bx={};Ko.prototype={constructor:Ko,create:function(t,e){var i=[];f(Bx,function(n){var r=n.create(t,e);i=i.concat(r||[])}),this._coordinateSystems=i},update:function(t,e){f(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},Ko.register=function(t,e){Bx[t]=e},Ko.get=function(t){return Bx[t]};var Nx=f,Fx=n,Vx=p,Wx=r,Gx=/^(min|max)?(.+)$/;Qo.prototype={constructor:Qo,setOption:function(t,e){t&&f(Nn(t.series),function(t){t&&t.data&&I(t.data)&&E(t.data)}),t=Fx(t,!0);var i=this._optionBackup,n=Jo.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(ns(i.baseOption,n.baseOption),n.timelineOptions.length&&(i.timelineOptions=n.timelineOptions),n.mediaList.length&&(i.mediaList=n.mediaList),n.mediaDefault&&(i.mediaDefault=n.mediaDefault)):this._optionBackup=n},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=Vx(e.timelineOptions,Fx),this._mediaList=Vx(e.mediaList,Fx),this._mediaDefault=Fx(e.mediaDefault),this._currentMediaIndices=[],Fx(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=Fx(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(){var t=this._api.getWidth(),e=this._api.getHeight(),i=this._mediaList,n=this._mediaDefault,r=[],a=[];if(!i.length&&!n)return a;for(var o=0,s=i.length;s>o;o++)ts(i[o].query,t,e)&&r.push(o);return!r.length&&n&&(r=[-1]),r.length&&!is(r,this._currentMediaIndices)&&(a=Vx(r,function(t){return Fx(-1===t?n.option:i[t].option)})),this._currentMediaIndices=r,a}};var Hx=f,Zx=S,Xx=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"],Yx=function(t,e){Hx(us(t.series),function(t){Zx(t)&&hs(t)});var i=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&i.push("valueAxis","categoryAxis","logAxis","timeAxis"),Hx(i,function(e){Hx(us(t[e]),function(t){t&&(ss(t,"axisLabel"),ss(t.axisPointer,"label"))})}),Hx(us(t.parallel),function(t){var e=t&&t.parallelAxisDefault;ss(e,"axisLabel"),ss(e&&e.axisPointer,"label")}),Hx(us(t.calendar),function(t){as(t,"itemStyle"),ss(t,"dayLabel"),ss(t,"monthLabel"),ss(t,"yearLabel")}),Hx(us(t.radar),function(t){ss(t,"name")}),Hx(us(t.geo),function(t){Zx(t)&&(ls(t),Hx(us(t.regions),function(t){ls(t)}))}),Hx(us(t.timeline),function(t){ls(t),as(t,"label"),as(t,"itemStyle"),as(t,"controlStyle",!0);var e=t.data;_(e)&&f(e,function(t){S(t)&&(as(t,"label"),as(t,"itemStyle"))})}),Hx(us(t.toolbox),function(t){as(t,"iconStyle"),Hx(t.feature,function(t){as(t,"iconStyle")})}),ss(cs(t.axisPointer),"label"),ss(cs(t.tooltip).axisPointer,"label")},jx=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],qx=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],Ux=function(t,e){Yx(t,e),t.series=Nn(t.series),f(t.series,function(t){if(S(t)){var e=t.type;if(("pie"===e||"gauge"===e)&&null!=t.clockWise&&(t.clockwise=t.clockWise),"gauge"===e){var i=ds(t,"pointer.color");null!=i&&fs(t,"itemStyle.normal.color",i)}ps(t)}}),t.dataRange&&(t.visualMap=t.dataRange),f(qx,function(e){var i=t[e];i&&(_(i)||(i=[i]),f(i,function(t){ps(t)}))})},$x=function(t){var e=N();t.eachSeries(function(t){var i=t.get("stack");if(i){var n=e.get(i)||e.set(i,[]),r=t.getData(),a={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;n.length&&r.setCalculationInfo("stackedOnSeries",n[n.length-1].seriesModel),n.push(a)}}),e.each(gs)},Kx=vs.prototype;Kx.pure=!1,Kx.persistent=!0,Kx.getSource=function(){return this._source};var Qx={arrayRows_column:{pure:!0,count:function(){return Math.max(0,this._data.length-this._source.startIndex)},getItem:function(t){return this._data[t+this._source.startIndex]},appendData:xs},arrayRows_row:{pure:!0,count:function(){var t=this._data[0];return t?Math.max(0,t.length-this._source.startIndex):0},getItem:function(t){t+=this._source.startIndex;for(var e=[],i=this._data,n=0;n=1)&&(t=1),t}var i=this._upstream,n=t&&t.skip;if(this._dirty&&i){var r=this.context;r.data=r.outputData=i.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=e(this._modBy),s=this._modDataCount||0,l=e(t&&t.modBy),h=t&&t.modDataCount||0;(o!==l||s!==h)&&(a="reset");var u;(this._dirty||"reset"===a)&&(this._dirty=!1,u=As(this,n)),this._modBy=l,this._modDataCount=h;var c=t&&t.step;if(this._dueEnd=i?i._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!n&&(u||f>d)){var p=this._progress;if(_(p))for(var g=0;gn?n++:null}function e(){var t=n%o*r+Math.ceil(n/o),e=n>=i?null:a>t?t:n;return n++,e}var i,n,r,a,o,s={reset:function(l,h,u,c){n=l,i=h,r=u,a=c,o=Math.ceil(a/r),s.next=r>1&&a>0?e:t}};return s}();n_.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},n_.unfinished=function(){return this._progress&&this._dueIndex":"",v=p+s.join(p||", ");return{renderMode:n,content:v,style:h}}function a(t){return{renderMode:n,content:po(co(t)),style:h}}var o=this;n=n||"html";var s="html"===n?"
":"\n",l="richText"===n,h={},u=0,c=this.getData(),d=c.mapDimension("defaultedTooltip",!0),p=d.length,v=this.getRawValue(t),m=_(v),y=c.getItemVisual(t,"color");S(y)&&y.colorStops&&(y=(y.colorStops[0]||{}).color),y=y||"transparent";var x=p>1||m&&!p?r(v):a(p?Ss(c,t,d[0]):m?v[0]:v),w=x.content,b=o.seriesIndex+"at"+u,M=mo({color:y,type:"item",renderMode:n,markerId:b});h[b]=y,++u;var I=c.getName(t),T=this.name;Zn(this)||(T=""),T=T?po(T)+(e?": ":s):"";var C="string"==typeof M?M:M.content,A=e?C+T+w:T+C+(I?po(I)+": "+w:w);return{html:A,markers:h}},isAnimationEnabled:function(){if(tg.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,r=Sx.getColorFromPalette.call(this,t,e,i);return r||(r=n.getColorFromPalette(t,e,i)),r},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});c(o_,i_),c(o_,Sx);var s_=function(){this.group=new lv,this.uid=Za("viewComponent")};s_.prototype={constructor:s_,init:function(){},render:function(){},dispose:function(){},filterForExposedEvent:null};var l_=s_.prototype;l_.updateView=l_.updateLayout=l_.updateVisual=function(){},er(s_),ar(s_,{registerWhenExtend:!0});var h_=function(){var t=jn();return function(e){var i=t(e),n=e.pipelineContext,r=i.large,a=i.progressiveRender,o=i.large=n.large,s=i.progressiveRender=n.progressiveRender;return!!(r^o||a^s)&&"reset"}},u_=jn(),c_=h_();Bs.prototype={type:"chart",init:function(){},render:function(){},highlight:function(t,e,i,n){Fs(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){Fs(t.getData(),n,"normal")},remove:function(){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var d_=Bs.prototype;d_.updateView=d_.updateLayout=d_.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},er(Bs,["dispose"]),ar(Bs,{registerWhenExtend:!0}),Bs.markUpdateMethod=function(t,e){u_(t).updateMethod=e +};var f_={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},p_="\x00__throttleOriginMethod",g_="\x00__throttleRate",v_="\x00__throttleType",m_={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),r=t.get(n)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(i.setVisual("color",r),!e.isSeriesFiltered(t)){"function"!=typeof r||r instanceof Ey||i.each(function(e){i.setItemVisual(e,"color",r(t.getDataParams(e)))});var a=function(t,e){var i=t.getItemModel(e),r=i.get(n,!0);null!=r&&t.setItemVisual(e,"color",r)};return{dataEach:i.hasItemOption?a:null}}}},y_={toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},x_=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return f(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=o.get(t);if(null==e){for(var i=t.split("."),n=y_.aria,r=0;rs)){var d=r();l=d?i(n("general.withTitle"),{title:d}):n("general.withoutTitle");var p=[],g=s>1?"series.multiple.prefix":"series.single.prefix";l+=i(n(g),{seriesCount:s}),e.eachSeries(function(t,e){if(c>e){var r,o=t.get("name"),l="series."+(s>1?"multiple":"single")+".";r=n(o?l+"withName":l+"withoutName"),r=i(r,{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:a(t.subType)});var u=t.getData();window.data=u,r+=u.count()>h?i(n("data.partialData"),{displayCnt:h}):n("data.allData");for(var d=[],f=0;ff){var g=u.getName(f),v=Ss(u,f);d.push(i(n(g?"data.withName":"data.withoutName"),{name:g,value:v}))}r+=d.join(n("data.separator.middle"))+n("data.separator.end"),p.push(r)}}),l+=p.join(n("series.multiple.separator.middle"))+n("series.multiple.separator.end"),t.setAttribute("aria-label",l)}}},__=Math.PI,w_=function(t,e){e=e||{},s(e,{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var i=new Dy({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),n=new Oy({shape:{startAngle:-__/2,endAngle:-__/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),r=new Dy({style:{fill:"none",text:e.text,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});n.animateShape(!0).when(1e3,{endAngle:3*__/2}).start("circularInOut"),n.animateShape(!0).when(1e3,{startAngle:3*__/2}).delay(300).start("circularInOut");var a=new lv;return a.add(n),a.add(r),a.add(i),a.resize=function(){var e=t.getWidth()/2,a=t.getHeight()/2;n.setShape({cx:e,cy:a});var o=n.shape.r;r.setShape({x:e-o,y:a-o,width:2*o,height:2*o}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},a.resize(),a},b_=Xs.prototype;b_.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each(function(t){var e=t.overallTask;e&&e.dirty()})},b_.getPerformArgs=function(t,e){if(t.__pipeline){var i=this._pipelineMap.get(t.__pipeline.id),n=i.context,r=!e&&i.progressiveEnabled&&(!n||n.progressiveRender)&&t.__idxInPipeline>i.blockIndex,a=r?i.step:null,o=n&&n.modDataCount,s=null!=o?Math.ceil(o/a):null;return{step:a,modBy:s,modDataCount:o}}},b_.getPipeline=function(t){return this._pipelineMap.get(t)},b_.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData(),r=n.count(),a=i.progressiveEnabled&&e.incrementalPrepareRender&&r>=i.threshold,o=t.get("large")&&r>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?r:null;t.pipelineContext=i.context={progressiveRender:a,modDataCount:s,large:o}},b_.restorePipelines=function(t){var e=this,i=e._pipelineMap=N();t.eachSeries(function(t){var n=t.getProgressive(),r=t.uid;i.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:n&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(n||700),count:0}),nl(e,t,t.dataTask)})},b_.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),i=this.api;f(this._allHandlers,function(n){var r=t.get(n.uid)||t.set(n.uid,[]);n.reset&&js(this,n,r,e,i),n.overallReset&&qs(this,n,r,e,i)},this)},b_.prepareView=function(t,e,i,n){var r=t.renderTask,a=r.context;a.model=e,a.ecModel=i,a.api=n,r.__block=!t.incrementalPrepareRender,nl(this,e,r)},b_.performDataProcessorTasks=function(t,e){Ys(this,this._dataProcessorHandlers,t,e,{block:!0})},b_.performVisualTasks=function(t,e,i){Ys(this,this._visualHandlers,t,e,i)},b_.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},b_.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var S_=b_.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},M_=el(0);Xs.wrapStageHandler=function(t,e){return w(t)&&(t={overallReset:t,seriesType:rl(t)}),t.uid=Za("stageHandler"),e&&(t.visualType=e),t};var I_,T_={},C_={};al(T_,Ex),al(C_,$o),T_.eachSeriesByType=T_.eachRawSeriesByType=function(t){I_=t},T_.eachComponent=function(t){"series"===t.mainType&&t.subType&&(I_=t.subType)};var A_=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],D_={color:A_,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],A_]},k_="#eee",P_=function(){return{axisLine:{lineStyle:{color:k_}},axisTick:{lineStyle:{color:k_}},axisLabel:{textStyle:{color:k_}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:k_}}}},L_=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],O_={color:L_,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:k_},crossStyle:{color:k_}}},legend:{textStyle:{color:k_}},textStyle:{color:k_},title:{textStyle:{color:k_}},toolbox:{iconStyle:{normal:{borderColor:k_}}},dataZoom:{textStyle:{color:k_}},visualMap:{textStyle:{color:k_}},timeline:{lineStyle:{color:k_},itemStyle:{normal:{color:L_[1]}},label:{normal:{textStyle:{color:k_}}},controlStyle:{normal:{color:k_,borderColor:k_}}},timeAxis:P_(),logAxis:P_(),valueAxis:P_(),categoryAxis:P_(),line:{symbol:"circle"},graph:{color:L_},gauge:{title:{textStyle:{color:k_}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};O_.categoryAxis.splitLine.show=!1,yx.extend({type:"dataset",defaultOption:{seriesLayoutBy:Px,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){Po(this)}}),s_.extend({type:"dataset"});var z_=Fr.extend({type:"ellipse",shape:{cx:0,cy:0,rx:0,ry:0},buildPath:function(t,e){var i=.5522848,n=e.cx,r=e.cy,a=e.rx,o=e.ry,s=a*i,l=o*i;t.moveTo(n-a,r),t.bezierCurveTo(n-a,r-l,n-s,r-o,n,r-o),t.bezierCurveTo(n+s,r-o,n+a,r-l,n+a,r),t.bezierCurveTo(n+a,r+l,n+s,r+o,n,r+o),t.bezierCurveTo(n-s,r+o,n-a,r+l,n-a,r),t.closePath()}}),E_=/[\s,]+/;sl.prototype.parse=function(t,e){e=e||{};var i=ol(t);if(!i)throw new Error("Illegal svg");var n=new lv;this._root=n;var r=i.getAttribute("viewBox")||"",a=parseFloat(i.getAttribute("width")||e.width),o=parseFloat(i.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(o)&&(o=null),cl(i,n,null,!0);for(var s=i.firstChild;s;)this._parseNode(s,n),s=s.nextSibling;var l,h;if(r){var u=z(r).split(E_);u.length>=4&&(l={x:parseFloat(u[0]||0),y:parseFloat(u[1]||0),width:parseFloat(u[2]),height:parseFloat(u[3])})}if(l&&null!=a&&null!=o&&(h=gl(l,a,o),!e.ignoreViewBox)){var c=n;n=new lv,n.add(c),c.scale=h.scale.slice(),c.position=h.position.slice()}return e.ignoreRootClip||null==a||null==o||n.setClipPath(new Dy({shape:{x:0,y:0,width:a,height:o}})),{root:n,width:a,height:o,viewBoxRect:l,viewBoxTransform:h}},sl.prototype._parseNode=function(t,e){var i=t.nodeName.toLowerCase();"defs"===i?this._isDefine=!0:"text"===i&&(this._isText=!0);var n;if(this._isDefine){var r=B_[i];if(r){var a=r.call(this,t),o=t.getAttribute("id");o&&(this._defs[o]=a)}}else{var r=R_[i];r&&(n=r.call(this,t,e),e.add(n))}for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===i?this._isDefine=!1:"text"===i&&(this._isText=!1)},sl.prototype._parseText=function(t,e){if(1===t.nodeType){var i=t.getAttribute("dx")||0,n=t.getAttribute("dy")||0;this._textX+=parseFloat(i),this._textY+=parseFloat(n)}var r=new xy({style:{text:t.textContent,transformText:!0},position:[this._textX||0,this._textY||0]});hl(e,r),cl(t,r,this._defs);var a=r.style.fontSize;a&&9>a&&(r.style.fontSize=9,r.scale=r.scale||[1,1],r.scale[0]*=a/9,r.scale[1]*=a/9);var o=r.getBoundingRect();return this._textX+=o.width,e.add(r),r};var R_={g:function(t,e){var i=new lv;return hl(e,i),cl(t,i,this._defs),i},rect:function(t,e){var i=new Dy;return hl(e,i),cl(t,i,this._defs),i.setShape({x:parseFloat(t.getAttribute("x")||0),y:parseFloat(t.getAttribute("y")||0),width:parseFloat(t.getAttribute("width")||0),height:parseFloat(t.getAttribute("height")||0)}),i},circle:function(t,e){var i=new _y;return hl(e,i),cl(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),r:parseFloat(t.getAttribute("r")||0)}),i},line:function(t,e){var i=new ky;return hl(e,i),cl(t,i,this._defs),i.setShape({x1:parseFloat(t.getAttribute("x1")||0),y1:parseFloat(t.getAttribute("y1")||0),x2:parseFloat(t.getAttribute("x2")||0),y2:parseFloat(t.getAttribute("y2")||0)}),i},ellipse:function(t,e){var i=new z_;return hl(e,i),cl(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),rx:parseFloat(t.getAttribute("rx")||0),ry:parseFloat(t.getAttribute("ry")||0)}),i},polygon:function(t,e){var i=t.getAttribute("points");i&&(i=ul(i));var n=new Cy({shape:{points:i||[]}});return hl(e,n),cl(t,n,this._defs),n},polyline:function(t,e){var i=new Fr;hl(e,i),cl(t,i,this._defs);var n=t.getAttribute("points");n&&(n=ul(n));var r=new Ay({shape:{points:n||[]}});return r},image:function(t,e){var i=new yn;return hl(e,i),cl(t,i,this._defs),i.setStyle({image:t.getAttribute("xlink:href"),x:t.getAttribute("x"),y:t.getAttribute("y"),width:t.getAttribute("width"),height:t.getAttribute("height")}),i},text:function(t,e){var i=t.getAttribute("x")||0,n=t.getAttribute("y")||0,r=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0;this._textX=parseFloat(i)+parseFloat(r),this._textY=parseFloat(n)+parseFloat(a);var o=new lv;return hl(e,o),cl(t,o,this._defs),o},tspan:function(t,e){var i=t.getAttribute("x"),n=t.getAttribute("y");null!=i&&(this._textX=parseFloat(i)),null!=n&&(this._textY=parseFloat(n));var r=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0,o=new lv;return hl(e,o),cl(t,o,this._defs),this._textX+=r,this._textY+=a,o},path:function(t,e){var i=t.getAttribute("d")||"",n=Hr(i);return hl(e,n),cl(t,n,this._defs),n}},B_={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||0,10),i=parseInt(t.getAttribute("y1")||0,10),n=parseInt(t.getAttribute("x2")||10,10),r=parseInt(t.getAttribute("y2")||0,10),a=new Ry(e,i,n,r);return ll(t,a),a},radialgradient:function(){}},N_={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"},F_=/url\(\s*#(.*?)\)/,V_=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,W_=/([^\s:;]+)\s*:\s*([^:;]+)/g,G_=N(),H_={registerMap:function(t,e,i){var n;return _(e)?n=e:e.svg?n=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}]:(e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),n=[{type:"geoJSON",source:e,specialAreas:i}]),f(n,function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var i=Z_[e];i(t)}),G_.set(t,n)},retrieveMap:function(t){return G_.get(t)}},Z_={geoJSON:function(t){var e=t.source;t.geoJSON=b(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=ol(t.source)}},X_=O,Y_=f,j_=w,q_=S,U_=yx.parseClassType,$_="4.2.0",K_={zrender:"4.0.5"},Q_=1,J_=1e3,tw=5e3,ew=1e3,iw=2e3,nw=3e3,rw=4e3,aw=5e3,ow={PROCESSOR:{FILTER:J_,STATISTIC:tw},VISUAL:{LAYOUT:ew,GLOBAL:iw,CHART:nw,COMPONENT:rw,BRUSH:aw}},sw="__flagInMainProcess",lw="__optionUpdated",hw=/^[a-zA-Z0-9_]+$/;ml.prototype.on=vl("on"),ml.prototype.off=vl("off"),ml.prototype.one=vl("one"),c(ml,bg);var uw=yl.prototype;uw._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[lw]){var e=this[lw].silent;this[sw]=!0,_l(this),cw.update.call(this),this[sw]=!1,this[lw]=!1,Ml.call(this,e),Il.call(this,e)}else if(t.unfinished){var i=Q_,n=this._model,r=this._api;t.unfinished=!1;do{var a=+new Date;t.performSeriesTasks(n),t.performDataProcessorTasks(n),bl(this,n),t.performVisualTasks(n),Pl(this,this._model,r,"remain"),i-=+new Date-a}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},uw.getDom=function(){return this._dom},uw.getZr=function(){return this._zr},uw.setOption=function(t,e,i){var n;if(q_(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[sw]=!0,!this._model||e){var r=new Qo(this._api),a=this._theme,o=this._model=new Ex(null,null,a,r);o.scheduler=this._scheduler,o.init(null,null,a,r)}this._model.setOption(t,vw),i?(this[lw]={silent:n},this[sw]=!1):(_l(this),cw.update.call(this),this._zr.flush(),this[lw]=!1,this[sw]=!1,Ml.call(this,n),Il.call(this,n))},uw.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},uw.getModel=function(){return this._model},uw.getOption=function(){return this._model&&this._model.getOption()},uw.getWidth=function(){return this._zr.getWidth()},uw.getHeight=function(){return this._zr.getHeight()},uw.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},uw.getRenderedCanvas=function(t){if(tg.canvasSupported){t=t||{},t.pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor");var e=this._zr;return e.painter.getRenderedCanvas(t)}},uw.getSvgDataUrl=function(){if(tg.svgSupported){var t=this._zr,e=t.storage.getDisplayList();return f(e,function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},uw.getDataURL=function(t){t=t||{};var e=t.excludeComponents,i=this._model,n=[],r=this;Y_(e,function(t){i.eachComponent({mainType:t},function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(n.push(e),e.group.ignore=!0)})});var a="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Y_(n,function(t){t.group.ignore=!1}),a},uw.getConnectedDataURL=function(t){if(tg.canvasSupported){var e=this.group,i=Math.min,r=Math.max,a=1/0;if(bw[e]){var o=a,s=a,l=-a,h=-a,u=[],c=t&&t.pixelRatio||1;f(ww,function(a){if(a.group===e){var c=a.getRenderedCanvas(n(t)),d=a.getDom().getBoundingClientRect();o=i(d.left,o),s=i(d.top,s),l=r(d.right,l),h=r(d.bottom,h),u.push({dom:c,left:d.left,top:d.top})}}),o*=c,s*=c,l*=c,h*=c;var d=l-o,p=h-s,g=cg();g.width=d,g.height=p;var v=On(g);return Y_(u,function(t){var e=new yn({style:{x:t.left*c-o,y:t.top*c-s,image:t.dom}});v.add(e)}),v.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},uw.convertToPixel=x(xl,"convertToPixel"),uw.convertFromPixel=x(xl,"convertFromPixel"),uw.containPixel=function(t,e){var i,n=this._model;return t=qn(n,t),f(t,function(t,n){n.indexOf("Models")>=0&&f(t,function(t){var r=t.coordinateSystem;if(r&&r.containPoint)i|=!!r.containPoint(e);else if("seriesModels"===n){var a=this._chartsMap[t.__viewId];a&&a.containPoint&&(i|=a.containPoint(e,t))}},this)},this),!!i},uw.getVisual=function(t,e){var i=this._model;t=qn(i,t,{defaultMainType:"series"});var n=t.seriesModel,r=n.getData(),a=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?r.indexOfRawIndex(t.dataIndex):null;return null!=a?r.getItemVisual(a,e):r.getVisual(e)},uw.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},uw.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var cw={prepareAndUpdate:function(t){_l(this),cw.update.call(this,t)},update:function(t){var e=this._model,i=this._api,n=this._zr,r=this._coordSysMgr,a=this._scheduler;if(e){a.restoreData(e,t),a.performSeriesTasks(e),r.create(e,i),a.performDataProcessorTasks(e,t),bl(this,e),r.update(e,i),Al(e),a.performVisualTasks(e,t),Dl(this,e,i,t);var o=e.get("backgroundColor")||"transparent";if(tg.canvasSupported)n.setBackgroundColor(o);else{var s=He(o);o=Qe(s,"rgb"),0===s[3]&&(o="transparent")}Ll(e,i)}},updateTransform:function(t){var e=this._model,i=this,n=this._api;if(e){var r=[];e.eachComponent(function(a,o){var s=i.getViewOfComponentModel(o);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(o,e,n,t);l&&l.update&&r.push(s)}else r.push(s)});var a=N();e.eachSeries(function(r){var o=i._chartsMap[r.__viewId];if(o.updateTransform){var s=o.updateTransform(r,e,n,t);s&&s.update&&a.set(r.uid,1)}else a.set(r.uid,1)}),Al(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),Pl(i,e,n,t,a),Ll(e,this._api)}},updateView:function(t){var e=this._model;e&&(Bs.markUpdateMethod(t,"updateView"),Al(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Dl(this,this._model,this._api,t),Ll(e,this._api))},updateVisual:function(t){cw.update.call(this,t)},updateLayout:function(t){cw.update.call(this,t)}};uw.resize=function(t){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[sw]=!0,i&&_l(this),cw.update.call(this),this[sw]=!1,Ml.call(this,n),Il.call(this,n)}},uw.showLoading=function(t,e){if(q_(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),_w[t]){var i=_w[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},uw.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},uw.makeActionFromEvent=function(t){var e=o({},t);return e.type=pw[t.type],e},uw.dispatchAction=function(t,e){if(q_(e)||(e={silent:!!e}),fw[t.type]&&this._model){if(this[sw])return void this._pendingActions.push(t);Sl.call(this,t,e.silent),e.flush?this._zr.flush(!0):e.flush!==!1&&tg.browser.weChat&&this._throttledZrFlush(),Ml.call(this,e.silent),Il.call(this,e.silent)}},uw.appendData=function(t){var e=t.seriesIndex,i=this.getModel(),n=i.getSeriesByIndex(e);n.appendData(t),this._scheduler.unfinished=!0},uw.on=vl("on"),uw.off=vl("off"),uw.one=vl("one");var dw=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];uw._initEvents=function(){Y_(dw,function(t){this._zr.on(t,function(e){var i,n=this.getModel(),r=e.target,a="globalout"===t;if(a)i={};else if(r&&null!=r.dataIndex){var s=r.dataModel||n.getSeriesByIndex(r.seriesIndex);i=s&&s.getDataParams(r.dataIndex,r.dataType,r)||{}}else r&&r.eventData&&(i=o({},r.eventData));if(i){var l=i.componentType,h=i.componentIndex;("markLine"===l||"markPoint"===l||"markArea"===l)&&(l="series",h=i.seriesIndex);var u=l&&null!=h&&n.getComponent(l,h),c=u&&this["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];i.event=e,i.type=t,this._ecEventProcessor.eventInfo={targetEl:r,packedEvent:i,model:u,view:c},this.trigger(t,i)}},this)},this),Y_(pw,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},uw.isDisposed=function(){return this._disposed},uw.clear=function(){this.setOption({series:[]},!0)},uw.dispose=function(){if(!this._disposed){this._disposed=!0,$n(this.getDom(),Iw,"");var t=this._api,e=this._model;Y_(this._componentsViews,function(i){i.dispose(e,t)}),Y_(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete ww[this.id]}},c(yl,bg),Bl.prototype={constructor:Bl,normalizeQuery:function(t){var e={},i={},n={};if(b(t)){var r=U_(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var a=["Index","Name","Id"],o={name:1,dataIndex:1,dataType:1};f(t,function(t,r){for(var s=!1,l=0;l0&&u===r.length-h.length){var c=r.slice(0,u);"data"!==c&&(e.mainType=c,e[h.toLowerCase()]=t,s=!0)}}o.hasOwnProperty(r)&&(i[r]=t,s=!0),s||(n[r]=t)})}return{cptQuery:e,dataQuery:i,otherQuery:n}},filter:function(t,e){function i(t,e,i,n){return null==t[i]||e[n||i]===t[i]}var n=this.eventInfo;if(!n)return!0;var r=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=e.cptQuery,h=e.dataQuery;return i(l,o,"mainType")&&i(l,o,"subType")&&i(l,o,"index","componentIndex")&&i(l,o,"name")&&i(l,o,"id")&&i(h,a,"name")&&i(h,a,"dataIndex")&&i(h,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,e.otherQuery,r,a))},afterTrigger:function(){this.eventInfo=null}};var fw={},pw={},gw=[],vw=[],mw=[],yw=[],xw={},_w={},ww={},bw={},Sw=new Date-0,Mw=new Date-0,Iw="_echarts_instance_",Tw=Wl;Jl(iw,m_),Yl(Ux),jl(tw,$x),eh("default",w_),Ul({type:"highlight",event:"highlight",update:"highlight"},V),Ul({type:"downplay",event:"downplay",update:"downplay"},V),Xl("light",D_),Xl("dark",O_);var Cw={};uh.prototype={constructor:uh,add:function(t){return this._add=t,this},update:function(t){return this._update=t,this},remove:function(t){return this._remove=t,this},execute:function(){var t,e=this._old,i=this._new,n={},r={},a=[],o=[];for(ch(e,n,a,"_oldKeyGetter",this),ch(i,r,o,"_newKeyGetter",this),t=0;tu;u++)this._add&&this._add(l[u]);else this._add&&this._add(l)}}}};var Aw=N(["tooltip","label","itemName","itemId","seriesName"]),Dw=S,kw="undefined",Pw="e\x00\x00",Lw={"float":typeof Float64Array===kw?Array:Float64Array,"int":typeof Int32Array===kw?Array:Int32Array,ordinal:Array,number:Array,time:Array},Ow=typeof Uint32Array===kw?Array:Uint32Array,zw=typeof Uint16Array===kw?Array:Uint16Array,Ew=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_chunkSize","_chunkCount","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx"],Rw=["_extent","_approximateExtent","_rawExtent"],Bw=function(t,e){t=t||["x","y"];for(var i={},n=[],r={},a=0;a=e)){for(var i,n=this._chunkSize,r=this._rawData,a=this._storage,o=this.dimensions,s=o.length,l=this._dimensionInfos,h=this._nameList,u=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=f-1,g=0;s>g;g++){var v=o[g];c[v]||(c[v]=Th());var m=l[v];0===m.otherDims.itemName&&(i=this._nameDimIdx=g),0===m.otherDims.itemId&&(this._idDimIdx=g);var y=Lw[m.type];a[v]||(a[v]=[]);var x=a[v][p];if(x&&x.lengthb;b+=n)a[v].push(new y(Math.min(e-b,n)));this._chunkCount=a[v].length}for(var S=new Array(s),M=t;e>M;M++){S=r.getItem(M,S);for(var I=Math.floor(M/n),T=M%n,b=0;s>b;b++){var v=o[b],C=a[v][I],A=this._dimValueGetter(S,v,M,b);C[T]=A;var D=c[v];AD[1]&&(D[1]=A)}if(!r.pure){var k=h[M];if(S&&null==k)if(null!=S.name)h[M]=k=S.name;else if(null!=i){var P=o[i],L=a[P][I];if(L){k=L[T];var O=l[P].ordinalMeta;O&&O.categories.length&&(k=O.categories[k])}}var z=null==S?null:S.id;null==z&&null!=k&&(d[k]=d[k]||0,z=k,d[k]>0&&(z+="__ec__"+d[k]),d[k]++),null!=z&&(u[M]=z)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=e,this._extent={},yh(this)}},Nw.count=function(){return this._count},Nw.getIndices=function(){var t,e=this._indices;if(e){var i=e.constructor,n=this._count;if(i===Array){t=new i(n);for(var r=0;n>r;r++)t[r]=e[r]}else t=new i(e.buffer,0,n)}else for(var i=gh(this),t=new i(this.count()),r=0;r=0&&e=0&&en;n++)i.push(this.get(t[n],e));return i},Nw.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,i=this._dimensionInfos,n=0,r=e.length;r>n;n++)if("ordinal"!==i[e[n]].type&&isNaN(this.get(e[n],t)))return!1;return!0},Nw.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],i=Th();if(!e)return i;var n,r=this.count(),a=!this._indices;if(a)return this._rawExtent[t].slice();if(n=this._extent[t])return n.slice();n=i;for(var o=n[0],s=n[1],l=0;r>l;l++){var h=this._getFast(t,this.getRawIndex(l));o>h&&(o=h),h>s&&(s=h)}return n=[o,s],this._extent[t]=n,n},Nw.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},Nw.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},Nw.getCalculationInfo=function(t){return this._calculationInfo[t]},Nw.setCalculationInfo=function(t,e){Dw(t)?o(this._calculationInfo,t):this._calculationInfo[t]=e},Nw.getSum=function(t){var e=this._storage[t],i=0;if(e)for(var n=0,r=this.count();r>n;n++){var a=this.get(t,n);isNaN(a)||(i+=a)}return i},Nw.getMedian=function(t){var e=[];this.each(t,function(t){isNaN(t)||e.push(t)});var i=[].concat(e).sort(function(t,e){return t-e}),n=this.count();return 0===n?0:n%2===1?i[(n-1)/2]:(i[n/2]+i[n/2-1])/2},Nw.rawIndexOf=function(t,e){var i=t&&this._invertedIndicesMap[t],n=i[e];return null==n||isNaN(n)?-1:n},Nw.indexOfName=function(t){for(var e=0,i=this.count();i>e;e++)if(this.getName(e)===t)return e;return-1},Nw.indexOfRawIndex=function(t){if(!this._indices)return t;if(t>=this._rawCount||0>t)return-1;var e=this._indices,i=e[t];if(null!=i&&i=n;){var a=(n+r)/2|0;if(e[a]t))return a;r=a-1}}return-1},Nw.indicesOfNearest=function(t,e,i){var n=this._storage,r=n[t],a=[];if(!r)return a;null==i&&(i=1/0);for(var o=Number.MAX_VALUE,s=-1,l=0,h=this.count();h>l;l++){var u=e-this.get(t,l),c=Math.abs(u);i>=u&&o>=c&&((o>c||u>=0&&0>s)&&(o=c,s=u,a.length=0),a.push(l))}return a},Nw.getRawIndex=_h,Nw.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;io;o++)s[o]=this.get(t[o],a);s[o]=a,e.apply(i,s)}}},Nw.filterSelf=function(t,e,i,n){if(this._count){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this,t=p(Sh(t),this.getDimension,this);for(var r=this.count(),a=gh(this),o=new a(r),s=[],l=t.length,h=0,u=t[0],c=0;r>c;c++){var d,f=this.getRawIndex(c);if(0===l)d=e.call(i,c);else if(1===l){var g=this._getFast(u,f);d=e.call(i,g,c)}else{for(var v=0;l>v;v++)s[v]=this._getFast(u,f);s[v]=c,d=e.apply(i,s)}d&&(o[h++]=f)}return r>h&&(this._indices=o),this._count=h,this._extent={},this.getRawIndex=this._indices?wh:_h,this}},Nw.selectRange=function(t){if(this._count){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(i);var n=e.length;if(n){var r=this.count(),a=gh(this),o=new a(r),s=0,l=e[0],h=t[l][0],u=t[l][1],c=!1;if(!this._indices){var d=0;if(1===n){for(var f=this._storage[e[0]],p=0;pm;m++){var y=g[m];(y>=h&&u>=y||isNaN(y))&&(o[s++]=d),d++}c=!0}else if(2===n){for(var f=this._storage[l],x=this._storage[e[1]],_=t[e[1]][0],w=t[e[1]][1],p=0;pm;m++){var y=g[m],S=b[m]; + (y>=h&&u>=y||isNaN(y))&&(S>=_&&w>=S||isNaN(S))&&(o[s++]=d),d++}c=!0}}if(!c)if(1===n)for(var m=0;r>m;m++){var M=this.getRawIndex(m),y=this._getFast(l,M);(y>=h&&u>=y||isNaN(y))&&(o[s++]=M)}else for(var m=0;r>m;m++){for(var I=!0,M=this.getRawIndex(m),p=0;n>p;p++){var T=e[p],y=this._getFast(i,M);(yt[T][1])&&(I=!1)}I&&(o[s++]=this.getRawIndex(m))}return r>s&&(this._indices=o),this._count=s,this._extent={},this.getRawIndex=this._indices?wh:_h,this}}},Nw.mapArray=function(t,e,i,n){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this;var r=[];return this.each(t,function(){r.push(e&&e.apply(this,arguments))},i),r},Nw.map=function(t,e,i,n){i=i||n||this,t=p(Sh(t),this.getDimension,this);var r=Mh(this,t);r._indices=this._indices,r.getRawIndex=r._indices?wh:_h;for(var a=r._storage,o=[],s=this._chunkSize,l=t.length,h=this.count(),u=[],c=r._rawExtent,d=0;h>d;d++){for(var f=0;l>f;f++)u[f]=this.get(t[f],d);u[l]=d;var g=e&&e.apply(i,u);if(null!=g){"object"!=typeof g&&(o[0]=g,g=o);for(var v=this.getRawIndex(d),m=Math.floor(v/s),y=v%s,x=0;xb[1]&&(b[1]=w)}}}return r},Nw.downSample=function(t,e,i,n){for(var r=Mh(this,[t]),a=r._storage,o=[],s=Math.floor(1/e),l=a[t],h=this.count(),u=this._chunkSize,c=r._rawExtent[t],d=new(gh(this))(h),f=0,p=0;h>p;p+=s){s>h-p&&(s=h-p,o.length=s);for(var g=0;s>g;g++){var v=this.getRawIndex(p+g),m=Math.floor(v/u),y=v%u;o[g]=l[m][y]}var x=i(o),_=this.getRawIndex(Math.min(p+n(o,x)||0,h-1)),w=Math.floor(_/u),b=_%u;l[w][b]=x,xc[1]&&(c[1]=x),d[f++]=_}return r._count=f,r._indices=d,r.getRawIndex=wh,r},Nw.getItemModel=function(t){var e=this.hostModel;return new Wa(this.getRawDataItem(t),e,e&&e.ecModel)},Nw.diff=function(t){var e=this;return new uh(t?t.getIndices():[],this.getIndices(),function(e){return bh(t,e)},function(t){return bh(e,t)})},Nw.getVisual=function(t){var e=this._visual;return e&&e[t]},Nw.setVisual=function(t,e){if(Dw(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},Nw.setLayout=function(t,e){if(Dw(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},Nw.getLayout=function(t){return this._layout[t]},Nw.getItemLayout=function(t){return this._itemLayouts[t]},Nw.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?o(this._itemLayouts[t]||{},e):e},Nw.clearItemLayouts=function(){this._itemLayouts.length=0},Nw.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],r=n&&n[e];return null!=r||i?r:this.getVisual(e)},Nw.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},r=this.hasItemVisual;if(this._itemVisuals[t]=n,Dw(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],r[a]=!0);else n[e]=i,r[e]=!0},Nw.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var Fw=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};Nw.setItemGraphicEl=function(t,e){var i=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(Fw,e)),this._graphicEls[t]=e},Nw.getItemGraphicEl=function(t){return this._graphicEls[t]},Nw.eachItemGraphicEl=function(t,e){f(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},Nw.cloneShallow=function(t){if(!t){var e=p(this.dimensions,this.getDimensionInfo,this);t=new Bw(e,this.hostModel)}if(t._storage=this._storage,mh(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?wh:_h,t},Nw.wrapMethod=function(t,e){var i=this[t];"function"==typeof i&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=i.apply(this,arguments);return e.apply(this,[t].concat(P(arguments)))})},Nw.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],Nw.CHANGABLE_METHODS=["filterSelf","selectRange"];var Vw=function(t,e){return e=e||{},Ch(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};Rh.prototype.parse=function(t){return t},Rh.prototype.getSetting=function(t){return this._setting[t]},Rh.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},Rh.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},Rh.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},Rh.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},Rh.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Rh.prototype.getExtent=function(){return this._extent.slice()},Rh.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},Rh.prototype.isBlank=function(){return this._isBlank},Rh.prototype.setBlank=function(t){this._isBlank=t},Rh.prototype.getLabel=null,er(Rh),ar(Rh,{registerWhenExtend:!0}),Bh.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&p(i,Fh);return new Bh({categories:n,needCollect:!n,deduplication:e.dedplication!==!1})};var Ww=Bh.prototype;Ww.getOrdinal=function(t){return Nh(this).get(t)},Ww.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=Nh(this);return e=n.get(t),null==e&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=0/0),e};var Gw=Rh.prototype,Hw=Rh.extend({type:"ordinal",init:function(t,e){(!t||_(t))&&(t=new Bh({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),Gw.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return Gw.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(Gw.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){return this.isBlank()?void 0:this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:V,niceExtent:V});Hw.create=function(){return new Hw};var Zw=$a,Xw=$a,Yw=Rh.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),Yw.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Wh(t)},getTicks:function(){return Zh(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var i=e&&e.precision;return null==i?i=Ja(t)||0:"auto"===i&&(i=this._intervalPrecision),t=Xw(t,i,!0),co(t)},niceTicks:function(t,e,i){t=t||5;var n=this._extent,r=n[1]-n[0];if(isFinite(r)){0>r&&(r=-r,n.reverse());var a=Vh(n,t,e,i);this._intervalPrecision=a.intervalPrecision,this._interval=a.interval,this._niceExtent=a.niceTickExtent}},niceExtent:function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var i=e[0];t.fixMax?e[0]-=i/2:(e[1]+=i/2,e[0]-=i/2)}else e[1]=1;var n=e[1]-e[0];isFinite(n)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=Xw(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=Xw(Math.ceil(e[1]/r)*r))}});Yw.create=function(){return new Yw};var jw="__ec_stack_",qw=.5,Uw="undefined"!=typeof Float32Array?Float32Array:Array,$w={seriesType:"bar",plan:h_(),reset:function(t){function e(t,e){for(var i,c=new Uw(2*t.count),d=[],f=[],p=0;null!=(i=t.next());)f[h]=e.get(o,i),f[1-h]=e.get(s,i),d=n.dataToPoint(f,null,d),c[p++]=d[0],c[p++]=d[1];e.setLayout({largePoints:c,barWidth:u,valueAxisStart:eu(r,a,!1),valueAxisHorizontal:l})}if(Jh(t)&&tu(t)){var i=t.getData(),n=t.coordinateSystem,r=n.getBaseAxis(),a=n.getOtherAxis(r),o=i.mapDimension(a.dim),s=i.mapDimension(r.dim),l=a.isHorizontal(),h=l?0:1,u=Kh(Uh([t]),r,t).width;return u>qw||(u=qw),{progress:e}}}},Kw=Yw.prototype,Qw=Math.ceil,Jw=Math.floor,tb=1e3,eb=60*tb,ib=60*eb,nb=24*ib,rb=function(t,e,i,n){for(;n>i;){var r=i+n>>>1;t[r][1]a&&(a=e),null!=i&&a>i&&(a=i);var o=ob.length,s=rb(ob,a,0,o),l=ob[Math.min(s,o-1)],h=l[1];if("year"===l[0]){var u=r/h,c=so(u/t,!0);h*=c}var d=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,f=[Math.round(Qw((n[0]-d)/h)*h+d),Math.round(Jw((n[1]-d)/h)*h+d)];Hh(f,n),this._stepLvl=l,this._interval=h,this._niceExtent=f},parse:function(t){return+ro(t)}});f(["contain","normalize"],function(t){ab.prototype[t]=function(e){return Kw[t].call(this,this.parse(e))}});var ob=[["hh:mm:ss",tb],["hh:mm:ss",5*tb],["hh:mm:ss",10*tb],["hh:mm:ss",15*tb],["hh:mm:ss",30*tb],["hh:mm\nMM-dd",eb],["hh:mm\nMM-dd",5*eb],["hh:mm\nMM-dd",10*eb],["hh:mm\nMM-dd",15*eb],["hh:mm\nMM-dd",30*eb],["hh:mm\nMM-dd",ib],["hh:mm\nMM-dd",2*ib],["hh:mm\nMM-dd",6*ib],["hh:mm\nMM-dd",12*ib],["MM-dd\nyyyy",nb],["MM-dd\nyyyy",2*nb],["MM-dd\nyyyy",3*nb],["MM-dd\nyyyy",4*nb],["MM-dd\nyyyy",5*nb],["MM-dd\nyyyy",6*nb],["week",7*nb],["MM-dd\nyyyy",10*nb],["week",14*nb],["week",21*nb],["month",31*nb],["week",42*nb],["month",62*nb],["week",70*nb],["quarter",95*nb],["month",31*nb*4],["month",31*nb*5],["half-year",380*nb/2],["month",31*nb*8],["month",31*nb*10],["year",380*nb]];ab.create=function(t){return new ab({useUTC:t.ecModel.get("useUTC")})};var sb=Rh.prototype,lb=Yw.prototype,hb=Ja,ub=$a,cb=Math.floor,db=Math.ceil,fb=Math.pow,pb=Math.log,gb=Rh.extend({type:"log",base:10,$constructor:function(){Rh.apply(this,arguments),this._originalScale=new Yw},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return p(lb.getTicks.call(this),function(n){var r=$a(fb(this.base,n));return r=n===e[0]&&t.__fixMin?iu(r,i[0]):r,r=n===e[1]&&t.__fixMax?iu(r,i[1]):r},this)},getLabel:lb.getLabel,scale:function(t){return t=sb.scale.call(this,t),fb(this.base,t)},setExtent:function(t,e){var i=this.base;t=pb(t)/pb(i),e=pb(e)/pb(i),lb.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=sb.getExtent.call(this);e[0]=fb(t,e[0]),e[1]=fb(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=iu(e[0],n[0])),i.__fixMax&&(e[1]=iu(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=pb(t[0])/pb(e),t[1]=pb(t[1])/pb(e),sb.unionExtent.call(this,t)},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},niceTicks:function(t){t=t||10;var e=this._extent,i=e[1]-e[0];if(!(1/0===i||0>=i)){var n=ao(i),r=t/i*n;for(.5>=r&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var a=[$a(db(e[0]/n)*n),$a(cb(e[1]/n)*n)];this._interval=n,this._niceExtent=a}},niceExtent:function(t){lb.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});f(["contain","normalize"],function(t){gb.prototype[t]=function(e){return e=pb(e)/pb(this.base),sb[t].call(this,e)}}),gb.create=function(){return new gb};var vb={getMin:function(t){var e=this.option,i=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=i&&"dataMin"!==i&&"function"!=typeof i&&!C(i)&&(i=this.axis.scale.parse(i)),i},getMax:function(t){var e=this.option,i=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=i&&"dataMax"!==i&&"function"!=typeof i&&!C(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null!=t.rangeStart||null!=t.rangeEnd?!1:!t.scale},getCoordSysModel:V,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},mb=$r({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+r,n+a),t.lineTo(i-r,n+a),t.closePath()}}),yb=$r({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+r,n),t.lineTo(i,n+a),t.lineTo(i-r,n),t.closePath()}}),xb=$r({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,r=e.width/5*3,a=Math.max(r,e.height),o=r/2,s=o*o/(a-o),l=n-a+o+s,h=Math.asin(s/o),u=Math.cos(h)*o,c=Math.sin(h),d=Math.cos(h),f=.6*o,p=.7*o;t.moveTo(i-u,l+s),t.arc(i,l,o,Math.PI-h,2*Math.PI+h),t.bezierCurveTo(i+u-c*f,l+s+d*f,i,n-p,i,n),t.bezierCurveTo(i,n-p,i-u+c*f,l+s+d*f,i-u,l+s),t.closePath()}}),_b=$r({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.height,n=e.width,r=e.x,a=e.y,o=n/3*2;t.moveTo(r,a),t.lineTo(r+o,a+i),t.lineTo(r,a+i/4*3),t.lineTo(r-o,a+i),t.lineTo(r,a),t.closePath()}}),wb={line:ky,rect:Dy,roundRect:Dy,square:Dy,circle:_y,diamond:yb,pin:xb,arrow:_b,triangle:mb},bb={line:function(t,e,i,n,r){r.x1=t,r.y1=e+n/2,r.x2=t+i,r.y2=e+n/2},rect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r.height=n},roundRect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r.height=n,r.r=Math.min(i,n)/4},square:function(t,e,i,n,r){var a=Math.min(i,n);r.x=t,r.y=e,r.width=a,r.height=a},circle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.r=Math.min(i,n)/2},diamond:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r.height=n},pin:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r.height=n},arrow:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r.height=n},triangle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r.height=n}},Sb={};f(wb,function(t,e){Sb[e]=new t});var Mb=$r({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style,e=this.shape;"pin"===e.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,i){var n=e.symbolType,r=Sb[n];"none"!==e.symbolType&&(r||(n="rect",r=Sb[n]),bb[n](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,i))}}),Ib={isDimensionStacked:Ph,enableDataStack:kh,getStackedDimension:Lh},Tb=(Object.freeze||Object)({createList:pu,getLayoutRect:bo,dataStack:Ib,createScale:gu,mixinAxisModelCommonMethods:vu,completeDimensions:Ch,createDimensions:Vw,createSymbol:fu}),Cb=1e-8;xu.prototype={constructor:xu,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],r=[],a=[],o=this.geometries,s=0;sn;n++)if("polygon"===i[n].type){var a=i[n].exterior,o=i[n].interiors;if(yu(a,t[0],t[1])){for(var s=0;s<(o?o.length:0);s++)if(yu(o[s]))continue t;return!0}}return!1},transformTo:function(t,e,i,n){var r=this.getBoundingRect(),a=r.width/r.height;i?n||(n=i/a):i=a*n;for(var o=new gi(t,e,i,n),s=r.calculateTransform(o),l=this.geometries,h=0;h0}),function(t){var e=t.properties,i=t.geometry,n=i.coordinates,r=[];"Polygon"===i.type&&r.push({type:"polygon",exterior:n[0],interiors:n.slice(1)}),"MultiPolygon"===i.type&&f(n,function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var a=new xu(e.name,r,e.cp);return a.properties=e,a})},Db=jn(),kb=[0,1],Pb=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};Pb.prototype={constructor:Pb,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&n>=t},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return to(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var i=this._extent;i[0]=t,i[1]=e},dataToCoord:function(t,e){var i=this._extent,n=this.scale;return t=n.normalize(t),this.onBand&&"ordinal"===n.type&&(i=i.slice(),Bu(i,n.count())),qa(t,kb,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&(i=i.slice(),Bu(i,n.count()));var r=qa(t,i,kb,e);return this.scale.scale(r)},pointToData:function(){},getTicksCoords:function(t){t=t||{};var e=t.tickModel||this.getTickModel(),i=Su(this,e),n=i.ticks,r=p(n,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),a=e.get("alignWithLabel");return Nu(this,r,i.tickCategoryInterval,a,t.clamp),r},getViewLabels:function(){return bu(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var t=this._extent,e=this.scale.getExtent(),i=e[1]-e[0]+(this.onBand?1:0);0===i&&(i=1);var n=Math.abs(t[1]-t[0]);return Math.abs(n)/i},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return Lu(this)}};var Lb=Ab,Ob={};f(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){Ob[t]=pg[t]});var zb={};f(["extendShape","extendPath","makePath","makeImage","mergePath","resizePath","createIcon","setHoverStyle","setLabelStyle","setTextStyle","setText","getFont","updateProps","initProps","getTransform","clipPointsByRect","clipRectByRect","Group","Image","Text","Circle","Sector","Ring","Polygon","Polyline","Rect","Line","BezierCurve","Arc","IncrementalDisplayable","CompoundPath","LinearGradient","RadialGradient","BoundingRect"],function(t){zb[t]=Yy[t]});var Eb=function(t){this._axes={},this._dimList=[],this.name=t||""};Eb.prototype={constructor:Eb,type:"cartesian",getAxis:function(t){return this._axes[t]},getAxes:function(){return p(this._dimList,Fu,this)},getAxesByScale:function(t){return t=t.toLowerCase(),v(this.getAxes(),function(e){return e.scale.type===t})},addAxis:function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},dataToCoord:function(t){return this._dataCoordConvert(t,"dataToCoord")},coordToData:function(t){return this._dataCoordConvert(t,"coordToData")},_dataCoordConvert:function(t,e){for(var i=this._dimList,n=t instanceof Array?[]:{},r=0;re[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},u(Rb,Pb);var Bb={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},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)"]}}},Nb={};Nb.categoryAxis=r({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Bb),Nb.valueAxis=r({boundaryGap:[0,0],splitNumber:5},Bb),Nb.timeAxis=s({scale:!0,min:"dataMin",max:"dataMax"},Nb.valueAxis),Nb.logAxis=s({scale:!0,logBase:10},Nb.valueAxis);var Fb=["value","category","time","log"],Vb=function(t,e,i,n){f(Fb,function(o){e.extend({type:t+"Axis."+o,mergeDefaultAndTheme:function(e,n){var a=this.layoutMode,s=a?Mo(e):{},l=n.getTheme();r(e,l.get(o+"Axis")),r(e,this.getDefaultOption()),e.type=i(t,e),a&&So(e,s,a)},optionUpdated:function(){var t=this.option;"category"===t.type&&(this.__ordinalMeta=Bh.createByAxisModel(this))},getCategories:function(t){var e=this.option;return"category"===e.type?t?e.data:this.__ordinalMeta.categories:void 0},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:a([{},Nb[o+"Axis"],n],!0)})}),yx.registerSubTypeDefaulter(t+"Axis",x(i,t))},Wb=yx.extend({type:"cartesian2dAxis",axis:null,init:function(){Wb.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){Wb.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){Wb.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});r(Wb.prototype,vb);var Gb={offset:0};Vb("x",Wb,Wu,Gb),Vb("y",Wb,Wu,Gb),yx.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var Hb=Hu.prototype;Hb.type="grid",Hb.axisPointerEnabled=!0,Hb.getRect=function(){return this._rect},Hb.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),f(i.x,function(t){au(t.scale,t.model)}),f(i.y,function(t){au(t.scale,t.model)});var n={};f(i.x,function(t){Zu(i,"y",t,n)}),f(i.y,function(t){Zu(i,"x",t,n)}),this.resize(this.model,e)},Hb.resize=function(t,e,i){function n(){f(a,function(t){var e=t.isHorizontal(),i=e?[0,r.width]:[0,r.height],n=t.inverse?1:0;t.setExtent(i[n],i[1-n]),Yu(t,e?r.x:r.y)})}var r=bo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=r;var a=this._axesList;n(),!i&&t.get("containLabel")&&(f(a,function(t){if(!t.model.get("axisLabel.inside")){var e=uu(t);if(e){var i=t.isHorizontal()?"height":"width",n=t.model.get("axisLabel.margin");r[i]-=e[i]+n,"top"===t.position?r.y+=e.height+n:"left"===t.position&&(r.x+=e.width+n)}}}),n())},Hb.getAxis=function(t,e){var i=this._axesMap[t];if(null!=i){if(null==e)for(var n in i)if(i.hasOwnProperty(n))return i[n];return i[e]}},Hb.getAxes=function(){return this._axesList.slice()},Hb.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}S(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var n=0,r=this._coordsList;nt&&(t=e),t}});var Yb=dm([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),jb={getBarItemStyle:function(t){var e=Yb(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},qb=["itemStyle","barBorderWidth"];o(Wa.prototype,jb),ah({type:"bar",render:function(t,e,i){this._updateDrawMode(t);var n=t.get("coordinateSystem");return("cartesian2d"===n||"polar"===n)&&(this._isLargeDraw?this._renderLarge(t,e,i):this._renderNormal(t,e,i)),this.group},incrementalPrepareRender:function(t){this._clear(),this._updateDrawMode(t)},incrementalRender:function(t,e){this._incrementalRenderLarge(t,e)},_updateDrawMode:function(t){var e=t.pipelineContext.large;(null==this._isLargeDraw||e^this._isLargeDraw)&&(this._isLargeDraw=e,this._clear())},_renderNormal:function(t){var e,i=this.group,n=t.getData(),r=this._data,a=t.coordinateSystem,o=a.getBaseAxis();"cartesian2d"===a.type?e=o.isHorizontal():"polar"===a.type&&(e="angle"===o.dim);var s=t.isAnimationEnabled()?t:null;n.diff(r).add(function(r){if(n.hasValue(r)){var o=n.getItemModel(r),l=$b[a.type](n,r,o),h=Ub[a.type](n,r,o,l,e,s);n.setItemGraphicEl(r,h),i.add(h),tc(h,n,r,o,l,t,e,"polar"===a.type)}}).update(function(o,l){var h=r.getItemGraphicEl(l);if(!n.hasValue(o))return void i.remove(h);var u=n.getItemModel(o),c=$b[a.type](n,o,u);h?La(h,{shape:c},s,o):h=Ub[a.type](n,o,u,c,e,s,!0),n.setItemGraphicEl(o,h),i.add(h),tc(h,n,o,u,c,t,e,"polar"===a.type)}).remove(function(t){var e=r.getItemGraphicEl(t);"cartesian2d"===a.type?e&&Qu(t,s,e):e&&Ju(t,s,e)}).execute(),this._data=n},_renderLarge:function(t){this._clear(),ic(t,this.group)},_incrementalRenderLarge:function(t,e){ic(e,this.group,!0)},dispose:V,remove:function(t){this._clear(t)},_clear:function(t){var e=this.group,i=this._data;t&&t.get("animation")&&i&&!this._isLargeDraw?i.eachItemGraphicEl(function(e){"sector"===e.type?Ju(e.dataIndex,t,e):Qu(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var Ub={cartesian2d:function(t,e,i,n,r,a,s){var l=new Dy({shape:o({},n)});if(a){var h=l.shape,u=r?"height":"width",c={};h[u]=0,c[u]=n[u],Yy[s?"updateProps":"initProps"](l,{shape:c},a,e)}return l},polar:function(t,e,i,n,r,a,o){var l=n.startAngle0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*r/2,y:n.y+o*r/2,width:n.width-a*r,height:n.height-o*r}},polar:function(t,e){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}},Kb=Fr.extend({type:"largeBar",shape:{points:[]},buildPath:function(t,e){for(var i=e.points,n=this.__startPoint,r=this.__valueIdx,a=0;ah[1]?-1:1,c=["start"===r?h[0]-u*l:"end"===r?h[1]+u*l:(h[0]+h[1])/2,uc(r)?t.labelOffset+a*l:0],d=e.get("nameRotate");null!=d&&(d=d*Qb/180);var f;uc(r)?n=eS(t.rotation,null!=d?d:t.rotation,a):(n=ac(t,r,d||0,h),f=t.axisNameAvailableWidth,null!=f&&(f=Math.abs(f/Math.sin(n.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},v=g.ellipsis,m=A(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=v&&null!=m?hx(i,m,p,v,{minChar:2,placeholder:g.placeholder}):i,x=e.get("tooltip",!0),_=e.mainType,w={componentType:_,name:i,$vars:["name"]};w[_+"Index"]=e.componentIndex;var b=new xy({anid:"name",__fullText:i,__truncatedText:y,position:c,rotation:n.rotation,silent:oc(e),z2:1,tooltip:x&&x.show?o({content:i,formatter:function(){return i},formatterParams:w},x):null});ba(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:n.textAlign,textVerticalAlign:n.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=rc(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},eS=Jb.innerTextLayout=function(t,e,i){var n,r,a=io(e-t);return no(a)?(r=i>0?"top":"bottom",n="center"):no(a-Qb)?(r=i>0?"bottom":"top",n="center"):(r="middle",n=a>0&&Qb>a?i>0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:r}},iS=f,nS=x,rS=nh({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&xc(t),rS.superApply(this,"render",arguments),Mc(this,t,e,i,n,!0)},updateAxisPointer:function(t,e,i,n){Mc(this,t,e,i,n,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),rS.superApply(this,"remove",arguments)},dispose:function(t,e){Ic(this,e),rS.superApply(this,"dispose",arguments)}}),aS=[];rS.registerAxisPointerClass=function(t,e){aS[t]=e},rS.getAxisPointerClass=function(t){return t&&aS[t]};var oS=["axisLine","axisTickLabel","axisName"],sS=["splitArea","splitLine"],lS=rS.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,n){this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new lv,this.group.add(this._axisGroup),t.get("show")){var a=t.getCoordSysModel(),o=Tc(a,t),s=new Jb(t,o);f(oS,s.add,s),this._axisGroup.add(s.getGroup()),f(sS,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),Ba(r,this._axisGroup,t),lS.superCall(this,"render",t,e,i,n)}},remove:function(){this._splitAreaColors=null},_splitLine:function(t,e){var i=t.axis;if(!i.scale.isBlank()){var n=t.getModel("splitLine"),r=n.getModel("lineStyle"),a=r.get("color");a=_(a)?a:[a];for(var o=e.coordinateSystem.getRect(),l=i.isHorizontal(),h=0,u=i.getTicksCoords({tickModel:n}),c=[],d=[],f=r.getLineStyle(),p=0;p0&&Gc(i[r-1]);r--);for(;r>n&&Gc(i[n]);n++);}for(;r>n;)n+=Hc(t,i,n,r,r,1,a.min,a.max,e.smooth,e.smoothMonotone,e.connectNulls)+1}}),IS=Fr.extend({type:"ec-polygon",shape:{points:[],stackedOnPoints:[],smooth:0,stackedOnSmooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},brush:by(Fr.prototype.brush),buildPath:function(t,e){var i=e.points,n=e.stackedOnPoints,r=0,a=i.length,o=e.smoothMonotone,s=Yc(i,e.smoothConstraint),l=Yc(n,e.smoothConstraint);if(e.connectNulls){for(;a>0&&Gc(i[a-1]);a--);for(;a>r&&Gc(i[r]);r++);}for(;a>r;){var h=Hc(t,i,r,a,a,1,s.min,s.max,e.smooth,o,e.connectNulls);Hc(t,n,r+h-1,h,a,-1,l.min,l.max,e.stackedOnSmooth,o,e.connectNulls),r+=h+1,t.closePath()}}});Bs.extend({type:"line",init:function(){var t=new lv,e=new zc;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var n=t.coordinateSystem,r=this.group,a=t.getData(),o=t.getModel("lineStyle"),l=t.getModel("areaStyle"),h=a.mapArray(a.getItemLayout),u="polar"===n.type,c=this._coordSys,d=this._symbolDraw,f=this._polyline,p=this._polygon,g=this._lineGroup,v=t.get("animation"),m=!l.isEmpty(),y=l.get("origin"),x=Nc(n,a,y),_=$c(n,a,x),w=t.get("showSymbol"),b=w&&!u&&id(t,a,n),S=this._data;S&&S.eachItemGraphicEl(function(t,e){t.__temp&&(r.remove(t),S.setItemGraphicEl(e,null))}),w||d.remove(),r.add(g);var M=!u&&t.get("step");f&&c.type===n.type&&M===this._step?(m&&!p?p=this._newPolygon(h,_,n,v):p&&!m&&(g.remove(p),p=this._polygon=null),g.setClipPath(Jc(n,!1,!1,t)),w&&d.updateData(a,{isIgnore:b,clipShape:Jc(n,!1,!0,t)}),a.eachItemGraphicEl(function(t){t.stopAnimation(!0)}),jc(this._stackedOnPoints,_)&&jc(this._points,h)||(v?this._updateAnimation(a,_,n,i,M,y):(M&&(h=td(h,n,M),_=td(_,n,M)),f.setShape({points:h}),p&&p.setShape({points:h,stackedOnPoints:_})))):(w&&d.updateData(a,{isIgnore:b,clipShape:Jc(n,!1,!0,t)}),M&&(h=td(h,n,M),_=td(_,n,M)),f=this._newPolyline(h,n,v),m&&(p=this._newPolygon(h,_,n,v)),g.setClipPath(Jc(n,!0,!1,t)));var I=ed(a,n)||a.getVisual("color");f.useStyle(s(o.getLineStyle(),{fill:"none",stroke:I,lineJoin:"bevel"}));var T=t.get("smooth");if(T=qc(t.get("smooth")),f.setShape({smooth:T,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),p){var C=a.getCalculationInfo("stackedOnSeries"),A=0;p.useStyle(s(l.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel"})),C&&(A=qc(C.get("smooth"))),p.setShape({smooth:T,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=a,this._coordSys=n,this._stackedOnPoints=_,this._points=h,this._step=M,this._valueOrigin=y},dispose:function(){},highlight:function(t,e,i,n){var r=t.getData(),a=Yn(r,n);if(!(a instanceof Array)&&null!=a&&a>=0){var o=r.getItemGraphicEl(a);if(!o){var s=r.getItemLayout(a);if(!s)return;o=new Cc(r,a),o.position=s,o.setZ(t.get("zlevel"),t.get("z")),o.ignore=isNaN(s[0])||isNaN(s[1]),o.__temp=!0,r.setItemGraphicEl(a,o),o.stopSymbolAnimation(!0),this.group.add(o)}o.highlight()}else Bs.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var r=t.getData(),a=Yn(r,n);if(null!=a&&a>=0){var o=r.getItemGraphicEl(a);o&&(o.__temp?(r.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay())}else Bs.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new MS({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new IS({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_updateAnimation:function(t,e,i,n,r,a){var o=this._polyline,s=this._polygon,l=t.hostModel,h=vS(this._data,t,this._stackedOnPoints,e,this._coordSys,i,this._valueOrigin,a),u=h.current,c=h.stackedOnCurrent,d=h.next,f=h.stackedOnNext;r&&(u=td(h.current,i,r),c=td(h.stackedOnCurrent,i,r),d=td(h.next,i,r),f=td(h.stackedOnNext,i,r)),o.shape.__points=h.current,o.shape.points=u,La(o,{shape:{points:d}},l),s&&(s.setShape({points:u,stackedOnPoints:c}),La(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=h.status,v=0;ve&&(e=t[i]);return isFinite(e)?e:0/0},min:function(t){for(var e=1/0,i=0;i1){var h;"string"==typeof i?h=AS[i]:"function"==typeof i&&(h=i),h&&t.setData(e.downSample(e.mapDimension(a.dim),1/l,h,DS))}}}}};Jl(TS("line","circle","line")),Ql(CS("line")),jl(ow.PROCESSOR.STATISTIC,kS("line"));var PS=function(t,e,i){e=_(e)&&{coordDimensions:e}||o({},e);var n=t.getSource(),r=Vw(n,e),a=new Bw(r,t);return a.initData(n,i),a},LS={updateSelectedMap:function(t){this._targetList=_(t)?t.slice():[],this._selectTargetMap=g(t||[],function(t,e){return t.set(e.name,e),t},N())},select:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t),n=this.get("selectedMode");"single"===n&&this._selectTargetMap.each(function(t){t.selected=!1}),i&&(i.selected=!0)},unSelect:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);i&&(i.selected=!1)},toggleSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return null!=i?(this[i.selected?"unSelect":"select"](t,e),i.selected):void 0},isSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return i&&i.selected}},OS=rh({type:"series.pie",init:function(t){OS.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this.updateSelectedMap(this._createSelectableList()),this._defaultLabelLine(t)},mergeOption:function(t){OS.superCall(this,"mergeOption",t),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(){return PS(this,["value"])},_createSelectableList:function(){for(var t=this.getRawData(),e=t.mapDimension("value"),i=[],n=0,r=t.count();r>n;n++)i.push({name:t.getName(n),value:t.get(e,n),selected:Ms(t,n,"selected")});return i},getDataParams:function(t){var e=this.getData(),i=OS.superCall(this,"getDataParams",t),n=[];return e.each(e.mapDimension("value"),function(t){n.push(t)}),i.percent=eo(n,t,e.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},_defaultLabelLine:function(t){Fn(t,"labelLine",["show"]);var e=t.labelLine,i=t.emphasis.labelLine;e.show=e.show&&t.label.show,i.show=i.show&&t.emphasis.label.show},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,selectedOffset:10,hoverOffset:10,avoidLabelOverlap:!0,percentPrecision:2,stillShowZeroSum:!0,label:{rotate:!1,show:!0,position:"outer"},labelLine:{show:!0,length:15,length2:15,smooth:!1,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},animationType:"expansion",animationEasing:"cubicOut"}});c(OS,LS);var zS=od.prototype;zS.updateData=function(t,e,i){function n(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r+l.get("hoverOffset")}},300,"elasticOut")}function r(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r}},300,"elasticOut")}var a=this.childAt(0),l=t.hostModel,h=t.getItemModel(e),u=t.getItemLayout(e),c=o({},u);if(c.label=null,i){a.setShape(c);var d=l.getShallow("animationType");"scale"===d?(a.shape.r=u.r0,Oa(a,{shape:{r:u.r}},l,e)):(a.shape.endAngle=u.startAngle,La(a,{shape:{endAngle:u.endAngle}},l,e))}else La(a,{shape:c},l,e);var f=t.getItemVisual(e,"color");a.useStyle(s({lineJoin:"bevel",fill:f},h.getModel("itemStyle").getItemStyle())),a.hoverStyle=h.getModel("emphasis.itemStyle").getItemStyle();var p=h.getShallow("cursor");p&&a.attr("cursor",p),ad(this,t.getItemLayout(e),l.isSelected(null,e),l.get("selectedOffset"),l.get("animation")),a.off("mouseover").off("mouseout").off("emphasis").off("normal"),h.get("hoverAnimation")&&l.isAnimationEnabled()&&a.on("mouseover",n).on("mouseout",r).on("emphasis",n).on("normal",r),this._updateLabel(t,e),xa(this)},zS._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),r=t.hostModel,a=t.getItemModel(e),o=t.getItemLayout(e),s=o.label,l=t.getItemVisual(e,"color");La(i,{shape:{points:s.linePoints||[[s.x,s.y],[s.x,s.y],[s.x,s.y]]}},r,e),La(n,{style:{x:s.x,y:s.y}},r,e),n.attr({rotation:s.rotation,origin:[s.x,s.y],z2:10});var h=a.getModel("label"),u=a.getModel("emphasis.label"),c=a.getModel("labelLine"),d=a.getModel("emphasis.labelLine"),l=t.getItemVisual(e,"color");wa(n.style,n.hoverStyle={},h,u,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:l,useInsideStyle:!!s.inside},{textAlign:s.textAlign,textVerticalAlign:s.verticalAlign,opacity:t.getItemVisual(e,"opacity")}),n.ignore=n.normalIgnore=!h.get("show"),n.hoverIgnore=!u.get("show"),i.ignore=i.normalIgnore=!c.get("show"),i.hoverIgnore=!d.get("show"),i.setStyle({stroke:l,opacity:t.getItemVisual(e,"opacity")}),i.setStyle(c.getModel("lineStyle").getLineStyle()),i.hoverStyle=d.getModel("lineStyle").getLineStyle();var f=c.get("smooth");f&&f===!0&&(f=.4),i.setShape({smooth:f})},u(od,lv);var ES=(Bs.extend({type:"pie",init:function(){var t=new lv;this._sectorGroup=t},render:function(t,e,i,n){if(!n||n.from!==this.uid){var r=t.getData(),a=this._data,o=this.group,s=e.get("animation"),l=!a,h=t.get("animationType"),u=x(rd,this.uid,t,s,i),c=t.get("selectedMode");if(r.diff(a).add(function(t){var e=new od(r,t);l&&"scale"!==h&&e.eachChild(function(t){t.stopAnimation(!0)}),c&&e.on("click",u),r.setItemGraphicEl(t,e),o.add(e)}).update(function(t,e){var i=a.getItemGraphicEl(e);i.updateData(r,t),i.off("click"),c&&i.on("click",u),o.add(i),r.setItemGraphicEl(t,i)}).remove(function(t){var e=a.getItemGraphicEl(t);o.remove(e)}).execute(),s&&l&&r.count()>0&&"scale"!==h){var d=r.getItemLayout(0),f=Math.max(i.getWidth(),i.getHeight())/2,p=y(o.removeClipPath,o);o.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}else o.removeClipPath();this._data=r}},dispose:function(){},_createClipPath:function(t,e,i,n,r,a,o){var s=new Sy({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:r}});return Oa(s,{shape:{endAngle:n+(r?1:-1)*Math.PI*2}},o,a),s},containPoint:function(t,e){var i=e.getData(),n=i.getItemLayout(0);if(n){var r=t[0]-n.cx,a=t[1]-n.cy,o=Math.sqrt(r*r+a*a);return o<=n.r&&o>=n.r0}}}),function(t,e){f(e,function(e){e.update="updateView",Ul(e,function(i,n){var r={};return n.eachComponent({mainType:"series",subType:t,query:i},function(t){t[e.method]&&t[e.method](i.name,i.dataIndex);var n=t.getData();n.each(function(e){var i=n.getName(e);r[i]=t.isSelected(i)||!1})}),{name:i.name,selected:r}})})}),RS=function(t){return{getTargetSeries:function(e){var i={},n=N();return e.eachSeriesByType(t,function(t){t.__paletteScope=i,n.set(t.uid,t)}),n},reset:function(t){var e=t.getRawData(),i={},n=t.getData();n.each(function(t){var e=n.getRawIndex(t);i[e]=t}),e.each(function(r){var a=i[r],o=null!=a&&n.getItemVisual(a,"color",!0);if(o)e.setItemVisual(r,"color",o);else{var s=e.getItemModel(r),l=s.get("itemStyle.color")||t.getColorFromPalette(e.getName(r)||r+"",t.__paletteScope,e.count());e.setItemVisual(r,"color",l),null!=a&&n.setItemVisual(a,"color",l)}})}}},BS=function(t,e,i,n){var r,a,o=t.getData(),s=[],l=!1;o.each(function(i){var n,h,u,c,d=o.getItemLayout(i),f=o.getItemModel(i),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),v=f.getModel("labelLine"),m=v.get("length"),y=v.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);r=d.cx,a=d.cy;var b="inside"===g||"inner"===g;if("center"===g)n=d.cx,h=d.cy,c="center";else{var S=(b?(d.r+d.r0)/2*_:d.r*_)+r,M=(b?(d.r+d.r0)/2*w:d.r*w)+a;if(n=S+3*_,h=M+3*w,!b){var I=S+_*(m+e-d.r),T=M+w*(m+e-d.r),C=I+(0>_?-1:1)*y,A=T;n=C+(0>_?-5:5),h=A,u=[[S,M],[I,T],[C,A]]}c=b?"center":_>0?"left":"right"}var D=p.getFont(),k=p.get("rotate")?0>_?-x+Math.PI:-x:0,P=t.getFormattedLabel(i,"normal")||o.getName(i),L=Ei(P,D,c,"top");l=!!k,d.label={x:n,y:h,position:g,height:L.height,len:m,len2:y,linePoints:u,textAlign:c,verticalAlign:"middle",rotation:k,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&ld(s,r,a,e,i,n)},NS=2*Math.PI,FS=Math.PI/180,VS=function(t,e,i){e.eachSeriesByType(t,function(t){var e=t.getData(),n=e.mapDimension("value"),r=t.get("center"),a=t.get("radius");_(a)||(a=[0,a]),_(r)||(r=[r,r]);var o=i.getWidth(),s=i.getHeight(),l=Math.min(o,s),h=Ua(r[0],o),u=Ua(r[1],s),c=Ua(a[0],l/2),d=Ua(a[1],l/2),f=-t.get("startAngle")*FS,p=t.get("minAngle")*FS,g=0;e.each(n,function(t){!isNaN(t)&&g++});var v=e.getSum(n),m=Math.PI/(v||g)*2,y=t.get("clockwise"),x=t.get("roseType"),w=t.get("stillShowZeroSum"),b=e.getDataExtent(n);b[0]=0;var S=NS,M=0,I=f,T=y?1:-1;if(e.each(n,function(t,i){var n;if(isNaN(t))return void e.setItemLayout(i,{angle:0/0,startAngle:0/0,endAngle:0/0,clockwise:y,cx:h,cy:u,r0:c,r:x?0/0:d});n="area"!==x?0===v&&w?m:t*m:NS/g,p>n?(n=p,S-=p):M+=t;var r=I+T*n;e.setItemLayout(i,{angle:n,startAngle:I,endAngle:r,clockwise:y,cx:h,cy:u,r0:c,r:x?qa(t,b,[c,d]):d}),I=r}),NS>S&&g)if(.001>=S){var C=NS/g;e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i);n.angle=C,n.startAngle=f+T*i*C,n.endAngle=f+T*(i+1)*C}})}else m=S/M,I=f,e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i),r=n.angle===p?p:t*m;n.startAngle=I,n.endAngle=I+T*r,I+=T*r}});BS(t,d,o,s)})},WS=function(t){return{seriesType:t,reset:function(t,e){var i=e.findComponents({mainType:"legend"});if(i&&i.length){var n=t.getData();n.filterSelf(function(t){for(var e=n.getName(t),r=0;rn[1]&&n.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:n[1],r0:n[0]},api:{coord:y(function(n){var r=e.dataToRadius(n[0]),a=i.dataToAngle(n[1]),o=t.coordToPoint([r,a]);return o.push(r,a*Math.PI/180),o}),size:y(dd,t)}}},YS=function(t){var e=t.getRect(),i=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:i.start,end:i.end,weeks:i.weeks,dayCount:i.allDay}},api:{coord:function(e,i){return t.dataToPoint(e,i)}}}},jS=["itemStyle"],qS=["emphasis","itemStyle"],US=["label"],$S=["emphasis","label"],KS="e\x00\x00",QS={cartesian2d:GS,geo:HS,singleAxis:ZS,polar:XS,calendar:YS};o_.extend({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,useTransform:!0},getInitialData:function(){return Oh(this.getSource(),this)},getDataParams:function(t,e,i){var n=o_.prototype.getDataParams.apply(this,arguments);return i&&(n.info=i.info),n}}),Bs.extend({type:"custom",_data:null,render:function(t,e,i,n){var r=this._data,a=t.getData(),o=this.group,s=vd(t,a,e,i);a.diff(r).add(function(e){yd(null,e,s(e,n),t,o,a)}).update(function(e,i){var l=r.getItemGraphicEl(i);yd(l,e,s(e,n),t,o,a)}).remove(function(t){var e=r.getItemGraphicEl(t);e&&o.remove(e)}).execute(),this._data=a},incrementalPrepareRender:function(){this.group.removeAll(),this._data=null},incrementalRender:function(t,e,i,n,r){function a(t){t.isGroup||(t.incremental=!0,t.useHoverLayer=!0)}for(var o=e.getData(),s=vd(e,o,i,n),l=t.start;l=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}});Ul("legendToggleSelect","legendselectchanged",x(Ad,"toggleSelected")),Ul("legendSelect","legendselected",x(Ad,"select")),Ul("legendUnSelect","legendunselected",x(Ad,"unSelect"));var tM=x,eM=f,iM=lv,nM=nh({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new iM),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(t,e,i){if(this.resetInner(),t.get("show",!0)){var n=t.get("align");n&&"auto"!==n||(n="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left"),this.renderInner(n,t,e,i);var r=t.getBoxLayoutParams(),a={width:i.getWidth(),height:i.getHeight()},o=t.get("padding"),l=bo(r,a,o),h=this.layoutInner(t,n,l),u=bo(s({width:h.width,height:h.height},r),a,o);this.group.attr("position",[u.x-h.x,u.y-h.y]),this.group.add(this._backgroundEl=Dd(h,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,i,n){var r=this.getContentGroup(),a=N(),o=e.get("selectedMode"),s=[];i.eachRawSeries(function(t){!t.get("legendHoverLink")&&s.push(t.id)}),eM(e.getData(),function(l,h){var u=l.get("name");if(!this.newlineDisabled&&(""===u||"\n"===u))return void r.add(new iM({newline:!0}));var c=i.getSeriesByName(u)[0];if(!a.get(u))if(c){var d=c.getData(),f=d.getVisual("color");"function"==typeof f&&(f=f(c.getDataParams(0)));var p=d.getVisual("legendSymbol")||"roundRect",g=d.getVisual("symbol"),v=this._createItem(u,h,l,e,p,g,t,f,o);v.on("click",tM(kd,u,n)).on("mouseover",tM(Pd,c.name,null,n,s)).on("mouseout",tM(Ld,c.name,null,n,s)),a.set(u,!0)}else i.eachRawSeries(function(i){if(!a.get(u)&&i.legendDataProvider){var r=i.legendDataProvider(),c=r.indexOfName(u);if(0>c)return;var d=r.getItemVisual(c,"color"),f="roundRect",p=this._createItem(u,h,l,e,f,null,t,d,o);p.on("click",tM(kd,u,n)).on("mouseover",tM(Pd,null,u,n,s)).on("mouseout",tM(Ld,null,u,n,s)),a.set(u,!0)}},this)},this)},_createItem:function(t,e,i,n,r,a,s,l,h){var u=n.get("itemWidth"),c=n.get("itemHeight"),d=n.get("inactiveColor"),f=n.get("symbolKeepAspect"),p=n.isSelected(t),g=new iM,v=i.getModel("textStyle"),m=i.get("icon"),y=i.getModel("tooltip"),x=y.parentModel;if(r=m||r,g.add(fu(r,0,0,u,c,p?l:d,null==f?!0:f)),!m&&a&&(a!==r||"none"===a)){var _=.8*c;"none"===a&&(a="circle"),g.add(fu(a,(u-_)/2,(c-_)/2,_,_,p?l:d,null==f?!0:f))}var w="left"===s?u+5:-5,b=s,S=n.get("formatter"),M=t;"string"==typeof S&&S?M=S.replace("{name}",null!=t?t:""):"function"==typeof S&&(M=S(t)),g.add(new xy({style:ba({},v,{text:M,x:w,y:c/2,textFill:p?v.getTextColor():d,textAlign:b,textVerticalAlign:"middle"})}));var I=new Dy({shape:g.getBoundingRect(),invisible:!0,tooltip:y.get("show")?o({content:t,formatter:x.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:n.componentIndex,name:t,$vars:["name"]}},y.option):null});return g.add(I),g.eachChild(function(t){t.silent=!0}),I.silent=!h,this.getContentGroup().add(g),xa(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,i){var n=this.getContentGroup();gx(t.get("orient"),n,t.get("itemGap"),i.width,i.height);var r=n.getBoundingRect();return n.attr("position",[-r.x,-r.y]),this.group.getBoundingRect()}}),rM=function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;ii[s],f=[-u.x,-u.y];f[o]=n.position[o];var p=[0,0],g=[-c.x,-c.y],v=D(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var m=t.get("pageButtonPosition",!0);"end"===m?g[o]+=i[s]-c[s]:p[o]+=c[s]+v}g[1-o]+=u[l]/2-c[l]/2,n.attr("position",f),r.attr("position",p),a.attr("position",g);var y=this.group.getBoundingRect(),y={x:0,y:0};if(y[s]=d?i[s]:u[s],y[l]=Math.max(u[l],c[l]),y[h]=Math.min(0,c[h]+g[1-o]),r.__rectSize=i[s],d){var x={x:0,y:0};x[s]=Math.max(i[s]-c[s]-v,0),x[l]=y[l],r.setClipPath(new Dy({shape:x})),r.__rectSize=x[s]}else a.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var _=this._getPageInfo(t);return null!=_.pageIndex&&La(n,{position:_.contentPosition},d?t:!1),this._updatePageInfoView(t,_),y},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(t,e){var i=this._controllerGroup;f(["pagePrev","pageNext"],function(n){var r=null!=e[n+"DataIndex"],a=i.childOfName(n);a&&(a.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=r?"pointer":"default")});var n=i.childOfName("pageText"),r=t.get("pageFormatter"),a=e.pageIndex,o=null!=a?a+1:0,s=e.pageCount;n&&r&&n.setStyle("text",b(r)?r.replace("{current}",o).replace("{total}",s):r({current:o,total:s}))},_getPageInfo:function(t){function e(t){var e=t.getBoundingRect().clone();return e[f]+=t.position[u],e}var i,n,r,a,o=t.get("scrollDataIndex",!0),s=this.getContentGroup(),l=s.getBoundingRect(),h=this._containerGroup.__rectSize,u=t.getOrient().index,c=sM[u],d=sM[1-u],f=lM[u],p=s.position.slice();this._showController?s.eachChild(function(t){t.__legendDataIndex===o&&(a=t)}):a=s.childAt(0);var g=h?Math.ceil(l[c]/h):0;if(a){var v=a.getBoundingRect(),m=a.position[u]+v[f];p[u]=-m-l[f],i=Math.floor(g*(m+v[f]+h/2)/l[c]),i=l[c]&&g?Math.max(0,Math.min(g-1,i)):-1;var y={x:0,y:0};y[c]=h,y[d]=l[d],y[f]=-p[u]-l[f];var x,_=s.children();if(s.eachChild(function(t,i){var n=e(t);n.intersect(y)&&(null==x&&(x=i),r=t.__legendDataIndex),i===_.length-1&&n[f]+n[c]<=y[f]+y[c]&&(r=null)}),null!=x){var w=_[x],b=e(w);if(y[f]=b[f]+b[c]-y[c],0>=x&&b[f]>=y[f])n=null;else{for(;x>0&&e(_[x-1]).intersect(y);)x--;n=_[x].__legendDataIndex}}}return{contentPosition:p,pageIndex:i,pageCount:g,pagePrevDataIndex:n,pageNextDataIndex:r}}});Ul("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})});var uM=function(t,e){var i,n=[],r=t.seriesIndex;if(null==r||!(i=e.getSeriesByIndex(r)))return{point:[]};var a=i.getData(),o=Yn(a,t);if(null==o||0>o||_(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)n=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)n=l.dataToPoint(a.getValues(p(l.dimensions,function(t){return a.mapDimension(t)}),o,!0))||[];else if(s){var h=s.getBoundingRect().clone();h.applyTransform(s.transform),n=[h.x+h.width/2,h.y+h.height/2]}return{point:n,el:s}},cM=f,dM=x,fM=jn(),pM=function(t,e,i){var n=t.currTrigger,r=[t.x,t.y],a=t,o=t.dispatchAction||y(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Hd(r)&&(r=uM({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=Hd(r),h=a.axesInfo,u=s.axesInfo,c="leave"===n||Hd(r),d={},f={},p={list:[],map:{}},g={showPointer:dM(Rd,f),showTooltip:dM(Bd,p)};cM(s.coordSysMap,function(t,e){var i=l||t.containPoint(r);cM(s.coordSysAxesInfo[e],function(t){var e=t.axis,n=Wd(h,t);if(!c&&i&&(!h||n)){var a=n&&n.value;null!=a||l||(a=e.pointToData(r)),null!=a&&zd(t,a,g,!1,d)}})});var v={};return cM(u,function(t,e){var i=t.linkGroup;i&&!f[e]&&cM(i.axesInfo,function(e,n){var r=f[n];if(e!==t&&r){var a=r.value;i.mapper&&(a=t.axis.scale.parse(i.mapper(a,Gd(e),Gd(t)))),v[t.key]=a}})}),cM(v,function(t,e){zd(u[e],t,g,!0,d)}),Nd(f,u,d),Fd(p,r,t,o),Vd(u,o,i),d}},gM=(ih({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}}),jn()),vM=f,mM=nh({type:"axisPointer",render:function(t,e,i){var n=e.getComponent("tooltip"),r=t.get("triggerOn")||n&&n.get("triggerOn")||"mousemove|click";Zd("axisPointer",i,function(t,e,i){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){$d(e.getZr(),"axisPointer"),mM.superApply(this._model,"remove",arguments)},dispose:function(t,e){$d("axisPointer",e),mM.superApply(this._model,"dispose",arguments)}}),yM=jn(),xM=n,_M=y;Kd.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,i,n){var r=e.get("value"),a=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=i,n||this._lastValue!==r||this._lastStatus!==a){this._lastValue=r,this._lastStatus=a;var o=this._group,s=this._handle;if(!a||"hide"===a)return o&&o.hide(),void(s&&s.hide());o&&o.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,i);var h=l.graphicKey;h!==this._lastGraphicKey&&this.clear(i),this._lastGraphicKey=h;var u=this._moveAnimation=this.determineAnimation(t,e);if(o){var c=x(Qd,e,u);this.updatePointerEl(o,l,c,e),this.updateLabelEl(o,l,c,e)}else o=this._group=new lv,this.createPointerEl(o,l,t,e),this.createLabelEl(o,l,t,e),i.getZr().add(o);nf(o,e,!0),this._renderHandle(r)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var i=e.get("animation"),n=t.axis,r="category"===n.type,a=e.get("snap");if(!a&&!r)return!1;if("auto"===i||null==i){var o=this.animationThreshold;if(r&&n.getBandWidth()>o)return!0;if(a){var s=_c(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>o}return!1}return i===!0},makeElOption:function(){},createPointerEl:function(t,e){var i=e.pointer;if(i){var n=yM(t).pointerEl=new Yy[i.type](xM(e.pointer));t.add(n)}},createLabelEl:function(t,e,i,n){if(e.label){var r=yM(t).labelEl=new Dy(xM(e.label));t.add(r),tf(r,n)}},updatePointerEl:function(t,e,i){var n=yM(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var r=yM(t).labelEl;r&&(r.setStyle(e.label.style),i(r,{shape:e.label.shape,position:e.label.position}),tf(r,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,i=this._api.getZr(),n=this._handle,r=e.getModel("handle"),a=e.get("status");if(!r.get("show")||!a||"hide"===a)return n&&i.remove(n),void(this._handle=null);var o;this._handle||(o=!0,n=this._handle=Va(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Ig(t.event)},onmousedown:_M(this._onHandleDragMove,this,0,0),drift:_M(this._onHandleDragMove,this),ondragend:_M(this._onHandleDragEnd,this)}),i.add(n)),nf(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(r.getItemStyle(null,s));var l=r.get("size");_(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),Hs(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,o)}},_moveHandleToValue:function(t,e){Qd(this._axisPointerModel,!e&&this._moveAnimation,this._handle,ef(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(ef(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(ef(n)),yM(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){var t=this._handle;if(t){var e=this._payloadInfo,i=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:i.axis.dim,axisIndex:i.componentIndex}]})}},_onHandleDragEnd:function(){this._dragging=!1;var t=this._handle;if(t){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}},Kd.prototype.constructor=Kd,er(Kd);var wM=Kd.extend({makeElOption:function(t,e,i,n,r){var a=i.axis,o=a.grid,s=n.get("type"),l=df(o,a).getOtherAxis(a).getGlobalExtent(),h=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var u=rf(n),c=bM[s](a,h,l,u);c.style=u,t.graphicKey=c.type,t.pointer=c}var d=Tc(o.model,i);hf(e,t,d,i,n,r)},getHandleTransform:function(t,e,i){var n=Tc(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:lf(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i){var n=i.axis,r=n.grid,a=n.getGlobalExtent(!0),o=df(r,n).getOtherAxis(n).getGlobalExtent(),s="x"===n.dim?0:1,l=t.position;l[s]+=e[s],l[s]=Math.min(a[1],l[s]),l[s]=Math.max(a[0],l[s]);var h=(o[1]+o[0])/2,u=[h,h];u[s]=l[s];var c=[{verticalAlign:"middle"},{align:"center"}];return{position:l,rotation:t.rotation,cursorPoint:u,tooltipOption:c[s]}}}),bM={line:function(t,e,i,n){var r=uf([e,i[0]],[e,i[1]],ff(t));return ia({shape:r,style:n}),{type:"Line",shape:r}},shadow:function(t,e,i){var n=Math.max(1,t.getBandWidth()),r=i[1]-i[0];return{type:"Rect",shape:cf([e-n/2,i[0]],[n,r],ff(t))}}};rS.registerAxisPointerClass("CartesianAxisPointer",wM),Yl(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!_(e)&&(t.axisPointer.link=[e])}}),jl(ow.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=fc(t,e)}),Ul({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},pM),ih({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});var SM=f,MM=fo,IM=["","-webkit-","-moz-","-o-"],TM="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";mf.prototype={constructor:mf,_enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),i=t.style;"absolute"!==i.position&&"absolute"!==e.position&&(i.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText=TM+vf(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",e.style.pointerEvents=this._enterable?"auto":"none",this._show=!0},setContent:function(t){this.el.innerHTML=null==t?"":t},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el;return[t.clientWidth,t.clientHeight]},moveTo:function(t,e){var i,n=this._zr;n&&n.painter&&(i=n.painter.getViewportRootOffset())&&(t+=i.offsetLeft,e+=i.offsetTop);var r=this.el.style;r.left=t+"px",r.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(y(this.hide,this),t)):this.hide())},isShow:function(){return this._show},getOuterSize:function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var i=document.defaultView.getComputedStyle(this.el);i&&(t+=parseInt(i.paddingLeft,10)+parseInt(i.paddingRight,10)+parseInt(i.borderLeftWidth,10)+parseInt(i.borderRightWidth,10),e+=parseInt(i.paddingTop,10)+parseInt(i.paddingBottom,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10))}return{width:t,height:e}}},yf.prototype={constructor:yf,_enterable:!0,update:function(){},show:function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.attr("show",!0),this._show=!0},setContent:function(t,e,i){this.el&&this._zr.remove(this.el);for(var n={},r=t,a="{marker",o="|}",s=r.indexOf(a);s>=0;){var l=r.indexOf(o),h=r.substr(s+a.length,l-s-a.length);n["marker"+h]=h.indexOf("sub")>-1?{textWidth:4,textHeight:4,textBorderRadius:2,textBackgroundColor:e[h],textOffset:[3,0]}:{textWidth:10,textHeight:10,textBorderRadius:5,textBackgroundColor:e[h]},r=r.substr(l+1),s=r.indexOf("{marker")}this.el=new xy({style:{rich:n,text:t,textLineHeight:20,textBackgroundColor:i.get("backgroundColor"),textBorderRadius:i.get("borderRadius"),textFill:i.get("textStyle.color"),textPadding:i.get("padding")},z:i.get("z")}),this._zr.add(this.el);var u=this;this.el.on("mouseover",function(){u._enterable&&(clearTimeout(u._hideTimeout),u._show=!0),u._inContent=!0}),this.el.on("mouseout",function(){u._enterable&&u._show&&u.hideLater(u._hideDelay),u._inContent=!1})},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el.getBoundingRect();return[t.width,t.height]},moveTo:function(t,e){this.el&&this.el.attr("position",[t,e])},hide:function(){this.el.hide(),this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(y(this.hide,this),t)):this.hide())},isShow:function(){return this._show},getOuterSize:function(){return this.getSize()}};var CM=y,AM=f,DM=Ua,kM=new Dy({shape:{x:-1,y:-1,width:2,height:2}});nh({type:"tooltip",init:function(t,e){if(!tg.node){var i=t.getComponent("tooltip"),n=i.get("renderMode");this._renderMode=Qn(n);var r;"html"===this._renderMode?(r=new mf(e.getDom(),e),this._newLine="
"):(r=new yf(e),this._newLine="\n"),this._tooltipContent=r}},render:function(t,e,i){if(!tg.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var n=this._tooltipContent;n.update(),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel,e=t.get("triggerOn");Zd("itemTooltip",this._api,CM(function(t,i,n){"none"!==e&&(e.indexOf(t)>=0?this._tryShow(i,n):"leave"===t&&this._hide(n))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,i=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var n=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!tg.node){var r=_f(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var o=kM;o.position=[n.x,n.y],o.update(),o.tooltip=n.tooltip,this._tryShow({offsetX:n.x,offsetY:n.y,target:o},r)}else if(a)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},r);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=uM(n,e),l=s.point[0],h=s.point[1];null!=l&&null!=h&&this._tryShow({offsetX:l,offsetY:h,position:n.position,target:s.el,event:{}},r)}else null!=n.x&&null!=n.y&&(i.dispatchAction({type:"updateAxisPointer",x:n.x,y:n.y}),this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:i.getZr().findHover(n.x,n.y).target,event:{}},r))}},manuallyHideTip:function(t,e,i,n){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(_f(n,i))},_manuallyAxisShowTip:function(t,e,i,n){var r=n.seriesIndex,a=n.dataIndex,o=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=a&&null!=o){var s=e.getSeriesByIndex(r);if(s){var l=s.getData(),t=xf([l.getItemModel(a),s,(s.coordinateSystem||{}).model,t]);if("axis"===t.get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:a,position:n.position}),!0}}},_tryShow:function(t,e){var i=t.target,n=this._tooltipModel;if(n){this._lastX=t.offsetX,this._lastY=t.offsetY;var r=t.dataByCoordSys;r&&r.length?this._showAxisTooltip(r,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var i=t.get("showDelay");e=y(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,n=this._tooltipModel,a=[e.offsetX,e.offsetY],o=[],s=[],l=xf([e.tooltipOption,n]),h=this._renderMode,u=this._newLine,c={};AM(t,function(t){AM(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),n=t.value,a=[];if(e&&null!=n){var l=sf(n,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);f(t.seriesDataIndices,function(o){var u=i.getSeriesByIndex(o.seriesIndex),d=o.dataIndexInside,f=u&&u.getDataParams(d);if(f.axisDim=t.axisDim,f.axisIndex=t.axisIndex,f.axisType=t.axisType,f.axisId=t.axisId,f.axisValue=hu(e.axis,n),f.axisValueLabel=l,f){s.push(f);var p,g=u.formatTooltip(d,!0,null,h);if(S(g)){p=g.html;var v=g.markers;r(c,v)}else p=g;a.push(p)}});var d=l;o.push("html"!==h?a.join(u):(d?po(d)+u:"")+a.join(u))}})},this),o.reverse(),o=o.join(this._newLine+this._newLine);var d=e.position;this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(l,d,a[0],a[1],this._tooltipContent,s):this._showTooltipContent(l,o,s,Math.random(),a[0],a[1],d,void 0,c)})},_showSeriesItemTooltip:function(t,e,i){var n=this._ecModel,r=e.seriesIndex,a=n.getSeriesByIndex(r),o=e.dataModel||a,s=e.dataIndex,l=e.dataType,h=o.getData(),u=xf([h.getItemModel(s),o,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),c=u.get("trigger");if(null==c||"item"===c){var d,f,p=o.getDataParams(s,l),g=o.formatTooltip(s,!1,l,this._renderMode);S(g)?(d=g.html,f=g.markers):(d=g,f=null);var v="item_"+o.name+"_"+s;this._showOrMove(u,function(){this._showTooltipContent(u,d,p,v,t.offsetX,t.offsetY,t.position,t.target,f)}),i({type:"showTip",dataIndexInside:s,dataIndex:h.getRawIndex(s),seriesIndex:r,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var r=n;n={content:r,formatter:r}}var a=new Wa(n,this._tooltipModel,this._ecModel),o=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,o,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,r,a,o,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var h=this._tooltipContent,u=t.get("formatter");o=o||t.get("position");var c=e;if(u&&"string"==typeof u)c=go(u,i,!0);else if("function"==typeof u){var d=CM(function(e,n){e===this._ticket&&(h.setContent(n,l,t),this._updatePosition(t,o,r,a,h,i,s))},this);this._ticket=n,c=u(i,n,d)}h.setContent(c,l,t),h.show(t),this._updatePosition(t,o,r,a,h,i,s)}},_updatePosition:function(t,e,i,n,r,a,o){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var h=r.getSize(),u=t.get("align"),c=t.get("verticalAlign"),d=o&&o.getBoundingRect().clone();if(o&&d.applyTransform(o.transform),"function"==typeof e&&(e=e([i,n],a,r.el,d,{viewSize:[s,l],contentSize:h.slice()})),_(e))i=DM(e[0],s),n=DM(e[1],l);else if(S(e)){e.width=h[0],e.height=h[1];var f=bo(e,{width:s,height:l});i=f.x,n=f.y,u=null,c=null}else if("string"==typeof e&&o){var p=Sf(e,d,h);i=p[0],n=p[1]}else{var p=wf(i,n,r,s,l,u?null:20,c?null:20);i=p[0],n=p[1]}if(u&&(i-=Mf(u)?h[0]/2:"right"===u?h[0]:0),c&&(n-=Mf(c)?h[1]/2:"bottom"===c?h[1]:0),t.get("confine")){var p=bf(i,n,r,s,l);i=p[0],n=p[1]}r.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return i&&AM(e,function(e,n){var r=e.dataByAxis||{},a=t[n]||{},o=a.dataByAxis||[];i&=r.length===o.length,i&&AM(r,function(t,e){var n=o[e]||{},r=t.seriesDataIndices||[],a=n.seriesDataIndices||[];i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&r.length===a.length,i&&AM(r,function(t,e){var n=a[e];i&=t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})})}),this._lastDataByCoordSys=t,!!i},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){tg.node||(this._tooltipContent.hide(),$d("itemTooltip",e))}}),Ul({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Ul({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){});var PM=co,LM=po,OM=ih({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i),this.mergeOption(t,i,n.createdBySelf,!0)},isAnimationEnabled:function(){if(tg.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,n){var r=this.constructor,a=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType,!0),s=t[a];return i&&i.data?(s?s.mergeOption(i,e,!0):(n&&If(i),f(i.data,function(t){t instanceof Array?(If(t[0]),If(t[1])):If(t)}),s=new r(i,this,e),o(s,{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),void(t[a]=s)):void(t[a]=null)},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=_(i)?p(i,PM).join(", "):PM(i),r=e.getName(t),a=LM(this.name);return(null!=i||r)&&(a+="
"),r&&(a+=LM(r),null!=i&&(a+=" : ")),null!=i&&(a+=LM(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});c(OM,i_),OM.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var zM=h,EM=x,RM={min:EM(Af,"min"),max:EM(Af,"max"),average:EM(Af,"average")},BM=nh({type:"marker",init:function(){this.markerGroupMap=N()},render:function(t,e,i){var n=this.markerGroupMap;n.each(function(t){t.__keep=!1});var r=this.type+"Model";e.eachSeries(function(t){var n=t[r];n&&this.renderSeries(t,n,e,i)},this),n.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});BM.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(Ef(e.getData(),t,i),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,i,n){var r=t.coordinateSystem,a=t.id,o=t.getData(),s=this.markerGroupMap,l=s.get(a)||s.set(a,new zc),h=Rf(r,t,e);e.setData(h),Ef(e.getData(),t,n),h.each(function(t){var i=h.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),h.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.color")||o.getVisual("color"),symbol:i.getShallow("symbol")})}),l.updateData(h),this.group.add(l.group),h.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e + })}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markPoint=t.markPoint||{}}),OM.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var NM=ky.prototype,FM=Ly.prototype,VM=$r({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){(Bf(e)?NM:FM).buildPath(t,e)},pointAt:function(t){return Bf(this.shape)?NM.pointAt.call(this,t):FM.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=Bf(e)?[e.x2-e.x1,e.y2-e.y1]:FM.tangentAt.call(this,t);return te(i,i)}}),WM=["fromSymbol","toSymbol"],GM=Hf.prototype;GM.beforeUpdate=Gf,GM._createLine=function(t,e,i){var n=t.hostModel,r=t.getItemLayout(e),a=Vf(r);a.shape.percent=0,Oa(a,{shape:{percent:1}},n,e),this.add(a);var o=new xy({name:"label"});this.add(o),f(WM,function(i){var n=Ff(i,t,e);this.add(n),this[Nf(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},GM.updateData=function(t,e,i){var n=t.hostModel,r=this.childOfName("line"),a=t.getItemLayout(e),o={shape:{}};Wf(o.shape,a),La(r,o,n,e),f(WM,function(i){var n=t.getItemVisual(e,i),r=Nf(i);if(this[r]!==n){this.remove(this.childOfName(i));var a=Ff(i,t,e);this.add(a)}this[r]=n},this),this._updateCommonStl(t,e,i)},GM._updateCommonStl=function(t,e,i){var n=t.hostModel,r=this.childOfName("line"),a=i&&i.lineStyle,o=i&&i.hoverLineStyle,l=i&&i.labelModel,h=i&&i.hoverLabelModel;if(!i||t.hasItemOption){var u=t.getItemModel(e);a=u.getModel("lineStyle").getLineStyle(),o=u.getModel("emphasis.lineStyle").getLineStyle(),l=u.getModel("label"),h=u.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),d=k(t.getItemVisual(e,"opacity"),a.opacity,1);r.useStyle(s({strokeNoScale:!0,fill:"none",stroke:c,opacity:d},a)),r.hoverStyle=o,f(WM,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:d}))},this);var p,g,v=l.getShallow("show"),m=h.getShallow("show"),y=this.childOfName("label");if((v||m)&&(p=c||"#000",g=n.getFormattedLabel(e,"normal",t.dataType),null==g)){var x=n.getRawValue(e);g=null==x?t.getName(e):isFinite(x)?$a(x):x}var _=v?g:null,w=m?D(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;(null!=_||null!=w)&&(ba(y.style,l,{text:_},{autoColor:p}),y.__textAlign=b.textAlign,y.__verticalAlign=b.textVerticalAlign,y.__position=l.get("position")||"middle"),y.hoverStyle=null!=w?{text:w,textFill:h.getTextColor(!0),fontStyle:h.getShallow("fontStyle"),fontWeight:h.getShallow("fontWeight"),fontSize:h.getShallow("fontSize"),fontFamily:h.getShallow("fontFamily")}:{text:null},y.ignore=!v&&!m,xa(this)},GM.highlight=function(){this.trigger("emphasis")},GM.downplay=function(){this.trigger("normal")},GM.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},GM.setLinePoints=function(t){var e=this.childOfName("line");Wf(e.shape,t),e.dirty()},u(Hf,lv);var HM=Zf.prototype;HM.isPersistent=function(){return!0},HM.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var r=jf(t);t.diff(n).add(function(i){Xf(e,t,i,r)}).update(function(i,a){Yf(e,n,t,a,i,r)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},HM.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},HM.incrementalPrepareUpdate=function(t){this._seriesScope=jf(t),this._lineData=null,this.group.removeAll()},HM.incrementalUpdate=function(t,e){function i(t){t.isGroup||(t.incremental=t.useHoverLayer=!0)}for(var n=t.start;n=0&&"number"==typeof c&&(c=+c.toFixed(Math.min(m,20))),g.coord[f]=v.coord[f]=c,a=[g,v,{type:l,valueIndex:a.valueIndex,value:c}]}return a=[Df(t,a[0]),Df(t,a[1]),o({},a[2])],a[2].type=a[2].type||"",r(a[2],a[0]),r(a[2],a[1]),a};BM.extend({type:"markLine",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),r=e.__from,a=e.__to;r.each(function(e){Jf(r,e,!0,t,i),Jf(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[r.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,i,n){function r(e,i,r){var a=e.getItemModel(i);Jf(e,i,r,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||g[r?0:1],symbol:a.get("symbol",!0)||p[r?0:1],color:a.get("itemStyle.color")||s.getVisual("color")})}var a=t.coordinateSystem,o=t.id,s=t.getData(),l=this.markerGroupMap,h=l.get(o)||l.set(o,new Zf);this.group.add(h.group);var u=tp(a,t,e),c=u.from,d=u.to,f=u.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");_(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),u.from.each(function(t){r(c,t,!0),r(d,t,!1)}),f.each(function(t){var e=f.getItemModel(t).get("lineStyle.color");f.setItemVisual(t,{color:e||c.getItemVisual(t,"color")}),f.setItemLayout(t,[c.getItemLayout(t),d.getItemLayout(t)]),f.setItemVisual(t,{fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),h.updateData(f),u.line.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),h.__keep=!0,h.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markLine=t.markLine||{}}),OM.extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});var XM=function(t,e,i,n){var r=Df(t,n[0]),o=Df(t,n[1]),s=A,l=r.coord,h=o.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),h[0]=s(h[0],1/0),h[1]=s(h[1],1/0);var u=a([{},r,o]);return u.coord=[r.coord,o.coord],u.x0=r.x,u.y0=r.y,u.x1=o.x,u.y1=o.y,u},YM=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];BM.extend({type:"markArea",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var n=e.getData();n.each(function(e){var r=p(YM,function(r){return rp(n,e,r,t,i)});n.setItemLayout(e,r);var a=n.getItemGraphicEl(e);a.setShape("points",r)})}},this)},renderSeries:function(t,e,i,n){var r=t.coordinateSystem,a=t.id,o=t.getData(),l=this.markerGroupMap,h=l.get(a)||l.set(a,{group:new lv});this.group.add(h.group),h.__keep=!0;var u=ap(r,t,e);e.setData(u),u.each(function(e){u.setItemLayout(e,p(YM,function(i){return rp(u,e,i,t,n)})),u.setItemVisual(e,{color:o.getVisual("color")})}),u.diff(h.__data).add(function(t){var e=new Cy({shape:{points:u.getItemLayout(t)}});u.setItemGraphicEl(t,e),h.group.add(e)}).update(function(t,i){var n=h.__data.getItemGraphicEl(i);La(n,{shape:{points:u.getItemLayout(t)}},e,t),h.group.add(n),u.setItemGraphicEl(t,n)}).remove(function(t){var e=h.__data.getItemGraphicEl(t);h.group.remove(e)}).execute(),u.eachItemGraphicEl(function(t,i){var n=u.getItemModel(i),r=n.getModel("label"),a=n.getModel("emphasis.label"),o=u.getItemVisual(i,"color");t.useStyle(s(n.getModel("itemStyle").getItemStyle(),{fill:Ke(o,.4),stroke:o})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),wa(t.style,t.hoverStyle,r,a,{labelFetcher:e,labelDataIndex:i,defaultText:u.getName(i)||"",isRectText:!0,autoColor:o}),xa(t,{}),t.dataModel=e}),h.__data=u,h.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markArea=t.markArea||{}});var jM=function(t){var e=t&&t.timeline;_(e)||(e=e?[e]:[]),f(e,function(t){t&&op(t)})};yx.registerSubTypeDefaulter("timeline",function(){return"slider"}),Ul({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),s({currentIndex:i.option.currentIndex},t)}),Ul({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var qM=yx.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(){qM.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),0>t&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],i=t.axisType,r=this._names=[];if("category"===i){var a=[];f(e,function(t,e){var i,o=Vn(t);S(t)?(i=n(t),i.value=e):i=e,a.push(i),b(o)||null!=o&&!isNaN(o)||(o=""),r.push(o+"")}),e=a}var o={category:"ordinal",time:"time"}[i]||"number",s=this._data=new Bw([{name:"value",type:o}],this);s.initData(e,r)},getData:function(){return this._data},getCategories:function(){return"category"===this.get("axisType")?this._names.slice():void 0}}),UM=qM.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}});c(UM,i_);var $M=s_.extend({type:"timeline"}),KM=function(t,e,i,n){Pb.call(this,t,e,i),this.type=n||"value",this.model=null};KM.prototype={constructor:KM,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u(KM,Pb);var QM=y,JM=f,tI=Math.PI;$M.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(t,e,i){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var n=this._layout(t,i),r=this._createGroup("mainGroup"),a=this._createGroup("labelGroup"),o=this._axis=this._createAxis(n,t);t.formatTooltip=function(t){return po(o.scale.getLabel(t))},JM(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](n,r,o,t)},this),this._renderAxisLabel(n,a,o,t),this._position(n,t)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),r=hp(t,e);null==i||"auto"===i?i="horizontal"===n?r.y+r.height/2=0||"+"===i?"left":"right"},o={horizontal:i>=0||"+"===i?"top":"bottom",vertical:"middle"},s={horizontal:0,vertical:tI/2},l="vertical"===n?r.height:r.width,h=t.getModel("controlStyle"),u=h.get("show",!0),c=u?h.get("itemSize"):0,d=u?h.get("itemGap"):0,f=c+d,p=t.get("label.rotate")||0;p=p*tI/180;var g,v,m,y,x=h.get("position",!0),_=u&&h.get("showPlayBtn",!0),w=u&&h.get("showPrevBtn",!0),b=u&&h.get("showNextBtn",!0),S=0,M=l;return"left"===x||"bottom"===x?(_&&(g=[0,0],S+=f),w&&(v=[S,0],S+=f),b&&(m=[M-c,0],M-=f)):(_&&(g=[M-c,0],M-=f),w&&(v=[0,0],S+=f),b&&(m=[M-c,0],M-=f)),y=[S,M],t.get("inverse")&&y.reverse(),{viewRect:r,mainLength:l,orient:n,rotation:s[n],labelRotation:p,labelPosOpt:i,labelAlign:t.get("label.align")||a[n],labelBaseline:t.get("label.verticalAlign")||t.get("label.baseline")||o[n],playPosition:g,prevBtnPosition:v,nextBtnPosition:m,axisExtent:y,controlSize:c,controlGap:d}},_position:function(t){function e(t){var e=t.position;t.origin=[u[0][0]-e[0],u[1][0]-e[1]]}function i(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function n(t,e,i,n,r){t[n]+=i[n][r]-e[n][r]}var r=this._mainGroup,a=this._labelGroup,o=t.viewRect;if("vertical"===t.orient){var s=be(),l=o.x,h=o.y+o.height;Te(s,s,[-l,-h]),Ce(s,s,-tI/2),Te(s,s,[l,h]),o=o.clone(),o.applyTransform(s)}var u=i(o),c=i(r.getBoundingRect()),d=i(a.getBoundingRect()),f=r.position,p=a.position;p[0]=f[0]=u[0][0];var g=t.labelPosOpt;if(isNaN(g)){var v="+"===g?0:1;n(f,c,u,1,v),n(p,d,u,1,1-v)}else{var v=g>=0?0:1;n(f,c,u,1,v),p[1]=f[1]+g}r.attr("position",f),a.attr("position",p),r.rotation=a.rotation=t.rotation,e(r),e(a)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),r=ou(e,n);r.getTicks=function(){return i.mapArray(["value"],function(t){return t})};var a=i.getDataExtent("value");r.setExtent(a[0],a[1]),r.niceTicks();var o=new KM("value",r,t.axisExtent,n);return o.model=e,o},_createGroup:function(t){var e=this["_"+t]=new lv;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var r=i.getExtent();n.get("lineStyle.show")&&e.add(new ky({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:o({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var r=n.getData(),a=i.scale.getTicks();JM(a,function(t){var a=i.dataToCoord(t),o=r.getItemModel(t),s=o.getModel("itemStyle"),l=o.getModel("emphasis.itemStyle"),h={position:[a,0],onclick:QM(this._changeTimeline,this,t)},u=cp(o,s,e,h);xa(u,l.getItemStyle()),o.get("tooltip")?(u.dataIndex=t,u.dataModel=n):u.dataIndex=u.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){var r=i.getLabelModel();if(r.get("show")){var a=n.getData(),o=i.getViewLabels();JM(o,function(n){var r=n.tickValue,o=a.getItemModel(r),s=o.getModel("label"),l=o.getModel("emphasis.label"),h=i.dataToCoord(n.tickValue),u=new xy({position:[h,0],rotation:t.labelRotation-t.rotation,onclick:QM(this._changeTimeline,this,r),silent:!1});ba(u.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(u),xa(u,ba({},l))},this)}},_renderControl:function(t,e,i,n){function r(t,i,r,u){if(t){var c={position:t,origin:[a/2,0],rotation:u?-o:0,rectHover:!0,style:s,onclick:r},d=up(n,i,h,c);e.add(d),xa(d,l)}}var a=t.controlSize,o=t.rotation,s=n.getModel("controlStyle").getItemStyle(),l=n.getModel("emphasis.controlStyle").getItemStyle(),h=[0,-a/2,a,a],u=n.getPlayState(),c=n.get("inverse",!0);r(t.nextBtnPosition,"controlStyle.nextIcon",QM(this._changeTimeline,this,c?"-":"+")),r(t.prevBtnPosition,"controlStyle.prevIcon",QM(this._changeTimeline,this,c?"+":"-")),r(t.playPosition,"controlStyle."+(u?"stopIcon":"playIcon"),QM(this._handlePlayClick,this,!u),!0)},_renderCurrentPointer:function(t,e,i,n){var r=n.getData(),a=n.getCurrentIndex(),o=r.getItemModel(a).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=QM(s._handlePointerDrag,s),t.ondragend=QM(s._handlePointerDragend,s),dp(t,a,i,n,!0)},onUpdate:function(t){dp(t,a,i,n)}};this._currentPointer=cp(o,o,this._mainGroup,{},this._currentPointer,l)},_handlePlayClick:function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},_handlePointerDrag:function(t,e,i){this._clearTimer(),this._pointerChangeTimeline([i.offsetX,i.offsetY])},_handlePointerDragend:function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},_pointerChangeTimeline:function(t,e){var i=this._toAxisCoord(t)[0],n=this._axis,r=Ka(n.getExtent().slice());i>r[1]&&(i=r[1]),is&&(n=s,e=a)}),e},_clearTimer:function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},_changeTimeline:function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})}}),Yl(jM),yx.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var eI=["x","y","z","radius","angle","single"],iI=["cartesian2d","polar","singleAxis"],nI=pp(eI,["axisIndex","axis","index","id"]),rI=f,aI=Ka,oI=function(t,e,i,n){this._dimName=t,this._axisIndex=e,this._valueWindow,this._percentWindow,this._dataExtent,this._minMaxSpan,this.ecModel=n,this._dataZoomModel=i};oI.prototype={constructor:oI,hostedBy:function(t){return this._dataZoomModel===t},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var t=[],e=this.ecModel;return e.eachSeries(function(i){if(fp(i.get("coordinateSystem"))){var n=this._dimName,r=e.queryComponents({mainType:n+"Axis",index:i.get(n+"AxisIndex"),id:i.get(n+"AxisId")})[0];this._axisIndex===(r&&r.componentIndex)&&t.push(i)}},this),t},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var t,e,i=this._dimName,n=this.ecModel,r=this.getAxisModel(),a="x"===i||"y"===i;a?(e="gridIndex",t="x"===i?"y":"x"):(e="polarIndex",t="angle"===i?"radius":"angle");var o;return n.eachComponent(t+"Axis",function(t){(t.get(e)||0)===(r.get(e)||0)&&(o=t)}),o},getMinMaxSpan:function(){return n(this._minMaxSpan)},calculateDataWindow:function(t){var e=this._dataExtent,i=this.getAxisModel(),n=i.axis.scale,r=this._dataZoomModel.getRangePropMode(),a=[0,100],o=[t.start,t.end],s=[];return rI(["startValue","endValue"],function(e){s.push(null!=t[e]?n.parse(t[e]):null)}),rI([0,1],function(t){var i=s[t],l=o[t];"percent"===r[t]?(null==l&&(l=a[t]),i=n.parse(qa(l,a,e,!0))):l=qa(i,e,a,!0),s[t]=i,o[t]=l}),{valueWindow:aI(s),percentWindow:aI(o)}},reset:function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=vp(this,this._dimName,e);var i=this.calculateDataWindow(t.option);this._valueWindow=i.valueWindow,this._percentWindow=i.percentWindow,xp(this),yp(this)}},restore:function(t){t===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,yp(this,!0))},filterData:function(t){function e(t){return t>=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,n=this.getTargetSeriesModels(),r=t.get("filterMode"),a=this._valueWindow;"none"!==r&&rI(n,function(t){var n=t.getData(),o=n.mapDimension(i,!0);o.length&&("weakFilter"===r?n.filterSelf(function(t){for(var e,i,r,s=0;sa[1];if(h&&!u&&!c)return!0;h&&(r=!0),u&&(e=!0),c&&(i=!0)}return r&&e&&i}):rI(o,function(i){if("empty"===r)t.setData(n.map(i,function(t){return e(t)?t:0/0}));else{var o={};o[i]=a,n.selectRange(o)}}),rI(o,function(t){n.setApproximateExtent(a,t)}))})}}};var sI=f,lI=nI,hI=ih({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=_p(t);this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=_p(t);r(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;tg.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),wp(this,t),sI([["start","startValue"],["end","endValue"]],function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,i,n,r){var a=this.dependentModels[e.axis][i],o=a.__dzAxisProxy||(a.__dzAxisProxy=new oI(e.name,i,this,r));t[e.name+"_"+i]=o},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();lI(function(e){var i=e.axisIndex;t[i]=Nn(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;lI(function(i){null!=t[i.axisIndex]&&(e=!0)},this);var i=t.orient;return null==i&&e?"orient":e?void 0:(null==i&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),i=this.option,n=this.dependentModels;if(t){var r="vertical"===e?"y":"x";n[r+"Axis"].length?(i[r+"AxisIndex"]=[0],t=!1):sI(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&lI(function(e){if(t){var n=[],r=this.dependentModels[e.axis];if(r.length&&!n.length)for(var a=0,o=r.length;o>a;a++)"category"===r[a].get("type")&&n.push(a);i[e.axisIndex]=n,n.length&&(t=!1)}},this),t&&this.ecModel.eachSeries(function(t){this._isSeriesHasAllAxesTypeOf(t,"value")&&lI(function(e){var n=i[e.axisIndex],r=t.get(e.axisIndex),a=t.get(e.axisId),o=t.ecModel.queryComponents({mainType:e.axis,index:r,id:a})[0];r=o.componentIndex,h(n,r)<0&&n.push(r)})},this)},_autoSetOrient:function(){var t;this.eachTargetAxis(function(e){!t&&(t=e.name)},this),this.option.orient="y"===t?"vertical":"horizontal"},_isSeriesHasAllAxesTypeOf:function(t,e){var i=!0;return lI(function(n){var r=t.get(n.axisIndex),a=this.dependentModels[n.axis][r];a&&a.get("type")===e||(i=!1)},this),i},_setDefaultThrottle:function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},getFirstTargetAxisModel:function(){var t;return lI(function(e){if(null==t){var i=this.get(e.axisIndex);i.length&&(t=this.dependentModels[e.axis][i[0]])}},this),t},eachTargetAxis:function(t,e){var i=this.ecModel;lI(function(n){sI(this.get(n.axisIndex),function(r){t.call(e,n,r,this,i)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var i=this.getAxisProxy(t,e);return i&&i.getAxisModel()},setRawRange:function(t,e){var i=this.option;sI([["start","startValue"],["end","endValue"]],function(e){(null!=t[e[0]]||null!=t[e[1]])&&(i[e[0]]=t[e[0]],i[e[1]]=t[e[1]])},this),!e&&wp(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();return t?t.getDataPercentWindow():void 0},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var i=this.findRepresentativeAxisProxy();return i?i.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(t){if(t)return t.__dzAxisProxy;var e=this._axisProxies;for(var i in e)if(e.hasOwnProperty(i)&&e[i].hostedBy(this))return e[i];for(var i in e)if(e.hasOwnProperty(i)&&!e[i].hostedBy(this))return e[i]},getRangePropMode:function(){return this._rangePropMode.slice()}}),uI=s_.extend({type:"dataZoom",render:function(t,e,i){this.dataZoomModel=t,this.ecModel=e,this.api=i},getTargetCoordInfo:function(){function t(t,e,i,n){for(var r,a=0;aa&&(e[1-n]=e[n]+u.sign*a),e}),dI=Dy,fI=qa,pI=Ka,gI=y,vI=f,mI=7,yI=1,xI=30,_I="horizontal",wI="vertical",bI=5,SI=["line","bar","candlestick","scatter"],MI=uI.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){return MI.superApply(this,"render",arguments),Hs(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),this.dataZoomModel.get("show")===!1?void this.group.removeAll():(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),void this._updateView())},remove:function(){MI.superApply(this,"remove",arguments),Zs(this,"_dispatchZoomAction")},dispose:function(){MI.superApply(this,"dispose",arguments),Zs(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new lv;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,i=this._findCoordRect(),n={width:e.getWidth(),height:e.getHeight()},r=this._orient===_I?{right:n.width-i.x-i.width,top:n.height-xI-mI,width:i.width,height:xI}:{right:mI,top:i.y,width:xI,height:i.height},a=Mo(t.option);f(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=r[t])});var o=bo(a,n,t.padding);this._location={x:o.x,y:o.y},this._size=[o.width,o.height],this._orient===wI&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),r=n&&n.get("inverse"),a=this._displayables.barGroup,o=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(i!==_I||r?i===_I&&r?{scale:o?[-1,1]:[-1,-1]}:i!==wI||r?{scale:o?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:o?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:o?[1,1]:[1,-1]});var s=t.getBoundingRect([a]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,i=this._displayables.barGroup;i.add(new dI({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),i.add(new dI({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:y(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,i=t.series,n=i.getRawData(),r=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=r){var a=n.getDataExtent(r),o=.3*(a[1]-a[0]);a=[a[0]-o,a[1]+o];var l,h=[0,e[1]],u=[0,e[0]],c=[[e[0],0],[0,0]],d=[],f=u[1]/(n.count()-1),p=0,g=Math.round(n.count()/e[0]);n.each([r],function(t,e){if(g>0&&e%g)return void(p+=f);var i=null==t||isNaN(t)||""===t,n=i?0:fI(t,a,h,!0);i&&!l&&e?(c.push([c[c.length-1][0],0]),d.push([d[d.length-1][0],0])):!i&&l&&(c.push([p,0]),d.push([p,0])),c.push([p,n]),d.push([p,n]),p+=f,l=i});var v=this.dataZoomModel;this._displayables.barGroup.add(new Cy({shape:{points:c},style:s({fill:v.get("dataBackgroundColor")},v.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new Ay({shape:{points:d},style:v.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(e!==!1){var i,n=this.ecModel;return t.eachTargetAxis(function(r,a){var o=t.getAxisProxy(r.name,a).getTargetSeriesModels();f(o,function(t){if(!(i||e!==!0&&h(SI,t.get("type"))<0)){var o,s=n.getComponent(r.axis,a).axis,l=Mp(r.name),u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(o=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),i={thisAxis:s,series:t,thisDim:r.name,otherDim:l,otherAxisInverse:o}}},this)},this),i}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,r=this._size,a=this.dataZoomModel;n.add(t.filler=new dI({draggable:!0,cursor:Ip(this._orient),drift:gI(this._onDragMove,this,"all"),onmousemove:function(t){Ig(t.event)},ondragstart:gI(this._showDataInfo,this,!0),ondragend:gI(this._onDragEnd,this),onmouseover:gI(this._showDataInfo,this,!0),onmouseout:gI(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new dI(na({silent:!0,shape:{x:0,y:0,width:r[0],height:r[1]},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:yI,fill:"rgba(0,0,0,0)"}}))),vI([0,1],function(t){var r=Va(a.get("handleIcon"),{cursor:Ip(this._orient),draggable:!0,drift:gI(this._onDragMove,this,t),onmousemove:function(t){Ig(t.event) + },ondragend:gI(this._onDragEnd,this),onmouseover:gI(this._showDataInfo,this,!0),onmouseout:gI(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),o=r.getBoundingRect();this._handleHeight=Ua(a.get("handleSize"),this._size[1]),this._handleWidth=o.width/o.height*this._handleHeight,r.setStyle(a.getModel("handleStyle").getItemStyle());var s=a.get("handleColor");null!=s&&(r.style.fill=s),n.add(e[t]=r);var l=a.textStyleModel;this.group.add(i[t]=new xy({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:l.getTextColor(),textFont:l.getFont()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[fI(t[0],[0,100],e,!0),fI(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this.dataZoomModel,n=this._handleEnds,r=this._getViewExtent(),a=i.findRepresentativeAxisProxy().getMinMaxSpan(),o=[0,100];cI(e,n,r,i.get("zoomLock")?"all":t,null!=a.minSpan?fI(a.minSpan,o,r,!0):null,null!=a.maxSpan?fI(a.maxSpan,o,r,!0):null);var s=this._range,l=this._range=pI([fI(n[0],r,o,!0),fI(n[1],r,o,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},_updateView:function(t){var e=this._displayables,i=this._handleEnds,n=pI(i.slice()),r=this._size;vI([0,1],function(t){var n=e.handles[t],a=this._handleHeight;n.attr({scale:[a/2,a/2],position:[i[t],r[1]/2-a/2]})},this),e.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:r[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=za(n.handles[t].parent,this.group),i=Ra(0===t?"right":"left",e),s=this._handleWidth/2+bI,l=Ea([c[t]+(0===t?-s:s),this._size[1]/2],e);r[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===_I?"middle":i,textAlign:a===_I?i:"center",text:o[t]})}var i=this.dataZoomModel,n=this._displayables,r=n.handleLabels,a=this._orient,o=["",""];if(i.get("showDetail")){var s=i.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,h=this._range,u=t?s.calculateDataWindow({start:h[0],end:h[1]}).valueWindow:s.getDataValueWindow();o=[this._formatLabel(u[0],l),this._formatLabel(u[1],l)]}}var c=pI(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var i=this.dataZoomModel,n=i.get("labelFormatter"),r=i.get("labelPrecision");(null==r||"auto"===r)&&(r=e.getPixelPrecision());var a=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(r,20));return w(n)?n(t,a):b(n)?n.replace("{value}",a):a},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,i){this._dragging=!0;var n=this._displayables.barGroup.getLocalTransform(),r=Ea([e,i],n,!0),a=this._updateInterval(t,r[0]),o=this.dataZoomModel.get("realtime");this._updateView(!o),a&&o&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1);var t=this.dataZoomModel.get("realtime");!t&&this._dispatchZoomAction()},_onClickPanelClick:function(t){var e=this._size,i=this._displayables.barGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(i[0]<0||i[0]>e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,r=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-r);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var t;if(vI(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var i=e[0].model.coordinateSystem;t=i.getRect&&i.getRect()}}),!t){var e=this.api.getWidth(),i=this.api.getHeight();t={x:.2*e,y:.2*i,width:.6*e,height:.6*i}}return t}});hI.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var II="\x00_ec_interaction_mutex";Ul({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),c(Ap,bg);var TI="\x00_ec_dataZoom_roams",CI=y,AI=uI.extend({type:"dataZoom.inside",init:function(){this._range},render:function(t,e,i){AI.superApply(this,"render",arguments),this._range=t.getPercentRange(),f(this.getTargetCoordInfo(),function(e,n){var r=p(e,function(t){return Fp(t.model)});f(e,function(e){var a=e.model,o={};f(["pan","zoom","scrollMove"],function(t){o[t]=CI(DI[t],this,e,n)},this),Bp(i,{coordId:Fp(a),allCoordIds:r,containsPoint:function(t,e,i){return a.coordinateSystem.containPoint([e,i])},dataZoomId:t.id,dataZoomModel:t,getRange:o})},this)},this)},dispose:function(){Np(this.api,this.dataZoomModel.id),AI.superApply(this,"dispose",arguments),this._range=null}}),DI={zoom:function(t,e,i,n){var r=this._range,a=r.slice(),o=t.axisModels[0];if(o){var s=kI[e](null,[n.originX,n.originY],o,i,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],h=Math.max(1/n.scale,0);a[0]=(a[0]-l)*h+l,a[1]=(a[1]-l)*h+l;var u=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return cI(0,a,[0,100],0,u.minSpan,u.maxSpan),this._range=a,r[0]!==a[0]||r[1]!==a[1]?a:void 0}},pan:Xp(function(t,e,i,n,r,a){var o=kI[n]([a.oldX,a.oldY],[a.newX,a.newY],e,r,i);return o.signal*(t[1]-t[0])*o.pixel/o.pixelLength}),scrollMove:Xp(function(t,e,i,n,r,a){var o=kI[n]([0,0],[a.scrollDelta,a.scrollDelta],e,r,i);return o.signal*(t[1]-t[0])*a.scrollDelta})},kI={grid:function(t,e,i,n,r){var a=i.axis,o={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===a.dim?(o.pixel=e[0]-t[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=e[1]-t[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(t,e,i,n,r){var a=i.axis,o={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),h=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===i.mainType?(o.pixel=e[0]-t[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?1:-1):(o.pixel=e[1]-t[1],o.pixelLength=h[1]-h[0],o.pixelStart=h[0],o.signal=a.inverse?-1:1),o},singleAxis:function(t,e,i,n,r){var a=i.axis,o=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===a.orient?(s.pixel=e[0]-t[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}};jl({getTargetSeries:function(t){var e=N();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){var r=n.getAxisProxy(t.name,i);f(r.getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},modifyOutputEnd:!0,overallReset:function(t,e){t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).reset(n,e)}),t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).filterData(n,e)})}),t.eachComponent("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),i=e.getDataPercentWindow(),n=e.getDataValueWindow();t.setRawRange({start:i[0],end:i[1],startValue:n[0],endValue:n[1]},!0)})}}),Ul("dataZoom",function(t,e){var i=gp(y(e.eachComponent,e,"dataZoom"),nI,function(t,e){return t.get(e.axisIndex)}),n=[];e.eachComponent({mainType:"dataZoom",query:t},function(t){n.push.apply(n,i(t).nodes)}),f(n,function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var PI,LI="urn:schemas-microsoft-com:vml",OI="undefined"==typeof window?null:window,zI=!1,EI=OI&&OI.document;if(EI&&!tg.canvasSupported)try{!EI.namespaces.zrvml&&EI.namespaces.add("zrvml",LI),PI=function(t){return EI.createElement("')}}catch(RI){PI=function(t){return EI.createElement("<"+t+' xmlns="'+LI+'" class="zrvml">')}}var BI=qm.CMD,NI=Math.round,FI=Math.sqrt,VI=Math.abs,WI=Math.cos,GI=Math.sin,HI=Math.max;if(!tg.canvasSupported){var ZI=",",XI="progid:DXImageTransform.Microsoft",YI=21600,jI=YI/2,qI=1e5,UI=1e3,$I=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=YI+","+YI,t.coordorigin="0,0"},KI=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},QI=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},JI=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},tT=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},eT=function(t,e,i){return(parseFloat(t)||0)*qI+(parseFloat(e)||0)*UI+i},iT=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},nT=function(t,e,i){var n=He(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=QI(n[0],n[1],n[2]),t.opacity=i*n[3])},rT=function(t){var e=He(t);return[QI(e[0],e[1],e[2]),e[3]]},aT=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof Ey){var r,a=0,o=[0,0],s=0,l=1,h=i.getBoundingRect(),u=h.width,c=h.height;if("linear"===n.type){r="gradient";var d=i.transform,f=[n.x*u,n.y*c],p=[n.x2*u,n.y2*c];d&&(ae(f,f,d),ae(p,p,d));var g=p[0]-f[0],v=p[1]-f[1];a=180*Math.atan2(g,v)/Math.PI,0>a&&(a+=360),1e-6>a&&(a=0)}else{r="gradientradial";var f=[n.x*u,n.y*c],d=i.transform,m=i.scale,y=u,x=c;o=[(f[0]-h.x)/y,(f[1]-h.y)/x],d&&ae(f,f,d),y/=m[0]*YI,x/=m[1]*YI;var _=HI(y,x);s=0/_,l=2*n.r/_-s}var w=n.colorStops.slice();w.sort(function(t,e){return t.offset-e.offset});for(var b=w.length,S=[],M=[],I=0;b>I;I++){var T=w[I],C=rT(T.color);M.push(T.offset*l+s+" "+C[0]),(0===I||I===b-1)&&S.push(C)}if(b>=2){var A=S[0][0],D=S[1][0],k=S[0][1]*e.opacity,P=S[1][1]*e.opacity;t.type=r,t.method="none",t.focus="100%",t.angle=a,t.color=A,t.color2=D,t.colors=M.join(","),t.opacity=P,t.opacity2=k}"radial"===r&&(t.focusposition=o.join(","))}else nT(t,n,e.opacity)},oT=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof Ey||nT(t,e.stroke,e.opacity)},sT=function(t,e,i,n){var r="fill"==e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(r||!r&&i.lineWidth)?(t[r?"filled":"stroked"]="true",i[e]instanceof Ey&&tT(t,a),a||(a=Yp(e)),r?aT(a,i,n):oT(a,i),JI(t,a)):(t[r?"filled":"stroked"]="false",tT(t,a))},lT=[[],[],[]],hT=function(t,e){var i,n,r,a,o,s,l=BI.M,h=BI.C,u=BI.L,c=BI.A,d=BI.Q,f=[],p=t.data,g=t.len();for(a=0;g>a;){switch(r=p[a++],n="",i=0,r){case l:n=" m ",i=1,o=p[a++],s=p[a++],lT[0][0]=o,lT[0][1]=s;break;case u:n=" l ",i=1,o=p[a++],s=p[a++],lT[0][0]=o,lT[0][1]=s;break;case d:case h:n=" c ",i=3;var v,m,y=p[a++],x=p[a++],_=p[a++],w=p[a++];r===d?(v=_,m=w,_=(_+2*y)/3,w=(w+2*x)/3,y=(o+2*y)/3,x=(s+2*x)/3):(v=p[a++],m=p[a++]),lT[0][0]=y,lT[0][1]=x,lT[1][0]=_,lT[1][1]=w,lT[2][0]=v,lT[2][1]=m,o=v,s=m;break;case c:var b=0,S=0,M=1,I=1,T=0;e&&(b=e[4],S=e[5],M=FI(e[0]*e[0]+e[1]*e[1]),I=FI(e[2]*e[2]+e[3]*e[3]),T=Math.atan2(-e[1]/I,e[0]/M));var C=p[a++],A=p[a++],D=p[a++],k=p[a++],P=p[a++]+T,L=p[a++]+P+T;a++;var O=p[a++],z=C+WI(P)*D,E=A+GI(P)*k,y=C+WI(L)*D,x=A+GI(L)*k,R=O?" wa ":" at ";Math.abs(z-y)<1e-4&&(Math.abs(L-P)>.01?O&&(z+=270/YI):Math.abs(E-A)<1e-4?O&&C>z||!O&&z>C?x-=270/YI:x+=270/YI:O&&A>E||!O&&E>A?y+=270/YI:y-=270/YI),f.push(R,NI(((C-D)*M+b)*YI-jI),ZI,NI(((A-k)*I+S)*YI-jI),ZI,NI(((C+D)*M+b)*YI-jI),ZI,NI(((A+k)*I+S)*YI-jI),ZI,NI((z*M+b)*YI-jI),ZI,NI((E*I+S)*YI-jI),ZI,NI((y*M+b)*YI-jI),ZI,NI((x*I+S)*YI-jI)),o=y,s=x;break;case BI.R:var B=lT[0],N=lT[1];B[0]=p[a++],B[1]=p[a++],N[0]=B[0]+p[a++],N[1]=B[1]+p[a++],e&&(ae(B,B,e),ae(N,N,e)),B[0]=NI(B[0]*YI-jI),N[0]=NI(N[0]*YI-jI),B[1]=NI(B[1]*YI-jI),N[1]=NI(N[1]*YI-jI),f.push(" m ",B[0],ZI,B[1]," l ",N[0],ZI,B[1]," l ",N[0],ZI,N[1]," l ",B[0],ZI,N[1]);break;case BI.Z:f.push(" x ")}if(i>0){f.push(n);for(var F=0;i>F;F++){var V=lT[F];e&&ae(V,V,e),f.push(NI(V[0]*YI-jI),ZI,NI(V[1]*YI-jI),i-1>F?ZI:"")}}}return f.join("")};Fr.prototype.brushVML=function(t){var e=this.style,i=this._vmlEl;i||(i=Yp("shape"),$I(i),this._vmlEl=i),sT(i,"fill",e,this),sT(i,"stroke",e,this);var n=this.transform,r=null!=n,a=i.getElementsByTagName("stroke")[0];if(a){var o=e.lineWidth;if(r&&!e.strokeNoScale){var s=n[0]*n[3]-n[1]*n[2];o*=FI(VI(s))}a.weight=o+"px"}var l=this.path||(this.path=new qm);this.__dirtyPath&&(l.beginPath(),this.buildPath(l,this.shape),l.toStatic(),this.__dirtyPath=!1),i.path=hT(l,this.transform),i.style.zIndex=eT(this.zlevel,this.z,this.z2),JI(t,i),null!=e.text?this.drawRectText(t,this.getBoundingRect()):this.removeRectText(t)},Fr.prototype.onRemove=function(t){tT(t,this._vmlEl),this.removeRectText(t)},Fr.prototype.onAdd=function(t){JI(t,this._vmlEl),this.appendRectText(t)};var uT=function(t){return"object"==typeof t&&t.tagName&&"IMG"===t.tagName.toUpperCase()};yn.prototype.brushVML=function(t){var e,i,n=this.style,r=n.image;if(uT(r)){var a=r.src;if(a===this._imageSrc)e=this._imageWidth,i=this._imageHeight;else{var o=r.runtimeStyle,s=o.width,l=o.height;o.width="auto",o.height="auto",e=r.width,i=r.height,o.width=s,o.height=l,this._imageSrc=a,this._imageWidth=e,this._imageHeight=i}r=a}else r===this._imageSrc&&(e=this._imageWidth,i=this._imageHeight);if(r){var h=n.x||0,u=n.y||0,c=n.width,d=n.height,f=n.sWidth,p=n.sHeight,g=n.sx||0,v=n.sy||0,m=f&&p,y=this._vmlEl;y||(y=EI.createElement("div"),$I(y),this._vmlEl=y);var x,_=y.style,w=!1,b=1,S=1;if(this.transform&&(x=this.transform,b=FI(x[0]*x[0]+x[1]*x[1]),S=FI(x[2]*x[2]+x[3]*x[3]),w=x[1]||x[2]),w){var M=[h,u],I=[h+c,u],T=[h,u+d],C=[h+c,u+d];ae(M,M,x),ae(I,I,x),ae(T,T,x),ae(C,C,x);var A=HI(M[0],I[0],T[0],C[0]),D=HI(M[1],I[1],T[1],C[1]),k=[];k.push("M11=",x[0]/b,ZI,"M12=",x[2]/S,ZI,"M21=",x[1]/b,ZI,"M22=",x[3]/S,ZI,"Dx=",NI(h*b+x[4]),ZI,"Dy=",NI(u*S+x[5])),_.padding="0 "+NI(A)+"px "+NI(D)+"px 0",_.filter=XI+".Matrix("+k.join("")+", SizingMethod=clip)"}else x&&(h=h*b+x[4],u=u*S+x[5]),_.filter="",_.left=NI(h)+"px",_.top=NI(u)+"px";var P=this._imageEl,L=this._cropEl;P||(P=EI.createElement("div"),this._imageEl=P);var O=P.style;if(m){if(e&&i)O.width=NI(b*e*c/f)+"px",O.height=NI(S*i*d/p)+"px";else{var z=new Image,E=this;z.onload=function(){z.onload=null,e=z.width,i=z.height,O.width=NI(b*e*c/f)+"px",O.height=NI(S*i*d/p)+"px",E._imageWidth=e,E._imageHeight=i,E._imageSrc=r},z.src=r}L||(L=EI.createElement("div"),L.style.overflow="hidden",this._cropEl=L);var R=L.style;R.width=NI((c+g*c/f)*b),R.height=NI((d+v*d/p)*S),R.filter=XI+".Matrix(Dx="+-g*c/f*b+",Dy="+-v*d/p*S+")",L.parentNode||y.appendChild(L),P.parentNode!=L&&L.appendChild(P)}else O.width=NI(b*c)+"px",O.height=NI(S*d)+"px",y.appendChild(P),L&&L.parentNode&&(y.removeChild(L),this._cropEl=null);var B="",N=n.opacity;1>N&&(B+=".Alpha(opacity="+NI(100*N)+") "),B+=XI+".AlphaImageLoader(src="+r+", SizingMethod=scale)",O.filter=B,y.style.zIndex=eT(this.zlevel,this.z,this.z2),JI(t,y),null!=n.text&&this.drawRectText(t,this.getBoundingRect())}},yn.prototype.onRemove=function(t){tT(t,this._vmlEl),this._vmlEl=null,this._cropEl=null,this._imageEl=null,this.removeRectText(t)},yn.prototype.onAdd=function(t){JI(t,this._vmlEl),this.appendRectText(t)};var cT,dT="normal",fT={},pT=0,gT=100,vT=document.createElement("div"),mT=function(t){var e=fT[t];if(!e){pT>gT&&(pT=0,fT={});var i,n=vT.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(r){}e={style:n.fontStyle||dT,variant:n.fontVariant||dT,weight:n.fontWeight||dT,size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},fT[t]=e,pT++}return e};Oi("measureText",function(t,e){var i=EI;cT||(cT=i.createElement("div"),cT.style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",EI.body.appendChild(cT));try{cT.style.font=e}catch(n){}return cT.innerHTML="",cT.appendChild(i.createTextNode(t)),{width:cT.offsetWidth}});for(var yT=new gi,xT=function(t,e,i,n){var r=this.style;this.__dirty&&Qi(r,!0);var a=r.text;if(null!=a&&(a+=""),a){if(r.rich){var o=qi(a,r);a=[];for(var s=0;s'; + + oriIcon += '
'; + + var selectHtml = '
' + + '
' + + '
' + + '' + + oriIcon + + '' + + '' + + '
' + + '
' + + '
' + + '123' + + '
'; + $(elem).after(selectHtml); + return a; + }, + /** + * 展开/折叠下拉框 + */ + toggleSelect: function () { + var item = '#' + TITLE_ID + ' .layui-iconpicker-item,#' + TITLE_ID + ' .layui-iconpicker-item .layui-edge'; + a.event('click', item, function (e) { + var $icon = $('#' + ICON_BODY); + if ($icon.hasClass(selected)) { + $icon.removeClass(selected).addClass(unselect); + } else { + // 隐藏其他picker + $('.layui-form-select').removeClass(selected); + // 显示当前picker + $icon.addClass(selected).removeClass(unselect); + } + e.stopPropagation(); + }); + return a; + }, + /** + * 绘制主体部分 + */ + createBody: function () { + // 获取数据 + var searchHtml = ''; + + if (search) { + searchHtml = ''; + } + + // 组合dom + var bodyHtml = '
' + + searchHtml + + '
' + + '
'; + $('#' + ICON_BODY).find('.layui-anim').eq(0).html(bodyHtml); + a.search().createList().check().page(); + + return a; + }, + /** + * 绘制图标列表 + * @param text 模糊查询关键字 + * @returns {string} + */ + createList: function (text) { + var d = data, + l = d.length, + pageHtml = '', + listHtml = $('
')//'
'; + + // 计算分页数据 + var _limit = limit, // 每页显示数量 + _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1), // 总计多少页 + _id = PAGE_ID; + + // 图标列表 + var icons = []; + + for (var i = 0; i < l; i++) { + var obj = d[i]; + + // 判断是否模糊查询 + if (text && obj.indexOf(text) === -1) { + continue; + } + + // 是否自定义格子宽度 + var style = ''; + if (cellWidth !== null) { + style += ' style="width:' + cellWidth + '"'; + } + + // 每个图标dom + var icon = '
'; + + icon += ''; + + icon += '
'; + + icons.push(icon); + } + + // 查询出图标后再分页 + l = icons.length; + _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1); + for (var i = 0; i < _pages; i++) { + // 按limit分块 + var lm = $('
'); + + for (var j = i * _limit; j < (i + 1) * _limit && j < l; j++) { + lm.append(icons[j]); + } + + listHtml.append(lm); + } + + // 无数据 + if (l === 0) { + listHtml.append('

无数据

'); + } + + // 判断是否分页 + if (page) { + $('#' + PICKER_BODY).addClass('layui-iconpicker-body-page'); + pageHtml = '
' + + '
' + + '1/' + + '' + _pages + '' + + ' (' + l + ')' + + '
' + + '
' + + ' ' + + ' ' + + '
' + + '
'; + } + + + $('#' + ICON_BODY).find('.layui-anim').find('.' + LIST_BOX).html('').append(listHtml).append(pageHtml); + return a; + }, + // 阻止Layui的一些默认事件 + preventEvent: function () { + var item = '#' + ICON_BODY + ' .layui-anim'; + a.event('click', item, function (e) { + e.stopPropagation(); + }); + return a; + }, + // 分页 + page: function () { + var icon = '#' + PAGE_ID + ' .layui-iconpicker-page-operate .layui-icon'; + + $(icon).unbind('click'); + a.event('click', icon, function (e) { + var elem = e.currentTarget, + total = parseInt($('#' + PAGE_ID + '-pages').html()), + isPrev = $(elem).attr('prev') !== undefined, + // 按钮上标的页码 + index = parseInt($(elem).attr('data-index')), + $cur = $('#' + PAGE_ID + '-current'), + // 点击时正在显示的页码 + current = parseInt($cur.html()); + + // 分页数据 + if (isPrev && current > 1) { + current = current - 1; + $(icon + '[prev]').attr('data-index', current); + } else if (!isPrev && current < total) { + current = current + 1; + $(icon + '[next]').attr('data-index', current); + } + $cur.html(current); + + // 图标数据 + $('#' + ICON_BODY + ' .layui-iconpicker-icon-limit').hide(); + $('#layui-iconpicker-icon-limit-' + tmp + current).show(); + e.stopPropagation(); + }); + return a; + }, + /** + * 搜索 + */ + search: function () { + var item = '#' + PICKER_BODY + ' .layui-iconpicker-search .layui-input'; + a.event('input propertychange', item, function (e) { + var elem = e.target, + t = $(elem).val(); + a.createList(t); + }); + return a; + }, + /** + * 点击选中图标 + */ + check: function () { + var item = '#' + PICKER_BODY + ' .layui-iconpicker-icon-item'; + a.event('click', item, function (e) { + var el = $(e.currentTarget).find('.fa'), + icon = ''; + + var clsArr = el.attr('class').split(/[\s\n]/), + cls = clsArr[1], + icon = cls; + $('#' + TITLE_ID).find('.layui-iconpicker-item .fa').html('').attr('class', clsArr.join(' ')); + + + $('#' + ICON_BODY).removeClass(selected).addClass(unselect); + $(elem).val(icon).attr('value', icon); + // 回调 + if (click) { + click({ + icon: icon + }); + } + + }); + return a; + }, + // 监听原始input数值改变 + inputListen: function () { + var el = $(elem); + a.event('change', elem, function () { + var value = el.val(); + }) + // el.change(function(){ + + // }); + return a; + }, + event: function (evt, el, fn) { + $(BODY).on(evt, el, fn); + } + }; + + var common = { + /** + * 加载样式表 + */ + loadCss: function () { + var css = '.layui-iconpicker {max-width: 280px;}.layui-iconpicker .layui-anim{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;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-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:38px;border-radius:4px;cursor:pointer;position:relative;}.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}.layui-iconpicker-icon i{line-height:38px;font-size:18px;}.layui-iconpicker-item > .layui-edge{left:70px;}.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}.layui-iconpicker.layui-form-selected .layui-anim{display:block;}.layui-iconpicker-body{padding:6px;}.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}.layui-iconpicker-search{position:relative;margin:0 0 6px 0;border:1px solid #e6e6e6;border-radius:2px;transition:300ms;}.layui-iconpicker-search:hover{border-color:#D2D2D2!important;}.layui-iconpicker-search .layui-input{cursor:text;display:inline-block;width:86%;border:none;padding-right:0;margin-top:1px;}.layui-iconpicker-search .layui-icon{position:absolute;top:11px;right:4%;}.layui-iconpicker-tips{text-align:center;padding:8px 0;cursor:not-allowed;}.layui-iconpicker-page{margin-top:6px;margin-bottom:-6px;font-size:12px;padding:0 2px;}.layui-iconpicker-page-count{display:inline-block;}.layui-iconpicker-page-operate{display:inline-block;float:right;cursor:default;}.layui-iconpicker-page-operate .layui-icon{font-size:12px;cursor:pointer;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit{display:none;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit:first-child{display:block;}'; + var $style = $('head').find('style[iconpicker]'); + if ($style.length === 0) { + $('head').append(''); + } + }, + + /** + * 获取数据 + */ + getData: function (url) { + var iconlist = []; + $.ajax({ + url: url, + type: 'get', + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + async: false, + success: function (ret) { + var exp = /fa-var-(.*):/ig; + var result; + while ((result = exp.exec(ret)) != null) { + iconlist.push('fa-' + result[1]); + } + }, + error: function (xhr, textstatus, thrown) { + layer.msg('fa图标接口有误'); + } + }); + return iconlist; + } + }; + + a.init(); + return new IconPicker(); + }; + + /** + * 选中图标 + * @param filter lay-filter + * @param iconName 图标名称,自动识别fontClass/unicode + */ + IconPicker.prototype.checkIcon = function (filter, iconName) { + var el = $('*[lay-filter=' + filter + ']'), + p = el.next().find('.layui-iconpicker-item .fa'), + c = iconName; + + if (c.indexOf('#xe') > 0) { + p.html(c); + } else { + p.html('').attr('class', 'fa ' + c); + } + el.attr('value', c).val(c); + }; + + var iconPicker = new IconPicker(); + exports(_MOD, iconPicker); +}); \ No newline at end of file diff --git a/src/main/resources/static/js/lay-module/layarea/layarea.js b/src/main/resources/static/js/lay-module/layarea/layarea.js new file mode 100644 index 00000000..d62e3846 --- /dev/null +++ b/src/main/resources/static/js/lay-module/layarea/layarea.js @@ -0,0 +1,4040 @@ +layui.define(['layer', 'form', 'laytpl'], function (exports) { + "use strict"; + + let $ = layui.$ + , form = layui.form + , layarea = { + _id: 0 + , config: {} + , set: function (options) { + let that = this; + that.config = $.extend({}, that.config, options); + return that; + } + , on: function (events, callback) { + return layui.onevent.call(this, 'layarea', events, callback); + } + } + , thisArea = function () { + let that = this; + return { + layarea: function (files) { + that.layarea.call(that, files); + } + , config: that.config + } + } + , Class = function (options) { + let that = this; + that.config = $.extend({}, that.config, layarea.config, options); + that.render(); + }; + + let areaList = { + province_list: { + 110000: '北京市', + 120000: '天津市', + 130000: '河北省', + 140000: '山西省', + 150000: '内蒙古自治区', + 210000: '辽宁省', + 220000: '吉林省', + 230000: '黑龙江省', + 310000: '上海市', + 320000: '江苏省', + 330000: '浙江省', + 340000: '安徽省', + 350000: '福建省', + 360000: '江西省', + 370000: '山东省', + 410000: '河南省', + 420000: '湖北省', + 430000: '湖南省', + 440000: '广东省', + 450000: '广西壮族自治区', + 460000: '海南省', + 500000: '重庆市', + 510000: '四川省', + 520000: '贵州省', + 530000: '云南省', + 540000: '西藏自治区', + 610000: '陕西省', + 620000: '甘肃省', + 630000: '青海省', + 640000: '宁夏回族自治区', + 650000: '新疆维吾尔自治区', + 710000: '台湾省', + 810000: '香港特别行政区', + 820000: '澳门特别行政区', + 900000: '海外' + }, + city_list: { + 110100: '北京市', + 120100: '天津市', + 130100: '石家庄市', + 130200: '唐山市', + 130300: '秦皇岛市', + 130400: '邯郸市', + 130500: '邢台市', + 130600: '保定市', + 130700: '张家口市', + 130800: '承德市', + 130900: '沧州市', + 131000: '廊坊市', + 131100: '衡水市', + 139000: '省直辖县', + 140100: '太原市', + 140200: '大同市', + 140300: '阳泉市', + 140400: '长治市', + 140500: '晋城市', + 140600: '朔州市', + 140700: '晋中市', + 140800: '运城市', + 140900: '忻州市', + 141000: '临汾市', + 141100: '吕梁市', + 150100: '呼和浩特市', + 150200: '包头市', + 150300: '乌海市', + 150400: '赤峰市', + 150500: '通辽市', + 150600: '鄂尔多斯市', + 150700: '呼伦贝尔市', + 150800: '巴彦淖尔市', + 150900: '乌兰察布市', + 152200: '兴安盟', + 152500: '锡林郭勒盟', + 152900: '阿拉善盟', + 210100: '沈阳市', + 210200: '大连市', + 210300: '鞍山市', + 210400: '抚顺市', + 210500: '本溪市', + 210600: '丹东市', + 210700: '锦州市', + 210800: '营口市', + 210900: '阜新市', + 211000: '辽阳市', + 211100: '盘锦市', + 211200: '铁岭市', + 211300: '朝阳市', + 211400: '葫芦岛市', + 220100: '长春市', + 220200: '吉林市', + 220300: '四平市', + 220400: '辽源市', + 220500: '通化市', + 220600: '白山市', + 220700: '松原市', + 220800: '白城市', + 222400: '延边朝鲜族自治州', + 230100: '哈尔滨市', + 230200: '齐齐哈尔市', + 230300: '鸡西市', + 230400: '鹤岗市', + 230500: '双鸭山市', + 230600: '大庆市', + 230700: '伊春市', + 230800: '佳木斯市', + 230900: '七台河市', + 231000: '牡丹江市', + 231100: '黑河市', + 231200: '绥化市', + 232700: '大兴安岭地区', + 310100: '上海市', + 320100: '南京市', + 320200: '无锡市', + 320300: '徐州市', + 320400: '常州市', + 320500: '苏州市', + 320600: '南通市', + 320700: '连云港市', + 320800: '淮安市', + 320900: '盐城市', + 321000: '扬州市', + 321100: '镇江市', + 321200: '泰州市', + 321300: '宿迁市', + 330100: '杭州市', + 330200: '宁波市', + 330300: '温州市', + 330400: '嘉兴市', + 330500: '湖州市', + 330600: '绍兴市', + 330700: '金华市', + 330800: '衢州市', + 330900: '舟山市', + 331000: '台州市', + 331100: '丽水市', + 340100: '合肥市', + 340200: '芜湖市', + 340300: '蚌埠市', + 340400: '淮南市', + 340500: '马鞍山市', + 340600: '淮北市', + 340700: '铜陵市', + 340800: '安庆市', + 341000: '黄山市', + 341100: '滁州市', + 341200: '阜阳市', + 341300: '宿州市', + 341500: '六安市', + 341600: '亳州市', + 341700: '池州市', + 341800: '宣城市', + 350100: '福州市', + 350200: '厦门市', + 350300: '莆田市', + 350400: '三明市', + 350500: '泉州市', + 350600: '漳州市', + 350700: '南平市', + 350800: '龙岩市', + 350900: '宁德市', + 360100: '南昌市', + 360200: '景德镇市', + 360300: '萍乡市', + 360400: '九江市', + 360500: '新余市', + 360600: '鹰潭市', + 360700: '赣州市', + 360800: '吉安市', + 360900: '宜春市', + 361000: '抚州市', + 361100: '上饶市', + 370100: '济南市', + 370200: '青岛市', + 370300: '淄博市', + 370400: '枣庄市', + 370500: '东营市', + 370600: '烟台市', + 370700: '潍坊市', + 370800: '济宁市', + 370900: '泰安市', + 371000: '威海市', + 371100: '日照市', + 371200: '莱芜市', + 371300: '临沂市', + 371400: '德州市', + 371500: '聊城市', + 371600: '滨州市', + 371700: '菏泽市', + 410100: '郑州市', + 410200: '开封市', + 410300: '洛阳市', + 410400: '平顶山市', + 410500: '安阳市', + 410600: '鹤壁市', + 410700: '新乡市', + 410800: '焦作市', + 410900: '濮阳市', + 411000: '许昌市', + 411100: '漯河市', + 411200: '三门峡市', + 411300: '南阳市', + 411400: '商丘市', + 411500: '信阳市', + 411600: '周口市', + 411700: '驻马店市', + 419000: '省直辖县', + 420100: '武汉市', + 420200: '黄石市', + 420300: '十堰市', + 420500: '宜昌市', + 420600: '襄阳市', + 420700: '鄂州市', + 420800: '荆门市', + 420900: '孝感市', + 421000: '荆州市', + 421100: '黄冈市', + 421200: '咸宁市', + 421300: '随州市', + 422800: '恩施土家族苗族自治州', + 429000: '省直辖县', + 430100: '长沙市', + 430200: '株洲市', + 430300: '湘潭市', + 430400: '衡阳市', + 430500: '邵阳市', + 430600: '岳阳市', + 430700: '常德市', + 430800: '张家界市', + 430900: '益阳市', + 431000: '郴州市', + 431100: '永州市', + 431200: '怀化市', + 431300: '娄底市', + 433100: '湘西土家族苗族自治州', + 440100: '广州市', + 440200: '韶关市', + 440300: '深圳市', + 440400: '珠海市', + 440500: '汕头市', + 440600: '佛山市', + 440700: '江门市', + 440800: '湛江市', + 440900: '茂名市', + 441200: '肇庆市', + 441300: '惠州市', + 441400: '梅州市', + 441500: '汕尾市', + 441600: '河源市', + 441700: '阳江市', + 441800: '清远市', + 441900: '东莞市', + 442000: '中山市', + 445100: '潮州市', + 445200: '揭阳市', + 445300: '云浮市', + 450100: '南宁市', + 450200: '柳州市', + 450300: '桂林市', + 450400: '梧州市', + 450500: '北海市', + 450600: '防城港市', + 450700: '钦州市', + 450800: '贵港市', + 450900: '玉林市', + 451000: '百色市', + 451100: '贺州市', + 451200: '河池市', + 451300: '来宾市', + 451400: '崇左市', + 460100: '海口市', + 460200: '三亚市', + 460300: '三沙市', + 460400: '儋州市', + 469000: '省直辖县', + 500100: '重庆市', + 500200: '县', + 510100: '成都市', + 510300: '自贡市', + 510400: '攀枝花市', + 510500: '泸州市', + 510600: '德阳市', + 510700: '绵阳市', + 510800: '广元市', + 510900: '遂宁市', + 511000: '内江市', + 511100: '乐山市', + 511300: '南充市', + 511400: '眉山市', + 511500: '宜宾市', + 511600: '广安市', + 511700: '达州市', + 511800: '雅安市', + 511900: '巴中市', + 512000: '资阳市', + 513200: '阿坝藏族羌族自治州', + 513300: '甘孜藏族自治州', + 513400: '凉山彝族自治州', + 520100: '贵阳市', + 520200: '六盘水市', + 520300: '遵义市', + 520400: '安顺市', + 520500: '毕节市', + 520600: '铜仁市', + 522300: '黔西南布依族苗族自治州', + 522600: '黔东南苗族侗族自治州', + 522700: '黔南布依族苗族自治州', + 530100: '昆明市', + 530300: '曲靖市', + 530400: '玉溪市', + 530500: '保山市', + 530600: '昭通市', + 530700: '丽江市', + 530800: '普洱市', + 530900: '临沧市', + 532300: '楚雄彝族自治州', + 532500: '红河哈尼族彝族自治州', + 532600: '文山壮族苗族自治州', + 532800: '西双版纳傣族自治州', + 532900: '大理白族自治州', + 533100: '德宏傣族景颇族自治州', + 533300: '怒江傈僳族自治州', + 533400: '迪庆藏族自治州', + 540100: '拉萨市', + 540200: '日喀则市', + 540300: '昌都市', + 540400: '林芝市', + 540500: '山南市', + 540600: '那曲市', + 542500: '阿里地区', + 610100: '西安市', + 610200: '铜川市', + 610300: '宝鸡市', + 610400: '咸阳市', + 610500: '渭南市', + 610600: '延安市', + 610700: '汉中市', + 610800: '榆林市', + 610900: '安康市', + 611000: '商洛市', + 620100: '兰州市', + 620200: '嘉峪关市', + 620300: '金昌市', + 620400: '白银市', + 620500: '天水市', + 620600: '武威市', + 620700: '张掖市', + 620800: '平凉市', + 620900: '酒泉市', + 621000: '庆阳市', + 621100: '定西市', + 621200: '陇南市', + 622900: '临夏回族自治州', + 623000: '甘南藏族自治州', + 630100: '西宁市', + 630200: '海东市', + 632200: '海北藏族自治州', + 632300: '黄南藏族自治州', + 632500: '海南藏族自治州', + 632600: '果洛藏族自治州', + 632700: '玉树藏族自治州', + 632800: '海西蒙古族藏族自治州', + 640100: '银川市', + 640200: '石嘴山市', + 640300: '吴忠市', + 640400: '固原市', + 640500: '中卫市', + 650100: '乌鲁木齐市', + 650200: '克拉玛依市', + 650400: '吐鲁番市', + 650500: '哈密市', + 652300: '昌吉回族自治州', + 652700: '博尔塔拉蒙古自治州', + 652800: '巴音郭楞蒙古自治州', + 652900: '阿克苏地区', + 653000: '克孜勒苏柯尔克孜自治州', + 653100: '喀什地区', + 653200: '和田地区', + 654000: '伊犁哈萨克自治州', + 654200: '塔城地区', + 654300: '阿勒泰地区', + 659000: '自治区直辖县级行政区划', + 710100: '台北市', + 710200: '高雄市', + 710300: '台南市', + 710400: '台中市', + 710500: '金门县', + 710600: '南投县', + 710700: '基隆市', + 710800: '新竹市', + 710900: '嘉义市', + 711100: '新北市', + 711200: '宜兰县', + 711300: '新竹县', + 711400: '桃园县', + 711500: '苗栗县', + 711700: '彰化县', + 711900: '嘉义县', + 712100: '云林县', + 712400: '屏东县', + 712500: '台东县', + 712600: '花莲县', + 712700: '澎湖县', + 712800: '连江县', + 810100: '香港岛', + 810200: '九龙', + 810300: '新界', + 820100: '澳门半岛', + 820200: '离岛', + 912400: '加拿大', + 941000: '韩国', + 984000: '美国' + }, + county_list: { + 110101: '东城区', + 110102: '西城区', + 110105: '朝阳区', + 110106: '丰台区', + 110107: '石景山区', + 110108: '海淀区', + 110109: '门头沟区', + 110111: '房山区', + 110112: '通州区', + 110113: '顺义区', + 110114: '昌平区', + 110115: '大兴区', + 110116: '怀柔区', + 110117: '平谷区', + 110118: '密云区', + 110119: '延庆区', + 120101: '和平区', + 120102: '河东区', + 120103: '河西区', + 120104: '南开区', + 120105: '河北区', + 120106: '红桥区', + 120110: '东丽区', + 120111: '西青区', + 120112: '津南区', + 120113: '北辰区', + 120114: '武清区', + 120115: '宝坻区', + 120116: '滨海新区', + 120117: '宁河区', + 120118: '静海区', + 120119: '蓟州区', + 130102: '长安区', + 130104: '桥西区', + 130105: '新华区', + 130107: '井陉矿区', + 130108: '裕华区', + 130109: '藁城区', + 130110: '鹿泉区', + 130111: '栾城区', + 130121: '井陉县', + 130123: '正定县', + 130125: '行唐县', + 130126: '灵寿县', + 130127: '高邑县', + 130128: '深泽县', + 130129: '赞皇县', + 130130: '无极县', + 130131: '平山县', + 130132: '元氏县', + 130133: '赵县', + 130181: '辛集市', + 130183: '晋州市', + 130184: '新乐市', + 130202: '路南区', + 130203: '路北区', + 130204: '古冶区', + 130205: '开平区', + 130207: '丰南区', + 130208: '丰润区', + 130209: '曹妃甸区', + 130223: '滦县', + 130224: '滦南县', + 130225: '乐亭县', + 130227: '迁西县', + 130229: '玉田县', + 130281: '遵化市', + 130283: '迁安市', + 130302: '海港区', + 130303: '山海关区', + 130304: '北戴河区', + 130306: '抚宁区', + 130321: '青龙满族自治县', + 130322: '昌黎县', + 130324: '卢龙县', + 130390: '经济技术开发区', + 130402: '邯山区', + 130403: '丛台区', + 130404: '复兴区', + 130406: '峰峰矿区', + 130407: '肥乡区', + 130408: '永年区', + 130423: '临漳县', + 130424: '成安县', + 130425: '大名县', + 130426: '涉县', + 130427: '磁县', + 130430: '邱县', + 130431: '鸡泽县', + 130432: '广平县', + 130433: '馆陶县', + 130434: '魏县', + 130435: '曲周县', + 130481: '武安市', + 130502: '桥东区', + 130503: '桥西区', + 130521: '邢台县', + 130522: '临城县', + 130523: '内丘县', + 130524: '柏乡县', + 130525: '隆尧县', + 130526: '任县', + 130527: '南和县', + 130528: '宁晋县', + 130529: '巨鹿县', + 130530: '新河县', + 130531: '广宗县', + 130532: '平乡县', + 130533: '威县', + 130534: '清河县', + 130535: '临西县', + 130581: '南宫市', + 130582: '沙河市', + 130602: '竞秀区', + 130606: '莲池区', + 130607: '满城区', + 130608: '清苑区', + 130609: '徐水区', + 130623: '涞水县', + 130624: '阜平县', + 130626: '定兴县', + 130627: '唐县', + 130628: '高阳县', + 130629: '容城县', + 130630: '涞源县', + 130631: '望都县', + 130632: '安新县', + 130633: '易县', + 130634: '曲阳县', + 130635: '蠡县', + 130636: '顺平县', + 130637: '博野县', + 130638: '雄县', + 130681: '涿州市', + 130682: '定州市', + 130683: '安国市', + 130684: '高碑店市', + 130702: '桥东区', + 130703: '桥西区', + 130705: '宣化区', + 130706: '下花园区', + 130708: '万全区', + 130709: '崇礼区', + 130722: '张北县', + 130723: '康保县', + 130724: '沽源县', + 130725: '尚义县', + 130726: '蔚县', + 130727: '阳原县', + 130728: '怀安县', + 130730: '怀来县', + 130731: '涿鹿县', + 130732: '赤城县', + 130802: '双桥区', + 130803: '双滦区', + 130804: '鹰手营子矿区', + 130821: '承德县', + 130822: '兴隆县', + 130824: '滦平县', + 130825: '隆化县', + 130826: '丰宁满族自治县', + 130827: '宽城满族自治县', + 130828: '围场满族蒙古族自治县', + 130881: '平泉市', + 130902: '新华区', + 130903: '运河区', + 130921: '沧县', + 130922: '青县', + 130923: '东光县', + 130924: '海兴县', + 130925: '盐山县', + 130926: '肃宁县', + 130927: '南皮县', + 130928: '吴桥县', + 130929: '献县', + 130930: '孟村回族自治县', + 130981: '泊头市', + 130982: '任丘市', + 130983: '黄骅市', + 130984: '河间市', + 131002: '安次区', + 131003: '广阳区', + 131022: '固安县', + 131023: '永清县', + 131024: '香河县', + 131025: '大城县', + 131026: '文安县', + 131028: '大厂回族自治县', + 131081: '霸州市', + 131082: '三河市', + 131090: '开发区', + 131102: '桃城区', + 131103: '冀州区', + 131121: '枣强县', + 131122: '武邑县', + 131123: '武强县', + 131124: '饶阳县', + 131125: '安平县', + 131126: '故城县', + 131127: '景县', + 131128: '阜城县', + 131182: '深州市', + 140105: '小店区', + 140106: '迎泽区', + 140107: '杏花岭区', + 140108: '尖草坪区', + 140109: '万柏林区', + 140110: '晋源区', + 140121: '清徐县', + 140122: '阳曲县', + 140123: '娄烦县', + 140181: '古交市', + 140202: '城区', + 140203: '矿区', + 140211: '南郊区', + 140212: '新荣区', + 140221: '阳高县', + 140222: '天镇县', + 140223: '广灵县', + 140224: '灵丘县', + 140225: '浑源县', + 140226: '左云县', + 140227: '大同县', + 140302: '城区', + 140303: '矿区', + 140311: '郊区', + 140321: '平定县', + 140322: '盂县', + 140402: '城区', + 140411: '郊区', + 140421: '长治县', + 140423: '襄垣县', + 140424: '屯留县', + 140425: '平顺县', + 140426: '黎城县', + 140427: '壶关县', + 140428: '长子县', + 140429: '武乡县', + 140430: '沁县', + 140431: '沁源县', + 140481: '潞城市', + 140502: '城区', + 140521: '沁水县', + 140522: '阳城县', + 140524: '陵川县', + 140525: '泽州县', + 140581: '高平市', + 140602: '朔城区', + 140603: '平鲁区', + 140621: '山阴县', + 140622: '应县', + 140623: '右玉县', + 140624: '怀仁县', + 140702: '榆次区', + 140721: '榆社县', + 140722: '左权县', + 140723: '和顺县', + 140724: '昔阳县', + 140725: '寿阳县', + 140726: '太谷县', + 140727: '祁县', + 140728: '平遥县', + 140729: '灵石县', + 140781: '介休市', + 140802: '盐湖区', + 140821: '临猗县', + 140822: '万荣县', + 140823: '闻喜县', + 140824: '稷山县', + 140825: '新绛县', + 140826: '绛县', + 140827: '垣曲县', + 140828: '夏县', + 140829: '平陆县', + 140830: '芮城县', + 140881: '永济市', + 140882: '河津市', + 140902: '忻府区', + 140921: '定襄县', + 140922: '五台县', + 140923: '代县', + 140924: '繁峙县', + 140925: '宁武县', + 140926: '静乐县', + 140927: '神池县', + 140928: '五寨县', + 140929: '岢岚县', + 140930: '河曲县', + 140931: '保德县', + 140932: '偏关县', + 140981: '原平市', + 141002: '尧都区', + 141021: '曲沃县', + 141022: '翼城县', + 141023: '襄汾县', + 141024: '洪洞县', + 141025: '古县', + 141026: '安泽县', + 141027: '浮山县', + 141028: '吉县', + 141029: '乡宁县', + 141030: '大宁县', + 141031: '隰县', + 141032: '永和县', + 141033: '蒲县', + 141034: '汾西县', + 141081: '侯马市', + 141082: '霍州市', + 141102: '离石区', + 141121: '文水县', + 141122: '交城县', + 141123: '兴县', + 141124: '临县', + 141125: '柳林县', + 141126: '石楼县', + 141127: '岚县', + 141128: '方山县', + 141129: '中阳县', + 141130: '交口县', + 141181: '孝义市', + 141182: '汾阳市', + 150102: '新城区', + 150103: '回民区', + 150104: '玉泉区', + 150105: '赛罕区', + 150121: '土默特左旗', + 150122: '托克托县', + 150123: '和林格尔县', + 150124: '清水河县', + 150125: '武川县', + 150202: '东河区', + 150203: '昆都仑区', + 150204: '青山区', + 150205: '石拐区', + 150206: '白云鄂博矿区', + 150207: '九原区', + 150221: '土默特右旗', + 150222: '固阳县', + 150223: '达尔罕茂明安联合旗', + 150302: '海勃湾区', + 150303: '海南区', + 150304: '乌达区', + 150402: '红山区', + 150403: '元宝山区', + 150404: '松山区', + 150421: '阿鲁科尔沁旗', + 150422: '巴林左旗', + 150423: '巴林右旗', + 150424: '林西县', + 150425: '克什克腾旗', + 150426: '翁牛特旗', + 150428: '喀喇沁旗', + 150429: '宁城县', + 150430: '敖汉旗', + 150502: '科尔沁区', + 150521: '科尔沁左翼中旗', + 150522: '科尔沁左翼后旗', + 150523: '开鲁县', + 150524: '库伦旗', + 150525: '奈曼旗', + 150526: '扎鲁特旗', + 150581: '霍林郭勒市', + 150602: '东胜区', + 150603: '康巴什区', + 150621: '达拉特旗', + 150622: '准格尔旗', + 150623: '鄂托克前旗', + 150624: '鄂托克旗', + 150625: '杭锦旗', + 150626: '乌审旗', + 150627: '伊金霍洛旗', + 150702: '海拉尔区', + 150703: '扎赉诺尔区', + 150721: '阿荣旗', + 150722: '莫力达瓦达斡尔族自治旗', + 150723: '鄂伦春自治旗', + 150724: '鄂温克族自治旗', + 150725: '陈巴尔虎旗', + 150726: '新巴尔虎左旗', + 150727: '新巴尔虎右旗', + 150781: '满洲里市', + 150782: '牙克石市', + 150783: '扎兰屯市', + 150784: '额尔古纳市', + 150785: '根河市', + 150802: '临河区', + 150821: '五原县', + 150822: '磴口县', + 150823: '乌拉特前旗', + 150824: '乌拉特中旗', + 150825: '乌拉特后旗', + 150826: '杭锦后旗', + 150902: '集宁区', + 150921: '卓资县', + 150922: '化德县', + 150923: '商都县', + 150924: '兴和县', + 150925: '凉城县', + 150926: '察哈尔右翼前旗', + 150927: '察哈尔右翼中旗', + 150928: '察哈尔右翼后旗', + 150929: '四子王旗', + 150981: '丰镇市', + 152201: '乌兰浩特市', + 152202: '阿尔山市', + 152221: '科尔沁右翼前旗', + 152222: '科尔沁右翼中旗', + 152223: '扎赉特旗', + 152224: '突泉县', + 152501: '二连浩特市', + 152502: '锡林浩特市', + 152522: '阿巴嘎旗', + 152523: '苏尼特左旗', + 152524: '苏尼特右旗', + 152525: '东乌珠穆沁旗', + 152526: '西乌珠穆沁旗', + 152527: '太仆寺旗', + 152528: '镶黄旗', + 152529: '正镶白旗', + 152530: '正蓝旗', + 152531: '多伦县', + 152921: '阿拉善左旗', + 152922: '阿拉善右旗', + 152923: '额济纳旗', + 210102: '和平区', + 210103: '沈河区', + 210104: '大东区', + 210105: '皇姑区', + 210106: '铁西区', + 210111: '苏家屯区', + 210112: '浑南区', + 210113: '沈北新区', + 210114: '于洪区', + 210115: '辽中区', + 210123: '康平县', + 210124: '法库县', + 210181: '新民市', + 210190: '经济技术开发区', + 210202: '中山区', + 210203: '西岗区', + 210204: '沙河口区', + 210211: '甘井子区', + 210212: '旅顺口区', + 210213: '金州区', + 210214: '普兰店区', + 210224: '长海县', + 210281: '瓦房店市', + 210283: '庄河市', + 210302: '铁东区', + 210303: '铁西区', + 210304: '立山区', + 210311: '千山区', + 210321: '台安县', + 210323: '岫岩满族自治县', + 210381: '海城市', + 210390: '高新区', + 210402: '新抚区', + 210403: '东洲区', + 210404: '望花区', + 210411: '顺城区', + 210421: '抚顺县', + 210422: '新宾满族自治县', + 210423: '清原满族自治县', + 210502: '平山区', + 210503: '溪湖区', + 210504: '明山区', + 210505: '南芬区', + 210521: '本溪满族自治县', + 210522: '桓仁满族自治县', + 210602: '元宝区', + 210603: '振兴区', + 210604: '振安区', + 210624: '宽甸满族自治县', + 210681: '东港市', + 210682: '凤城市', + 210702: '古塔区', + 210703: '凌河区', + 210711: '太和区', + 210726: '黑山县', + 210727: '义县', + 210781: '凌海市', + 210782: '北镇市', + 210793: '经济技术开发区', + 210802: '站前区', + 210803: '西市区', + 210804: '鲅鱼圈区', + 210811: '老边区', + 210881: '盖州市', + 210882: '大石桥市', + 210902: '海州区', + 210903: '新邱区', + 210904: '太平区', + 210905: '清河门区', + 210911: '细河区', + 210921: '阜新蒙古族自治县', + 210922: '彰武县', + 211002: '白塔区', + 211003: '文圣区', + 211004: '宏伟区', + 211005: '弓长岭区', + 211011: '太子河区', + 211021: '辽阳县', + 211081: '灯塔市', + 211102: '双台子区', + 211103: '兴隆台区', + 211104: '大洼区', + 211122: '盘山县', + 211202: '银州区', + 211204: '清河区', + 211221: '铁岭县', + 211223: '西丰县', + 211224: '昌图县', + 211281: '调兵山市', + 211282: '开原市', + 211302: '双塔区', + 211303: '龙城区', + 211321: '朝阳县', + 211322: '建平县', + 211324: '喀喇沁左翼蒙古族自治县', + 211381: '北票市', + 211382: '凌源市', + 211402: '连山区', + 211403: '龙港区', + 211404: '南票区', + 211421: '绥中县', + 211422: '建昌县', + 211481: '兴城市', + 215090: '工业园区', + 220102: '南关区', + 220103: '宽城区', + 220104: '朝阳区', + 220105: '二道区', + 220106: '绿园区', + 220112: '双阳区', + 220113: '九台区', + 220122: '农安县', + 220182: '榆树市', + 220183: '德惠市', + 220192: '经济技术开发区', + 220202: '昌邑区', + 220203: '龙潭区', + 220204: '船营区', + 220211: '丰满区', + 220221: '永吉县', + 220281: '蛟河市', + 220282: '桦甸市', + 220283: '舒兰市', + 220284: '磐石市', + 220302: '铁西区', + 220303: '铁东区', + 220322: '梨树县', + 220323: '伊通满族自治县', + 220381: '公主岭市', + 220382: '双辽市', + 220402: '龙山区', + 220403: '西安区', + 220421: '东丰县', + 220422: '东辽县', + 220502: '东昌区', + 220503: '二道江区', + 220521: '通化县', + 220523: '辉南县', + 220524: '柳河县', + 220581: '梅河口市', + 220582: '集安市', + 220602: '浑江区', + 220605: '江源区', + 220621: '抚松县', + 220622: '靖宇县', + 220623: '长白朝鲜族自治县', + 220681: '临江市', + 220702: '宁江区', + 220721: '前郭尔罗斯蒙古族自治县', + 220722: '长岭县', + 220723: '乾安县', + 220781: '扶余市', + 220802: '洮北区', + 220821: '镇赉县', + 220822: '通榆县', + 220881: '洮南市', + 220882: '大安市', + 221090: '工业园区', + 222401: '延吉市', + 222402: '图们市', + 222403: '敦化市', + 222404: '珲春市', + 222405: '龙井市', + 222406: '和龙市', + 222424: '汪清县', + 222426: '安图县', + 230102: '道里区', + 230103: '南岗区', + 230104: '道外区', + 230108: '平房区', + 230109: '松北区', + 230110: '香坊区', + 230111: '呼兰区', + 230112: '阿城区', + 230113: '双城区', + 230123: '依兰县', + 230124: '方正县', + 230125: '宾县', + 230126: '巴彦县', + 230127: '木兰县', + 230128: '通河县', + 230129: '延寿县', + 230183: '尚志市', + 230184: '五常市', + 230202: '龙沙区', + 230203: '建华区', + 230204: '铁锋区', + 230205: '昂昂溪区', + 230206: '富拉尔基区', + 230207: '碾子山区', + 230208: '梅里斯达斡尔族区', + 230221: '龙江县', + 230223: '依安县', + 230224: '泰来县', + 230225: '甘南县', + 230227: '富裕县', + 230229: '克山县', + 230230: '克东县', + 230231: '拜泉县', + 230281: '讷河市', + 230302: '鸡冠区', + 230303: '恒山区', + 230304: '滴道区', + 230305: '梨树区', + 230306: '城子河区', + 230307: '麻山区', + 230321: '鸡东县', + 230381: '虎林市', + 230382: '密山市', + 230402: '向阳区', + 230403: '工农区', + 230404: '南山区', + 230405: '兴安区', + 230406: '东山区', + 230407: '兴山区', + 230421: '萝北县', + 230422: '绥滨县', + 230502: '尖山区', + 230503: '岭东区', + 230505: '四方台区', + 230506: '宝山区', + 230521: '集贤县', + 230522: '友谊县', + 230523: '宝清县', + 230524: '饶河县', + 230602: '萨尔图区', + 230603: '龙凤区', + 230604: '让胡路区', + 230605: '红岗区', + 230606: '大同区', + 230621: '肇州县', + 230622: '肇源县', + 230623: '林甸县', + 230624: '杜尔伯特蒙古族自治县', + 230702: '伊春区', + 230703: '南岔区', + 230704: '友好区', + 230705: '西林区', + 230706: '翠峦区', + 230707: '新青区', + 230708: '美溪区', + 230709: '金山屯区', + 230710: '五营区', + 230711: '乌马河区', + 230712: '汤旺河区', + 230713: '带岭区', + 230714: '乌伊岭区', + 230715: '红星区', + 230716: '上甘岭区', + 230722: '嘉荫县', + 230781: '铁力市', + 230803: '向阳区', + 230804: '前进区', + 230805: '东风区', + 230811: '郊区', + 230822: '桦南县', + 230826: '桦川县', + 230828: '汤原县', + 230881: '同江市', + 230882: '富锦市', + 230883: '抚远市', + 230902: '新兴区', + 230903: '桃山区', + 230904: '茄子河区', + 230921: '勃利县', + 231002: '东安区', + 231003: '阳明区', + 231004: '爱民区', + 231005: '西安区', + 231025: '林口县', + 231081: '绥芬河市', + 231083: '海林市', + 231084: '宁安市', + 231085: '穆棱市', + 231086: '东宁市', + 231102: '爱辉区', + 231121: '嫩江县', + 231123: '逊克县', + 231124: '孙吴县', + 231181: '北安市', + 231182: '五大连池市', + 231202: '北林区', + 231221: '望奎县', + 231222: '兰西县', + 231223: '青冈县', + 231224: '庆安县', + 231225: '明水县', + 231226: '绥棱县', + 231281: '安达市', + 231282: '肇东市', + 231283: '海伦市', + 232721: '呼玛县', + 232722: '塔河县', + 232723: '漠河县', + 232790: '松岭区', + 232791: '呼中区', + 232792: '加格达奇区', + 232793: '新林区', + 310101: '黄浦区', + 310104: '徐汇区', + 310105: '长宁区', + 310106: '静安区', + 310107: '普陀区', + 310109: '虹口区', + 310110: '杨浦区', + 310112: '闵行区', + 310113: '宝山区', + 310114: '嘉定区', + 310115: '浦东新区', + 310116: '金山区', + 310117: '松江区', + 310118: '青浦区', + 310120: '奉贤区', + 310151: '崇明区', + 320102: '玄武区', + 320104: '秦淮区', + 320105: '建邺区', + 320106: '鼓楼区', + 320111: '浦口区', + 320113: '栖霞区', + 320114: '雨花台区', + 320115: '江宁区', + 320116: '六合区', + 320117: '溧水区', + 320118: '高淳区', + 320205: '锡山区', + 320206: '惠山区', + 320211: '滨湖区', + 320213: '梁溪区', + 320214: '新吴区', + 320281: '江阴市', + 320282: '宜兴市', + 320302: '鼓楼区', + 320303: '云龙区', + 320305: '贾汪区', + 320311: '泉山区', + 320312: '铜山区', + 320321: '丰县', + 320322: '沛县', + 320324: '睢宁县', + 320381: '新沂市', + 320382: '邳州市', + 320391: '工业园区', + 320402: '天宁区', + 320404: '钟楼区', + 320411: '新北区', + 320412: '武进区', + 320413: '金坛区', + 320481: '溧阳市', + 320505: '虎丘区', + 320506: '吴中区', + 320507: '相城区', + 320508: '姑苏区', + 320509: '吴江区', + 320581: '常熟市', + 320582: '张家港市', + 320583: '昆山市', + 320585: '太仓市', + 320590: '工业园区', + 320591: '高新区', + 320602: '崇川区', + 320611: '港闸区', + 320612: '通州区', + 320621: '海安县', + 320623: '如东县', + 320681: '启东市', + 320682: '如皋市', + 320684: '海门市', + 320691: '高新区', + 320703: '连云区', + 320706: '海州区', + 320707: '赣榆区', + 320722: '东海县', + 320723: '灌云县', + 320724: '灌南县', + 320803: '淮安区', + 320804: '淮阴区', + 320812: '清江浦区', + 320813: '洪泽区', + 320826: '涟水县', + 320830: '盱眙县', + 320831: '金湖县', + 320890: '经济开发区', + 320902: '亭湖区', + 320903: '盐都区', + 320904: '大丰区', + 320921: '响水县', + 320922: '滨海县', + 320923: '阜宁县', + 320924: '射阳县', + 320925: '建湖县', + 320981: '东台市', + 321002: '广陵区', + 321003: '邗江区', + 321012: '江都区', + 321023: '宝应县', + 321081: '仪征市', + 321084: '高邮市', + 321090: '经济开发区', + 321102: '京口区', + 321111: '润州区', + 321112: '丹徒区', + 321181: '丹阳市', + 321182: '扬中市', + 321183: '句容市', + 321202: '海陵区', + 321203: '高港区', + 321204: '姜堰区', + 321281: '兴化市', + 321282: '靖江市', + 321283: '泰兴市', + 321302: '宿城区', + 321311: '宿豫区', + 321322: '沭阳县', + 321323: '泗阳县', + 321324: '泗洪县', + 330102: '上城区', + 330103: '下城区', + 330104: '江干区', + 330105: '拱墅区', + 330106: '西湖区', + 330108: '滨江区', + 330109: '萧山区', + 330110: '余杭区', + 330111: '富阳区', + 330112: '临安区', + 330122: '桐庐县', + 330127: '淳安县', + 330182: '建德市', + 330203: '海曙区', + 330205: '江北区', + 330206: '北仑区', + 330211: '镇海区', + 330212: '鄞州区', + 330213: '奉化区', + 330225: '象山县', + 330226: '宁海县', + 330281: '余姚市', + 330282: '慈溪市', + 330302: '鹿城区', + 330303: '龙湾区', + 330304: '瓯海区', + 330305: '洞头区', + 330324: '永嘉县', + 330326: '平阳县', + 330327: '苍南县', + 330328: '文成县', + 330329: '泰顺县', + 330381: '瑞安市', + 330382: '乐清市', + 330402: '南湖区', + 330411: '秀洲区', + 330421: '嘉善县', + 330424: '海盐县', + 330481: '海宁市', + 330482: '平湖市', + 330483: '桐乡市', + 330502: '吴兴区', + 330503: '南浔区', + 330521: '德清县', + 330522: '长兴县', + 330523: '安吉县', + 330602: '越城区', + 330603: '柯桥区', + 330604: '上虞区', + 330624: '新昌县', + 330681: '诸暨市', + 330683: '嵊州市', + 330702: '婺城区', + 330703: '金东区', + 330723: '武义县', + 330726: '浦江县', + 330727: '磐安县', + 330781: '兰溪市', + 330782: '义乌市', + 330783: '东阳市', + 330784: '永康市', + 330802: '柯城区', + 330803: '衢江区', + 330822: '常山县', + 330824: '开化县', + 330825: '龙游县', + 330881: '江山市', + 330902: '定海区', + 330903: '普陀区', + 330921: '岱山县', + 330922: '嵊泗县', + 331002: '椒江区', + 331003: '黄岩区', + 331004: '路桥区', + 331022: '三门县', + 331023: '天台县', + 331024: '仙居县', + 331081: '温岭市', + 331082: '临海市', + 331083: '玉环市', + 331102: '莲都区', + 331121: '青田县', + 331122: '缙云县', + 331123: '遂昌县', + 331124: '松阳县', + 331125: '云和县', + 331126: '庆元县', + 331127: '景宁畲族自治县', + 331181: '龙泉市', + 340102: '瑶海区', + 340103: '庐阳区', + 340104: '蜀山区', + 340111: '包河区', + 340121: '长丰县', + 340122: '肥东县', + 340123: '肥西县', + 340124: '庐江县', + 340181: '巢湖市', + 340190: '高新技术开发区', + 340191: '经济技术开发区', + 340202: '镜湖区', + 340203: '弋江区', + 340207: '鸠江区', + 340208: '三山区', + 340221: '芜湖县', + 340222: '繁昌县', + 340223: '南陵县', + 340225: '无为县', + 340302: '龙子湖区', + 340303: '蚌山区', + 340304: '禹会区', + 340311: '淮上区', + 340321: '怀远县', + 340322: '五河县', + 340323: '固镇县', + 340402: '大通区', + 340403: '田家庵区', + 340404: '谢家集区', + 340405: '八公山区', + 340406: '潘集区', + 340421: '凤台县', + 340422: '寿县', + 340503: '花山区', + 340504: '雨山区', + 340506: '博望区', + 340521: '当涂县', + 340522: '含山县', + 340523: '和县', + 340602: '杜集区', + 340603: '相山区', + 340604: '烈山区', + 340621: '濉溪县', + 340705: '铜官区', + 340706: '义安区', + 340711: '郊区', + 340722: '枞阳县', + 340802: '迎江区', + 340803: '大观区', + 340811: '宜秀区', + 340822: '怀宁县', + 340824: '潜山县', + 340825: '太湖县', + 340826: '宿松县', + 340827: '望江县', + 340828: '岳西县', + 340881: '桐城市', + 341002: '屯溪区', + 341003: '黄山区', + 341004: '徽州区', + 341021: '歙县', + 341022: '休宁县', + 341023: '黟县', + 341024: '祁门县', + 341102: '琅琊区', + 341103: '南谯区', + 341122: '来安县', + 341124: '全椒县', + 341125: '定远县', + 341126: '凤阳县', + 341181: '天长市', + 341182: '明光市', + 341202: '颍州区', + 341203: '颍东区', + 341204: '颍泉区', + 341221: '临泉县', + 341222: '太和县', + 341225: '阜南县', + 341226: '颍上县', + 341282: '界首市', + 341302: '埇桥区', + 341321: '砀山县', + 341322: '萧县', + 341323: '灵璧县', + 341324: '泗县', + 341390: '经济开发区', + 341502: '金安区', + 341503: '裕安区', + 341504: '叶集区', + 341522: '霍邱县', + 341523: '舒城县', + 341524: '金寨县', + 341525: '霍山县', + 341602: '谯城区', + 341621: '涡阳县', + 341622: '蒙城县', + 341623: '利辛县', + 341702: '贵池区', + 341721: '东至县', + 341722: '石台县', + 341723: '青阳县', + 341802: '宣州区', + 341821: '郎溪县', + 341822: '广德县', + 341823: '泾县', + 341824: '绩溪县', + 341825: '旌德县', + 341881: '宁国市', + 350102: '鼓楼区', + 350103: '台江区', + 350104: '仓山区', + 350105: '马尾区', + 350111: '晋安区', + 350112: '长乐区', + 350121: '闽侯县', + 350122: '连江县', + 350123: '罗源县', + 350124: '闽清县', + 350125: '永泰县', + 350128: '平潭县', + 350181: '福清市', + 350203: '思明区', + 350205: '海沧区', + 350206: '湖里区', + 350211: '集美区', + 350212: '同安区', + 350213: '翔安区', + 350302: '城厢区', + 350303: '涵江区', + 350304: '荔城区', + 350305: '秀屿区', + 350322: '仙游县', + 350402: '梅列区', + 350403: '三元区', + 350421: '明溪县', + 350423: '清流县', + 350424: '宁化县', + 350425: '大田县', + 350426: '尤溪县', + 350427: '沙县', + 350428: '将乐县', + 350429: '泰宁县', + 350430: '建宁县', + 350481: '永安市', + 350502: '鲤城区', + 350503: '丰泽区', + 350504: '洛江区', + 350505: '泉港区', + 350521: '惠安县', + 350524: '安溪县', + 350525: '永春县', + 350526: '德化县', + 350527: '金门县', + 350581: '石狮市', + 350582: '晋江市', + 350583: '南安市', + 350602: '芗城区', + 350603: '龙文区', + 350622: '云霄县', + 350623: '漳浦县', + 350624: '诏安县', + 350625: '长泰县', + 350626: '东山县', + 350627: '南靖县', + 350628: '平和县', + 350629: '华安县', + 350681: '龙海市', + 350702: '延平区', + 350703: '建阳区', + 350721: '顺昌县', + 350722: '浦城县', + 350723: '光泽县', + 350724: '松溪县', + 350725: '政和县', + 350781: '邵武市', + 350782: '武夷山市', + 350783: '建瓯市', + 350802: '新罗区', + 350803: '永定区', + 350821: '长汀县', + 350823: '上杭县', + 350824: '武平县', + 350825: '连城县', + 350881: '漳平市', + 350902: '蕉城区', + 350921: '霞浦县', + 350922: '古田县', + 350923: '屏南县', + 350924: '寿宁县', + 350925: '周宁县', + 350926: '柘荣县', + 350981: '福安市', + 350982: '福鼎市', + 360102: '东湖区', + 360103: '西湖区', + 360104: '青云谱区', + 360105: '湾里区', + 360111: '青山湖区', + 360112: '新建区', + 360121: '南昌县', + 360123: '安义县', + 360124: '进贤县', + 360190: '经济技术开发区', + 360192: '高新区', + 360202: '昌江区', + 360203: '珠山区', + 360222: '浮梁县', + 360281: '乐平市', + 360302: '安源区', + 360313: '湘东区', + 360321: '莲花县', + 360322: '上栗县', + 360323: '芦溪县', + 360402: '濂溪区', + 360403: '浔阳区', + 360404: '柴桑区', + 360423: '武宁县', + 360424: '修水县', + 360425: '永修县', + 360426: '德安县', + 360428: '都昌县', + 360429: '湖口县', + 360430: '彭泽县', + 360481: '瑞昌市', + 360482: '共青城市', + 360483: '庐山市', + 360490: '经济技术开发区', + 360502: '渝水区', + 360521: '分宜县', + 360602: '月湖区', + 360622: '余江县', + 360681: '贵溪市', + 360702: '章贡区', + 360703: '南康区', + 360704: '赣县区', + 360722: '信丰县', + 360723: '大余县', + 360724: '上犹县', + 360725: '崇义县', + 360726: '安远县', + 360727: '龙南县', + 360728: '定南县', + 360729: '全南县', + 360730: '宁都县', + 360731: '于都县', + 360732: '兴国县', + 360733: '会昌县', + 360734: '寻乌县', + 360735: '石城县', + 360781: '瑞金市', + 360802: '吉州区', + 360803: '青原区', + 360821: '吉安县', + 360822: '吉水县', + 360823: '峡江县', + 360824: '新干县', + 360825: '永丰县', + 360826: '泰和县', + 360827: '遂川县', + 360828: '万安县', + 360829: '安福县', + 360830: '永新县', + 360881: '井冈山市', + 360902: '袁州区', + 360921: '奉新县', + 360922: '万载县', + 360923: '上高县', + 360924: '宜丰县', + 360925: '靖安县', + 360926: '铜鼓县', + 360981: '丰城市', + 360982: '樟树市', + 360983: '高安市', + 361002: '临川区', + 361003: '东乡区', + 361021: '南城县', + 361022: '黎川县', + 361023: '南丰县', + 361024: '崇仁县', + 361025: '乐安县', + 361026: '宜黄县', + 361027: '金溪县', + 361028: '资溪县', + 361030: '广昌县', + 361102: '信州区', + 361103: '广丰区', + 361121: '上饶县', + 361123: '玉山县', + 361124: '铅山县', + 361125: '横峰县', + 361126: '弋阳县', + 361127: '余干县', + 361128: '鄱阳县', + 361129: '万年县', + 361130: '婺源县', + 361181: '德兴市', + 370102: '历下区', + 370103: '市中区', + 370104: '槐荫区', + 370105: '天桥区', + 370112: '历城区', + 370113: '长清区', + 370114: '章丘区', + 370124: '平阴县', + 370125: '济阳县', + 370126: '商河县', + 370190: '高新区', + 370202: '市南区', + 370203: '市北区', + 370211: '黄岛区', + 370212: '崂山区', + 370213: '李沧区', + 370214: '城阳区', + 370215: '即墨区', + 370281: '胶州市', + 370283: '平度市', + 370285: '莱西市', + 370290: '开发区', + 370302: '淄川区', + 370303: '张店区', + 370304: '博山区', + 370305: '临淄区', + 370306: '周村区', + 370321: '桓台县', + 370322: '高青县', + 370323: '沂源县', + 370402: '市中区', + 370403: '薛城区', + 370404: '峄城区', + 370405: '台儿庄区', + 370406: '山亭区', + 370481: '滕州市', + 370502: '东营区', + 370503: '河口区', + 370505: '垦利区', + 370522: '利津县', + 370523: '广饶县', + 370602: '芝罘区', + 370611: '福山区', + 370612: '牟平区', + 370613: '莱山区', + 370634: '长岛县', + 370681: '龙口市', + 370682: '莱阳市', + 370683: '莱州市', + 370684: '蓬莱市', + 370685: '招远市', + 370686: '栖霞市', + 370687: '海阳市', + 370690: '开发区', + 370702: '潍城区', + 370703: '寒亭区', + 370704: '坊子区', + 370705: '奎文区', + 370724: '临朐县', + 370725: '昌乐县', + 370781: '青州市', + 370782: '诸城市', + 370783: '寿光市', + 370784: '安丘市', + 370785: '高密市', + 370786: '昌邑市', + 370790: '开发区', + 370791: '高新区', + 370811: '任城区', + 370812: '兖州区', + 370826: '微山县', + 370827: '鱼台县', + 370828: '金乡县', + 370829: '嘉祥县', + 370830: '汶上县', + 370831: '泗水县', + 370832: '梁山县', + 370881: '曲阜市', + 370883: '邹城市', + 370890: '高新区', + 370902: '泰山区', + 370911: '岱岳区', + 370921: '宁阳县', + 370923: '东平县', + 370982: '新泰市', + 370983: '肥城市', + 371002: '环翠区', + 371003: '文登区', + 371082: '荣成市', + 371083: '乳山市', + 371091: '经济技术开发区', + 371102: '东港区', + 371103: '岚山区', + 371121: '五莲县', + 371122: '莒县', + 371202: '莱城区', + 371203: '钢城区', + 371302: '兰山区', + 371311: '罗庄区', + 371312: '河东区', + 371321: '沂南县', + 371322: '郯城县', + 371323: '沂水县', + 371324: '兰陵县', + 371325: '费县', + 371326: '平邑县', + 371327: '莒南县', + 371328: '蒙阴县', + 371329: '临沭县', + 371402: '德城区', + 371403: '陵城区', + 371422: '宁津县', + 371423: '庆云县', + 371424: '临邑县', + 371425: '齐河县', + 371426: '平原县', + 371427: '夏津县', + 371428: '武城县', + 371481: '乐陵市', + 371482: '禹城市', + 371502: '东昌府区', + 371521: '阳谷县', + 371522: '莘县', + 371523: '茌平县', + 371524: '东阿县', + 371525: '冠县', + 371526: '高唐县', + 371581: '临清市', + 371602: '滨城区', + 371603: '沾化区', + 371621: '惠民县', + 371622: '阳信县', + 371623: '无棣县', + 371625: '博兴县', + 371626: '邹平县', + 371702: '牡丹区', + 371703: '定陶区', + 371721: '曹县', + 371722: '单县', + 371723: '成武县', + 371724: '巨野县', + 371725: '郓城县', + 371726: '鄄城县', + 371728: '东明县', + 410102: '中原区', + 410103: '二七区', + 410104: '管城回族区', + 410105: '金水区', + 410106: '上街区', + 410108: '惠济区', + 410122: '中牟县', + 410181: '巩义市', + 410182: '荥阳市', + 410183: '新密市', + 410184: '新郑市', + 410185: '登封市', + 410190: '高新技术开发区', + 410191: '经济技术开发区', + 410202: '龙亭区', + 410203: '顺河回族区', + 410204: '鼓楼区', + 410205: '禹王台区', + 410212: '祥符区', + 410221: '杞县', + 410222: '通许县', + 410223: '尉氏县', + 410225: '兰考县', + 410302: '老城区', + 410303: '西工区', + 410304: '瀍河回族区', + 410305: '涧西区', + 410306: '吉利区', + 410311: '洛龙区', + 410322: '孟津县', + 410323: '新安县', + 410324: '栾川县', + 410325: '嵩县', + 410326: '汝阳县', + 410327: '宜阳县', + 410328: '洛宁县', + 410329: '伊川县', + 410381: '偃师市', + 410402: '新华区', + 410403: '卫东区', + 410404: '石龙区', + 410411: '湛河区', + 410421: '宝丰县', + 410422: '叶县', + 410423: '鲁山县', + 410425: '郏县', + 410481: '舞钢市', + 410482: '汝州市', + 410502: '文峰区', + 410503: '北关区', + 410505: '殷都区', + 410506: '龙安区', + 410522: '安阳县', + 410523: '汤阴县', + 410526: '滑县', + 410527: '内黄县', + 410581: '林州市', + 410590: '开发区', + 410602: '鹤山区', + 410603: '山城区', + 410611: '淇滨区', + 410621: '浚县', + 410622: '淇县', + 410702: '红旗区', + 410703: '卫滨区', + 410704: '凤泉区', + 410711: '牧野区', + 410721: '新乡县', + 410724: '获嘉县', + 410725: '原阳县', + 410726: '延津县', + 410727: '封丘县', + 410728: '长垣县', + 410781: '卫辉市', + 410782: '辉县市', + 410802: '解放区', + 410803: '中站区', + 410804: '马村区', + 410811: '山阳区', + 410821: '修武县', + 410822: '博爱县', + 410823: '武陟县', + 410825: '温县', + 410882: '沁阳市', + 410883: '孟州市', + 410902: '华龙区', + 410922: '清丰县', + 410923: '南乐县', + 410926: '范县', + 410927: '台前县', + 410928: '濮阳县', + 411002: '魏都区', + 411003: '建安区', + 411024: '鄢陵县', + 411025: '襄城县', + 411081: '禹州市', + 411082: '长葛市', + 411102: '源汇区', + 411103: '郾城区', + 411104: '召陵区', + 411121: '舞阳县', + 411122: '临颍县', + 411202: '湖滨区', + 411203: '陕州区', + 411221: '渑池县', + 411224: '卢氏县', + 411281: '义马市', + 411282: '灵宝市', + 411302: '宛城区', + 411303: '卧龙区', + 411321: '南召县', + 411322: '方城县', + 411323: '西峡县', + 411324: '镇平县', + 411325: '内乡县', + 411326: '淅川县', + 411327: '社旗县', + 411328: '唐河县', + 411329: '新野县', + 411330: '桐柏县', + 411381: '邓州市', + 411402: '梁园区', + 411403: '睢阳区', + 411421: '民权县', + 411422: '睢县', + 411423: '宁陵县', + 411424: '柘城县', + 411425: '虞城县', + 411426: '夏邑县', + 411481: '永城市', + 411502: '浉河区', + 411503: '平桥区', + 411521: '罗山县', + 411522: '光山县', + 411523: '新县', + 411524: '商城县', + 411525: '固始县', + 411526: '潢川县', + 411527: '淮滨县', + 411528: '息县', + 411602: '川汇区', + 411621: '扶沟县', + 411622: '西华县', + 411623: '商水县', + 411624: '沈丘县', + 411625: '郸城县', + 411626: '淮阳县', + 411627: '太康县', + 411628: '鹿邑县', + 411681: '项城市', + 411690: '经济开发区', + 411702: '驿城区', + 411721: '西平县', + 411722: '上蔡县', + 411723: '平舆县', + 411724: '正阳县', + 411725: '确山县', + 411726: '泌阳县', + 411727: '汝南县', + 411728: '遂平县', + 411729: '新蔡县', + 419001: '济源市', + 420102: '江岸区', + 420103: '江汉区', + 420104: '硚口区', + 420105: '汉阳区', + 420106: '武昌区', + 420107: '青山区', + 420111: '洪山区', + 420112: '东西湖区', + 420113: '汉南区', + 420114: '蔡甸区', + 420115: '江夏区', + 420116: '黄陂区', + 420117: '新洲区', + 420202: '黄石港区', + 420203: '西塞山区', + 420204: '下陆区', + 420205: '铁山区', + 420222: '阳新县', + 420281: '大冶市', + 420302: '茅箭区', + 420303: '张湾区', + 420304: '郧阳区', + 420322: '郧西县', + 420323: '竹山县', + 420324: '竹溪县', + 420325: '房县', + 420381: '丹江口市', + 420502: '西陵区', + 420503: '伍家岗区', + 420504: '点军区', + 420505: '猇亭区', + 420506: '夷陵区', + 420525: '远安县', + 420526: '兴山县', + 420527: '秭归县', + 420528: '长阳土家族自治县', + 420529: '五峰土家族自治县', + 420581: '宜都市', + 420582: '当阳市', + 420583: '枝江市', + 420590: '经济开发区', + 420602: '襄城区', + 420606: '樊城区', + 420607: '襄州区', + 420624: '南漳县', + 420625: '谷城县', + 420626: '保康县', + 420682: '老河口市', + 420683: '枣阳市', + 420684: '宜城市', + 420702: '梁子湖区', + 420703: '华容区', + 420704: '鄂城区', + 420802: '东宝区', + 420804: '掇刀区', + 420821: '京山县', + 420822: '沙洋县', + 420881: '钟祥市', + 420902: '孝南区', + 420921: '孝昌县', + 420922: '大悟县', + 420923: '云梦县', + 420981: '应城市', + 420982: '安陆市', + 420984: '汉川市', + 421002: '沙市区', + 421003: '荆州区', + 421022: '公安县', + 421023: '监利县', + 421024: '江陵县', + 421081: '石首市', + 421083: '洪湖市', + 421087: '松滋市', + 421102: '黄州区', + 421121: '团风县', + 421122: '红安县', + 421123: '罗田县', + 421124: '英山县', + 421125: '浠水县', + 421126: '蕲春县', + 421127: '黄梅县', + 421181: '麻城市', + 421182: '武穴市', + 421202: '咸安区', + 421221: '嘉鱼县', + 421222: '通城县', + 421223: '崇阳县', + 421224: '通山县', + 421281: '赤壁市', + 421303: '曾都区', + 421321: '随县', + 421381: '广水市', + 422801: '恩施市', + 422802: '利川市', + 422822: '建始县', + 422823: '巴东县', + 422825: '宣恩县', + 422826: '咸丰县', + 422827: '来凤县', + 422828: '鹤峰县', + 429004: '仙桃市', + 429005: '潜江市', + 429006: '天门市', + 429021: '神农架林区', + 430102: '芙蓉区', + 430103: '天心区', + 430104: '岳麓区', + 430105: '开福区', + 430111: '雨花区', + 430112: '望城区', + 430121: '长沙县', + 430181: '浏阳市', + 430182: '宁乡市', + 430202: '荷塘区', + 430203: '芦淞区', + 430204: '石峰区', + 430211: '天元区', + 430221: '株洲县', + 430223: '攸县', + 430224: '茶陵县', + 430225: '炎陵县', + 430281: '醴陵市', + 430302: '雨湖区', + 430304: '岳塘区', + 430321: '湘潭县', + 430381: '湘乡市', + 430382: '韶山市', + 430405: '珠晖区', + 430406: '雁峰区', + 430407: '石鼓区', + 430408: '蒸湘区', + 430412: '南岳区', + 430421: '衡阳县', + 430422: '衡南县', + 430423: '衡山县', + 430424: '衡东县', + 430426: '祁东县', + 430481: '耒阳市', + 430482: '常宁市', + 430502: '双清区', + 430503: '大祥区', + 430511: '北塔区', + 430521: '邵东县', + 430522: '新邵县', + 430523: '邵阳县', + 430524: '隆回县', + 430525: '洞口县', + 430527: '绥宁县', + 430528: '新宁县', + 430529: '城步苗族自治县', + 430581: '武冈市', + 430602: '岳阳楼区', + 430603: '云溪区', + 430611: '君山区', + 430621: '岳阳县', + 430623: '华容县', + 430624: '湘阴县', + 430626: '平江县', + 430681: '汨罗市', + 430682: '临湘市', + 430702: '武陵区', + 430703: '鼎城区', + 430721: '安乡县', + 430722: '汉寿县', + 430723: '澧县', + 430724: '临澧县', + 430725: '桃源县', + 430726: '石门县', + 430781: '津市市', + 430802: '永定区', + 430811: '武陵源区', + 430821: '慈利县', + 430822: '桑植县', + 430902: '资阳区', + 430903: '赫山区', + 430921: '南县', + 430922: '桃江县', + 430923: '安化县', + 430981: '沅江市', + 431002: '北湖区', + 431003: '苏仙区', + 431021: '桂阳县', + 431022: '宜章县', + 431023: '永兴县', + 431024: '嘉禾县', + 431025: '临武县', + 431026: '汝城县', + 431027: '桂东县', + 431028: '安仁县', + 431081: '资兴市', + 431102: '零陵区', + 431103: '冷水滩区', + 431121: '祁阳县', + 431122: '东安县', + 431123: '双牌县', + 431124: '道县', + 431125: '江永县', + 431126: '宁远县', + 431127: '蓝山县', + 431128: '新田县', + 431129: '江华瑶族自治县', + 431202: '鹤城区', + 431221: '中方县', + 431222: '沅陵县', + 431223: '辰溪县', + 431224: '溆浦县', + 431225: '会同县', + 431226: '麻阳苗族自治县', + 431227: '新晃侗族自治县', + 431228: '芷江侗族自治县', + 431229: '靖州苗族侗族自治县', + 431230: '通道侗族自治县', + 431281: '洪江市', + 431302: '娄星区', + 431321: '双峰县', + 431322: '新化县', + 431381: '冷水江市', + 431382: '涟源市', + 433101: '吉首市', + 433122: '泸溪县', + 433123: '凤凰县', + 433124: '花垣县', + 433125: '保靖县', + 433126: '古丈县', + 433127: '永顺县', + 433130: '龙山县', + 440103: '荔湾区', + 440104: '越秀区', + 440105: '海珠区', + 440106: '天河区', + 440111: '白云区', + 440112: '黄埔区', + 440113: '番禺区', + 440114: '花都区', + 440115: '南沙区', + 440117: '从化区', + 440118: '增城区', + 440203: '武江区', + 440204: '浈江区', + 440205: '曲江区', + 440222: '始兴县', + 440224: '仁化县', + 440229: '翁源县', + 440232: '乳源瑶族自治县', + 440233: '新丰县', + 440281: '乐昌市', + 440282: '南雄市', + 440303: '罗湖区', + 440304: '福田区', + 440305: '南山区', + 440306: '宝安区', + 440307: '龙岗区', + 440308: '盐田区', + 440309: '龙华区', + 440310: '坪山区', + 440402: '香洲区', + 440403: '斗门区', + 440404: '金湾区', + 440507: '龙湖区', + 440511: '金平区', + 440512: '濠江区', + 440513: '潮阳区', + 440514: '潮南区', + 440515: '澄海区', + 440523: '南澳县', + 440604: '禅城区', + 440605: '南海区', + 440606: '顺德区', + 440607: '三水区', + 440608: '高明区', + 440703: '蓬江区', + 440704: '江海区', + 440705: '新会区', + 440781: '台山市', + 440783: '开平市', + 440784: '鹤山市', + 440785: '恩平市', + 440802: '赤坎区', + 440803: '霞山区', + 440804: '坡头区', + 440811: '麻章区', + 440823: '遂溪县', + 440825: '徐闻县', + 440881: '廉江市', + 440882: '雷州市', + 440883: '吴川市', + 440890: '经济技术开发区', + 440902: '茂南区', + 440904: '电白区', + 440981: '高州市', + 440982: '化州市', + 440983: '信宜市', + 441202: '端州区', + 441203: '鼎湖区', + 441204: '高要区', + 441223: '广宁县', + 441224: '怀集县', + 441225: '封开县', + 441226: '德庆县', + 441284: '四会市', + 441302: '惠城区', + 441303: '惠阳区', + 441322: '博罗县', + 441323: '惠东县', + 441324: '龙门县', + 441402: '梅江区', + 441403: '梅县区', + 441422: '大埔县', + 441423: '丰顺县', + 441424: '五华县', + 441426: '平远县', + 441427: '蕉岭县', + 441481: '兴宁市', + 441502: '城区', + 441521: '海丰县', + 441523: '陆河县', + 441581: '陆丰市', + 441602: '源城区', + 441621: '紫金县', + 441622: '龙川县', + 441623: '连平县', + 441624: '和平县', + 441625: '东源县', + 441702: '江城区', + 441704: '阳东区', + 441721: '阳西县', + 441781: '阳春市', + 441802: '清城区', + 441803: '清新区', + 441821: '佛冈县', + 441823: '阳山县', + 441825: '连山壮族瑶族自治县', + 441826: '连南瑶族自治县', + 441881: '英德市', + 441882: '连州市', + 441901: '中堂镇', + 441903: '南城区', + 441904: '长安镇', + 441905: '东坑镇', + 441906: '樟木头镇', + 441907: '莞城区', + 441908: '石龙镇', + 441909: '桥头镇', + 441910: '万江区', + 441911: '麻涌镇', + 441912: '虎门镇', + 441913: '谢岗镇', + 441914: '石碣镇', + 441915: '茶山镇', + 441916: '东城区', + 441917: '洪梅镇', + 441918: '道滘镇', + 441919: '高埗镇', + 441920: '企石镇', + 441921: '凤岗镇', + 441922: '大岭山镇', + 441923: '松山湖', + 441924: '清溪镇', + 441925: '望牛墩镇', + 441926: '厚街镇', + 441927: '常平镇', + 441928: '寮步镇', + 441929: '石排镇', + 441930: '横沥镇', + 441931: '塘厦镇', + 441932: '黄江镇', + 441933: '大朗镇', + 441990: '沙田镇', + 442001: '南头镇', + 442002: '神湾镇', + 442003: '东凤镇', + 442004: '五桂山镇', + 442005: '黄圃镇', + 442006: '小榄镇', + 442007: '石岐区街道', + 442008: '横栏镇', + 442009: '三角镇', + 442010: '三乡镇', + 442011: '港口镇', + 442012: '沙溪镇', + 442013: '板芙镇', + 442014: '沙朗镇', + 442015: '东升镇', + 442016: '阜沙镇', + 442017: '民众镇', + 442018: '东区街道', + 442019: '火炬开发区', + 442020: '西区街道', + 442021: '南区街道', + 442022: '古镇', + 442023: '坦洲镇', + 442024: '大涌镇', + 442025: '南朗镇', + 445102: '湘桥区', + 445103: '潮安区', + 445122: '饶平县', + 445202: '榕城区', + 445203: '揭东区', + 445222: '揭西县', + 445224: '惠来县', + 445281: '普宁市', + 445302: '云城区', + 445303: '云安区', + 445321: '新兴县', + 445322: '郁南县', + 445381: '罗定市', + 450102: '兴宁区', + 450103: '青秀区', + 450105: '江南区', + 450107: '西乡塘区', + 450108: '良庆区', + 450109: '邕宁区', + 450110: '武鸣区', + 450123: '隆安县', + 450124: '马山县', + 450125: '上林县', + 450126: '宾阳县', + 450127: '横县', + 450202: '城中区', + 450203: '鱼峰区', + 450204: '柳南区', + 450205: '柳北区', + 450206: '柳江区', + 450222: '柳城县', + 450223: '鹿寨县', + 450224: '融安县', + 450225: '融水苗族自治县', + 450226: '三江侗族自治县', + 450302: '秀峰区', + 450303: '叠彩区', + 450304: '象山区', + 450305: '七星区', + 450311: '雁山区', + 450312: '临桂区', + 450321: '阳朔县', + 450323: '灵川县', + 450324: '全州县', + 450325: '兴安县', + 450326: '永福县', + 450327: '灌阳县', + 450328: '龙胜各族自治县', + 450329: '资源县', + 450330: '平乐县', + 450331: '荔浦县', + 450332: '恭城瑶族自治县', + 450403: '万秀区', + 450405: '长洲区', + 450406: '龙圩区', + 450421: '苍梧县', + 450422: '藤县', + 450423: '蒙山县', + 450481: '岑溪市', + 450502: '海城区', + 450503: '银海区', + 450512: '铁山港区', + 450521: '合浦县', + 450602: '港口区', + 450603: '防城区', + 450621: '上思县', + 450681: '东兴市', + 450702: '钦南区', + 450703: '钦北区', + 450721: '灵山县', + 450722: '浦北县', + 450802: '港北区', + 450803: '港南区', + 450804: '覃塘区', + 450821: '平南县', + 450881: '桂平市', + 450902: '玉州区', + 450903: '福绵区', + 450921: '容县', + 450922: '陆川县', + 450923: '博白县', + 450924: '兴业县', + 450981: '北流市', + 451002: '右江区', + 451021: '田阳县', + 451022: '田东县', + 451023: '平果县', + 451024: '德保县', + 451026: '那坡县', + 451027: '凌云县', + 451028: '乐业县', + 451029: '田林县', + 451030: '西林县', + 451031: '隆林各族自治县', + 451081: '靖西市', + 451102: '八步区', + 451103: '平桂区', + 451121: '昭平县', + 451122: '钟山县', + 451123: '富川瑶族自治县', + 451202: '金城江区', + 451203: '宜州区', + 451221: '南丹县', + 451222: '天峨县', + 451223: '凤山县', + 451224: '东兰县', + 451225: '罗城仫佬族自治县', + 451226: '环江毛南族自治县', + 451227: '巴马瑶族自治县', + 451228: '都安瑶族自治县', + 451229: '大化瑶族自治县', + 451302: '兴宾区', + 451321: '忻城县', + 451322: '象州县', + 451323: '武宣县', + 451324: '金秀瑶族自治县', + 451381: '合山市', + 451402: '江州区', + 451421: '扶绥县', + 451422: '宁明县', + 451423: '龙州县', + 451424: '大新县', + 451425: '天等县', + 451481: '凭祥市', + 460105: '秀英区', + 460106: '龙华区', + 460107: '琼山区', + 460108: '美兰区', + 460202: '海棠区', + 460203: '吉阳区', + 460204: '天涯区', + 460205: '崖州区', + 460321: '西沙群岛', + 460322: '南沙群岛', + 460323: '中沙群岛的岛礁及其海域', + 460401: '那大镇', + 460402: '和庆镇', + 460403: '南丰镇', + 460404: '大成镇', + 460405: '雅星镇', + 460406: '兰洋镇', + 460407: '光村镇', + 460408: '木棠镇', + 460409: '海头镇', + 460410: '峨蔓镇', + 460411: '王五镇', + 460412: '白马井镇', + 460413: '中和镇', + 460414: '排浦镇', + 460415: '东成镇', + 460416: '新州镇', + 469001: '五指山市', + 469002: '琼海市', + 469005: '文昌市', + 469006: '万宁市', + 469007: '东方市', + 469021: '定安县', + 469022: '屯昌县', + 469023: '澄迈县', + 469024: '临高县', + 469025: '白沙黎族自治县', + 469026: '昌江黎族自治县', + 469027: '乐东黎族自治县', + 469028: '陵水黎族自治县', + 469029: '保亭黎族苗族自治县', + 469030: '琼中黎族苗族自治县', + 500101: '万州区', + 500102: '涪陵区', + 500103: '渝中区', + 500104: '大渡口区', + 500105: '江北区', + 500106: '沙坪坝区', + 500107: '九龙坡区', + 500108: '南岸区', + 500109: '北碚区', + 500110: '綦江区', + 500111: '大足区', + 500112: '渝北区', + 500113: '巴南区', + 500114: '黔江区', + 500115: '长寿区', + 500116: '江津区', + 500117: '合川区', + 500118: '永川区', + 500119: '南川区', + 500120: '璧山区', + 500151: '铜梁区', + 500152: '潼南区', + 500153: '荣昌区', + 500154: '开州区', + 500155: '梁平区', + 500156: '武隆区', + 500229: '城口县', + 500230: '丰都县', + 500231: '垫江县', + 500233: '忠县', + 500235: '云阳县', + 500236: '奉节县', + 500237: '巫山县', + 500238: '巫溪县', + 500240: '石柱土家族自治县', + 500241: '秀山土家族苗族自治县', + 500242: '酉阳土家族苗族自治县', + 500243: '彭水苗族土家族自治县', + 510104: '锦江区', + 510105: '青羊区', + 510106: '金牛区', + 510107: '武侯区', + 510108: '成华区', + 510112: '龙泉驿区', + 510113: '青白江区', + 510114: '新都区', + 510115: '温江区', + 510116: '双流区', + 510117: '郫都区', + 510121: '金堂县', + 510129: '大邑县', + 510131: '蒲江县', + 510132: '新津县', + 510181: '都江堰市', + 510182: '彭州市', + 510183: '邛崃市', + 510184: '崇州市', + 510185: '简阳市', + 510191: '高新区', + 510302: '自流井区', + 510303: '贡井区', + 510304: '大安区', + 510311: '沿滩区', + 510321: '荣县', + 510322: '富顺县', + 510402: '东区', + 510403: '西区', + 510411: '仁和区', + 510421: '米易县', + 510422: '盐边县', + 510502: '江阳区', + 510503: '纳溪区', + 510504: '龙马潭区', + 510521: '泸县', + 510522: '合江县', + 510524: '叙永县', + 510525: '古蔺县', + 510603: '旌阳区', + 510604: '罗江区', + 510623: '中江县', + 510681: '广汉市', + 510682: '什邡市', + 510683: '绵竹市', + 510703: '涪城区', + 510704: '游仙区', + 510705: '安州区', + 510722: '三台县', + 510723: '盐亭县', + 510725: '梓潼县', + 510726: '北川羌族自治县', + 510727: '平武县', + 510781: '江油市', + 510791: '高新区', + 510802: '利州区', + 510811: '昭化区', + 510812: '朝天区', + 510821: '旺苍县', + 510822: '青川县', + 510823: '剑阁县', + 510824: '苍溪县', + 510903: '船山区', + 510904: '安居区', + 510921: '蓬溪县', + 510922: '射洪县', + 510923: '大英县', + 511002: '市中区', + 511011: '东兴区', + 511024: '威远县', + 511025: '资中县', + 511083: '隆昌市', + 511102: '市中区', + 511111: '沙湾区', + 511112: '五通桥区', + 511113: '金口河区', + 511123: '犍为县', + 511124: '井研县', + 511126: '夹江县', + 511129: '沐川县', + 511132: '峨边彝族自治县', + 511133: '马边彝族自治县', + 511181: '峨眉山市', + 511302: '顺庆区', + 511303: '高坪区', + 511304: '嘉陵区', + 511321: '南部县', + 511322: '营山县', + 511323: '蓬安县', + 511324: '仪陇县', + 511325: '西充县', + 511381: '阆中市', + 511402: '东坡区', + 511403: '彭山区', + 511421: '仁寿县', + 511423: '洪雅县', + 511424: '丹棱县', + 511425: '青神县', + 511502: '翠屏区', + 511503: '南溪区', + 511521: '宜宾县', + 511523: '江安县', + 511524: '长宁县', + 511525: '高县', + 511526: '珙县', + 511527: '筠连县', + 511528: '兴文县', + 511529: '屏山县', + 511602: '广安区', + 511603: '前锋区', + 511621: '岳池县', + 511622: '武胜县', + 511623: '邻水县', + 511681: '华蓥市', + 511702: '通川区', + 511703: '达川区', + 511722: '宣汉县', + 511723: '开江县', + 511724: '大竹县', + 511725: '渠县', + 511781: '万源市', + 511802: '雨城区', + 511803: '名山区', + 511822: '荥经县', + 511823: '汉源县', + 511824: '石棉县', + 511825: '天全县', + 511826: '芦山县', + 511827: '宝兴县', + 511902: '巴州区', + 511903: '恩阳区', + 511921: '通江县', + 511922: '南江县', + 511923: '平昌县', + 512002: '雁江区', + 512021: '安岳县', + 512022: '乐至县', + 513201: '马尔康市', + 513221: '汶川县', + 513222: '理县', + 513223: '茂县', + 513224: '松潘县', + 513225: '九寨沟县', + 513226: '金川县', + 513227: '小金县', + 513228: '黑水县', + 513230: '壤塘县', + 513231: '阿坝县', + 513232: '若尔盖县', + 513233: '红原县', + 513301: '康定市', + 513322: '泸定县', + 513323: '丹巴县', + 513324: '九龙县', + 513325: '雅江县', + 513326: '道孚县', + 513327: '炉霍县', + 513328: '甘孜县', + 513329: '新龙县', + 513330: '德格县', + 513331: '白玉县', + 513332: '石渠县', + 513333: '色达县', + 513334: '理塘县', + 513335: '巴塘县', + 513336: '乡城县', + 513337: '稻城县', + 513338: '得荣县', + 513401: '西昌市', + 513422: '木里藏族自治县', + 513423: '盐源县', + 513424: '德昌县', + 513425: '会理县', + 513426: '会东县', + 513427: '宁南县', + 513428: '普格县', + 513429: '布拖县', + 513430: '金阳县', + 513431: '昭觉县', + 513432: '喜德县', + 513433: '冕宁县', + 513434: '越西县', + 513435: '甘洛县', + 513436: '美姑县', + 513437: '雷波县', + 520102: '南明区', + 520103: '云岩区', + 520111: '花溪区', + 520112: '乌当区', + 520113: '白云区', + 520115: '观山湖区', + 520121: '开阳县', + 520122: '息烽县', + 520123: '修文县', + 520181: '清镇市', + 520201: '钟山区', + 520203: '六枝特区', + 520221: '水城县', + 520281: '盘州市', + 520302: '红花岗区', + 520303: '汇川区', + 520304: '播州区', + 520322: '桐梓县', + 520323: '绥阳县', + 520324: '正安县', + 520325: '道真仡佬族苗族自治县', + 520326: '务川仡佬族苗族自治县', + 520327: '凤冈县', + 520328: '湄潭县', + 520329: '余庆县', + 520330: '习水县', + 520381: '赤水市', + 520382: '仁怀市', + 520402: '西秀区', + 520403: '平坝区', + 520422: '普定县', + 520423: '镇宁布依族苗族自治县', + 520424: '关岭布依族苗族自治县', + 520425: '紫云苗族布依族自治县', + 520502: '七星关区', + 520521: '大方县', + 520522: '黔西县', + 520523: '金沙县', + 520524: '织金县', + 520525: '纳雍县', + 520526: '威宁彝族回族苗族自治县', + 520527: '赫章县', + 520602: '碧江区', + 520603: '万山区', + 520621: '江口县', + 520622: '玉屏侗族自治县', + 520623: '石阡县', + 520624: '思南县', + 520625: '印江土家族苗族自治县', + 520626: '德江县', + 520627: '沿河土家族自治县', + 520628: '松桃苗族自治县', + 522301: '兴义市', + 522322: '兴仁县', + 522323: '普安县', + 522324: '晴隆县', + 522325: '贞丰县', + 522326: '望谟县', + 522327: '册亨县', + 522328: '安龙县', + 522601: '凯里市', + 522622: '黄平县', + 522623: '施秉县', + 522624: '三穗县', + 522625: '镇远县', + 522626: '岑巩县', + 522627: '天柱县', + 522628: '锦屏县', + 522629: '剑河县', + 522630: '台江县', + 522631: '黎平县', + 522632: '榕江县', + 522633: '从江县', + 522634: '雷山县', + 522635: '麻江县', + 522636: '丹寨县', + 522701: '都匀市', + 522702: '福泉市', + 522722: '荔波县', + 522723: '贵定县', + 522725: '瓮安县', + 522726: '独山县', + 522727: '平塘县', + 522728: '罗甸县', + 522729: '长顺县', + 522730: '龙里县', + 522731: '惠水县', + 522732: '三都水族自治县', + 530102: '五华区', + 530103: '盘龙区', + 530111: '官渡区', + 530112: '西山区', + 530113: '东川区', + 530114: '呈贡区', + 530115: '晋宁区', + 530124: '富民县', + 530125: '宜良县', + 530126: '石林彝族自治县', + 530127: '嵩明县', + 530128: '禄劝彝族苗族自治县', + 530129: '寻甸回族彝族自治县', + 530181: '安宁市', + 530302: '麒麟区', + 530303: '沾益区', + 530321: '马龙县', + 530322: '陆良县', + 530323: '师宗县', + 530324: '罗平县', + 530325: '富源县', + 530326: '会泽县', + 530381: '宣威市', + 530402: '红塔区', + 530403: '江川区', + 530422: '澄江县', + 530423: '通海县', + 530424: '华宁县', + 530425: '易门县', + 530426: '峨山彝族自治县', + 530427: '新平彝族傣族自治县', + 530428: '元江哈尼族彝族傣族自治县', + 530502: '隆阳区', + 530521: '施甸县', + 530523: '龙陵县', + 530524: '昌宁县', + 530581: '腾冲市', + 530602: '昭阳区', + 530621: '鲁甸县', + 530622: '巧家县', + 530623: '盐津县', + 530624: '大关县', + 530625: '永善县', + 530626: '绥江县', + 530627: '镇雄县', + 530628: '彝良县', + 530629: '威信县', + 530630: '水富县', + 530702: '古城区', + 530721: '玉龙纳西族自治县', + 530722: '永胜县', + 530723: '华坪县', + 530724: '宁蒗彝族自治县', + 530802: '思茅区', + 530821: '宁洱哈尼族彝族自治县', + 530822: '墨江哈尼族自治县', + 530823: '景东彝族自治县', + 530824: '景谷傣族彝族自治县', + 530825: '镇沅彝族哈尼族拉祜族自治县', + 530826: '江城哈尼族彝族自治县', + 530827: '孟连傣族拉祜族佤族自治县', + 530828: '澜沧拉祜族自治县', + 530829: '西盟佤族自治县', + 530902: '临翔区', + 530921: '凤庆县', + 530922: '云县', + 530923: '永德县', + 530924: '镇康县', + 530925: '双江拉祜族佤族布朗族傣族自治县', + 530926: '耿马傣族佤族自治县', + 530927: '沧源佤族自治县', + 532301: '楚雄市', + 532322: '双柏县', + 532323: '牟定县', + 532324: '南华县', + 532325: '姚安县', + 532326: '大姚县', + 532327: '永仁县', + 532328: '元谋县', + 532329: '武定县', + 532331: '禄丰县', + 532501: '个旧市', + 532502: '开远市', + 532503: '蒙自市', + 532504: '弥勒市', + 532523: '屏边苗族自治县', + 532524: '建水县', + 532525: '石屏县', + 532527: '泸西县', + 532528: '元阳县', + 532529: '红河县', + 532530: '金平苗族瑶族傣族自治县', + 532531: '绿春县', + 532532: '河口瑶族自治县', + 532601: '文山市', + 532622: '砚山县', + 532623: '西畴县', + 532624: '麻栗坡县', + 532625: '马关县', + 532626: '丘北县', + 532627: '广南县', + 532628: '富宁县', + 532801: '景洪市', + 532822: '勐海县', + 532823: '勐腊县', + 532901: '大理市', + 532922: '漾濞彝族自治县', + 532923: '祥云县', + 532924: '宾川县', + 532925: '弥渡县', + 532926: '南涧彝族自治县', + 532927: '巍山彝族回族自治县', + 532928: '永平县', + 532929: '云龙县', + 532930: '洱源县', + 532931: '剑川县', + 532932: '鹤庆县', + 533102: '瑞丽市', + 533103: '芒市', + 533122: '梁河县', + 533123: '盈江县', + 533124: '陇川县', + 533301: '泸水市', + 533323: '福贡县', + 533324: '贡山独龙族怒族自治县', + 533325: '兰坪白族普米族自治县', + 533401: '香格里拉市', + 533422: '德钦县', + 533423: '维西傈僳族自治县', + 540102: '城关区', + 540103: '堆龙德庆区', + 540104: '达孜区', + 540121: '林周县', + 540122: '当雄县', + 540123: '尼木县', + 540124: '曲水县', + 540127: '墨竹工卡县', + 540202: '桑珠孜区', + 540221: '南木林县', + 540222: '江孜县', + 540223: '定日县', + 540224: '萨迦县', + 540225: '拉孜县', + 540226: '昂仁县', + 540227: '谢通门县', + 540228: '白朗县', + 540229: '仁布县', + 540230: '康马县', + 540231: '定结县', + 540232: '仲巴县', + 540233: '亚东县', + 540234: '吉隆县', + 540235: '聂拉木县', + 540236: '萨嘎县', + 540237: '岗巴县', + 540302: '卡若区', + 540321: '江达县', + 540322: '贡觉县', + 540323: '类乌齐县', + 540324: '丁青县', + 540325: '察雅县', + 540326: '八宿县', + 540327: '左贡县', + 540328: '芒康县', + 540329: '洛隆县', + 540330: '边坝县', + 540402: '巴宜区', + 540421: '工布江达县', + 540422: '米林县', + 540423: '墨脱县', + 540424: '波密县', + 540425: '察隅县', + 540426: '朗县', + 540502: '乃东区', + 540521: '扎囊县', + 540522: '贡嘎县', + 540523: '桑日县', + 540524: '琼结县', + 540525: '曲松县', + 540526: '措美县', + 540527: '洛扎县', + 540528: '加查县', + 540529: '隆子县', + 540530: '错那县', + 540531: '浪卡子县', + 540602: '色尼区', + 542421: '那曲县', + 542422: '嘉黎县', + 542423: '比如县', + 542424: '聂荣县', + 542425: '安多县', + 542426: '申扎县', + 542427: '索县', + 542428: '班戈县', + 542429: '巴青县', + 542430: '尼玛县', + 542431: '双湖县', + 542521: '普兰县', + 542522: '札达县', + 542523: '噶尔县', + 542524: '日土县', + 542525: '革吉县', + 542526: '改则县', + 542527: '措勤县', + 610102: '新城区', + 610103: '碑林区', + 610104: '莲湖区', + 610111: '灞桥区', + 610112: '未央区', + 610113: '雁塔区', + 610114: '阎良区', + 610115: '临潼区', + 610116: '长安区', + 610117: '高陵区', + 610118: '鄠邑区', + 610122: '蓝田县', + 610124: '周至县', + 610202: '王益区', + 610203: '印台区', + 610204: '耀州区', + 610222: '宜君县', + 610302: '渭滨区', + 610303: '金台区', + 610304: '陈仓区', + 610322: '凤翔县', + 610323: '岐山县', + 610324: '扶风县', + 610326: '眉县', + 610327: '陇县', + 610328: '千阳县', + 610329: '麟游县', + 610330: '凤县', + 610331: '太白县', + 610402: '秦都区', + 610403: '杨陵区', + 610404: '渭城区', + 610422: '三原县', + 610423: '泾阳县', + 610424: '乾县', + 610425: '礼泉县', + 610426: '永寿县', + 610427: '彬县', + 610428: '长武县', + 610429: '旬邑县', + 610430: '淳化县', + 610431: '武功县', + 610481: '兴平市', + 610502: '临渭区', + 610503: '华州区', + 610522: '潼关县', + 610523: '大荔县', + 610524: '合阳县', + 610525: '澄城县', + 610526: '蒲城县', + 610527: '白水县', + 610528: '富平县', + 610581: '韩城市', + 610582: '华阴市', + 610602: '宝塔区', + 610603: '安塞区', + 610621: '延长县', + 610622: '延川县', + 610623: '子长县', + 610625: '志丹县', + 610626: '吴起县', + 610627: '甘泉县', + 610628: '富县', + 610629: '洛川县', + 610630: '宜川县', + 610631: '黄龙县', + 610632: '黄陵县', + 610702: '汉台区', + 610703: '南郑区', + 610722: '城固县', + 610723: '洋县', + 610724: '西乡县', + 610725: '勉县', + 610726: '宁强县', + 610727: '略阳县', + 610728: '镇巴县', + 610729: '留坝县', + 610730: '佛坪县', + 610802: '榆阳区', + 610803: '横山区', + 610822: '府谷县', + 610824: '靖边县', + 610825: '定边县', + 610826: '绥德县', + 610827: '米脂县', + 610828: '佳县', + 610829: '吴堡县', + 610830: '清涧县', + 610831: '子洲县', + 610881: '神木市', + 610902: '汉滨区', + 610921: '汉阴县', + 610922: '石泉县', + 610923: '宁陕县', + 610924: '紫阳县', + 610925: '岚皋县', + 610926: '平利县', + 610927: '镇坪县', + 610928: '旬阳县', + 610929: '白河县', + 611002: '商州区', + 611021: '洛南县', + 611022: '丹凤县', + 611023: '商南县', + 611024: '山阳县', + 611025: '镇安县', + 611026: '柞水县', + 620102: '城关区', + 620103: '七里河区', + 620104: '西固区', + 620105: '安宁区', + 620111: '红古区', + 620121: '永登县', + 620122: '皋兰县', + 620123: '榆中县', + 620201: '市辖区', + 620290: '雄关区', + 620291: '长城区', + 620292: '镜铁区', + 620293: '新城镇', + 620294: '峪泉镇', + 620295: '文殊镇', + 620302: '金川区', + 620321: '永昌县', + 620402: '白银区', + 620403: '平川区', + 620421: '靖远县', + 620422: '会宁县', + 620423: '景泰县', + 620502: '秦州区', + 620503: '麦积区', + 620521: '清水县', + 620522: '秦安县', + 620523: '甘谷县', + 620524: '武山县', + 620525: '张家川回族自治县', + 620602: '凉州区', + 620621: '民勤县', + 620622: '古浪县', + 620623: '天祝藏族自治县', + 620702: '甘州区', + 620721: '肃南裕固族自治县', + 620722: '民乐县', + 620723: '临泽县', + 620724: '高台县', + 620725: '山丹县', + 620802: '崆峒区', + 620821: '泾川县', + 620822: '灵台县', + 620823: '崇信县', + 620824: '华亭县', + 620825: '庄浪县', + 620826: '静宁县', + 620902: '肃州区', + 620921: '金塔县', + 620922: '瓜州县', + 620923: '肃北蒙古族自治县', + 620924: '阿克塞哈萨克族自治县', + 620981: '玉门市', + 620982: '敦煌市', + 621002: '西峰区', + 621021: '庆城县', + 621022: '环县', + 621023: '华池县', + 621024: '合水县', + 621025: '正宁县', + 621026: '宁县', + 621027: '镇原县', + 621102: '安定区', + 621121: '通渭县', + 621122: '陇西县', + 621123: '渭源县', + 621124: '临洮县', + 621125: '漳县', + 621126: '岷县', + 621202: '武都区', + 621221: '成县', + 621222: '文县', + 621223: '宕昌县', + 621224: '康县', + 621225: '西和县', + 621226: '礼县', + 621227: '徽县', + 621228: '两当县', + 622901: '临夏市', + 622921: '临夏县', + 622922: '康乐县', + 622923: '永靖县', + 622924: '广河县', + 622925: '和政县', + 622926: '东乡族自治县', + 622927: '积石山保安族东乡族撒拉族自治县', + 623001: '合作市', + 623021: '临潭县', + 623022: '卓尼县', + 623023: '舟曲县', + 623024: '迭部县', + 623025: '玛曲县', + 623026: '碌曲县', + 623027: '夏河县', + 630102: '城东区', + 630103: '城中区', + 630104: '城西区', + 630105: '城北区', + 630121: '大通回族土族自治县', + 630122: '湟中县', + 630123: '湟源县', + 630202: '乐都区', + 630203: '平安区', + 630222: '民和回族土族自治县', + 630223: '互助土族自治县', + 630224: '化隆回族自治县', + 630225: '循化撒拉族自治县', + 632221: '门源回族自治县', + 632222: '祁连县', + 632223: '海晏县', + 632224: '刚察县', + 632321: '同仁县', + 632322: '尖扎县', + 632323: '泽库县', + 632324: '河南蒙古族自治县', + 632521: '共和县', + 632522: '同德县', + 632523: '贵德县', + 632524: '兴海县', + 632525: '贵南县', + 632621: '玛沁县', + 632622: '班玛县', + 632623: '甘德县', + 632624: '达日县', + 632625: '久治县', + 632626: '玛多县', + 632701: '玉树市', + 632722: '杂多县', + 632723: '称多县', + 632724: '治多县', + 632725: '囊谦县', + 632726: '曲麻莱县', + 632801: '格尔木市', + 632802: '德令哈市', + 632821: '乌兰县', + 632822: '都兰县', + 632823: '天峻县', + 640104: '兴庆区', + 640105: '西夏区', + 640106: '金凤区', + 640121: '永宁县', + 640122: '贺兰县', + 640181: '灵武市', + 640202: '大武口区', + 640205: '惠农区', + 640221: '平罗县', + 640302: '利通区', + 640303: '红寺堡区', + 640323: '盐池县', + 640324: '同心县', + 640381: '青铜峡市', + 640402: '原州区', + 640422: '西吉县', + 640423: '隆德县', + 640424: '泾源县', + 640425: '彭阳县', + 640502: '沙坡头区', + 640521: '中宁县', + 640522: '海原县', + 650102: '天山区', + 650103: '沙依巴克区', + 650104: '新市区', + 650105: '水磨沟区', + 650106: '头屯河区', + 650107: '达坂城区', + 650109: '米东区', + 650121: '乌鲁木齐县', + 650202: '独山子区', + 650203: '克拉玛依区', + 650204: '白碱滩区', + 650205: '乌尔禾区', + 650402: '高昌区', + 650421: '鄯善县', + 650422: '托克逊县', + 650502: '伊州区', + 650521: '巴里坤哈萨克自治县', + 650522: '伊吾县', + 652301: '昌吉市', + 652302: '阜康市', + 652323: '呼图壁县', + 652324: '玛纳斯县', + 652325: '奇台县', + 652327: '吉木萨尔县', + 652328: '木垒哈萨克自治县', + 652701: '博乐市', + 652702: '阿拉山口市', + 652722: '精河县', + 652723: '温泉县', + 652801: '库尔勒市', + 652822: '轮台县', + 652823: '尉犁县', + 652824: '若羌县', + 652825: '且末县', + 652826: '焉耆回族自治县', + 652827: '和静县', + 652828: '和硕县', + 652829: '博湖县', + 652901: '阿克苏市', + 652922: '温宿县', + 652923: '库车县', + 652924: '沙雅县', + 652925: '新和县', + 652926: '拜城县', + 652927: '乌什县', + 652928: '阿瓦提县', + 652929: '柯坪县', + 653001: '阿图什市', + 653022: '阿克陶县', + 653023: '阿合奇县', + 653024: '乌恰县', + 653101: '喀什市', + 653121: '疏附县', + 653122: '疏勒县', + 653123: '英吉沙县', + 653124: '泽普县', + 653125: '莎车县', + 653126: '叶城县', + 653127: '麦盖提县', + 653128: '岳普湖县', + 653129: '伽师县', + 653130: '巴楚县', + 653131: '塔什库尔干塔吉克自治县', + 653201: '和田市', + 653221: '和田县', + 653222: '墨玉县', + 653223: '皮山县', + 653224: '洛浦县', + 653225: '策勒县', + 653226: '于田县', + 653227: '民丰县', + 654002: '伊宁市', + 654003: '奎屯市', + 654004: '霍尔果斯市', + 654021: '伊宁县', + 654022: '察布查尔锡伯自治县', + 654023: '霍城县', + 654024: '巩留县', + 654025: '新源县', + 654026: '昭苏县', + 654027: '特克斯县', + 654028: '尼勒克县', + 654201: '塔城市', + 654202: '乌苏市', + 654221: '额敏县', + 654223: '沙湾县', + 654224: '托里县', + 654225: '裕民县', + 654226: '和布克赛尔蒙古自治县', + 654301: '阿勒泰市', + 654321: '布尔津县', + 654322: '富蕴县', + 654323: '福海县', + 654324: '哈巴河县', + 654325: '青河县', + 654326: '吉木乃县', + 659001: '石河子市', + 659002: '阿拉尔市', + 659003: '图木舒克市', + 659004: '五家渠市', + 659005: '北屯市', + 659006: '铁门关市', + 659007: '双河市', + 659008: '可克达拉市', + 659009: '昆玉市', + 710101: '中正区', + 710102: '大同区', + 710103: '中山区', + 710104: '松山区', + 710105: '大安区', + 710106: '万华区', + 710107: '信义区', + 710108: '士林区', + 710109: '北投区', + 710110: '内湖区', + 710111: '南港区', + 710112: '文山区', + 710199: '其它区', + 710201: '新兴区', + 710202: '前金区', + 710203: '芩雅区', + 710204: '盐埕区', + 710205: '鼓山区', + 710206: '旗津区', + 710207: '前镇区', + 710208: '三民区', + 710209: '左营区', + 710210: '楠梓区', + 710211: '小港区', + 710241: '苓雅区', + 710242: '仁武区', + 710243: '大社区', + 710244: '冈山区', + 710245: '路竹区', + 710246: '阿莲区', + 710247: '田寮区', + 710248: '燕巢区', + 710249: '桥头区', + 710250: '梓官区', + 710251: '弥陀区', + 710252: '永安区', + 710253: '湖内区', + 710254: '凤山区', + 710255: '大寮区', + 710256: '林园区', + 710257: '鸟松区', + 710258: '大树区', + 710259: '旗山区', + 710260: '美浓区', + 710261: '六龟区', + 710262: '内门区', + 710263: '杉林区', + 710264: '甲仙区', + 710265: '桃源区', + 710266: '那玛夏区', + 710267: '茂林区', + 710268: '茄萣区', + 710299: '其它区', + 710301: '中西区', + 710302: '东区', + 710303: '南区', + 710304: '北区', + 710305: '安平区', + 710306: '安南区', + 710339: '永康区', + 710340: '归仁区', + 710341: '新化区', + 710342: '左镇区', + 710343: '玉井区', + 710344: '楠西区', + 710345: '南化区', + 710346: '仁德区', + 710347: '关庙区', + 710348: '龙崎区', + 710349: '官田区', + 710350: '麻豆区', + 710351: '佳里区', + 710352: '西港区', + 710353: '七股区', + 710354: '将军区', + 710355: '学甲区', + 710356: '北门区', + 710357: '新营区', + 710358: '后壁区', + 710359: '白河区', + 710360: '东山区', + 710361: '六甲区', + 710362: '下营区', + 710363: '柳营区', + 710364: '盐水区', + 710365: '善化区', + 710366: '大内区', + 710367: '山上区', + 710368: '新市区', + 710369: '安定区', + 710399: '其它区', + 710401: '中区', + 710402: '东区', + 710403: '南区', + 710404: '西区', + 710405: '北区', + 710406: '北屯区', + 710407: '西屯区', + 710408: '南屯区', + 710431: '太平区', + 710432: '大里区', + 710433: '雾峰区', + 710434: '乌日区', + 710435: '丰原区', + 710436: '后里区', + 710437: '石冈区', + 710438: '东势区', + 710439: '和平区', + 710440: '新社区', + 710441: '潭子区', + 710442: '大雅区', + 710443: '神冈区', + 710444: '大肚区', + 710445: '沙鹿区', + 710446: '龙井区', + 710447: '梧栖区', + 710448: '清水区', + 710449: '大甲区', + 710450: '外埔区', + 710451: '大安区', + 710499: '其它区', + 710507: '金沙镇', + 710508: '金湖镇', + 710509: '金宁乡', + 710510: '金城镇', + 710511: '烈屿乡', + 710512: '乌坵乡', + 710614: '南投市', + 710615: '中寮乡', + 710616: '草屯镇', + 710617: '国姓乡', + 710618: '埔里镇', + 710619: '仁爱乡', + 710620: '名间乡', + 710621: '集集镇', + 710622: '水里乡', + 710623: '鱼池乡', + 710624: '信义乡', + 710625: '竹山镇', + 710626: '鹿谷乡', + 710701: '仁爱区', + 710702: '信义区', + 710703: '中正区', + 710704: '中山区', + 710705: '安乐区', + 710706: '暖暖区', + 710707: '七堵区', + 710799: '其它区', + 710801: '东区', + 710802: '北区', + 710803: '香山区', + 710899: '其它区', + 710901: '东区', + 710902: '西区', + 710999: '其它区', + 711130: '万里区', + 711132: '板桥区', + 711133: '汐止区', + 711134: '深坑区', + 711136: '瑞芳区', + 711137: '平溪区', + 711138: '双溪区', + 711140: '新店区', + 711141: '坪林区', + 711142: '乌来区', + 711143: '永和区', + 711144: '中和区', + 711145: '土城区', + 711146: '三峡区', + 711147: '树林区', + 711149: '三重区', + 711150: '新庄区', + 711151: '泰山区', + 711152: '林口区', + 711154: '五股区', + 711155: '八里区', + 711156: '淡水区', + 711157: '三芝区', + 711287: '宜兰市', + 711288: '头城镇', + 711289: '礁溪乡', + 711290: '壮围乡', + 711291: '员山乡', + 711292: '罗东镇', + 711293: '三星乡', + 711294: '大同乡', + 711295: '五结乡', + 711296: '冬山乡', + 711297: '苏澳镇', + 711298: '南澳乡', + 711299: '钓鱼台', + 711387: '竹北市', + 711388: '湖口乡', + 711389: '新丰乡', + 711390: '新埔镇', + 711391: '关西镇', + 711392: '芎林乡', + 711393: '宝山乡', + 711394: '竹东镇', + 711395: '五峰乡', + 711396: '横山乡', + 711397: '尖石乡', + 711398: '北埔乡', + 711399: '峨眉乡', + 711487: '中坜市', + 711488: '平镇市', + 711489: '龙潭乡', + 711490: '杨梅市', + 711491: '新屋乡', + 711492: '观音乡', + 711493: '桃园市', + 711494: '龟山乡', + 711495: '八德市', + 711496: '大溪镇', + 711497: '复兴乡', + 711498: '大园乡', + 711499: '芦竹乡', + 711582: '竹南镇', + 711583: '头份镇', + 711584: '三湾乡', + 711585: '南庄乡', + 711586: '狮潭乡', + 711587: '后龙镇', + 711588: '通霄镇', + 711589: '苑里镇', + 711590: '苗栗市', + 711591: '造桥乡', + 711592: '头屋乡', + 711593: '公馆乡', + 711594: '大湖乡', + 711595: '泰安乡', + 711596: '铜锣乡', + 711597: '三义乡', + 711598: '西湖乡', + 711599: '卓兰镇', + 711774: '彰化市', + 711775: '芬园乡', + 711776: '花坛乡', + 711777: '秀水乡', + 711778: '鹿港镇', + 711779: '福兴乡', + 711780: '线西乡', + 711781: '和美镇', + 711782: '伸港乡', + 711783: '员林镇', + 711784: '社头乡', + 711785: '永靖乡', + 711786: '埔心乡', + 711787: '溪湖镇', + 711788: '大村乡', + 711789: '埔盐乡', + 711790: '田中镇', + 711791: '北斗镇', + 711792: '田尾乡', + 711793: '埤头乡', + 711794: '溪州乡', + 711795: '竹塘乡', + 711796: '二林镇', + 711797: '大城乡', + 711798: '芳苑乡', + 711799: '二水乡', + 711982: '番路乡', + 711983: '梅山乡', + 711984: '竹崎乡', + 711985: '阿里山乡', + 711986: '中埔乡', + 711987: '大埔乡', + 711988: '水上乡', + 711989: '鹿草乡', + 711990: '太保市', + 711991: '朴子市', + 711992: '东石乡', + 711993: '六脚乡', + 711994: '新港乡', + 711995: '民雄乡', + 711996: '大林镇', + 711997: '溪口乡', + 711998: '义竹乡', + 711999: '布袋镇', + 712180: '斗南镇', + 712181: '大埤乡', + 712182: '虎尾镇', + 712183: '土库镇', + 712184: '褒忠乡', + 712185: '东势乡', + 712186: '台西乡', + 712187: '仑背乡', + 712188: '麦寮乡', + 712189: '斗六市', + 712190: '林内乡', + 712191: '古坑乡', + 712192: '莿桐乡', + 712193: '西螺镇', + 712194: '二仑乡', + 712195: '北港镇', + 712196: '水林乡', + 712197: '口湖乡', + 712198: '四湖乡', + 712199: '元长乡', + 712467: '屏东市', + 712468: '三地门乡', + 712469: '雾台乡', + 712470: '玛家乡', + 712471: '九如乡', + 712472: '里港乡', + 712473: '高树乡', + 712474: '盐埔乡', + 712475: '长治乡', + 712476: '麟洛乡', + 712477: '竹田乡', + 712478: '内埔乡', + 712479: '万丹乡', + 712480: '潮州镇', + 712481: '泰武乡', + 712482: '来义乡', + 712483: '万峦乡', + 712484: '莰顶乡', + 712485: '新埤乡', + 712486: '南州乡', + 712487: '林边乡', + 712488: '东港镇', + 712489: '琉球乡', + 712490: '佳冬乡', + 712491: '新园乡', + 712492: '枋寮乡', + 712493: '枋山乡', + 712494: '春日乡', + 712495: '狮子乡', + 712496: '车城乡', + 712497: '牡丹乡', + 712498: '恒春镇', + 712499: '满州乡', + 712584: '台东市', + 712585: '绿岛乡', + 712586: '兰屿乡', + 712587: '延平乡', + 712588: '卑南乡', + 712589: '鹿野乡', + 712590: '关山镇', + 712591: '海端乡', + 712592: '池上乡', + 712593: '东河乡', + 712594: '成功镇', + 712595: '长滨乡', + 712596: '金峰乡', + 712597: '大武乡', + 712598: '达仁乡', + 712599: '太麻里乡', + 712686: '花莲市', + 712687: '新城乡', + 712688: '太鲁阁', + 712689: '秀林乡', + 712690: '吉安乡', + 712691: '寿丰乡', + 712692: '凤林镇', + 712693: '光复乡', + 712694: '丰滨乡', + 712695: '瑞穗乡', + 712696: '万荣乡', + 712697: '玉里镇', + 712698: '卓溪乡', + 712699: '富里乡', + 712794: '马公市', + 712795: '西屿乡', + 712796: '望安乡', + 712797: '七美乡', + 712798: '白沙乡', + 712799: '湖西乡', + 712896: '南竿乡', + 712897: '北竿乡', + 712898: '东引乡', + 712899: '莒光乡', + 810101: '中西区', + 810102: '湾仔', + 810103: '东区', + 810104: '南区', + 810201: '九龙城区', + 810202: '油尖旺区', + 810203: '深水埗区', + 810204: '黄大仙区', + 810205: '观塘区', + 810301: '北区', + 810302: '大埔区', + 810303: '沙田区', + 810304: '西贡区', + 810305: '元朗区', + 810306: '屯门区', + 810307: '荃湾区', + 810308: '葵青区', + 810309: '离岛区', + 820101: '澳门半岛', + 820201: '离岛' + } + }; + + + Class.prototype.config = { + elem: '', + data: { + province: '', + city: '', + county: '', + provinceCode: 0, + cityCode: 0, + countyCode: 0, + }, + change: function(result){} + }; + + Class.prototype.index = 0; + + Class.prototype.render = function () { + let that = this, options = that.config; + options.elem = $(options.elem); + options.bindAction = $(options.bindAction); + + that.events(); + }; + + Class.prototype.events = function () { + let that = this, options = that.config, index; + let provinceFilter = 'province-' + layarea._id; + let cityFilter = 'city-' + layarea._id; + let countyFilter = 'county-' + layarea._id; + + let provinceEl = options.elem.find('.province-selector'); + let cityEl = options.elem.find('.city-selector'); + let countyEl = options.elem.find('.county-selector'); + + //filter + if(provinceEl.attr('lay-filter')){ + provinceFilter = provinceEl.attr('lay-filter'); + } + if(cityEl.attr('lay-filter')){ + cityFilter = cityEl.attr('lay-filter'); + } + if(countyEl.attr('lay-filter')){ + countyFilter = countyEl.attr('lay-filter'); + } + provinceEl.attr('lay-filter', provinceFilter); + cityEl.attr('lay-filter', cityFilter); + countyEl.attr('lay-filter', countyFilter); + + //获取默认值 + if(provinceEl.data('value')){ + options.data.province = provinceEl.data('value'); + options.data.provinceCode = getCode('province', options.data.province); + } + if(cityEl.data('value')){ + options.data.city = cityEl.data('value'); + let code = getCode('city', options.data.city, options.data.provinceCode.slice(0, 2)); + options.data.cityCode = code; + } + if(countyEl.data('value')){ + options.data.county = countyEl.data('value'); + options.data.countyCode = getCode('county', options.data.county, options.data.cityCode.slice(0, 4)); + } + provinceEl.attr('lay-filter', provinceFilter); + cityEl.attr('lay-filter', cityFilter); + countyEl.attr('lay-filter', countyFilter); + + //监听结果 + form.on('select('+provinceFilter+')', function(data){ + options.data.province = data.value; + options.data.provinceCode = getCode('province', data.value); + renderCity(options.data.provinceCode); + + options.change(options.data); + }); + form.on('select('+cityFilter+')', function(data){ + options.data.city = data.value; + if(options.data.provinceCode){ + options.data.cityCode = getCode('city', data.value, options.data.provinceCode.slice(0, 2)); + renderCounty(options.data.cityCode); + } + + options.change(options.data); + }); + form.on('select('+countyFilter+')', function(data){ + options.data.county = data.value; + if(options.data.cityCode){ + options.data.countyCode = getCode('county', data.value, options.data.cityCode.slice(0, 4)); + } + options.change(options.data); + }); + + renderProvince(); + + //查找province + function renderProvince(){ + let tpl = ''; + let provinceList = getList("province"); + let currentCode = ''; + let currentName = ''; + provinceList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.province){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + provinceEl.html(tpl); + provinceEl.val(options.data.province); + form.render('select'); + renderCity(currentCode); + } + + function renderCity(provinceCode){ + let tpl = ''; + let cityList = getList('city', provinceCode.slice(0, 2)); + let currentCode = ''; + let currentName = ''; + cityList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.city){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + options.data.city = currentName; + cityEl.html(tpl); + cityEl.val(options.data.city); + form.render('select'); + renderCounty(currentCode); + } + + function renderCounty(cityCode){ + let tpl = ''; + let countyList = getList('county', cityCode.slice(0, 4)); + let currentCode = ''; + let currentName = ''; + countyList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.county){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + options.data.county = currentName; + countyEl.html(tpl); + countyEl.val(options.data.county); + + form.render('select'); + } + + function getList(type, code) { + let result = []; + + if (type !== 'province' && !code) { + return result; + } + + let list = areaList[type + "_list"] || {}; + result = Object.keys(list).map(function (code) { + return { + code: code, + name: list[code] + }; + }); + + if (code) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + + result = result.filter(function (item) { + return item.code.indexOf(code) === 0; + }); + } + + return result; + } + + function getCode(type, name, parentCode = 0){ + let code = ''; + let list = areaList[type + "_list"] || {}; + let result = {}; + Object.keys(list).map(function (_code) { + if(parentCode){ + if(_code.indexOf(parentCode) === 0){ + result[_code] = list[_code]; + } + }else{ + result[_code] = list[_code]; + } + }); + layui.each(result, function(_code, _name){ + if(_name === name){ + code = _code; + } + }); + + return code; + } + }; + + layarea.render = function (options) { + let inst = new Class(options); + layarea._id++; + return thisArea.call(inst); + }; + + //暴露接口 + exports('layarea', layarea); +}); \ No newline at end of file diff --git a/src/main/resources/static/js/lay-module/layuimini/miniAdmin.js b/src/main/resources/static/js/lay-module/layuimini/miniAdmin.js new file mode 100644 index 00000000..08b4b6b8 --- /dev/null +++ b/src/main/resources/static/js/lay-module/layuimini/miniAdmin.js @@ -0,0 +1,350 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 主体框架扩展 + */ +layui.define(["jquery", "miniMenu", "element","miniTab", "miniTheme"], function (exports) { + var $ = layui.$, + layer = layui.layer, + miniMenu = layui.miniMenu, + miniTheme = layui.miniTheme, + element = layui.element , + miniTab = layui.miniTab; + + if (!/http(s*):\/\//.test(location.href)) { + var tips = "请先将项目部署至web容器(Apache/Tomcat/Nginx/IIS/等),否则部分数据将无法显示"; + return layer.alert(tips); + } + + var miniAdmin = { + + /** + * 后台框架初始化 + * @param options.iniUrl 后台初始化接口地址 + * @param options.clearUrl 后台清理缓存接口 + * @param options.urlHashLocation URL地址hash定位 + * @param options.bgColorDefault 默认皮肤 + * @param options.multiModule 是否开启多模块 + * @param options.menuChildOpen 是否展开子菜单 + * @param options.loadingTime 初始化加载时间 + * @param options.pageAnim iframe窗口动画 + * @param options.maxTabNum 最大的tab打开数量 + */ + render: function (options) { + options.iniUrl = options.iniUrl || null; + options.clearUrl = options.clearUrl || null; + options.urlHashLocation = options.urlHashLocation || false; + options.bgColorDefault = options.bgColorDefault || 0; + options.multiModule = options.multiModule || false; + options.menuChildOpen = options.menuChildOpen || false; + options.loadingTime = options.loadingTime || 1; + options.pageAnim = options.pageAnim || false; + options.maxTabNum = options.maxTabNum || 20; + $.getJSON(options.iniUrl, function (data) { + if (data == null) { + miniAdmin.error('暂无菜单信息') + } else { + miniAdmin.renderLogo(data.logoInfo); + miniAdmin.renderClear(options.clearUrl); + miniAdmin.renderHome(data.homeInfo); + miniAdmin.renderAnim(options.pageAnim); + miniAdmin.listen(); + miniMenu.render({ + menuList: data.menuInfo, + multiModule: options.multiModule, + menuChildOpen: options.menuChildOpen + }); + miniTab.render({ + filter: 'layuiminiTab', + urlHashLocation: options.urlHashLocation, + multiModule: options.multiModule, + menuChildOpen: options.menuChildOpen, + maxTabNum: options.maxTabNum, + menuList: data.menuInfo, + homeInfo: data.homeInfo, + listenSwichCallback: function () { + miniAdmin.renderDevice(); + } + }); + miniTheme.render({ + bgColorDefault: options.bgColorDefault, + listen: true, + }); + miniAdmin.deleteLoader(options.loadingTime); + } + }).fail(function () { + miniAdmin.error('菜单接口有误'); + }); + }, + + /** + * 初始化logo + * @param data + */ + renderLogo: function (data) { + var html = '
logo

' + data.title + '

'; + $('.layuimini-logo').html(html); + }, + + /** + * 初始化首页 + * @param data + */ + renderHome: function (data) { + sessionStorage.setItem('layuiminiHomeHref', data.href); + $('#layuiminiHomeTabId').html('' + data.title + ''); + $('#layuiminiHomeTabId').attr('lay-id', data.href); + $('#layuiminiHomeTabIframe').html(''); + }, + + /** + * 初始化缓存地址 + * @param clearUrl + */ + renderClear: function (clearUrl) { + $('.layuimini-clear').attr('data-href',clearUrl); + }, + + /** + * 初始化iframe窗口动画 + * @param anim + */ + renderAnim: function (anim) { + if (anim) { + $('#layuimini-bg-color').after(''); + } + }, + + fullScreen: function () { + var el = document.documentElement; + var rfs = el.requestFullScreen || el.webkitRequestFullScreen; + if (typeof rfs != "undefined" && rfs) { + rfs.call(el); + } else if (typeof window.ActiveXObject != "undefined") { + var wscript = new ActiveXObject("WScript.Shell"); + if (wscript != null) { + wscript.SendKeys("{F11}"); + } + } else if (el.msRequestFullscreen) { + el.msRequestFullscreen(); + } else if (el.oRequestFullscreen) { + el.oRequestFullscreen(); + } else if (el.webkitRequestFullscreen) { + el.webkitRequestFullscreen(); + } else if (el.mozRequestFullScreen) { + el.mozRequestFullScreen(); + } else { + miniAdmin.error('浏览器不支持全屏调用!'); + } + }, + + /** + * 退出全屏 + */ + exitFullScreen: function () { + var el = document; + var cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.exitFullScreen; + if (typeof cfs != "undefined" && cfs) { + cfs.call(el); + } else if (typeof window.ActiveXObject != "undefined") { + var wscript = new ActiveXObject("WScript.Shell"); + if (wscript != null) { + wscript.SendKeys("{F11}"); + } + } else if (el.msExitFullscreen) { + el.msExitFullscreen(); + } else if (el.oRequestFullscreen) { + el.oCancelFullScreen(); + }else if (el.mozCancelFullScreen) { + el.mozCancelFullScreen(); + } else if (el.webkitCancelFullScreen) { + el.webkitCancelFullScreen(); + } else { + miniAdmin.error('浏览器不支持全屏调用!'); + } + }, + + /** + * 初始化设备端 + */ + renderDevice: function () { + if (miniAdmin.checkMobile()) { + $('.layuimini-tool i').attr('data-side-fold', 1); + $('.layuimini-tool i').attr('class', 'fa fa-outdent'); + $('.layui-layout-body').removeClass('layuimini-mini'); + $('.layui-layout-body').addClass('layuimini-all'); + } + }, + + + /** + * 初始化加载时间 + * @param loadingTime + */ + deleteLoader: function (loadingTime) { + setTimeout(function () { + $('.layuimini-loader').fadeOut(); + }, loadingTime * 1000) + }, + + /** + * 成功 + * @param title + * @returns {*} + */ + success: function (title) { + return layer.msg(title, {icon: 1, shade: this.shade, scrollbar: false, time: 2000, shadeClose: true}); + }, + + /** + * 失败 + * @param title + * @returns {*} + */ + error: function (title) { + return layer.msg(title, {icon: 2, shade: this.shade, scrollbar: false, time: 3000, shadeClose: true}); + }, + + /** + * 判断是否为手机 + * @returns {boolean} + */ + 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 > 1024) { + return false; + } else { + return true; + } + }, + + /** + * 监听 + */ + listen: function () { + + /** + * 清理 + */ + $('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 miniAdmin.error(data.msg); + } else { + return miniAdmin.success(data.msg); + } + }).fail(function () { + layer.close(loading); + return miniAdmin.error('清理缓存接口有误'); + }); + } else { + layer.close(loading); + return miniAdmin.success('清除缓存成功'); + } + }); + + /** + * 刷新 + */ + $('body').on('click', '[data-refresh]', function () { + $(".layui-tab-item.layui-show").find("iframe")[0].contentWindow.location.reload(); + miniAdmin.success('刷新成功'); + }); + + /** + * 监听提示信息 + */ + $("body").on("mouseenter", ".layui-nav-tree .menu-li", function () { + if (miniAdmin.checkMobile()) { + return false; + } + var classInfo = $(this).attr('class'), + tips = $(this).prop("innerHTML"), + isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0 && tips) { + tips = "
  • "+tips+"
" ; + window.openTips = layer.tips(tips, $(this), { + tips: [2, '#2f4056'], + time: 300000, + skin:"popup-tips", + success:function (el) { + var left = $(el).position().left - 10 ; + $(el).css({ left:left }); + element.render(); + } + }); + } + }); + + $("body").on("mouseleave", ".popup-tips", function () { + if (miniAdmin.checkMobile()) { + return false; + } + var isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0) { + try { + layer.close(window.openTips); + } catch (e) { + console.log(e.message); + } + } + }); + + + /** + * 全屏 + */ + $('body').on('click', '[data-check-screen]', function () { + var check = $(this).attr('data-check-screen'); + if (check == 'full') { + miniAdmin.fullScreen(); + $(this).attr('data-check-screen', 'exit'); + $(this).html(''); + } else { + miniAdmin.exitFullScreen(); + $(this).attr('data-check-screen', 'full'); + $(this).html(''); + } + }); + + /** + * 点击遮罩层 + */ + $('body').on('click', '.layuimini-make', function () { + miniAdmin.renderDevice(); + }); + + } + }; + + + exports("miniAdmin", miniAdmin); +}); diff --git a/src/main/resources/static/js/lay-module/layuimini/miniMenu.js b/src/main/resources/static/js/lay-module/layuimini/miniMenu.js new file mode 100644 index 00000000..507eae35 --- /dev/null +++ b/src/main/resources/static/js/lay-module/layuimini/miniMenu.js @@ -0,0 +1,250 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 菜单框架扩展 + */ +layui.define(["element","laytpl" ,"jquery"], function (exports) { + var element = layui.element, + $ = layui.$, + laytpl = layui.laytpl, + layer = layui.layer; + + var miniMenu = { + + /** + * 菜单初始化 + * @param options.menuList 菜单数据信息 + * @param options.multiModule 是否开启多模块 + * @param options.menuChildOpen 是否展开子菜单 + */ + render: function (options) { + options.menuList = options.menuList || []; + options.multiModule = options.multiModule || false; + options.menuChildOpen = options.menuChildOpen || false; + if (options.multiModule) { + miniMenu.renderMultiModule(options.menuList, options.menuChildOpen); + } else { + miniMenu.renderSingleModule(options.menuList, options.menuChildOpen); + } + miniMenu.listen(); + }, + + /** + * 单模块 + * @param menuList 菜单数据 + * @param menuChildOpen 是否默认展开 + */ + renderSingleModule: function (menuList, menuChildOpen) { + menuList = menuList || []; + var leftMenuHtml = '', + childOpenClass = '', + leftMenuCheckDefault = 'layui-this'; + var me = this ; + if (menuChildOpen) childOpenClass = ' layui-nav-itemed'; + leftMenuHtml = this.renderLeftMenu(menuList,{ childOpenClass:childOpenClass }) ; + $('.layui-layout-body').addClass('layuimini-single-module'); //单模块标识 + $('.layuimini-header-menu').remove(); + $('.layuimini-menu-left').html(leftMenuHtml); + + element.init(); + }, + + /** + * 渲染一级菜单 + */ + compileMenu: function(menu,isSub){ + var menuHtml = '' ; + if(isSub){ + menuHtml = '

xEI_A>a+UQ^8#Y-xOj4d< z(jIXDe!Cq%@$9A*@}JEHT)H5};IcIXjVEX#Nx?@0N(5F1{9K*j^#Ec^C>(OcX2A0JG)Cgwp8wN>D0)rA1^31 zjR0XVI-gYFAr&9vH_cik^i8faa~1pS-z=_cpLjFuV)zsN$ZAn|dU)4Pa znuy;P9QBdfBd*7$U6NdVA6e%9VH{TwNZ z7TNoX?QegLGx`-y?6~!{Ui)Dk;SSmHI>EZGIf59wgBWW|q@YqeZ{q`Sqt272IKDvK z4pKiwriIXpl-fwzKgp-L0(?`m6ym0JNn+zrN#RpbnhR%X-lJ_zv zk0#Yez`sl&yUF7!>H&69iJD}YwIl+@sJ>XQ_y&vTm{pi;YA1o%F0)p*_x1){a!oo; z#D9AI6#2^!gON{Oi)Z3mqJ(QeWd(YYqu=1qh2 z!mJbwZI%r6e$6ORQWffk{QEJMwz^kK1FJ9CgdoKVH_vXi#Kr6Z~ zcPc^NKbHOFWKaWzO(A`$7X&K{cMA5Ur_d7!qP9Jjh{1LAnnkW$ueG3cOIKgqdawC| zvY)a!<(}8r(B0FL@nmP$3H8H-iujV{oH4fz)x$lu%kl1}yIImT<&+nV;s(kL z>VM)xBCeZ@F@CCxZ7#lLp!S~V#_JBpuQ5`a1;>MzkQQmbFo#mEJbW z4Q;bOU@;{f4j=bSvUdo{=Rl-G%cwGITYCfQ16<^qPhW2r) z8DzzQ>_=XEB;>xjV*|HS4Edkesmr%LYn)`4#%EjHLBN8Fy2+=N8ukfo#reGwj6@D+bMoo6y`)hSC;?zELmlt(9E!{Q%=YcXBO-qC1~`s|nz)56j=DJY3uBJ8nMg_Q1;h zq2+4Wy=$1zZngXPFE*RwSM51u!QS%WR@rNx8|?9Xz(p5v-vZC=AX5$ZwxSmJtNXJv z<~d~NB1tQ9q&K^O{<*7*XlmWN5-!@8+nHeWu_G~#^gFn5PdNU%mFo%RO9yyORcC2l zG6$-(B4)MJV|8mb=}e)<9Kw?36_4xQJ0$&8VC?Y@0~%C#X8_WAsaW*^SNMkydKyf( zD5LAfb<4t*?=vxkWMLznFX{wNgU@&bfPeu_XN#Et$jLasl*j!hfH0YAu^4*bRL-}; zXes2N+$W6IKX2^rr~d=3=RF8oq?5Ewv{n~&hg4i8*Ou$_sLPC2uO|iAS4|f;M}&*( z4-U#w3_fVY9@70zQg>~FFrNcbNuDgGeM*~f*k!Qd1J_9aXm1|%&j2IF)<{)3@#{2X zf^-xvjJ|JE(g4EKA`r-6J~+LJ)9>0G1Mr2@9CFbYV^xJANq?9PiZ6hqm8UO=^oXnE z(}s|7?X83Vd{kZ#Y)kT*+kRAKuK0HZ&|C-$~p*d#JEN(j;M^`x>;@G-bdJz@c~3K`CnUsD1|OR*6FVK1U1Md{ZFt2Ba~s z3{aVK0ii(YmF4KRkiyumz}ko6HYYJ)Dlit^!z*c%jb9DU7fT;J>v0t&5ZFcB?BxR| zw3G!Gr@J^Xy$T0ET+-~Y@g4CHoz#uA-h=sO*q0e&K?2M@N90t#k5vI~PpYS2?bYPs z?ug2AF_g)nzpu$s_INLs?jq}*nz!3h^4=PFJEB~tj}vNHVAZX@8c5Rp!4yEddRxJ# zMUb~NHlr!R3gY%2(8??+J6NlA6~OqET_L3 zd3xtZ8}qWV>Oq2%o=OG6k3BQES#{iavLmm&30Jilcp*OIXgb*k56s(F4JQBGVG6?r zkMnHK(NN{Ayu4Q6HE7E*ndZAEAacnP6jnT&6`gu4u><~&PqZ%eeTr3g0HyS1Ra9MnkTo#c(x=O%0-QjKxbu2zj-E+xnA{_Z{)eiGA| zkHiqtpvg>ce+yt3*S9O25`o)?SueZKo=Mhbck(rXPAQ)rCE2e9C>g1Yxza6`U%-Qv zaIg`NJE+spXmKvC$mrAte*5M$vRu#kUsIDV*qpDKx!aMz1+3Do0e>f>-5V5kh(%Tt zYJiOqU98A;;2>z?{D{d}J)uJO=?7e~+|$I@9+fe^DGKjn$VdLt6Q#dHt*+GyRap`= zHYyy`q`?jgWE)7aA*v*4Z?mc9}F~3HqB_wrBA^=t?&Z^vZu~ zf_7%ap+UW&wFJ(OaXJ|C>gCIqk5w8!X~mY$JBU;zLn&+DPsa8nR4t18sDrXe^Y%)l zVO|mN=uvV1ee1L(WA{Mv z8jXXlmNkkkisw!KP*izSl>l=@!Ze)=`iRgTg!^)a&K_G#90v<0;N?AEX{h5pTMCRR z2#>ad-m$>X4RNR62$P#zu(1#kjBTrAm*!!Hb!s6{>`+vR|3%vy^2hi+D*jp271kg8Ih@%c!LEo zQ#~I?HP)9$Pi`ezwyP2yYyP-=tFfbKe0==wGO|FQmX;t3OIF5YUooMmK|@7oB#E~TFR+SFc&dm zDwA<0Kok`D_`JfLGlJ&WNt#)VrdGaw|07|HY`16Eo$ys{UHCIx@@apPQW6odUFLST zqew{SjYl$-5f@NC{DJlxee;egYIC51u3qesu(?2dDCNF>6;kU0j12dGl(gT2dQ_(-Ut;}3d{Dy08ayHC4zX$QF4WUjY$w(kYEUK#B_DWs{~Ig3uqCw; zdoj*|p{UZI*5XK-vVZie(8BpnsayD@TE{(#Y8qv}n90+>hJ`|G&Dk|w5SNhTgk>H$ zlLT4nxVu!u$QxDdI{(@$74%L3LAgXB^{SyxM)0gD@uyD@hpis@s8;)(i8aW(bP6zm7!39NnF!29eYNu468D^&hLzuA87W8L|jTx6Em$9GRm*PGX{t z=>x|GznInp_87EX&&%kV@f+TM5}5-LmqvK5kMV>Vg1X?h1-fKT>o)ldU~g*?7BVoO za@qF7JRomH(6o4p7x{vCz~5-|AxWICX@?4yA+{SL$A27gjIrRx@jiugA+@c<7%anI zCz$4Fpl}wOn2+nv#h3jxY<0-ay4ea+fk*&WYf!4u%xR zDhF?Akp!4N{l4+-tTYyIz8 zp{`lvWls&xOOzPmC_oske5kimSz;OB-yUs4(9w?4g*1c}ND(nsoc{??T8th`pYmIsQh#EV-|e!X_Jks^n6*l8fX&ByDc##g1eA9FQ9P`^sPC)TQ6PV* z8!2(jAi#W3)~F`cWG{#O;zL zLPGcx37tsCVyn6x&>AGu@5Ev-r|TDNnu^`Y#=nw#BMKZQb6+bS`aWec>HnhEsC5nJ zLcWZRhF?#M>Qi+L;f+G4*|!|QZMC7DyhVvao=_AE@qtALF;-$)Qn40grC`?y`-Fgx z#eeyESH7ItP)It4)b=I`LcH0{FqbN`);9sO3-0WQQ87RufjL^gX$dTM0Q(UVag%l@ z6B}&afbec(s$R?|NK2vvm|i$b6I$xV`a1=%#kRFvx@ee|A&?oe80p|68e5@oKq9v5 z^bxKvl0^%BI`duoj{U|G)D*I4j*gA%QFkQcif)`3u5wl!C{Gk=4H?;Zy1V7HhM0iv z&cO9eSo!b2f5FS>%IKS)4o3bKdwsVXkIPv&uL_+qI2#ICq8P;`)RfuQ%>X2n2^Up= z0TIvM+T?m^y3RtT+fU+{EMv~+bbh1R-oV*4uYKI5tgTmFUCd$D;oo_^vOkG0-Sr*+ z_92MF2^@Lerzcoi|EMaJCv^4h|3jY!czflc62D1RLAU@BekZ|ilB-MZtt-h<2z5^X z>eDgHvByU8H_}m0sAl_iy9sjfY+D9$G#=l|%gs%Ja5lOyTFW^akSECsaSXK0*o*?& z%8+mDA@5yEvme)A?XKWQszu)9!Ajt2(~o7lKY%7}BN!~L61YLntkel;O!pm-D($Lz z%GQsvXcfkREnlyZ&UBF4^ZR;D&Q^W&72>^L{>FK)qkaS`3vm6xDf9h#B#I--A(xPV ze>Y|GKpaE@J$gBaEjFE0~27gBZt?-YOI$A+>=T0nH_MB z5D>#ei28qrtRPs><0!;aPQN24qE;v4d`@(gA{b}I{^YZe*IWG&1Add84qYa0UmOT*_{%S(4Y~)gj z0A%kh2}?*$Nr4^8wKSH=0`jEu|B4eUU$dG4o&OgIg6%FqTp6;?k>!>xfvDJnnEhZo zZvZsUB<`{B(SC2h1tb3aIU?#PYeiPIP|Ky2=s*s!726TA>8Jx=s6iD=L{lwv3;&ME z^-5j&_22Jw?oS-zorJ_y{>@i9ZZv#UB$lY30!K6W%};`)5omR6J}Iv8o#7$s)l1G9 znoqKT$omg6Qn1A0ivuh?$;yG9>tGrF(kePS8UvIe?l#+j;@Ga-rib%_jqae^yk!*3 z;#WIwMMXB`GMliS3@b;>5VXW)xpL`A-cz!fRUYxj&2BviF}*ejhL3C^i+njaa9ON% zQkplTI7swMC*b;*voi*D9slI!Ox!JP9JblN1bQTJR3$Q_$E%A`M%Shf+@D4E#p#?< z)##5aSR#1!`E(offwq9y%L1F}&*q)T^VN1?NA={{pkcVYaTuW&9!|o-#e4!ZLR_mF zQ@*q6Pn$uG22P)S5m$(Ch14TID5z$;SA8k2?dHL&e`jo|LR8rmz4Vpk{(RXEg3?*^ z&&`Q6X@1U{hi(r&@mHS<_^C@$xqu0I<8?l!ZC~#DB?!^H^hBTjm}k4E!Tj?TNoz2~ zv4y}0QqAyB29O2)Drkk!*#8#;2vWla92xSchUo)ax%3!2#G@du*`~f6wFRPX9K9=` zj|R=i_lVV)xMR}!&e{7!kQ|^T;b^s8n2#?>A?gZ=y@pi*Io*Il+kS2x5QNUvjdS>Y z2ghq9y-{ArY%+qX>dYPQlu|f5#CoAkJLDiLNA}07tTMGXOR7&v=Eh=PD5ZGKevc5@ zb&*ElGh8hP|5;3`jjzfiggGZv&Q(-792faq{fkhUdapp!M;9|S;)JqstfR#uEtw!y z0SQSu)hJoZh@g<}8fB+Jpc_cM4gw?-IJu}A@?COz>9}1x6NPYR4txKA`-s!BySqz? zt$p2C0Y+bR)I!wB^8IH4F?xE@dCyGQR->aD&;rBO9d zL+JC-SJ|Blt}kfa-DRwxEmtx(dt^9|zK!?Y*VWdWq_dCqU`P4+u)f49g&pX#3`nU1 zId^Rg@f`-jWEyCkKB{Adl7vBQrUA#Y1XULy5SvIbW-obYQm$Y9BIzdRB)J?1hZ$N0 z=rqy?8vhA>`!<*}p+{%#mphQ=4YW>TXfF|W!)YMzbR90-3e^zRfwY!?T~NA9#iv!R z%_UFmWk0y0lAckiF*Jj(M4YGh3FPM&fhL2=adE(w{{VxCwHnAdZU8ZKeovB;+*vV& z`&^0l{#iRii)$ZAg`8=IuI#vO*Ln}>011!hwM_xbNKT5>D&#w|$r7KAfhf5825D@d zP&?CeK{*@h7ogXrbv5rADcR`JPj>2yz6Zj4_c@AueZMEXF;lk-stl+h=&EPTELT5O zhi!S@gg@!mOH;$lD}uESk+7nGM^bZi$p!)JW*WWuPJyxglfbjJ@fd`HfRrEtgL;sS zhzDKwx+;KRxKHy;IW@n<_vzIVln5g)Lr|L?Pq*I0dy9TL#~li| zJ!D7G?!;6akb!**dWK{vmwEkxQHNG#{uQGd)U`gq8J6BZ!P16tV|!~&2U*6Ad$57( zu0x?nd46nSdhYY0Ovyo?0QKZiD7ds8>3h<`P9g&pVs3rAiGD>4$Zc1F_RzWoW~E4} zcq^pP4O-*uo>Iw)hN2FcR4DN#%+U$`z3m|XwkyXsiOigP9+wG!2D-akJ%-2kxv-@H zb=j4^KkNUQ#_d260&0kjA>b4;O4 zqw+&b9=jFlf4-|SB%ow4+GaKy4Jg*pY+QstjSYpAjV0ePdg7YzV8xXv^Pfj>$BOdh zUP_T{Gm)X3Vi{Tix&~TUh<%1*G|;>PyM*(j+X_u1j)L9i|DA`T!~G%H#frf5^PO`< z?iGD{pE--}&0HnKO9aXsJ||G%b4ULx-_4YCCy$y5qXREpa37moLdu$36OhX8voLd) z4cEY9#W7EZ`ixFp$jI-LVuvbBaQdf?sU_fX`3>sqKrP#u0hF1U3v9kd5Avh|2LFz^*(|cfm%6LJ;|-@r;)I@#u~|iIkP$+Am;LdW>5y?X^4Rls-qWU^AI*& ztX^pU`VcKxNnoz;`AFn}14c-9CeBe37WG(91A&D3_$|i;jg!yOa9Z-yrihI ztirA4+<3rQ_Eys4d#n*5$JGM;XXbDnyPlV(vT<)7n*gmxp;+9Z#q|@$t($PopC{6c z_$RvHyir^J*G4s$b0i;8}_;Ao0SB(gXrhCg5=@=Puk+x@UGF=)mk zqZoJvJi-J3&vsf*q4mssvV!9@C@{)>U;bzG$IpY&F1}U+_wXnt0~I4fbMth+N<4m$ zG2Ls;Su z`MB}=j#WR|mLFaWsw2QfNA_3Oy#osfaZg7_BoImOsT`lxgy4Cf3GR*vd-V5rLyHds zko9nOC=;x`1v)`f`iwIn3uj!`&C%Xf6Cb0@zNbWuZ#9I-Z+<}@60$sF=on-hD}G3F z!|iV_KzV@lzQ{-BI$00i1y_yr^L;4^I;W1x$te&9ZlddJ4JeZ5T(@{{r;77v&`t{&seBY%Y&RJOR_n&LeU2w>xM4lI5~V zM^byi`gvi)(0y@2kK+Xn#NdO7zkWUXyJtARY&`ke9=`!)7Jg04dkU|9ZbTv6RzE2H z?&)l=kovg_;9H%(zEV8160+R9(fg&=LMS|;Q`uZCU23-5Nv+#!r7@d%w;5bvKj#Wd z!8|^9y&volcZKc9RM5oHOg;};M{MoEh8t!TtZzG;5l^sdOHE4O4{AjOQQk;`7;pH$ ze?#Xd_+|lV&SRr3)3v+vmyv+RY5`w>;GE=kqQ@kaD)q~if))r_x%=hX&j{PjdDTD- zGCQN0urXOysn35{XJaJc!g=+OlslY@%ZQg zL8#eqJg3nEUYc)K_LCg7{z+>K$^?MoENZ@q(eVOAI3NXQbh`;3Ibyp|5}Lax5DF-1 z5`SX{|NNc*;5$7~Ndik$zX#z(x8Sl1XnS5WjTB`!4Wa_aq!{1!>+}FYE%H5TzdtoE z>5pEW3^Xvc+RGM!E4Pfm$TPvYL*D0^RSQ1lOw-*=#Kkm8^iX=_yc>)wwUslfm%>Yx z1_O)Pu?ZYxs{7&wYAdV^1Uu77cIkye=DszMB@S~dsc8V1kPB%!?+}O zQDdwa7RdWaQQgDKt$;m%_r@AC)}B2bMpl_Aty6>A6vR^p?>wz>%^y27Qdd~8P#;Ab zxff#7B_-z(>k;YW-4|l&V?Dsu3@(-Bl3(Lo6ffEtWYG9jucX?36evs^C!F10wZMBVV#0yfoAW@0UyHMeiHXx-RnW}A&(3t?nB(fZ7h`RD$2W#*>wN7J(gH`sqz5`4 z@0HORtYxk>nigStS}}vI8^dzb#EoH(88;mr)S5-?>X`srg2zcBdo%@Jg6~`QVs|SI zltgc=hy17rZUtf!8?0)JUU+aowdlHr*kLc#5I_uFpfD&KqZ!7Jr$2>^giKA^IgvtE z@y_g!)j?XS#}Qgv2zx1&q(fOVXc_nNTisa6gjFn_VEW37V)5*dje&J~$chTvXG3w# zd|l_{;GOwdyE*?ISiV_{SvI=cO!=W$h%cpb7cAm^v}!~kw%J=?XnL~^jWg(-Ezni) zu0aP8m%AhIyiXO*xT-g#)FmhfHzqjq_i%@l5Y^Tj%XuMl6KAKa#q%KfGKbIvuCGH z9cPbR@~$wAmv&Sur>wPoJZW4s2EnXu%!^bN-@Z)Ldt|&p54NCYq<;?c2~t9_f9&o# zKbvs9mrhWNT4xsyw(A5l?y!Cy&B#j82$Df#ecH!mNZ*1*{xJ8UHO7(jBy$3X2H+j# z3djKuO{b!uv2EWtt)A`kL|JAh`s&w9l@ zp{F^n~bTuY-nuAJ{?A_4ic!Du8PHWU6HJIP-vTE zt1jq^SFA32Wqgi1BXcIDRU5uKc6dH9c74HTL>-BgtXDUSUae#YOVqaT%&sW{b%O}) zeiwHfZ1L9xxfemQ`00He4G-P+o)@m`D7>gg87mVq-}`R7k~xrFo^+vet6}RI_4U1% z-GArwWMmLdW!3gDV(!1xv^IvHX|svRn1sfv-=I_D5Z3BvM6Nkfk9w;>pwP&%G@N&~ znkXEVq$ktXJq0;)ug7mo=-0oEUpSMq`qEIL&uke*)F1fd{oFbPG!7!q`N3qnUo&e) z8CCNQ!Y6J3{&|=Y6UYEYRWpGVxR|@jR;%!XUk*3kZ0$EJdUP&tWpq?|c2q7(=ZL$L zF+Y#9V#-dFGS+*kU^a_&BeA(zqjbY%YGV2$e9%K)Xp!*H$KlCh}+dI{#zOWi`|QJI-;M1;mgoMH4#A4 zA!F^td@M6=BY-Dpk}o3*P7ccGiM5d1@NP_a{4OwKb$Q9*R!fbX%EnvdH$P=+OXr#C z3a;v3&;JvrT8g+X&4K_)ymk;sf}C|0mh(_*e}#KabT#6HZ!c#u(KD&=ius%VLr-`n zfYj(dwzN^f6#;L*BTgz3MP8YXJ&BcXFEj@|!Xz=9Yx-|DCrnu#AN}L?yP6O@-Q&cq z)dZbD69MIS+h%l(Q|^w>{7f+A_bwaLor?)!?}il)@9QgBftAxdEKYoU!row~ZD>t@ zQuZv>qahM=(0Q=!_=-~P9Acy4!FJWb zlr)diG*ZZw5OsCmAKad-ua1+{!Btr_+NZs{YL)x)Z2tvK3DvpMcO!mXZ74>?+PIKF zr^Z0AR;rk}dVh}uq6$r#UpTFB_w>^023<@26y`C-?<0Ya>#j4{y*Tsn&!b^4PidIf znrg^;U^x&yU9!m^>O%OUX-wda{sAlIq_TVW_D;-K(l*>cb~M!No?=GAjmR$*F5?lX zk9`6bN#0@&>|YJ>3NH91hRTxe%opMOETl%olOwT;k-CXe*9X_xd@N_*B;*qfdYPOg zGvWQ>rzVDPQZqr7`8Kg?H7n#(rw&ZZ(Gb-x6@gw`IV7vP;l!E@+0ZuFvoZH1AP0ds z4|(k5n;Sjrl-aDl=;pSHUmL4iBvJ{TUwj6-V&&-bT2dr>wj7eQQsGp-kg+)P!I;(s z?Px(hpor5My=_Vax(7_dCuV2x3gvwHynjARCQB=1-gFHERHN9eMfv3jfwlMQKJ0so zlT?k{8o|Fi7AaQ*W-i2@SyNU_7t2H0kIu)J-m$lhzHP9bzFfE3BO*fgv%<5xPO|*U zmWqAG1A!PD>)L-a6wTH{=ZhBGWd%pv+wBd!hPjR57Yxwiav2rgaXA<=cJ_nl&m(H< z$cz`VAK+zce2*JHlGUN@O;=}Mj-C0bg(|yh0aYn}{pkG~{P1 z!Fz8)ot8s`2QzhF%&gCZg{g;pdP7_3e4mC$6`}>&=bFR&{5sO{E$oZ3DC5cpo^|Fh zSRA85ZRMB8qSzoSec~hToBp-IGA7SsCNmnok-d|Mro`apf)|DGxA|Upr0KM_F3>mF zgR6H_EgC5AW)mcq`i1MP^Hv72%>PnxEJ8~Q0l9ElGgl1+{#?s35KX!9{5qBgs zsBF3NJQ}5@h9Cuu2^wy2K0@s!18NAwHbw55-?mVns#n%IuJ*H!Q918clYfo)&T zR;+)}o$Cv`R!bG&zJndUt4y6ou#mb+jcfm!*8!n3CF}6dhKCOe zY`-BmX<0rvaEm?5uCl)X&rr^H!qDogR84x*@o!QST1K0_tFlSwx$av0cZK?pW3vN2 zJvQdJxYE)t-Cg8%lpx#~--@a1N#MNrjTE4HZ1w)|DV^t(?AOhpqw}At4w!$TA8p;0 zZ%^?}HupZQdm~LjJWbnA+}mz42HDCUx{{GVSo3|QH5 znUyjay|Q+nqTPH)RvrF}`GkI+q3-%)C0uMLDS$zrkQ2P1EzCu+wE_w9-{59+d&L{G*wDY0PfRuDsbHId* zFKhn?I@w&Wxjy|5I0yXWhn@dLZ8)Ej*!th`Q7(KrEK_ z|NVGTPF|kO;_=XzVHT-?jCn||-t)=c@}NykGtRj<$N%9Mxck2~Q!wSTvm;L3P98eh z-0GyLZ)|+Hi%8_}QS2f_bUeDO6sAVul2`lh0ET{SxOy_;6>$80RA_X=sIgi9Yjpj? zU%kC&gX3FXzp2yYKS-rge>kM6TCf{O-KM6d_BGn=J{dI}c!+f4#MPrmkG>n}|Lxzl z#gcUeOZfLXb$^xCmH^+i?a_CUifP(1JQ1rG<_K>ik=nrR>NI4odD(Zlbb0yJOK>97 zb>-8|Wj~fuw^c8mD+}KL?^(D&{5^T;gK%!t@Reg%K)pLlEr9W2tUgMp6ZkKGr!L+9 zWyOECn@}B>^-gBFYtGHa+s90rQfGfYEyanT%yn1n9Uc4c?$1?y=twSU0Em6sE#d~( z?r)E|DRMD*@sn7VuuG}c15ddY=R%2ix|P!wuG8B**_*6p&eh1raAeTSC%>dDPI_dp zMUGzfyfxTHw^$t!(iG;8m{b{D;dcgR=GB-tz5pPrUz=aM?<3M?lQL65zt8%i6MX)d z{iBMRY>l+=s@3j}m!YFBqlME%tcsn*c zGP+zZ7km{c(?3!aFc)ahIJ42;u(s^A3PvLxh|1j-Tdw9=oU-PZTA}za4@Z2hs7Q6e zuX!h{_{ajex#P3e!m;$4#>P%S^}oaMMef7cU%Z@4Ntx9OkS#sxurWMBVf;9g@oRSQ zMHm_Qcq`Km1%s<;PgVB##@=ONP)pFjHvoU$l z`1w)Y7ms6`1*1f+dDu6UwELBJT)Uj-{P=MuP**o=L77)3w_T=6yYZjLLDxxx>!)jP z=3g3{)8{)G&1@cqL!m;I0A=xPQ>L^lRn6~l6Epkj4@Nn1==~XW9*gB#p@}Z2g&_6t z;2^V#sfIwIgsl66$1h}L0$q~loCbnO#&`-`bdll!hi8Ku%_Wr#DT#@Ut2276A5&k| zz`p>}Y!t^MGA6|$3fO!fKurRF2wiCb8&yKYbGa|yE7asRxJ`Nl74vr>6GNcO=hn}LQ>{6X2O zxmv!DeICCo05j0NyacB1h4j0FBy62pm`o+K}SMBVwbMnUHs{hi${BvQf zJ~SE{@8(nbslEnv@Px-uUDr1eqp_&EM>K}n(Uz`nW|_+5M=^vZ^3DtSL%*jw%tlKW z=#5sV_;!RDGl!?3GA)CkBW5B!5hp!9CwDMvGM2DKE(6aa>U+gtW5I8@NhiiPyza)&c>q7M`0WOGUes5sN?-E*hJrHGk#OQfN?s3e4`l1T$?{D z5&1|j>ne{Goh%#XyIk6of!k?OVz1YysNTRa@mL%d2)RUKtf-^7xc<9ypXP${yKABp zgC_4-?7K?v9p&ol*&_$#b2m~VHwY5e1lKY#u#aSjv-6zg^E zZZYF-CO>ero^4B4Q$fjQ^n$f_4-eX`vUxvL*2A)e?CRK6EYd_Ld?DXQvbut2oCwS) zxvErnvujB}v`B z(D?D_wC{y&4O3GNMMlymT158b8;o050=Pv}ToOumcWotK5qN&xMl>P04ziw97BJzY zp(Q)&r(VLIrBe5AIfv~(s<46k?O?(`7BPkSzqoqKsJ6E5dzcC}3KVxJ?pBIhad#^g zS}5-BQd(S#yB2p15Zv88I0SbK&U?7`xxeurZ$1EnFF9xLWS_O>oNLaxy3~;wKqAJl z$&ElfRKFU+bj7{CmG}Z=DQj${=Y8*J`{#`YzJ1rH2%@1af5_wJ3_6KB0L;#&FKfFH zv}^+QQvc6g%A!ex*G^ofhEAB6T8K0TQ(py{rgi7yTV_yJ|D1HdGW19XSjY;SC~&a;%c1Msxi z=Kx{sv=ps6TxGj zl{Q~8DbUgHR|_~zZ-+a`6e|VXB)fcBRaT%*+qN3Sd^-2f`12h9F|7kDz zjZ1lGkEG{*MUUv4&su~`b{E@#giGvACw%CPue59vpt#6>Z1fwTG`ZXw3*OEt30|s3 zx)06+ znM4{Bc2h?)Ef0=LZGE~AcB6e;g#`tsUpN=8)kp1md$%0QE4+Q^+XJqH-Ufrcn__4M1B4T;mCTi3l8xC>KfKo*R&;N2?f4v>0^xyQA=>3CO{ z2xebOvvwb1p9ze-1w2}_fC9s-H=Pw)zk2%_un@Z$ogduNardx^TsQ??7MDkD5P85*Bs}Y zz(J+W`uru@P5G@7JePGLDku{5cEhvmhl<_1?l`64Q{7fXj40mq!6ShX&rOy%+iyjV zh(phqGz`oZw*flU&lFmHYoL`e_><|V1DoON7ofym^9%-`d7j*#owbqLY#JzFW%H8| zdf8u4wZvVqXVnm1+4lC5ZUU8UXI=Tc)1hzt3%TySqb4}$B^9h7!zIsD7Xq-tG`nO1(%tZ z<3xlX;BAkkS2b;LSHKZw_x6Mp04RON>(Z>th(b=5jW;br0mIW|C!uziG}H&p`kSwi z7K<$zUXsvs3`;?;5mtdm550LY{Ki4BEf?WUT?c>}l0MjsAPWX~w9MDz?Kc_eg2q0!=H4Oz8m2JEmeYo32a6-41$&K$zU6wzI@pt~Cx*TDPRy&eTpj6M*nk#INvymAn zG`W@}f`~6}E1(0a^USJNdS#67|JO|={C?i%_0GTD;hvhQzkVb(K23Vr_4uvZ$rPi* z$+b#R6h_8}N<=3@I=huRK#QFOq>nYHK`=Kj_@;Niftf{lwRA`UB-D9Vtsjbm_bK0N!D6fCMgIYpFFnwDV#5vzkzYk8NA+i?zG+ss<3 zYH5)zt^0bek^<+R^g{U9!y5##lG4&}pnEAODX|<^4@dF)C60n~ZQQ2{5IumfzyUCd zEH=2re)k$eD13T?ht+Y-k|euDHDiy0F!B071Rw!@X<;L8-BO8X9g}2AHBUJFre6N~ z5#)9lTa0J}{Z9)Z?{-on-*DB~-%dnXlb83eO(ZDz*o+iRxl zZ&C$m2^$&`i|qZ;c3sjC29@zL_TJy{w*Ua}qQag!^Pp?GJDen2h8e`Wn~sq&Ys(VP zm_m}ZXXTwfk61N+|0$q>uMDtNzV$Dit@%1gHe0g7qLC)rOTQ_TU#zOBq0Vy$&*iQ% z9>q{-k`gFOmjBAdLQ#MF@R(UhN0Qp)bzOc$@U&sUsQ)bwuJb~&9@!sE6+R|~-NuB! znUEW(cX>Mc>A~(6*XzYHBmZCFgvb-J_3Vi;jz(2dgCTK}>3P+T{Rx%`iaIwPO1t~J zIhWy}F{i>sR=7=FkyF>8TGREYuP)^zqmoufgL1mNj+g&lX?^6w`5^TCD!MEhx|4A> z0-_DSZp~aje^|=?oINiA*72UJNPHkE%o%N6oMi zd(j!iv@z5wnq+y0B_wF(S?g7>xWVKYRz|pd3m;-k2DnNiO(VB?baWlYL&TA@XIOI! z8FL%z@5x(^S=PolWpy{5k~)J~=3$-BKCS3CyZ>b*ASiC! zbfEhQzpYmjUMz1ct|0{(f0Yjx$R6rz|5-3ap%o(b@N3dceRD`;nS+8vTj1FzjU%m% z9va$;Ktri!o%F-_!O3K>tpDk3NCNb0pOQ%Jz2K~G_7~eSY#7<|9XrEu8u(Q-c z&s@k5auY>`m3Iu-4b9I&5X?;JxlYmdRP@cH^Di1!lb(b61S1jR6l7yX-bcA#ScE_klv`dz zx~x2=Qg0cxdG6@=OO?aBa;l}bTx6BEV&82K9#kZJ*K=K4e=iXenOc?& z8uN7{eMFkls>+1_bY$07TXgRW*L$%*pye%ejQys8tstg@7dq@fL?xiXZNw2ULM_$-lx9wvnuL=jtP z<{JE4rL7!fX_>H9o-o3uFgI&yL`TaSJz_u!TzU?lYstn18LodHBYudAxi)Hz<5fXP zQ-Bt%pk$Gm&W(G8NZPPIo{rvAl~EX^r`0+z@XxwO{x5j};T!sgOudgnUfv9r0@x&t zMeFEbF$dd0MvXwb-aWe{m68GBO|m}35#H<+kV{E)nrD5qIwM?pQ5N!bWc|JMJbK3Z zfs$5JR{6RezU^0Y@K{D{zxdeKDBrfae5*~Lbm%udoivIuy9C06Klu>jZ(M_I`~htO z>>n;&8BhPd>_osI)o6vzPs{N?Gz(d4@6s#z>WZ{#>&Cuw8|pfx`UiVud3LPv@t@0X zeYtY-gL`lfnPxSOgJfT2-a?j&k_&V3F^)#}(TubV`%0er&O^rzL}|G+Ekgjl5_7Jg zivA>SEtVJ?$6%*&PpFZJYTvoffuR-y?TkTo-Wpo9VQz79i;ZK(Tya$rS|HAuzTEbK z#>UR)4;rIcnijmM=nbV>NmbI7W}kwYX;aOcDK+hp7dg5$#s32+hEm_v{0mmI zh}S_uj0*?I6r!9%`t=Gsx!eTFQ=)2E9H(~hCbA9oy!IvZmt=`t2q17jwSuVbqAkzT zybKIRsjAH;?#Zs8uhVy6H($_Tw!+aI_+54R)VVITd(u;o$0@(a&&qlbtt&@gF?!Pt$(#H70@WM+C0 zm1kwfU0VId<=HDUQ&U<1A%8Xu+-~dWf8E>ABSL~ zy+{}%{jsoE4py|BhR$$tO0+j2-@c|bxE7n%!%A~56uDjmv~;t~;-VNxPWJ^Z4}^oA zRP4>;O==>+Fc(g-tQR8{ubw>(IM>#W20Yy*i^czr>u>X){2K~fbM_Y60AnF^kDS*{ z3(sW{ogj%us&idGFoPt?-fUV8#L_yRh)~cexl=2=5b2m~2|BmI)s0sOm81|KBAb;{ zI}I+^NVBtr5UFaY2-UE;(&cHndTqXc+4%Hk2r5L)iNG&ha>f#+-2=JEIrJVER|FQu zMxe^+fo5UuheUNOiPf+>@$85yWTML8gh)-|M0I}6U+5~~K>Ss3-4;_fA)?E;0jqEw z%6)r7ia-S*w7H3Fgr}cv2=s7QkK}NfVk84A{9O6=GI-cY6k3oqUK$r+igS*WuOA`P zPC+aSeBwox57WL4Lu2CIVr-mq(a-6ATGxA^EMT~7{BxBoO2_eU(K69p2d)6I2Amh_nb1!y7s+vEf6HRP|a3Gu%YcY=jRNMZ5*;Uw!wD z2q>d^dUZ+1@|bj4b0b!d4zja*c(%XV=V^@<{cg&9kQ|2Ezz4NjwRy?ekL>2{m;R++ z{;eT=lx9ys%m?#CS(G6Q)kb~_Bu9r$y3crQXk_Jv&>A-G`rC;q0Ayd9DhTA>6f#JK z;kiA&8(IQ#GuCFdjLVb!EG2^z8+ygc#j=Y^E!tYFfn_!YF`G>$B!j}>KPV+D3sym%fG%3|A2k1fwnUNB?qipH47pG@wpmT zX%1QO*y)PG%#90TP^VX>uurN8FTU8$R!=dvr^qlD_BVJgN|X3?08%VMDI{<1k2|O` zWP@0lOaYMlD3e%M$JEBu9>Ss5&Iv`EgHYU)lXyEP=cl6`^+N7Ch6;=R&N-@Om6Ry8 zFYVHW_Wa95{Cawxie+EB{Jtc71GG0OSz}seJKGs}QyfZRrZriGue+C~iG(VXOurl# zRSXaiY(nxYXrBy1g2g3_Lyd-U8<=&_sKpWnNQZ4~$_I3t?R>QL z^MMZXt-06~Q)|p-%%dl7s#D?cnAAHxlku56hojQ4MIu#*{_~s*xM;Wzdwibm+9IXBqiNnHiuGJU^luO3%YjJ&wMgT z2PWc>fF4f~^P!?oAyt?4)Q!=hZ4QPRA~U&wo@>Bp>vnNr#RCuh#F{(n(4(fItZYeX zMLA}e+st4cgD&lytPe_a5vY<2oQ|m#@Jz0?z7Yr_gmbE$;DqHBpCC7kRCZBT!@mTA zydlZb{2XJRq)U-qV&J9DpH+_wxuEJ}3g&_N$m?U0g-iC|xd8`dZ4Pm$)duiq1 zVr^RWkK@A>U8a!y-o2e5^u(CumOHOahlE~Ob)b(}^=YL@I%f#f^me0H58)gBYT@@Z zy8bF}N3`f=aOlr+^bhn{ojOW`v0Yk6&nJ_Y4dxH1F4{3*P5nFNfswQL_7iuAzw`#d zMmh1}9BQNShmS8Vh>i%$7gg3&pMz?$G~Rm9!_sZPseS%J^^goM;-#X4GV_6jz3ydB zmmz4^M@uwKH(>c|>m}*y3+?Ufm%wWJ^gYStWnIf2vjg1R3>+?R?C36Xm!|0k4jjgV zM9UhN-tr6P<3Nn$GRuL#>3{f=BpOU(z$+hrfns))=?rl>y_i} zvun)HARK!ot(CkQLCG^kW@nmPF)(R#NHO)Fk~D= zmNA98X!f7Yyler_p4Mdq_q-H1tF|jFtPc6$_W}#SXEl(L(os5)qmX$3Lke?inn{7f zwV9!2h(f{Ynk`Ar%OIrh$o_;ziI1#>SsXSpjD{hlgpp`K^{J0htd2dzRc1k0$u-^N zGif(1N9CVXqZ#D1;*(`EC-*3$Y4*r$BU;MTQ);n*yX!^r<(3&?DsW;{90hxyO14<@ z<5&8`aH9B`K2DAS>-JiTM23E2iK@H$u^81Q8COlsp0m>ml{m)*s<6Gu+m-t$&FK@q z#LA@rwWS`q5h(1}s%vuNkWp=KNh2r?JaDG&x@5%>GHs+x?Yb07@7(Qol{`a|Z9mLF zolbpky@YkT-00DErnkKPH)MD~NgQC=0p;pDpgl}Dy?XcPSma^aRyKxc92;Uq?R*RO$_RZ<#)p>_ggwZNrW-@`31oa@?yo0kE8X;P z{!LIyN&bhv!7bm(UhDUKBinp6CM_-oI?HNTN63)>uB(r5NFi1|silWb{Z#iDvIM$W zGUi#u_h##3F*1}I=tMRAXDE#S_IA5T*YmTzKlzp?5jQ?*a_sW$LiYWiXW!nfB7L}( z^3sc1!;I3$l&9L@V2ZnqZuDAdz%_j9G*#|AC~$96x2v8f6u81>Mrz(E8#nz@6N3KZ zgt~9uIIAA(!u6uJy=mSh#Zc9ZPDS0ue_tbyj{^2f^6SQkPuxo>VC5MeOTNcSMhW^; z4xaKX8Er}_YgMF3mQ+zpz$=bL3+|_!8oy4KCx{qO@&O99S*qs-6F!cKx54T!`%eW< z`2zYiUl`lE+s}LARQcR-9`%`fKJCUe@MqN>r?uikGET=o9#pbVIZ)rE-M1EfwsR|M zso*%H#f9xu?aRL;Zp1RW^#aW^4@Dh#Eyn2BrqpE#YqccH`Ue-%b}u>ktJxE4paive zzS$*EXCeG zWN~dS}&hE0n}J z6AQ0+-n!BD$2=V~J`WcWR-ho;Z|D7q$yb}QRn1q2axyH$5{(u<3nBl`t{O8hSMW{+ zqV8ulYsGE>F8uku_JX5Ec`8dCLIrDi9nR@Iej@J5GcDB!oXPEI0U1LA*;hg1aI#VCW%{5$}22qhTcJ$9oR1`Y{%)Zg{X_81GNcqIA|zZ|iC z`ue&zK_HcuDn|sL&71s(bd;2pT-Hqj^smXaW2CA!8va?OlmN)pTT1qHB-d*FoyAzc z`$_Fzj*|lz2bmyf_U{7dQ&-nI{q4!ROut&T$K&o}mz#39$aP6x%;ymPjb+QezYP}3 zR^(o8A$zXOB79KRam_Z$!>O7&+|vp*p7+D-<=c@u~jPLJQ$T9~=5@ zI2Tl+?-+KQxC{6>`=H}9Qu=y^Ycq&r4|)J z)Xm*}2Vmv@0&)erdL0K?tVYzx7D4%tS~C2qol-EVspd1xIr-PmBoDgxZ3x01Lqb=sj?z&{72VtqV zzOlPPhij4ApuEtF#CO3pj)b`OHKYpH=!C_Sx(1|iIiBw!99yo>})C39y==rmF-t6%x5Z(RxY6nzpuviuAPl^n0KZi9Xq7Hk8(k_ zwq0EH^FO2z8+TjC(e}e9zQR3(ur%(QE5;PeHEv7}_b21WQWsg>oZY`PI+tjL_mlhd z`4ri{FpDIJ%+eQ#RMf5jCE}1;D;M+<(H<&wcV#B^(LHCk;{IZvJXJpQcQ`rL(vz4)hRE8GyJ{e=qwSvv6Ho&2#95^ z_V-lTi;BS1km;;Y}hK%7D2YBHudp z^eAZk!8s)ee$k5gAxL!l$ommOd}RkHyMc7Bg4s*JTxRS^PmvFChg-QF)XbcFE_ipc5V%9^Yj#6)-BPi2^wjcJu_6uGW`y6r@Z#@|0`fdgaQyz*(AB*wTCKn) zB>1Io3Aw7Q6r`oYKkHgY<0aax{xWM?to7MJV(7r3)NHw#{)_GqE6RW3#Yaq7kM#&5X{)NO@Pvi6>y?qmFOWm z+y@0V7XNN&412M-dYWLVs$bh5EtdukaRv4KEYU6rpM0)snF!|Y&R4c$_}!s|c1XM$ z2{$1iipyIsc|q@{X*4=;CU5NKcN8TiDtL9E?)JdWmg+7}siu)zd)CEoZLyzOYbAJp zh9x8JxNwIjr$fl;@@Fgmcv*bzm%d>FK`ED7q1puW_xD7RT^;Brcwg<%Y_Kb9wrGV^ z&P$gS9%+6m!%`V46)*cgK_Kf|_My>&{yY=-*nIi3K0;`8 zwt>s>6h#!u8_+@O3z8ENd2z5%ukyS8-~bqC`a|zFcXxf(RlB)qWDALl!`1>O2NSk} zMAm@8s@+xQ2uhc~w6X`OW7W*xJ~{S6ji^<)=4R*nz`V6DgM&Ug^vcZldAw;PA5w@6D_M|pK(RV#~Jh5pgwXfNW&79 zFNkp?HJEG+_h1Ps3W2i+)m9Yn?|EInY^wLz)Kee()v_SZ+=!ix9DKmU;M% zMEC5E-$sSP!-y9l*L<-ws>J7T(lgbbOv{#-54uSKHHSk}Ov7OVd?cIdL`OU+G2^wA z5{Vqz+3Gx&*8Gl6Jq49~@V%lY2`{1>;cT~J{SF-1DQ1}XKNIk+b-;$sZ$$_v-+9L( zd>LCk1^^)S-}PRb%`WO?1wSayZJXo|L82y&1& zobG{E=V+*2mFjR@7cysZxyUd$47=q(xBfw*NoEnx9Vi2y$=2&HO(?ABi5mT-+lquu4|*m)uH zpE&Ry@XjiP;O8FB7A;&D@?|>x!~;SeBYMJg_2~wb9Njohn(0~YJv_ELge^J#}1n$ zF3RDff2N<^hEi=0!7dewKODfln_{E*MV&au`g7Q}vt`6JPLQHeQI|Sm4-S>Q9J{Bw z^@}ag2#dZ~;?sq|L-+0#C!X&=lj9hayX!a1R^U#E1x38_)Mc09L#WRY*2C#tEjf@}`L7*` z3Ie+PzkEdsA~$oaVEw#lg?xSX^>f7GnLoKk{$Tor3xNWkHLLlaq@JpUBxo{{%hM z-(sBg-%RpE3ka%T)nnkipBpk$D^(7nFSN0w;$NBS&Y$)LAtZRDAroe%{*kxS-Y44+ zlYWc#>gWwn@3{n8(FoeMhx--XR9nSgaFCB41WEW$U3}8miPIz^Yh+ZTx0e}0L0hvc zr=K1uS^VtU@HOqt9k0a8rqgQYN7ie&_LM`JZh zuoo!;bf8ppAhA}^`hDI@`SsA!VP;<1(T9$H2Kn1$a0Cy;024IM+&$%w`7j;}0c|jU zzlI<-2l5f3;M_b#FK6`PGV`pD5c{Ec;XUb|pjD>2YX ztV_d8$kGa_!pzljOrbHh$1&>TTQ!#Rme*cAQ}0QInJf7Wzi?&Gdo5%3Kk?fS z!fQiE^f86?{bylpdUWpg9H^F#X(73u& za7BeuD15*rSxEB^i0Fz4EHdt)S5%kk6ea_JgdvnF*vi%+Ul zAs1$pRRY$m^tan!sX~(9Dqxr;RaGXs)`Gn5$Zc}XI&LU-!w=L2N>|6abZ?|q(N=d7 z+27<9poVsh^e5)H)Q-}##*(~g*2_n}Hn%|nR>5@}_4XZ=!6{~5WFujWKISJWeIje5 zd}urOl1gPo|Is>ebS&R#%1m)}<38J*=pO9iln-nQC_i`q;=JtXnv|JvZyfHGbPd8f4Y&WORc52!`ukgr4@hM|2W`9yfs1H zJya7Uty7|}QOq_s9yivtyG_VHOs> zElWoMb}qZZa$f-dSU;%F17!TX9#X;n{QkZ1(ui+gT;2sOCOK43W z`V~GfkpV198)HE2)8zfv&HhFDvPR{yCH{*^l`fZ7?_22dD+_Ii6C?lq`NWOoh`_Cd ztv3MQ;6+I6*=d@t$ANer_xEucES9l8hO^WGaq&KV;Vr?a($b0qlD*M9BYVEeIt*uZ z&4djoem#T8)a#Q3A-j7n9y%!YO=kIft7bYOpI+t76c?YFJv(~S1N)un=!9r8(o8j9 z^@vNv<&dJKrP6^uTa1l%%#@!lg?zyt{b?VO=I=n`MfHNF6oE*|dCVgV<=>aF+CrR46|I5!~(x-)96L+MVJF=^a>$ z!`NAw!}z=!sIXKPk&J*7u554q8(=)wkeCo?61)zLG)o$hx7(~#9l#8}i$CbLVUE`} zNdXTSamzpwf%JCv5~ACzxrCop8*tEsUheaXL*Sf2>O~FqJO|YleL6{kW&YTMWjTJx zHE-OX`Lm2{=D6m7SR?xFfh$DlMf_(!S}}jrBy4Bd)0>>tA~e;HF&A#S$Sx}C`SuSS zRJ(kCJ2m2neZ%rBBd`Yv0v%)h@-n`GXLYxd*oD)wiT4lOpQVQx`G-^OOP44u&6Z0kc-7~> z=T1LMyliHg8I4_dx-fuv{?rf(@ z^n#-V(K44rRR`h0hCpM*3~V!VSAb)Smd1dV%N}b%W@#-$`=YAGpb>sUo-d~eNyx5Sx$DaQQLxI1{%afyh*@esSEAzhwMiUEj zzanP-Hs>mTYG`o+~l68i_x?wi}6{1gV0T_&{aYmrRhYkri zp59~qv2vZCkd%mU{A;P#Xc7lngp_BNe)(@{I)F@{e|INC zAsD%MJT{Nmpv#IZ3ZBpaB9_s32}Wu9q%laKRk|Yf7YT#(!@kDzW&W`9hr{g2IigW; z?2UA1LX(U<;Bx6$={fn`+B))hVNG0jdMcS82Y+248&#e9U#hc ze(6;kv;FPsGc(bZ0k!53*tAv0%oC#lyj1WW3W4D@+#Kq3_hhH0WyuPcltCjlCA-&& zgH&2oX3qd+SB;+lAA%1nb>AcZ>~-4qcwO6OHoh}=;>M$sAH+mqQX!AqeESDH^euPX zSLLV(a=LK8o?+NE$Th8J6zeP~fp}j$Dk$?var3jbs0r`aa&4*+?SiYGNxy=So};OD z5OIgbI<4(^!xWO~i7@4Hs+zWDYj#S~gIjSr$b2X75RiBB@a}AwQR{;Al(##c`|wdj zUtdC>wl|Vwf}(MS;OV4mrMWxV@g5B+YnItcbw&5Q3TEpyQ}gvP26+TLoLt^k8*HI9 ztY4zyT+uv3=$2Q0IO@@bh_dfJ7J=fM$7Ig)fbWX2>pMyV2l>8YG=A~Vv_U5hV)@B| zv}bQACt;3+`(|hN%6x!-M&h6wyVdkJ4bVttX~z$|G20iI$^$1%^UhDjph+Cm$n5BN z54t&AnoCJNs7~jBGfb8@0cs^roo_x?=dJmTKDkmgp_3kx6(w5s89t$>Eqs0=2GUZ2 zF`Sb=|MCjO!=M5eh#QlpIE4VitiZEf4?D!KSe<^(qE-sywr9{u*=?c)~(emIBjLz@bc1CZumu=n;+h?VMat4Q5=@qu*N;~hnI zHT`%h_Jf@yefz=>otO1mKtobc^t*B1-w4903d#Br)sR}&J~GdHy<)0F^0 zu}ePLLdA?A_D%;BNzmEJQfvEq!s?s9uh6dSG=}Ys)Ub{vLwY#D4oae*#+ZiztveLe z`D*9kfd9OJGRFawT7)3+8ez`nm>@`0GK%8FuNZp3bWRHFR$e%iJz@+ z^CnfWB){S?^!txs#q@+%MlKzS8^x*sRVL+LT)@o$$s?gCAQYoKE zVya=}5u4PdPZcu9pjD)%J6timQ~n1E`w%^F@ZlD4HswV}8hv|NDFm-?XG?FMdO*3C z*b@&?kRoMm~gThzzUu8p>qWFZ|19L?_Ye6O1+PhYYSiITBWZci1u!-Blw=0-DW z1?!i?Svet_k=hT7?+vypnx64&M~sgQ6X4!e0=VM%iJa}tUIpNP>m%j+$P_G|z1D=D z`A;#0)7%=Gr$|E~;68hB>HGSr1J0nin{J7~HxMeU=GuunHN=cVuVz~iJL+-YUOm)x z@SIaty=~3^eM3GugM)1u303@!A5lA|Mlg-)1_>F_6Dhkp;BPoULIobWn9s^iLgw|? zSbn$N`Pm0S0pVpxBQcJvbj+J4tDVuJ`0_$zR`QO2mEI~v`1rUi<9U`V|o4Yiec=I>_--mc&1F(^Yufb z^NBS0PHk}XJC_(1JR32f4mBk$#oxU&U1hRHy%5%G)Wp1c_agC4W6!x zUKmz+5F`)Lm4SOp#8f9vD~FPjz`eH#Q)b#rdaAHfo|<AKjzp)#*r!(O@`1V{AwgOqQu z5zK)`RKBmV#eGav{D^QU*I`QBAc1_n7+A`vCw<{Wa?QYDmvo%>x>a$W=dRk_8slJT zM$~;H2;#(1n5-#8%^<4=KNVAB@w(ARueqe|bYS_A9l>~x((uR^5u0*qTt)CWFRfm6 zm#FZd*d5<;Z2Z|u?#4rT&Pe$ZZLf=?2IiPM*;tuw=l;N#Ft3*gKITxlv1DBHioSX1 zh6Y>a{{0Su>bVj^JOZ4qhY3$d^etSQL@d~HETaX73-@AfeNMVsvfk6Kc)=)hjdGxu>wKy}tO{ zB>!Sn--3V+NpEYCi&r-jTHe-@X{b3v_AK1WOnJJhRSk>sr@a^>B<6>ha6wEIN9(JZ z5R;)`KR0k+7flS>tJlB2zq`B$Ip+JYk8}3ZXTA{He#-q;;%;r=Fq4bOiH@GJFM;pH zw5w<7B9!<(x#7D$6N!H+Sxc~02<<_z}HB*`h5`md%+Z|7mu7+j? zIioz`ZtX=+0edH7K%=c=D*Bb(Rgtas(2s$2avie7zcysFBgf;t{%Z;S7MrSH7}~!V zxqgWp9LatYQbNW5nWNTefCbJ;-{w>iA|vIt;VIZOg-;bE`{R$E-ovlO>hkIc`6An~ zsWX{(o`KQBk^vo04?x_ozGJ+X%i+&kV=hHkK3-6-SI@Fu&HlRJU?vKG6?hCkj%jWA z$Xzan>L_Bm=QcGxd%vo<&ryWG!qdC%gtwWBcQ*WNuPV&=_IM;cj}eM8%DorA-7Tn(c6u~+?tPdje{bFr>a&u zOc#N>`aXTR3dlCUly%awL0mdgD9)Rvp&M6)6+_pZf&r-HpWL0_wKR(u|j$sl@e)I_Sa;!3VA>DDwDx~)) zU35f8i#lB!LrTYyrYxSK1`7*;$`b_bE_*&4at(`|S9lxM#UT~+C)O1Ru9!E#1xra8 zN+0C$r%4IM{g}7?*lGo|QY^I9I5=f36vtK@VE!LalAxH~)b zT-+y_+Zea=EfxSNnAy>O4$yO%KpI|576mj&_x7k|U9T}q$#_!gTWDIvGX09Jog58g zv9=Gj1-Fsh_ST=L3%d9cdu-D-+;0NRtTSlsWl%u`|sNwz%Hk5}KqxH3|_LH4`$ea_s14V$5fsG*62T?>bpUVUx^wq`p{rfU4jrF{u^k?|Tt|Y19_9?P+TjJQXm*rCn6ciV_&fKC$+Zk^Iy-nE zf}#a_6a`Z!H(ARgv8e?HR+HQi(ThvA?svU3v$2IKLZY4eCUGN6U8&X|;!mw9M`C?v0DInTGB#}1{QUt__ltN9#% zer2H=Yl6CU;x?x1>=Rs!aKv&?N^2W_Uz0Xo$D8U^YEtuEYpxT`bWu*B2M}Ax#bNZ8 zh<+3euG}(JJ4`aljqL6XIcoIv^~#6YY;{cY%<>*1rJ{(~51MmU_~odNL{NH?5gd(8 zVyjh^)4fA`>)MH<%h%iK0l3Nk=~uFolBMz}d3{nLE+Yn;fnSm6Ummdr{Z-r~|9a0j-3uLKG8<%HHdZx=%)aMGEIu zWb)s8bWPDMaRZC|Zrpih{W*y@5GjZ`I@m{vb3jnKG&0dp zcau)N{1?n|kfZ3Gu+Kpd8y`O^QN|O!YoreNqT~^k3~aTD8rbfR{rXP%;j)Od0;Ibz zA#uM-b3t;Hh3$$Ttbz24|FBx|YmqG6EhYqqi_0lo2PH*B7loAl!MU%MEVcXdF^@q{<}b`TSlj1O9tAgK1yKy|ZJJ-|;6F%+n3Olhvj z2{~L`lEaQhAGS@{uB7|9<+)cRT0htFn=oC=(^I)P{>& z-fpOoVT0#?#{EQ=^wPh}c2)0|ipnCtSOc2<0*eqT44{ z?OI?becec81|Q5yHWJYos<)}r)>bJEfW%@gRhNTtd$dXl8FG@#ZZi^&4i9rrPZu;` z9UHCdf?E@dpPhwD)sV~=rO&Q9`A}@j8p9q_U&7)be>Xi{&2lq;>3ew?eA%b9Rgwz& z)o8bOLW7|ZN6*O2`&#Ei#ZfD3!+BKn#4o*H%pR9!H)}KA@@0<()Txd)m3QeWw1GX% z$dv2-hDsNN_3A%g;DK>{H@|)PUW`tA$?d&*ONr? z%eOi%N56vX>ndU&9xkosnOktWG2Rx^oQ>VNvO7%qPjv6IUNtS^p4tJEAkmJ?!FB+U zqAPc{sTz{u{Lq-Fx;D(u!SFu(1sml?*jVXdAfK3+i&3Xq)BycH*#eAi=~a5{rhAW5 zV1&iPGCr)m`L@r(VdZpsKzNy+EEW7v{3Uzg`frt;GTAaNGxs037 z0^`wM^@i>HJ_^5_Rph6}76GB_?bEUDn$E=g=WuUUdf94O*0{lZXFrOkBCY7B-Wv{O z6+X$w4c*8Y&!Avk*TT%ZZfSHgBM<_-j5{Q-Z}b^BB#crv=>GM-ihZwZy;}2qSoLk_>Elz)!Y<9FRR1VT$h$ zVet$y1G(ZC7MV&(D}TgQ_Fc`uM;SP45~3u;K6_@!XKv-n&^uh}lW+=i;ywSE04dol zUk_D@d+(Oq6=F0o4M&l`IgV$}dRy=W?9Vr{j$*Z0e!@DuG|vP8wKPIkN;%L}y?&F3 zmvxtfu}|O12rzRCbtcM1kN*XXqU~gH28c*#ncjwroEj%GHNb9U0zA`+bekNC>s655 zctvNSv}FTE;*JIRYijMF9N01ziyhJG%Y*&k@mqc+wDVKU$H#-kw<&~1x2M-sOIlLWuKD54b)zfR6yW6i^qK&YUA+ah1JzVE;t;1m z+_~MjyTL!KV7>k&%Up##wqqnk47B{8nL!)fVompua=6A(&4A49%_W|dGYz4JTnYvn z@H%;qjRy0xo+KjoKAI;VaXk8C9A?Xajiw>=bMRcf*A-R;+g>|wlk+AuVdOx`aXcjZ z!!RtkiWzrEUCCy)!#1vEYOy1T{!>z$kHV65>m$cOL;ZrX@0Z!H5(?U)`f@@+HCL3g zvy6*Fi{n$1w2KEn1x92z2KXR9SFKQ{9S)-9GO8AgI9W)iS z$S6-qF4QP*%-OEKltn$ZXVXD}LyZ#qYs43_-^kqtyH2fKR^JI#W5G%WZVD#m$PO=f zj@b_-)?XAUxA}eQ3JTG)8Qk-PmOKZ^s=zTkcf!HDI$0jJaLV2Zn z+*_%QlFbaWEGJKuFB~<$J0Ie|=~v)gG8GdOeP&(%@$k^@0IiNwx7EDiRbq6M$B_jx1{b7)sgfzn8Ki%1F#-AH$Xl!DUTol-M2(lL~PbT?5kH}SXTZ??Mu{jN0Rp`v%Igk`d3-rc2bpg51Tg?jiLt;eZ0 z@?)>D`&+XkJ1rv3zp4r1F1j<`C&aiboZH6~X623V6~esn92RslyTCfBUq`7oT_<~C zJ;l|xrV<5+Qo3N!Nx?w-@SxLxzE3d0E^Fe0P#){~9^rk81lDpjdS*on8@o6kw9aeq z3Xt~W-=E;^l1^>)5v?CH;uA?__kJ-Jrz_K$o|>*g*mwd}LgJqlft&0|>C;F(aN|Gc z7p4{L6P|>mFlKYygG)un;YNjpbL_w5LIH|e*34KY8tMcZQO!4&i?19_^z73eB(i#_ zEn%#LFC@JzKPD!ADI0qg`rM0z^|FmfHhj_+9#b(*jwel@Ao9=y^6Ixq9amkgoUN;L z-+BwwB zwD%lWujwg%j=b94Zy9X4T%D}T`@Gr8Vh!#$by~e|7GSEYtr9;TKz1~N}C+6iL|7fys;TR zV$YT}@tIGzE0g3hTZ(+M8Fp%U^!|0-A=Nw53k;1xG^AXp-!YNl`m*s-|Epr^E8Crf zfv}GbR*MkUHg+iI&Ru+t9_;HP4ymq5+Y&i{gywk#%d4MZ;s&j&=z$6%H6}s%A&y#30|ja!y?CHT1%EDKx8yITFNq`Y3{nl~4 z5E=1!yM9H&pq7%rNCGi+lC(9}eJO%m{_&=0L0UAK{4!5;h2yRX_p3`Bf;R!blXuV_ z71^mXaHnFT8Ixw!@Xsc?n#(-ea?vnuy(?5Mw)C*3*B@U&AWKI?&dySw z4bp`AD@CZpXN@b=`K0Q zC+M6xveRpe27~1K;2e&fq%D9|?Pl4o;S?3L*5RDgznc;l+uv}LLuLy1qWQGQVD>Si zT$dG`%+M+|-iPa{nrU4=Wa~qGo%`JC#J~onVT1Y{-Wsk$==w>{TE=PjEa*!VR139h zt=P~U`y>m`-`a&%cb1nH_4VR7;cXV}jI9;NJ$+^b;l>z+@v=h>7^=)cOy|`@Xu;&Fq$VcWkXZDNC?sl3C z(sog5o<1s{w+64I!T`SNzX0(J?KGgbIgrXNcT3f0Jyj9|aEBqZ*zOHqjAvcHf?W)` z|0;Tm4r_DYouR9P`8F-Mj4P;sKnYHmeSo;7VYjM(0s~YvqmKZ(rhL8qTdw9XGC_m4 z3Q|&1l40hDF#YKS5f}*PIyrpe$SwptC!<7?)#(XNYnwohO>rOs9Kx1-#mKNsj}IWt4(A_ zy&YO4R)e%nq7Vw1FQPol9iwcAG}=F?Sdz-;r)G-3d+fG)7t8(oh3;|9fTOr^3U;Ea z*dNv5lLZRFo3o9&wSj(-clJUTkyjgM!$p`!KC1K<8OD@?B9&JkwRlC}$Tfq;*rf)S zUj~;RCPEB(;vyeIxnAPijpsOMlsk}1y1OeAG@Wtf>po7ksR?Yi0CRgn$0*63z1O9s zU~$Qww+VN|x3Jp(xYWZ(auT7hq4VyvhE(PAXZkcAqzb65KC5qt@Wp!XPtFI&w$TA< z-|c_ai6ts9CgzibsU_s5LH&Z?MwJTI8(a^knosU!m7m8q!=~u{W*Zd1-VHTvH9ly! zcWi7)fF|+7`*#_;gm12naZIWFF2}R_!k=@l0e1}CyeW;20s0{@P@rJMDPhD62RMq< z#5p<)@Npw=&U-|`BLYcnDS*EVdF;)1lrfEUYM%G{|XPiq#s`3fLXB!eh0qv~-j1;eFr#2c`zqgTsK zHXf#mBd1lG2Zoi|p>b zI8k?GeE%>yS(iwUk%pp&@(1(lKO+2AEAkhnh$a=I-NM48h{!wl6-teh-;t;cjZZBt zG7;I?BB+Q=!cE=<>RH}hJ*rw2!E$7=dvUKDH!j%1VHwyq4x_DVepME;Y&z6c(POc8+{;(k(7yM(=v z+O}z1Z+SVA?`-}C_uHhTE=u^9lMn_z;`(!SI<1Zqjz{Y+BUNrt9^RYkDLN@$(mY^q zfTQR>X?CtZ8K|b1(R!EzP-HGu>CG6AG}5t zgfMp~XNIqq>|8N!pDK?9Z+z7&#RI0x<14@A1ECOn*aI;uGZ#cjo9u^7TlL)i7R zZ3}y{s2+y(bxBoI#g~xM7P-eHtO)?JR=k(DFEU;TAS5>7k*~V$l(qVcE=bRe{2oPDvyGn4XG2@q9Fp zXL7W2<31g$0@aOVIc%vOZ|M8n8x3GMb+$3XgCg?!n1xT=nBu6~{_SzIzf-m97rO)e z{46Bj5e7Gx8l=fPU<0lc{Owf75A~Pl@TfEG$V|WS0tKgw^`t`Eue16!=!9}_=|vf$ z@Kb>I(Kc(kR{goWU^8&@#!SNaq6f?Wz`Y8 zCogbg$rY(ODAr@l0WuQl(V@#KOMXYXfAxqR!YDTx%}V>>PB@mr0QIN)UG<9#{toq$ zAaaD~mmZNG)A)pEay}VaA$&QC8g%Ml!+KT)=W6)h>S5^Xa%cmH{7#Wx z0}Ey4Y3@Ro@nP2=l8`XQaO5M_Uu}DD;DQ0)$S_`o{*PWCv?MDV?gs9|BJ6d! z%89&BA)jEKjK@eMK5-0*F6!ufh;Xf7db;+G6hcO6lVewuZG>{b9-E zt37)^okjgh%RX2oy!NcQIz`&| zArPX`H_np{FPjs8jG&Zt3c<xp&QP9reu2Jpki6qP+R(o) zVRCMvk+*y0P(A@niGODy0lIN5ErV+1%TMISR3>kM ztHE*6Y8JNmnwJtPKa|R^lv|m+&|s9YV295{sPn2v$s(FiaPAiqWn#+utijvhinF~s zn0h+|hSUHu-MS6$FX~l~hl@6(Crex2ng3|S^@5@okp;FJTD%;3y1MC3)F+2teeVi; z0s1&K!|($QjR$#+WORoBLE>cd)SIl*awCFJU_LDl1~UX@cCuv?ekn{<7_mBL>mvVQE2v{hj^KV6m8Q0yr}J~OO)^fBxjHPOK3Ma-ET{R+~`z4{KX zeO#vUS=^!e`Tex-6&$bj^B(H{e(+uV7e5@aeOt*#2^YCEV}1ATeYZaM2eLaGTv_MM zc}=m8=QlDGX#N(8c$TE2XO{*M^x^2Po~U@iYcz-FZgGth>N!LBi1tR^{(klx;rtV{ zkyj9`+5VAd6Q;c+(R}aa3$&$e6?E6>RQMeeRR)9Y;hAgTVOmMYn-D zuA`M!*BMlMD%zTF6P9+_VlAz#Vs-3WK%gV~@ERTne#%`nu0$nc6Q>m95?Lo=f4**)|j8m^y^z^wol_$SQCOr^SwpQWG8cHU> zOqneC-2jAayO006UnBph7^e7+9Uf0QoFTIkWT?HgS`TZSCtSEDn~(GEbvq~%;Ce~s zEDgSVO6F-gH<4+UMtq`}(NW;_cQ!x77j!dGsnB>&JVjkVJo0GrV@+BDhm;Aa1RH+P zV8+;Hr3KfUy)6ws;$~Nu^9Z!rooP$?p8A$feAr0W@5gYFg@i@xm+7pmD6m!k6F8Fi zGW_hT@G1*4SI<}WeRS+uL=RqR-6FU_Po9aZfKHi}t6-(IpS$AD=1PwN&$Z$+)I(ox zuBeF6X1OZ=_6M!Be_dw(B2uJFtGD*R$5 ziD*@QB{u-9!a1U#)~$2TfFf&(8oyT#eRY(}L3?K^vh1|D0`O?)!`HcoWo1R0t{ewj zLxf*GNax3U;;p~1zGn4m6i_4b{?lP%suD6g_NX9%B1+?;3Tm;_Z*W~@CBm<+swlafIv1CpurXNNsMrvQV44UIQhCnguc(*&i%WZMk1Il&O@k7V)+ZVnNHzO<{i?M zqNQC_P`G1TGm;ni@~KpIxY1i$BDEX`dgiGdb_tVaUia^E+z^CY)8KqJ*Kgkyj(wBM zAwt4FPjh}8=-l%{Y6iCQMSAGUdW#`{O2%C%OSD&_?Jtv^a}eLW9{ zJ%tI|rRciv_N=Y!>8#-(^b@J5Y@f(o*=dflE3hUzdpKRQl(K+nmfP1Rb~*h)YDdOm zuaN-THxnR)X4GezeWWq2AYyJ6suk1?unD*B(43!)E4il=Dk$gq8Ka$Vcf2nEERxHy zSIJ;N;z#?cx}Xp_?!I60z;k<2VdvFue4sYJ_tMi8L9Z$fuA%~hkO!S<3gVW?;J%WM zV0kupmL~lZkSPQbT>W!dIj9|=M|yZ)!pyWNU*aj2Bm0-YkW1gUp0JX)(lf!IR5)G2 z-)xSy=YN@fRiWpp<*2Slz1+2xI?Z#2;69>~*jbvKGjruB$O$pUFS=q?SWuVLQpy^` z^$V$5kLp^>$6$Fn+SipV!Bq9s_niA>Nd_4W@TH{I@aYa-A3r1S>3ioi6z3QF!LKgW zw+;4s7>W6)nDSl{gk^7QoiIF<&RJBRp#W`2NJuyWgs9Cx7uNRb0vXRa&58`CsrPfg zp3j0u$o%cs@p3o_2TYu_zOle zj=hE?o}!IXPI35H4_hWf9K+;^m)_uM2n4*igm|i?e*D2U3eL0RSV6T2_HQs}FKnPH zFoivJ``+)Nn4=?HK4KDCN$I1bBx72`&r|T)-YfQ)n4qREE#PQXAKLsI#)gA2Q(ZaF z@XvNH#`6yQ)yxi>2f7tM)D^43@3{J<;d+v60^^s?X^I)#T7WboFW zsGZU1n5&<&X7u`chXg;s!`!)XxhSqGF#>xde?;}az&Y#pYsNJGesJ$S#Q3}^x-b7| z8qeo4_Xeh_BwRCWQpBfUk$q+_e1Zwv$oec?f_`UKJq+|GFV6ZpmUPzLL7Gdk#K&&( zTV@o^@OHKVzgqq|<~saX#jI}eutL{ksb`!AbA_Q1rG2!i6n8u%50jz$%!+c8UQ6WF zS?`h+xwu+r_0e{dF?KrLd2`_*8Ke94TRi7fDsi~$>J#0y#T~|KOHlKCX#GJ0p zq~X1->O<{^87w`T57Li5|DAGF&7}1FJNK_cvt}A}>b=hZ=HEts)lDRilIE`)W0E5o z6rj=n3d_!5zXDbLH33=IqWv*!lc=c?j`wVIonPxzd-gCi!JW9m$DG+D~HfyG|3 zP%cu_DSlV8N%0ynt<)PD#S(uxheygMj9SySw6aTjNj4AqonoMPzqOni7yM`_JE!XNmqUqHWq+od}12q!k zjhXpqACD!rj+_hwj}1AG?mAuc53x3^51OT@Xcu*?(wngNVArA(D|;xLoa-Aig1c+? zKk8!hEp~se7o^ZQ!_?Do*uUI8l=0e!&`~CcsXY<56XJiYbJu{<8b`I#ard$>mVc}w zTanuDh}&~Dh4ghTn7XTU4p`HCw zja#2Jx6XTw9KPTl395LGM^;p6qMXjCj5_gcp3v0HA0}_c{}3D~Y0dtIrM(Ex;_>sk z`S1Xa?x1k=UgEs%N<9T3DQV-I02K}7eD@4|!sY|T{9Fgv^xpmEY46kY_~V=>^(7Tz zdSXu%bq`3`uf>X~S3ACz<#@t83?{oP%lf8Ca5cP0Ot=R<2Ih~+2}8KFT`77(>r(xz zTKV6W1E@^vesF3ea+#sO*{M=w=luxO{`&p#P zI|nXg;JyEC;YPghYP`8hBv%dybalHL-{WI1wtv4knIgVBJLnV|I81ic z`+4lbI-SA~HAO(4(;GabyI)q{Ukln=RmwA?UY%vx^x(<~aQwjGrENElI-ro0Hnw?e z=e%3J!0J*wFD)+<{A-Y}KF?19zm#!Cy6r{WRJ7;3fUw5vZg>3eijKy*#?Q&-_jL+M z8_*9Lr|@Pw#LMnpjn0>L!zSF|fGlL6XC`b@qbJHsg#R5sfl)=xtmVRo>hZsfrgH05 z6g^!|^Xb&Thmz8#(+T~`D;Fy&s?YPN6q` z`%AsGCa`t=IPb2Fq@8|W-cR22e1V`g@Cgt)kVRLUowO8*HKAL0iVqssV9%ye2yThU z90z8|0Xe$v)K`YDz#md;DF2g9p*smnvbI7=;Aa= zc8LcGujOY+R3+(a?D*YnuAZ&_>{$^NCXyqRH9E23wzm(~E zmoX=Krt)sgL+NhJ6Q$Kw9lhnwDYs(LgR|#!NFY&JB1j&6?>ZAY$fxdYV;sX=cKr8{ zB=n2Z!<&an|Jb+G_Mt%}FqkW^n843C#jE4=R_eKME;A>jHMQf5(#I6ma#KISGy)pg zz_NPQ&W$?_f8V%0dNOV^c=A>GO!i`H=cV|~GY?{&Y!j3|7=+)*$UKX9IeuF@)!XTq7rs88HajUbUnXPohap-n0Mlw|JT z$xtbfBgmLK{KDt&;8bn&m8*N5jm2YGz9$Kdu^;%swI4-9%Wu$nBI2SA3f;boUv}#v zz6awuJB~``(U6Hsh0`UDOB0=^1@tMaEfhOUhdI<`GinsMpMowSV~AMmXP|y1 zp5J}0<=lV&#)W~n$*&x(gIuInk7l2n9zi3?8}7U!bv2TB+>V>g@A9LIky%k~xEP%y z6`hV7Juew@z!zUsfs6!i%vL9q&?>4)?w~mFd~gTE zIc&$DD{v}QME!xtdt?Us*hOYw{yN!8|I)Bdi=|9QO)T3ysCB9^{uz)d=cMEbk}zRE z979xQrQw|*QvR+OXXGfds~Gp?@|r!x6VF| zwT=R-(Ism@xd1bmhOa+T%i{m3@>K2*>38rIA%Pqz7Q1FiRFK zRB>3J=Y8v~;hM6Um#6g^xbB13dV@%WM{964v`loWxqdk*ZT{ChO?2l@zv=9+C!o=+ zsDT~3a>~qAN0)wZz_PF&@vJSr*OPm8aDQ604^Y_DSpy&IHl7hFZk};{7k&ssWeSXA zJ)l;(JlkEv{MWFM1;636`&h-!y7V(thi#dK7;; zA-mWdzlYD8&5^ise<;|5J^T^PNc!*DUoLI6x=DBehjnIF#SF8*PP(2{BaJAlyYtQn ze@-0QO3Kafxk*Ksh{Z7%vBt9vms2KA!(db~QQ^bKd65;~6QtaBX$t&7xjs=Q$B^c# ziU)M%9BQO}B}cog+5bcb^z=J~w_a+)2U)Luak=y1qVEyT+Q4?c(^AQMZXaiBG2b)a zLYwX2-pNNnn^LsI1nK)^npL}1>Zh_c4}%C_cdXP(@hwnPD29OxVj>DZ%8)C3HiuEV zzA2V4y)Oa81VY#$^Vnw2$HL>Q!cou17ZNXGO*ncioXCfLT%iUXqsi$aEIu=CHW?b! zv!kX$J+DXkIzTZW7x1+l=S5f;yS*#B;EuB45!)Qw+ywK()TdzR?txt9&|K-yg#5tBZ7|5yb{h1cJYbN49cunAcJx5im_C0YZ2tK&>3 zXRv!wPW;KS5|6QqObx9zK8WkR3HsV&EA}4`^)lcVKL44;TAqXhxE0CyrnT?38BfBb zSrvYB|F;&P3$&bg0TOAj68~9Z@s@fU^eUGwSNjfoprzJO6kgMvOZv#J@X8{`y7k%% z&DFzXts3y=nc!fOhfR^hy4r?@c^ReTBtk~dsNrHTkSwtMue5rEr!gS z6mB2SFIgoJ3}RhuaBu@`UrN!wM_;a>DrNfPZ*Pu1g|X}dsm_IA#d$c#A)C+EL47eme=U74w?!DmrRbwn#hKG32(fI*x4TE&e&+UOWlnb zsHw$ft%kw#7(7AJ9E?GOq3}#bc&23$dn7|agBodB&EyEI)r!8mlWZk%Q-<=7F9#3a^B4J6c@?CT()?J%aFquj9UB~*-|}|XJ4h|Ea@oV1 zA}bs9EF$|!jtSjC2(+!yMISM!#oquTm^9h{dU!Xk$IY#Gma~5nDPa?E57&bP6Qon8 zDo2a?Bd}F_r+xo-l?3St{XvG^Liu5(tmnVhMUjylO7wY2e0^Y|12@2co5DnQ6th!StN^i|@=wBqca^C8d9d^TqRogX zIPB6eF77h)PP9GK?hR7S*sRVDCgE@+@m06s-9!tdlP)@vU*QJ$M%Pj zMUDJdWGL(|nvlM~apQGcPHK8FS67Q}4VVm`zXeQ=S8h_rGpa10=J6+>7Ha)jiGPDF z6Z|;h+oJ z%un@&2Y~X`t6?Nvvm+_=t%^U`U#65G~MQ3Uwg%0UUQX?R|>63^g`)TR`oh zWir&CZ<5U3gqE?IsTo|}ucRmo<6sYm;*|OZ z3A29GH}+5(-!~-q<2%+3d*j<*rv}6{U$)@k0YwJ4gNxVRJxvBGW^6p0@2sk+RCuGF z2mpd|AHGfo2S1=nb@&iBB^kMcz} z5_hZ~K>z)}RGY{@WBzZvbo=+{&OZb6&ujhrZbEIq5%&Mz-V(C^=e_^?slI#veW(9^ z?*G-#d^7*0@$J7q8f;ObS!0zzajR1HZWE|DaRStQ`T*H=#xOEA_3_740bv9FgbLMXkx4gZD#m6RZO{i}Rg-()R50!f_S?d9I3O67X?zvYEu)If! zUVEq`(e?1iI6!lg8RB^yaauiBX%cjWs)Hr~YL5lewOyNl&YS(KI^vDa&6P9sIIGuC zI=|EDq=ww*&!f?;I20KbS<7C*m=DN%C}h>RkoskErNc@`JX*IA!@O8|@8r;CzSj1y z<)1%)tWsX^+PQcem}j`Ecbm*u1nkuVs+}d9b<`xKJ+_4=J^-Go4s-S%x~+)4zS@_-G`R^m zYtW_rk}l*~g~yyBA;Wy81G`kuiY70Q=-EX?AeY2up*ND!K%YFaT8*F;lF8x7r7F|@SWphihioztH{HPZ!c?o} zt7}!qlrJ3)tA0^&vFroS2DNzYY3@bG!LN>ZU%W=8YFVCz^8|b@Z3K$0ip$CrsjUxE zmX9lZ-%N#x(~kcX{T9ww@`5*{)ROAcwBw4T z*>nQx-niE;Vn3n@5f-KO)x6~p$OSEE{cY`Yk$X0N7$Ho(t6vKs7p%hbI&FtjD%MC41xH<;88li4QG{ zRmJ*U0`&3?Te)HH)z`jrYhroZ6{jlxX*BjBDq8k26r_tD%PKvsmcq3_ias?8Z*fwy zCliB0aG?jfKP0x|$T!C;e3LWFW;f-t=unQ$yn2qM5K0c3#2})F^B^3kfZBL}`*j2| zpyqP&GWl_F<r;r_RKrZCYH_dDpftjXb@K>mp-b%Y!qDzmc>pES$r_ObW9>A-A`=X|nwP*~KJxkbrwOty$SoH|s z14DT=aS&e-p{8hT+$pHe<>`sF0LC_VrRUbbSbjhaTjn172_4|zMbY8^iwOgc--_=r z;sDDizAShQi>+W*$?0Wqo2;u|%mdu`bcxqL-l8^*MAC2CWc`F951tqW)`ZHP)mbLU zt(Ui?SPB;QRIplPC{**BhMtOV1samL@cn2bLX;f!lTYe5VN>uqjQ_(AXd`xh6*UJH_l1rpGN2^ zXV3KyB=q!n_ygE1IU{m*%GT5#>n>tN4ZDONq-TP0GOoq{24^1*NFe5Wn{H9Sa5i(bdd!N>9k|JnH>Od59vsE<}( z2}=+y4(EzkmZP1d+niCe=8(9{=;EX4OQ9cM`7R>S-|h^}$(NKlIpeuhm0tY``C1rv znvxprif6m0aJeI<6U5c%#HA{hN}yM4Met~EH=#q(DAy;2+-3YvLkC)kluwIBvLb3^ zYVPU#{g-NTq}Rr2`FMmls^DRw@}H;OZtcE7w0MYLlImg~f7l|Pex-|-?hQGMav(5D zt?47}|5LTwPM4Tc*7yRe?s0BuMJZ5e&*9g27I`WIEpBK-wW0f8zmk*DU`M=h%ecJ4 zrj#T4rjrIAJas*B$Ays~9P>p_%=spE6^LFs+_!n;4L$vOvdP)bQxOP7iOjYa7n=(H zfLc&>e5Jd;^~t&rPLudE%*&;w30Ca(SBKS2jJd(f!PzI22I%I1Oq`D?TC{ zuFkZnL#>Cj0mXCZG=cW0wntb2kHNd7&Bcs<;%78zwpm#zn)f8B>=3?Q+9R4Za zxk#-EOPyjEpO&{hf}@&`tV<${;Dpzwd;`2cZR* z_=lMXO9vt@9#I%IUK#5aT)IWy{7&wc$GGoL5rnla3U76wY>oU5dY<7(kJ=TeUE>Sb zpuD&c%4<=+_OvyltYc_mlPxpsEN5C+Wa2amV}F5oc>b6!y2kBMwkU%aX?X#ga{Fy*aa$CdftHTzkl z{jY0bC@+OBE}26lRy!`(?6ZPJet_)~~@W1_}gvy4xGx z-1nb&=3Eq5cC9Qof%YH} zI}R**llB6QqKj$>qjHaF4Ea1$Vx^KHl?rxBBaON4Rt(~DxkccVtjwrs*|V6D|5W-l zW@Tcb$(80e&1T!RaNA~-5A_OHfk}#{fi>xoA+@t|O!!{AN~S@|@R~;uDdKdw3AFV-z1msdq5XJP9(F3xwyE~lj8Mvzn{(rj^){oJcc6#C z%+RHCl{!7b%)|Bkv0^y{z1?O0^Bcps`S-JLXSo5Ui)z2Qm8pvWXT21cSs==LKbagM zw%D4P%@j=R0q?-Jri~h=!W!!eA(=#VZid+g58p$4YhzOt{jGR%)-~5$`#3cN<>Td$ zxU-5?Xd8GSqAFH2jq^R_`l=$M1pQ+l@!~|9fsYy=yKrOaR3ysv<1`yjEuDxvqPELC z+=mi2=(XQaIP83ak}66sqZcGWh=fi{eJf4#d9W)ub5>EV&34r0BR`GVUUmKmqO&unpP6o27I=MUTOF3&RLYdJ=V4Jbs=|kWQRmZ;R~ioj4M1&bZcL z&Db>(!fen*Q(2-XXVrz*MnIWg9>sOra#YBEk{O_8%ZU3wm;9*2M|PDG$DigtDem2| zpK?=X60U#VDbBp~7B4ciy?)BD4P!i(r3)cLz^tB0LR4Kv)b9Lf1)!&WkI!;H)+5}yzUly3Ouw&2TAxh4y5$4%2lBM!Y1C6Mi zDdJrhl9k2_hi1QY*dL5;8h?)?*6=vlJ=&8$JYAJfVNBj-xZcF6b7?D6=(?r45t{PT zjt5L$$|)>}Yb?|r-pmI@n2y)@1k2r1VKu;=2Ae5&Y zSsY3_zS$8fw+rbGj*l-p3>s9?i;OXebIq0bur@Jir~tQ2l+YeR)JYax;K!LM8~@@a zKqwU@ARwT2XT_}v^i!`k@UmHsXE0@lNIWRzva9)Y4agz2Q^c-Fi7fGUygpeE7NOn4 zSZH^WFN*$BbuLv*_rLGu>cm4@+c4roM(Adc{gO@<+IiXHZ}*-wtGMioD;}4t2dAbF z$N0=QBu6Xk@-7yFgN_Q}*tK-?yM^?Q*Rllx-uRyVC3zkjPvw4HaqGP)Qv@78(lX%l zMOw%{&U3_gR@j58;`46z7i77bumHP+J6NJ3a?QhP^B})gzSbsh30phf2b3MwQII(;1xE z0RtT!NLerH!aJb0EZ)zFAC;3;LT2F20a-tCr#F2+0`qBdM<$*vc`2QKmx+hy`ki41 zh);HzIy*b}d0wPN0dSDT)vYa?gr5GOy3V7?~en{Ub*@C`KGTlVvf{gWo64r zyuTV$Bcr4w>5@!nHcTqS171&?(D*N^D)LJ&PNCoVKc)JyjM|xm1l>f8B**Vn66OSQ z&xm>WizOT3oK6Gj7ljM~&|nl1d0mK80s`vkNY?=^*0r(|twyn)AVUQFy>Wt7F+ zlg*jw#YL9!LM58S)4VJ0XcHP%Au%!F>~I+dMc=|+7PSAQF!LaDDtg!oTxvj#tm%4R z!cMI!c5oo(^RNt;=KuF|YhQOey>pa<_1H(gnL6)wwxSL?2@7qU&dQqhcU-f`u0PkF zH`zb+yrzpm+mTuh!=H6CT1l}sD6Wx^g`cDX^-!a<|BNdhBR_DxZb@Hb83D-_rj8m& z;grF9^hn0)^zCq|UXyyQJ#5K3wUyp)?3b(+%_|B#A=K!{o#9F)oR_=PNe}4fO|n$O zUVIfHIL`9D+%D<*RRX-u@z<84hG8GOSL#tmnq^Qldln|y{HKVY<((tpbL?i(W+fmO zCMD$=U|tNQz{PKLwiy{uK^G{qsIX319Nm5Pz2jV`Aj|I9T^7in`n3XUIMkMgcp}8zT3lkvj>aTG0DV zP5>%XjIKXlFUpII1*&NEMNW&A4voqCWXpO){)rEm{;5@&n3yQyP~6D?Y>08qkQ;{p z=l-+HUyA@<6-!38+~?&L_f0AwqDO?{T>~|mJ|-CKB6%R_ckRthFg!h&yZYsyg>1QJ zS%Mg@B%E}(^pwI(X2E>;YFTvaD>P1D`>#fcTz*{gfD`B^f6{^@|9LjW+uLWGWh3*p z#|s(kb7ZjY`viG$z*oI z%(fKzZR*E#1GUoizFX6Az)JsseeLuL0KysM4x$XWs6rr_r5fTo+azpK0hR!F{(CRf z?wXJF?W%twkrOR+bu^Tq<+~)4tUwc(@YzC~TSHAvO+a02eA1=Y zZfEnk;J`J=k`|Z^BR?NRY26xU)lee zxs4H4k9P~FFmV>Quc&p_BR}#hfBc~|J+OZUVQ?p%aNS19%)kx-gCeRtz;2o0ee~Cd zweb_FztCY9i4f|uHZU!>R+-3Vkm;7y(TqMrCUtjzP`^?6gu(E#MOp)!Yb9JH*cW1n zFD}jYK<(n%EZ}e@QDE48GHOuVn%{6hXNvRY2A$FCOc*?%V-wgi7nSvl-zB;o$OMh@ zEvG`iNCQ{z{4IWKp%=hd!qDbsp*{Gahi>j@QKJO!c=Laf2~zOSGBQDU^^10O^}1yx zS-cjTdaRk_?x`&jWLSvYu0QlK6}=`%t&==T{Yu8s0nJCP_*OpmhGSZxMu7}(QH??!L%()h? zIRo^9V-~C}pk1QYdxk#G|mCrO$$F=Ss-uEORpmTN)3Wkp3f0JVz0GpyKVidju z4mkqnzp0XEbD9o*ZmxFg!awWZ-emc2i-#Pynnm6~{dm#<0;kY7 zDOjK;i_nXixWPABhkX9pkiZmrYWvG+G1tn+&KNyqs`vWv~JocSu8Uk#O z`sskPdvlLj*1yFdw=U_yT?Nj(8v_C?mQ>?RH%-`^tj*V#aA|1sPeA#CX&|g^2Cv+? zQyQafdfPRn|3R3*SDj8fvIa!lZeU2MR`0mp0uAX;eO`>-qbJT@a!PT-Mb|#p;xV$E z1D}@0K2>MwGiY}EwJeN#b6)PYT*%R9)sLjR{TUn@mc+%R5o`#dj7G=WeQtp6axqrU zn*Tffz~5XOp#z$YY^^lITFIZtC0nztw4Do-DdK=BEJW$f9bD{NUVvwy)+kKwS+nNQ z|0(O-qms(j0Dc{x`6#tSOVhE&$$ZzS`PN)kHWqqQQVd^EgO!SJd;zKHOgA4{`AqR< zW@RFxHx&WN)Mz5LQc=VtViZU6Ek00T4zq6S*1F%HXMJm*v%meVbI#ts?=hk+H&<9~ zFCVgUWUJ3t6j~i1?D>1XFBSj(ApO^z*@_TK;C2sn`<{M6dQ8Ux>-D~M&kjGR&#gGA%Y_C~sw-dg0=d8({L6JH8$@ zxfE6^?J}J(nm7b#PHGH%Z>YV=1gspX9x?fUH~r>{h?AR*B@6ntn;()8wSgwq z8?ZP>G*1DVdZyc(sH&AO_w}m%_Lz&6%={Y9tGThnA4F=1n~5ppt8YskSqk#l)Yxt- z;2H0JGkvcil(KVH{22^6as5Gd$M_Pwtzm4h!O*3G6FP2%Z!BXAf#~aZda|RUFY@a6 z_nNn4iN#=7Q2>;h5=UgnN&*0#A@X1t(eSx|fV*)}*=v*!02d~qZNiLMVtMDM0hga< z69Dj6J4IV~p|(lwOu|#t{rx*0>EHb|;1c1IQr8P~R-2FG%Foq1C#3de(I)tEenxoF@O;&*lf>2Wdj; zT$lT6iEH}BsUpT}MebJPnF>cA*4DtT+Dk(HPa@FoN2;Z{Z=8555zqnBV^_U9bAB$5 z1P&Nqn`nST9xgltW=;>R?Pc^U8)f*NZ-lW0lzaqhKYH9aZ2g7qMOMR5@uwhGh27O= zG5(Qr$wyaPTic5+6H`kDLZO@l4A4W%*`tNdbM10C-GuF}$Sqkxi!Wk(MiV}svD|0o z0K@@v-sdvPbi1rQ@3LEvkJLRD^gQ7TM`aYS7WhLR;j8#I*i`S_mH0eb!|Ghl9;duk zD``VZ|BTM9kEub({oZ_9#KynF{FU{{*98?j-;p%@2_uz`32BzP$6Z@*VydbpeCtxr zMc)h1RUNHHeOMK5yGYjgGs$srBv?Y9T|s8qV9q~QFLB(}6i`8js8XKl%>(c7*N%dA zFz4yXMTzzp(`px93Ic99u-C#TB+vp9(21s;2`%W?x^jwQrxY zh61&(4|wsPj|t9eOm9q1PF^-DWbn1~Pxj8QAuGSQY^2M~^t4|@8D|z$$}AQwD+#GL zx34>8$&XUdsMmtg?qlZrU)H9>e%;S*?!?p1Y4CP<@)IEm4vU3%wpA=d%Zb0S$HvBl zWG9bjN(N3DUXj-{l?Kl0)O~943d)+SOE>z{0ir%50wP?Rx`P+%xd-vtqW*xh(FFS; zUO{LpmY}ExS_uxjdTs7Mn8acrJiklKG1ni&{E~(nVvaCRE}$^n)hoR)^Px>)0v&e& zyIOv*M{w91%vt}VyID-fe$S{(p+-%#pV(IiE_qP{PhI&PX=0%M>QAJBC6IKii9>tC zc}*L&PpWU-IUiaDJDF5|s&0G)jmvsku<&FN7t>FGPIJH(5I%}#-zwI|8;zUbq)YGi z3VZ^g!T`s5`ay?ZuGrbxEe#W~5Ugamde`*k=asZ_Gu&b&nu`gvG!jN|(TlV$x7oz| z3izAz=4SXo$fp@KOB+-@qGb1GjtOg|J8n<$TX6CFRe?y^?U4*_UZD{f%A58t(G$T% zRfH(>=EF1?mJ&XZ=`GS{Je&49|J81m&FdjI1~DH3T*|m{5aDD&QfdNrmPA!k(P>FQ zU&V|cJFSLmcmSTNqSBOcHS%An4PDmZ>=fS=?$bab_&gmRnm%k+l0V{+(tLUFN0FYH z2EjOIryqgSMDKG&U^HJ`$lgJ<`pz^2gXDtN^FUUxvW)1E)L8{#&W08?+>MH|&=)qg zX=H^3tU%k`-TbdRtJF7Ws>oG{l@waal)FGNh!0xo!T~)d>-g;?XZ~_eT2LvmG#}&D zod&1yMGZ`^=Xpu}CT~ycHUV{=5tzDYtXS(wwe4v|`k4i zo8gf|FKQ1=#wN%rJ>HK*ag0A1*{V8v=P3^UxDq%-pmVt($d zsewP|BDX^loveb*aU>Mbzn-tYn&gsuDT2!o*4%~=onwHbhgn+5L;1G>mY`ZSyG29X z8io60z6LvvHO{dM?;aPtH D7CfxR literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/icon-login.png b/src/main/resources/static/images/icon-login.png new file mode 100644 index 0000000000000000000000000000000000000000..1db2f96207806cbec7ea333c6d253d323a982777 GIT binary patch literal 2791 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 z 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%0Aun3C+C72SH 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�v9mq|Az46l7h&rg4KU&h;nCJ9(m_Lb+h=I6=cJjqA< zM1|3Bg?i}8$O;&f*trceNYIL<3c4t78cK(Y;ySoN>0e&_%pb-_ z53r_)A~!ygOK~X{y$sDUjKj)2tdf|kxU500hRL|ggE+FPSxANGyxC}0lG(hH_Y*APph9VlTD*6Ct--E z74~T|3A`$^S0!iw15Tu2XYAo3Vzcje^s=YSu z{?ackvtwrsmQ3ou|1bZ~FMjb)GYv~7hXXFxU?)XOFl@-dV47ry1KFQ2X8mH9m`9y$ zN>mq0vfs2z#95Qjp}JiB$Ab>;6UGi6SpG5u7BB97<_3|@0gtrp+0ofe z1121E4;<-#8AB|YI2$(>5KF{!z|CWvX?xuff4v}%77-o5fpbesW)T>}*TN?1P=Yc; zkJHR(FqJ2X(n-K#SOkClx*@msJS{@fJn#iyp!tiLJu-yqAMQJJiqR&RL9aRYAoW$p z9E<_;ZzJY0YD@XHLD%kj)y^&oeG^f4s0kE81x8e5U=c2!z%H*<7@u>^J~!-~enp zl`9PwAcC^Ge!cw8z-kzhFsvw0wln?<-X;B{$d_!S6vGW&QFBhA4gg6plomlhVI&$2 zpgx1|hYm+|m002LjF}b$( zKu}g$@r^5a$2HDhlx+*IF`y4}#Bt3L;K0T5&Tlc77zZmgBy+E6zrcgm%TIpun`Ia4 z43=D>?XD2A#HAG4%>P0O86q#Xz>DZP*y^NZcY3s;RKIoz{JlCUIu%C!Nf@(A*%{m-jZ@|CD%q$*W(kMjIYKPLlGyt;)Z6xrC)!tMy zaK8NTiA$Gyk5wOi4OcJVeg_JSCgAR7m_fq;8gy9KD#(jeET5r89i{1GH_P_yc8p&Y zH~@Qz1W!BSxhz;SIL?s=7*xq}ieOivC=P|<3t)I@=5GUUP>~afUDr(UoXRg$@Kv?a zmUtpBq*1V~YTn1c_>GZ34U&X_WIr8ZgM>i(71CFADOOxwwc3!ONF9;{h~Jm|qvhQNpP zbEWftyLPedx@D%J_h)kx-u#U(e01ZC!{}J}g`@JU1%FsLFyQN5&Y)5$ch;Ej7fNSQ zTbmM&QpRu{iZ-oM_LDBljgalm<`n-K=-&Z;D>{_?lE3O6rf2P%kK8*0YAyB-BESQq zE2}U*+7y)bsi}c)gsZCdwN~LH_@*N_ZXDTn%OB+8hNra);gXVvM9~DnCE!RJ(<<$S zE*faC+McvMi{TvGvDo%DC&K_j+lJWo4_h^^q#{k=>+#JO&U%GIog*;AU#}Mt*jQmS z=PWskW{nk8V>&F(I4^CW+9b&6Kq?F?fA+w+1rIh-M2p06derSDlkw>kN$68h5u8T= zPLUv5l9FDNBo`_iiY&rGV8BMc_NDKJohXdO{wvZ!V=E!_NjWKTV@YsdZaV5_2kRkd zH+Zk3y0`w)VNe(|@;gvt``%^yB7;GOzZ-bT(ik~Z+~sg`=+S9Izs{w9XRQ$;4srHt zg^UY^c?^v0;ij(g@=Gs`9PMkUt!=ncTYI$Q-NWVQy9RAxC=O=uU`659CyX!y0WO4F zVLa5vecsYHt`_EUmoB?pLsBIY*bv|%gWTO=f?Z@8OQ?w&rfb_Xp4w`GXO@6C@XgUY5-U_DF(746y;Ii`x^uB zlc0QFVLzJ4#si3393z4uTRVqd{^rK{31e=UW}9)MR$2g7L6|%1)ecausxadcn8Me& zw;(OK6HA@_KPrQDFwWWaD;tzH0sy-Lea}&lwnx}kNg{VV5P_v^g;djUH%|h4W_QKP zBn5=BqY=*PMSnx#d-<2L2~+uCS)(q>PI*mT{iTfl)*n08(NWzFgP)cbWWNy04hvvf z0yF%DFlZr!<~27nJlR*2%290ZHh48>i-ekjcsRUq%iitV?0x& z2GgVzj3*@Ec%*01bR+<3%R!Gt$!p>`7$xOXW`Ipg9Q>FHGUl|3)9lk`v-woQfAN4xE7Kqy(-I zDUmW5uh<%nZJ#Z)^yz|@3~xlQTJlwrLTVV-At>|kSI(EeJv@TMTvjhiqS05IR)z9VNnckK$Vu1lCs{kr1hM_yqO`a+YbmX znc_*meDfaE1)q5W5%vifKub?hAwVv8_h!}2n+%%$JUE&fgdxE4-d*=~lN-u|MYj@- zr6FRvs%R#?5C0v9X>{J?FrKA&tfi8Nx4@eAV2;CB987~~PK5;x=4H6s&du%3?bx=H zf$yf1i14;yse8;LmcoT{5cq$1czC9ghgEvj8w{bRF|=}~!eS;aEI6=5U1OQ!21bCn zJ(%zp97$OSiT)sK^5j4go#Bzu{J@vyE;w@>Yb{AkfJY>fA<|*V99Q_l;9vkYic^H} zIUBVAOhRZ-UX9}J7r=LmgjX{&rz>FgT-n;(+}!e4b-*kk+!034>+7YZKkt8Mx#pC8 z@sm%mY5=BpVq*8;MSVwYQ2R_5ubrK;4R*PQ(Q|;(rxqda!fqSrFQ2XM$dI3P;f{Y@G_B zws{J}E2$*WM}OHVfn#dXhxj{5`rLU`%U1+oVA*00I^K8y03SLSfXjXb0B>OK zA`gD1K*mDr!_KGS?{9GbJo)64J5U4(qW6caMh^gR*`b~9zWmL`{%+${tbE6mL##R> z83p~;h{|`d{SAtUxu6Ds0f7rWpm3T^{=dHrE*mG7jM#t{Z5KES@@L>tXm? zf8xZkj_Qu~&d%B^4Ht$k3}FRf_e3*VkecBM!(kdiGY*VVSQRrOV!woZo9sqjk=Ymo z&dwHDCE|Pv9XDF`lx(_SGhzTnNtBR!Q3SwA%;5-n5komvi)$Cr(v)KMfQUJrQUp~^ z3x6=YvpJqolBuF@LzRrAOrBlH+DNDK3NQA>0XM3=(kYxj7kD)g7UbzTx|Y~m<-FSX z0DLEzFI;Oq9(1LoVI;}^&*Bak(%3BQf#_{>O|uK9(FPO zLF0?M!++n`6nUfPsOMu?0{_#OKKdeTft97!xW&vEljLVd13ASjEK-#DFUwxbzAUT4 zTJBAfs0q)l#1n2A%korXi{wU0G<&N*%MLlbe&>D0gR2(u4!~(O zAT__2jZZ6CRf~@b2+%z6Ele_Qkqhg6KEe>5;h=7odkTy^@w)K55JqG4Bs+^ZH=iTV zFBGPfl$@@()^_b27X5a2w?Nu+U+2-0j$`%p&~Y&vMn42Em8=irW^O~bK%va z2-f4!v8**R0A55o8vxC*-3F=4Fo8aN;ur&9cIzBD`j^K}te5u>uG&8d=!x-we;1U< zqLByz1K^5x?NBFzDk3i9Ns+*O$;JyASy7N+MWc|c5#?-n5#lRV00tHu#$h*mZVHFa zytI~G^Y!pUQmt7+h{bD(CPf?3gD9v0vquh~%e28)8zN$4oCiN65)t`*^V8Ayx41VZ zfxhb+4>U9t02to)#cv)OXfecj?mEmiG3S3ew@be-Ibj2~Je2VoDFoqym!%P?^u`BN%yx@C!(b4an>z^q%Qg*t1bRz6H)g0O0eH z6^hj2erYmm4ov0-#JHaa`&oE;tI=0wgr;GQxXO-NB` z^o+?@c`km+V^%>v$@4Jqe>u79%~DDg=4RxzRwPD6%^tIo#29JZ>+*Cg0^mHXX%+f7 z$%4;F0BXXsE9cV$z#Q#C&IGW^SadF)Nok|Bu-+lX4a-uF@!!0*fe;6dJOm^iHzxlG z(kPJvW$+T6OtS|UY5;RHOXjQWvbpK{PFw55h0deBi~|2@O^wYLurK$V=q-)BtSfz~ zr}1y2fA{PMZYgNk+VnVn`UFGFFa6>d<~EmE!3bz}O@?qznS9boaJA%iPsPn{qqZYjO)o7U8mA)1%}zo88>Hgac@7Zb1CK3o>f<=9~Lf zBA&y~JA+Xv4dEOMZj(ta%Boa3v6R1_gRHEXhv@GE3IjOd@djZ$>1}Zyyrt=--*i4F zI+Qjc@^}`;(2Nrk6k|PCOqCA7i4qO;|kQ&BmmRyBPSBPpJxa zyb~D!BOOstaXY#WF}$(lc(4dtZ=W zg#eGEpu<8i1|WuNLZ6_((55tHM=KKev7-7((PT>?%Nei+fXnF9tgPtxZuX%ObOCQQ z2wcQ{%N|Ug+$aWM3iN8!bRIqq0Dkh&A+)3FS2h~U)(-4D;^+&Jlz;x>H`fLmwv0yh zD`gb%a&SWlg~jr~X|*`x6;YQ~z-E>AQvY@)!E3k^iCfCI6>nv4)5@V&ag__oHgIlJ z=yharl7TPm0YH((NH3spR8KdC&CviD(ISYz@H3k=pe=Z`- z>nsR<^&$K6U`7xTjd+3AvDnB~TWmR`Bi)V^-#tU82qKF~N)kV4d*fQVL13ApV0}o6>m# z;G8Ex-Nd4`FbR5W9(g5MJosq~t7c)0%7V-_Zd5=3okm3#vR{-+mA zqsQ`n_vUCOg>)B-fdx;3A+p86-KCIKDW|B@7=M2THkL({gQg!AV=D5MNG^4FZnkgx0?0I978dFKaXv`ni@?a;8q&XR;MAU7Dx?dpx z_K1LTE*)mT6>DDl8^SWxn}mH`amVoRbgXqY2QMT1=J;ZZ%StS{vxe)z>u6>y%+JIw zE8{(DQoeo*N`pxm4Wc|0|6y#UH?F41CZ3N&r zJ&g+nESNnSkhZsDo6cvqoG5%2!mA2~zw89vjj@hc?Dt-EZ~ff*dU@%c{+@wBn+=A~ z0mx0hKVEE|gp2W^wPFB%Jkfq=H-+qGa3T3VS+v`1HBfy30DQRq7>wiEM>;x=otRrM z?O$#R2N?4qGcVdt_!_iKZ4ss@4z9c5E)*dqhWYIZ3ZDUgkp=^TBMrv(1~>+=*Do@t zokFEGFCMgqp(@D-`fO~#0}Li*E(pG~3>f?O8aJrRc3eAxCgY31+M*xt+C$X0Y+P&p zZ7k}hr_pn9;ZjkL!*6}hU>U7m_h|O3QNJ_xYwH{{8n7Z^5S7qe<3c1X<&_x9(JeQ_5a57Kn8_B$sjC&Os=&@?GWlv;GuY@VJBc4rB5Fi?d zlYGO=Ucpc`>1A{RT8+}G&6m_K@R=b03O+@a6J~YyOZ7-OV@46SV4>3DDx($xbWVX)1V|VJ@~rmdN6V8Y)LNXa9oYYww+I(W)!%tuNN(j zO{eUkkgfb!Y5!n(PxQMxU4Q?b_R<<#X=jP~i`)vlZ#i4yz#%2IRPZ!mC660jGy9?x zTp+^F5GK!p4Flu?{!&t<@F4;CVjv~FHRpEotY}Kp!gurgAw$c*klB^p#E3a;pWzvn zfV%GepxJ$d>!NvfC3YNEVVpIRk;=+W*@CV#*PR4!>SlSokEd?>nN+f2SnTR2iq(>*;kI<9h z>9NYcafsx$Tuvh`f$NLMWua~>@= zp^jHB)V|jNT}Lo`E-fwXT5e)zzso2nX2fDrEf`Qmuse^Kb3O(D-dStZMXXSqVD$w8 zK8C+FKNuW*rw8iT-tDbEIx^DH%V>Ie>G{DXyDtEdT)O)@&^p0YbYo*&gTHW1+rS)$ zaS{7W08ChngGfE`Ul5rELNK(1%XAcVUD&b!Pe6!e$LX^jD;aEIm_=Ko^D7AJfQcCP zF|T_tfQssSG4o^mApqW?ej~W>f^Vu!V6X;$51_xK-q!I_0(hp-^{{s6u>tT}<2Y=! z?>B1h_5%X1@I$}yKfU4`Iqiw@xK~kgheucMwD8dvi=czrmJ{83g6{_R+6w9C za4e0pd|qfMRO^R6?`gC+hUxTH>nBs;n*P%AxnswA*+H|q+eI zv&BDWzy&}lCp?x^fw|&{ndai?KQc3hi@K_mNHM}KFMff0ve|k4+k4zyLZ3B@B@mf3 zyhGfRW$zEy+YHejB;+twxpga%Fu3qx88>=Hons7uA&cV#o&Xv!Srf|bdV1M{06UkUFNh}A)LX8EPR3y(P^(IyGI^6s`%oi z)96V`$#I8F&tPvbE%`C)3{3E{hXHV$7aeo_EhJ%)19}@L@YM8MLQO|dGzgpD3HJM3 z`(HadL3s7lgtTbyz6nf#o6BLxTkh)Yuq^HH9ebL-vbN)gqCkks_ZVf{CIyGywc2ZzkkopCSY< zkaX}?i^=(?tbZHn+oaZo4b|HUNWt$Nu@3l*!{;4Loz%~76tmxl0T@C$UU~UdUwvCF zwmll-zIs~P@Pvn4ZZ{_g@PjTSA;Jo(F&tRAZPHL+K15OxIFb12f0m^m$C?j^H`vdH zlCLnEgT~J*xC%z$72+^s!4#8%PBQ>uS`X878tr4yVg+JqNPLNaoDSE*;~V2@fdiaD zKF{(6ZvR~g*uQt#zI+iL>&K40)bUdFYkhstz|a8cZ!O?MY8krF(oC?6Q5>M)047}7 z*4A2it>PLjfeV*Ra67m_kc!@rSw=xd4VwmWRzl-t?vLa>5?-MMTEQng%rS{mXPIwV z*>m~4X*3R3sdO^MH^U@Uq4X&^8ILDZ+@cGFI4iU+?E03?XV_a&9Gxb65t)1O*=$-d z8FHyS7fWZ==`rUe65ua2GjN(h9S$^XPMJo{^4=b`1*g$p44*ecDpw`$0q#u2u^B-4 z1pbvtWPY5ul{H|v5;*6K257CXY_97A9d!Rd&FVAu#*MDh^^Wy7UMc&*yQT9_>PoMf z73I3exoOO0zINu!6aV)={X*KDF(!z|^BhWyQ` zGp~QE?P8WhO z+S0cvFw0XIMVHh$zHQv>zNrgb8C`Cd#(or z4hEf`Ti4kQ&-COFCIH47!=S;Uq(y5|Aw-;;f)nt#L-icH(#~`J$QXDT;x9^5|?ePM3H?$DMEO4pr@;+hy7n#zCJg1ss6-?IXox~+CZWhLBvyC zzD1K%cx>>4j+OuyMB8F+t`_w1M6bf;_kkb% zXYl>5l`;0Kht$bW!CxNX_{uk5ePgcjtFi6P%~8&(RPO*U+7a6t%fr)WJ~Ik(5wyDg zEihm$9~Qc-MCKd6lx~eStiP>moSdJWyboriNi>APE|?+kYt&9i5sCr%(VRz{~*||3+u}PVzF#91Nf>rnDX8(nIc5*&sx1B=0 z;d<#@$H+^)bJew2z);%<40s5Zz!NRq%_mz=cAq?VvKs*S9F&H(R-Qvk@Hyy1;&$Ld zDYKBP4-cf9rz+7P5{J|(1qJrV^v}bggZ(&Rf zG$L)E9h+%uuKV}x#}1d5cGavlMb`AI{q^tmtmrP5KeP5~=-t!9V?!goCpwq@!2N}{ zp8DtshsXH!kFPH6%A~-Og!+-`^2?H9b*k3p958SF0vj6IU^%E#TJKZ)m7-lb7Ad*}T#xy%g^ zVpY*vm@j~M z97k_bdHpQXVCZjPw^;~E{feRPg}CP{T)rf{JwmHsY@V4miuzzA!qa3D#uI);2{i~? zgeFVfZUxOIuPc{4cj_KQbc}$*BFqoC>-sFZ? zaGmcc0$#{OTCacSz3CrYjF7) z2z#FLMd#6A$?0U-!OOqT3xJ^&Sg*$lBD+2O%<}R;e}8`$wzAF5ouDOkR}-k9^m;lX z6cDN?nh9;dkiifkw=M@@s%gL+EU+(O&K0oWC@5*6TxSI})u@j~0A5_=#^fohuW(xo z%})y7E%K!ejAPP0Sb|W-zmUe_ZXyv?4Y5to{RaT}fzqRb1Bn1w5PF;tA9`#6 zOieuc2=q`rQhCM6_Ms9+? zO)9sQ>tAgtx6PN8jbr)IWCR-tL01I};K-!ahhE@${Zwc^LQ`niI9Q{Yo&vNO2r~SM zM(1h!fKFjNM}hX6oryMd@KaYGRi6_8!$up@pT8Fl+XhP6BfNaBqrId4Qb%WdduL~7 zd+iYHe;E@V0udHikxo{&!YcSAW4^cru2fr*xFwjc=Xglb7EGZHB8n3KaP6u2wn9OX zX`-#%PbAVf(3S*ZV;H|N9JF|XQi>RBTJ0GkIA$z0yFR~EN!5&Dr<1Wkfpc(9?W^dg1mF=yPij#kQq4T8^>*s$yupBC5zyCe; z#LOGctQVef0 zT9Wb}vy>9HQrsCc5LJlevR4_+`-ICfU-TB`ALh(Jda-qw$7D&Vn^l;Ob>@j1Kk=p) zB)9(_r@eQp3KroiNjmP%CH5(sgD7y7>JWza@bA0RGDB%ipVGqdj~D#Ogd?_9GQ+{P z5Q|kJ)*U4Rf+3#+h_6d~1N0SK*opgKctipXesaPjxj>q1N+!ef9!*XVf$@Zf zkNs3Wy{9CMiQ5V)uBa}PyaBwTB*hM#MF7nHro@SB1X}I>-(Oq zW)P|d-x=)bIbY7MOy%XJKkxrR&D(ZgAc9L*Q41t|oEqq(0K*kzwJR%H224iU6|fxP zv>SX#m??>64OogqGHAGA8w2REAc=BH*nt;AE6~W;SjID|P-+Ev8yg4w)EZT3j~0JX z1jfEoE3Dh+C&!BbSlfD}jeZsYyipix7yQ?s8GykIGYKSc{8ODr^kH9l`9*#C#MriB zR5WsFdQJF2_0a%K336NlU0g2~EMmYMeG}9>hWgdSt@N$z-fda2j5U<{=Bc?5nx7e& z1^X|QP)^QA*}*Gf4Mo^p8-;`xJ%x<|^_|oKFAhaRQ&DywSOf4DDyszhFnh@8LE^55 zaX%$jj-wRrac5=GEQH~fQ+vP!ER zLnwXDV-h5)QP`85$0RGFn3vR2Nflw`j3<{;3uov;#yv>v0w*U%y?N1@R1jbZvSAv{ z$taT+L4k#WK}K$^j}chFYYWj^B>&1egYq5x=ndnh#Uv;M;!>%Q-<*)LW1M>l*Y z+7jP?>#hItzy8isU-;;)FaP2f^60sKf!PPW`mOPFH zFndv>G0q<}ZNcvNt~*7&4n&Sq2)48XmfdEH+YO9ZQ;!Gr!59*Kuj*^w#6AOO4#3dJ z0Ixp-D`57@<9$ zO~*xtrh1Wapw)3WSJIZtUCk9PHc+~T25-1)<0V%UkYT{W3pNl^ibWHy?0vucbr39xtjx>YL=4tvM_>2=Yh{yBeJB7~ z7(TnLW&kG8U4w&NKmU1YX=#7|`9B@}R+D`ygr!Uz*~*GLZm209_p2*FhH$>f&J;WY zm~T>H^c%wIvz70EsqtMmNdrrCLxBnl@fZBii#{kNWH7vlos9E3O^U-f*7fL$w$R!^ zv4-fNHfkCHar7snlfB1)JJ%r20Hi<_tmCw6!Bj22h+Kg@t0ef57M_K zC0Ei{>I1Gi4(FMb$&enCuP~buh8X%NyKh5*$ck_!0TQoFLc9ojh%sP}!U;^Thb;uq z;1D5mC<6H|v>JxQlW~yx;e_STV^BL3WbkE;Z#Fir=mYGbWp7#rzdHlq_3HMc?IZ2& z)gyiFokJ}RwL?(OT~`N0xUQue^c!GAI*HhO?iy$+aRGb{7;qtp0|M_#H~_=dU>1`A zF%e;uoztE11c`U^ps_-APzp;B)D{F7x}~TjhS6Uo?#ZTvNJV`wTE}M7a?oQ=p^*us z(|HlJ3#w+uE98VHt|%I81o&1&aj%pxm?b2w+>J~;n&0HOGbtsNr0NYprxa|V;UC;K z8O$;On5-#W0!?)uq*f`j!ITo4WKh9oVaRP_2%I%#vMKY@bUG1)J_d%r4hQIQ#^l3 zNr}E-nSJD(->vGi#E#g{0od*LS{R^8_o%>ufvg*XvY^te^RPAv0#(tGMW%3%FE+E2BgZPS*;3dwB5q}G|q$QV2#bJDY zYiSGz(SXA=jCS&I^lU7)4gO#TT-yeIHR0D33dtJYs{88S#EWiT2LZ6dkuz3qTCNry z_SNeRd*WIWViR$=hx$S^IVQ3uXFLg#=nP7-z@nxeE7{{WZ8S>^fXR`>$I=u)gZA{e zYJ>RBg<&_F;wgKa5{{j#I;M9a{X+Sl6O>o|4{ng$_maC>>-6g~+5%S7>-GE2Qc_0KhO&p2rF&9Z9gbj2LPda3To<=nzj(;;!0BYGyzq za3~ab16@iX%)1PP7GWCyiKq^ehmIqO?-*)@ERyK~&QU@I&G}8|>$Ugbv%Paj2C75nFOYS2h9!aR+P#u>-?sD0+edgb=&WA(&;+8VyAOzu{CyA}^B3X%Hwb1 z)M4#2+1^zdd}AX_HCCclo6Q#n{ngxw_4W0`kpBD{1L1}%ov$_2UAa=%(8=%@val}H z)^$U0EKHy)+rZ6G2|Z?&M1nC98Ya+V5Vr$495YKuKd^t49m-)04drl*VQhL8S?G{K z^bC7hMFeu-fgeQB`4m+#q?NQMo|g(D74mDO`9FA`A)T3aWKfjEIYd4UjSJaKGG%t= z*o7>uZrEVhhZ!93HOLHq-6=IQS}Dx1Y5sgRh@Ur~M#C|~BM?7>EQWmzvdL-rCFNCW zLO6Kp)(47Z6tgSo!!dqiGGR9o2%-~-q-D#phmWqH*#c>YMt1q%I(_bizq-=?(&6>N z4g19=b~d*E;Ba;MR9RE$>dLDdrLD1Nn>(v}JI`JH-+%9|FZ|AtKZtv#rSz6Fedf&j zr~`+eWy<8qNQAh=h{32uDq8kcyUm`IoaD|@(rw9k89c%4wJE>ZBfANofk4Z=!H{FF zJL65MeGTYXl5iA#uS$C2{rA7UU^egjZ!$2xC*AauJPX`OerRxjoQ|A@!7KydyW|YU z2usR|W>D>3kSrOjRC)-2ktQF3#7a49HaZD%)#0IuSFhL-m?${IzBJ-9`24H&}pZWMJ;lN^E788pUYg}4|CWYHj&w))t~fW1jSspIDq zo_R@ukVQ*iwTy^n&W&o5pbp31i;L|0gKvx>@RWXKV|@G(0NhyMzvTL*ZTBNiHNPDI zBm3pK8#|AlJmW|GZ!f;M@y^IK=jbN)^a=J`P+)0lX4TA^UlV}U7_8#G??C{}Uij(r zA1eRq>%(o;T~=M=2FRJw^UF?MlNiqd|AQ|Ws4bd~LXiOMFQV*DhcSkpk>GhOf=1ch z6oj8KI41oxJP`HlpTGcRWfFRc=XoV^*=HI@t3td+_=xNrxM*)`s_8F3Ja??Oe(rGn z$b0RzeebnjxY7Q1&|9U;TtbD+IqJQ(c2P{;r{JTn8eNG>N% z3Bf}$1`#~lu~`J*P0Ymi7-OTGjufAyDJhUdrGW(}F#`()&8SFL)X*x~WN^s9h!vU} zE4-Wis71m<8-_5X*|ETKHn)cp7mPBT zcEAcR<~rT>XU#)>9WRw`T<%}4fw1|eOLKSn`%7(&-;Lb)tM1;?o}LrUhU8OU#wGAm za&FWazv?l|XMQ49=W=G$ETfZ4g!&Wvg%s$#>^B**5?ZIB97#fHmXhLvEk#Ng5`LM- z5KCMMt-j<=8MAI#RcuLo35+A?d+)#RHs{>?RrlV9(jWk-<`l3p;{=`j${ll51&Z1`wFU z&@S>P0T3_IV44Qf_&)_^ZBl*1CKXpB0HcH$?MVg$+LAWwwv2_F%7Q(J#Kut?MpNvT#jFU~gqQjhhVi_{n&3xA&5ou8;x2ox@`Zw*|(5KnjQTH84+`keq9VSD@0myY$GIDwwu{=wzdRR}hoVwa+* zo_F;%maP>-$W9UcS$q8c--iPb0sP*81gdb&JM6Yfgn!gUG2Vk0L~p3{cU-gi{gmPJ zZ&$?(`;XrJsvrB67ytJD;7H{dOpj&_v9H7m)8~iqclyyHXiX5-!{k>pe>SOt z30whl@gkuwM`FN(gz?<5KYfESO30p^gk#srB>S1pV@fxqV+E%4B(=gL6$3p)+yLzv z0_<&p#X!I}HD&h&qI!_rv3H1K!vo}zz=L9Pg&k5OV9#PdESf+Z`t5AOstz8~#zIqe z_E1pS{tYx`F|(qkTqzU*gprU`D+E;x6wD#Uz$RSq z5@Y58lZ>x{Vwqi@l-rKcTM{1u=Xv>W78KQJG?Ie`v&2`jA{qnGp7yeg@tI`Ii-f5( zZI;D|d+)a7*!;0Vj6@;ctzcM43L6XMtj8iJiA#fCOQ946{5bjK?ckPK5tKWfSJJ4w z;)}k75_IK~2|DdzDWPTBG5vaMtEA#w>tA1Kxb%jvybB8%BH{J&@?(d?Yu^o&zFQjp z(PDXb{QWQe&Qo9bowvUD#gCr)#h1TiDOuWfq^0+%m5H4x*jGh8Q7JeipoTWjBm7ef z%BUFuloFyPFb(7A8Aa57#Srx8(M$~alO&UtMFD_Yc4Rc0UzuyPkOZ^87EE5*jiM|8 z%TM4W8atER(!#CX_m9A;m$TlxWKiCo?y}SM%A3KOHab#GH2Cm z3O+tED8x!9_t>K;XGr8VsnH_qjShN>DV|XPfVo`E!~Im-2)`~ok(9trsI3x=`{?|uX7Hvr20p=HAz*v|xPOgYn z`v?|1L0pq&{Q;ZHi<;nOo0JE48RF?In6Q_aotl{JpdTYXmAA5K^b#p z;LA8HkL3XTT*2cLu726yi@s2Z+t8w+DQn0YShU##`l!{;&^WZ{)02&Oeg#uILQ_5l z=}}lP>qUps&Tp_@(JCGInQT%Yi7uY94c=kDk>|_ndl?6=eyRS%YZv<38R$;b^}W`| zfOn{_?n2!VW5E+GE!`-E?(S|q2W1Sc7>Cu}&FFC3HFnmf2{h&-V66>IptlXqv8AnT zMua!98O~!^GTeedsuaN!jA#|wsHQ254?#H(vr!UTNoIq|pA@UGG&dSA<>NKZ;pVK4(+PY!snBvZ*Uno2R717j>DJ9$~j2$WWcc@b~7;GxzSv`wX73g0KqHqoJR{ ze+K8%0Kj)|NYjaZH{kbObuC;Bz}l>=8y_#+%Ln6zF-#pFdz$jFL{ZWh0WglCkqE<} zng?a60IXVsokEla5Ij4&IZEhDC~O#=jd`3yGdy2eZ99moHNwW`63g)Lu&58tQT)KP z153y)n==-3fdH_-@V*Y3FbgQSIhsXdV*E%t|Ol} z>$Z9HB(?sIZjWwm5&Om6FD!{F;kOm>xBX~Gb?>`#hs)R5FMH2G4dazQcF|!MBX)7p z^2x&TR|~*vhyHm07%4E2O)I2NowC)euC8JsBGv}Z^X37Jz$mDe0C0-{7%p&VP=UdFK>@X3wJ;RWlur#BcVn3!sQP;PdH2*sCkdre6_G!>wDbNdx zA%qFj2l-pBxWryE1+!TbilCu&mR-{gTT7?^?1vLQ%f0J&*fo+}B16{I(qnVq+VI^O zh^%d_4n6l=o7eb0*VpO4J+jxJpKk;|af-Ye~1N zDn^5827NpkPx~Pe>n;@x->t%?C5Wl4+V|i4xXO}Qa96oSWm1(EfUCeJ{QQ|C1u9$x zO~Oa^&m_DCCnmlS*M&zMEr4D8WdvV7r*;uVrt+jM7guDtM1c~NW`Zhf6KoZuo6z95 zi8ySm=#KFQ!oh+T4Cf8Fb9_T+|DWtJm{`cK|OZgHG*nP~*a8L@=|fT)HtUgEgU zfB0ziC)?~BU zKz0ls&B@98_Zu~?UyiCK#96=E#Ay8OP zgl=D-vt3E zHlH3cGshdt$_`XtiQ#kE+GC#k@8H>C@_ys58a}fh>60(N$l!P456_~a2h!vU>gTxD z{#$U#7XXw%YrjU&4{d=(|B)(A3~IrbkD%3Vu}p?PDcS)SZm3^mzah6QUu~IN4sDce za4}spGQPqdPLX*$LIEJN1Lr(E7qBiyqCWP}g5>egVl)sA>7ms!gac^yx&WiRKI@`y ziXku@nn3%`&SQFr>)05F!xVK)m#zIKxzRh+7QOZ+d%Q$K*3jZ0oQ6x+*VoJEI!4|- zHZpRwv#+6ZAoS<~L=Q0JIPqyOYMbHOlb5}Q zte@;g_)Z^w$o_mNaPIGUQSPYZedXKTgX=g@4`Liet z=96mn$sq?2_%Ax4^4OM$YiWQnc%_v0I3y)2gwJZ8HH`^xCq^x)Y$h%AT$uiwPNfsr z@R3ZPH7bc)$s}zy;L;3B#H;K=y17--)>_)%`O@L?^M6_cfqS7-<@Kfg=S$z2+!=qS zy18MlzyD_q6_$^`{AI|b{QcuehcP~FjQ?19AB>`s*^_tk@*^-&OG=VEkzmU2cNk;} zhn7XB9bqk2D6xN=l=FnST)tIkpH=)>Z_-U+(h|XPN~4CBB?pu%;Vb-PX!46TC3ZV5 zJJ>%)s}cib4DGn*$GFP7Af9%+r_DDYw}Zkts)UURUj)9qU^4rQL$eqt-&kN6oXvSQ zT@XHw@XC2G@?yxJa4k`55}#C$sc~7{n8Zt~w=|NhP3N^bw7Oe47R`#g?T(%?PhKot?V}{=+830Exiy4=|AQEQB zP-u6Z+z@?#+O_Z6fdITC_O3{4d0zqb6Cne}B%}y(V5GAG<~E>K0pqjgLp(khCe-wI z1al1WHIu5`3Y=4Gyx?%-0V6Q>0>4?tGchp)kx^(XglyWL0gH1FI}UXX3@qE&cepaH z0pRfmZ^CBvm`mW_#Kwy8U){N|bLf?q%fg3SPCp0myNU422{6|`bL_=Q5EX}U_~nPs z0|7Xw#bK=uOYDGEs+)Ku_zDOHds2FDFOzfCtv?gkXvB3sJ1d1k5bZTZD(6TPvN^1a zaQwo`XQ-V9unqa_p$MbE40RXn;YI5k)PiNDdTJ2f!MMmiMONa7PCsSUZ;b0A`bo6_ zbLZDlUvYiH_`Lo{cE+ivd^P=d&i9v=uU|S`eyP5?uXChhq~mCN?S2s|WCD+}fZpF5p+n$O_;~xppa25x*c`nByeH5ZG&8685S_K)wm6Eayl4e9%0N-@-8w96H z0s}UHWac$;(In@xDX$?dYc*NCZ3deP_auk&mdpc)czHt-!YgnW{DI_k0sl>-N*k5W zN!lHQgI1B1xJ62(3ZGC!bja-ZuqS6Xy|>|#iNnNX9>iDd|2&Kr6B#9K@a(07i4WLg zCdjuPmYl<48D zy!FvjZ$0(*Vf@vhdD3ZpMM&8-L|JtPPhFRPQGge81wy(s<#V#z5d?V~JKG(hFh*M&vdLtYL zQC7v0nTKUr@LH6!@SrSs;+Qf10r-=GLAustL_!u^OA_X@Ilj^0@f?MAFF4Q{a#B8N z1^{MX-8Pg=Y;I!R(bCgEe%qjJp?hM29hw>W{fiOs{8HXz&kt6CQZ8bl9_1O27g1la zV_Yi}0L%%{&LM3L(&ttc^Cak?xkG4b5!?UlQ_*?Vb);?ZQ}d=CZsOw+R6N0g*C{rN z_+mrMqC;y6w6b5(7q-q6HKi3A`3RtF&pU1)AqsPu- z&|O>E_taEVv&;avl-+*b(*?ih5gtBP1i%{__lV?%@01!KKHB>sg%Ls(ePiMKIzo}aE{x6Ejdvdc5oQhL0;g32KoU2#w_&=C&Wd7 zoWUi$8d>b{W^bL_BOUE9~k@VBK7QaC2qGu^F~ zLk$xryDu;VZtVsbMqfW@p)1+b%5x=8S6qYrFEkR0wEWpEhQmuPrwf;GjNWaxHhce% zy)04HY(B*S7&{Fpl^G1QIKm|=D(4LzhH2T9tjdf(RMdoLMb4fzrjkM;MMO56<(!nU z*0>?9@G%}DIxjY)L9*;!N}z^0$%oGnr;*|_K1Ft%O-sCtxWLh|EfI(&D4j4BFpmQ6 zyk*d#*-iBLFa~zp3SZ2+JE-P6MY?* zpb=>hj7Zj=(!A1{3T{cp!zXQ$ySbEgeK z>BAIBs(5fead`L+{7GZhpP~jwN{Ggv1}C$A#S@gE2@;mYyn=_Ymr4tb7JrH|vr;0b zl4=eipi(l$lcHJ)*)KBTDoJ|(eUx)q%s_K_DArvpZ2&hgvr#)xo1^1MV43$K9JY0^8E#55We3JA|4 zC<~hl(U^n|VE|u{ng9*nhAPcij2e_;A}l&)Y<*#vn}vl7l9=%D@bJ}Ktl49p&h746 zEYrJcDNIiIgkvtVa0s&}q&P9*)rPU)Tk+9bFfXBfaGH{`L>YBDY4Nb%lso`1;4koX zYCKx{&UYYm1G>6@*j+btp|-ZRy>H~*V>o+0e+Sra%_%$d%(IIJgwQt@3hdQ^YLN<> zo|csfT>IPsnBCrlR$ySjQ&XQn3z5%S5FMkwYOR334=A>Giqn=G)%?k_LNqhg=;)*K zL~0}RSgyOl1y9s1NQso#EW3i?h1B@If{k|bBm{c^fH{e7EYs3ou8>|qvuS7w;1_xw z!lwoY2K!49fY0|246XtIPimq)ROz#J_I&7Z{?NJhN_U^u%9;@EhXDA{lMH^R%4^TL zoLnriO>u^zt;AaZU=f(^&?=xGQAZejgb_HQik=JFE581HGytQMFT+bt{!=;_pQ&AM zns023K*;k-WD?y*dd%L?TYXbeJviS3i_rRk!Q;MA06cDQ1j1oh|JrSDTNmy2DZ7o` zUsgs`!{O!CsmoTYo`H5CV7D{Ayyy#ooH`nSk324VC2279DfXlBjmAcuH56U6hTi@` z>G`hG^78Wax$1iMsNO9+$oGgTQ@EB+asDRjtBxF}6DV7L> ztoav@Xns5G@lqN!v>xHN%U~Ewos?`Mz2}J~(~!mi+5Cx&NiCIiTz%cMy4@ zNbh?2`N8ETn>`e2>aV}F9EmgyT-F_$s&Ab+eeyzQZMVz({_lPC(U*=qZ?>4y(@sxX zPDx3p!~GBPKhPloXs|@)EroKRJr;?gqEj*fa0>UsgtT(p;g=OLbWRB&76Gs%c^!iF zVx2Hn3FC8MV)7>(dB0kqM9yJJx_6WDTL9qw;4bzU`fvL0`f=|I$s7Q{Fpa*qkjX)o z2W4s9MNu>l>OhO|{$1d|Zg*k$Ts(?~P_5&~_x;IWd=rMxPXnmVl;D7wX3{RS2LnZR zkxQ6fJx1My+%CMuBeEzf3lJEj(c9SGfY+RDj8Y|u7T09OHd{)(>~F8yAsiQB1i$;c z!^3UokO^aWG+vI(yuJ{|ak(W=B3OuxW*D3i>QDBt2%a5QV5X*CQwV{v!Z3R)ZS=xJ zGN{{%F)p%+2Zt>bUY*9kNo)+A0NwL@?{#$a{vED<&x51(?Jz_ug78-l@r)oQev>rB zJN(jH218T!bfT0p$;Yh>Sy~DJ1mT=`s^J}&x-(f=OF^j6Cbr9 zSt=gtCebWPl{qwkR>P)ruoOp`7P^C>X$Ssh{{-ujpivfcpEUrCQ2P)76W+szT!A!1 zSZZ6LU6|1Ru*xzmIXsu(N}KAo%6(JSy`_ ze9Bi|eA8FnUitKMoA9fF>)&k%b5N_ZRq=Bnr1b#&{Y?QlQ3Sw6va1XSVJ!e7GE>D# z@=yNcPtxh2ai*{IZ9PLfC?TBGqbLhU8+lzp{H zAF{1t4JCVG4TNpWVb}??J27mX3NykSV1Ix=N3GF$tA6~x4zk(Uf#%R!*&{@9ID=Vh z95365>Nl)5yRU|!Z$AL=+#G=L;okO_P8{tUIab}?*LU=2`%ueBU&Do#+J>RJmgeRQ zwJj46ht=H-_2^Z;q9;kV@yjZE;>_Z_TH8{~-9Jgg#n<7+!~@ zw%4eUmRzr@+>XU>Q%JP}d|W|Z4ll#2_V(gNU@?g-%AwPcQwWI-xg29nMo+wAr1JF1 z?uPbbbBqEHFaQpOe5Li}7kj#v18ZgWzw556E-(FAdz(>t>dSEZ;_o~WjC(w>c!Gha z$1DAVLYPbJHjl;1{9A}S7ziT1f<%jy(UhK*VsCK7Q<6-@clhscKTKR#PPv0|*^U1& zrEY&^0p5~Za%8ZOPz7MhiM}V@y$SJ^;7<~|EI;K(-=!c*2FW*%BzM8SbPv5t41qZS z6AIsDe}ZN=+ztj{MuSn6b>zm48~-kEjvF>{%}e!!h^}K~8D@`4+7P=6$sJ=Z&Y1aH z7$r>fHxxFYe~$Cv*_eUwmoZ?l(!omDXgoJz6eDR5RRYFo8_aIQhKVf)U7My!6q=i+ zixH}^JWDxoAwnZsP~`BzRpsmPv$xn|2CgXy4CufcxX2m&-b$N2*WuA<){Q}c2wWD~ zH&=2RGOu7I)I2dUQFq}A*p8}u>*v;?ZJ}piV3l;wQPlnF@ETu6C?dA0nzTes{U8Mn zAKU```5_G&d#Tab$2vY;DZ3T5d#&VrGeyCD>@Z`8#l;K z#Bdku+b5yvj$twUJ;}$_S-vR*c z>gfjnF7NN}T3!Ytk_y1%^s&^{FXHcGg5D=d=Z3;;n440#%FfOs8=isvTJLoJSqU_H z;;#ivgfRYDqkq;=Ux#CNcURS4X#i|0RzYV3>(!!dF*0XG#Tb7Utn}ts zTW9Iz$c8QuWgv_;;HhXtuUmlyKS&Lt?9K^91HLf3U!qWYWe+z&)1}YW#HjD8ojq?4 zhkd?4xM^_E#~88CW@p40P?_O!C@>ZF=>uU#i&y6L*7?RV-3qP|%6LfGlZ7BS{wM(_ znO>(01R{a(a@Sz_VF)-cKfJzPzRsxcNP9PO-wxMOHxe`>+&5Q)MRi13SR@n_t&b5Id`1B0J-kEb_TcCt4VHZB&y<MBTtnG#U@8Z&2400b=x%RkQD*Dc}1nD?EUt#X=!)VBx8VcTG)&7v~P{R*yRLZAgt_V)H5VM7L2F3pb7>MIJA(%Jm3GbyVDaTH38PAS-^-jD;BBP+8ejdGGq*+cmwF#{bLx)LZ}MpZ@K?{o)tD_~o}G zuWM=Bl9Y`enaX1s8D>AYl!P*9_?7`}*;^G-Kg+Pj#+*t89n}nO-DVF(RZ?vs=fFaN zC1o8+iT_)!$s+2D79~k?Sa>KF7hRE0_>9|s=KYlHRvdY^^#1$M9xUCvdk@&I1Ps>? z`e|QJ|4{N9|6&{n#duv(e#QVkT^}4yzueIci+F2GmdVJ zY4V`Qi1}(VvqW$f4~~XGw4lK}z!FdT+`EqQCW`9VG+x zqj9+6g<-fb!9*G}I>4jE#aQhB66f_IPC$cbZov4l!E-B1skfwy#!Culq!|Dwvhld` zJbM^hbWa02e-4fiCEuxl;WNN*_e5RYmDXgR$-%Rna<_Km#7@5soRHun2%LR&awzYavc!0~!~isODi8 zY*;BSP9X@}Po098YXsmsJzaw}VY^j7FJ{pEi=h`Z{RfX}`Ma|wX7gna$?6`uXJ2{o z$-teF|M3scI(exqtYmokf(Cyz24F1!7c|fh0WdWospSj5CIDx(0IW&GDhA*TCA%`5 z`S5x!_V?}m_BSA)gB?2qKw(4B*`P;1a7Z8W!2@kdKNX&`H-#4$7a{M3-C58&>9eld ze6ajwCnko>Hjw16+8J}TPlat^7$vd0lCkB$DH|k}>c>|i`A>Z+|<)`9`SeJTjllZ>z9t5sBUlXd#$6dW8~zTD7n!HiVHBET2f*b zi5eL)NktQX1)n&Zl;a-$J&|cRLw!#Weg&g-tEJ_=bK$iz-@rv%WPY&y>0Ovwnu9-mg3-PkzxVO) zRhc(kaV6(bsO<=Q1Cjh<;I)F*B8vxx=eV+E#}E|V z4GCBjO(_WgCLa@iE{j8`wbXoQ46$@e%5B-t=<&iC2EJ7{@1eQq-c97bfU$lkb;z0a zRVnq|yZ6q3eTnnnn|}8~CU?6^q;@el{a}o8eITk%;FF^ z(PJXDa*U+XNPhvOwc4b^tOcC_QAUNZf5y)!WI4pazz0=dU4x|NNh z7-d0z-xRpv_G04~s84gRLnw~~7> z{WM)2J^7b+F3)d(w=AHC94rXKvcd*8q+j$wA*7z&F(CI_1OyJifeCb0Q@$`mV1~J2 zn+*_o%C^ifxXI@`WewZlP~{7UYv7qxTWD&LeH5Dyq!p9w7+1DNAz3^07=Z`G{W7Qo zfk#AO@svG0(Dkjs^7ZrQOW{FqqW97XMu3mLcJydNZ+%C5`+E(4-Pc|_QP($dvaaQa zEuBMk4PZnXYB||DG1Su1(p=eGdF^y%Yil!R?VM~qeY&KA+JKkPh2(-_2AYkr3q&kd zeZuShM+DgPhsm_^p(xiC-XFw2jN%iCd$~=^?Y(p+TM&ODAZ9?Jbt@_7U`R|XH6!|o zc&!PW4UDDlzc?c`qm`9y+!*;!t)#U6yn zfGx3>?-*Srrz^YbYTK(}1`R27R(-f<{aCqGXCJhMHX;MHe>hgs_QDITE=O|VqmMrN zQq_M5n$i}y_Or7=o&&Iqf^uqSK(&+!m&8I_g-)cD=m}2wp`Z{88sXI#%bh}VFm?<3 z<+y_ZrG(uP*qS6|cNv~jdKMQ#bB7XeWVe6U;-|n3bOB4ehY-`D0e~&$1yD^> zb~FWP-Qycz*bgUjsRbBBSE+kpEdbv=@-@p(Zirwta4!W=2Y!T9EZ0zw`OMve?cW38*_1cFb7~2hG80A((D7fr^C^i5YeZrX1IPhlX(7VGIzkj;Vfy5Tu0VnLB3H)? z?f`{X2!K~G4GD_wp!kSKZWKN_eC+Z2qNP`j`&iMlt9bbBrq$IZ8w6$oz@n#j z-s!^iA7qk!Yc)I-1!-5KXn`;EVLaZSEu0i6K|-9WMA61W_w1opUU@Q7)7#RvM85%> zvzVk56Z}`xK3G6tHGm^m$l%cKfGr$-E$E*2dUq|wVH_fRvUnAod026kEn>X1tD)EM zViS^10F6rj>)`Nn&BuB!!@fZu)#*b~93T6z>p2v$+NT0O+mvsakzEjC`C!P*urzF2 zwAc82O-;TjU(>Q}F>GJGXvedZ&29rPLBLkSu-VtN%CML{NE-uo{ggg}QE9k}IJBeI zLbD$^17_W1$Qp?Jf5g3OR9k17E-11=NU+rsMi&ePL`Xt6KvIEJlDIUGKsN!(jgjKu z*kK5$Xi`|?c9H3edImhrQPJ+MhR9XkY+c5aiq#iq`lOcobXNbUGp6gDraV3=GF`T@ zk~%|GY8~dXX8ABKkG(oSX3c!>`+a*$*iNd>99Ng(V30r-LhNTh@B3WNnDl1T!>HL1 z?} zefBB#ZZ0Rus~8Cum8aEWh9IqkzanF@DWt#z$$m#VZo4!RNjvfzS1j0Ygvpw!$9L+Ld*9&N5oE@5c&l3ZVi0E`+fTlKL-X+tU;p%PFN z13fVb+a@oy7gBPdF6Pq@?wjlABMyc(?TL%RCJ(&_%W<7F?Ou1Mthp_23~^`Y#^&jw%#gg*y>DHA3K-=F+p za;T?&u)%LyUY>>^aLiww@YO)p)dZ;G$bY6NXq|E7Y&Lc4P0<)&Fu9&!t%(3I;kjnu z!wY)-LX2ED7G3ZW_%-Pl%r)j{ImDNDo5)>8XHA4;qipc%bGXz2aaPkn`P6cEw0mM9 z5L@uom`@lw{Qf|k^LL)Fs_GmbRjDGiP6ENTwY{#!y0Epax2v%$YnOH zTrV(U&8k-M&Xb_SB9ze4mlAW?k5c60Y=+@*h8c->HT84X@5;8LbRi2PTrlwB$C^|{ zy#`m;@P(p)4H5-ljhLh7wAwqXOzj-=l}fw_={iv z^)LMT7d{E{6&o#y%r0$eM_(6wSJdlEz7;`K@~wcz0J#NGQctlNw5D~(4ZtbjcP$7h zIen6RRxsGAcBC{+{Y-bi*i;C20EVozo7V_*vMq66$r}uAq-3JNs)K1t^x=0}vpb;A z3bs<#dw>^Ng7w8Cx7}I7j}IgOmc`LW4iJC|{(k)itrk9{jK-)ea(Ss$9C9zcE`@K< z1uw;3`UW<`41n2%8k71N72cq-XbFs4HbC&S_Ifjb@FV~*BxWr^a|4DkJMj2K^9eQv zCwu5o%3bObuCLz#F;>6!iY{MYU!2iNgSqQ4i|%WI<(T?9`Cm%FrAHujHkZsD>${#~ z0DKM12FI%*lzklAj*P~(_IF*w4WscYg1+9>Z9=`)*THE41?3pk)KtQJ<(j-=sV*M; z50&da1?-;mS3FB6@Lv+12IE3P+JXN9p-?;pfIo9_`PmG(*mAExA`AOmwz`!sfW~wP ztxzaf#52V4!^U_DY)XL5PXaI#FE3;6^zt&qNuQ}P`JxMkP)8_c00kUm8v+8)cE9b@ zn-{im2F>{~l^Z*bT`zy_)EY0r4d8qAHH3- zK^HK1zA2S;7U$3ZNdQb<TnG(mbu z7z1y3&Fu1YbZoxdXP%e{agPG0Lfk6({q%DeR9vL?{AeU{-qlbQ>8f*ex*7)|0V`~5 zb2he-_l(v-tEbND8Ct*?WphwX*uQkC^KDOSE8El-3h5Ga4=qrj$&Ur8iY=2%7nU5UbQUQrJg?b|4AFpW zLZNR-6n0aYvoN_PFq~m56@W396LoWLLCT=Y(U6Q(hVf^DqmI6eki)(ig4V@~Lt4^s zSJ$i-SRN&Yg`iw4!$evHe|HdnOPh(YQ!xz$I+*AKA1&QCrv>s4q%pBN2`aEV0^iK1 zQGZ2~u`qA}y`ON{yK58~#UKq5`!D8w^&d`v}L=G#-mq2_r>DO587j^#+yjZ!}99=?!%JY%nHVfh9^P zjb7@*WIpf;L*J%SX|qVPXh|3C#=yRMcTZ2xCEICTPrVctB-J+{48tJ0Z0R~VAPvb0 z^+Rg83x@E7K1b#b17LgENf<+EZCcA<-3s}=b@uk2AH6wxKdw@(#zLVG#7M#B_e`-7 zh|=4Vf_Ub9kubRE3$852V6pw{;^Ni+%;KG2JdTpk#~N6~VGJ~R?2AvY-FpIki!H{L zha5pARYL%{Bdq>cv3w}PuhxlW!=@5u>fFWn+>S=}b}pURo-}-$U}N!{D3GKTduTeudV1M}n_@ zB{!sVJ0@Q~Ib#8!F%HhOEcN_1>g(iHUTi0kjJ^^8AD%rk?kl|`!EmnRQz#5eB=}=E znh)ueWmdw2yUXDOiLl@r=-3#8nkyfH%^E^yedQ(-NUjz_CvbJY02_SY!oouXXV?lo zGRMs3sNQT^FopI5p;OzBI@Z@u1x!(c-i$wF-@}?{%{2Tlp>=6uY`Tfy{e;O^UK1@> zfXpivT7PIT>{ms+rwm;CC>O7~FzgzR_x46yy}hmmS8uzuvC%l(etFQ?*!6B#cyOgH zY*}fvS_TI#gJDoV57uengE~v~%!oWnFKL`*O;?GlV}RHSZ8s7vk_0<)Nu3RbxJiY!(g(b%k9 zvLK{c12H~yny`^WL6|5lo@r$w;e}(GiPbFJOQiN;n1SOf~6=X6XJEdekuYg5$Mb!+)M zcd{Sl0Dx`e1lVq~SUi@&%PU5w)9Jc!;U+p8_6hlY%e;<>^3&xCN%t&ocpt;w%7J1C zMAISWc=d3=8JDp&4KgMf|$G^ph~b+!Hi0W8So+kFlwHsp}pY@wg}glPMnB^2ml8{flw@D zJ`wee5%LRD^|#?RLk!a>$;}H3CkXo@1bew;_rMCexUHwtP0a5HocH0_$TihStZ{^{dy83u^nSF-l;&1eq9l!ME2T|qU ziV{-MxT-_3k<@e~2R7%<-p=+ZMF`ly@iPO*f)ur!xeMtWgyVkoe-g3!+lFi`JzK##2$m7g>!0^e?b?}D2i3}q6y(8bgJt|Bn6BaL<@Q1vU&)fP=>HmC2g~7C4{jYC+`4t}MFzkG zUZJQ#)0)+3?j76;evyu?B>)aWml6~-wB~szP$~gnwjP!xS!`(xx~$iNDLzrr{02;! zHyEn+Lqvx(ftLMA44sP*Eb(AElWw7@mADVyz`gK>)FuqGXc$8iBCNF6(Xh%AlQ0d< zCGTEJ*pKgAaVPMIm8Y2n1cv2gO{aHM(AP~C0GKJStltTDwOw?% zIy*<>aqt~=7*O}~um(dnpzMd)S|qCxRSHS27lIy50|T-KOLoqdNSqEa;OBnH089`~ z!F15HEN%*xz`qy(v$Xp|7a4w}po=D0^)9n{^K#LL1kohL0$xPgWy*)K3u1(NeVIzR zQdX#85J%JU2yU()J{$wb?<{ru2D}{|2*Oak43?@fa$F`H*!13l!C)W|+|dzQAZOWx zGtFbe!{XvI*Ir$frtdQQMf@EY!7}*hiD*sveA87HqWDkW_{M-<^~Y~kmtj-b8n%RO z()sg?41k{yH%Q?d^v@vxX78#~Lh!-g{_P9TKR9~ii|I^~&%2kt+ya)5aARAq>%*?F z?f6m*Dw+Q)-5|E9V^aOX`GsG6m=2hr)_U-#0#ya%T6Z(L`q&N5s z0Rr5h@tQ6-`6kGz+X&&McV&9;uCRs`lQhNWebismq=>3+La6U| ztsA=F^MC#q{{_gf{^Err*?LDs;(87OKtyV?#)xNZV8|ts8ZZRY)JcJrGq6Z3a@w$? zp^;=1bwNi>Q#z0<>*`ZdCYCJmO0$weQ6su}fc8}35CGE!FyYq8L@Fo)a48c;y4;%7 zrEx5Mn{_5h3>fhDKod+433~@1&7uWL5&*+^8JdyyhIlA-I3fe^A?|zR$ZLB?uu_SB z#=X708~1*c)g>y}ZWj@FqlFeHQFV0L9PLt~6KT1E3)%Az$8W>oBNgXhh z9y*=C%>}_=ox-BEpz>31aO3DbjR3qOf5}m?K~TbGv4)KoKdf~&4%+))?9uVpp^c=t@6wtom^-$^UoC>hNgjZAJG&bXsAmnJ`V)K;jkrr`Ll9Iyz?Xcl!tm zlaKXgvq>K_n8{DfG@;*K?a(i9`v$$i+p(~&H-z+Nj@x=GbZQ}FcuT+Ve#o$IHtP-g zw_!o7kDZzFnaX`9PM99f67=y8{ijTUgA`#WF%XMDWPJW4Rwzs?5 z$#c}74FLNQ##yCk)h^xNW7Uf>1O>G43wn83X}4cSS*vCffy?rAe+xVhnUfNcPpkX80`T z>*v^7gGL__y7Pn6$915Jt#>OOOB-cn_VK~X7i%M`eLwtmj+IZWsv^Ux_Y@;~jti}C z`D?Y4ym;i5Pf!L;Nbnba?Lg2n%wwjs))=P3n%^JD|ju^54C^dlC%qwFX}j z)j==_W4#h3!h7U*Klo$*isN+4#%W4xk=W8itbUdt4QMo7jv%4pf`=H8@;JGdoHfln&|;?y0t2K@&zj4X-~&x4{rt2}i8Cxgq|LGK)pl zqg^AJIL$*{5(uO73af>nFF8Rrb~$^`lV48ZH%q55a~;bGxYCd$!gWn%Ghw)a z0CWyMg0QQFEt3yLSOkMXS%wI_5PIt^gJH`wTQe~|Ke8;7>SsNDrgUAJUSNBZf{^vu z_f9OBS>M$Br;8AKMc`M}J2+F;^73qJ>d;dT7Y zyREN1c>a^$_~eCGZX7)t{Gv#x2cQ2}N=L<7%gZOP5h_=A`DYjZ?(cpUe)D)sg_~DD zR(Y^(?|7zg(yMtXw5`4WDc1E z`mHLJVZX||e}RJpj&u8};i?O@!zzNpy=`%o%jIhCbTzt+uA9y_XPwdY;qY+R;7Vhd zu;0OOIP5VREtbKy@VI5L(b*Ml^vsM~Y+9?u0&Tzqa!*>cCuaujc7nWi%!97JG~`rU92Y10G6HM% zl^Y0i(h@+-5&Q*tGzMc)6BJINMf~>!-RAYX^h|+DuV_Ry-uK5Ji=sn`ZHagt&b3)} z0}gzJyd$MaOWzZ=H^6Edk??D~Laxs(N)I(dt1g-5k3jHH&auJs`C~d=eZ6vNbAvo} zw!v`MhYc`;HkhNcP0KOv!l?J*Lw&$7tC(1IYTr=ux!bpHyzpyZAeTS?!mt0u|G9Tv znMev4yCF@W0Wmcxr4E9daWRdKX3V<6_sLa)PMO2*-xSE3C6N3S`Z7bYK|}f4r=%$x|LcH zfN$Xi=`Z9}9vs{_tNY5{z2HG90N;~A`d;g6>75+ZIxtv1BBe${k8nCkh%l^#-)Me= zrEhG|+)CM%L`_K$l-19WngVbOQ)O+G)CgmR5{~L7F)CIH@Bj-N24qHDQqT~JCRUAfIE&-)cm}B;=a&n>S1SP_#>UVF zJXTXaJu=X=_*nt>j{z|9(Z}JJRxJ!jH%O-+6k(fa>@vHpQU+kQ9i|`QWkC9b(&;wh z?=&R(gMf#27%vz?+o4b_6d>@szaIcUA)H8bV<`076oAR)1j^)q;nP~8XRdr^k(|Xl zzRK7yIa@dZ>a6!OUt6cl}*^yRlAN)~r0H8%lmN`;nA< zbvT6bGXYqZMN1;Ar!!!3Q2xnpiG&6X)%V#Ot3neK6VuZ^(}ZuVMh|h56Xm|BkNkwz z#}-0SUm&`$8a0_?v5=meRT)+nwkLdskYSZu-9mC4+S-5AvEQ*D@W#vr10lnw7W5r~ zfIhYm4S@%6+u$Q#7zp^ekfA}PH~2XN7w;sftBS{Osydw!)rHaCP6ETdwJv9*%UEly zz4@W5%}73SwRt>sbshq@gDYLe@s+l)E$kY%+bkYSW24nJ?y*^{9<4>IwU^BR8?G*! z(NL7z9NZyn}8}sKn%}fQI!JWzwj?7ll0EAQtl;vFzI~7brGOh z3f`a<#SEgwOu}7ErYxRP&>!pW-8}U0rqeR$(*Zi=(W$$l1MnA0qYD`nKWFJ$Ba8O8 zI~8-hn%C_d%e&nPcty@t!)B!Ge3i=oKKVH=FP59mMeh4M{>ZDJZkq7AJk@V3DX&1! zS61`d^Phb3$*=v!Z#=J2*Yhcn_7{T)3}IFf+zG(hG!CS(_%SUM=gdL1BZ(Orj2|Px zWlatRm@wzrw3-U4@dnm4EP}--MMYI2wFk55bD9+e>*^)K%K|nu(iRxO8rZYIZr9LB zHRNRlX<1?G5YJ+xHJB=mL6yNEtcwZi?(Kage-OqNxuN$4> zXN|_ji>}(?;Z6`fpM%qIa!81RvjQ@&6iqCesaUf>qo8QmFdMQCpvnk$z^wRvpag)W z{jU^gEANAUnOk6T*Odd)P{G<=^Y#Q#;E8EP)8gkAtzLbuqzL$NEXC6e7N60?o&*Z6 z^vY5VT9Y)6F3q-TDi#CE$j&TVG30bT5ei4ah+Cs z+3C%S$v$!c0A>v&w1|^dVHXF`iBbhLjXN&^VAg=0ObPdHApSo8%JZ*0c&)WnbN9D$ zyjxk(+|ts#38$(XkmY9A+B|hDZS78HqsLy>r>qBa@JE@C4)-lEZSzwu%$Zc&2A3{@ zOYoPGB*^{yNhZm=C%@e`+A%iO9R&xHxqHHQW&(mJp^#yWoFqjJ-DdNw&jim@sKc-t z)BAj@gy-tLq4f~qxcb0WAga%u&!}jYqfi<7MsO#jUX?!UeeI4TA?|`An%tg6^O6kXFeA@{c#HXW z8DErwo(Ux9lPxa$ZCW%8;55Khr%rhdMn+4>EwZt>!qMHtX@yv zxqdy9DBDT$K!M4DSPAuVE!A2}-Q}OTAPnn$gQ9Yx`{Da4m8yz6HNAW$6mbrIAH=V= zH{X2I?oj{UjsN=~nI#aG;?BqT-Oy9d*0xfUtNX4UtO3cAc| zt+HcSPRY6_5g-GKrsSp zV0=SBxKc`iXsRq}2xizOC(28E)?cm+>r0S^g%lVQp}~nXGVt>Oxajs}m|Dql7YA6p z6*67KQ{=vE4XhY=DgevyTUjaHVG(mnWL?nrTRt%cM3O+7AqK%4p+G1QAPlHuACkC% z0MEjA0^K_huL&G@3=@~In`#;5SD1(KOmjCDE9F(SB*v<2`gCNvyT-J>1+!-uKZ7`I z)-+o_CRj>?VhFi56{_%Bx>DJ&gMFHRUyg2X_+;j$$Bm)HEA4$4m=gO#(l+-efYY z5_BccU%;@n5YTV$Z*vQVRrC6mciRwJ4Q*|kW8CWd9p(n~ z@N#~02gi+aUM|ALL9tQgti3r(0J!#h7aN?t#h!1u3wjNPw|ukTC09!U0Ac zm_Vc1xRA+#5{m9}Gh${fL8~2d=)sjKIE70w-^|MkUa=(q3W>0oakvGV6Ot)(jpQi}C)^hy& z+eSHS4BDp`;tfYvSs5fZqUqv zr%DFkG{HJGq&TPPdRGdxhKVvfvuUB=-VvzOEQQxH08UdEagbN$1ZEdbvvkT7VlTWw z0Tv^>2*8-IMfK7Esi}Ofq#22hpBea)&uPuo7g~#!;8v!NKG1+Ei2!e=K81Koy}wd| z7L+-_AUUYv)#y%wWpJ^+Py*mv_g>}iywuvdCy%Ee2VlyWZyXJNMV(jnHABtI>&>qN zr)47Oe%Xm6WmNXFekJ*>M4mwr&5#&3!joVShTO_cNgGXocL}vwSRt&O^L)9ei%t{+ zh3b#N;cU&O)Zs!H4`w@TjF(3rrA}9W+?@nj7HS826n|Yi+}Sx=6_0cN)m3tIc<%(9 z$JcaEDVFJYS&p_UW=+y*tAZMB(CbQYSizh)AOogh@})M~t1Kz0IC1_ZtDvbBc>2tl zZn`gp+@fhk<<-vtU^#z7%6pb*EsLfaq0t(Y14{rrP&5ITc(9r(ONcX7gv*m`DKDEn zmrYXN?*!yK>tz5o69k6*jZnbv@92O`_t`P>O-x|)LpKz_!(bgH-sRKNQn%sav!%b4 z>_n=B4>y7Ixf`U<@4W}eOaH)mz--O>xmxS-Ni?+s=x$bQvieQgTc>=yf8j9z&L7)> zm>EQ0%sl5aw-5Fn5a|8n6N0`E$XV~d`PR3@Z2r<*T~%n^r0oH7AW^_>#|zAy23LatH%@e431wLw|Z<= zdzrzZnoyWv~eldwCcMF1nD|lLC|a-Mcx5 z64$B)QI;7~pD-O5i%YoR&9cwW&`ohJM=|eirq2Pp*Ob&-PH)c8e$?N%&a%pXCquS=FGxiS0Ror?LEF>mQbi^;H z)~6@d1Dq-zue#7M3MF$KS6i(UzV(ON(eF0Se7T4J=ErHK8$&~{CZ!w-3Y5|!F9jc# zh?yG*z&nW)O^;3^4W{Io4zN=NP1eC$B142++EJ+1VSpCG?w$;? zOrzBr4Dv&J!J-pM5<<&m4ncWseDub>S2KK%gLV#{X0j|q-wigHE=keqFYA}HqN#$K zsbXNWQ%fU5Zs?8ReN*mq<#Fn}-4o)rpOeXE!vpE-{o zE9jndplLv^0eHfS^v?;vi_6mxRYZ5d6R3l(T>SX}%xVA+0WcbQ3CSNJ&kHSK#A_7G z5(3NPYFVTv*Ahw2>35o#iCDU^a)3$LAf{t_%=F%t85l55pv^FQ-X{1P3ib0XScu-#I2F%OrO-IDLNM`4?V!<-u#O!8!Er{UPse z{-17|=PTb?Tx|Lv>TPKA%#^*p2Drbr(NAdb%(%z8Vsy55g+2C`P33RuhLYrXUm~%} zWS$uS{(S^4=V7Xc%tq>~-CbI0uJswy%V1osDgE;kLF$rz_kD&4t!3O}skV+=Z1zDrdD5&iZ)j~Z)#T4f`(IU9o?EnkOG6PY3xx$) zr~pQAMUj)Vn?;ij%$&0s;rdbnsn=O%AVLaxj?HuPQmD%{9wqs{GK7B2pEp;<)`skG4U~W11z$_v!iRk%8qBq3+e9DYl7G zT+DV-jLbuG3*;LwkI;rfDl%fkxuo^}$pp%O1^|8zbkI1q1q_~mILfA91b}5DZ;{sG zw>wp?fN*C?@r~EPb1_ho!pR(3azx3YTrl~zN)~6yGC9ceSbhc?22Y@@$_#^Dy}__e zepLg34u1#uSE6I!WN9;#>8zRVl&==)@4)S~9n4SmI8?$v7#o`2zm7o_2H zt0tWp+Nrqa3{2s9A$Ih2n^os8+w61Au&CKw+j#k}PF{mxx5lovE~9n4dIQ3u2@NiR zSTF^DE&xCM@^k=3`HT4P2nJu-Y_ZjHrta<&CJ@whk42;9K2+5$m=~hv&_dJ{iv~=q zp|{`L+SbRm*Uej@(7J)s8>;-Lynel}W82_;{}Ca-aV}t3U*!zz0Trj;_Zs#)Ie)-k zbs-km9}UHg4Jy~o_-MSLHgdt`8m_uO8m|hUZ|Lf37;fn7ZM#VRv>D0yhs$aFuF>l3 zYV3NqcV)1xZZPb@h47%o?isW|95jHiRco_owH|BO_VNtmQ1)wQ?31oP`{4DL?iPw- zt2B6X(ll{{Iec;EoRVQq;Ft2dyMSRiDTfNd5G7NDH75I(cE#TTw=Vq}mJUfyhTsD+ zS>YC`%Q#bHwro0C3C5(quY@&Y&18n^E^E?|>5t_-|fEAeg+$ zmzw9wsnY(HcOOC`~QMqQuMNQqZ$09^{eJQOHB1%TN#849pP0M<|?7O1lbeZ9?R@a9`I zpE4*xD`mi%){IU#qB+3X^wR+N-oaOb#cpA!S^{mf<|E#%>}zh8*19cnOYlaqA!(zf zpY%qx11!R_B&$cE0{ZI>5cW&X(#9sn&OnLYvO-F{D#~=J`xkHnq)5vn ziutJ#S}s4WP)tMPJbW3p6f8@Dl_l`|&xyP88hCL4;`}fTdKLkAS?W3eIg(%MHp00s zrLB0nF*P*>Ng8-^Lc^XFMfO{|+C7vKR^m2d4r;l0kmW?rPmzaNGYjifJ+=;-5aGbI z5(;exwnK&mXwE?bOh9)6vN~X=4ZdH+r!3Fo*%l7UG1#(Z9iqCHr>4rulZj*1C`zvY zeto`Kp9zQ14-E}r?c5Sl-6eK8RJB=@UnS)2ulvab@UflxojjjBd;7@I2hYDk;P;hR zUb(S%kNiq%{zEdqRQ4V2VWn&ogKvJ`w_4?_(|&bh5*&P!%`J1s?RJ8}g!Q$x5!!eB zw4*1_4`qM))6xJAhQ2ZeL-Yb3(@VC#nT)J~F0Irny)elOTr$`BOH0QGdsQ*t^n|Hf zub&u$A7ppbOn$wh5U#Ocp6!5NHUn-LPK5&NhK`Paex00T?USqGfsTfNp~J6=agkH| z`|Di1Lj~e1FZ}6fi0`Wc0T*XbRaHe)@e89DM!86B{QPj|uxog8=z&3O?kp*SF4!9$=_hQ?CSoiH6Y1EPxRibM)b zwb))HrDy<0MnzUS+2`O?IcnlfI@d}K}a)V4KJ4@ zoK{pQG2jRkHu*eH4ziR2m)U15D_zDa-xfK4GV6Wa6HzamSQ$*+)6?tR`L?c$y$xXc zNL;^o#yQF7;FWY65fe33g*488X$>JFFQ!b21%lc-#5e}AXj;Noqlllu zyR!n*J~Q|h5!q=EFoEZ^)aD@4enJf{i3>PvPU&(*Pg1aS7mRO{^*N^2DgoXSMCR3+ z!T1WPYCb(T>2Xi%5jYdv!7v4Y{f zdyrVEyR@`+`t<8-uW!8Ga)|xnOuB!gq_L2pGsEW%$(qExNo%OdqAjYRDD9&S!h}=w zVP^wmMuRyCSHVSdrP5Y*%-ti^7{Y-KL$dO;U{yCa$CvnndlVdZ&g%^=EJW9#&W;?@ zk;s19^bVsJC6Q1~3^|baDW(YMPC-T%sI{gLfN8_ez`Uf~l2p*o{b~UC>T`<&BWExQ z3sul(&P**gE&k#F46}4bR|(|KL$whgFeCZ2^r$#}F6LC0M0n6zgi032DW^$Q!ikFF zQ{=wnd7GM^1_hR$>Y1QTM|L9t3pRun%;poIbE=^L3_+FUXUeBWnDGc{>N6ic<4>=+ z7jGgD7v>4Gzs>r^e7zBU2)ZDZ$odJ zYPdJj+v|F_&e`tltQ~f>Ilp_M@#5cjoGzos)94v=IxpKSD=W5eqjm)fzgIkUgX5l+ z#zyPRxLs=;Cub}kPs>T$wd%o_%ijKBZBCQ=y39ja9|9F&N$RE&0WyGbeT7;`No<+* zCP+(H@@HtN9@+;#%CWsGHYUkYlPO(AJ}pZ58e;K|5rFRq*P97FCMQlGQN2D2v%CE77jSHaVVT8#IS9mEBZaO;ewz$Whn z0>yMKjW3ZqcT&kEC3#6Dhaha;OW;>&uD&+ovDUdxnIR9_OioX`eTMzG>XEr- zS~0(+8g?3u&fz%0U#`LCF5FI54@W}F@5H})<@&A!nL%|TtC7Hy4S{J>5`EF-bpm6* zfWqi8N=vUsLSYk0N{aC9yH9-T$;hMK(8ThQu!pa7_ksbhNlomNvh$r{d8hjFf0Z4EC8zG-;)qFMp-#fzd!PdtC z7-{m+8#i9koK@E=mzv+$cmr(08&ZD*BzjTR}Yl7)0gT@9?N0Y}jkjbEn` z9h1z@(Fd(b6*Msm#aXPzkWKjJJdU2kC7ki$QSO)<3(t=o>w(1R#Bm2tOJ*1Y?g$Z* zwGf>(&CX)t9Wb)WrUACUtvuXAP|5tP*maBbKIPNpXQt=pr>94zFt2i%t$`~`0Qk9I z5dcFL$MQ4~U@Sy}-L|5s^6D=Fz)gqJGGJLdFb{=-3UY$7tdK^~ijpbyq0^Md09X!u zE=lx&83N(2)6?X6gSeCKF~X9f7{KAHshLH85dyGb!EC?`tl6;%x&j9DogmNl$g-@w zy85h#&y4&sfl>@7=Dv$bseEwW#Ci39lQ z3>fm4Th(sW zmQBJxw^Z@vmY2&;R?pZVqQhtm|7%-y%Tj{y>SXexv&e&<0ATj+Qvf)XdQt=ZH~`Zl z*X7^Mcu@*N=6_Vl_U4ex00Eh4kPn^2WBj zTOIpb3lZ*p0*uxerWYSijyk@uew=aGp{1brzjacNosH{!PD_ESBN(e0` z97&NberbpXn00b;M2Eolyxm{YuAgGmUjGY9(5#n81qZx3xIkfErxS_*{Mhyv zZsz4gj>m6;cldmv$a-blues=gxCSYc%@kc}7^UnOZjnH@U$O&BSF$-YxuO|dj_6P#*gM(G0JyJtt)hP&$NWGA0>+E9LDmY|o+Bj$DA&f?gKq zxu%*kbj=FOL-T^cj7}euX^dP?entSoKc^1hpJWSMI zMSV<$C5_JC^F_H{>&)ER=8KH?9v(f*N(FSTA8KL1w*-7awLg^o%Bx5A9=!4j4xb+o z^!>kXX$nccXY#AYN7GU+_u&gX;(-Z0_pYUS^U{?bz~HsD(~#ygWBcA0=#ZKEi^%t6K)czCqt%*xuge0_0HbH~0+(!gaa0!Qa7g-asg%ipRYwKX?8d z*KmQ0hvMX@9rs2WI92U%#5K&thvSXs*QfgoN%Sl7$QlEupAOv67Nmk$31s%4PwDDLqBM5uoTUVX!(; zI?2gpB@I>vbx!1C^-`YD*RzmmNe2}<2>GBVNaQWyzam3@YCbB#VR8bIaAe6|t&IQllq>@%MG zoU679`?{mh*5OzA4W{YJrt+~^RjrepE?t1=BbD>zSTRJBg$dZESwU% z3h^bZ-bqRF=0h0E-l}z}(#f;rP-1>!O>&3aEE|K_jm3h)v@R2*;C_I?m5?GG3?6{u z8HLkXUTA$Bec6T>=F@xRcE*p79J<_-${Y5M?vZzY^i#fvfG}iSHMdBySIrwT;bmmF z1d!#{U}_4cpDo2zZcg@1PBsJd!af**7=)%6aR8F&3VNt(_H4L|-Xx}Vq4wZoZuh0? z{`{3=c%Va-OG2SPph`wXw0jw z+gRINQqmTY!|YdjMLu4GBr{;$&^LF5BYQVqc^=W1u-|(}4m9Z;|C>u+tyB4=eyS%B z7{@l1Q+}tXMR_d$n?1jI2@(<3Hs;FEngke3*kAR_eaapk5A(~jna@%>KSg%+3j(m1 z*09*2kCXh4vRNCh;`F}t8VD;HgSEb%(BRo_6K6J!nS5`B9(54xHFS8*q1gKV`>~KW z6!KR++6r}gPlZAtyW;i@`+ijeXW&%l0s&Q3oFj*9mFk>IrMh3GiWB}@tEw7~sA}8W z8`@nB?Y%c6Rp%SqyShd@JB{J4_TkPIW1X`t+!Y=Sw~ab29;>x&T-(+-Zf*3Ci`6m? znrP3s1@b7hxLA492su-{`KN70=XnSe znwOcq>Q>knP`! z{@{9P8eQ*Rvn#KFMF}^<eAPX~(8StS6x_$vb7=N1R1&(w^~Vsz9P=S*WMi;k-j0A4)Q;UEJrgY9L-$n-o&y4b19G@iwvv>3=`P0hsgbj>oAy@O8yU_{`0_E&weQUshwsoTN58xNkx)TSH*oc{LDoxC<<^H>Q4TRqy7Z&WDjbwkN) zCX*^|c%Kmfi>z-|xSKxvQBv3AXwe!YoMCn>I!m6sh0ttl0nS&rfG-*d5DvT_>oEIP zAL#=z{pu-0)DZ9+LUGREJ#~s35T1t=nUkeL3uK=3y$X70d;IFJVW zZ5Exu@cu4e!Lwnrn5MJq490pe#7#JofX<>sYvqYLwh$&0bpIY*e?Li4!YHqHSAX<|IYWC%}EKjbnvS`e*72#;2nr-L2+ z$=82Mh%b4dbGz|PH(>G zP+m$To{(R$=(fjFu-&X z)+joY%KTga77txYqYTpNRPs9CvovQj-uJFQeBYpd&-ZXY<}(}gfhxW4)M_9W2$^E~ z1;fIl(0WHl2-+G#AbR#2IykT2dn(|MbMe}9f5e^l8X~IExGECA8S!#ARUHvmglnkc z;y3+O?Zfe^h6|$vf=466Z4C_#?d^@7VN1hBSJz5cxUsRzhDx3^n7je~JBN&C@*JqN`Sv=0mHJe z9}vG*l)gXmZ|^vUGT8Z{<{?=ShtN8@TS+)7-mvtpcviZ4hpV{Nkm1BSp}?kCNaggL zpRH7M>$wJJ+s~YxagI9|H~vBL-|;71s+eNBv#f`lg5K5$I(J48iUH1&z6#DUpbuD= zPa*V5DtyTRjOT%x)Q*}8u0(b#s}5!>;UU7ZAtf72l<+2bg92Zq(-jzYrrBs(TIA9J zG+)p>zWkM)NE#u@iyGl^gl2J-!JsAsaI1*6%O2V2n?QF&_?|dj7PF+{VFyTE2hZvHoHzR zmRgR+X6Xi)$+V-C0P9as2*x?I$u~REZPItBYX8AAbG)T_v!r~mD870c0PA>lPDJ>9 zf#UDcd%-WhDrBzf60h5hT=(MQayh8!O!{rG?o2ct=D^EfNFSM+8rwIXbYSjk{up$_ zVU{cTU3$6fB*Eapx)o!1P(m&eoIE8!PfPb}074V)4k#|SE z=Tu(rerG(uc_S*Xsr7v|4|5Oc1EQ%)C0-it(B_eVRe_v5{;2BYz2!|?r^AGWt$ zbUIzbMkB%Fi{IAb+q?qvcE&y&pUE9{I)g=|dM*v|+!Zsod0Y-__RjkHhytXy^K?p^t{%_|v$5LJ_ws z)tRsSNB|EJ)m@3y0mVR;CUOw`g;E8nIG7@=)bmSFl;_!X>0HO!L54?Ct!WJgKLdaX=>9l+5G)1YBLvi2_xAQQDRrKli$lER z8!a1?n6M!wNN>naU{GDjdtiwSx5z0SG@^t2PXQPQ(o~wYgi%>b%DLlGKJoluFr;(=;$LuYd(GATL3RZYs(pe;^cs zl_wo$z`sfeu2g_^b&RU8VA4KN`B?}o0dOVFy~Y!et3?22psS!ZX9<80!7p2#9|quJ zhUWl*TJl_#Lzq>0c@cn@74sv2z+*L3U`!~xZ??t}4BZvz`)QGhp&;%^3yxX3L}d7yk6$+OEC) z#*#ysP(BraOBGmoojO+#T8}<>1#Q2u{5_)4{3w;oUz)tuSY>MZ(mNyNV<)y(I|AN) zPNk~aUtcak;AOOQk=Jt5zpRYR^yROshY0d5O}4!J@?6Wtmp7Lxz#d$7+-`dlhOXhk z?;oGrgmthwd8qIx^Mu9b2>_OaM?VLE>EExu`jxXE4UymdmN#7-=QZfdP3yDoEfB8T zq1Uelz?<^WukwWqTidJKA$>r_agVrtKgX$7y@q(FKcw<<@pDyG+^DMRrs|wa)xkwn zRp(U!&R;v~Z@3wEsUp3R(cbfs_6wt3t_$JIuHo8-NJIPO-mvjzt+TGy!GpbGB-&?}vt$|HJ=QkbOoOd8L|?{jn)o zt|X!$DWh{IMXIb~Pb1Y|Q9V^IrA{PrY;v6|5jesBXW>n~L!FY-PY^c?QcV%L_jDdK z%9tdblYb-`cGrZD>Xf{!-V)Qr$DPYc``_K1v=ct;Q6m4uP$Ca&W!8Tr(gs5``QTN& zk{8kp-9#x@izau00g2oU+!_s0If}qTP*Sba?GUcxnDc1M>{`!dCjnr;H?#mV=x$TT z@OQp#8}?N$cN|*1C@ggrr6nJd%##a+tWFKxgcvN1cVCdQE5Yt8%24H!1EnvJP9YB}ZkuA4XrAB@G(tY0S`o49N-H z{ld`xQ}UdB3i-+az_WmEW59mbCA+O}40X>_Q}_>q;`&*-eoM4xmBpVGoN~bMd6qI< zx`rl?3m(zBtiU4Ioty2+-dV@-qI?H@aQb4&670_#NeB*^Fh-Gib9{_rFnrY0)h-E!rAhS+Ra^=Hwd{ zi5(peQB9dr1m~ZWt?UyLgM7jbu2h9n#j%Y{OP;`muQHzCkk?@p!> za;4thf(*cL<&e@1aCj&|Qj$3lhMG$#d0DZ=cDr)dA^G~eLx*wE8A*~Q0WfB46nL0F z%aj(o65)OeBK=wB9cnRG0>Bw*vyG@bl+cyvx-k-pnve@=AoglEkGPB0ozn1Y?CVJB z2=Awjgm5~MCD1!Gq)yWMxt)aawDx%OoZa?cU3S(s#5q6cpiSKqHG%Wr`S!OjpPQ~M z-&(!k`p33Ey%|?==i+rszx~^ZH*a!LMa&8^=#T1$q-;nEqVxsEhRFhV>mcqX<9*X=*O+}%MXe^ z;UhBAwrcp~k;lxzCF1CNt*yaylJ9XWZT79vpsQl=MhOot?Fud`qa}+HynUV4oUd(G ztYK%;5}iU*f70d>cF$C>24R-eLEiKa_SF|>f#ASgQY?=^kIsNxjz^6*^xdXKTm)ZT zED2X!p2y@SoSAla`%KUdKTD`EtToFq4U0xmve_$jlm6-^(AdZT)wwle&|ENaW_te9 z%AW(ki;qWmU1hzS> zi~3>P+P@ltJd755UG069>VB=U4n<*0OOA>)jLCv^a9ud;fdETK;uy%Hb7#*!1%MA* zOH-xboBqWBn0g=uF+(s|xmI0g9Q7Iq`ufHe%b$Dzf1N<&v&qpQ|#bB3*r{~vR2AJq1F=Zgvi;wK>u z!a@S0K^)$ZcoA9z2FdamrqV10;v*yM#c`q`*k$d2ZkEOA+{3vG-gcj zn>d9ox{o!-vecAS&bx+#;|XK&(E+3wPvondDG@iK15o_g-wx%c^gpXd3#2uPEx z@7<%sHm^c}q|fvDem^e+j9bpseW%6UOb#PW<8AJy@pI>5e^u->|39fOu{eJo%b3UV zySUPVl$UcXf*l|1xdVnOXj$VhGH&PU*O~q`UJ`8vBG$QtMm}y_(kCDA*sV0rr{))Ztr_?)sBf#Ai%w1=0OOE0ndiIUpzZ{ikg;hxOI6Ttq4jgQ+S0a@8wkKY@7H?`+MRANB2|XN z)-B(+THK*3hi2xkaM{_}1#y%;+P`iL{_>Ac{z$kmRb{I;XFtvvsp6S?hY}os@g61S zg2@EGrxEzpjSz*)k0PtT{*DXE%}rgK19u+f~A-lYIw<}gZcw1ctLhesa%jcSOWt%fUt&8svw$Eu8-LUU2>}e#4bByWipN z_jm7YlcTEX*XiIJ?Tr=J!FmMBz~!;3E4|KMp=Z!qb^dbAcYoa5{gnPzs5%{zzONR) zudTa1@dKkVw{)!NlIzM0xvz#Ndkpt~dTILQ;}<7zAH05wNwR#+%}o_28z*2LeCL;0 zl>tUIan8%)BOb}XN@qR|1hX{zzt0%Wf1$g0rlwc0UaM}fo+i+H?V9zG zr>pvf{)Q_;&slAswU0oupzRy%)5e5_1&}=t+Pe&0mTqBG+o#Q=s6*Hky|_EoHSSD=A#c)D)I zJ?w5Ox3#p7&-|Y=?mtcBe}l{@PZd2(Ta3@-Om_tsmP|6oEJ3N-Op?Q^a*|JBPpl>U zmiHq7yk=G5S$TrLdfF}|Wk*ta32#g%KdNmH<{58QYzOlEilTyPJc0YHA$ews2qg#`ef0`fK=9t(#NOlV1ue;yK{M<_rQ z?12CM02p-8QJ9jCjX@Zee|}2inES*ij?KBvLI7qt&e%c7yw1>t%%U(<0L>u-7ql0A+Xqw3zN0xcr5;@h(SNc8Gtml9REkgrvI9f6_TQb78&Bf2^M|nhI zzjI2t8H%-sMnHPyL2}FH&lo^ieU0W&V)RB8v;V?}009Oi)+7S3zhuh66xsmk%l?Kw zgUbf0=u+KM0RY!_fb=;{9_Fow-vj=O#^2WeLKveyr>igbjh&}v?ge; z^z_9n-|dY|(&;mc<#x;+xw>q1ji1xKVa^?GZ=9}+dC2dY{LJQX-w5c!1#tco0hm2c#XlC!9qo-pO(CKG znzicjJKuk&s$r+0;qJ93gYRg6sC{zf`~^aYc6zLXhWW5Q^}(4#d( z3~O4#k_D&mNZa#uZD7kDT6<*hJ`%dTTd_w@XTasOYb|x5u1M#7=expp-t|W8w(Hkz zA=`HYEi2xp7F%G&*F0Y1uIp^6XmY!4U;%dDZfP8z{hQc-`WF*}mlP%rvrG%zK;k$$ zm6VSls7NvrluG6$=u=wy%f0_uV`i>3}NG)obIKa}4Jb9JiuP*oz zMbpAx3Vtx~-}FaG^>UXQ%Ya1Z0Q{9cGsQ+foe~LxDpDu&sib1l0EwT$JnBoTwXPL+ z%eU;;9Lv?+28;9heZr5m3!~#Yy;0Y4S^K!Mx2U5d2VG2g7VIJ^sTcqgjv7z#SZvN9z_+G61s?GX8q`ayTyyu#;j=&lbms?TM6%?WQuhU|w<5R3mLF6%QKY zDOItO3V>7O-F&?KM=)GAsQ{SJ>x?o!dVrH;PJrXaAg?EnMZjQbv&)%oJ9l_%gO;L2jVrhILyO&rIN))0gD_1OD|@J(P-!)2!x)mgaI@mz)a!f!FbRpn!9lJT>MN& z`Sg2IS;eUIs-z@bIdkn=6}u<^mpa}eiS^prJ0Fgj$zZls5A`YJseg_WirU?8lZJZqLJzqlA_~g%!r{O&G z^a;XF-xKJf?~h`tHk!k5`FpD>;wxXh@kZ{1ZsXjyE?Y;6*R02pa+US9k1ej^FWj7!EeeItiZ zrIan1y{FU1rO53p9VBy@MFDedCQr$7Mgm~k5DX$Mv11AFSBkbQJQd~I%^#(+A1TG^ zoG7O=@oa8M&-0-7uJZGQ!Dbb|UL^qMksh15;V7@x0HC8-zm$XTnMt?P6oHu)*qk$- z*jU#c)h$k}7v283yT;}WVHnogYLCC<@nGby-+H~m`=q37-YSHgf9JG}3fi4VH;)C4 z9p%@B$*`fVw3aqs@DVcuVEm;JtPPsebm^K>FJUPF6L?N1lo**})+Cycl{V^=v|CAG zU8f%cu$eU*<8*SJM~s%PmfDNsfn|U6cBf z(CbqLkW8a1*$5i&*)-5f0S zV)Z2%h3k1jCDTe%I?UWjY#F?|0RwE9Vjm;_;|v;rco6`&9j!^ghmVy~RaQ$I&%~F) zi8eGydxxYpy)xEmDO2_lXCO#BwbNYO6V)?f3ZOkm0B}nkO?CSbp@ah(>m^QSi}_}=MX}5w*-5aCFUG;8Ma(5g2|(!wzt>T zoL!xQ%XYadV6lZ<7I&TfW~aBtHtZ%exVh8oY-zEz_-yVbpUv0i^G%P})SPSE`72LF z@X!B8l7}eMY{tB@bs?|P5raNCZoC(iUO z7Q8KmMZ#6;mzM7E>9azHEhTKB|5vH2rUP;Y!D4R7sNN_flZs=N*l|y~(xiIV58t|2 zn~Nu9OS0nKSl<-vsHMYgR^b7wV7*=>f6*|k(p6n87~ty9l}}$9zS$Lu2n#)f)^|LW zCG(S7%g>rB+-vVRmM3@YUDv&?HE3k$I%hU_9Jd+HhJ~iZApI3^09LuoQ+l(QkU1vj zx%4CR(Hm{+d@0OySvuW>ri{g3Q2@pOs4@r7y`sCp zGCBPZ$FGiA+yR5EcnlG^(*K&D9PYyY652|rD8l`p0Dy}fvv63z+X*GQQwL{pNB~^S zdk9njj3a0yzhK4E$Z=FM0GE|X!5z!c(uhfueyk*(L2^4ujYTtl*a1(?4)Jm%@`Ib2 zr{-V$kjF6CpO4N?Ve<5?XP&|7nJ%VYFLUAREL_)N5n-5<%1u=vQ4XkXx4FVh(4i??eclgp~{4S9ty@n!#6 zt-Z_F)K-3O9lZmrxv<4uQ&Zz^X)9VU)peMScOGP4$t$PMaT#?#7XTNCQ6T;=3p}{K z+!u;y`}_OPU+aEy<$}=tL>N5V(`VK8?8JKdcCKiJp6)&&V%K6KmOx1F-6zh4{@&4u zHrDk>5F(Mtnq_orD`dC0A_mK7%--n=2{*k4S8rz^VsrI2+gvVZjjJo&Qidh~;H+X#O870JkQ7Ui zO*4lsn<9&~9YNODs{~-~Hp-fH_cC$bE|_Kwf0F$eK3&YGU)hsAEzO^o%pb+mudu+5 zG! z=8pBB3Jw0An#DV>{KKy#*|B6KqOE~qE|{0^V1)n-7?@HDqf-1{NryB9z4OozoZ`AE z-bY9W(E6MhXDk0aO`c{w!+^BOJgB>PIEZ}Bd_PPcw#KA_mM2wJg$YwquTLr-1&Kob z8`o!K++}?iVA5;C4pb8EnJ1DESN?^R2J-l7hxA% zidh5%(b}m>Q7?5=Nt%xj)2!_k$~*@Dw(s2RT4|8) zO|9E6{tlhLRQgN~%A#4f+U8rcP8F-o)MY%0gBDvk98?U4@H=Adef8yfa`iWK8{dA{ z)q|7kTep+|On*fhPrpE@AOTyHMMGS4W6{aBiYE6k!K8}vQ!gwo)uJjot{OEzD*)!t zK8a*pG@6etHom;lD+qT_SIzWv3)Zs>*0YmU1c8PA?!G>)(6`fP?bnj0Z}Lab3Wg{B zJt3E%jYJmgU0Ur{Z%lBx`WCiaf@RC@G=#d=LYJK`dnn@S8tv@tba}@+BOzPB)#dHH z>9g6~*K6Fqn>OFu<38W;@c4>z{C0EG%XQ0tBh>%$&r}v@_AOK8RgwpA$o8RpT3_3t zN68dx=A&H)JY)m*yR~ARs+7`kRlfyBjAe~WxpbZ-N^u6vHnv$2K`zUKK2!yRYy=J= z7$4>1QobdH;SBwdd^*=*ROM-@AzaMm(n+=6jt$>Yk|pMhH25nSS447hvv6KtOJIuK z9K87)fQ`XB`rsX7`>HN?0$iW%8;#%u_Spix2JJ$>wPBJ_;P6b(<&~zEpNvjwq77QR z)9WPXChbmScrn*8@e{+~%=x-{WBMNwGO#6;d6GCIJ^+Bp2Z-iiGLckJ&y+$Nn9OI4 zdi>QY0GN?vlz55c%2D1A-)AZn&nHuIlyoAQHR|(;6#oReI!;Ijg=8G;P05tXnWUVN zXM$;Uc$WGC_{`6z2^B@A9^hB>ad;8Iwh(}U`NqXO>l+?mA}m#2<$x)Z9oQ2bjj7S( za`@o~AChCgZV^1a6ZIP~j$Y^5EGd?QZGR!H1Cd$Ex5RWTum(?TtkzE)Ls&j0hh#05 zqA>~0!Hd)*j2Zb$gaI!zyk#BqjxvQA*daw6%S&L`R*sBJVJ#2l^8;YaK=={la+GLB zpp(I&RAD_c*9@=6`>fYB2UcKmLV%Gu)B;aw%03aySQ4Y^>ugGal*{0Fp_*H4t&r7A zo8Xn91xSvkPiN=D{>Oeup{^dAc?=O7lMPI`M0jFlB}QS*VuLcWWoTvqtcKn}$h``O zfn-0$DRW~loCJVmEl8lf3TE<&-G}e}?oa;1fA}3CzjXTi;XjDx_T#^BeWhfs zxUBF(C1OlxFNL0d@9J_@WTmZf5uWuXPQCtH!Q&{Fg1r>3GVI2@x*UC{2Ss7!Mdw~X z3q5&A6_uAyk0S<8pKM&!b>z%J5!^BAm2WDUPbT;CcBs*Jj{rpxn5z_hrm~_j*HL=B zqV95}|M6X|wLuUDtF*D6$sbY7_>2iw#P6UvlwD) zku_IM+Fj!t zu4!)bjoYq|x4b)AcGa->r~h~6V;XfVVH!37(Y<#*DK+KNM!sZTe=jFuQm51p$Wx|p ze;W^W06wQ_S{2nSOa3GBikRy#XJs`Pi-%@LU-GiP7U*@JbtXx1Ae`+I{5308>1nw= z2?9G1o*7@4iw~u7Il1i_@~!2w={@;oz`ymmTqddZTqWu41nkP=$wIm=nh8Rk}6r-JaGzm$Zli%++$Px@p%k(#;nlzJ3+8B&W$&{=- ziN|Y^e+Yw(C)v>w;hgqSB$;D4uZR6`irS*tNi@afUWpVrPiB_)=bvz#R@`H?6DQzlGaAfI|{0%{sokCmz}P##Rtm$$Um zYgj!kl|VDvDz(|}c>*LK04;h^O*9Jp*Y6oa46YulglviVaLMcl&r0T-CO}bq-d!i zy?C%w5VEbF!U_`t6sIs-8)gZW;YvvNr0Lv_XB@jxte!k?N=3yQs63jP@lg1!;-Fi_ zF_=?em_u_8%*Zc%aP`a#NX9@{=70e-y~S^W1dBY+*gJpn`kBU3-BD&dB7cl}F%IIZ z!@mRR6{bFeL@D{der)V`X*@Dkc4V{cR@q(%W`F3t7LF&ySLbE~XUnNY-O>%+;(FWL zKZe3!MV3lg!LXhDBb-R@OmnL$}bQ)%N!o2tC&J z8?=HwAoPz$cDj3o1%kh^NGxWs2ecMTED{kcflwe83)p=Di>0n*WyRw125dFWT{fTF z+tu4S?0nZ9>bh^cv@$+i)7k7EANSsD@?Dv`sy$BdHkf-4+w5DuLNLa zmr>T-VT{XfW8qxVs5;0P>^?y&i=Y^2h>$DpLt=4sWX{od=)N}2E z<>VWgd`hy`$^@36vZznX0xN1j;^P_c1M7`hMGjj50H@;kZieVIcO#k1O9H~U(VR(1 zeq%bbj>|p5c`=yfUwJP8rwDx0^)dUB_%%!tSvQeukE=8h3V?}iwow^S$*E5 z1Ynag&2qOjp%+cN>I&iAT`3G};DbXSK?T!(0L(M9z@qfJ!B)Fc9pof$q zJXH3%0T`532*9%pfaL)+7pg5Uj}R@%o@# z3TlBdTN~d#B>nuJsfJt;yTL+IPjo`H|w^UvF;VUc zfBDT#_4rwdz;s>%cQDv4zt-n!I#~~*!uHi7cbE3Hx#Bq~O?3|d!|NDPIx{G2IeqW8 zoorkO34|^!N0gzuQ09)7Q5!sO_5+1gmy*bZ3E(U_+?CXEdVijtM=n(f&wJUql-UMM8Cv zQOoG4<+8-O0y#%=C#r@OhW z%`*8{bJaCJ_|we4W_ci|YTQbnfA@@PjrWWS+|6Udks==>Ypykmd4MyXFP4?;K;)&5 z9uNR!oL3$Gna0e?xSrr|LF=&MHYC&LS|j!7#^dTCF%@3}L`sS=*_X^-4c3}7d!UyF zd}PTlJ7do2lS$r)#5cqe0B3Ud^a`0gNBNA1Ae_mX+jTkc0-xwO3QOR|Gi@zRHRSjc zAplG$uwQd)If_=K@vbL?0&62qFYsfnc58fbskEqb=X6!1?Wp()^YzLzW)vG|^zlSq z0l=uM;&;zfN`x7)Djh=s->IZ%6uERdB_&X@5l1SKgwIZL*hlwL0^_FHAUbQ*OVex_ zfGLM2ucw2MpeX}C^G79EfF-$YVp1(i0EPsPhI>P$L@^mlQQw-=I2y@plKQ@~_XRf+%NH1(FGLZu=k z^3*pwH5JC?=9p)U8j%oDKvfi-f~MPLRZrjN0^oxy6F##UXU;JNY0!^nJP-+uSsb4g z(l`KvtB9cQ)YL3YTIKJK7YSop^i(uFQw`aS=LZJ|t!J%guU#Vm>|t?IXozAyU{Gmk z$f0Fq7Aul)EeyWjS&h^){46)YF|ehw-br0KJnz*_S8-G|#?{pGnEG*a)C zf6Xlx)$||vnld7@Y){LwgZ_MqzxHPID_bk&FF^a3ZsS~qSD4i7gSiE?A4k!fj%amv z%mwScM`gE6RtQ!rd3%S zFx*b=5m&M3>U3Tt_?wnGgX6S?fq#p6Li1_~^_R`X60XA%So~Pb>6XlZzqwp30`U5` z+ooHF>%343+&|b*9VHL7S-;ibeYM3GxiA&(k6FCVz!m}Ei0`7Vw9zM=eMcBy68|1K zC_V3Cx&~58Jq&qy;}PBo<8oVYDhV52#z^@g5RFMm3b+Jd;|fxp*!+lCs@) zPEIu*(m+GqRJdfm5`@r*z8Er9LS;o@TV+`s96{#(Z2(-rML#*;IQvjF?kO4Jbfk>(-- z6ZnlrSwkVdVU`?W6gKMOXPr8!#-dwg4ycGI36ITqWQmm;fGKsSKBQ_kfo9umD!rO{ zTnUQpS% zfX!XeR&=WIIi$hs$G?5MZF=0@JdCR7#r7LHV^E*vVZjmr%j@7&!R3a~~!UBO`ZT~m42FSt|3~Tn7cCE`2 z@M;BDuQqnsU=Q`iT%FE9Y%LJ6g*simuA5uE0pERlr>(Qg_xAPcb2qd)1VRb`RsyPgI@kw*3Aw%p6Xaw8{Bi{t$g@PoY*`Li zTn1qBX~vu}ljYf%wC#x(G!Ot5bL~3wojcIOl{HSAELx~X&*I=wy zJ_cq8g7QcXR7EkIOXYEiOx~Tvt5lkcIMjlv%$P~4(xVyo#>CY`J_rD-bOloYPOy$d zN^lipb6!khq5>`Q=?6b7$O%-RRk{TB?18gl{D9pseOXj2h<8l|08CEzAKyu|wor;YgJSx{RvH_9kAd(;>EZ?|oi8E?b4tv2!8n7adT0*7+#pPdFi>K-H3{Jt zEy9ElU(`6*5}5z*;DH-bBVPgcfC#7&9G3dAjRB_6GnH5|Kmiyl^CV{zickM-Bj`N< z{F!<4+|Vq!z2uni8k7>!E%0X#tsp-V4TcUQ30^KJ0%mrip%JJsn6wV|^mq3?+1Yv0 z*Vl9Y^tBn@HW;3#Hvv>^n2$xs^wd<8zJzeBp~~knP$xgz;0+b`rRrxi{z9phM``h8 zXe+^RHIL?!b*M7q<@q2~5&mnqGgR{nYT?BUcOE%8Gj+pRN=iaZC!%@uF35)h%8; z<92Gt90iS#2jee%6b$4wW9J3?^`F8zczvRsuof&$f>CtSa8pY~`MLU1-O-%!4x}h5 z0T|c6`TYU-02Dp|fZ53G`7iy8Xv`h`!V51?udFQ$5>m8t-g<<`(>;ePqgjkg%BHlWyh8O< z2Jp4Rm`QV0GkqbOmEm2VGmCk}gqRXYdIhinmR7W!1E+cJC0#I^?_rmoO1vyxT{4ZQ z17$Fl>OufEm`xW_eG0(Ycs^s!iQNCoWYNkF!*mc=-)Wxsk;XD4`prGKbLWm(*Pf$k zSod+4%fv=w z#hUf3wyr+-N}f4`sJNNNOd0j*REkTF=^anjXQi^_n8>m*m@Ju2f2o)YM#LG)sPhtW zP0IeHJdUrqqMCIOv#MbD?TZlLk)WZNRQa4rCS;_}7*U|bZ)!@GZBrsH5_DIEW~sUg z6L~$GogV z4_Ns(m-DLNm#UD4mZzpP(Qp{z3Tepl*vuFvVU^6oOqDznD-d|@a|od~6)WFjF@U(GyRe4Z$bWKyA*#_d(WuP#6SFC;Ndo* zzF<7sCJ&E9@}mbL;SCsKu=L#Rfd9*T@VP9dW$Y=X$mLg)ad7K6mElwnt|* zbGMXrkOyDj9-&#rpYr#Lhr;jl#6sTYit>wusNZP+!r}&uqMz!|J^VNIi7w!M0hk=lcR&0P8XNB2XkS0`uB+G5GkCtgzp7t|3D&RdXfId= z972-|yZnp?U&=X&SmAfqgPgIWUA}8Eeg=0v)+aiGyIqd@o2dGV;p&435wlV=Y*S z6lrE^{+j~^t2hlvMNCL~k=rK=5=bSH82R1gj2VUaiq}WL1;Vh*Ivv4ZayKRfIG5{y zPQnRtN2+LoFs!whw&AtP>d6^@bT&HHzjpJ|tM?Z?Q4j-m1-1-eMEc8(#xp0Es0*8{xwErW8 zyqwQwQfxK69}flrm*O3~y>J(6mUeer2a@`@3A%(akaC~^ga;07x5h=tkme1B+mM}w zOJRb+t*wc#f@Pm7m!a!ugG#LkA6}=lcb&m7A4F3kj1%cqwg}#U?!v{z#bXLx^s&YE z#dRJ{ARG?BV`|G9Lv2WKDQk|{d#;EFWZ{l4jV+;8Z5tEK$-Dgj6^|1Kf>)o1f5 z6TmMhpWi!7?(Zh-2{NCkWzo=IIQ5Iz?A3y^L)n}XfT{XC-2G!;+o=tBWGpte`7Awt z?pOb0<_o5-vMIRP%MR?!#JK9JzTTDbGtcSX_=`7gEWv4a{Z!G(+aQZ}w@jB8HE!rS zPMGiLMSSMx93qw6AAmn$27M3!!vp^Va)>8ScXy0`abvN*$Q>9JwCAh(`}%vdU$Mrl z-MvCjXh9p>iD|n9A@)dX)j~4IBVlyQ5VLO?0$b#@(ZH6oYb)jr3C>7wm&JbFdA-I$ zFnDFy=5pO!>0DXyt*mr5`)m}l6VVnqxLfKefx)$8MmR4o~R6MTG~VaT56 zMkN|dg0A4So_z5X+e;^<>}dwTFn}hfqC7u+DivV(VqCA!CQOCtSSd+|Mb32U&<=G) zLozGI69)k>IO;`)&v^NxLI5V$pN8s(fqeiNKlD&SOtJ+r1>lE>z=yav`tYG$azrq9 zEYWfWV8UqnT?L>e==;)3tE+V4j2w6!>_`-mHzw*Oij2L5s|o~$7msVGo@IyyQkFp| z^pHe;9s2+<2!Wy6XMTPjY%|beOE4H=jUdT9D2Qgc6A7L#H&GNT#c><}otrFZLK(%( zJN_gXo>Rm$e^v^N$Vf5J?=Kk{Dx3R^18BMcU&aCS2vT4nyDE6qg!Scm}!{_MK?1(BWbMwvLUv>D;3$B_=ZRZI5-Z5tQ{Qew(dYCmSE`aiD`R!`UqPh?01VC?;@kI1+D$E)*gw)Vv$(LZn-%+YVTST zoLv!TmnCGo@2ac09&*~e!#-QhifyGgRMGU~x?x|lt7rDhWmDlwe?!k?cguhMrHDLk z4+5)muQ})-*^R5wmA;q>0*AzYg*2;FP^CnR###VSUROwG(=vn-2&^^IR1f}k269=7 zfrO&!6#*J)RW=q#l$pXg%~!}W#A5$ohcU~(I?tX~44BC=kZ?@N6s#(ugewI6&Bvv7 zLpjxpRuUSQmTL8Sqn-kAt`_b^po1n9*j;1mx~#35wB9{`;T?~EKKj0=$L?)%TXwF! zZ`InnFpERm)i$wyyu~osXKDMdnSYXfZaADJw+=$%7%Wl(%1uN7jN}W)<>;&wpFJ}P zU7p}?T8iVqNi??)BkIQC)A_qu{sz@(;bD`IZ;@s|BR+GO<`EwGbddaHQYq!(Kmo#p zAL}zo&dg1F9~5y>j2FC*T9fG3hMYY>A^p6`^!)SB@7d(Q=R-t?WGm(mBRTIfo=KPv zeZW=DJfad`g5W*Vhhn~!FyH~jSej;eJfyIE2*=dV=YMIww?sX>;8H@+rRF0(eqLRr z+?S1@kqgrWF%?O3K{VDT!6NurqlRU0ICw9foFXZQVU@|R(kPA*4QO>?bqMLo&`O9~ z&5|gBFpN?)T-8OhqUJsy081%Ng#i57tw@@AP(RIhkhQ-b)eMz=w(Tjx>@te5u=-9z ze`rjS>!5YNv*c$|>6yGR*xlWO!$LxUcYp!ElEGUegXsDEXE_`+?*ro0R@?-GU`x@ z=w=)2Z?)Cya?mD6_&9;!QgXh9(xmC}rtua?ke+CVkSuT}#gmwg|Lg#mUp@d)77W$y zn2&a}UpzDHjc6AJwF^ChLEFEu(AO>4`#>{m7>!u8u~1AK>59a9BZf#!8|w^2Is>D< z21{skE#$Ss2-<0Ll9xhWxA(q#oZ#+?&*on74GYU(`*Jb(tgCbcsgg(Xu@h&Cyqhv70u(op)4nbeHLNHJFNX-cqTAdIEJe(d?9E*i7~Q#Lo`;I)J-{ooG*@Ma+tFe=?G8`r3=hI&UGx?&$7g~^Ju?cC2oiR`t4&!GS%!8U~vdRho%ouQA zUyt>|X%CK{(fW&X`Y3c0Q`s6Ue@7rPFkM?r&?c>jt zE|Mp>b1lBhS1KJ!rPe`v-(~noYoe9a*Crb-R8=bg7>}AI-QOKPS^CFjIz+7P=m2T; z#!HQ-zFiJH_!6X7)|a*uCU4Yd;2ED;K%OZ8V`?qAB);^Ue+?RQ5T^91GeV_T5y869 z7mIXj;dEy(#Co)`(a7jR%ntXpnAYwZ6}*8h@0#7|3I$xTz;(iiLm^kd74W_7?Y-Vq z=dP(3|BkPzPAH~J_WxsU^lx9Sj%q7z=>PR&H2~+Oj$9QM$zZ5n10xgE6MWUn#-ThD zW=RZK1bZ+GuFNO^82gX1uwykF#W>e)(HIY=^g>dt#|(`4{s0_*h0tpP?`Z|JLrSEC z;N-K-qIBcZg_bMPY=$vvoHE8j0M4h4pdCxf0L*vW6n-;euH%G}hH)SQ!zm7D(5vUl zL53BGL9*x$IgA4Whv#1#9PJ#gv1qS_t&c)qcR^i4WcYaf@gnCBd+bfRU|bH7ggaU` zNEmE^xfkzy)JBvE!hBkiY)L6tbPAo1;{;g+unIR4WLTj=DVbF4ZxeEebQZuruLNKe zB2sotK0QO=JJ0m;$&|8=5MPet^gEGC?Ej!3H=aghDIYY7g>Whh5gmm9Ea!OSA!3@k zk$AioBf*RTr^Tdc&*O{%Fnn5EOtdNiSQS=D0ho)UTer7OiFD9>6bg-&FyeXRSScEf zR?#rLN|`Rqn=vGdGU0Xd7Cx0`0L&U2jx!Z>+0Y&qe83Kv&0%5M%5o$8I7!9cJQ$`< z;ffSG;)YO*RVJrZ9Hi=1?0XBV{mRrJT(}GVELPxoRv!VZeSQ`g)|;PYfhxBVlJAeU z5z=Vvk!6%d&q9`D2?OBs7~~rR3cS$Me;xtY@1GC*>C%@fu^@7Tsm591QQ0#dJ?~Lo zvDiuSJDiO|K=#ZS#asMCn-Xahb+yMc$?FFTxi5Si8=?G}Kr9{#5jFRk!dc zCTIs6AgyG~ALWaJBS#c9#@}=JyX`ky&ed-$>e?rcw>94vPCNbp`K18t@K?^9wnD_F z_3q$>)71=rd9a6LB-|ZnSzj{Kr%)V4;}nsX2e-5kj(!FdSvO9YgMXTdf3!ydyg;rd3|*aeug}tT)7IH(^V+s<4qtB`_l?*5=%?DRU3H9%3~hexZ>;M_ zJKxtl4*l&PfAeE8qnOOb^ZOSOq?N%{9Dte07x9-MSteVsBxaB$8t>&q>Y>dtX;oSw zqt5Da1)FAWVi}zI)Eneo@q++3o4sR3`LrB69cQv^n*IUkug3;K{w0)2lyMMPW!Z59 zEoZpl%uC-f$hXqGcY+#!;TrI7F$2=?S|hDvAQvMwBEh`}lE%wlf7iAZi$x3qCPG(T zn<1y~)7r~7hrNa$`m43}%K*UInC(pC@l!Q@{RZE2##gwa3FD};L8F*dczh)Iq(Uhe z5$Cz&SoZj`k0kg@D5yk-SAwWyaGvSq_KBPPxOA|qr zmt-k5sXg%@i6jE-{uj8VX}v1lx-hwheEEU}aUlT?W)zVf6o6ZqB^Wy%GVz3|^-$r1 zjJ;$+g_i2gOqwN?7fO^E(kkJv?cJ|F(C5hUiZS71pv;0xDf1t#(qaZan5HY>Rhn2y z_s8`Uv^MFuh9^;KhU6k(;J-5QrN|)DVQeJSEYC)1CBr;yg9)-kOHk7bwi*J#RE5Q= zYCb&xE0%R~4z&VTugDJ!p?rwz#h)Ga?zj4-yWb%V&dSFa z`g)`bokKGo%)5VS=!Qys1$-Xi_vug>rN21YAn-dod1ci3Rz>;o=f0q$!B-T1#dQAp z-9rz-_6y#lhld6}{L;S!jYk(7+nOy49>>)qzyIFV;-L~x)jOWa(^Ty>L+(@~4ylF_ zVED+9viZS?ZM^*A#3H%tub*u48m!T|Vo9y=3F@ojXjRowq3U>1PW#?AF=CoOE zHandJf1OV6uy>`YdBxWJwte}_4p=`#i#4`4R%2m}#(HxV$f0sI8b2VcQG!$j0Mqm< zJ?N+6AWF)rm08TIL-;M`Ys<4?2`Jf!7w60S0x$p`e0o7Bhx{cTWbfqOFpICy*{}kD z)6(=iXV$a9HwR!P|0UNhqQ8hOfSEamUI&3Nv)Pzc3bxp(0=}_~n9Ue#DgIIbrfXo3 z73#p%R@C;Y%f4o@jFR6OIgU4c9|mzV)>zlD@3OYKvOm^q35`Aygs!&ZMW>py{V`jk z@s*SWz{z;l2=k-legKR+UJ)QLnUrggl5q~eFkse8^qEPs&>74DI6*!=!&ou5HYMap zNubx{(VLQ#TPzPQ&lbkUcs%|I52OU*v+Q4D z444IEkvAm84AdVU2*8PqXxiuT#{qa?_XD+S82>%gI*|B{XnvyuJ2%?VRYU-o5?h*n zRlmNMtgTCCKfMfV zbFNHgz^K2PMb-*|&?8f`npwhsk^B>6ov)m!2Cbv@N>AUyf>v1Q=^3sLf$hpztQ zyIsQRWlC}1eDlbWIl@Dsi}*BrMYt6+;V3x{&M^+`@LOZfrgE4*FD_0Lz5dg!o=SQ@ zx%GztxVYHg-xvF?Gep><(09I)2WIh_Ymio#ExdbN2T+vJ8&A~IRnJn#jT<*~ga@y$ z9|s;>F<#Mj@*IrU;a~v?9a3V#GY4SWjhz0^&>p<;w?D57So(Wn3q9m+wE+D{PZqRb zK>|ZkZ|qUPu;siQS{v<(#R6NG16|}5o7c7C^?H4T01wyLY|ZYby1-k`nZLT_cnT04 z7K(06_xVeP-rsQ_%Vi{BRLYy;adlQ?T4^fcR$!D<5!#0WWEp^!G9~1<1gS)hj9K0T zOlfci-k*-kd0Gm#jaMJc5qh29bJN&Y_?R$Mv!2VR(*@)4IAK}$j2YSIT<~4R#ULAg za|TR-m;rDc@Hd!=tB)p#zbL5&ZhsHv&m4gD=tQao9Tq|0#-eE(IS@HrTLwYs>mIbe zGYL|ZYueDwx16!T%6GJO7f@g!%Pw^m1q>^$8gFHZn3}+Dx z!il7kSLP`I<4_nDz^R0!yHZJ%@zW_kPNoVmkOL@vx2p0>UKo=ft;pSZ`!HZ~ItW5W zbfNf4`T%nE^mLHii_!@YL+I1{J(xJ+=Cc&ORRAm{RGJd0w3r`I_a~_VIId5E>f%5K z{QPfBhX&NqSzMyE`zvy<)_OuXh{iaT-y8M>u#{vIh_t~?)e*_v*nHo1d3k67>qln%ak z_;-Z<9^QuO^RLLmGN;=pYOzJE?<+>kfWT8>Pu2PJ5cJVtz5Bx}Jztp&&pyQ-q^WED zhOXi1qWTGPXWwXS`^ndZD$U&H+^4z}mwB!T_P}qy3yXn4kH#Szxal%~Zcbx$Rn&JF zA7mfgG5_&W`^5SSjg9pi?K<5J*!f^u^tqyPLW3)&+s>SN0Y}k<2mcxEjN#JK)TePF z?e0pUw&0c+PzC5I9_;wjO8gVh$2Zzn8{2O7Mk0}g{vLyNXYCQBLq{&h2ov7w6=J=@ zRZ%vcUR&(>Zx5n%KmfP)}{PGd(m%de2*;T3=?tVN! zvRoN^clCt+%P$1R2*1q* zr6_8C&0L5D66BmYD8sROC7s3bHzBxbQBr5ixQWJcx6SGGdG7_<2o{WF`LgP_qp@ZjAuRM*2(@Qs+)@ErG`UzKT5^&`P80ElCpD_FRe=9pn=nA z7>=csxU9rsbSNbYx584LVFCus>6GH31(a6R=#bYli|{UMPl6XsQeL#_SE#_^i{V2O zG;^DhDV`bFZXI~2UJf5(0hWh$KP11MTGRA?B^70w_$k8o4MgaK2Bq73gcLclT zazyBFxHjXN9Msyq?zU6w>*Rnraq-N!H*$X7G52XN#SYJ1t-4aC?Yh(m1o)f5+|n27i`rhVsAwxMYFs7f3Gh*2#rpcWqBFOrTL=c@dkDb?Nfs^d zD`+VHGyqHw<_7~Xf#8P^TfvG!Fqj;+CyFi&*F7Sfw@14cAyl3qu(nUz>w09rY>$i@ z>|M@)tF!mAGt}GFMbOw~b8UHjzUy6GUYFB$edVo7w!yitVN_W0=9h;8rR_D{*F5u@ zks0CU?PDF}dw)gI;HN}gb(*BYTPp!DPM0$Z;7dzJS%R-Q1W0-G%m6q;{~=FeW@9>D zD2z%=4GKU()A>E^4IF?)^SvC5h^e+qwFZWfw4S^>n2o2?`w!K{AdGnP2Tk3xfWKm4 zGDn=>{B#zy-_XQBJCO*M0|KKC8Y%Gc>0w`uyT<0UY(ec&PyZl1A5@Ngzh~=bHBQ6e z;|s#53+VBq-?p7AIzB8s>TK%}^Zc%q%mnrFYl)P~XNx8rZ~!Y{OOet617kh;$;skm zS!P8)0}wE)$dgGF06AQHJe5eP)P^{nr-VAq#^0=(VGjUP^>*SQ04DgHRV$}e6C@a) z#}oSkFgkz}`AjBhQUkDRK%LKI6Fi;+A8YvHAMpp9$@EW|gbIKQq!_#TU;YXPQ4iJf zEFNL`!7h1#;xz9BPNQ|0@?45*VLpoHGwD^@AI#mt6A}aF(knJFW>C!6!H&W-ENU1= z9aaevzgd7^%yNPhV|3JDPzCCsaTUzKQw_jeBcuRdMd<_2%`23?pcgZ>*7;Qlb?V^?1T`gZ<8gBAPw&{gZH z2IvRr^E_l>MiIl9t@QwgKzY9zvtRTr7Y^-l`n)^~M&%hlrMzPb=Bs$ATJBs>hC}0i zcx(oZ%aZe#&NPk`KlNL+y?hR%1yQUAn z^l>oP(cXCbCr+W-@xAXsWiTK0V_*vT*;Q3Te^k{Ewf4@Hw}*Ys-nGcuWv8#{_Nj}{ zO_Y{SymapMnowW$^5&<;-?`1QaMhqTvKG@`sS0Z}4*7mY?$6{m9Q{hKZ~8BF#-KPO5#-eh>;I@Mq5*ja}6>$Mh&p!(1Hax;wRBx~*)3p1 z>Rj>KyXxw^*X!!unqFJJN*)U20bDkBBd>G;R1~ex`{It zO-&W=LKsIVLXJ#*J^j|INe_7#ej|3@S7+ZjeXWmBU^{tVpylMr#_1o&x?0*fX-z_e zhL}$s0KlklMvtz1r{ncSice4Snj_vG$QqCk0l9^DF8~99HR1@Ee?UUYo}pg^2Fz(1 zNuAFp_X05RXU5JICIN}a1AmSuQptlJF>vcr`vWk(A)gWBs)v>WfZ=VatdwE7J0Nu^ zaRyBIZT>-WKnCDL0|WdqNgsr!UuUpH=>P!6z>Y%?|J%b4o=;|j<{T$`^B+F~ACB;PWVDrb7VO0fP>!l6C4<@!>6nyGrE10AN6&M*x3u7Wiz+8Ven> zs>UOlk)5!1xQeL=MlUfrp3RBiQ@mi%eFeH+SgjU;c$Ra@X%rlpT{>Iix8eOxN0Qp~~Z* zCrCUPvv`N6&p;?7gkb>X+*n+E?qX3}b3mwy&i$d>N#!COHq=#v3)=36F|1lv05HMd zSV@An50gI-lNJBi2w?y(6;1o@+aE=Q9Y}$;Ln6m$gwUwa zsNEIVvKtHmn=5qPX6dzCyuL1{&(~#fuGH17_-@|ZnfpDiy~$yF`Lwt3VoT)0WHsay z&rkLXuD8nTmvZ`#zxvTfs%FB%Oe;meB=hkq7sBd~1B)!;Z$<^c41w{D6o2FUkGA0& zA>T2hqSo9AMHwuCJJ=6Xcasu*!Q7M~^!T1Jqr_xY*knd;H0$?7YsnvxF%o>vvUaQGqZEr@jvbeL zz!D7807*V=R`#&+p&bG+-2>yq8A=G@pIPjwhrdU_7)tjgdoDFj!#28H<`re7U#ckp;3~!@`ViS zC?&$Eu)^9Uh<2>P>Rc*hLag(TjS>D^fgWFpP#fWU{ z3&~(I4d(VEzW<%{Na@f#^f?ScXY}O2rqA%Bb(B;sM84y@bo<-u08%%WfGgIXFzO$C zl>8N;zXU%HZ*Om7;~+VZ8#@TUY_VP@nZx}XgiMni(IwHArkyIfnNA?J0M#npA+ z(q(bkI-LQV?fU&X_sWW|F7n!uP4iO?#we)1QEthmev}-NsAE* zlur8sa9k;8mKDMhK#2t4U_^^(tHeeQz#zZMnKSVNcFSqTe>0M5S^gMm5QdGb7?;0p zRz=pc^vjEq#=GF!0bg;uyua@X->+BtvQ)P-1Iul4YEu9(=&;aA4h(onH&Ikne&*Y^ zE8NX>PJ*&HguZLN070%Zt z%Kws*fM*H)g~B4R(1roa0f2$@(q_RZ#%$1V&TACF*g$s%GcYUBd4xG7 zEc6PhqCP2}K(N+}bRQS`D_AqSB=td9KYZEjCWS<$40q9=G65>X`Bj3cWwN`6^DF zH((Zh^eA93_)7>m2M8`Y*SOlQ>&Th!Kxxu`2>jUr_~AeS0B_?6;m|+6XLI=_bLQn&_^5f>G**FEE?&2Ixn>% zD{o{v6EuUlDnlz7L{vg^9W(^0Ep0Rw6*aCGK^VshrNH1#9JG@2IibKk5vSK>=$SmL z?X_$fVg_eL`N`wMk^95Pb6EgjNKqEkiBy5On8iS+_b~-3#yTXGkz5vgzk{(F%NMZ;KLb zYmiHYS$OmZyD4bx=#Y29rNDym5419DtRCB7^p{+YYb4nfMY0`sgox5j?9`{2L2pV5atKt2zDk@bzzXHTMO3@bEA{ zPkzf9o)|KRr3+=z>i(F;_Uh{=kFRb3KkPu~kr{?|DU<0CPM_ZcE$^-=N#PePt-?D~ zWsc=}PgO%h6(ObXYXBF^hGyr-PB%co@YwvU2Ey3s$ zea5`EE`0_*Mjl1 zQKUCWb)#90ub#Q5_&zwTv|goAA1z`PbY4w?rGg~F&P7Im=?+-o1vb~V*RLOMTz#SO zWLrg(&*r>rk30f1@K+#`(o9&HlA%K;HZA!QXf$LDd5 zPC7=*f)RW-=nh!gy$(q*%p#8EENB>5IV4{$E#8AfN+7@*Ai!XSEh(Yet66G|rSXg- z0K+h9Et``$u=LC*ZJaKLu8XzZj4mp7%45tHj+eRX_tz1_n7I51%)mY3{~8wqGiJ z9wNUYbZl300S20*7Q%B8LsU^;r2U#Wxc6J2wmL&^8QRx&)VWH_E%7w;Kv`7xU{z&Q)KqYl+Zf>%(ym9fUIS6x|_R`g&X}2@hUFj&^{5$|Ww^^*%dC+5>W9CV(@AXrQ z1mw*GeoN1_z2)i)?{NXl`m6d3E^p1H>GGm=Ty#UngzgKA_3H$K+u8^OMlRQa3TMa@BW9_0ffSoGN~7HfA#!34oan zi%+3DN>}SAAWE&Mt>V&KD_%?Q8tAZgdhQN3V4GNf?7r6`TseI=w$*Dl2wTnMC|7Rz zaZPy#xNpED%OfULF{ccGDZ!N*fm3P&Qj(kx2z)2@0x-S8WS-pGxD2j}2vzD>f=^E- z_M2=|)w3)QQ-e6WHF0+JNkuHB{1SI4Dbie30hIXp**s;trbJ?Ikpn2OQVPcsd$$C@ zDXB#1pcY{_y^_#tYGY(iBU#qfq|G%`o zeN5YDn)hq4!RAfiU}GADSwjfe;mr#;7>5XR3K}nDB7@!3v>l5Y%91fY-5k>DEUR_$ zOxD9NQ-wNn3Vz#cCPhlAI*rm*HPSPyL_IT^K4@m5Rhy}2y3<+BigWgl(+9PqRGU8@ z>Dxze`~q{CMkh`*4@d=bQA6)bCFE`X?sWn`{@Gn)>VOyBg{T zt~T518?M*}hOagZSV#d3FAP+EL#Ctd>W_K{d=Q!R* z*^+MGa8>#3#OC|YBLPL(kyt=NiVz(DOA2P@K}n$o0<2g<=wB=PGD+;--+;xiPmC{Y$ZFMsh(THt09a^0LewIP6}9vk@~N_gcg`FygbNWju2 zdQigQr6_*EWiBZQr}rs~WdLu+Gn-(kHFQYaPNM5d(0$&2F8%(YobfRHOUjO;c!b{H zhY+jnW5-_Md%`O$hwvn+hJnA-3tEsraS^iFEohPp^q}FYpmKJr5WS$hf>v~tSv4*O zRP2J?WRF|+lSBY(<#1OdIZTVmSBeI3qzqao5BaEQ>5zY1&x8xK9TN`}@fxJ!Gf0Geg{0_tc`GP{u9E(e+E)kE3z>WgP8 zehz^1G~#@9DiB0QM z>)nlj-!+b3QvKreFtIuG-q6R75mbCkP%#8Y`MPhEug%ZBWmEef{`kkG=3kl|I-Rd+ zeG+6T-!Zs?9&=dh_NZtyCOxic7Y&i&sx?B#S5I_q0cIw2mS6sP_$>xt=@ks$BI?)K z8s}QKRtbM!JyE_^QrkH39hW(*H48?p^2^Vxu{(6T)(bDRca)5R8wd!#p%qQ)U~tJI z7sBQlP(?!-EI14lu6_3p0&vbQl5!kO2>k9xN6DMWZ=e@_Y_)T%q;}Z)Mt%S8L_fjq z`uciP(?#38d$#WGf#KnXhJh>htOL!%KOgZ^0GsI^7CE5Vb)+sHXd(w8!iBv{SeQK^ z&w0q-_eob<)!%mhWAzXJ?sxHgFAf2~%z|}kV2AN#!<5FQUx?IOCv<}rXXV7j-AbSJ zfBa}}wt2Flqq8FW{{QpaOe(us1i(;1j>Diwv7##j7y$?=M1p2oIfDfc$z(2oB@!m$ z=?Y$9<^z}xfGc7GKywRZ!oPGv*}YcOuhIr_k=;G={G_@0S27>K!0-40o;L)aq<*g1 zJb=IHtTN**0YAZ1;XA%EL~Ob8)!ItD39^NXTcIc0l@OQFCX}#sUsB9DCGj1 zOHUNsEX`42Au9Zp0lZ`O1edXKjEhL5=sKVRrf=D3&-oA*f6+e*sz_iKMHNV!>2wtI z&&$C8%z~i=UWPImGorwz(;GyWuz)HmPqTMQAC>K7PJE-Bm`t0`AXEnf5|2t^){c!Y}QQh?Vg|?2_*0nMLzvHm^ySaJvBgTr4 zhxY$60XeYcTcaIgS1K2N83xympvghb{Ph!)lfFo$Zov;dXiSOV&-G4e*kkJJztCQ? zR=)a5`N~Gg+|3_UI`rfz)BbtpSA_s9Y_k*mUh8RUZZG*}`3c1DN^8fzbnE;O>~LMH z%>ytx!odax1iBQ7<~Ws?Yh&eD=o9Ny zJK!vZ7Iaw4CJEZou;$Www{_&6ZDKM)Agm?`HbBx9c@>+C>WQoEB{SvQgrUEEUIMVh zSOK-Ua7{^9z)5h1cbpYh0esd~r07;~EG;Y#W#kTUMJAOC;1o04p!#Q}b(dg4nW_+dupLo6khG=N!1E;dGEt(2UMOaef8C)ZUrmyG;%^GoG zNgYk$i8?Ik8bbvfSj3_jl7Up%kB)jg@R5M(A&tzTveg~Q1D~erMhTh%)Yc*xL_sw= zEW@^Gl=Yw`0!vwhUk+Yc6@d}N$WuWwVM=L%NF-@`O1EbrY5{V5fxlDCEE&Z~p%AE> z8Dzc7u4Nj>;Ke`Vwv!ikm7w@V=P33lJmShXH*b(WMDTn?Y2$p^g+;HPLf17VU-Vc2 zD~&j$g(Ubq@;5*&L--yx+Fp6@4Eg}S(@)G`Gj^3~uK>S^_iOeKG5SLHIT`=q?d{c- zja&cpy{5h?GYHbPi+aN)-A}1EU!PjNU|;sQwL4Py2HYdF-Vymp@7(;^t(DG|nfZ?1 zf!%X6OLCYuBv5sfK(|P;EYUi_6=Re(b{8AfMwtA$q>2>Wx z4|$n-g09fhdoT`eo2!}~eFo}a5M@yY&tn}tT>@E6t0)C0Z{$V#V1@P1h1QUA%3n(0 zj~}D`{X_dteVF|_QtKTnUpZUS-Z)Y}`AJhfh@gEJM@Fn8)`9waSBJa0E;KY;7;7F3 zfB!i9`C<80$33RE)scQ%_q~Z-A5>?3PUwz;;i#9KHa@Yw)dBt-u^;}Oa??jBb}7Cj z<&)$unUejUu|O07oKD37fOXKprIIX(!0c<13JB`Rc%khd`h_dT>3mphd<$0uzE@Ys zw?rD%;_p&vY;R}eU zhL1p`Aw(*&-LufczgrG~XysUwS1Z$kruYEimUG|eQu%Y)yRiiNTM0*Ov@9i}F%q4CsQ)qE??gYgW~xw5s^IzLSqTs1ukQY{(;6-#9k z1>Xj~5`gJ^ow|G0Y-Yg}pA=hI&^^&_v-Q{SHg#LOZ6jB%bX%_u3^X@%H8fsT zn-RdJ;_h46yzFaSAqg6gkKTB?uZN&qvE#;`#QxXlGHHIRe_q6&G6 ztpqT9`#MtJ=Gby11X*}R^|;i(&Ij;#^)`7$oCXyR*ik|#;oPY)5JLAi!Lf6%$3T9} zOn(2<=XOVImAan0qy%2~`MP@FId#fb-~PWJtBd_-Dp^yk#|jft>LDpNm=zsh0Awnj z%}vYXse~Y%iznpLn5Fefl#7#l!e6&}0EPxL)X&sUE6*MTW!VrS#cxwCfRoucJw7l; z%zOYRVGlh~w8IPqGOQ>i3kEnOX@?tDlxm6rn5`(~eQt>T0uAWR;sD0Z)8>0a`$PF9 zFkK>4e&*27A*@AWx9d(HTV)|i1jDT=x^g7Ru(;xiX`mH5z?8ynd3GDc3YL_w5QZC| zZD$C_C4UHbq}W`#izES>-$>;>;H#kr{~LPuI|N1EVQa z)cS#yzdNO0JAiRYkBQA#wu5LJN4_B3#^2D%FGAUFw~KZhZ0iVuBS3l;#KAs~l!V9q zxH)L*(babyX}`s_SI3y`$D#+w^4kMZd?I)bWte;m2o?U<-j3F-&d$eI)<)+VMAOF z_r12Nvn#+~f~}2jw+;B5!JT}u1MdQBPESr`{7@=H@Q7`}@a*mk%B{p`{V^E`3JI;Mec_2Xz&yBKA%X@z;(Sk1fSN%ikINRVX!a|Sa2!`ScGVKn0a0B>!~SIyP7 z9ck{eO*Fw6cn~&$4G>P<6REc~>C|`oD*O9=m9`_jy{E2B^p>pDi6I4f0E)vQ0z0?` z0Gv!>ftpDuJH!de>;ei6xk4!x{|o=&Sa%|Z8+fXsT_IhM=<>*W#!5L);{3tdo##iK3}2y zrOoHCS+f)wIr5{DlcabjZ;zeNmb71(P}^Y$ZO*HFDS%Z${glaXG2D4GblLEy zRW8e5O)9n6eOS1JWYU@;Nrc5SS(pzk z)mQSSRc-|g2>v(^!7SqOF-%PY;S8yRJ5P?zwlxlnkTQ6p-e$crQ9m$XZ5SSI9H{hb zkBg3_EC~h20vf+V*JSIqU2MWm^rfB!u;;*^P5Xjw;_CUTXUl&Ln@OmMrm%~}7 z6q5?0I?JU;0kjLFe&H|yx-_$3B=Sg2H^O;qzwE{XeyLj~tV3bdOYZJ9cDMEN60n^! z*kqSK$XAwOsmc?TLKooMfOu-ksGjT|ZtEzaa$h?8-L9_qVFm_P`?52R}Vfg!P z=pUOF!*bgq>?Q;@8V&kD)D8P(;s$d#YVV2IuD&zfTDE%l^s(}jqjNuxoY9y|!(SS{ z;jqHfT;*3^yn3qS*~eEQv9)|=wBui_k*60Wv(j2UmerG(1cv4sSy@6f~`D>tR1{1^6og_+3&6zYA8C z$!z>rx1r}>wlQ7XcyFS<-ezmKGGT4*vJPAwe!V9cF3kZjec_ZIf9be3;5Vu(Cq}w$ zRH{4ZSfImT@-i|R2Pl zVHTtPXN4?E3PO+y=rrSPK7eWcE7!L<08XPmD=pc1=WEGz@x zM*g1OuBNGkhw)TK4rLwfy+?jdO5k0ePVHPUF1+321Pu2?U;|0rqxS9Y`ql>;8+(T* z8g7+UfA{@jU9CTEv;-U2S86L>%ZV3V84!WPlAepXmCEBFibV4EEuQ+dX00Gv zF`Gp>wA6&AJ!X(SN9h8u%Kea_7t|^$+LQ)9N4fWeU}hPmafY~*tI>yCF1vmilllPO z9)xd{I#DV&kiJ?0sdWdTM8#s&yBt)BUL5lBEbbn80&o~`O-)JB3Ot*D{A!21J~>Vo zdbV`u2+k84mzQQ#;NxKytsB2q0JF8_DBg5jhtlh>x#+N0PfKCcU5NmOMI^{?qHSpx zT?2(y1Uw0H<`I0u<645>y-HhiZ*A3l3$OT&AzVQETti-OD7}IeIOK2jugg!C)DHh3 zV)SZ{-`Ejn0gEoXUGL!?2(}=;Lq6eJ(oKB&PaX3oJCAKw*Bx6K?YQ9co1ysr3jCEs z4B>Ees>k=e-dn9J7;i*C_3ieC_3wDiMZ{Okq;*lFK>#})YLF=z{Zkq^xn7UD{5`te z?uMIfb0B}7DJz4;6LiVK#D*%cscb1*0i`u5gHiTE0bElf=dS#j02VK~00svC)we+O zwwX-bzkPfASUGv<+8P_)m}qFIA88n{b~pTM$n-nf?mL z&jkPs9cc2_diquJe4`!K_Tgi%z!Z1`r@$8)u0ZzhU|-+ceV2NiMx$}*E+KCdsNZx= zyOWdF;o-3(wyxQ->TF>EV?slkdSoP$1#GM~X@MCp9MF(t8@_D8N!CtFZXC$(bSf+O zG7CnL`1i>pl%{+y0ALhQ(epvRNe2QLJfhRo(K1^Az(IaJlrdctU6ju;%lllwJw2rH0x<`Ad&B(Zyf@jW=8&PF`~BV1F6a z(8ytIIqP{JTF>(tXst}siajhXG0b(_T9uxZLG=w|wQTdZT#`PM>i5H^X!Q$===hpO zppl|vW zrO)gfXLcDQ^`w$pgJ`2w*lwyF9?`w2+EJ>nlmck-dI*pT`0^c6{Xz`jxwjV#c8!V! zm#DxbYr=XJBw4TFdT=KL_*wFJo%nU#IH?}vU~fwu;fvT{74YB4)nGkV z0KixVgC=YLeQ*h^KD^qwb+)Rl@j`=b#MdL)=drl0{_5fc}o6yF`{-|>pv-6*L9NB@oLm}DZtN^r?nGlTd~r}FJF z8UImVor%lq(86>X09?Jj4d*Rb2S!I|SQbCIHago;+t&E=hLQe=`rNs5YV}^9!|8Co zZ0w8lH$@`4KDDo@smXS=v9Zx=?KrvpyZ1S8b5eStfK8)SWg-V~+`|zavWg`n0YB4h zMMz0sZc&vM_?eU6KpWWLag|I+;e?9%mJOg&2~l~i7)8f3vIkav!V^7Tz=o8(lbld2 z6lde2#5xz#ZgF(!5gIYT}@+!KbpYq9o-eNg)n+ zfz+7~e*1j>Vxe@bMp4!w7)RY!ncX6Q^Dpv7m^<33#FWag7Nh1UQ()oyrZ&9uXvU}E@b!lniR;2?tp*$q z!_rEI^lt4YcL{}8Fz~fl$T8Ik>Ap|}GyY-+TCRajQ`S1auOKKixa zot>P(UtF33H!iAu#>!<1!HaWhYQDj@f2X(@i+;q#*0UgTVUbtARQv{L^teDSf<{oS zEzJ1p*kOX-igf(nH*0{u*d!f#56*T;%HLaWLPaHUTDS&wtcU<#p8wBBS?Pg-x*mduo&APoL(o+PUXfT>FqYyUD1XC(P> zMycvz4PJ%wRz|RhhWd9L6w0YweB;J(2KS3Wzm>~g4tzQv=B}ACfce*tvGKBUD@iJ) z(=iDAjm1Sj60rqcLHSE=BsGM_CUj@n%-JVqJKD#Fo4cEI%HWW;jJ73ek5&Y%b>rjA17%o=6s$ z%`%JVGmRlnMyymzkd*b zp$s0XIr_g;46>{RT@1uxGND;^!*Wy4=0(i6h2nP+C&4NWNSQSOY$db*asV7vMLogb zvWxG-py46<4TA(a%5sFwTCLIo>#G9{9RD#!5FIjtXwoG~uh{*9l3wEq5w02xr1W+6 z+;!Yta2l6r!Y}JYBY^#;5G{m}XYeMqjDA>H{c?hZcXoEZZU8gW=jbA6$i28`bq(ge zs5rZ(*E9cTc%XR@;grl`_9VcA0*42WhuwO1bl8ElAU~Ku4WF;A8hwTuUzM+(zzDun z_I)OO{s@w~_TeZ=e#q`upDu6t_CMJ!QSEa$FP|AhBBgsmZokKLDPsFsd)4SnIVIJ2 z-LaLD^B4W$my}t@UuO3R?u^IY=d<3No8O`p>dG_Ir-p4hQ?&GYp~Mjdf4$@p^c#&& zTa3;@wGIFrz#o@~EVNpsF*$VoBh5G4YO7|S*m&k-S!XA%2X~fXFPboTzP07#O8E&G zn8S83#=Puf5iDVtC!2j0022fg2Ge=)AA!N(;aSywv$=a$7t)sAxN#tW;aT}{*fVA5 z)A>M>q)5rQq2ifBQ6i8s^8D0svoeRc7SB@$K!p?dsbsk%2a$!Ls!1Xi3#v+szBzum~JM;tme>Io@_U_9~h9+}AYO z)YUlLc%kcj%dyyV1p$m3K&(K`1u$rmnErzzHUhieZS6 z62QWMnJTCfxd2YE1~sk_XLA6|2iEiefc0}WXF$xZj00w_&@PY`jCb%r1$lvS^y`O!aDWpXJ^A_}>qcw?4{HdV>0Ze|JkCHO@KU7++*n3t2 zSj!@klxc*bA7vD~&;f{KAhj>_qrt)11L?qo!5;j06h5b78fzRU)6TU=6NIf3|}wbr#V+J2_KSD94ysi)rC ze~%&pq|YC~&**nEvAXhazV<(^TnfH){P^chvOyi73f+O*MXPcugkyr z?Z$}fAo=&f@D0l^<*?bipsWAc`6^OgpE&W)t1D+q=Ek~x4wp8pEq3AjUDjVC_+79V zj82Es;cz%DevO-lX2Rv+L-)gg%hDH_xN>#u)Gs4;9Z*GI}=*bN3o%JZCzw=Bk>bETJ~@s_1)VuC#Q}Z; zG_-#xCuTVR@*gU;+-nwN7`OyFH-+Ik`=HQ-#%Mh--hh2xaIaE5R6T^XUj!Z)?X+zBX6bT z76b!ckX{)q#)Z3%o=biBL*lsWG+LHm42+d8&HDA5{MAO@pB5rTT1sp>7*fcDuZO#3sMg@;M0FInlEVZoJkVv^&*JBUgKC zt4c<{IrBKdN;%>ebtoUak8b4vi1+q!_6u)oKa5o$D|=$@s!mfBzmj_<1oTE-7TrX{ zSncd6`dYjK_88lkUHEf#Fy{#KXCqiDV?jk9yrbUj8tZuCo8_-=|NS>sS6Vy%>F2w9 zrf9fW>ZS}}uj%p`QuyvU9DR@*WVBf9numM@BV1I!oU)wr*#>?F+rg07P=*XfqieLrX<4DLL(Jx=T3FArcj zEP?OuR3rX5mL>t^ z`FOg}aF`}MRgf=Vhx6YUq8huRSo(NYA!lwTZo;_#IkU{U_E{ah+Erdzr!LJ%A(2p_YeFQlTu4R<-QDFz2Z zwaoR)aS%{vm<5Lb;3N-S%3^^md|W0cLKi{`(`h+8Q943!Js0pdm6c>)c>sn9a+;36 zHw!E()quxW{DArwTIiYV=4L^YZB`+tlQjpWIK)$Qt6vFV-liVf%%*-*^By@@b4ivg zx6B7H>(2@GubYp3#eF2nK7;?tDrOaSp%(*C0K?wOA|MxyB|R*s5OW#;!fb!o&4QE` z1B;{rb|DZ#n5s*PM_PRmD4K=!)9?-*(>?->5gKUCi(VJ2e>EC%Gu`wq(bXu`qK1^e z8iL<9&lrr39`c4u{sjU%?>ZNt3k`E$Y(Qgjt{*vUH-+pWM0$`4xcTX!^wF*Tik;{1 zjzaiMLleIJn5=KcHdHdMV`-ZJ|_(;00M0Lz(JU_0rx zs3$R2Y4q&c*2)UF#E@@OUbZpY-ZiMnTh{)w%3v9w+8u2)bSZLgxV_}r70_0{O87fB zY||MvFc?0VzN7&5FB#R5rY49hP^$-fEPlO;@9ilr@GN*QJJe10K5gu6#~mcF=s*Z} z()D0qFvc0;?iOYyVc!ee&_@sDx^S?i>f9dm=Kz@2zCMZg2VnjdI`bWMll2H}YrhJH zR)2i{yQxebwsLXIn$QLM!z{#*H;4rf4?$}M0Sct5WE;4tOdfz!oSza_l?-NljtShA z+SAx2$NqCgI$s&a_1SEGoKkR^Z8N2*zKc8@G?I{~5<&?K!uXAns@lee0UK)E2!VCj zg(hz>=SbUftAc%{*@G1sT5OyiO!XZ6(kg>Nl+DA_|zjSoh}II8d*b~+N>#_qqKIax(nQ-^5~U?)B;`q{h6U z^OoKyJs7~@uv_Cl=NlPr?|}MnZEa>|tz`o)&$P5o*S=MMX$tZQzaWG8tC$&Ixs1At z4Q*Aeov$3OMyrayox8B>@D?q71pvF<-la=}k=-{&CZK6Jc*)_{F!MMCeW`BWZH_Lw z{NK^7cQ+q755a}4&(6>~7~g?gHfR|P>B*}nUfr&~9lOt3(L>VO;Qpcin_Rv;fH{1D z!cUTV_~VajK7_)kZgp$4qqi&KbZHASSXfJv1Q>gRPRpIk zAppBTM88bQa$SDf5qYEGg^rS$a*##;HvW9h4pOegR1pAYL;w@OO8gZE$*lez$Iqt< z0vP+pbyVP-V{OGJv{YXmQ>dn;`EZ)<|5E){Apm3l8~nF2aWN8E0x+xJtEEH+It8Y7 zSdhsuT6OBk@Id!~bp#f@umo1`srSwi@Inb3Id@K1InsRORBcts%8BYfewYW~EY|E< z<$kUV;B0~ofTe;mp>&WW^)JNO=R^RK-~Ah0p#B7HTS68;C2|0ai{0^D-Lv#fvbg#c zmz&}_08WqsKEn%S#ck*J0KPyfA@MZ_z|_MdlSm{KTg*ZQ51p8}D9$P{A*Tg<}9B z7(5s`?|}(0DzO4!$^m{@;0FzFQ1~u|8A^dbU|HirQz{6tMZ<&rPA z?8S$GR{D?F^tlLt!;@RtB^ zK_N7|JP8-zFwBELNMtIuS08_NzT;o4l?&cN49*c2+_-TZBolhW+YnsUea|-0Qi!!HBK7tz&+x{8c=Y(KX#K4d66jE1g@`@&Y;*17!g8r`ZP-J!Z~N5KzSm z0+{hNmQG~~1DNJFq*KKJjP}zNsdy?=2*Aw$g9R`#1dl`J(l&F19_@Ii_pJ*T2!pW% z_UW*xqE_p4kzG;(N7T+fU4Pf`DRLHFIXwQyghIs293Fu$$sz!bbAeW(5P%`biO>ry zGV%aSt_K8;r|1S!F#zKNay*gD0kHfnpbrq2Ly7YMj4M#tVgLq(7kMZXn+b&hh;YJy z6*RiyEbkzR_XWQ}f=a6Rm^h(mK!d_6SscLd5X6gnR6+w93SfDSa9=KUvDf@m66MtU zVri`KyvwbC`IaQ@p|PYRv*0<&%_z;1mk=d0GtY8+FcT>VwokB&w5USx!X^%eDu4!> zt+nvYVT?}-ECyj@xxB1jUUq5FH5t^>ZaI<;?5}nnF@ABTNdt^fuB7pLgDNzgBsV7r zMI#@s*X%PB6dit?$ujsnbbby+vK0OT#KXDNa8f ztDT-7ZQW>TZJnR)IDcWlY8`0)+0C1c&DNi)oql`BwG10$U|U?^;VI;JCH0RXcHvUQ zHrzhFQ3kTz^dE0mA1*8D?KhfVlpn=|RM2j{gS9SoP1t&P$763S(WEd(hW*y_{A^P{6j3&ju$_)}03JTtG2B&jem@|+c zoDwxzf}=F+uEg?_k=WOajn`p;D}CLR(1phOnes86QRYI>3+lJXKbd$TaTfx1oaQg3 z6tN8g<11JIQzk7G!Mp@6@0^(@XUg8Twz1|bguq~S5{WPX>zZ~WYMt6??9 zJGYGue9h1sm~%AXI;=PkDNe{o1nF->g^zqzXv30%p;rQS&|)e1CdnI2%q;{xIC3|m zMLQ8lc@VyQO)h}J#S0q_4)@q7iXun#O* zP;naqh)&2AL!0Fq7^`4X=6V9~KiC2eE<#5X94avw$>ZU!6pX+iwbB59y~|+WxD16T z6u%H#;6}|1*8qJj0EU2iuS-MqO3RR!0Pv+o&Uy$sT3T4>>4E+;zwGrn$>pvQ?9&0i zXvkqg^9|a3#$uo67K9&F*l$q)hgqyLbA5)*UwsHgSFrF4OEda{t!IW~$Xf_e6Ee)f z0QH=kE630?GOSfC`+L;u)(gG0w_a;~mi1AodZ3opvl{lBg|OwRbvw&Iv` zbaZ~Y>ePVGF%^iKuNRWg(e2`>*Rt1SZN%;~DStOcOXk`d>V5E*RN2%&(Z5@%yM$*R z(6|Lu4|7}5p9f%VI7$FN(a>8pf3kD+balo3KmN~(y4AIghC$VjcZ8)T<=;~PIOyy4ukia?uVjmb(s-1Vv+^zgx+iXkgGsj|ojEf2+ znvt7HXO$n^lxe$}kSvx90ys$rxQSfr4Y>%0M@F!K&UNTOfio7s$-)4}qe~(wM>L|2sIAVg(fg-!v`peB4Q2w>KLh8^NOYZ6&7%_P=EXTZ>;&zTVCDWK!Y zf-6cCuTMP(pU=(uJ^;Y-X`WTJ^6#{)GFC{jWQ%As2Wk{@6&5`KjVBsF^)t&f0#Owh zODELs~x%}8MQ8*oK5jnD+C{_3HmewM;#A2EI5?Zr*IwU}IlE!bu9fn^u9l7#x# zzqADVCJexPgL`}DNCkWsWzZHsNU-cC1Gb@YHIh`n0bJhU1!VZ^Up%7FfZ4CdgL_pj z>b!yR#4f#yIb-VirV(vB+XdeZ#4oLWgC0@1y|aUZa<2(}j$df+m>oUKS8AYTN`8WV zLv7lQg6ZVY5UqYsuXe7D&eopl9qVmtudS^;|3dSK&gpmkQWH>_3;REqgJ(Xgv^BTY zR+Y5U=5xpSW?STv0i$RaE)AaRyX#ysSS)_S8Ivib_Xg28MR~Y60KnR?d)c6Fg6{L# ztFa+P) zn67>69$|3lf6wbh=brW;s=?#3FTJhy_1nNI+J~*^9tcdLUeQw~=(#ua&ds*2yh6Rv zn62{X0GM^31)jyB3o77Kn%~0swhj!gQW=FhSpqQKKO!fYoa95U!$SMY@mMC6DGXrB z=a`gkm;>Nc8t1>UR6Lc*6j+Z!fj0SvEi)+zyuE$+MEMGgSE^=jwf8nQ3|z5I?C$PP zenN_0;BTd`X}6NR!Y)6!6R{4TntyhqygK&$?`t?KxPt~YppZW*q73WbSXPlrsJLWM zfDC%%LIB1EqD(3ww{v9;HJ!ggeVR@slDYnsvIPe`fytr(Mm(kx$$|jRqDN+$@v$I) zu>htW_`(3rQWHxd1UU!5a1X>5f;b_r;Vta!0RR^HOODG!9Kf*C4|uJ4?hnkQ12%^D zKOexg)_{YTBkl z2^NG1LsSsXF2Q(skz6WTwx>7LOQxuhZn^KoHee zz+5|8ZLqPgo)ef0pZNk3jXny|7-Ni#Sd^R3;hh`g)+2P(zWRo-^K;V#Uf6w>hQE;V zy^q6Rh}VK(%ovnaYx5m#Kf7Y9pSUpf_lkroaJ&+_gF%0y~E87-SrbqyHElHe-oBow1I@0 zZJOLf1Aj?H$4*@AA-}PsjcP*1!AO1Ah2A-^eTKatXg=fSQ9Ayc#P4gUZ4=UgIHk|`8&c{M7t$W6jmmr>V$aOaBn+d@Dl{MTPtN)2d}KPz&v;!f|T%pgAZ^#@%!J`&}`8{06u6H`11ga z4jo6qY%de5BX#hzPgJ!x+H{7+(ii{X;5wLY@M-K8$DYo&TW__F*qX>Qy!V-d97-XP z6ZH3&o$5;4)n1Tf(OyY9ljjzll9L-m0H;LTt2_XwW7Izb&L{$a(`k0?Seo~rGpT|A z<_1{QVX_c_v3{-@~G|N6TkfU}@aif0w-E17Rt9m4IExGCa| z@s~BI`3_Kid6~+@%>5iYVxWmuGMR5*DXGkr1+X%%0lz}30AD4WEa<`u z9ctwj3IbSaK`V_Xx%|qll>sc~5pq)va};bP0iIwX37uHlcZNTJ5eETqKouahu!klC zn^}FZ=)u9Un*}GS7zKp(bB;I9BkbvF-IQA{mzVZs(as7kC~+q5wa%WmFZDQJK_0x~ z`u4~#j=O+gG@}IfjVTC_fDtNcuV~&e_ig-I0nDXWX6B|%bDi`o5|QQ~@eD#)dL?;p zP!DMI>{`|=2N!YnYZjzem!)P&_F}(Ta8M`Y;z$xKZZ`kwwV7T{3RkJ0d zqXfSt9p``khRzvMT^Dx0$z3JS6~szFA$;Zx%z}Zz0dn5a=BUgCK^5K~x61;y#lLuM zqh)60@y=I(cXYYn3|xwnn><=MAHa{j`(*+Arzij7 zPftGir@#8>Xw6d}KL0;sI5(KD`q8jWeP)ZPp$3KC7pH5&xryA`Iw65$e*+F zrf)ok_(~>n0Zb}Zbg*I@L|JB$B?KH$fa8;smA`my${;N0QVVD0C%LB;bigUV*(W!Z zphb^qKAu$cTt1t><3X!7PH$)MrCDD1B;f=w1>7_|?4l+Kd{Tm}eYqS*L$fe;DMYd4*d z@k{<^bdWL*0E`o0hokS3a8WzB~)ayc94J?Tj+(q_=LgYT%sq#69x-r&$rt^0A+KYO_CEZU)n$h=aV-555 zjvd1WDS2&?>K9)~kf#N23ioeUe*-dw=8jk=_Y7Y1b;{SM*JLm*7@sB&BPofOmhOU+ ziP7W=pvGV^Xg3b}Y|Tua)H?q}$*ohvuU8HlG}wI>f)>LtF$ic#8Ei6LrY@kg4E99L z*R^?4H|}gnYBf_|@2H>b#vK%CbXV=y7` z!-sA@oRL~Z=6o-XXcYG1Sp|&0#~+V}?x^P4nLgdFt?R)fV>-nsprZH zxoxBKG*6g0oMckJK}8k|xHxzKEX;rlLifr1k?^}8eROF5FQ0qCsL0+pY`@{G`4Kw}X2Y46qVFUVEXCp-0!>HC8)I82pcQ zEIITyM_Q!>Fx01MAyilnB9`=7;MC z{`yEMJh@&OxwK@`Saki(r#f0!>wcS6Iz*E1qacUCu_Ty|W?%qJ{WrMpl+YlK!#$7l zv2HdicCo306>bnEHxq>gQs8hEV;e-w=$V^QGY>8}hGhAzl3X?fzJi20k<96lOXmgn z0@Oo9?tUvn7_k6OY!*$4h*OD}xLzeXX<>&umAgHhRG4@`0bF=ViAKD!oM7QH^j;04 zFXlKL>|&XF`ClBsyx?_9Z!2a_VJV?O%Q6YgEYX+iK%*X5L-J6qGum!|`399>L3>$+ z)|9A+R-tH%)V*{{MqMnU56!XyH!Ll>K6(K2$anG{0tEI#C)O?{3>pj;3#KhtoTLPH zg8wu5br9vxPUFk0{`KQ55`8?DHB7nf=8M0jk9_w?k@iaw2@k%?qruE07WfN2p9(99#1l$Qu!9o}3Gm()I61NdIew?g;1llDf(xlES{3vk+j zKEscu@**2XW4&8#JCFm6G519bFS4e0#^O z*^>Er5KPxLTAS1ceKc>M7x$sGW>s+66{2m5%j6U>>$P|J!&X@j=adOp)~{ z0Zc#i7-4YD?-MXU_-8mmkt2{zeOdL=i{JmRgIuCK zWFV&_*b103EvX?mYp&#(&TK!=|TWTg&6Dy%L`NjfT-Y#tx(e zu5BB;&|n=QHE>sD&x#BH}RSAy2VgQbV#g(A2QUaLbHLXY~RsuMS9wWTL zToAw+OgStH;4I4bvc&;RV;GAA7!NrIxJaYTbUc{{;J@SmrWJBc&E^*cFnu3^->KY8 z+R0gLW*&Q5c^GWwQ4I8x*jtXeJsQYfPyv%r^bA!n-vm}+KbkQYq$${@Gs9aHUHmmm z?iCCLrC%F>VSmT0TEr%_#s!|w&{PKaT9#1dOe$cD@vhO~01o%i%xs7xT*5$La@`PN z9Apl1?Uh!F4f+}ZTq-6;s9?!!nL1x#%rByMig{2n3{QzYXeseXPmd1N^_fQwYH@Lj z)SAmCr@FF!;AZ@A`M-D-X34Q$0+l#V=4Qis@F8&7 z?O7&h`lR1BFgymuf64sDSqo5M>qHm~CM8QK zy7TJwp)*ExM==8_AsREw0EYG0 z6zYewg#Zi!DjI@Rpm)qICSzOxRiFY!2j)yHo+t|7IPfu*+)U;#DI+EmxPp{T76q^% z@hS*l8sn5G3SgM;#)_D9aFfbZES{^(f_Op>U^vDkz8HYn?k~Q_M5Qh?oc5W>*^P*C zn|Yj(nP)M$*kVeR;f|8W6)jA>l(Q}bFbcW>y4UC$5=??oDaMzNIDl#5FZDd(!ZEBf z0l&t`Gep5&F$*buXL`pR-M0K`=sx3P^&0IA)3h( z@J^X53(oJHL;e!#j5Rh440MqakQBdF(@5Xhs*bjw*GKvcuBf&&tQ94A5`N)-+Uw+q z2Q7CL&B2o}r3dd%SRD^bg*U=MWp_j%SE*zJ=vG!X0|RPne`K$x4~CaEX#7=v5`jSU zp1V$q!Q=`?VZZo>^5r7gz0rh91n@(%c>A=U!(b-Gq8EBnRRz3$r#jLWF&2Q{1IA^+C54g&CFMe!@IAw9{Au>_Z_C!eID zNyy+=S6ASm(%ipiQoZyK-~X@U2aR!#?}Q(ETz+E@ZU=XDS*?)qqf=j6ASYCKp@l+r zLyvB^tMPo*6Eo%C_M^vcZ4^U35e2lamguu zK>eG9C!4#I2^2kABQ>B?>BJYnZ_N+|uv_?r7QRucEitq08ZOdun-wOxl*&=moZy>_ z2V9xpP0@pkzR-^b^s<-+1TZxW!s>w6*^1z!uK~bPUcD532Tj~X4XI*DO%;NsGf;N{ z>R*8IlEH|YXP5&!oeO|pqXj<$3O+(P4K8_m@Ww=baM*ebG@q04%j5vavo^P4inpq)lcO@M!4D{=aQyNtihR>uNuOtNrp@mKjCT9*< zXLWhZ!0~X-Fj)>A!PhjMlkAi#RMYvL=z;)71q4bU0xrWPov(kS`K__@bA-XwgZp&837eH1tgJSOl|KivJ3p!o9@s5?x+d$*+L8^BMT6s)oQag?4v?9g zac{a1fVtHbT+)iGaeu4o7{96#z*yhH6qap272q%OyH4RiEm&m%;IaRl6Avr_m<2eo z`dI)l-vb`6-X`olyiE-$Vczh>Y)5U|kqZr1?$y6B(eI-&ta@w1z^7fW_xpVPpVmHe ztRnTC(EdezR6zhIY5j{EzKJ}(QT)p=zwa0CpA4Cq%6@BOUx%wrzDHsSLQOMTBV8g#1y zq!9GFrU1Zj0hQIl5;|R-u`H1a*lBd$?QvR+OG}i#kOGXkedIl#-a%*w(1G=%J}l&v zzwl0foq{01OrP=JsVVNhq30V&PzrOOXH;Rim&-8%t z#*y}p=_fYUPOfxzLgo=h_GIMh7koE16RFs3QZPNfQPR=d(4Gv35S&)m|{P+-MygogaMy)*%Uh34U*O?W&hdnkW!k?+RizRahF=D-I*Hu=bEA zO&`KeG%QphjG>K;JJ{yHlu^C@`c1I*K$X+hH(RIMhi#wq*aI|4Q{}ZAoRBo_JTqzhe`J{r{La!*>i5h!o2zyWWX@U}oeF-=e$ryIr@(Rf-yFa!h> z{=zQsVGQM1Yb^mK^v&Uh?tAt16O&K?`zEXnKOY`Da^$LYr0ZtY)^;qFOh^kzY2@c- zK>#NcwEdfsN3%JY!Ol3ecN00`f7H)PRCwjVo%N4leLICU^ClboX0vju86B8u{mL9N z6FDnNI7&!mmEK%Dq!>%|G&Y!%a_3lS!v!PcG*xg5_?5PmsKyJgpa8er#E)alQVz9c z&L`1kQ*MD505C)`CM3@e=0rKf71ChRL31Dk)pRbabLG|JDl=|UL|M8^R3b0`6;vc{ zX3v36Rw$TuE8lY9Ehfs|Wda^_dgctqKOviGVa%v*mUUg!_4(@qu>3wLM?1kgDg+;C zG%i&37%YUpFTV`KUIS=-ES4pwkpS2T7l1PAOUS9-t6vTRSEBOH@*`V2Dg@xLBn zF5GAhZ9QYzOC7Ih*dUEPVlG&$?qw;!D852wle1~J>FUvGX1syA1Ok9V`}=?S)aJjZ?vHQ({p#b-mdu@Ru8;Kjz2Z zvKb0YlYbfVFZA@CJBJ>;V8z?l<1|7mdRb-G<~$W#Z-rVaDpV*H_lFCPgV|=DDz^s4 zOTeXn;Bt{$zA&hptnY3ZYwsv&-ReAcn&#GFa_rXH#>TU>3_iV$WpEr5){dees|bU? zD1gNasi8j}+W#<1a8q}zbEb9nM=xCQ^-P&x`iB=^Dw^4Vou9BdstGL(>LTkGN4f{P zy1MIkDB5)X0vfDB#Lwe;Z#5Nj7XmO^ZB*cno-+A?5f~cKb=zR!$}OQg zPi~Bsbkv@ItFggqwbeKIBA--Nu6GYKUpUfxs=dAUNZYN^^6FUp14>ks7i0NZ7{3ru z5X)dh5Ot*7l6bHG6` zJLS_=BP1|Z z1i&!mMeu?b0(IlibNpiI>p})YGy_dtfbv&f{S8C)`!H|~q|a~s>+n0j0PSv%;iMbebna(U3OnNUVM8ib@9HtMA)(sju@-RHG z`wa^{YF(rWd~^r<)auH9Ya_w$#svT;z? zZ@ob3!;O=xuh!Azy3;4%LE378XsDBqchV_52z=s+4>oJwBLsfL0R9W?ML+qccR%`g zs3w`skc#a@`Bv*|wY?3#w;z~a%C)K#pBCu-hqcjw%fIxtI?^;TV(l8ZGBN=k9p`#z zY7%*U+6@bEFzWqL$uleEC$<@^iUU}xLW=@ec6y}yM-}OqbOq5wG82;xq7UNlcuWAa z0N@x4P#TY=iUAnpVHMS)Lx%#ugumqSYx?9;0+XMB4NyY&HePKW7^$CxHKcW$b)ccK zx2?9LYWCLb*_Ff9F+>w27|9M-i2@yF)D~r=`Zpo9p=Ae1d|2a&VgQaa_7uiDxuo#( zS+?(+2VfkpqDH%beKS*7WpD*JA(g;5MwS4K5@|v=K{lrRBD6%Ow>l{<_|j`)7aneb z0N_ngueO=Mms?`97=V*B=P;X;BcSqjgyR|Bq0SFWVp)-KDM+~RGO_Ywo5?!5D-mU} zf)Ff=k}4JK7O~(2++>8|6_;eG+*;ISF)E|^JV&m_9rdW#a*ot^qhMz!XSs)Y!spUQ zue}oIr{EnWZ3FikdxBEf!*!s;%%3c0FY;L{8waG!XDaqi!Luct>jv zy8KRc<;5$*FSK`5f%dAbQ?i}JwK}>qKD1x+6glMm@iw>^esi?yRO3&4eJ@{jf#vtI z2K2~UmXxpqVSw(yvWuKn=+rd&;FD&IBRX+nwYkAxBfj14hUSJVKd}8|;3{;`=Lvq-Nd4Q=I@{i8 z_3c@_JY|GG_3(%W^nQ!8Z}1##Myu851|e?V@MdTkTG6F9N_TdoegxGX;sUJU&gBQo za1%kbbz?^!7>k|gD0}fs^)D{zsqiUuO_}^p!>h`q*90{o!=*@l*OA)kjm~4+<0zOV z@6xYAqp}Qgk!fNQ-2;o^ibT!Op`#x^2Kh!G{kbjZCl9{-1zzYp_@hJMCjTpt?UtV$ zot_)J;&ZyRz~CFjjj~V{9dw<6Cu990XtJ(!*EdCUx&m4mH34{$}OBtrQ_=QOcdk7O;1wq>SUN zAkNBPrM(6YWhoxB+z>J^Cy}lo(VL(wfhoq5XtE_90k}F@G6BI2qGX~FoLLtDzd%Av zFBCh;Sj00QZDEa?(wnvE=?FQIo1!H2u$3_lN(93q6}o^(J?Y#n;@rjJ&6?~96)YY_ zJ#?E$Ry5;V2Tf3jvi351`nXjHVU}L#rUn{rm1J)Pf6v3VizJ;h|5E7JNZ$&zW@-P0 znoE2g0M2z7KJN(ltPN1-daQ??STL4u{=A zugSO<>F6NZ$iZ)v&y3F29vSFYTSDGoAn4VHOeU9R z(QOt1Y$i-4-;ah!FWzYyu7v{l*a=8X+8CYfICaF@q;vQ+58?CV%F7Q-mIdR|8M_j| zLM5zFW|5-wp+|!`d6m2O8s2)Rz4m}+T(6vp9{&CvhfLJ6*2HqIOW#Hk4k*4*g$)<_! zD_0nRTQ|1g;fcjj-AtET*?Mas0OR(Kv;mw*}9YOUgto>r*FDjq; z_?Onb48kyGvvV70=KRb6%rXaQ;1nE>qO#%14#rXt{E~OYk>sq=+6{fl+RuzZc z8q>Lnv5xtcGU|WaT5{|Bk%o!Lpv6U3f3@a-*Q+-zITkGbkN{xG7%ew-kcKgmgQFfs z*Jv9uJ5RHPp!D6EnVH#`uWBFrbRy!srs92JC4b3RzK+|h#-6@CjAR7}lQP)3bjOdf zu5kExDPKtsyIo7_rjdc>;o%DdwkF-6#pLqvfiaC|X1ABV&Lr`bhl?RVkOuo>E<4UP z7A%G{CXC|Lcn!KY8atjr0K@w&2+V=Ma9JTIiI$UcQ-UTjzhARI^l@GV{FMO=|NGyb zeD~dN9UZFKOg^7Ro2-`6s$bl+RvKM7z36<8ERbYrpedn?`07Wj)`6~(`X-nSIItHz z6|zs=0gv(KvD%W>vhr2xEiOuy|9k-RkDF>kX#rkWO>==6fuRf3(ppm0(cU)P&^@u+-(PPf_3zaS zjbm+dvm0BTuWW;)D^5zPI2c@|;3S+a3}9M)rsFKGKCzjDHx|)L<--L542@GzKoF!_60ml>mlYgkGZzpM?NShuHB%wm?7=0yqv~&l%AgLy1X(aKM&peDH!^1T z9{r`fu&e2_4Gg!{!tnQ*HST)_>;>V4;o_8`A86u_hcHrQRu0S@3& zP+VQ-E@L}+E?MN;cuWqp&)V2tHNSR}d~xzG`DLqY=4|WqTwAkka?lvUt*fY6d6DJt zVCuB=_N77fIbH@|y6ZGP4IScTG@QNx-#EH_M!jxre5ZDFW%;Xl@&+tnS7vck&WmgCU_X`W;cz4J20HdUr{px{^v*p|4za{UpnF_E?0+VQd z**bZWAXu^_yZ!(3_U@Bf-r-D0Osn$B{2>WW(vEWz(giE)HJO{ z4da&-vpqSam6ktD&Sd>EbSkK`3izgMnnapXbsN!ntCekCV!pteV*t0yZMr~@6xrJG#3KC@%wx~&-1zbb25ga^urGy{`kj0gdqU> zX%Ji(ct!YC+#Wsm2<^e~|IYXuV6eJ%a?QTH;MHYCRc2X};3d1Ry5;~LJY84ypuNAk zv;AGb;PY775Ck2g&%9qZyw>y9ED*gLJU#>SHnL)_q@YO=G^6w*Dr3OV;md!eq{a}; z7!?-8d6&Q9{5cxU{{c}FP>+cLl}TB{B07=KpfpAX;aC;|6Tc>fwSn>|Nry!`J1_&! zO*U7z+wE2M&i;M|z(WYYww=}5%CWx&(waei73iN5a&xY<$lb;ODzFH1IFo`TGg3!k zi~}@?s50`1ESxW6{}j>NEC8m+N^&5@&! z_3imX+sX3NkkSK~sYR)B$d8LEl^+U>R9r+A;sR!5$ULM25jR4xN@6XQG`4mN6KEBh zoEQ&^2-{*z(-p+XOM=k%fB|?{$(RHf6GFWJ7U(anxLMVDCoG#5G9&pg8QNlTKm#pY zGALg;47tfF+MX^+r3>F90E^3C9PRr9;egjj^~I>QLaDP5t-%|AaT(0bz*tK-;R=K9 z3bwyOA2TSQ>Bz%?(L2%Dt3O%Q4+h=YGb1mo^K~Q7(9a~K(;PczLtGMc4(_$obWLj- zjS=0^C5(vNJbOvAZ??E30Nz~^hA6R^58xH-N!Q zZ~T?gADk7G1;c`n*Wz>T>r4CWK~tDl{8*RKsV_e>H1qbLkGFg6&;?K@dF5-&-ApAEn? ze}+|3JU3zz02l|W^a=7Qpcw$;V@bvf0Wc1*6)lE20xTHSr(^NF{5ON-G?_A_xxQHr zz}vErEcuW<3xE+`VZa>U&JVz3gpMV00GN-+QQ$0_fh!$Myrxj-Q7RD90f&T4;@jiz z_9xHBqc_zmw+Ez1s!+g>OTv&AX)qT0;?N9m76h+}V${7sBuvEwxsU zHfZYBOxrt$dfsX+Q`^p+gND2-Tzdr*FPWS^4$EH#3#V;U6{G!q8gtNtSZfWjbHV1F zyPAFHjLRb~fs1x|q!r_r7PG$YouLb5>N6v@E!zkqrbAtI`fii!30J`5BXz6%-k`;| z=`aRVe89j^8QPv;^Uj|6`~b}U`>5OA1N!RKTD-8qh@=c2`^ zb?ZpOuv^31a`&Y4j2a35%AnJGilXVEH7Y!I!HU23Kt?YtDaw5gmZRo2E

' + } + return laytpl(menuHtml).render(menu); + }, + compileMenuContainer :function(menu,isSub){ + var wrapperHtml = '
    {{d.children}}
' ; + if(isSub){ + wrapperHtml = '
{{d.children}}
' ; + } + if(!menu.children){ + return ""; + } + return laytpl(wrapperHtml).render(menu); + }, + + each:function(list,callback){ + var _list = []; + for(var i = 0 ,length = list.length ; i= options.maxTabNum) { + layer.msg('Tab窗口已达到限定数量,请先关闭部分Tab'); + return false; + } + var ele = element; + if (options.isIframe) ele = parent.layui.element; + ele.tabAdd('layuiminiTab', { + title: '' + options.title + '' //用于演示 + , content: '' + , id: options.tabId + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'add'); + sessionStorage.setItem('layuiminimenu_' + options.tabId, options.title); + }, + + + /** + * 切换选项卡 + * @param tabId + */ + change: function (tabId) { + element.tabChange('layuiminiTab', tabId); + }, + + /** + * 删除tab窗口 + * @param tabId + * @param isParent + */ + delete: function (tabId, isParent) { + // todo 未知BUG,不知道是不是layui问题,必须先删除元素 + $(".layuimini-tab .layui-tab-title .layui-unselect.layui-tab-bar").remove(); + + if (isParent === true) { + parent.layui.element.tabDelete('layuiminiTab', tabId); + } else { + element.tabDelete('layuiminiTab', tabId); + } + }, + + /** + * 在iframe层打开新tab方法 + */ + openNewTabByIframe: function (options) { + options.href = options.href || null; + options.title = options.title || null; + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + if (options.href === null || options.href === undefined) options.href = new Date().getTime(); + var checkTab = miniTab.check(options.href, true); + if (!checkTab) { + miniTab.create({ + tabId: options.href, + href: options.href, + title: options.title, + isIframe: true, + }); + } + parent.layui.element.tabChange('layuiminiTab', options.href); + parent.layer.close(loading); + }, + + /** + * 在iframe层关闭当前tab方法 + */ + deleteCurrentByIframe: function () { + var ele = $(".layuimini-tab .layui-tab-title li.layui-this", parent.document); + if (ele.length > 0) { + var layId = $(ele[0]).attr('lay-id'); + miniTab.delete(layId, true); + } + }, + + /** + * 判断tab窗口 + */ + check: function (tabId, isIframe) { + // 判断选项卡上是否有 + var checkTab = false; + if (isIframe === undefined || isIframe === false) { + $(".layui-tab-title li").each(function () { + var checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId === tabId) { + checkTab = true; + } + }); + } else { + parent.layui.$(".layui-tab-title li").each(function () { + var checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId === tabId) { + checkTab = true; + } + }); + } + return checkTab; + }, + + /** + * 开启tab右键菜单 + * @param tabId + * @param left + */ + openTabRignMenu: function (tabId, left) { + miniTab.closeTabRignMenu(); + var menuHtml = '
\n' + + '
\n' + + '
关 闭 当 前
\n' + + '
关 闭 其 他
\n' + + '
关 闭 全 部
\n' + + '
\n' + + '
'; + var makeHtml = '
'; + $('.layuimini-tab .layui-tab-title').after(menuHtml); + $('.layuimini-tab .layui-tab-content').after(makeHtml); + }, + + /** + * 关闭tab右键菜单 + */ + closeTabRignMenu: function () { + $('.layuimini-tab-mousedown').remove(); + $('.layuimini-tab-make').remove(); + }, + + /** + * 查询菜单信息 + * @param href + * @param menuList + */ + searchMenu: function (href, menuList) { + var menu; + for (key in menuList) { + var item = menuList[key]; + if (item.href === href) { + menu = item; + break; + } + if (item.child) { + newMenu = miniTab.searchMenu(href, item.child); + if (newMenu) { + menu = newMenu; + break; + } + } + } + return menu; + }, + + /** + * 监听 + * @param options + */ + listen: function (options) { + options = options || {}; + options.maxTabNum = options.maxTabNum || 20; + + /** + * 打开新窗口 + */ + $('body').on('click', '[layuimini-href]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('layuimini-href'), + href = $(this).attr('layuimini-href'), + title = $(this).text(), + target = $(this).attr('target'); + + var el = $("[layuimini-href='" + href + "']", ".layuimini-menu-left"); + layer.close(window.openTips); + if (el.length) { + $(el).closest(".layui-nav-tree").find(".layui-this").removeClass("layui-this"); + $(el).parent().addClass("layui-this"); + } + + if (target === '_blank') { + layer.close(loading); + window.open(href, "_blank"); + return false; + } + + if (tabId === null || tabId === undefined) tabId = new Date().getTime(); + var checkTab = miniTab.check(tabId); + if (!checkTab) { + miniTab.create({ + tabId: tabId, + href: href, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + } + element.tabChange('layuiminiTab', tabId); + layer.close(loading); + }); + + /** + * 在iframe子菜单上打开新窗口 + */ + $('body').on('click', '[layuimini-content-href]', function () { + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('layuimini-content-href'), + href = $(this).attr('layuimini-content-href'), + title = $(this).attr('data-title'), + target = $(this).attr('target'); + if (target === '_blank') { + parent.layer.close(loading); + window.open(href, "_blank"); + return false; + } + if (tabId === null || tabId === undefined) tabId = new Date().getTime(); + var checkTab = miniTab.check(tabId, true); + if (!checkTab) { + miniTab.create({ + tabId: tabId, + href: href, + title: title, + isIframe: true, + maxTabNum: options.maxTabNum, + }); + } + parent.layui.element.tabChange('layuiminiTab', tabId); + parent.layer.close(loading); + }); + + /** + * 关闭选项卡 + **/ + $('body').on('click', '.layuimini-tab .layui-tab-title .layui-tab-close', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var $parent = $(this).parent(); + var tabId = $parent.attr('lay-id'); + if (tabId !== undefined || tabId !== null) { + miniTab.delete(tabId); + } + layer.close(loading); + }); + + /** + * 选项卡操作 + */ + $('body').on('click', '[layuimini-tab-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var closeType = $(this).attr('layuimini-tab-close'); + $(".layuimini-tab .layui-tab-title li").each(function () { + var tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); + var isCurrent = $(this).hasClass('layui-this'); + if (id !== 'layuiminiHomeTabId') { + if (closeType === 'all') { + miniTab.delete(tabId); + } else { + if (closeType === 'current' && isCurrent) { + miniTab.delete(tabId); + } else if (closeType === 'other' && !isCurrent) { + miniTab.delete(tabId); + } + } + } + }); + layer.close(loading); + }); + + /** + * 禁用网页右键 + */ + $(".layuimini-tab .layui-tab-title").unbind("mousedown").bind("contextmenu", function (e) { + e.preventDefault(); + return false; + }); + + /** + * 注册鼠标右键 + */ + $('body').on('mousedown', '.layuimini-tab .layui-tab-title li', function (e) { + var left = $(this).offset().left - $('.layuimini-tab ').offset().left + ($(this).width() / 2), + tabId = $(this).attr('lay-id'); + if (e.which === 3) { + miniTab.openTabRignMenu(tabId, left); + } + }); + + /** + * 关闭tab右键菜单 + */ + $('body').on('click', '.layui-body,.layui-header,.layuimini-menu-left,.layuimini-tab-make', function () { + miniTab.closeTabRignMenu(); + }); + + /** + * tab右键选项卡操作 + */ + $('body').on('click', '[layuimini-tab-menu-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var closeType = $(this).attr('layuimini-tab-menu-close'), + currentTabId = $('.layuimini-tab-mousedown').attr('data-tab-id'); + $(".layuimini-tab .layui-tab-title li").each(function () { + var tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); + if (id !== 'layuiminiHomeTabId') { + if (closeType === 'all') { + miniTab.delete(tabId); + } else { + if (closeType === 'current' && currentTabId === tabId) { + miniTab.delete(tabId); + } else if (closeType === 'other' && currentTabId !== tabId) { + miniTab.delete(tabId); + } + } + } + }); + miniTab.closeTabRignMenu(); + layer.close(loading); + }); + }, + + /** + * 监听tab切换 + * @param options + */ + listenSwitch: function (options) { + options.filter = options.filter || null; + options.multiModule = options.multiModule || false; + options.urlHashLocation = options.urlHashLocation || false; + options.listenSwichCallback = options.listenSwichCallback || function () { + + }; + element.on('tab(' + options.filter + ')', function (data) { + var tabId = $(this).attr('lay-id'); + if (options.urlHashLocation) { + location.hash = '/' + tabId; + } + if (typeof options.listenSwichCallback === 'function') { + options.listenSwichCallback(); + } + // 判断是否为新增窗口 + if ($('.layuimini-menu-left').attr('layuimini-tab-tag') === 'add') { + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no') + } else { + $("[layuimini-href]").parent().removeClass('layui-this'); + if (options.multiModule) { + miniTab.listenSwitchMultiModule(tabId); + } else { + miniTab.listenSwitchSingleModule(tabId); + } + } + miniTab.rollPosition(); + }); + }, + + /** + * 监听hash变化 + * @param options + * @returns {boolean} + */ + listenHash: function (options) { + options.urlHashLocation = options.urlHashLocation || false; + options.maxTabNum = options.maxTabNum || 20; + options.homeInfo = options.homeInfo || {}; + options.menuList = options.menuList || []; + if (!options.urlHashLocation) return false; + var tabId = location.hash.replace(/^#\//, ''); + if (tabId === null || tabId === undefined || tabId ==='') return false; + + // 判断是否为首页 + if(tabId ===options.homeInfo.href) return false; + + // 判断是否为右侧菜单 + var menu = miniTab.searchMenu(tabId, options.menuList); + if (menu !== undefined) { + miniTab.create({ + tabId: tabId, + href: tabId, + title: menu.title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no'); + element.tabChange('layuiminiTab', tabId); + return false; + } + + // 判断是否为快捷菜单 + var isSearchMenu = false; + $("[layuimini-content-href]").each(function () { + if ($(this).attr("layuimini-content-href") === tabId) { + var title = $(this).attr("data-title"); + miniTab.create({ + tabId: tabId, + href: tabId, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no'); + element.tabChange('layuiminiTab', tabId); + isSearchMenu = true; + return false; + } + }); + if (isSearchMenu) return false; + + // 既不是右侧菜单、快捷菜单,就直接打开 + var title = sessionStorage.getItem('layuiminimenu_' + tabId) === null ? tabId : sessionStorage.getItem('layuiminimenu_' + tabId); + miniTab.create({ + tabId: tabId, + href: tabId, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + element.tabChange('layuiminiTab', tabId); + return false; + }, + + /** + * 监听滚动 + */ + listenRoll: function () { + $(".layuimini-tab-roll-left").click(function () { + miniTab.rollClick("left"); + }); + $(".layuimini-tab-roll-right").click(function () { + miniTab.rollClick("right"); + }); + }, + + /** + * 单模块切换 + * @param tabId + */ + listenSwitchSingleModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 多模块切换 + * @param tabId + */ + listenSwitchMultiModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 自动定位 + */ + rollPosition: function () { + var $tabTitle = $('.layuimini-tab .layui-tab-title'); + var autoLeft = 0; + $tabTitle.children("li").each(function () { + if ($(this).hasClass('layui-this')) { + return false; + } else { + autoLeft += $(this).outerWidth(); + } + }); + $tabTitle.animate({ + scrollLeft: autoLeft - $tabTitle.width() / 3 + }, 200); + }, + + /** + * 点击滚动 + * @param direction + */ + rollClick: function (direction) { + var $tabTitle = $('.layuimini-tab .layui-tab-title'); + var left = $tabTitle.scrollLeft(); + if ('left' === direction) { + $tabTitle.animate({ + scrollLeft: left - 450 + }, 200); + } else { + $tabTitle.animate({ + scrollLeft: left + 450 + }, 200); + } + } + + }; + + exports("miniTab", miniTab); +}); diff --git a/src/main/resources/static/js/lay-module/layuimini/miniTheme.js b/src/main/resources/static/js/lay-module/layuimini/miniTheme.js new file mode 100644 index 00000000..817907b0 --- /dev/null +++ b/src/main/resources/static/js/lay-module/layuimini/miniTheme.js @@ -0,0 +1,474 @@ +/** + * date:2020/02/28 + * author:Mr.Chung + * version:2.0 + * description:layuimini tab框架扩展 + */ +layui.define(["jquery", "layer"], function (exports) { + var $ = layui.$, + layer = layui.layer; + + var miniTheme = { + + /** + * 主题配置项 + * @param bgcolorId + * @returns {{headerLogo, menuLeftHover, headerRight, menuLeft, headerRightThis, menuLeftThis}|*|*[]} + */ + config: function (bgcolorId) { + var bgColorConfig = [ + { + headerRightBg: '#ffffff', //头部右侧背景色 + headerRightBgThis: '#e4e4e4', //头部右侧选中背景色, + headerRightColor: 'rgba(107, 107, 107, 0.7)', //头部右侧字体颜色, + headerRightChildColor: 'rgba(107, 107, 107, 0.7)', //头部右侧下拉字体颜色, + headerRightColorThis: '#565656', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(160, 160, 160, 0.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1E9FFF', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#565656', //头部缩放按钮样式, + headerLogoBg: '#192027', //logo背景颜色, + headerLogoColor: 'rgb(191, 187, 187)', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#28333E', //左侧菜单背景, + leftMenuBgThis: '#1E9FFF', //左侧菜单选中背景, + leftMenuChildBg: '#0c0f13', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1e9fff', //tab选项卡选中颜色, + }, + { + headerRightBg: '#23262e', //头部右侧背景色 + headerRightBgThis: '#0c0c0c', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1aa094', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#23262e', //左侧菜单背景, + leftMenuBgThis: '#737373', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#23262e', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffa4d1', //头部右侧背景色 + headerRightBgThis: '#bf7b9d', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ffa4d1', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#e694bd', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#737373', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffa4d1', //tab选项卡选中颜色, + }, + { + headerRightBg: '#1aa094', //头部右侧背景色 + headerRightBgThis: '#197971', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1aa094', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#23262e', //左侧菜单背景, + leftMenuBgThis: '#1aa094', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1aa094', //tab选项卡选中颜色, + }, + { + headerRightBg: '#1e9fff', //头部右侧背景色 + headerRightBgThis: '#0069b7', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1e9fff', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#1e9fff', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1e9fff', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffb800', //头部右侧背景色 + headerRightBgThis: '#d09600', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#d09600', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#243346', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#8593a7', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffb800', //tab选项卡选中颜色, + }, + { + headerRightBg: '#e82121', //头部右侧背景色 + headerRightBgThis: '#ae1919', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ae1919', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#e82121', //tab选项卡选中颜色, + }, + { + headerRightBg: '#963885', //头部右侧背景色 + headerRightBgThis: '#772c6a', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#772c6a', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#243346', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#586473', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#963885', //tab选项卡选中颜色, + }, + { + headerRightBg: '#2D8CF0', //头部右侧背景色 + headerRightBgThis: '#0069b7', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#0069b7', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0069b7', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#2D8CF0', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#2d8cf0', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffb800', //头部右侧背景色 + headerRightBgThis: '#d09600', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#d09600', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#d09600', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffb800', //tab选项卡选中颜色, + }, + { + headerRightBg: '#e82121', //头部右侧背景色 + headerRightBgThis: '#ae1919', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ae1919', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#d91f1f', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#e82121', //tab选项卡选中颜色, + }, + { + headerRightBg: '#963885', //头部右侧背景色 + headerRightBgThis: '#772c6a', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#772c6a', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#772c6a', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#626f7f', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#963885', //tab选项卡选中颜色, + } + ]; + if (bgcolorId === undefined) { + return bgColorConfig; + } else { + return bgColorConfig[bgcolorId]; + } + }, + + /** + * 初始化 + * @param options + */ + render: function (options) { + options.bgColorDefault = options.bgColorDefault || false; + options.listen = options.listen || false; + var bgcolorId = sessionStorage.getItem('layuiminiBgcolorId'); + if (bgcolorId === null || bgcolorId === undefined || bgcolorId === '') { + bgcolorId = options.bgColorDefault; + } + miniTheme.buildThemeCss(bgcolorId); + if (options.listen) miniTheme.listen(options); + }, + + /** + * 构建主题样式 + * @param bgcolorId + * @returns {boolean} + */ + buildThemeCss: function (bgcolorId) { + if (!bgcolorId) { + return false; + } + var bgcolorData = miniTheme.config(bgcolorId); + var styleHtml = '/*头部右侧背景色 headerRightBg */\n' + + '.layui-layout-admin .layui-header {\n' + + ' background-color: ' + bgcolorData.headerRightBg + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧选中背景色 headerRightBgThis */\n' + + '.layui-layout-admin .layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover {\n' + + ' background-color: ' + bgcolorData.headerRightBgThis + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧字体颜色 headerRightColor */\n' + + '.layui-layout-admin .layui-header .layui-nav .layui-nav-item a {\n' + + ' color: ' + bgcolorData.headerRightColor + ';\n' + + '}\n' + + '/**头部右侧下拉字体颜色 headerRightChildColor */\n' + + '.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child a {\n' + + ' color: ' + bgcolorData.headerRightChildColor + '!important;\n' + + '}\n'+ + '\n' + + '/*头部右侧鼠标选中 headerRightColorThis */\n' + + '.layui-header .layuimini-menu-header-pc.layui-nav .layui-nav-item a:hover, .layui-header .layuimini-header-menu.layuimini-pc-show.layui-nav .layui-this a {\n' + + ' color: ' + bgcolorData.headerRightColorThis + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧更多下拉颜色 headerRightNavMore */\n' + + '.layui-header .layui-nav .layui-nav-more {\n' + + ' border-top-color: ' + bgcolorData.headerRightNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧更多下拉颜色 headerRightNavMore */\n' + + '.layui-header .layui-nav .layui-nav-mored, .layui-header .layui-nav-itemed > a .layui-nav-more {\n' + + ' border-color: transparent transparent ' + bgcolorData.headerRightNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/**头部右侧更多下拉配置色 headerRightNavMoreBg headerRightNavMoreColor */\n' + + '.layui-header .layui-nav .layui-nav-child dd.layui-this a, .layui-header .layui-nav-child dd.layui-this, .layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child .layui-this a {\n' + + ' background-color: ' + bgcolorData.headerRightNavMoreBg + ' !important;\n' + + ' color:' + bgcolorData.headerRightNavMoreColor + ' !important;\n' + + '}\n' + + '\n' + + '/*头部缩放按钮样式 headerRightToolColor */\n' + + '.layui-layout-admin .layui-header .layuimini-tool i {\n' + + ' color: ' + bgcolorData.headerRightToolColor + ';\n' + + '}\n' + + '\n' + + '/*logo背景颜色 headerLogoBg */\n' + + '.layui-layout-admin .layuimini-logo {\n' + + ' background-color: ' + bgcolorData.headerLogoBg + ' !important;\n' + + '}\n' + + '\n' + + '/*logo字体颜色 headerLogoColor */\n' + + '.layui-layout-admin .layuimini-logo h1 {\n' + + ' color: ' + bgcolorData.headerLogoColor + ';\n' + + '}\n' + + '\n' + + '/*左侧菜单更多下拉样式 leftMenuNavMore */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-more,.layuimini-menu-left-zoom.layui-nav .layui-nav-more {\n' + + ' border-top-color: ' + bgcolorData.leftMenuNavMore + ';\n' + + '}\n' + + '\n' + + '/*左侧菜单更多下拉样式 leftMenuNavMore */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more {\n' + + ' border-color: transparent transparent ' + bgcolorData.leftMenuNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单背景 leftMenuBg */\n' + + '.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul, .layuimini-menu-left-zoom > ul {\n' + + ' background-color: ' + bgcolorData.leftMenuBg + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单选中背景 leftMenuBgThis */\n' + + '.layuimini-menu-left .layui-nav-tree .layui-this, .layuimini-menu-left .layui-nav-tree .layui-this > a, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a, .layuimini-menu-left-zoom.layui-nav-tree .layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-this > a, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a {\n' + + ' background-color: ' + bgcolorData.leftMenuBgThis + ' !important\n' + + '}\n' + + '\n' + + '/*左侧菜单子菜单背景 leftMenuChildBg */\n' + + '.layuimini-menu-left .layui-nav-itemed > .layui-nav-child{\n' + + ' background-color: ' + bgcolorData.leftMenuChildBg + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单字体颜色 leftMenuColor */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-item a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a {\n' + + ' color: ' + bgcolorData.leftMenuColor + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单选中字体颜色 leftMenuColorThis */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-item a:hover, .layuimini-menu-left .layui-nav .layui-this a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a:hover, .layuimini-menu-left-zoom.layui-nav .layui-this a {\n' + + ' color:' + bgcolorData.leftMenuColorThis + ' !important;\n' + + '}\n' + + '\n' + + '/**tab选项卡选中颜色 tabActiveColor */\n' + + '.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active {\n' + + ' background-color: ' + bgcolorData.tabActiveColor + ';\n' + + '}\n'; + $('#layuimini-bg-color').html(styleHtml); + }, + + /** + * 构建主题选择html + * @param options + * @returns {string} + */ + buildBgColorHtml: function (options) { + options.bgColorDefault = options.bgColorDefault || 0; + var bgcolorId = parseInt(sessionStorage.getItem('layuiminiBgcolorId')); + if (isNaN(bgcolorId)) bgcolorId = options.bgColorDefault; + var bgColorConfig = miniTheme.config(); + var html = ''; + $.each(bgColorConfig, function (key, val) { + if (key === bgcolorId) { + html += '
  • \n'; + } else { + html += '
  • \n'; + } + html += '\n' + + '
    \n' + + '
    \n' + + '
    \n' + + '
  • '; + }); + return html; + }, + + /** + * 监听 + * @param options + */ + listen: function (options) { + $('body').on('click', '[data-bgcolor]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var clientHeight = (document.documentElement.clientHeight) - 60; + var bgColorHtml = miniTheme.buildBgColorHtml(options); + var html = '
    \n' + + '
    \n' + + '配色方案\n' + + '
    \n' + + '
    \n' + + '
      \n' + bgColorHtml + '
    \n' + + '
    \n' + + '
    \n' + + ' 开发文档\n' + + ' 开源地址\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, + success: function (index, layero) { + }, + end: function () { + $('.layuimini-select-bgcolor').removeClass('layui-this'); + } + }); + 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); + miniTheme.render({ + bgColorDefault: bgcolorId, + listen: false, + }); + }); + } + }; + + exports("miniTheme", miniTheme); + +}) +; \ No newline at end of file diff --git a/src/main/resources/static/js/lay-module/layuimini/miniTongji.js b/src/main/resources/static/js/lay-module/layuimini/miniTongji.js new file mode 100644 index 00000000..f0ca1016 --- /dev/null +++ b/src/main/resources/static/js/lay-module/layuimini/miniTongji.js @@ -0,0 +1,40 @@ +/** + * date:2020/03/01 + * author:Mr.Chung + * version:2.0 + * description:layuimini 统计框架扩展 + */ +layui.define(["jquery"], function (exports) { + var $ = layui.$; + + var miniTongji = { + + /** + * 初始化 + * @param options + */ + render: function (options) { + options.specific = options.specific || false; + options.domains = options.domains || []; + var domain = window.location.hostname; + if (options.specific === false || (options.specific === true && options.domains.indexOf(domain) >=0)) { + miniTongji.listen(); + } + }, + + /** + * 监听统计代码 + */ + listen: function () { + var _hmt = _hmt || []; + (function () { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?d97abf6d61c21d773f97835defbdef4e"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); + })(); + } + }; + + exports("miniTongji", miniTongji); +}); \ No newline at end of file diff --git a/src/main/resources/static/js/lay-module/step-lay/step.css b/src/main/resources/static/js/lay-module/step-lay/step.css new file mode 100644 index 00000000..cc5e2ce6 --- /dev/null +++ b/src/main/resources/static/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/src/main/resources/static/js/lay-module/step-lay/step.js b/src/main/resources/static/js/lay-module/step-lay/step.js new file mode 100644 index 00000000..82eee8be --- /dev/null +++ b/src/main/resources/static/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, position) { + var stepDiv = '
    '; + for (var i = 0; i < stepItems.length; i++) { + stepDiv += '
    '; + // 线 + if (i < (stepItems.length - 1)) { + if (i < position) { + stepDiv += '
    '; + } else { + stepDiv += '
    '; + } + } + + // 数字 + var number = stepItems[i].number; + if (!number) { + number = i + 1; + } + if (i == position) { + stepDiv += '
    ' + number + '
    '; + } else if (i < position) { + 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, param.position||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/src/main/resources/static/js/lay-module/tableSelect/tableSelect.js b/src/main/resources/static/js/lay-module/tableSelect/tableSelect.js new file mode 100644 index 00000000..84acc3db --- /dev/null +++ b/src/main/resources/static/js/lay-module/tableSelect/tableSelect.js @@ -0,0 +1,272 @@ +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.height || 315; + + //最小宽度 + opt.width = opt.width || '530'; + + //多搜索条件 + opt.searchType = opt.searchType || 'one'; + opt.searchList = opt.searchList || [{key: opt.searchKey, placeholder: opt.searchPlaceholder}]; + + 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 += '
    '; + + //判断是否多搜索条件 + if(opt.searchType == 'more'){ + $.each(opt.searchList, function (index, item) { + tableBox += ''; + }); + }else{ + 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/src/main/resources/static/js/lay-module/wangEditor/fonts/w-e-icon.woff b/src/main/resources/static/js/lay-module/wangEditor/fonts/w-e-icon.woff new file mode 100644 index 0000000000000000000000000000000000000000..6dc5b5a33ab856629748dba686540870da73e89f GIT binary patch literal 6224 zcmb7IeQX@Zb)VV2+r97G<=yU)Jo0qM<$aOj*WK+MCGle&NwjHEG$lu}h5Cb(OiOYk zQj+Odb|YgEB!N-?5y5Q@7-?amEf50*niz>Kw*`!C>*kNdfAo(g`NM5P#f1^dMQaCj zVj#R_f3v%kjvo||$-n@D9=FOY;-rlnhOid9=P}=86*lB(2eW&ukgF_WUXaHmL ztj62ozEkHHE&z8174xXCf7+&}7oG-=I|mv@%c^wx+;dL?w?atU$E?2ar|OY2iwjQ> zqM(vGtI~H5_nrX~xIaU`msRmy{`#5oE0=+@(EkRjmqq@+&Mlt;oq7O$r`~hlLHqo| zWvr{d2wc{wyUANi3+ESsdmXZUi`7@}5B~1L^3#x`efTCF4~XaggI*u#IWhLvpomBvJVT{3Dcr&Ul;v>I8TL+zw zsK8~{h4tuq+xorhPp&_^{Xy`I$0g1_gB5(-J<&aU0593hQ8j;frOgSoxnXt|3Z1<3Hb+aPQC5v6S);^Q;{ou*D0DW7LxuO6OEKDfo5^ZfFhz)CKpumP zk}=3qC}N`ptw)SeQNY6*C7H_5l!}Kn)k}Utf9Wk>(oIie0dM z;AZd!&MZxe*oV6TPx6uBR$2KiRVqn=BVXFL_o0rCO676|1+R{dhxYFK(%gj$bEv%K zb}wJK^4>it?_Ifa*_~h$hX6!aj0xbJY5&cY#iE=mPS9$_(V3ET^_kkHG>s#ArSeF* zti3|btNKfGa|fr+W-`HGPkVdjSSgzwh(t=ImmYicDc%f)i|H=y72CX88_Q(QP92=< zFO{dWxz2g5zyD;tzUQe&AA6}(YLTUnkc4+|4fj;_nxh67QA*6o;?roWhkw9a?o?4w7HKCfx!@L(Vj;^-F=5F!x6^A|i35#eOgP0EDib4pJ3YEjm7 zO;0FQMbjIAs)_;Stzx-VQjChuw!&Kv9x} z|AjPp1&#}?p34WRCTlV%Hk@k0XX9zk(=5%dnTBD(gA(kYX6?02jIhFy%;tOiFZmym zDtUt4vO*D0tx=z(?3OX-q$WinPK6$zCuyDeC9Q`cl58YKHQf7~bLtf!ov{pNg9+#v zH=sQ}m_XkSB?4L-ie_miMn+C(Zs+0n?sz=@aJihUc6C*gR=FIH!&ctDD?z+py2Xkf z2#CD{1CI?1^jbane2)h|BuVjpFkUGq6$N}(%9tev>=*A&5s%;E#dL)X!?TGrX^;oW zXaHclotK;YeTqPxI+?o>gjYLB{79yNmFvpJ(kZ zV+RF6k)-7Qy?c+hcXYHL-@A8zQj!!w_^lTcz34fLJZ+o)_A_g1je}kQ^fbwPer(IP zw)*>oSQJxYs*!3G8^5>^PCMS1-)YC(>eg(q!7W-ueEbgLBRmss&rJhR ztAiAoMPpbLIK+D;m#8+hhI1<#G0JBToSC}#;Fr&Lrl;={qKo%S(xI`j6LkFCk9PmO zHgK#kIM?1i&VOIZbT3Ry-g9_gxX^fYnZNRa{m<`iu#&RVt|Nae|}3!azIs_cgPt?(uT!7dA& z41%xD{4#`hvkEtpFw^Z_)1}gMS9{tfEC%qVJwH~{XVp|noz-h&bk&~EjHcSt>GsrU z#$Gkqx^R$K7qsk)iYgj))JHWP+OwfF!=wgAkpdb9l0eX-I62C=L!Y702=j_?iZFmG zvP~qL$Ti`hkpa3k;d)k(Y8XIH%81mIk9?%4`ta_H6B8GA59{Wo+1X2%W^F=ub3Qt( ze{N*oQa=*n?t6OllfAiK{7&k%nVDK`#-Kb!=XP{%7es}@Y>R7gWa4S2;RHfx12x~$ z@(EZiD&=#$hRTA6WjQg#Z6v8lq^!i5Qqz!l1~yFzLTwcesXRpvPt6U&@^zMx5)!(p zGdHd?8B&mfopceB$T^wnIi;KCbPD6uP+7cp;y&=~tf5T>YHz|~SR{i%yA9_dHk_9A zSTfI>O~`F{wr(NfGx048nYsme;Mct~yd@7|F_k@AnFedI;)Y{N%$&BuEDXaiaerVJ zcr#Wz@=JOAc&~N%SvT{OojC5u&+qZs%1Ru5w^9!KE;3RwNhY}uxev*1cnlV@wVok- zldw0wh$iu|!ru5Y+J&zX_Qq9@<1=Dtu7E zJ0L;P1ksQ01u$S!w4B2m?xZkIofR0Rv(7F!6|6?{f;G@6A{6=TGVCM_zbi-xvMkxUKuBB8pSo%Je;M(kK?g*WB zSNwv${Rdok^MhzO#N-Kuqui7G{T$~%)*BG~%@2lqu)QHJ>lfGt{PPOZs<<)_$>CQ; zGRrB+m!hq{@-B(KY%UbL=Z$_h|B`n zp|A%c0G$KAo4QAf<8=hwfn2WXc#4>{^=vU@hl^ALHtlg>pW`lD$6lPJ*d(_4?ZhG^ zz=ykQUa2h({6BP5E1eycYDY9621C(^EQQ*rsMs&4P-Czy5sO8_q8Ll-dT0B{NPAQi zgTZh_iU->$M>!sr6KIp8(GVl*WJJRw?J*FAB2h^SB&isuS7RbghEl0G@G&gc(J?a8 z0XP(jMkP6rOa^5+=5iqHb3YP}%fTR}JnxSjSc~{s`>#i$0u~Ge+TxL@LllY0fgmK{ z{n3Lt`Y&8G8VJNo-@B(cijYi^fAb{CIWbUnqNU0ckYc2v3K~z0%9tq`y=mX6U z4@3lxqrrfTQ71>)yvA?x*Wl~-;K*IoAv5xh1)hfDNa1E&lyd+;IM>*@#hxkf-zjA> zo$t&v4&GO*>GXWA-25z6C=O9>X66s?t=DroN%kd>g0{)QR3P4#P?YZOOs33VOLvxf ztM;o?u#4&GVR~p+^Ns#pyP~D%56^U_2Z#3VJ;29f;czIV=F^?B918n<9Bk7mpMLZ| zA3Yu)`;>%zPXA}``W|M0+iqUN*SLi)yI*c$X_STk6ycH)aW{SJOKf||xtv@io5uPr z)oOtm-e~D(THr+wX7sF@En}n==JR9{mGJKn5qOPv|9NEbI7u>OhWrWnjMnMb=s$9G zZiRb?`xXC!FXMaB_ha9${Wbpu|BL=Lp+|U1cv<*6;XlQaxEAOOb_FjxJIj$Dx^exc z23mI;BY)%VpThsJ8_x>!Me`oaB5&P;eSn|wU_bIO#e)Ul4|#A1{_Bqj{)P1gfr(+n zg*m{dJ(veP?!i95U-Mu;^4hEi3&0=s;1K>b{HwF4md`IQFOjq46j>(cQJ2Zm@x@C| zpIu(cjtmZy<7AOsB2R+=1K=|PKRSHJS$9MpT|E8FxrIwubP<9+L(Y)}a_NqgQ_D*$ z+0%= 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,d09GRgABAAAAABhQAAsAAAAAGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIPBGNtYXAAAAFoAAABBAAAAQQrSf4BZ2FzcAAAAmwAAAAIAAAACAAAABBnbHlmAAACdAAAEvAAABLwfpUWUWhlYWQAABVkAAAANgAAADYQp00kaGhlYQAAFZwAAAAkAAAAJAfEA+FobXR4AAAVwAAAAIQAAACEeAcD7GxvY2EAABZEAAAARAAAAERBSEX+bWF4cAAAFogAAAAgAAAAIAAsALZuYW1lAAAWqAAAAYYAAAGGmUoJ+3Bvc3QAABgwAAAAIAAAACAAAwAAAAMD3gGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8fwDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEAOgAAAA2ACAABAAWAAEAIOkG6Q3pEulH6Wbpd+m56bvpxunL6d/qDepc6l/qZepo6nHqefAN8BTxIPHc8fz//f//AAAAAAAg6QbpDekS6UfpZel36bnpu+nG6cvp3+oN6lzqX+pi6mjqcep38A3wFPEg8dzx/P/9//8AAf/jFv4W+Bb0FsAWoxaTFlIWURZHFkMWMBYDFbUVsxWxFa8VpxWiEA8QCQ7+DkMOJAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACAAD/wAQAA8AABAATAAABNwEnAQMuAScTNwEjAQMlATUBBwGAgAHAQP5Anxc7MmOAAYDA/oDAAoABgP6ATgFAQAHAQP5A/p0yOxcBEU4BgP6A/YDAAYDA/oCAAAQAAAAABAADgAAQACEALQA0AAABOAExETgBMSE4ATEROAExITUhIgYVERQWMyEyNjURNCYjBxQGIyImNTQ2MzIWEyE1EwEzNwPA/IADgPyAGiYmGgOAGiYmGoA4KCg4OCgoOED9AOABAEDgA0D9AAMAQCYa/QAaJiYaAwAaJuAoODgoKDg4/biAAYD+wMAAAAIAAABABAADQAA4ADwAAAEmJy4BJyYjIgcOAQcGBwYHDgEHBhUUFx4BFxYXFhceARcWMzI3PgE3Njc2Nz4BNzY1NCcuAScmJwERDQED1TY4OXY8PT8/PTx2OTg2CwcICwMDAwMLCAcLNjg5djw9Pz89PHY5ODYLBwgLAwMDAwsIBwv9qwFA/sADIAgGBggCAgICCAYGCCkqKlktLi8vLi1ZKiopCAYGCAICAgIIBgYIKSoqWS0uLy8uLVkqKin94AGAwMAAAAAAAgDA/8ADQAPAABsAJwAAASIHDgEHBhUUFx4BFxYxMDc+ATc2NTQnLgEnJgMiJjU0NjMyFhUUBgIAQjs6VxkZMjJ4MjIyMngyMhkZVzo7QlBwcFBQcHADwBkZVzo7Qnh9fcxBQUFBzH19eEI7OlcZGf4AcFBQcHBQUHAAAAEAAAAABAADgAArAAABIgcOAQcGBycRISc+ATMyFx4BFxYVFAcOAQcGBxc2Nz4BNzY1NCcuAScmIwIANTIyXCkpI5YBgJA1i1BQRUZpHh4JCSIYGB5VKCAgLQwMKCiLXl1qA4AKCycbHCOW/oCQNDweHmlGRVArKClJICEaYCMrK2I2NjlqXV6LKCgAAQAAAAAEAAOAACoAABMUFx4BFxYXNyYnLgEnJjU0Nz4BNzYzMhYXByERByYnLgEnJiMiBw4BBwYADAwtICAoVR4YGCIJCR4eaUZFUFCLNZABgJYjKSlcMjI1al1eiygoAYA5NjZiKysjYBohIEkpKCtQRUZpHh48NJABgJYjHBsnCwooKIteXQAAAAACAAAAQAQBAwAAJgBNAAATMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgEhMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgHhLikpPRESEhE9KSkuLikpPRESASMjelJRXUB1LQkQBwgSAkkuKSk9ERISET0pKS4uKSk9ERIBIyN6UlFdQHUtCRAHCBICABIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCARIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCAQAABgBA/8AEAAPAAAMABwALABEAHQApAAAlIRUhESEVIREhFSEnESM1IzUTFTMVIzU3NSM1MxUVESM1MzUjNTM1IzUBgAKA/YACgP2AAoD9gMBAQECAwICAwMCAgICAgIACAIACAIDA/wDAQP3yMkCSPDJAku7+wEBAQEBAAAYAAP/ABAADwAADAAcACwAXACMALwAAASEVIREhFSERIRUhATQ2MzIWFRQGIyImETQ2MzIWFRQGIyImETQ2MzIWFRQGIyImAYACgP2AAoD9gAKA/YD+gEs1NUtLNTVLSzU1S0s1NUtLNTVLSzU1SwOAgP8AgP8AgANANUtLNTVLS/61NUtLNTVLS/61NUtLNTVLSwADAAAAAAQAA6AAAwANABQAADchFSElFSE1EyEVITUhJQkBIxEjEQAEAPwABAD8AIABAAEAAQD9YAEgASDggEBAwEBAAQCAgMABIP7g/wABAAAAAAACAB7/zAPiA7QAMwBkAAABIiYnJicmNDc2PwE+ATMyFhcWFxYUBwYPAQYiJyY0PwE2NCcuASMiBg8BBhQXFhQHDgEjAyImJyYnJjQ3Nj8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFxYUBwYPAQ4BIwG4ChMIIxISEhIjwCNZMTFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PCBMKuDFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PDysQIxISEhIjwCNZMQFECAckLS1eLS0kwCIlJSIkLS1eLS0kVxAQDysPWCl0KRQVFRTAKXQpDysQBwj+iCUiJC0tXi0tJFcQEA8rD1gpdCkUFRUUwCl0KQ8rEA8PJC0tXi0tJMAiJQAAAAAFAAD/wAQAA8AAGwA3AFMAXwBrAAAFMjc+ATc2NTQnLgEnJiMiBw4BBwYVFBceARcWEzIXHgEXFhUUBw4BBwYjIicuAScmNTQ3PgE3NhMyNz4BNzY3BgcOAQcGIyInLgEnJicWFx4BFxYnNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMVisrKlEmJiMFHBtWODc/Pzc4VhscBSMmJlEqK9UlGxslJRsbJQGAJRsbJSUbGyVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoA6AhIHFMTFZWTExxICEhIHFMTFZWTExxICH+CQYGFRAQFEM6OlYYGRkYVjo6QxQQEBUGBvcoODgoKDg4KCg4OCgoODgAAAMAAP/ABAADwAAbADcAQwAAASIHDgEHBhUUFx4BFxYzMjc+ATc2NTQnLgEnJgMiJy4BJyY1NDc+ATc2MzIXHgEXFhUUBw4BBwYTBycHFwcXNxc3JzcCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMSqCgYKCgYKCgYKCgA8AoKIteXWpqXV6LKCgoKIteXWpqXV6LKCj8YCEgcUxMVlZMTHEgISEgcUxMVlZMTHEgIQKgoKBgoKBgoKBgoKAAAQBl/8ADmwPAACkAAAEiJiMiBw4BBwYVFBYzLgE1NDY3MAcGAgcGBxUhEzM3IzceATMyNjcOAQMgRGhGcVNUbRobSUgGDWVKEBBLPDxZAT1sxizXNC1VJi5QGB09A7AQHh1hPj9BTTsLJjeZbwN9fv7Fj5AjGQIAgPYJDzdrCQcAAAAAAgAAAAAEAAOAAAkAFwAAJTMHJzMRIzcXIyURJyMRMxUhNTMRIwcRA4CAoKCAgKCggP8AQMCA/oCAwEDAwMACAMDAwP8AgP1AQEACwIABAAADAMAAAANAA4AAFgAfACgAAAE+ATU0Jy4BJyYjIREhMjc+ATc2NTQmATMyFhUUBisBEyMRMzIWFRQGAsQcIBQURi4vNf7AAYA1Ly5GFBRE/oRlKjw8KWafn58sPj4B2yJULzUvLkYUFPyAFBRGLi81RnQBRks1NUv+gAEASzU1SwAAAAACAMAAAANAA4AAHwAjAAABMxEUBw4BBwYjIicuAScmNREzERQWFx4BMzI2Nz4BNQEhFSECwIAZGVc6O0JCOzpXGRmAGxgcSSgoSRwYG/4AAoD9gAOA/mA8NDVOFhcXFk41NDwBoP5gHjgXGBsbGBc4Hv6ggAAAAAABAIAAAAOAA4AACwAAARUjATMVITUzASM1A4CA/sCA/kCAAUCAA4BA/QBAQAMAQAABAAAAAAQAA4AAPQAAARUjHgEVFAYHDgEjIiYnLgE1MxQWMzI2NTQmIyE1IS4BJy4BNTQ2Nz4BMzIWFx4BFSM0JiMiBhUUFjMyFhcEAOsVFjUwLHE+PnEsMDWAck5OcnJO/gABLAIEATA1NTAscT4+cSwwNYByTk5yck47bisBwEAdQSI1YiQhJCQhJGI1NExMNDRMQAEDASRiNTViJCEkJCEkYjU0TEw0NEwhHwAAAAcAAP/ABAADwAADAAcACwAPABMAGwAjAAATMxUjNzMVIyUzFSM3MxUjJTMVIwMTIRMzEyETAQMhAyMDIQMAgIDAwMABAICAwMDAAQCAgBAQ/QAQIBACgBD9QBADABAgEP2AEAHAQEBAQEBAQEBAAkD+QAHA/oABgPwAAYD+gAFA/sAAAAoAAAAABAADgAADAAcACwAPABMAFwAbAB8AIwAnAAATESERATUhFR0BITUBFSE1IxUhNREhFSElIRUhETUhFQEhFSEhNSEVAAQA/YABAP8AAQD/AED/AAEA/wACgAEA/wABAPyAAQD/AAKAAQADgPyAA4D9wMDAQMDAAgDAwMDA/wDAwMABAMDA/sDAwMAAAAUAAAAABAADgAADAAcACwAPABMAABMhFSEVIRUhESEVIREhFSERIRUhAAQA/AACgP2AAoD9gAQA/AAEAPwAA4CAQID/AIABQID/AIAAAAAABQAAAAAEAAOAAAMABwALAA8AEwAAEyEVIRchFSERIRUhAyEVIREhFSEABAD8AMACgP2AAoD9gMAEAPwABAD8AAOAgECA/wCAAUCA/wCAAAAFAAAAAAQAA4AAAwAHAAsADwATAAATIRUhBSEVIREhFSEBIRUhESEVIQAEAPwAAYACgP2AAoD9gP6ABAD8AAQA/AADgIBAgP8AgAFAgP8AgAAAAAABAD8APwLmAuYALAAAJRQPAQYjIi8BBwYjIi8BJjU0PwEnJjU0PwE2MzIfATc2MzIfARYVFA8BFxYVAuYQThAXFxCoqBAXFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBDDFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBAQThAXFxCoqBAXAAAABgAAAAADJQNuABQAKAA8AE0AVQCCAAABERQHBisBIicmNRE0NzY7ATIXFhUzERQHBisBIicmNRE0NzY7ATIXFhcRFAcGKwEiJyY1ETQ3NjsBMhcWExEhERQXFhcWMyEyNzY3NjUBIScmJyMGBwUVFAcGKwERFAcGIyEiJyY1ESMiJyY9ATQ3NjsBNzY3NjsBMhcWHwEzMhcWFQElBgUIJAgFBgYFCCQIBQaSBQUIJQgFBQUFCCUIBQWSBQUIJQgFBQUFCCUIBQVJ/gAEBAUEAgHbAgQEBAT+gAEAGwQGtQYEAfcGBQg3Ghsm/iUmGxs3CAUFBQUIsSgIFxYXtxcWFgkosAgFBgIS/rcIBQUFBQgBSQgFBgYFCP63CAUFBQUIAUkIBQYGBQj+twgFBQUFCAFJCAUGBgX+WwId/eMNCwoFBQUFCgsNAmZDBQICBVUkCAYF/eMwIiMhIi8CIAUGCCQIBQVgFQ8PDw8VYAUFCAACAAcASQO3Aq8AGgAuAAAJAQYjIi8BJjU0PwEnJjU0PwE2MzIXARYVFAcBFRQHBiMhIicmPQE0NzYzITIXFgFO/vYGBwgFHQYG4eEGBh0FCAcGAQoGBgJpBQUI/dsIBQUFBQgCJQgFBQGF/vYGBhwGCAcG4OEGBwcGHQUF/vUFCAcG/vslCAUFBQUIJQgFBQUFAAAAAQAjAAAD3QNuALMAACUiJyYjIgcGIyInJjU0NzY3Njc2NzY9ATQnJiMhIgcGHQEUFxYXFjMWFxYVFAcGIyInJiMiBwYjIicmNTQ3Njc2NzY3Nj0BETQ1NDU0JzQnJicmJyYnJicmIyInJjU0NzYzMhcWMzI3NjMyFxYVFAcGIwYHBgcGHQEUFxYzITI3Nj0BNCcmJyYnJjU0NzYzMhcWMzI3NjMyFxYVFAcGByIHBgcGFREUFxYXFhcyFxYVFAcGIwPBGTMyGhkyMxkNCAcJCg0MERAKEgEHFf5+FgcBFQkSEw4ODAsHBw4bNTUaGDExGA0HBwkJCwwQDwkSAQIBAgMEBAUIEhENDQoLBwcOGjU1GhgwMRgOBwcJCgwNEBAIFAEHDwGQDgcBFAoXFw8OBwcOGTMyGRkxMRkOBwcKCg0NEBEIFBQJEREODQoLBwcOAAICAgIMCw8RCQkBAQMDBQxE4AwFAwMFDNRRDQYBAgEICBIPDA0CAgICDAwOEQgJAQIDAwUNRSEB0AINDQgIDg4KCgsLBwcDBgEBCAgSDwwNAgICAg0MDxEICAECAQYMULYMBwEBBwy2UAwGAQEGBxYPDA0CAgICDQwPEQgIAQECBg1P/eZEDAYCAgEJCBEPDA0AAAIAAP+3A/8DtwATADkAAAEyFxYVFAcCBwYjIicmNTQ3ATYzARYXFh8BFgcGIyInJicmJyY1FhcWFxYXFjMyNzY3Njc2NzY3NjcDmygeHhq+TDdFSDQ0NQFtISn9+BcmJy8BAkxMe0c2NiEhEBEEExQQEBIRCRcIDxITFRUdHR4eKQO3GxooJDP+mUY0NTRJSTABSx/9sSsfHw0oek1MGhsuLzo6RAMPDgsLCgoWJRsaEREKCwQEAgABAAAAAAAA9evv618PPPUACwQAAAAAANbEBFgAAAAA1sQEWAAA/7cEAQPAAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAD//wQBAAEAAAAAAAAAAAAAAAAAAAAhBAAAAAAAAAAAAAAAAgAAAAQAAAAEAAAABAAAAAQAAMAEAAAABAAAAAQAAAAEAABABAAAAAQAAAAEAAAeBAAAAAQAAAAEAABlBAAAAAQAAMAEAADABAAAgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMlAD8DJQAAA74ABwQAACMD/wAAAAAAAAAKABQAHgBMAJQA+AE2AXwBwgI2AnQCvgLoA34EHgSIBMoE8gU0BXAFiAXgBiIGagaSBroG5AcoB+AIKgkcCXgAAQAAACEAtAAKAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) 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(""),j=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",totalRowName:"totalRow",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=j.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+v),o=e.elem=t(i(E).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(N),e.layTotal=o.find(A),e.layPage=o.find(L),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="string"==typeof t?r[t]: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,i){var a=this;e=e||{},delete a.haveInit,e.data&&e.data.constructor===Array&&delete a.config.data,a.config=t.extend(i,{},a.config,e),a.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(),"function"==typeof a.error&&a.error(e,t)}})}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,"object"==typeof a.totalRow&&(c[n.totalRowName]=t.extend({},a.totalRow)),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=e[s.response.totalRowName],v=[],m=[],g=[],b=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=[],h=[],p=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,v=s.index+"-"+r.key,m=l[c];if(void 0!==m&&null!==m||(m=""),!r.colGroup){var g=['','
        '+function(){var n=t.extend(!0,{LAY_INDEX:p},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return p}return r.toolbar?i(t(r.toolbar).html()||"").render(n):u(r,m,n)}(),"
        "].join("");o.push(g),r.fixed&&"right"!==r.fixed&&y.push(g),"right"===r.fixed&&h.push(g)}}),v.push(''+o.join("")+""),m.push(''+y.join("")+""),g.push(''+h.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+p).remove(),c.layMain.find("tbody").html(v.join("")),c.layFixLeft.find("tbody").html(m.join("")),c.layFixRight.find("tbody").html(g.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),0===y.length?(c.renderForm(),c.errorView(s.text.none)):(c.layFixed.removeClass(f),r?b():(b(),c.renderTotal(y,h),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,a){var l=this,n=l.config,o={};if(n.totalRow){layui.each(e,function(e,t){0!==t.length&&l.eachCols(function(e,i){var a=i.field||e,l=t[a];i.totalRow&&(o[a]=(o[a]||0)+(parseFloat(l)||0))})}),l.dataTotal={};var r=[];l.eachCols(function(e,d){var c=d.field||e,s=function(){var e=d.totalRowText||"",t=parseFloat(o[c]).toFixed(2),i={};return i[c]=t,t=u(d,t,i),a?a[d.field]||e:d.totalRow?t||e:e}(),y=['','
        '+function(){var e=d.totalRow||n.totalRow;return"string"==typeof e?i(e).render(t.extend({TOTAL_NUMS:s},d)):s}(),"
        "].join("");d.field&&(l.dataTotal[c]=s),r.push(y)}),l.layTotal.find("tbody").html(""+r.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&&(n=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){o.error("Table modules: sort field '"+n+"' not matched")}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=j.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,i=this,a=i.config,o=t("body"),c={},s=i.layHeader.find("th"),h=".layui-table-cell",p=a.elem.attr("lay-filter");i.layTool.on("click","*[lay-event]",function(e){var o=t(this),c=o.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
          ');n.html(l),a.height&&n.css("max-height",a.height-(i.layTool.outerHeight()||50)),o.find(".layui-table-tool-panel")[0]||o.append(n),i.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(i.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return i.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 l=t(e.elem),n=this.checked,o=l.data("key"),r=l.data("parentkey");layui.each(a.cols,function(e,t){layui.each(t,function(t,l){if(e+"-"+t===o){var d=l.hide;l.hide=!n,i.elem.find('*[data-key="'+a.index+"-"+o+'"]')[n?"removeClass":"addClass"](f),d!=l.hide&&i.setParentCol(!n,r),i.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
        • 导出到 Csv 文件
        • ','
        • 导出到 Excel 文件
        • '].join("")}(),done:function(e,l){l.on("click",function(){var e=t(this).data("type");d.exportFile.call(i,a.id,null,e)})}});break;case"LAYTABLE_PRINT":var u=window.open("打印窗口","_blank"),h=[""].join(""),v=t(i.layHeader.html());v.append(i.layMain.find("table").html()),v.append(i.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:a},{}))}),s.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var l=t(this);if(c.allowResize){var n=l.data("key");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],i.getCssRule(n,function(e){var t=e.style.width||l.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=l.data("minwidth")||a.cellMinWidth})}}),F.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var a=c.ruleWidth+t.clientX-c.offset[0];a');return n[0].value=i.data("content")||l.text(),i.find("."+R)[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('
          ')}};i.layBody.on("click","."+g,function(e){var n=t(this),o=n.parent(),d=o.children(h);i.tipsIndex=l.tips(['
          ',d.html(),"
          ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:i.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)}),i.layBody.on("click","*[lay-event]",function(){var e=t(this),a=e.parents("tr").eq(0).data("index");layui.event.call(this,y,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),i.setThisRowChecked(a)}),i.layMain.on("scroll",function(){var e=t(this),a=e.scrollLeft(),n=e.scrollTop();i.layHeader.scrollLeft(a),i.layTotal.scrollLeft(a),i.layFixed.find(k).scrollTop(n),l.close(i.tipsIndex)}),j.on("resize",function(){i.resize()})},function(){F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()})}(),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,"error")}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.getData=function(e){var t=[],i=d.cache[e]||[];return layui.each(i,function(e,i){i.constructor!==Array&&t.push(d.clearCacheKey(i))}),t},d.exportFile=function(e,t,i){var a=this;t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var l=c.config[e]||{},n={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],s=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(s.href="data:"+n+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],l=[],n=[];return layui.each(t,function(t,a){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(a),function(e,t){n.push('"'+(t||"")+'"')})):d.eachCols(e,function(e,l){if(l.field&&"normal"==l.type&&!l.hide){var o=a[l.field];void 0!==o&&null!==o||(o=""),0==t&&i.push(l.title||""),n.push('"'+u(l,o,a,"text")+'"')}}),l.push(n.join(","))}),layui.each(a.dataTotal,function(e,t){n.push(t)}),i.join(",")+"\r\n"+l.join("\r\n")+"\r\n"+n.join(",")}()),s.download=(l.title||"table_"+(l.index||""))+"."+i,document.body.appendChild(s),s.click(),void document.body.removeChild(s))},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,i){var a=s(e);if(a){var l=c.that[e];return l.reload(t,i),c.call(l)}},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):al.length&&(l.value=l.length),parseInt(l.value)!==l.value&&(l.half||(l.value=Math.ceil(l.value)-l.value<.5?Math.ceil(l.value):Math.floor(l.value)));for(var n='
            ",s=1;s<=l.length;s++){var r='
          • ";l.half&&parseInt(l.value)!==l.value&&s==Math.ceil(l.value)?n=n+'
          • ":n+=r}n+="
          "+(l.text?''+l.value+"星":"")+"";var c=l.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),l.span=e.elemTemp.next("span"),l.setText&&l.setText(l.value),c.html(e.elemTemp),c.addClass("layui-inline"),l.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,l=a.config;l.value=e,a.render()},v.prototype.action=function(){var e=this,l=e.config,i=e.elemTemp,n=i.find("i").width();i.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(l.value=t,l.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(l.value=l.value-.5)}l.text&&i.next("span").text(l.value+"星"),l.choose&&l.choose(l.value),l.setText&&l.setText(l.value)}),v.on("mousemove",function(e){if(i.find("i").each(function(){a(this).addClass(o).removeClass(r)}),i.find("i:lt("+t+")").each(function(){a(this).addClass(u).removeClass(f)}),l.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(s).removeClass(u)}}),v.on("mouseleave",function(){i.find("i").each(function(){a(this).addClass(o).removeClass(r)}),i.find("i:lt("+Math.floor(l.value)+")").each(function(){a(this).addClass(u).removeClass(f)}),l.half&&parseInt(l.value)!==l.value&&i.children("li:eq("+Math.floor(l.value)+")").children("i").addClass(s).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},l.render=function(e){var a=new v(e);return i.call(a)},e(n,l)});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&&f.width()&&(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:["","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:''},L=new c;t(n,L)});layui.define("jquery",function(a){"use strict";var e=layui.$;a("code",function(a){var l=[];a=a||{},a.elem=e(a.elem||".layui-code"),a.lang="lang"in a?a.lang:"code",a.elem.each(function(){l.push(this)}),layui.each(l.reverse(),function(l,i){var t=e(i),c=t.html();(t.attr("lay-encode")||a.encode)&&(c=c.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),t.html('
          1. '+c.replace(/[\r\t\n]+/g,"
          2. ")+"
          "),t.find(">.layui-code-h3")[0]||t.prepend('

          '+(t.attr("lay-title")||a.title||"</>")+''+(t.attr("lay-lang")||a.lang||"")+"

          ");var n=t.find(">.layui-code-ol");t.addClass("layui-box layui-code-view"),(t.attr("lay-skin")||a.skin)&&t.addClass("layui-code-"+(t.attr("lay-skin")||a.skin)),(n.find("li").length/100|0)>0&&n.css("margin-left",(n.find("li").length/100|0)+"px"),(t.attr("lay-height")||a.height)&&n.css("max-height",t.attr("lay-height")||a.height)})})}).addcss("modules/code.css?v=1","skincodecss"); \ No newline at end of file diff --git a/src/main/resources/templates/404.html b/src/main/resources/templates/404.html new file mode 100644 index 00000000..ced95fd5 --- /dev/null +++ b/src/main/resources/templates/404.html @@ -0,0 +1,110 @@ + + + + + 404 + + + + + + + + + + +
          +
          +
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          OH! + +
          +
          +

          很抱歉,你访问的页面找不到了

          +
          +
          +
          + + + + \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html new file mode 100644 index 00000000..b8edffeb --- /dev/null +++ b/src/main/resources/templates/index.html @@ -0,0 +1,179 @@ + + + + + + 仓库管理系统 + + + + + + + + + + + + + + + + + + +
          + +
          + + +
          + +
          +
          + + +
            +
          + + + + + +
          +
          + + +
          +
          + + +
          +
          +
          + + +
          + + +
          + +
          + +
          +
            +
          • +
          +
          +
        • +
        • +
        • + +
        • +
          +
          +
          +
          +
          + +
          +
          + + + + + + + + diff --git a/src/main/resources/templates/index_back.html b/src/main/resources/templates/index_back.html new file mode 100644 index 00000000..ae149725 --- /dev/null +++ b/src/main/resources/templates/index_back.html @@ -0,0 +1,204 @@ + + + + + 仓库管理系统 + + + + + + + + + + + + + + + + + + +
          + +
          + + +
          + +
          +
          + + +
            +
          + + + + + +
          +
          + + +
          +
          + + +
          +
          +
          + + +
          + + +
          + +
          + +
          +
            +
          • +
          +
          +
        • +
        • +
        • + +
        • +
          +
          +
          +
          +
          + +
          +
          + + + + + + + + diff --git a/src/main/resources/templates/pages/application/application-in.html b/src/main/resources/templates/pages/application/application-in.html new file mode 100644 index 00000000..5396e056 --- /dev/null +++ b/src/main/resources/templates/pages/application/application-in.html @@ -0,0 +1,157 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-in_back.html b/src/main/resources/templates/pages/application/application-in_back.html new file mode 100644 index 00000000..f9934aa6 --- /dev/null +++ b/src/main/resources/templates/pages/application/application-in_back.html @@ -0,0 +1,172 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          + +
          +
          +
          +

          说明


          + 申请提交后,24小时内审核完毕 +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-out.html b/src/main/resources/templates/pages/application/application-out.html new file mode 100644 index 00000000..aeab24b5 --- /dev/null +++ b/src/main/resources/templates/pages/application/application-out.html @@ -0,0 +1,153 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          + +
          +
          +
          +

          说明


          + 申请提交后,24小时内审核完毕 +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-out_back.html b/src/main/resources/templates/pages/application/application-out_back.html new file mode 100644 index 00000000..bda3b663 --- /dev/null +++ b/src/main/resources/templates/pages/application/application-out_back.html @@ -0,0 +1,192 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          + +
          +
          +
          +

          说明


          + 申请提交后,24小时内审核完毕 +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-review.html b/src/main/resources/templates/pages/application/application-review.html new file mode 100644 index 00000000..6342ec2d --- /dev/null +++ b/src/main/resources/templates/pages/application/application-review.html @@ -0,0 +1,238 @@ + + + + + 任务审批 + + + + + + + + +
          +
          +
          +
          +
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          申请编号123456
          材料名称骁龙888芯片
          仓库名称外芯仓库
          数量数量
          金额金额
          状态状态
          申请人申请人
          请求提交时间1970-01-01 08:00:00
          申请备注申请备注
          部门负责人部门负责人
          +
          +
          +
          +
          +
          +
          + +
          + +
          +
          + +
          +
          + + +
          +
          +
          +
          + + + + +
          +
          +
          +

          说明


          + 申请提交后,24小时内审核完毕 +
          +
          + +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-transfer.html b/src/main/resources/templates/pages/application/application-transfer.html new file mode 100644 index 00000000..f5475588 --- /dev/null +++ b/src/main/resources/templates/pages/application/application-transfer.html @@ -0,0 +1,182 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          + +
          +
          +
          +

          说明


          + 申请提交后,24小时内审核完毕 +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-transfer_back.html b/src/main/resources/templates/pages/application/application-transfer_back.html new file mode 100644 index 00000000..e22166a0 --- /dev/null +++ b/src/main/resources/templates/pages/application/application-transfer_back.html @@ -0,0 +1,218 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          + +
          +
          +
          +

          说明


          + 申请提交后,24小时内审核完毕 +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/form-step-look.html b/src/main/resources/templates/pages/application/form-step-look.html new file mode 100644 index 00000000..7ec764d8 --- /dev/null +++ b/src/main/resources/templates/pages/application/form-step-look.html @@ -0,0 +1,83 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          申请编号123456
          材料名称骁龙888芯片
          仓库名称外芯仓库
          数量409
          金额2016-11-28
          提交人2016-11-28
          提交时间2016-11-28
          申请备注2016-11-28
          +
          +
          + +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/form-step-look_back.html b/src/main/resources/templates/pages/application/form-step-look_back.html new file mode 100644 index 00000000..ec8228bc --- /dev/null +++ b/src/main/resources/templates/pages/application/form-step-look_back.html @@ -0,0 +1,158 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          申请编号123456
          材料名称骁龙888芯片
          仓库名称外芯仓库
          数量409
          金额2016-11-28
          状态2016-11-28
          申请人2016-11-28
          请求提交时间2016-11-28
          申请备注备注
          部门负责人部门负责人
          +
          +
          + +
          +
          +
          +

          说明


          + 申请提交后,24小时内审核完毕 +
          +
          + +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/my-apply.html b/src/main/resources/templates/pages/application/my-apply.html new file mode 100644 index 00000000..13f11a99 --- /dev/null +++ b/src/main/resources/templates/pages/application/my-apply.html @@ -0,0 +1,152 @@ + + + + + layui + + + + + + + +
          +
          + 入库记录 + + + + + + + + +
          + 出库申请 + + + + + + + + +
          +
          +
          + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/my-apply_back.html b/src/main/resources/templates/pages/application/my-apply_back.html new file mode 100644 index 00000000..b7da0c8d --- /dev/null +++ b/src/main/resources/templates/pages/application/my-apply_back.html @@ -0,0 +1,102 @@ + + + + + layui + + + + + + + +
          +
          + 我的申请 +
          + + + + + + + + + +
          +
          + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/my-task.html b/src/main/resources/templates/pages/application/my-task.html new file mode 100644 index 00000000..4c3799c4 --- /dev/null +++ b/src/main/resources/templates/pages/application/my-task.html @@ -0,0 +1,179 @@ + + + + + layui + + + + + + + + +
          +
          + 未完成任务 +
          + + + + + + + + + +
          +
          +
          +
          + 已完成任务 +
          + + + + + + + + + +
          +
          + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/my-task_back.html b/src/main/resources/templates/pages/application/my-task_back.html new file mode 100644 index 00000000..fc62fa78 --- /dev/null +++ b/src/main/resources/templates/pages/application/my-task_back.html @@ -0,0 +1,184 @@ + + + + + layui + + + + + + + + +
          +
          + 未完成任务 +
          + + + + + + + + + +
          +
          +
          +
          + 已完成任务 +
          + + + + + + + + + + + +
          +
          + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/chart/chart-in.html b/src/main/resources/templates/pages/chart/chart-in.html new file mode 100644 index 00000000..95f1f8ec --- /dev/null +++ b/src/main/resources/templates/pages/chart/chart-in.html @@ -0,0 +1,375 @@ + + + + + 首页三 + + + + + + + + + + +
          + +
          +
          + +
          +
          转入材料数量
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          转入材料金额
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          购入材料数量
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          入库材料金额
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          + +
          + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          + + + + + + + diff --git a/src/main/resources/templates/pages/chart/chart-in_back.html b/src/main/resources/templates/pages/chart/chart-in_back.html new file mode 100644 index 00000000..fe6757f4 --- /dev/null +++ b/src/main/resources/templates/pages/chart/chart-in_back.html @@ -0,0 +1,620 @@ + + + + + 首页三 + + + + + + + + + + +
          + +
          +
          + +
          +
          转入材料数量
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          转入材料金额
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          购入材料数量
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          入库材料金额
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          + +
          + +
          +
          + + +
          +
          +
          +
          +
          +
          +
          + + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          + + + + + + + diff --git a/src/main/resources/templates/pages/chart/chart-out.html b/src/main/resources/templates/pages/chart/chart-out.html new file mode 100644 index 00000000..3d8f981d --- /dev/null +++ b/src/main/resources/templates/pages/chart/chart-out.html @@ -0,0 +1,365 @@ + + + + + 首页三 + + + + + + + + + + +
          + +
          +
          + +
          +
          转出材料数量
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          转出材料金额
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          购出材料数量
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          出库材料金额
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          + +
          + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          + + + + + + diff --git a/src/main/resources/templates/pages/chart/chart-out_back.html b/src/main/resources/templates/pages/chart/chart-out_back.html new file mode 100644 index 00000000..e68b0543 --- /dev/null +++ b/src/main/resources/templates/pages/chart/chart-out_back.html @@ -0,0 +1,623 @@ + + + + + 首页三 + + + + + + + + + + +
          + +
          +
          + +
          +
          转出材料数量
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          转出材料金额
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          出售材料数量
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          出库材料金额
          +
          +
          +
          + +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          + +
          + +
          +
          + + +
          +
          +
          +
          +
          +
          + + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          + + + + + + + diff --git a/src/main/resources/templates/pages/chart/chart-stock.html b/src/main/resources/templates/pages/chart/chart-stock.html new file mode 100644 index 00000000..d41c45d6 --- /dev/null +++ b/src/main/resources/templates/pages/chart/chart-stock.html @@ -0,0 +1,365 @@ + + + + + 首页三 + + + + + + + + + + +
          + +
          +
          + +
          +
          库存材料数量
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          库存材料金额
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          库存材料数量
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          +
          + +
          +
          库存材料金额
          +
          +
          +
          + 9,054,056 +
          +
          + 比昨天 ▲0.12
          + 比七日 ▼0.06 +
          +
          +
          +
          + +
          + +
          + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          + + + + + + diff --git a/src/main/resources/templates/pages/chart/chart-stock_back.html b/src/main/resources/templates/pages/chart/chart-stock_back.html new file mode 100644 index 00000000..bee05895 --- /dev/null +++ b/src/main/resources/templates/pages/chart/chart-stock_back.html @@ -0,0 +1,544 @@ + + + + + 首页三 + + + + + + + + + + +
          + +
          +
          + + +
          +
          +
          +
          +
          +
          + + +
          +
          +
          +
          +
          +
          +
          +
          + + +
          + + + + + + + diff --git a/src/main/resources/templates/pages/company/company-out.html b/src/main/resources/templates/pages/company/company-out.html new file mode 100644 index 00000000..9c0421c2 --- /dev/null +++ b/src/main/resources/templates/pages/company/company-out.html @@ -0,0 +1,206 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/company/company-out_back.html b/src/main/resources/templates/pages/company/company-out_back.html new file mode 100644 index 00000000..e2428cf2 --- /dev/null +++ b/src/main/resources/templates/pages/company/company-out_back.html @@ -0,0 +1,358 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + + + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/company/companyByParentId.html b/src/main/resources/templates/pages/company/companyByParentId.html new file mode 100644 index 00000000..bd5fa32a --- /dev/null +++ b/src/main/resources/templates/pages/company/companyByParentId.html @@ -0,0 +1,191 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/company/company_add.html b/src/main/resources/templates/pages/company/company_add.html new file mode 100644 index 00000000..d84ac9b0 --- /dev/null +++ b/src/main/resources/templates/pages/company/company_add.html @@ -0,0 +1,107 @@ + + + + + layui + + + + + + + +
          +
          +
          + 公司增加 +
          +
          +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/company/company_edit.html b/src/main/resources/templates/pages/company/company_edit.html new file mode 100644 index 00000000..1073417b --- /dev/null +++ b/src/main/resources/templates/pages/company/company_edit.html @@ -0,0 +1,62 @@ + + + + + 分步表单 + + + + + + + + + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/depository/table-in.html b/src/main/resources/templates/pages/depository/table-in.html new file mode 100644 index 00000000..a8cac6d5 --- /dev/null +++ b/src/main/resources/templates/pages/depository/table-in.html @@ -0,0 +1,267 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + + +
          +
          +
          + +
          +
          +
          +
          +
          + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/depository/table-out.html b/src/main/resources/templates/pages/depository/table-out.html new file mode 100644 index 00000000..25e1f58c --- /dev/null +++ b/src/main/resources/templates/pages/depository/table-out.html @@ -0,0 +1,276 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          + +
          +
          +
          +
          +
          + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/depository/table-stock.html b/src/main/resources/templates/pages/depository/table-stock.html new file mode 100644 index 00000000..ecee60a0 --- /dev/null +++ b/src/main/resources/templates/pages/depository/table-stock.html @@ -0,0 +1,127 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          + +
          +
          +
          +
          +
          + +
          +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/material/material-add.html b/src/main/resources/templates/pages/material/material-add.html new file mode 100644 index 00000000..cd2e4ed6 --- /dev/null +++ b/src/main/resources/templates/pages/material/material-add.html @@ -0,0 +1,174 @@ + + + + + layui + + + + + + + +
          +
          +
          + 材料创建 +
          +
          +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/material/material-out.html b/src/main/resources/templates/pages/material/material-out.html new file mode 100644 index 00000000..a195bed6 --- /dev/null +++ b/src/main/resources/templates/pages/material/material-out.html @@ -0,0 +1,430 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          +
          + +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + + + + +
          + + + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/material/material-view.html b/src/main/resources/templates/pages/material/material-view.html new file mode 100644 index 00000000..ca64937a --- /dev/null +++ b/src/main/resources/templates/pages/material/material-view.html @@ -0,0 +1,135 @@ + + + + + 分步表单 + + + + + + + + + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + + +
          +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/materialtype/materialTypeByParentId.html b/src/main/resources/templates/pages/materialtype/materialTypeByParentId.html new file mode 100644 index 00000000..a73f81ab --- /dev/null +++ b/src/main/resources/templates/pages/materialtype/materialTypeByParentId.html @@ -0,0 +1,259 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/materialtype/materialType_add.html b/src/main/resources/templates/pages/materialtype/materialType_add.html new file mode 100644 index 00000000..84cf2937 --- /dev/null +++ b/src/main/resources/templates/pages/materialtype/materialType_add.html @@ -0,0 +1,107 @@ + + + + + layui + + + + + + + +
          +
          +
          + 材料种类增加 +
          +
          +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/materialtype/materialType_edit.html b/src/main/resources/templates/pages/materialtype/materialType_edit.html new file mode 100644 index 00000000..24f889a1 --- /dev/null +++ b/src/main/resources/templates/pages/materialtype/materialType_edit.html @@ -0,0 +1,94 @@ + + + + + 分步表单 + + + + + + + + + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + + +
          +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/materialtype/materialType_view.html b/src/main/resources/templates/pages/materialtype/materialType_view.html new file mode 100644 index 00000000..935ec50d --- /dev/null +++ b/src/main/resources/templates/pages/materialtype/materialType_view.html @@ -0,0 +1,508 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + + + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/other/notice-edit.html b/src/main/resources/templates/pages/other/notice-edit.html new file mode 100644 index 00000000..eb6bbcac --- /dev/null +++ b/src/main/resources/templates/pages/other/notice-edit.html @@ -0,0 +1,86 @@ + + + + + layui + + + + + + + + +
          +
          +
          + 公告发布 +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/other/setting.html b/src/main/resources/templates/pages/other/setting.html new file mode 100644 index 00000000..2c2a4f37 --- /dev/null +++ b/src/main/resources/templates/pages/other/setting.html @@ -0,0 +1,106 @@ + + + + + 系统设置 + + + + + + + + +
          +
          + +
          +
          + +
          + + 填写自己部署网站的名称。 +
          +
          +
          + +
          + +
          +
          + +
          + +
          + +
          +
          分钟
          +
          本地开发一般推荐设置为 0,线上环境建议设置为 10。
          +
          +
          + +
          + +
          +
          KB
          +
          提示:1 M = 1024 KB
          +
          +
          + +
          + +
          +
          + +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          +
          + +
          +
          +
          +
          +
          + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/other/welcome.html b/src/main/resources/templates/pages/other/welcome.html new file mode 100644 index 00000000..63e0f249 --- /dev/null +++ b/src/main/resources/templates/pages/other/welcome.html @@ -0,0 +1,397 @@ + + + + + 首页二 + + + + + + + + + +
          +
          +
          +
          +
          +
          +
          +
          数据统计
          +
          +
          +
          +
          +
          +
          +
          + 实时 +
          仓库数量
          +
          +
          +

          4

          + 当前分类总记录数 +
          +
          +
          +
          +
          +
          +
          +
          + 实时 +
          库存金额统计
          +
          +
          +

          12032

          + 当前分类总记录数 +
          +
          +
          +
          +
          +
          +
          +
          + 实时 +
          记录数
          +
          +
          +

          7

          + 当前分类总记录数 +
          +
          +
          +
          +
          +
          +
          +
          + 实时 +
          仓库流水
          +
          +
          +

          + 当前分类总记录数 +
          +
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          +
          报表统计
          +
          +
          +
          +
          +
          +
          +
          + +
          + +
          +
          系统公告
          +
          +
          +
          修改选项卡样式
          +
          2019-07-11 23:06
          +
          + 界面足够简洁清爽。
          + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
          + 支持多tab,可以打开多窗口。
          + 支持无限级菜单和对font-awesome图标库的完美支持。
          + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
          + url地址hash定位,可以清楚看到当前tab的地址信息。
          + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
          + 移动端的友好支持。
          +
          +
          +
          +
          + +
          +
          版本信息
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          项目名称 + 仓库管理系统 +
          当前版本v1.0.0
          作者金昊霖
          使用技术 + 前端技术:Layui/jquery/echarts
          + 后端技术:JavaEE/MySql/SSM/SpringBoot +
          主要特色响应式 / 清爽 / 极简
          前端模板 + + iframe版-v2:点击查看
          + 单页版-v2:点击查看
          +
          +
          +
          + +
          +
          作者心语
          +
          +

          该项目为作者大二的实训大作业,前端借用了layuimini的模板

          +

          欢迎大家关注我的CSDN博客:Dreamchaser追梦

          +
          +
          + +
          +
          +
          +
          + + + + + diff --git a/src/main/resources/templates/pages/post/post-out.html b/src/main/resources/templates/pages/post/post-out.html new file mode 100644 index 00000000..f2f04f2e --- /dev/null +++ b/src/main/resources/templates/pages/post/post-out.html @@ -0,0 +1,214 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/post/post-view.html b/src/main/resources/templates/pages/post/post-view.html new file mode 100644 index 00000000..655657e7 --- /dev/null +++ b/src/main/resources/templates/pages/post/post-view.html @@ -0,0 +1,86 @@ + + + + + 分步表单 + + + + + + + + + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/post/postRole_add.html b/src/main/resources/templates/pages/post/postRole_add.html new file mode 100644 index 00000000..2997707f --- /dev/null +++ b/src/main/resources/templates/pages/post/postRole_add.html @@ -0,0 +1,107 @@ + + + + + layui + + + + + + + + +
          + + +
          + +
          + + 填写自己管理账号的名称。 +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + + +
          +
          + +
          +
          + + +
          + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/user/account-look.html b/src/main/resources/templates/pages/user/account-look.html new file mode 100644 index 00000000..ee961fcf --- /dev/null +++ b/src/main/resources/templates/pages/user/account-look.html @@ -0,0 +1,305 @@ + + + + + layui + + + + + + + + + +
          +
          +

          基本信息

          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 临时工 + 编外人员 + 实习&实习生 + 试用员工 + 待分配 + 待岗 + 临时调入 + 正式员工 + 长期病假 + 停薪留职 + 退休 + 辞职 + 辞退 + 离职 +
          +
          +
          + +
          + +
          +
          + 男性 + 女性 + 中性 +
          +
          +
          +
          + +
          +
          + 不是 + 分公司 + 集团管理员 + 超级管理员 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 良好 + 一般 + 较弱 + 有生理缺陷 + 残废 +
          +
          +
          +
          + +
          +
          + 未婚 + 已婚 + 丧偶 + 离异 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 白羊座 + 金牛座 + 双子座 + 巨蟹座 + 狮子座 + 处女座 + 天枰座 + 天蝎座 + 射手座 + 摩羯座 + 水瓶座 + 双鱼座 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 群众 + 无党派 + 台盟会员 + 九三社员 + 致公党员 + 农工党员 + 民进会员 + 民建会员 + 民盟盟员 + 民革会员 + 共青团员 + 预备党员 + 中共党员 +
          +
          +
          +
          +
          +

          账户信息

          +
          +
          + + + + + + + + + + + + + + + + + + + + +
          绑定邮箱123456789@qq.com
          身份系统管理员
          负责仓库all
          +
          +
          +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/user/login.html b/src/main/resources/templates/pages/user/login.html new file mode 100644 index 00000000..a44549d7 --- /dev/null +++ b/src/main/resources/templates/pages/user/login.html @@ -0,0 +1,144 @@ + + + + + 后台管理-登陆 + + + + + + + + + + + + +
          + +
          + + + + + + + diff --git a/src/main/resources/templates/pages/user/login_back.html b/src/main/resources/templates/pages/user/login_back.html new file mode 100644 index 00000000..6738f62c --- /dev/null +++ b/src/main/resources/templates/pages/user/login_back.html @@ -0,0 +1,140 @@ + + + + + 后台管理-登陆 + + + + + + + + + + + + +
          + +
          + + + + + + + diff --git a/src/main/resources/templates/pages/user/register.html b/src/main/resources/templates/pages/user/register.html new file mode 100644 index 00000000..16eeb4b7 --- /dev/null +++ b/src/main/resources/templates/pages/user/register.html @@ -0,0 +1,165 @@ + + + + + layui + + + + + + + + +
          +
          +
          + 用户注册 +
          +
          +
          + +
          + + 填写自己真实姓名 +
          +
          +
          + +
          + + +
          +
          + +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + + + +
          + + +
          +
          + +
          +
          +
          +
          +
          + + +
          +
          + + + + + diff --git a/src/main/resources/templates/pages/user/table-user.html b/src/main/resources/templates/pages/user/table-user.html new file mode 100644 index 00000000..1fa6530f --- /dev/null +++ b/src/main/resources/templates/pages/user/table-user.html @@ -0,0 +1,259 @@ + + + + + layui + + + + + + + + +
          +
          + +
          + 搜索信息 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + +
          + + + +
          +
          + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/user/user-add.html b/src/main/resources/templates/pages/user/user-add.html new file mode 100644 index 00000000..163f6871 --- /dev/null +++ b/src/main/resources/templates/pages/user/user-add.html @@ -0,0 +1,103 @@ + + + + + layui + + + + + + + + +
          + +
          + +
          + + 填写自己管理账号的名称。 +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          +
          + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/user/user-edit.html b/src/main/resources/templates/pages/user/user-edit.html new file mode 100644 index 00000000..f0b2edd3 --- /dev/null +++ b/src/main/resources/templates/pages/user/user-edit.html @@ -0,0 +1,275 @@ + + + + + layui + + + + + + + + +
          + +
          + +
          + +
          +
          +
          + +
          + + 填写自己管理账号的名称。 +
          +
          +
          + +
          + + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 临时工 + 编外人员 + 实习&实习生 + 试用员工 + 待分配 + 待岗 + 临时调入 + 正式员工 + 长期病假 + 停薪留职 + 退休 + 辞职 + 辞退 + 离职 +
          +
          +
          + +
          + +
          + + + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 良好 + 一般 + 较弱 + 有生理缺陷 + 残废 +
          +
          +
          +
          + +
          +
          + 未婚 + 已婚 + 丧偶 + 离异 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 白羊座 + 金牛座 + 双子座 + 巨蟹座 + 狮子座 + 处女座 + 天枰座 + 天蝎座 + 射手座 + 摩羯座 + 水瓶座 + 双鱼座 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          + 群众 + 无党派 + 台盟会员 + 九三社员 + 致公党员 + 农工党员 + 民进会员 + 民建会员 + 民盟盟员 + 民革会员 + 共青团员 + 预备党员 + 中共党员 +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/user/user-email.html b/src/main/resources/templates/pages/user/user-email.html new file mode 100644 index 00000000..beebbb9c --- /dev/null +++ b/src/main/resources/templates/pages/user/user-email.html @@ -0,0 +1,249 @@ + + + + + 分步表单 + + + + + + + + +
          +
          +
          +
          +
          + +
          +
          +

          说明


          + 验证码五分钟后会失效,请及时输入。 +
          +
          +
          + +
          +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/user/user-password.html b/src/main/resources/templates/pages/user/user-password.html new file mode 100644 index 00000000..3fbbc396 --- /dev/null +++ b/src/main/resources/templates/pages/user/user-password.html @@ -0,0 +1,97 @@ + + + + + 修改密码 + + + + + + + + + +
          +
          +
          +
          + + +
          + + 填写自己账号的旧的密码。 +
          +
          + +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/warehouse/depository-out.html b/src/main/resources/templates/pages/warehouse/depository-out.html new file mode 100644 index 00000000..7cd1a151 --- /dev/null +++ b/src/main/resources/templates/pages/warehouse/depository-out.html @@ -0,0 +1,550 @@ + + + + + layui + + + + + + + +
          +
          +
          + 搜索信息 +
          +
          +
          + +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + + + + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/warehouse/depository_add.html b/src/main/resources/templates/pages/warehouse/depository_add.html new file mode 100644 index 00000000..92990f99 --- /dev/null +++ b/src/main/resources/templates/pages/warehouse/depository_add.html @@ -0,0 +1,127 @@ + + + + + layui + + + + + + + +
          +
          +
          + 仓库创建 +
          +
          +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/warehouse/manager.html b/src/main/resources/templates/pages/warehouse/manager.html new file mode 100644 index 00000000..57d26728 --- /dev/null +++ b/src/main/resources/templates/pages/warehouse/manager.html @@ -0,0 +1,105 @@ + + + + + layui + + + + + + + + + +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/warehouse/warehouseByParentId.html b/src/main/resources/templates/pages/warehouse/warehouseByParentId.html new file mode 100644 index 00000000..d6e04019 --- /dev/null +++ b/src/main/resources/templates/pages/warehouse/warehouseByParentId.html @@ -0,0 +1,271 @@ + + + + + layui + + + + + + + +
          + +
          +
          + 搜索信息 +
          +
          + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          +
          +
          +
          +
          + + + +
          + + + +
          +
          + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/warehouse/warehouse_view.html b/src/main/resources/templates/pages/warehouse/warehouse_view.html new file mode 100644 index 00000000..f51120ad --- /dev/null +++ b/src/main/resources/templates/pages/warehouse/warehouse_view.html @@ -0,0 +1,108 @@ + + + + + 分步表单 + + + + + + + + + +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          + +
          +
          + + +
          +
          +
          + + + + + \ No newline at end of file diff --git a/src/test/java/com/dreamchaser/Test.java b/src/test/java/com/dreamchaser/Test.java new file mode 100644 index 00000000..d91842a3 --- /dev/null +++ b/src/test/java/com/dreamchaser/Test.java @@ -0,0 +1,31 @@ +package com.dreamchaser; + + +import com.dreamchaser.depository_manage.entity.Md5Encryption; +import com.dreamchaser.depository_manage.mapper.RoleMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; + +import java.util.List; + + +public class Test { + @Autowired(required = false) + private RedisTemplate redisTemplate; + + + @org.junit.Test + public void test1(){ + Md5Encryption md5jiami = new Md5Encryption(); + Md5Encryption md5JiaMi = new Md5Encryption(); + md5jiami.Md5EncryptionInit("300450"); +// 6b3cec8b6e4bf8cbcba6f1a1fa7892722d39672a + md5JiaMi.Md5EncryptionInit("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.25"); + String userkey = md5jiami.Md5EncryptionAlgorithm(); + String usertoken = md5JiaMi.Md5EncryptionAlgorithm(); + System.out.println("e3bfa398fe9d0e1ab78a00ff59eff788".equals(userkey)); + System.out.println(usertoken); + System.out.println(redisTemplate); + } +} diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 00000000..a5ef9dd4 --- /dev/null +++ b/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Main-Class: com.dreamchaser.depository_manage.DepositoryManageApplicatio + n + diff --git a/target/classes/META-INF/spring-configuration-metadata.json b/target/classes/META-INF/spring-configuration-metadata.json new file mode 100644 index 00000000..8d229f5f --- /dev/null +++ b/target/classes/META-INF/spring-configuration-metadata.json @@ -0,0 +1,17 @@ +{ + "groups": [ + { + "name": "file", + "type": "com.dreamchaser.depository_manage.config.FileConfig", + "sourceType": "com.dreamchaser.depository_manage.config.FileConfig" + } + ], + "properties": [ + { + "name": "file.upload-path", + "type": "java.lang.String", + "sourceType": "com.dreamchaser.depository_manage.config.FileConfig" + } + ], + "hints": [] +} \ No newline at end of file diff --git a/target/classes/application-test.yml b/target/classes/application-test.yml new file mode 100644 index 00000000..9d910a58 --- /dev/null +++ b/target/classes/application-test.yml @@ -0,0 +1,96 @@ +#开启健康检查、审计、统计和监控,即可通过访问/actuator/beans等查看状态 +management: + endpoints: + web: + exposure: + include: beans,health +spring: + servlet: + multipart: + enabled: true + max-file-size: 100MB # 单个文件上传的最大上限 + max-request-size: 100MB # 一次请求总大小上限 + + mail: + #邮箱配置 + #平台地址,这里用的是qq邮箱,使用其他邮箱请更换 + host: smtp.qq.com + #这里是你要发送邮箱的账户 + username: 1789131794@qq.com + #发送短信后它给你的授权码 + password: ###### + properties: + mail: + smtp: + ssl: + enable: true + ##编码格式 + default-encoding: utf-8 + ##数据库设置 + datasource: + username: root + password: root + url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + initialSize: 5 + minIdle: 5 + maxActive: 10 + maxWait: 60000 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: SELECT 1 FROM DUAL + useGlobalDataSourceStat: true + server: + port: 9090 + testWhileIdle: true + testOnReturn: false + testOnBorrow: false + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + #配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙 + filters: stat, wall, log4j + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 + #超时回收机制 + removeAbandoned: true + removeAbandonedTimeout: 1800 + logAbandoned: true + redis: + host: 127.0.0.1 + port: 6379 + lettuce: + shutdown-timeout: 1000 + pool: + max-active: 0 + max-wait: -1 + max-idle: 8 + min-idle: 0 + timeout: 500 + banner: + location: banner.txt + thymeleaf: + cache: false + mode: HTML + mvc: + hiddenmethod: + filter: + enabled: true + view: + prefix: /templates/ + suffix: .html + static-path-pattern: /static/** +# resources: +# static-locations: classpath:/static/ +server: +mybatis: + type-aliases-package: com.dreamchaser.depository_manage.entity + configuration: + log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl + log-prefix: mapper. + +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +file: + uploadPath: D:/upLoad \ No newline at end of file diff --git a/target/classes/application.yml b/target/classes/application.yml new file mode 100644 index 00000000..abd3be29 --- /dev/null +++ b/target/classes/application.yml @@ -0,0 +1,5 @@ +spring: + profiles: + active: test +server: + port: 11111 \ No newline at end of file diff --git a/target/classes/banner.txt b/target/classes/banner.txt new file mode 100644 index 00000000..a4b8e471 --- /dev/null +++ b/target/classes/banner.txt @@ -0,0 +1,14 @@ + ,---, ____ ,---, + .' .' `\ ,' , `. ,--.' | +,---.' \ __ ,-. ,-+-,.' _ | | | : __ ,-. +| | .`\ |,' ,'/ /| ,-+-. ; , || : : : .--.--. ,' ,'/ /| +: : | ' |' | |' | ,---. ,--.--. ,--.'|' | || ,---. : | |,--. ,--.--. / / ' ,---. ' | |' | +| ' ' ; :| | ,'/ \ / \ | | ,', | |,/ \ | : ' | / \ | : /`./ / \ | | ,' +' | ; . |' : / / / | .--. .-. | | | / | |--'/ / ' | | /' :.--. .-. | | : ;_ / / |' : / +| | : | '| | ' . ' / | \__\/: . . | : | | , . ' / ' : | | | \__\/: . . \ \ `. . ' / || | ' +' : | / ; ; : | ' ; /| ," .--.; | | : | |/ ' ; :__ | | ' | : ," .--.; | `----. \' ; /|; : | +| | '` ,/ | , ; ' | / | / / ,. | | | |`-' ' | '.'|| : :_:,'/ / ,. | / /`--' /' | / || , ; +; : .' ---' | : |; : .' \| ;/ | : :| | ,' ; : .' \'--'. / | : | ---' +| ,.' \ \ / | , .-./'---' \ \ / `--'' | , .-./ `--'---' \ \ / +'---' `----' `--`---' `----' `--`---' `----' + diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml new file mode 100644 index 00000000..b412adc9 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + a.id,a.name,a.url ,a.`type` ,a.role_id ,a.menuparent ,a.state,a.icon,a.target,a.ischild + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml new file mode 100644 index 00000000..7d530af5 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + c.cid, c.cname ,c.state , c.parentId,c.introduce + + + + + + + + + + + + + + + + + + + DELETE FROM company WHERE cid = #{id} + + + + + DELETE FROM company WHERE cid IN + + #{id} + + + + + + UPDATE company + + + cname = #{cname}, + + + introduce = #{introduce}, + + + state = #{state}, + + + parentId = #{parentId} + + + WHERE cid = #{id} + + + + + INSERT INTO company ( + cid, cname, introduce,parentId + ) VALUES ( + #{id}, + #{cname}, + #{introduce}, + #{parentId} + ) + + + + + update company + + state = 3 + + where cid = #{id} + + + + + + update company + + state = 3 + + where cid in + + #{id} + + + + + + update company + + state = #{state} + + where cid = #{cid} + + and state = #{oldState} + + and state != 3 + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml new file mode 100644 index 00000000..762c1a96 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + d.id, d.dname, d.address, d.introduce,d.state,d.parentId,d.cid + + + + id,dname,address,introduce,state,parentId,cid,cname + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO depository ( + id, dname, address, introduce,parentId,cid + ) VALUES ( + #{id}, + #{dname}, + #{address}, + #{introduce}, + #{parentId}, + #{cid} + ) + + + + + + + UPDATE depository + + + dname = #{dname}, + + + address = #{address}, + + + introduce = #{introduce}, + + + state = #{state}, + + + parentId = #{parentId}, + + + cid = #{cid} + + + WHERE id = #{id} + + + + + + + + + DELETE FROM depository WHERE id = #{id} + + + + + + DELETE FROM depository WHERE id IN + + #{id} + + + + + + UPDATE depository + + state = 3 + + WHERE id = #{id} + + + + UPDATE depository + + state = #{state} + + + where id = #{id} + + and state = #{oldState} + + and state != 3 + + + + + update depository + + state = 3 + + where id in + + #{id} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml new file mode 100644 index 00000000..a8e65d91 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml @@ -0,0 +1,941 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dr.id, dr.type, dr.applicant_id, dr.apply_remark, dr.apply_time ,dr.oldId + + + + aorid,applicantId, applyRemark, applicantTime,aorcode + + + + dr.id, dr.application_id, dr.mname, dr.depository_id, dr.type, dr.quantity, dr.price, dr.state, + dr.applicant_id, dr.apply_remark, dr.apply_time, dr.reviewer_id, dr.review_remark, dr.review_time, dr.review_pass, + dr.checker_id, dr.check_remark, dr.check_time, dr.check_pass ,dr.oldId + + + + dr.id, dr.application_id, dr.mname, dr.depository_id, dr.type, dr.quantity, dr.price, dr.state, + dr.applicant_id, dr.apply_remark, dr.apply_time, dr.reviewer_id, dr.review_remark, dr.review_time, dr.review_pass, + dr.checker_id, dr.check_remark, dr.check_time, dr.check_pass,uname as uname,u2name as uname,u3name as uname ,oldId + + + + id,mid,quantity,price,applicant_id,applicant_time,code,depository_id,applyRemark + + + + airid,mname,quantity,price,tname,applicant_time,aircode,dname,applicant_id,applyRemark + + + + aorid,mid,mname,depositoryId,dname,applicantId,applicantTime,applyRemark,aorcode,aorpirce,aorquantity,departmenthead,departmentheadPass,departmentHeadTime,departmentheadMessage, + depositoryManager,depositoryManagerPass,depositoryManagerTime,depositoryManagerMessage,aorstate,istransfer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into application_in_record (id,mid,quantity,price,applicant_id,applicant_time,depository_id,code,applyRemark) + values( + #{id}, + #{mid}, + #{quantity}, + #{price}, + #{applicantId}, + #{applicant_time}, + #{depositoryId}, + #{code}, + #{applyRemark} + ) + + + + + insert into application_out_record + (id,mid,depository_id,applicant_id,applicant_time,code,price,quantity,departmenthead,departmenthead_pass,departmenthead_time, + departmenthead_messgae,depository_manager,depository_manager_pass,depository_manager_time,depository_manager_message,apply_remark,state,istransfer) + values( + #{id}, + #{mid}, + #{depositoryId}, + #{applicantId}, + #{applicantTime}, + #{code}, + #{price}, + #{quantity}, + #{departmenthead}, + #{departmentheadPass}, + + 0, + + + #{departmentheadTime}, + + #{departmentheadMessgae}, + #{depositoryManager}, + #{depositoryManagerPass}, + + 0, + + + #{depositoryManagerTime}, + + #{depositoryManagerMessage}, + #{applyRemark}, + #{state}, + #{istransfer} + ) + + + + + + INSERT INTO depository_record ( + id, application_id, mname, depository_id, type, quantity, price, state, + applicant_id, apply_remark, apply_time, + reviewer_id, review_remark, review_time,review_pass, checker_id, check_remark, + check_time,check_pass,oldId + ) VALUES ( + #{id}, + #{applicationId}, + #{mname}, + #{depositoryId}, + #{type}, + #{quantity}, + #{price}, + #{state}, + #{applicantId}, + #{applyRemark}, + + 0, + + + #{applyTime}, + + #{reviewerId}, + #{reviewRemark}, + + + + 0, + + + #{reviewTime}, + + #{reviewPass}, + #{checkerId}, + #{checkRemark}, + + 0, + + + #{checkTime}, + + #{checkPass}, + #{oldId} + ) + + + + + INSERT INTO depository_record ( + id, application_id, mname, depository_id, type, quantity, price, state, + applicant_id, apply_remark, apply_time, reviewer_id, review_remark, review_time,review_pass, checker_id, check_remark, + check_time,check_pass + ) VALUES + + ( + #{id}, + #{applicationId}, + #{mname}, + #{depositoryId}, + #{type}, + #{quantity}, + #{price}, + #{state}, + #{applicantId}, + #{applyRemark}, + #{applyTime}, + #{reviewerId}, + #{reviewRemark}, + #{reviewTime}, + #{reviewPass}, + #{checkerId}, + #{checkRemark}, + #{checkTime}, + #{checkPass} + ) + + + + + + UPDATE depository_record + + + application_id = #{applicationId}, + + + mname = #{mname}, + + + depository_id = #{depositoryId}, + + + type = #{type}, + + + quantity = #{quantity}, + + + price = #{price}, + + + state = #{state}, + + + applicant_id = #{applicantId}, + + + apply_remark = #{applyRemark}, + + + apply_time = #{applyTime}, + + + reviewer_id = #{reviewerId}, + + + review_remark = #{reviewRemark}, + + + review_time = #{reviewTime}, + + + review_pass = #{reviewPass}, + + + checker_id = #{checkerId}, + + + check_remark = #{checkRemark}, + + + check_time = #{checkTime}, + + + check_pass = #{checkPass} + + + WHERE id = #{id} + + + + + UPDATE application_out_record + + + mid = #{mid}, + + + depository_id = #{depositoryId}, + + + applicant_id = #{applicantId}, + + + applicant_time = #{applicantTime}, + + + code = #{code}, + + + price = #{price}, + + + quantity = #{quantity}, + + + departmenthead = #{departmenthead}, + + + departmenthead_pass = #{departmentheadPass}, + + + departmenthead_time = #{departmentheadTime}, + + + departmenthead_messgae = #{departmentheadMessage}, + + + depository_manager = #{depositoryManager}, + + + depository_manager_pass = #{depositoryManagerPass}, + + + depository_manager_time = #{depositoryManagerTime}, + + + depository_manager_message = #{depositoryManagerMessage}, + + + state = #{state} + + + WHERE id = #{id} + + + + + UPDATE depository_record + + + application_id = #{applicationId}, + + + mname = #{mname}, + + + depository_id = #{depositoryId}, + + + type = #{type}, + + + quantity = #{quantity}, + + + price = #{price}, + + + state = #{state}, + + + applicant_id = #{applicantId}, + + + apply_remark = #{applyRemark}, + + + apply_time = #{applyTime}, + + + reviewer_id = #{reviewerId}, + + + review_remark = #{reviewRemark}, + + + review_time = #{reviewTime}, + + + review_pass = #{reviewPass}, + + + checker_id = #{checkerId}, + + + check_remark = #{checkRemark}, + + + check_time = #{checkTime}, + + + check_pass = #{checkPass} + + + WHERE id = #{item.id} + + + + + + DELETE FROM depository_record WHERE id = #{id} + + + + + DELETE FROM depository_record WHERE id IN + + #{id} + + + + + + + + + + + + + + + + DELETE FROM application_in_record WHERE id = #{id} + + + + + DELETE FROM application_in_record WHERE id IN + + #{id} + + + + + + DELETE FROM application_out_record WHERE id = #{id} + + + + + DELETE FROM application_out_record WHERE id IN + + #{id} + + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml new file mode 100644 index 00000000..59eeb0f8 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m.id, m.depository_id, m.mname, m.quantity, m.price, m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,m.depositoryCode + + + + + m.id,m.depository_id,m.mname,m.quantity,m.price,m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,mt.tname,m.depositoryCode,d.dname + + + + + id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode + + + + + + + + + + + + + + + + + + + + + + INSERT INTO material ( + id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode + ) VALUES ( + #{id}, + #{depositoryId}, + #{mname}, + #{quantity}, + #{price}, + #{materialTypeId}, + #{code}, + #{unit}, + #{version}, + #{texture}, + #{amounts}, + #{depositoryCode} + ) + + + + + + + + UPDATE material + + + depository_id = #{depositoryId}, + + + mname = #{mname}, + + + quantity = #{quantity}, + + + price = #{price}, + + + type_id = #{typeId}, + + + state = #{state}, + + + amounts = #{amounts}, + + + version = #{version}, + + + code = #{code}, + + + unit = #{unit}, + + + depositoryCode = #{depositoryCode} + + + WHERE id = #{id} + + + + + UPDATE material + + + + + quantity = quantity+#{quantity}, + + + price = price + #{price} + + + + + quantity = quantity - #{quantity}, + + + price = price - #{price} + + + + + WHERE + depository_id = #{depositoryId} and mname = #{mname}, + + + + + + + + DELETE FROM material WHERE id = #{id} + + + + + + UPDATE material + + state = 3 + + WHERE id = #{id} + + + + UPDATE material + + state = #{state} + + where id = #{id} + + and state = #{oldState} + + and state != 3 + + + + + update material + + state = 3 + + where id in + + #{id} + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml new file mode 100644 index 00000000..2920474a --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + mt.id, mt.tname, mt.introduce, mt.state,mt.parentId + + + + + + + + + + + + + + + + + + + + + INSERT INTO material_type ( + id, tname, introduce,parentId + ) VALUES ( + #{id}, + #{tname}, + #{introduce}, + #{parentId} + ) + + + + + + + + UPDATE material_type + + + tname = #{tname}, + + + introduce = #{introduce}, + + + state = #{state}, + + + parentId = #{parentId} + + + WHERE id = #{id} + + + + + + UPDATE material_type + + + tname = #{item.tname}, + + + introduce = #{item.introduce} + + + state = #{state} + + + parentId = #{parentId} + + + WHERE id = #{item.id} + + + + + + + DELETE FROM material_type WHERE id = #{id} + + + + + DELETE FROM material_type WHERE id IN + + #{id} + + + + + + update material_type + + state = 3 + + where id = #{id} + + + + + + update material_type + + state = 3 + + where id in + + #{id} + + + + + update material_type + + state = #{state} + + where id = #{id} + + and state = #{oldState} + + and state != 3 and mt.state != 4 + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml new file mode 100644 index 00000000..0fc155b2 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + n.id, n.title, n.content, n.time + + + + + + + + + + + + + + INSERT INTO notice ( + title, content, time + ) VALUES ( + #{title}, + #{content}, + #{time} + ) + + + + + INSERT INTO notice ( + id, title, content, time + ) VALUES + + ( + #{item.id}, + #{item.title}, + #{item.content}, + #{item.time} + ) + + + + + + UPDATE notice + + + title = #{title}, + + + content = #{content}, + + + time = #{time} + + + WHERE id = #{id} + + + + + + UPDATE notice + + + title = #{item.title}, + + + content = #{item.content}, + + + time = #{item.time} + + + WHERE id = #{item.id} + + + + + + DELETE FROM notice WHERE id = #{id} + + + + + DELETE FROM notice WHERE id IN + + #{id} + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml new file mode 100644 index 00000000..8090e3a2 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r.id,r.name + + + + userid as userId,name as roleName,dname as depositoryName,address as depositoryAddress ,introduce as depositoryIntroduce,state as depositoryState + + + + + + update postoruserrole + + + role = #{authority}, + + + did = #{depositoryId} + + + where userid = #{userid} + + + + + INSERT INTO postoruserrole ( + id, classes, role,userid,did + ) VALUES ( + #{id}, + #{classes}, + #{authority}, + #{userid}, + #{depositoryId} + ) + + + + + + + + + + + + + + diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml new file mode 100644 index 00000000..68f364a4 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + tr.id, tr.from_id, tr.to_id + + + + + + + + + + + + + + INSERT INTO transfer_record ( + id, from_id, to_id,quantity + ) VALUES ( + #{id}, + #{fromId}, + #{toId}, + #{quantity} + ) + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/UserMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/UserMapper.xml new file mode 100644 index 00000000..3823ee81 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/UserMapper.xml @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + u.id, u.uname, u.sex, u.entry_date + + + + u.id, u.uname, u.authority, u.pwd, u.sex, u.depository_id, u.entry_date, u.email, + u.phone,u.state + + + + u.id, u.uname, r.name,r.id,u.authority, u.pwd, u.sex, u.depository_id, u.entry_date, u.email, + u.phone,u.state + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO user ( + id, uname, authority, pwd, sex, depository_id, entry_date, email, + phone + ) VALUES ( + #{id}, + #{uname}, + #{authority}, + #{pwd}, + #{sex}, + #{depositoryId}, + #{entryDate}, + #{email}, + #{phone} + ) + + + + + + + UPDATE user + + + uname = #{uname}, + + + sex = #{sex}, + + + entry_date = #{entryDate}, + + + phone = #{phone} + + + WHERE id = #{id} + + + + UPDATE user + + + uname = #{uname}, + + + authority = #{authority}, + + + pwd = #{pwd}, + + + sex = #{sex}, + + + depository_id = #{depositoryId}, + + + entry_date = #{entryDate}, + + + email = #{email}, + + + phone = #{phone}, + + + state = #{state} + + + WHERE id = #{id} + + + + + + + + DELETE FROM user WHERE id = #{id} + + + + + DELETE FROM user WHERE id IN + + + #{id} + + + + + + update user + + state = 3 + + where id = #{id} + + + + update user + + state = 3 + + where id in + + #{id} + + + + + + update user + + pwd = #{new_password} + + where id = #{id} + + + + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml new file mode 100644 index 00000000..58511934 --- /dev/null +++ b/target/classes/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + sb.id, sb.type, sb.quantity, sb.price, sb.material_name + + + + + + + + + + + + + + + INSERT INTO standing_book ( + id, type, quantity, price, material_name + ) VALUES ( + #{id}, + #{type}, + #{quantity}, + #{price}, + #{materialName} + ) + + + + + INSERT INTO standing_book ( + id, type, quantity, price, material_name + ) VALUES + + ( + #{item.id}, + #{item.type}, + #{item.quantity}, + #{item.price}, + #{item.materialName} + ) + + + + + + UPDATE standing_book + + + type = #{type}, + + + quantity = #{quantity}, + + + price = #{price}, + + + material_name = #{materialName} + + + WHERE id = #{id} + + + + + + UPDATE standing_book + + + type = #{item.type}, + + + quantity = #{item.quantity}, + + + price = #{item.price}, + + + material_name = #{item.materialName} + + + WHERE id = #{item.id} + + + + + + DELETE FROM standing_book WHERE id = #{id} + + + + + DELETE FROM standing_book WHERE id IN + + #{id} + + + \ No newline at end of file diff --git a/target/classes/logback-spring.xml b/target/classes/logback-spring.xml new file mode 100644 index 00000000..db7f2eae --- /dev/null +++ b/target/classes/logback-spring.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + + + + + + + + ${DEBUG_LOG_FILE_NAME_PATTERN} + + 30 + + 2GB + + + 50MB + + + + ${FILE_LOG_PATTERN} + + + + debug + ACCEPT + DENY + + + + + + + ${INFO_LOG_FILE_NAME_PATTERN} + + 7 + + 1GB + + + 50MB + + + + ${FILE_LOG_PATTERN} + + + + info + ACCEPT + DENY + + + + + + + ${WARN_LOG_FILE_NAME_PATTERN} + + 30 + + 1GB + + + 10MB + + + + ${FILE_LOG_PATTERN} + + + + warn + ACCEPT + DENY + + + + + + + ${ERROR_LOG_FILE_NAME_PATTERN} + + 30 + + 1GB + + + 10MB + + + + ${FILE_LOG_PATTERN} + + + + error + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/static/api/clear.json b/target/classes/static/api/clear.json new file mode 100644 index 00000000..e0f5ed74 --- /dev/null +++ b/target/classes/static/api/clear.json @@ -0,0 +1,4 @@ +{ + "code": 1, + "msg": "服务端清理缓存成功" +} \ No newline at end of file diff --git a/target/classes/static/api/init.json b/target/classes/static/api/init.json new file mode 100644 index 00000000..4bbf4895 --- /dev/null +++ b/target/classes/static/api/init.json @@ -0,0 +1,227 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "/application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "入库管理", + "icon": "fa fa-mail-forward", + "target": "_self", + "child": [ + { + "title": "入库查询", + "href": "/table_in", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "入库可视化", + "href": "/chart_in", + "icon": "fa fa-bar-chart", + "target": "_self" + }, + { + "title": "入库可视化(测试)", + "href": "/chart_in_back", + "icon": "fa fa-bar-chart", + "target": "_self" + } + ] + }, + { + "title": "出库管理", + "icon": "fa fa-mail-reply", + "target": "_self", + "child": [ + { + "title": "出库查询", + "href": "/table_out", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "出库可视化", + "href": "/chart_out", + "icon": "fa fa-pie-chart", + "target": "_self" + } + ] + }, + { + "title": "库存管理", + "icon": "fa fa-server", + "target": "_self", + "child": [ + { + "title": "库存查询", + "href": "/table_stock", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "库存可视化", + "href": "/chart_stock", + "icon": "fa fa-area-chart", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建仓库", + "href": "/depository_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "仓库查询", + "href": "/depository-out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料种类管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "材料种类添加", + "href": "/materialType_add", + "icon": "layui-icon layui-icon-list", + "target": "_self" + }, + { + "title": "材料种类查询", + "href": "/materialType_view", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建材料", + "href": "/material_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "材料查询", + "href": "/material_out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "人员管理", + "href": "/table_user", + "icon": "fa fa-group", + "target": "" + }, + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/init_checker.json b/target/classes/static/api/init_checker.json new file mode 100644 index 00000000..b0254b37 --- /dev/null +++ b/target/classes/static/api/init_checker.json @@ -0,0 +1,221 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "入库管理", + "icon": "fa fa-mail-forward", + "target": "_self", + "child": [ + { + "title": "入库查询", + "href": "/table_in", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "入库可视化", + "href": "/chart_in", + "icon": "fa fa-bar-chart", + "target": "_self" + }, + { + "title": "入库可视化(测试)", + "href": "/chart_in_back", + "icon": "fa fa-bar-chart", + "target": "_self" + } + ] + }, + { + "title": "出库管理", + "icon": "fa fa-mail-reply", + "target": "_self", + "child": [ + { + "title": "出库查询", + "href": "/table_out", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "出库可视化", + "href": "/chart_out", + "icon": "fa fa-pie-chart", + "target": "_self" + } + ] + }, + { + "title": "库存管理", + "icon": "fa fa-server", + "target": "_self", + "child": [ + { + "title": "库存查询", + "href": "/table_stock", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "库存可视化", + "href": "/chart_stock", + "icon": "fa fa-area-chart", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建仓库", + "href": "/depository_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "仓库查询", + "href": "/depository-out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料种类管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "材料种类添加", + "href": "/materialType_add", + "icon": "layui-icon layui-icon-list", + "target": "_self" + }, + { + "title": "材料种类查询", + "href": "/materialType_view", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建材料", + "href": "/material_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "材料查询", + "href": "/material_out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/init_reviewer.json b/target/classes/static/api/init_reviewer.json new file mode 100644 index 00000000..71c3c4f2 --- /dev/null +++ b/target/classes/static/api/init_reviewer.json @@ -0,0 +1,227 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "入库管理", + "icon": "fa fa-mail-forward", + "target": "_self", + "child": [ + { + "title": "入库查询", + "href": "/table_in", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "入库可视化", + "href": "/chart_in", + "icon": "fa fa-bar-chart", + "target": "_self" + }, + { + "title": "入库可视化(测试)", + "href": "/chart_in_back", + "icon": "fa fa-bar-chart", + "target": "_self" + } + ] + }, + { + "title": "出库管理", + "icon": "fa fa-mail-reply", + "target": "_self", + "child": [ + { + "title": "出库查询", + "href": "/table_out", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "出库可视化", + "href": "/chart_out", + "icon": "fa fa-pie-chart", + "target": "_self" + } + ] + }, + { + "title": "库存管理", + "icon": "fa fa-server", + "target": "_self", + "child": [ + { + "title": "库存查询", + "href": "/table_stock", + "icon": "fa fa-th-list", + "target": "_self" + }, + { + "title": "库存可视化", + "href": "/chart_stock", + "icon": "fa fa-area-chart", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建仓库", + "href": "/depository_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "仓库查询", + "href": "/depository-out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料种类管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "材料种类添加", + "href": "/materialType_add", + "icon": "layui-icon layui-icon-list", + "target": "_self" + }, + { + "title": "材料种类查询", + "href": "/materialType_view", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "材料管理", + "icon": "fa fa-wrench", + "target": "_self", + "child": [ + { + "title": "创建材料", + "href": "/material_add", + "icon": "layui-icon layui-icon-template-1", + "target": "_self" + }, + { + "title": "材料查询", + "href": "/material_out", + "icon": "fa fa-th-list", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "人员管理", + "href": "/table_user", + "icon": "fa fa-group", + "target": "" + }, + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/init_user.json b/target/classes/static/api/init_user.json new file mode 100644 index 00000000..d112120b --- /dev/null +++ b/target/classes/static/api/init_user.json @@ -0,0 +1,101 @@ +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "仓库信息概览", + "href": "/welcome", + "icon": "fa fa-tachometer", + "target": "_self", + "child": [ + { + "title": "首页", + "href": "/welcome", + "icon": "fa fa-home", + "target": "_self" + } + ] + }, + { + "title": "仓库管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "申请提交", + "icon": "fa fa-book", + "target": "_self", + "child": [ + { + "title": "入库申请", + "href": "/application_in", + "icon": "layui-icon layui-icon-file-b", + "target": "_self" + }, + { + "title": "出库申请", + "href": "/application_out", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "库存转移申请", + "href": "application_transfer", + "icon": "fa fa-exchange", + "target": "_self" + } + ] + }, + { + "title": "我的任务", + "icon": "fa fa-tasks", + "target": "_self", + "href": "/my_task" + }, + + { + "title": "我的申请", + "href": "/my_apply", + "icon": "fa fa-paper-plane", + "target": "_self" + } + ] + }, + { + "title": "辅助管理", + "icon": "fa fa-slideshare", + "href": "", + "target": "_self", + "child": [ + { + "title": "公告发布", + "href": "/notice_edit", + "icon": "fa fa-superpowers", + "target": "_self" + } + ] + }, + { + "title": "个人中心", + "href": "pages/error.html", + "icon": "fa fa-superpowers", + "target": "_self", + "child": [ + { + "title": "个人信息", + "href": "/account_look", + "icon": "layui-icon layui-icon-friends", + "target": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/menus.json b/target/classes/static/api/menus.json new file mode 100644 index 00000000..e14d00ed --- /dev/null +++ b/target/classes/static/api/menus.json @@ -0,0 +1,254 @@ +{ + "code": 0, + "msg": "", + "count": 19, + "data": [ + { + "authorityId": 1, + "authorityName": "系统管理", + "orderNumber": 1, + "menuUrl": null, + "menuIcon": "layui-icon-set", + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": -1 + }, + { + "authorityId": 2, + "authorityName": "用户管理", + "orderNumber": 2, + "menuUrl": "system/user", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 3, + "authorityName": "查询用户", + "orderNumber": 3, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:54:16", + "authority": "user:view", + "checked": 0, + "updateTime": "2018/07/21 13:54:16", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 4, + "authorityName": "添加用户", + "orderNumber": 4, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:add", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 5, + "authorityName": "修改用户", + "orderNumber": 5, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 6, + "authorityName": "删除用户", + "orderNumber": 6, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:delete", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 7, + "authorityName": "角色管理", + "orderNumber": 7, + "menuUrl": "system/role", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 8, + "authorityName": "查询角色", + "orderNumber": 8, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:54:59", + "authority": "role:view", + "checked": 0, + "updateTime": "2018/07/21 13:54:58", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 9, + "authorityName": "添加角色", + "orderNumber": 9, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:add", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 10, + "authorityName": "修改角色", + "orderNumber": 10, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 11, + "authorityName": "删除角色", + "orderNumber": 11, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:delete", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 12, + "authorityName": "角色权限管理", + "orderNumber": 12, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:auth", + "checked": 0, + "updateTime": "2018/07/13 15:27:18", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 13, + "authorityName": "权限管理", + "orderNumber": 13, + "menuUrl": "system/authorities", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 15:45:13", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 14, + "authorityName": "查询权限", + "orderNumber": 14, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:55:57", + "authority": "authorities:view", + "checked": 0, + "updateTime": "2018/07/21 13:55:56", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 15, + "authorityName": "添加权限", + "orderNumber": 15, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "authorities:add", + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 16, + "authorityName": "修改权限", + "orderNumber": 16, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/13 09:13:42", + "authority": "authorities:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 17, + "authorityName": "删除权限", + "orderNumber": 17, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "authorities:delete", + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 18, + "authorityName": "登录日志", + "orderNumber": 18, + "menuUrl": "system/loginRecord", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 19, + "authorityName": "查询登录日志", + "orderNumber": 19, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:56:43", + "authority": "loginRecord:view", + "checked": 0, + "updateTime": "2018/07/21 13:56:43", + "isMenu": 1, + "parentId": 18 + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/table-in.json b/target/classes/static/api/table-in.json new file mode 100644 index 00000000..7bc51fc2 --- /dev/null +++ b/target/classes/static/api/table-in.json @@ -0,0 +1,133 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 10000, + "applicationId": 2001, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "无", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + }, + { + "id": 10001, + "applicationId": 3301, + "materialName": "麒麟980芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "已入库", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2021-10-06 10:05", + "reviewRemarks": "审核批准!", + "reviewTime": "2021-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准", + "checkerName":"李四", + "checkRemarks": "验收无误,入库!", + "checkTime": "2021-10-8 15:23" + },{ + "id": 10002, + "applicationId": 409, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 321, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/table-out.json b/target/classes/static/api/table-out.json new file mode 100644 index 00000000..631f46d7 --- /dev/null +++ b/target/classes/static/api/table-out.json @@ -0,0 +1,130 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 10000, + "applicationId": 2001, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "无", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + }, + { + "id": 10001, + "applicationId": 3301, + "materialName": "麒麟980芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "已入库", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2021-10-06 10:05", + "reviewRemarks": "审核批准!", + "reviewTime": "2021-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10002, + "applicationId": 409, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 321, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 456, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "购入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + },{ + "id": 10000, + "applicationId": 123, + "materialName": "骁龙888芯片", + "depositoryName": "外芯仓库", + "quantity": "409", + "price": "205004109", + "type": "转入", + "state": "待审核", + "applicantName": "张三", + "reviewerName": "King", + "applyTime": "2020-10-06 10:05", + "reviewTime": "2020-10-07 11:12", + "depositoryId": 57, + "applyRemarks": "老板要求今天这批货得进库,请尽快批准" + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/table-user.json b/target/classes/static/api/table-user.json new file mode 100644 index 00000000..37762b19 --- /dev/null +++ b/target/classes/static/api/table-user.json @@ -0,0 +1,95 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "外芯仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "李四", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "义乌仓库a", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "King", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "义乌仓库b", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "宁波仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "宁波仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "boss", + "sex": "男", + "authority": "系统管理员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "all", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "外芯仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + }, + { + "id": 10000, + "uname": "张三", + "sex": "男", + "authority": "仓管员", + "phone": "4561348", + "email": "12345689@qq.com", + "depositoryName": "外芯仓库", + "entryDate": "2012-10-06", + "depositoryId": 1 + } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/tableSelect.json b/target/classes/static/api/tableSelect.json new file mode 100644 index 00000000..37fb0ed8 --- /dev/null +++ b/target/classes/static/api/tableSelect.json @@ -0,0 +1,23 @@ +{ + "code": 0, + "msg": "", + "count": 16, + "data": [ + { "id":"001", "username":"张玉林", "sex":"女" }, + { "id":"002", "username":"刘晓军", "sex":"男" }, + { "id":"003", "username":"张恒", "sex":"男" }, + { "id":"004", "username":"朱一", "sex":"男" }, + { "id":"005", "username":"刘佳能", "sex":"女" }, + { "id":"006", "username":"晓梅", "sex":"女" }, + { "id":"007", "username":"马冬梅", "sex":"女" }, + { "id":"008", "username":"刘晓庆", "sex":"女" }, + { "id":"009", "username":"刘晓庆", "sex":"女" }, + { "id":"010", "username":"刘晓庆", "sex":"女" }, + { "id":"011", "username":"刘晓庆", "sex":"女" }, + { "id":"012", "username":"刘晓庆", "sex":"女" }, + { "id":"013", "username":"刘晓庆", "sex":"女" }, + { "id":"014", "username":"刘晓庆", "sex":"女" }, + { "id":"015", "username":"刘晓庆", "sex":"女" }, + { "id":"016", "username":"刘晓庆", "sex":"女" } + ] +} \ No newline at end of file diff --git a/target/classes/static/api/test.json b/target/classes/static/api/test.json new file mode 100644 index 00000000..d5401ac9 --- /dev/null +++ b/target/classes/static/api/test.json @@ -0,0 +1,226 @@ + +{ + "homeInfo": { + "title": "首页", + "href": "/welcome" + }, + "logoInfo": { + "title": "Repository", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "icon": "fa fa-home", + "href": "/welcome", + "title": "仓库信息概览", + "target": "_self", + "child": [ + { + "icon": "fa fa-home", + "href": "/welcome", + "title": "首页", + "target": "_self", + "child": [] + } + ] + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/account_look", + "title": "个人中心", + "target": "_self", + "child": [] + }, + { + "icon": "fa fa-lemon-o", + "href": "", + "title": "仓库管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/my_task", + "title": "我的任务", + "target": "_self", + "child": [] + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/my_apply", + "title": "我的申请", + "target": "_self", + "child": [] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "申请提交", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-file-b", + "href": "/application_in", + "title": "入库申请", + "target": "_self" + }, + { + "icon": "fa fa-file-text", + "href": "/application_out", + "title": "出库申请", + "target": "_self" + }, + { + "icon": "fa fa-exchange", + "href": "/application_transfer", + "title": "库存转移申请", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "入库管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/table_in", + "title": "入库查询", + "target": "_self" + }, + { + "icon": "fa fa-bar-chart", + "href": "/chart_in", + "title": "入库可视化", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "出库管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/table_out", + "title": "出库查询", + "target": "_self" + }, + { + "icon": "fa fa-pie-chart", + "href": "/chart_out", + "title": "出库可视化", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "库存管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/table_stock", + "title": "库存查询", + "target": "_self" + }, + { + "icon": "fa fa-area-chart", + "href": "/chart_stock", + "title": "库存可视化", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "仓库管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/depository_add", + "title": "创建仓库", + "target": "_self" + }, + { + "icon": "fa fa-th-list", + "href": "/depository-out", + "title": "仓库查询", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "材料种类管理", + "target": "_self", + "child": [ + { + "icon": "fa fa-th-list", + "href": "/materialType_add", + "title": "材料种类添加", + "target": "_self" + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/materialType_view", + "title": "材料种类查询", + "target": "_self" + } + ] + }, + { + "icon": "fa fa-mail-forward", + "href": "", + "title": "材料管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/material_add", + "title": "创建材料", + "target": "_self" + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/material_out", + "title": "材料查询", + "target": "_self" + } + ] + } + ] + }, + { + "icon": "fa fa-slideshare", + "href": "", + "title": "辅助管理", + "target": "_self", + "child": [ + { + "icon": "layui-icon layui-icon-template-1", + "href": "/table_user", + "title": "人员管理", + "target": "_self", + "child": [] + }, + { + "icon": "layui-icon layui-icon-template-1", + "href": "/notice_edit", + "title": "公告发布", + "target": "_self", + "child": [] + } + ] + } + ] +} diff --git a/target/classes/static/api/upload.json b/target/classes/static/api/upload.json new file mode 100644 index 00000000..691902df --- /dev/null +++ b/target/classes/static/api/upload.json @@ -0,0 +1,10 @@ +{ + "code": 1, + "msg": "上传成功", + "data": { + "url": [ + "../images/logo.png", + "../images/captcha.jpg" + ] + } +} diff --git a/target/classes/static/css/layuimini.css b/target/classes/static/css/layuimini.css new file mode 100644 index 00000000..09428a5b --- /dev/null +++ b/target/classes/static/css/layuimini.css @@ -0,0 +1,927 @@ +/** +配色方案(如有需要,请自行配置) + */ +/**头部-配色*/ +.layui-layout-admin .layui-header { + background-color: #1aa094 !important; +} + +.layui-header > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #197971 !important; +} + +.layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #197971 !important; +} + +/**logo-配色*/ +.layui-layout-admin .layuimini-logo { + background-color: #243346 !important; +} + +/**左侧-配色*/ +.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul { + background-color: #2f4056 !important; +} + +.layuimini-menu-left .layui-nav .layui-nav-child a:hover:not(.layui-this) { + background-color: #3b3f4b; +} + +/**左侧菜单选中-配色*/ +.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 { + background-color: #1aa094 !important; +} + + +/**头部样式 */ +.layui-layout-admin .header { + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +.layuimini-header-menu, .layui-header { + height: 60px !important; +} + +.layuimini-header-menu > .layui-nav-item { + color: #1b1d21; + height: 60px !important; + line-height: 60px !important; +} + +.layui-header > .layui-layout-right > .layui-nav-item { + height: 60px !important; + line-height: 60px !important; +} + +.layui-layout-left { + left: 295px !important; +} + +.layui-nav.layui-layout-left.layuimini-header-menu.layuimini-pc-show { + font-weight: bold; + transition: all .2s; +} + + +/**logo演示(通用) */ +.layui-layout-admin .layuimini-logo { + font-weight: bold; + color: #ffffff !important; + height: 60px !important; + line-height: 60px !important; + overflow: hidden; + line-height: 64px; + transition: all .2s !important; +} + +.layui-layout-admin .layuimini-logo img { + display: inline-block; + height: 40px; + vertical-align: middle; +} + +.layui-layout-admin .layuimini-logo h1 { + display: inline-block; + margin: 0 0 0 12px; + color: #ffffff; + font-weight: 600; + font-size: 20px; + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; + vertical-align: middle; +} + +/**缩放工具(通用) */ +.layuimini-tool { + position: absolute !important; + top: 0; + left: 235px; + width: 60px; + height: 100%; + line-height: 60px; + text-align: center; + color: #ffffff !important; + transition: all .2s; +} + +/**缩放工具(缩放) */ +.layuimini-tool i { + display: block; + color: #bbe3df; + width: 32px; + height: 32px; + line-height: 32px; + border-radius: 3px; + text-align: center; + margin-top: 15px; + cursor: pointer; +} + +/**tab选项卡 */ +.layuimini-tab { + margin: 0px; + overflow: hidden; + height: 100% !important; +} + +.layuimini-tab .layui-tab-content { + height: calc(100% - 37px) !important; +} + +.layuimini-tab .layui-tab-content .layui-tab-item { + height: 100%; +} + +.layuimini-tab .layui-tab-content { + padding: 0px; +} + +.layuimini-tab .layui-tab-title { + border: none; + border: 1px solid whitesmoke; + background-color: white; +} + +.layuimini-tab .layui-tab-title li { + border-right: 1px solid whitesmoke; + color: dimgray; +} + +.layuimini-tab .layui-tab-title .layui-tab-bar { + display: none; +} + +.layuimini-tab .layui-tab-title .layui-this:after { + display: none; +} + +.layuimini-tab .layui-tab-title .layuimini-tab-active { + display: inline-block; + background-color: lightgray; + width: 9px; + height: 9px; + border-radius: 30px; + margin-right: 5px; +} + +.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active { + background-color: #1aa094; +} + +.layuimini-tab > .layui-tab-title, .layuimini-tab > .close-box { + height: 35px !important; +} + +.layuimini-tab > .layui-tab-title li, .layuimini-tab > .close-box li { + line-height: 35px !important; +} + +.layuimini-tab .layui-tab-title span { + color: #acafb1; +} + +.layuimini-tab .layui-tab-title .layui-this span { + color: dimgray; +} + +.layuimini-tab .layui-tab-title .layui-tab-close { + font-size: 12px !important; + width: 14px !important; + height: 14px !important; + line-height: 16px !important; +} + +.layuimini-tab .layui-tab-title .layui-tab-close:hover { + border-radius: 4em; + background: #ff5722; +} + +.layuimini-tab .layui-tab-title .disable-close + .layui-tab-close { + display: none; +} + +.layuimini-tab .layui-tab-title .able-close + .layui-tab-close { + display: inline-block; +} + +.layuimini-tab .layui-tab-control > li { + position: absolute; + top: 0px; + height: 35px; + line-height: 35px; + width: 35px; + text-align: center; + background-color: white; + border-top: whitesmoke 1px solid; + border-bottom: whitesmoke 1px solid; +} + +.layuimini-tab .layuimini-tab-roll-left { + left: 0px; + border-right: whitesmoke 1px solid; + border-left: whitesmoke 1px solid; +} + +.layuimini-tab .layuimini-tab-roll-right { + right: 35px; + border-left: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-tool { + right: 0px; + border-left: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-control .layui-tab-tool, +.layuimini-tab .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab .layui-tab-control .layuimini-tab-roll-right { + display: none; +} + +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right { + display: block; +} + +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right { + right: 0px; + border-right: 1px solid whitesmoke; +} + +.layuimini-tab.layui-tab-roll .layui-tab-title { + padding-left: 35px; + padding-right: 35px; +} + + +.layuimini-tab.layui-tab-tool .layui-tab-control .layui-tab-tool { + display: block; +} + +.layuimini-tab.layui-tab-tool .layui-tab-title { + padding-left: 0px; + padding-right: 35px; +} + + +.layuimini-tab.layui-tab-rollTool .layui-tab-title { + padding-left: 35px; + padding-right: 80px; +} + +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-right, +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layui-tab-tool { + display: block; +} + +.layuimini-tab .layui-tab-tool .layui-nav { + position: absolute; + height: 43px !important; + top: 0; + width: 100%; + height: 100%; + padding: 0; + background: 0 0; +} + +.layuimini-tab .layui-tab-tool .layui-nav-item { + height: 35px; +} + +.layuimini-tab .layui-tab-tool .layui-nav-bar { + display: none; +} + +.layuimini-tab .layui-tab-tool .layui-nav-child { + left: auto; + top: 45px; + right: 3px; + width: 120px; + border: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-tool .layui-this a { + background-color: #009688; +} + +.layuimini-tab-loading { + position: absolute; + display: none; + width: 100%; + height: calc(100% - 37px); + top: 37px; + z-index: 19; + background-color: #fff +} + +.layuimini-tab-loading.close { + animation: close 1s; + -webkit-animation: close 1s; + animation-fill-mode: forwards; +} + +/**左侧菜单栏 (通用) */ +.layui-side.layui-bg-black { + transition: all .2s; +} + +.layui-side.layui-bg-black > .layuimini-menu-left > ul { + transition: all .2s; +} + +.layui-side.layui-bg-black > .layuimini-menu-left > ul > .layui-nav-item:first-child { + border-top: 1px solid #4b5461; +} + +.layuimini-menu-left .layui-nav .layui-nav-item a { + height: 40px; + line-height: 40px; + padding-right: 30px; +} + +.layuimini-menu-left .layui-nav .layui-nav-item > a { + padding-top: 5px; + padding-bottom: 5px; +} + +.layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child { + background: 0 0 !important +} + +.layuimini-menu-left .layui-nav .layui-nav-more { + right: 15px; +} + +.layuimini-menu-left .layui-nav .layui-nav-item a:hover { + background-color: transparent !important; +} + +.layuimini-menu-left .layui-nav { + background-color: transparent !important; +} + + +/**左侧菜单栏 (正常) */ +.layui-layout-body .layui-nav-itemed .layui-nav-child a, .layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child a { + padding-left: 35px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child a { + padding-left: 45px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child a { + padding-left: 55px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a { + padding-left: 65px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-itemed > .layui-nav-child { + padding: 5px 0; +} + +/**内容主体(通用) */ +.layui-layout-admin .layui-body { + overflow: hidden; + bottom: 0px !important; + top: 60px !important; + transition: all .2s; +} + +/**选择配色方案 */ +.layuimini-color .color-title { + padding: 10px 0 10px 20px; + border-bottom: 1px solid #d9dada; + margin-bottom: 8px; +} + +.layuimini-color .color-content { + padding: 10px 5px 0 5px; +} + +.layuimini-color .color-content ul { + list-style: none; + text-align: center; +} + +.layuimini-color .color-content ul li { + position: relative; + display: inline-block; + vertical-align: top; + width: 80px; + height: 50px; + margin: 0 15px 15px 0; + padding: 2px 2px 4px 2px; + background-color: #f2f2f2; + cursor: pointer; + font-size: 12px; + color: #666; +} + +.layuimini-color .color-content li.layui-this:after, .layuimini-color .color-content li:hover:after { + width: 100%; + height: 100%; + padding: 4px; + top: -5px; + left: -5px; + border-color: #d8d8d8; + opacity: 1; +} + +.layuimini-color .color-content li:after { + content: ''; + position: absolute; + z-index: 20; + top: 50%; + left: 50%; + width: 1px; + height: 0; + border: 1px solid #f2f2f2; + transition: all .3s; + -webkit-transition: all .3s; + opacity: 0; +} + + +/**其它 */ +.layui-tab-item { + width: 100% !important; + height: 100% !important; +} + +.layui-nav-item.layui-this { + background-color: #1b1d21; +} + +.layui-width-height { + width: 100%; + height: 95%; +} + +.layui-tab { + margin: 0 0 0 0; + z-index: 99999; +} + +.text-center { + height: 30px !important; + line-height: 30px !important; + text-align: center !important; +} + +.layui-nav { + padding: 0 !important; +} + +.layui-nav .layui-this:after, .layui-nav-bar, .layui-nav-tree .layui-nav-itemed:after { + width: 0 !important; + height: 0 !important; +} + +.layui-layout-admin .layui-side { + top: 60px !important; +} + +.layui-tab-card { + box-shadow: 0px 0px 0px #888888; + border-bottom: 0; +} + + +/**自定义滚动条样式 */ +::-webkit-scrollbar { + display: none +} + + +/*移动端遮罩层*/ +.layuimini-make { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 1000; + background: rgba(0, 0, 0, .5); + display: none; +} + +.layuimini-mini .layui-header { + z-index: 1001; +} + +/**初始化加载层*/ +.layuimini-loader { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #ffffff; + z-index: 999999; +} + +.layuimini-loader .layuimini-loader-inner { + display: block; + position: relative; + left: 50%; + top: 50%; + width: 150px; + height: 150px; + margin: -75px 0 0 -75px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 2s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:before { + content: ""; + position: absolute; + top: 5px; + left: 5px; + right: 5px; + bottom: 5px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 3s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:after { + content: ""; + position: absolute; + top: 15px; + left: 15px; + right: 15px; + bottom: 15px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 1.5s linear infinite; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(1turn); + } +} + +/*系统设置*/ + +.layuimini-color .layui-word-aux { + position: absolute; + left: 60px; + top: 12px; + font-size: 12px; +} + +.layuimini-color .layui-input-block { + margin-left: 15px; + min-height: 36px; +} + +.layuimini-color .more-menu-list { + width: 100%; + margin-top: 30px; +} + + +.layuimini-color .more-menu-item:first-child { + border-top: 1px solid #e8e8e8; +} + +.layuimini-color .more-menu-item .layui-icon { + font-size: 18px; + padding-right: 10px; +} + +.layuimini-color .more-menu-item { + color: #595959; + height: 50px; + line-height: 50px; + font-size: 16px; + padding: 0 25px; + border-bottom: 1px solid #e8e8e8; + font-style: normal; + display: block; +} + +.layuimini-color .more-menu-item:hover { + background-color: whitesmoke; +} + +.layuimini-color .more-menu-item:after { + color: #8c8c8c; + right: 16px; + content: "\e602"; + position: absolute; + font-family: layui-icon !important; +} + +/** +鼠标右键 + */ +.layuimini-tab-mousedown { + display: none; + width: 80px; + position: absolute; + top: 0px !important; + left: 0px !important; +} + +.layuimini-tab-mousedown dd a { + padding: 0 15px; + color: #484545; +} + +.layuimini-tab-make{ + position: absolute; + top: 36px; + bottom: 0px; + width: 100%; + background: rgb(255, 255, 255,0); + padding: 0px; + overflow: hidden; +} + +/** +菜单缩放 + */ +.popup-tips .layui-layer-TipsG{ + display: none; +} +.popup-tips.layui-layer-tips .layui-layer-content{ + padding: 0; +} +.popup-tips .layui-nav-tree{ + width: 150px; + border-radius: 10px; +} + +/**左侧菜单字体间距*/ +.layuimini-menu-left .layui-nav-item a span { + letter-spacing: 1px; +} + +/**头部菜单字体间距*/ +.layui-layout-admin .layui-header .layuimini-header-menu.layuimini-pc-show,.layui-layout-admin .layui-header .layuimini-header-menu.layuimini-mobile-show { + letter-spacing: 1px; +} + + +/**左侧菜单更多下拉样式*/ +.layuimini-menu-left .layui-nav-more,.layuimini-menu-left-zoom .layui-nav-more { + font-family: layui-icon !important; + font-size: 12px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + overflow: hidden; + width: auto; + height: auto; + line-height: normal; + border: none; + display: inline-block; + margin-top: -6px !important; +} + +.layuimini-menu-left .layui-nav-child .layui-nav-more { + margin-top: -6px !important; +} + +.layuimini-menu-left .layui-nav .layui-nav-mored,.layuimini-menu-left .layui-nav-itemed>a .layui-nav-more{ + margin-top: -9px!important; +} + +.layuimini-menu-left-zoom.layui-nav .layui-nav-mored,.layuimini-menu-left-zoom.layui-nav-itemed>a .layui-nav-more{ + margin-top: -9px!important; +} + +.layuimini-menu-left .layui-nav-more:before,.layuimini-menu-left-zoom .layui-nav-more:before { + content: "\e61a"; +} +.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more,.layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more { + transform: rotate(180deg); + -ms-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -webkit-transform: rotate(180deg); + -o-transform: rotate(180deg); + width: 12px; + text-align: center; + border-style:none; +} + +.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more:before,.layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more:before { + content: '\e61a'; + background-color: transparent; + display: inline-block; + vertical-align: middle; +} + +/**修复左侧菜单字体不对齐的问题*/ +.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{ + width: 20px; +} + + +/** + PC版样式 + */ +@media screen and (min-width: 1025px) { + /**头部样式(缩放) */ + .layuimini-mini .layui-layout-left.layuimini-header-menu.layuimini-pc-show { + left: 155px !important; + } + + /**logo演示(缩放) */ + .layuimini-mini .layui-layout-admin .layuimini-logo { + width: 60px !important; + } + + .layuimini-mini .layui-layout-admin .layuimini-logo h1 { + display: none; + } + + /**左侧菜单栏(缩放) */ + .layuimini-mini .layuimini-menu-left { + width: 80px !important; + } + + .layuimini-mini .layui-side.layui-bg-black, .layuimini-mini .layuimini-menu-left > ul, .layuimini-mini .layuimini-menu-left > ul li i { + width: 60px !important; + } + + .layuimini-mini .layuimini-menu-left > ul li span:first-child { + display: none; + } + + .layuimini-mini .layuimini-menu-left > ul li span:last-child { + float: right; + right: 7px; + } + + .layuimini-mini .layuimini-menu-left .layui-nav .layui-nav-item a { + height: 40px; + line-height: 40px; + padding-right: 0px !important; + } + + /**内容主体(缩放) */ + .layuimini-mini .layui-layout-admin .layui-body { + left: 60px !important; + } + + .layuimini-mini .layuimini-tool { + left: 95px !important; + } + + .layuimini-pc-show{ + display: block; + } + .layuimini-mobile-show{ + display: none; + } + + /**菜单缩放*/ + .layuimini-mini .layuimini-menu-left .layui-nav-more,.layuimini-mini .layuimini-menu-left .layui-nav-child{ + display: none;!important; + } +} + +/** + 手机自适应样式 +*/ +@media screen and (max-width: 1024px) { + + /** + todo 修复低版本IOS不能滑动问题, 但还是有问题, 低版本IOS部分情况下子页面无法自适应 + */ + .layuimini-tab .layui-tab-content .layui-tab-item { + -webkit-overflow-scrolling: touch; + overflow: scroll; + width: 100%; + height: 100%; + } + + .layuimini-tab .layui-tab-content .layui-tab-item iframe { + height: 100%; + width: 100%; + } + + .layuimini-pc-show{ + display: none; + } + .layuimini-mobile-show{ + display: block; + } + .layuimini-header-content { + left: 0; + } + + .layui-layout-admin .layui-body .layui-tab-item.layui-show { + border-top: 1px solid #e2e2e2; + } + + .layuimini-all .layui-layout-left.layuimini-header-menu { + left: 15px !important + } + + .layuimini-mini .layui-layout-left.layuimini-header-menu { + left: 205px !important + } + + .layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) { + width: 40px !important; + } + + .layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) a { + padding: 0 15px; + } + + .layuimini-all .layui-layout-admin .layui-body { + left: 0px !important; + } + + .layuimini-mini .layui-layout-admin .layuimini-menu-left, .layuimini-mini .layui-header .layuimini-logo { + left: 0; + transition: left .2s; + z-index: 1001 !important; + } + + .layuimini-all .layui-layout-admin .layuimini-menu-left, .layuimini-all .layui-header .layuimini-logo { + left: -200px; + transition: left .2s; + top: 0; + z-index: 1002; + } + + .layuimini-mini .layui-layout-admin .layui-body { + left: 0!important; + transition: left .2s; + top: 0; + z-index: 998; + } + + .layuimini-mini .layuimini-make { + display: block; + } + + .layuimini-multi-module .layuimini-header-content .layuimini-tool { + display: none; + } + + .layuimini-single-module .layuimini-header-content .layuimini-tool { + left: 15px; + } + + .layuimini-mini .layuimini-site-mobile { + display: none !important; + } + + .layuimini-site-mobile { + display: block !important; + position: fixed; + z-index: 100000; + bottom: 15px; + left: 15px; + width: 40px; + height: 40px; + line-height: 40px; + border-radius: 2px; + text-align: center; + background-color: rgba(0, 0, 0, .7); + color: #fff; + } + + .layuimini-header-content { + z-index: 997; + } + + /*修复UC之类的浏览器点击无效*/ + .layuimini-make { + cursor: pointer; + } + + .layuimini-site-mobile { + cursor: pointer; + } +} + +@media screen and (max-width: 550px){ + + /**头部右侧数据*/ + .layuimini-multi-module.layuimini-mini .layuimini-header-content .layui-layout-right { + display: none; + } +} diff --git a/target/classes/static/css/public.css b/target/classes/static/css/public.css new file mode 100644 index 00000000..a4136318 --- /dev/null +++ b/target/classes/static/css/public.css @@ -0,0 +1,91 @@ +body { + margin: 15px 15px 15px 15px; + background: #f2f2f2; +} + +.layuimini-container { + border: 1px solid #f2f2f2; + border-radius: 5px; + background-color: #ffffff +} + +.layuimini-main { + margin: 10px 10px 10px 10px; +} + +/**必填红点 */ +.layuimini-form > .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; +} + +/**搜索框*/ +.layuimini-container .table-search-fieldset { + margin: 0; + border: 1px solid #e6e6e6; + padding: 10px 20px 5px 20px; + color: #6b6b6b; +} + +/**自定义滚动条样式 */ +::-webkit-scrollbar { + width: 6px; + height: 6px +} + +::-webkit-scrollbar-track { + background-color: transparent; + -webkit-border-radius: 2em; + -moz-border-radius: 2em; + border-radius: 2em; +} + +::-webkit-scrollbar-thumb { + background-color: #9c9da0; + -webkit-border-radius: 2em; + -moz-border-radius: 2em; + border-radius: 2em +} + +.my-shadow:hover { + box-shadow: 2px 0 4px rgba(0, 21, 41, .35); +} + +.my-card{ + cursor: pointer; + width: 100%; + display: inline-block; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.my-time{ + margin-top: 20px; + margin-bottom: 20px; +} +body{ + font-family: 华文楷体; + font-weight: bold; +} \ No newline at end of file diff --git a/target/classes/static/css/themes/default.css b/target/classes/static/css/themes/default.css new file mode 100644 index 00000000..4f3cefb3 --- /dev/null +++ b/target/classes/static/css/themes/default.css @@ -0,0 +1,95 @@ +/*头部右侧背景色 headerRightBg */ +.layui-layout-admin .layui-header { + background-color: #ffffff !important; +} + +/*头部右侧选中背景色 headerRightBgThis */ +.layui-layout-admin .layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #e4e4e4 !important; +} + +/*头部右侧字体颜色 headerRightColor */ +.layui-layout-admin .layui-header .layui-nav .layui-nav-item a { + color: rgba(107, 107, 107, 0.7); +} + +/**头部右侧下拉字体颜色 headerRightChildColor */ +.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child a { + color: rgba(107, 107, 107, 0.7) !important; +} + +/*头部右侧鼠标选中 headerRightColorThis */ +.layui-header .layuimini-menu-header-pc.layui-nav .layui-nav-item a:hover, .layui-header .layuimini-header-menu.layuimini-pc-show.layui-nav .layui-this a { + color: #565656 !important; +} + +/*头部右侧更多下拉颜色 headerRightNavMore */ +.layui-header .layui-nav .layui-nav-more { + border-top-color: rgba(160, 160, 160, 0.7) !important; +} + +/*头部右侧更多下拉颜色 headerRightNavMore */ +.layui-header .layui-nav .layui-nav-mored, .layui-header .layui-nav-itemed > a .layui-nav-more { + border-color: transparent transparent rgba(160, 160, 160, 0.7) !important; +} + +/**头部右侧更多下拉配置色 headerRightNavMoreBg headerRightNavMoreColor */ +.layui-header .layui-nav .layui-nav-child dd.layui-this a, .layui-header .layui-nav-child dd.layui-this, .layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child .layui-this a { + background-color: #1E9FFF !important; + color: #ffffff !important; +} + +/*头部缩放按钮样式 headerRightToolColor */ +.layui-layout-admin .layui-header .layuimini-tool i { + color: #565656; +} + +/*logo背景颜色 headerLogoBg */ +.layui-layout-admin .layuimini-logo { + background-color: #192027 !important; +} + +/*logo字体颜色 headerLogoColor */ +.layui-layout-admin .layuimini-logo h1 { + color: rgb(191, 187, 187); +} + +/*左侧菜单更多下拉样式 leftMenuNavMore */ +.layuimini-menu-left .layui-nav .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-more { + border-top-color: rgb(191, 187, 187); +} + +/*左侧菜单更多下拉样式 leftMenuNavMore */ +.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more { + border-color: transparent transparent rgb(191, 187, 187) !important; +} + +/*左侧菜单背景 leftMenuBg */ +.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul, .layuimini-menu-left-zoom > ul { + background-color: #28333E !important; +} + +/*左侧菜单选中背景 leftMenuBgThis */ +.layuimini-menu-left .layui-nav-tree .layui-this, .layuimini-menu-left .layui-nav-tree .layui-this > a, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a, .layuimini-menu-left-zoom.layui-nav-tree .layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-this > a, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a { + background-color: #1E9FFF !important +} + +/*左侧菜单子菜单背景 leftMenuChildBg */ +.layuimini-menu-left .layui-nav-itemed > .layui-nav-child { + background-color: #0c0f13 !important; +} + +/*左侧菜单字体颜色 leftMenuColor */ +.layuimini-menu-left .layui-nav .layui-nav-item a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a { + color: rgb(191, 187, 187) !important; +} + +/*左侧菜单选中字体颜色 leftMenuColorThis */ +.layuimini-menu-left .layui-nav .layui-nav-item a:hover, .layuimini-menu-left .layui-nav .layui-this a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a:hover, .layuimini-menu-left-zoom.layui-nav .layui-this a { + color: #ffffff !important; +} + +/**tab选项卡选中颜色 tabActiveColor */ +.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active { + background-color: #1e9fff; +} diff --git a/target/classes/static/images/bg.jpg b/target/classes/static/images/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5870f5033f1b0ff98b6e94db9f0a84d253c86d3 GIT binary patch literal 26174 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 G(SHHxA6>Qp literal 0 HcmV?d00001 diff --git a/target/classes/static/images/captcha.jpg b/target/classes/static/images/captcha.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92b2a33cc7b7c2c5b8e0ec15e0c8ec22eb05737e GIT binary patch literal 2493 zcmbW!dpy(o9|!R7Y_qwW&@hadxh0k`Ovh!*6xt%m<>Z!2>98>rGAhy%6HY}U9XLIN%+ttcZcB_*w*utQE!T~$*< zT@{5w>lowE+C~@@O3y;y$i&pl%uEwUAX?&WjQ5z~zYhUPNJvOaNh4)ska#VW7XE+E z)^h*>2XuiTFi0B^Lx8{t&{i9ux$T64{tEEVfW*KMs5lHRAt|-pP$v(Ffxuuf2p9^5 zK(@ORx8DH>0;-^8YA3#f>JQV7QpB^ei{TjiTAmVZa7kxR06j%QQh6s*MHQ=y)6+LF z+iPxNNw9KoB$4+!QJfFEdmQmR>UAt|ds!i&Vd0GE7-no-{F&7A7cQoyU&`R*T+7YN z|M~ijk~^h$@0FETR6ctAq^_R(w4w3E%eGhT9sJI&*Mc{1-wh4FADNt*o|&B!eiY3w zudJ@EZ+!W6^XqpP2mt@h+OB`Y{=^kJ_P) zXTcTivx{qa5|}--C8YrRpro>n*(7%PJMAyoe+NtXzhwV{{o6GHNP|J!p9e+&`+yDo zcPE{T&Aq0@Lv3!jmwlu zvqj|4f7ccFMDW7rgP;9P3zWj8 zerq~`M(Ms~Y1!NB*UfOE<}}~B+`7K0-nQ{*%-4xJ?Vdr3#_!h(zNSCxI$=IhCdK=G zs$jwL31`%&Bf=&acV%hGIrYp+nKUvgrF3<1kw)q{zQ7z?6`O{D`%GDavWL~SPXR=y1Y59@yR?Q2n}Mj>ot0q z&eU537@r7jS4pJfNV(xY01j9=2^1z~;ah(a)dR4`t zLhlvB(XaC%CqJH%kESSNk3dr`;LIg5Jt~==R956bZ88gbFqUOdK~7f=AX9vs;*h|Z zf^1%UR0478@;RlKyWdwotcIMD-Nev1z_8ZQ(=-XFThdce);KC0ALh5S`9{zAH^%PX z-dSv~vB!0up*q}M+?J+aye=m2H!8R%dKf!d(Y!m0Gv85(s8f zkJNn576S7hkA1R5KS`v$UKv|^(Nk$tPuU?^l#s)N^?c?B&m3P^O;qz8NJ0(s{B15y z(>PkX#nR@pV}VpeDNo5Fa5+e>qpFcT4@wc3W5Wa${1NUS?Jkpvh8U+ zo>4$IY(k{e>56!wx1YW>F+VrB5;MQ*|Mni|X5hZ!qbu}*ZF)Rvxii} z&#AoR%^>GP$Wzv?5eo$~Uhz58M8qaoN}n(jv49W9%7!pcN`XOvFx$An&5*ug(e8b#=6+ar8qWvgc& zcpZ@4`Cz)QZv5qLnQ_~hL;B>;5Z9hclc*Hr^qcJGqJ}$ho(Gmz4a1oK*nz5g zFk4vq<3VBO4@7GXLNC+cTG)L-#HP24Gwp!)jaT`Rd8P=T-0bc^5aV;79MZDgZD2XS z1%36E=j+fjz9ZO-6mDaNbGcoIlq@5sAZSA!uA};ihP}lnMZx%@x~Xf6UD<34pXH&4 zNp8oc1(OfcLReUC-qhYaEcBCbm}C6nIuIo9an(i`)kz?*Z7K{KZ>|aKG4*AXdtpaL zNV(N{xr&IR9h~32iZV?SDKoYG2LlT-9j4xKUjJ&furXYdi_4(6E;uI-PMl3zUC1Qh zRB*&27bXj>UyfLZG3^7v*48RI*vlwJHaifE>^QhSS9kcVV@tR}1NE5)7dV?7iQflu zH27vUUm5$j<8gHo%MwES{iL9a-zui6n<)nGy z@=zKxi6(R>QOzfsc`%s{((+XK$-h9ZudX7!j6X@*o4D|mslJd#B`LL0ToQ^ae5y=~ z>X0R2>X&#lA3e>3rXA{uqUB>%;_%{23h*xky-{1nA6?0C>z@n0@Obl*`q;%*`&oE( z{(6Jad@m#;)yO?r>RM;Vmo&`0)nVO?c#O7ns$yy}96k@{6XTGUn3Sm06iNMVr`272 zF11IQyfS;mi>|`xA48{pvJ|@bs8CmrYXyrC_5{$Ajyq2%h^rx)$mfbw(#UXmsi1Ye{0nDay#pj&mG;mm b;)y?V(rsXJdGpO0)n!edN>V(3ZtMM@RX$9i literal 0 HcmV?d00001 diff --git a/target/classes/static/images/donate_qrcode.png b/target/classes/static/images/donate_qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..079ac3d542efcad8389663f054f05de4ede24ae3 GIT binary patch literal 51506 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 T_&+*E$X`9%b}O${{f7M)Y3KGq literal 0 HcmV?d00001 diff --git a/target/classes/static/images/home.png b/target/classes/static/images/home.png new file mode 100644 index 0000000000000000000000000000000000000000..348ff2745beb8bf6946be005e27cb6962a841934 GIT binary patch literal 149782 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%0Ds1xS{U9LbzlC*VHT#VW=|1N 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
          jesNW1oZnN!6sWhb=&^5FW$Fa$TC3m-V@ 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%0ARx3e#^u} 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


          gxSeue`TOqSxn1Fc! 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

          S7_5}NdP=(gJcakr_b`@Gl$zm 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 W`{(}sU)BK4pW}kk96$jX1o~g>GJORA literal 0 HcmV?d00001 diff --git a/target/classes/static/images/logo_back.png b/target/classes/static/images/logo_back.png new file mode 100644 index 0000000000000000000000000000000000000000..fb86f6f6cfe3dadd52e3a1fa434023748084aead GIT binary patch literal 122259 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

          {8 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 + var cookieEnd=document.cookie.indexOf(";",cookieStart); + if(cookieEnd==-1){ + cookieEnd=document.cookie.length; + } + cookieValue=decodeURIComponent(document.cookie.substring(cookieStart + +cookieName.length,cookieEnd)); + }*/ + return cookieValue; + } +} diff --git a/target/classes/static/js/lay-config.js b/target/classes/static/js/lay-config.js new file mode 100644 index 00000000..dfda8c14 --- /dev/null +++ b/target/classes/static/js/lay-config.js @@ -0,0 +1,31 @@ +/** + * date:2019/08/16 + * author:Mr.Chung + * description:此处放layui自定义扩展 + * version:2.0.4 + */ + +window.rootPath = (function (src) { + src = document.scripts[document.scripts.length - 1].src; + return src.substring(0, src.lastIndexOf("/") + 1); +})(); + +layui.config({ + base: rootPath + "lay-module/", + version: true +}).extend({ + miniAdmin: "layuimini/miniAdmin", // layuimini后台扩展 + miniMenu: "layuimini/miniMenu", // layuimini菜单扩展 + miniTab: "layuimini/miniTab", // layuimini tab扩展 + miniTheme: "layuimini/miniTheme", // layuimini 主题扩展 + miniTongji: "layuimini/miniTongji", // layuimini 统计扩展 + step: 'step-lay/step', // 分步表单扩展 + treetable: 'treetable-lay/treetable', //table树形扩展 + tableSelect: 'tableSelect/tableSelect', // table选择扩展 + iconPickerFa: 'iconPicker/iconPickerFa', // fa图标选择扩展 + echarts: 'echarts/echarts', // echarts图表扩展 + echartsTheme: 'echarts/echartsTheme', // echarts图表主题扩展 + wangEditor: 'wangEditor/wangEditor', // wangEditor富文本扩展 + layarea: 'layarea/layarea', // 省市县区三级联动下拉选择器 + cardTable: 'cardTable/cardTable' //卡片表格拓展 +}); diff --git a/target/classes/static/js/lay-module/cardTable/cardTable.css b/target/classes/static/js/lay-module/cardTable/cardTable.css new file mode 100644 index 00000000..71449a3b --- /dev/null +++ b/target/classes/static/js/lay-module/cardTable/cardTable.css @@ -0,0 +1,92 @@ +.project-list-item { + background-color: #fff; + border-radius: 4px; + cursor: pointer; + transition: all .2s; +} + +.project-list-item:hover { + box-shadow: 2px 0 4px rgba(0, 21, 41, .35); +} + +.project-list-item .project-list-item-cover { + width: 100%; + height: 180px; + display: block; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.project-list-item-body { + padding: 20px; + border: 1px solid #e8e8e8; +} + +.project-list-item .project-list-item-body>h2 { + font-size: 16px; + color: #333; + margin-bottom: 12px; +} + +.project-list-item .project-list-item-text { + height: 40px; + overflow: hidden; + margin-bottom: 12px; +} + +.project-list-item .project-list-item-desc { + position: relative; +} + +.project-list-item .project-list-item-desc .time { + color: #999; + font-size: 12px; +} + +.project-list-item .project-list-item-desc .ew-head-list { + position: absolute; + right: 0; + top: 0; +} + +.ew-head-list .ew-head-list-item:first-child { + margin-left: 0; +} + +.ew-head-list .ew-head-list-item { + width: 22px; + height: 22px; + border-radius: 50%; + border: 1px solid #fff; + margin-left: -10px; +} + +.ew-head-list .ew-head-list-item { + width: 22px; + height: 22px; + border-radius: 50%; + border: 1px solid #fff; + margin-left: -10px; +} + +.cloud-card-component { + padding: 20px; +} + +.cloud-card-component .layui-laypage .layui-laypage-curr .layui-laypage-em { + border-radius: 0px !important; +} +.ew-table-loading { + padding: 10px 0; + text-align: center; +} +.ew-table-loading > i { + color: #999; + font-size: 30px; +} +.ew-table-loading.ew-loading-float { + position: absolute; + top: 0; + left: 0; + right: 0; +} \ No newline at end of file diff --git a/target/classes/static/js/lay-module/cardTable/cardTable.js b/target/classes/static/js/lay-module/cardTable/cardTable.js new file mode 100644 index 00000000..6218ab8b --- /dev/null +++ b/target/classes/static/js/lay-module/cardTable/cardTable.js @@ -0,0 +1,247 @@ +layui.define(['table', 'laypage','jquery', 'element'], function(exports) { + "use strict"; + var filePath = layui.cache.modules.cardTable + .substr(0, layui.cache.modules.cardTable.lastIndexOf('/')); + // 引入tablePlug.css + layui.link(filePath + '/cardTable.css'); + var MOD_NAME = 'cardTable', + $ = layui.jquery, + element = layui.element, + laypage = layui.laypage; + var _instances = {}; // 记录所有实例 + /* 默认参数 */ + var defaultOption = { + elem: "#currentTableId",// 构建的模型 + url: "",// 数据 url 连接 + loading: true,//是否加载 + limit: 0, //每页数量默认是每行数量的双倍 + linenum: 4, //每行数量 2,3,4,6 + currentPage: 1,//当前页 + data:[], //静态数据 + limits:[], //页码 + page: true, //是否分页 + layout: ['count', 'prev', 'page', 'next','limit', 'skip'],//分页控件 + request: { + pageName: 'page' //页码的参数名称,默认:page + , limitName: 'limit' //每页数据量的参数名,默认:limit + , idName: 'id' //主键名称,默认:id + , titleName: 'title' //标题名称,默认:title + , imageName: 'image' //图片地址,默认:image + , remarkName: 'remark' //备注名称,默认:remark + , timeName: 'time' //时间名称,默认:time + }, + response: { + statusName: 'code' //规定数据状态的字段名称,默认:code + , statusCode: 0 //规定成功的状态码,默认:0 + , msgName: 'msg' //规定状态信息的字段名称,默认:msg + , countName: 'count' //规定数据总数的字段名称,默认:count + , dataName: 'data' //规定数据列表的字段名称,默认:data + }, + // 完 成 函 数 + done: function () { + + } + }; + var card = function(opt) { + _instances[opt.elem.substring(1)] = this; + this.reload(opt); + }; + /** 参数设置 */ + card.prototype.initOptions = function (opt) { + this.option = $.extend(true, {}, defaultOption, opt); + if (!this.option.limit || this.option.limit == 0) { + this.option.limit = this.option.linenum * 2; + } + if (!this.option.limits || this.option.limits.length == 0) { + this.option.limits = [this.option.limit]; + } + }; + card.prototype.init = function () { + var option = this.option; + var url = option.url; + var html = ""; + html += option.loading == true ? '

          ' : '
          '; + html += ' '; + html += '
          '; + $(option.elem).html(html); + // 根 据 请 求 方 式 获 取 数 据 + html = ""; + if (!!url) { + if (url.indexOf("?") >= 0) { + url = url + '&v=1.0.0'; + } + else { + url = url + '?v=1.0.0'; + } + if (!!option.page) { + url = url + '&' + option.request.limitName + '=' + option.limit; + url = url + '&' + option.request.pageName + '=' + option.currentPage; + } + if (!!option.where) { + for (let key in option.where) { + url = url + '&' + key + '=' + option.where[key]; + } + } + var data = getData(url); + data = initData(data, option); + if (data.code != option.response.statusCode) { + option.data = []; + option.count = 0; + } else { + option.data = data.data; + option.count = option.data.length; + } + + } + else { + if (!option.alldata) { + option.alldata = option.data; + } + if (option.page) { + var data = []; + option.count = option.alldata.length; + for (var i = (option.currentPage - 1) * option.limit; i < option.currentPage * option.limit && i 0) { + html = createComponent(option.elem.substring(1), option.linenum, option.data); + html += "
          "; + } + else { + html = "

          没有数据

          "; + } + $(option.elem).html(html); + if (option.page) { + // 初始化分页组件 + laypage.render({ + elem: 'cardpage' + , count: option.count, limit: option.limit, limits: option.limits, curr: option.currentPage + , layout: option.layout + , jump: function (obj, first) { + option.limit = obj.limit; + option.currentPage = obj.curr; + if (!first) { + _instances[option.elem.substring(1)].reload(option); + } + } + }); + } + } + card.prototype.reload = function (opt) { + this.initOptions(this.option ? $.extend(true, this.option, opt) : opt); + this.init(); // 初始化表格 + } + + function createComponent(elem,linenum,data) { + var html = "
          " + var content = createCards(elem, linenum,data); + var page = ""; + content = content + page; + html += content + "
          " + return html; + } + /** 创建指定数量的卡片 */ + function createCards(elem, linenum,data) { + var content = "
          "; + for (var i = 0; i < data.length; i++) { + content += createCard(elem, linenum,data[i],i); + } + content += "
          "; + return content; + } + /** 创建一个卡片 */ + function createCard(elem, linenum, item, no) { + var line = 12 / linenum; + var card = + '

          ' + item.title + '

          ' + item.remark + '
          ' +item.time + '
          ' + return card; + } + /** 格式化返回参数 */ + function initData(tempData, option) { + var data = {}; + data.code = tempData[option.response.statusName]; + data.msg = tempData[option.response.msgName]; + data.count = tempData[option.response.countName]; + var dataList = tempData[option.response.dataName]; + data.data = []; + for (var i = 0; i < dataList.length; i++) { + var item = {}; + item.id = dataList[i][option.request.idName]; + item.image = dataList[i][option.request.imageName]; + item.title = dataList[i][option.request.titleName]; + item.remark = dataList[i][option.request.remarkName]; + item.time = dataList[i][option.request.timeName]; + data.data.push(item); + } + return data; + } + /** 同 步 请 求 获 取 数 据 */ + function getData(url) { + $.ajaxSettings.async = false; + var redata = null; + $.getJSON(url, function (data) { + redata = data; + }).fail(function () { + redata = null; + }); + return redata; + } + //卡片点击事件 + window.cardTableCheckedCard = function (elem,obj) { + $(obj).addClass('layui-table-click').siblings().removeClass('layui-table-click'); + var item = {}; + item.id = obj.id; + item.image = $(obj).find('.project-list-item-cover')[0].src; + item.title = $(obj).find('h2')[0].innerHTML; + item.remark = $(obj).find('.project-list-item-text')[0].innerHTML; + item.time = $(obj).find('.time')[0].innerHTML; + _instances[elem.id].option.checkedItem = item; + } + /** 对外提供的方法 */ + var tt = { + /* 渲染 */ + render: function (options) { + return new card(options); + }, + /* 重载 */ + reload: function (id, opt) { + _instances[id].option.checkedItem = null; + _instances[id].reload(opt); + }, + /* 获取选中数据 */ + getChecked: function (id) { + var option = _instances[id].option; + var data = option.checkedItem; + var item = {}; + if (!data) { + return null; + } + item[option.request.idName] = data.id; + item[option.request.imageName] = data.image; + item[option.request.titleName] = data.title; + item[option.request.remarkName] = data.remark; + item[option.request.timeName] = data.time; + return item; + }, + /* 获取表格数据 */ + getAllData: function (id) { + var option = _instances[id].option; + var data = []; + for (var i = 0; i < option.data.length; i++) { + var item = {}; + item[option.request.idName] = option.data[i].id; + item[option.request.imageName] = option.data[i].image; + item[option.request.titleName] = option.data[i].title; + item[option.request.remarkName] = option.data[i].remark; + item[option.request.timeName] = option.data[i].time; + data.push(item); + } + return data; + }, + } + exports(MOD_NAME, tt); +}) diff --git a/target/classes/static/js/lay-module/echarts/echarts.js b/target/classes/static/js/lay-module/echarts/echarts.js new file mode 100644 index 00000000..fcb939c2 --- /dev/null +++ b/target/classes/static/js/lay-module/echarts/echarts.js @@ -0,0 +1,19 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";function e(t){var e={},i={},n=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),a=t.match(/Edge\/([\d.]+)/),o=/micromessenger/i.test(t);return n&&(i.firefox=!0,i.version=n[1]),r&&(i.ie=!0,i.version=r[1]),a&&(i.edge=!0,i.version=a[1]),o&&(i.weChat=!0),{browser:i,os:e,node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!i.ie&&!i.edge,pointerEventsSupported:"onpointerdown"in window&&(i.edge||i.ie&&i.version>=11),domSupported:"undefined"!=typeof document}}function i(t,e){"createCanvas"===t&&(dg=null),ug[t]=e}function n(t){if(null==t||"object"!=typeof t)return t;var e=t,i=ng.call(t);if("[object Array]"===i){if(!R(t)){e=[];for(var r=0,a=t.length;a>r;r++)e[r]=n(t[r])}}else if(ig[i]){if(!R(t)){var o=t.constructor;if(t.constructor.from)e=o.from(t);else{e=new o(t.length);for(var r=0,a=t.length;a>r;r++)e[r]=n(t[r])}}}else if(!eg[i]&&!R(t)&&!T(t)){e={};for(var s in t)t.hasOwnProperty(s)&&(e[s]=n(t[s]))}return e}function r(t,e,i){if(!S(e)||!S(t))return i?n(e):t;for(var a in e)if(e.hasOwnProperty(a)){var o=t[a],s=e[a];!S(s)||!S(o)||_(s)||_(o)||T(s)||T(o)||M(s)||M(o)||R(s)||R(o)?!i&&a in t||(t[a]=n(e[a],!0)):r(o,s,i)}return t}function a(t,e){for(var i=t[0],n=1,a=t.length;a>n;n++)i=r(i,t[n],e);return i}function o(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function s(t,e,i){for(var n in e)e.hasOwnProperty(n)&&(i?null!=e[n]:null==t[n])&&(t[n]=e[n]);return t}function l(){return dg||(dg=cg().getContext("2d")),dg}function h(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var i=0,n=t.length;n>i;i++)if(t[i]===e)return i}return-1}function u(t,e){function i(){}var n=t.prototype;i.prototype=e.prototype,t.prototype=new i;for(var r in n)t.prototype[r]=n[r];t.prototype.constructor=t,t.superClass=e}function c(t,e,i){t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,s(t,e,i)}function d(t){return t?"string"==typeof t?!1:"number"==typeof t.length:void 0}function f(t,e,i){if(t&&e)if(t.forEach&&t.forEach===ag)t.forEach(e,i);else if(t.length===+t.length)for(var n=0,r=t.length;r>n;n++)e.call(i,t[n],n,t);else for(var a in t)t.hasOwnProperty(a)&&e.call(i,t[a],a,t)}function p(t,e,i){if(t&&e){if(t.map&&t.map===lg)return t.map(e,i);for(var n=[],r=0,a=t.length;a>r;r++)n.push(e.call(i,t[r],r,t));return n}}function g(t,e,i,n){if(t&&e){if(t.reduce&&t.reduce===hg)return t.reduce(e,i,n);for(var r=0,a=t.length;a>r;r++)i=e.call(n,i,t[r],r,t);return i}}function v(t,e,i){if(t&&e){if(t.filter&&t.filter===og)return t.filter(e,i);for(var n=[],r=0,a=t.length;a>r;r++)e.call(i,t[r],r,t)&&n.push(t[r]);return n}}function m(t,e,i){if(t&&e)for(var n=0,r=t.length;r>n;n++)if(e.call(i,t[n],n,t))return t[n]}function y(t,e){var i=sg.call(arguments,2);return function(){return t.apply(e,i.concat(sg.call(arguments)))}}function x(t){var e=sg.call(arguments,1);return function(){return t.apply(this,e.concat(sg.call(arguments)))}}function _(t){return"[object Array]"===ng.call(t)}function w(t){return"function"==typeof t}function b(t){return"[object String]"===ng.call(t)}function S(t){var e=typeof t;return"function"===e||!!t&&"object"==e}function M(t){return!!eg[ng.call(t)]}function I(t){return!!ig[ng.call(t)]}function T(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function C(t){return t!==t}function A(){for(var t=0,e=arguments.length;e>t;t++)if(null!=arguments[t])return arguments[t]}function D(t,e){return null!=t?t:e}function k(t,e,i){return null!=t?t:null!=e?e:i}function P(){return Function.call.apply(sg,arguments)}function L(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function O(t,e){if(!t)throw new Error(e)}function z(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function E(t){t[fg]=!0}function R(t){return t[fg]}function B(t){function e(t,e){i?n.set(t,e):n.set(e,t)}var i=_(t);this.data={};var n=this;t instanceof B?t.each(e):t&&f(t,e)}function N(t){return new B(t)}function F(t,e){for(var i=new t.constructor(t.length+e.length),n=0;n=0;if(r){var a="touchend"!=n?e.targetTouches[0]:e.changedTouches[0];a&&de(t,a,e,i)}else de(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var o=e.button;return null==e.which&&void 0!==o&&Mg.test(e.type)&&(e.which=1&o?1:2&o?3:4&o?2:0),e}function ge(t,e,i){Sg?t.addEventListener(e,i):t.attachEvent("on"+e,i)}function ve(t,e,i){Sg?t.removeEventListener(e,i):t.detachEvent("on"+e,i)}function me(t){return t.which>1}function ye(t,e,i){return{type:t,event:i,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta,zrByTouch:i.zrByTouch,which:i.which,stop:xe}}function xe(){Ig(this.event)}function _e(){}function we(t,e,i){if(t[t.rectHover?"rectContain":"contain"](e,i)){for(var n,r=t;r;){if(r.clipPath&&!r.clipPath.contain(e,i))return!1;r.silent&&(n=!0),r=r.parent}return n?Tg:!0}return!1}function be(){var t=new Dg(6);return Se(t),t}function Se(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Me(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Ie(t,e,i){var n=e[0]*i[0]+e[2]*i[1],r=e[1]*i[0]+e[3]*i[1],a=e[0]*i[2]+e[2]*i[3],o=e[1]*i[2]+e[3]*i[3],s=e[0]*i[4]+e[2]*i[5]+e[4],l=e[1]*i[4]+e[3]*i[5]+e[5];return t[0]=n,t[1]=r,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t}function Te(t,e,i){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+i[0],t[5]=e[5]+i[1],t}function Ce(t,e,i){var n=e[0],r=e[2],a=e[4],o=e[1],s=e[3],l=e[5],h=Math.sin(i),u=Math.cos(i);return t[0]=n*u+o*h,t[1]=-n*h+o*u,t[2]=r*u+s*h,t[3]=-r*h+u*s,t[4]=u*a+h*l,t[5]=u*l-h*a,t}function Ae(t,e,i){var n=i[0],r=i[1];return t[0]=e[0]*n,t[1]=e[1]*r,t[2]=e[2]*n,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*r,t}function De(t,e){var i=e[0],n=e[2],r=e[4],a=e[1],o=e[3],s=e[5],l=i*o-a*n;return l?(l=1/l,t[0]=o*l,t[1]=-a*l,t[2]=-n*l,t[3]=i*l,t[4]=(n*s-o*r)*l,t[5]=(a*r-i*s)*l,t):null}function ke(t){var e=be();return Me(e,t),e}function Pe(t){return t>Lg||-Lg>t}function Le(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null==t.loop?!1:t.loop,this.gap=t.gap||0,this.easing=t.easing||"Linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart,this._pausedTime=0,this._paused=!1}function Oe(t){return t=Math.round(t),0>t?0:t>255?255:t}function ze(t){return t=Math.round(t),0>t?0:t>360?360:t}function Ee(t){return 0>t?0:t>1?1:t}function Re(t){return Oe(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function Be(t){return Ee(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function Ne(t,e,i){return 0>i?i+=1:i>1&&(i-=1),1>6*i?t+(e-t)*i*6:1>2*i?e:2>3*i?t+(e-t)*(2/3-i)*6:t}function Fe(t,e,i){return t+(e-t)*i}function Ve(t,e,i,n,r){return t[0]=e,t[1]=i,t[2]=n,t[3]=r,t}function We(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Ge(t,e){Yg&&We(Yg,e),Yg=Xg.put(t,Yg||e.slice())}function He(t,e){if(t){e=e||[];var i=Xg.get(t);if(i)return We(e,i);t+="";var n=t.replace(/ /g,"").toLowerCase();if(n in Zg)return We(e,Zg[n]),Ge(t,e),e;if("#"!==n.charAt(0)){var r=n.indexOf("("),a=n.indexOf(")");if(-1!==r&&a+1===n.length){var o=n.substr(0,r),s=n.substr(r+1,a-(r+1)).split(","),l=1;switch(o){case"rgba":if(4!==s.length)return void Ve(e,0,0,0,1);l=Be(s.pop());case"rgb":return 3!==s.length?void Ve(e,0,0,0,1):(Ve(e,Re(s[0]),Re(s[1]),Re(s[2]),l),Ge(t,e),e);case"hsla":return 4!==s.length?void Ve(e,0,0,0,1):(s[3]=Be(s[3]),Ze(s,e),Ge(t,e),e);case"hsl":return 3!==s.length?void Ve(e,0,0,0,1):(Ze(s,e),Ge(t,e),e);default:return}}Ve(e,0,0,0,1)}else{if(4===n.length){var h=parseInt(n.substr(1),16);return h>=0&&4095>=h?(Ve(e,(3840&h)>>4|(3840&h)>>8,240&h|(240&h)>>4,15&h|(15&h)<<4,1),Ge(t,e),e):void Ve(e,0,0,0,1)}if(7===n.length){var h=parseInt(n.substr(1),16);return h>=0&&16777215>=h?(Ve(e,(16711680&h)>>16,(65280&h)>>8,255&h,1),Ge(t,e),e):void Ve(e,0,0,0,1)}}}}function Ze(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=Be(t[1]),r=Be(t[2]),a=.5>=r?r*(n+1):r+n-r*n,o=2*r-a;return e=e||[],Ve(e,Oe(255*Ne(o,a,i+1/3)),Oe(255*Ne(o,a,i)),Oe(255*Ne(o,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Xe(t){if(t){var e,i,n=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.min(n,r,a),s=Math.max(n,r,a),l=s-o,h=(s+o)/2;if(0===l)e=0,i=0;else{i=.5>h?l/(s+o):l/(2-s-o);var u=((s-n)/6+l/2)/l,c=((s-r)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-c:r===s?e=1/3+u-d:a===s&&(e=2/3+c-u),0>e&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,h];return null!=t[3]&&f.push(t[3]),f}}function Ye(t,e){var i=He(t);if(i){for(var n=0;3>n;n++)i[n]=0>e?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,i[n]>255?i[n]=255:t[n]<0&&(i[n]=0);return Qe(i,4===i.length?"rgba":"rgb")}}function je(t){var e=He(t);return e?((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1):void 0}function qe(t,e,i){if(e&&e.length&&t>=0&&1>=t){i=i||[];var n=t*(e.length-1),r=Math.floor(n),a=Math.ceil(n),o=e[r],s=e[a],l=n-r;return i[0]=Oe(Fe(o[0],s[0],l)),i[1]=Oe(Fe(o[1],s[1],l)),i[2]=Oe(Fe(o[2],s[2],l)),i[3]=Ee(Fe(o[3],s[3],l)),i}}function Ue(t,e,i){if(e&&e.length&&t>=0&&1>=t){var n=t*(e.length-1),r=Math.floor(n),a=Math.ceil(n),o=He(e[r]),s=He(e[a]),l=n-r,h=Qe([Oe(Fe(o[0],s[0],l)),Oe(Fe(o[1],s[1],l)),Oe(Fe(o[2],s[2],l)),Ee(Fe(o[3],s[3],l))],"rgba");return i?{color:h,leftIndex:r,rightIndex:a,value:n}:h}}function $e(t,e,i,n){return t=He(t),t?(t=Xe(t),null!=e&&(t[0]=ze(e)),null!=i&&(t[1]=Be(i)),null!=n&&(t[2]=Be(n)),Qe(Ze(t),"rgba")):void 0}function Ke(t,e){return t=He(t),t&&null!=e?(t[3]=Ee(e),Qe(t,"rgba")):void 0}function Qe(t,e){if(t&&t.length){var i=t[0]+","+t[1]+","+t[2];return("rgba"===e||"hsva"===e||"hsla"===e)&&(i+=","+t[3]),e+"("+i+")"}}function Je(t,e){return t[e]}function ti(t,e,i){t[e]=i}function ei(t,e,i){return(e-t)*i+t}function ii(t,e,i){return i>.5?e:t}function ni(t,e,i,n,r){var a=t.length;if(1==r)for(var o=0;a>o;o++)n[o]=ei(t[o],e[o],i);else for(var s=a&&t[0].length,o=0;a>o;o++)for(var l=0;s>l;l++)n[o][l]=ei(t[o][l],e[o][l],i)}function ri(t,e,i){var n=t.length,r=e.length;if(n!==r){var a=n>r;if(a)t.length=r;else for(var o=n;r>o;o++)t.push(1===i?e[o]:$g.call(e[o]))}for(var s=t[0]&&t[0].length,o=0;ol;l++)isNaN(t[o][l])&&(t[o][l]=e[o][l])}function ai(t,e,i){if(t===e)return!0;var n=t.length;if(n!==e.length)return!1;if(1===i){for(var r=0;n>r;r++)if(t[r]!==e[r])return!1}else for(var a=t[0].length,r=0;n>r;r++)for(var o=0;a>o;o++)if(t[r][o]!==e[r][o])return!1;return!0}function oi(t,e,i,n,r,a,o,s,l){var h=t.length;if(1==l)for(var u=0;h>u;u++)s[u]=si(t[u],e[u],i[u],n[u],r,a,o);else for(var c=t[0].length,u=0;h>u;u++)for(var d=0;c>d;d++)s[u][d]=si(t[u][d],e[u][d],i[u][d],n[u][d],r,a,o)}function si(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}function li(t){if(d(t)){var e=t.length;if(d(t[0])){for(var i=[],n=0;e>n;n++)i.push($g.call(t[n]));return i}return $g.call(t)}return t}function hi(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}function ui(t){var e=t[t.length-1].value;return d(e&&e[0])?2:1}function ci(t,e,i,n,r,a){var o=t._getter,s=t._setter,l="spline"===e,h=n.length;if(h){var u,c=n[0].value,f=d(c),p=!1,g=!1,v=f?ui(n):0;n.sort(function(t,e){return t.time-e.time}),u=n[h-1].time;for(var m=[],y=[],x=n[0].value,_=!0,w=0;h>w;w++){m.push(n[w].time/u);var b=n[w].value;if(f&&ai(b,x,v)||!f&&b===x||(_=!1),x=b,"string"==typeof b){var S=He(b);S?(b=S,p=!0):g=!0}y.push(b)}if(a||!_){for(var M=y[h-1],w=0;h-1>w;w++)f?ri(y[w],M,v):!isNaN(y[w])||isNaN(M)||g||p||(y[w]=M);f&&ri(o(t._target,r),M,v);var I,T,C,A,D,k,P=0,L=0;if(p)var O=[0,0,0,0];var z=function(t,e){var i;if(0>e)i=0;else if(L>e){for(I=Math.min(P+1,h-1),i=I;i>=0&&!(m[i]<=e);i--);i=Math.min(i,h-2)}else{for(i=P;h>i&&!(m[i]>e);i++);i=Math.min(i-1,h-2)}P=i,L=e;var n=m[i+1]-m[i];if(0!==n)if(T=(e-m[i])/n,l)if(A=y[i],C=y[0===i?i:i-1],D=y[i>h-2?h-1:i+1],k=y[i>h-3?h-1:i+2],f)oi(C,A,D,k,T,T*T,T*T*T,o(t,r),v);else{var a;if(p)a=oi(C,A,D,k,T,T*T,T*T*T,O,1),a=hi(O);else{if(g)return ii(A,D,T);a=si(C,A,D,k,T,T*T,T*T*T)}s(t,r,a)}else if(f)ni(y[i],y[i+1],T,o(t,r),v);else{var a;if(p)ni(y[i],y[i+1],T,O,1),a=hi(O);else{if(g)return ii(y[i],y[i+1],T);a=ei(y[i],y[i+1],T)}s(t,r,a)}},E=new Le({target:t._target,life:u,loop:t._loop,delay:t._delay,onframe:z,ondestroy:i});return e&&"spline"!==e&&(E.easing=e),E}}}function di(t,e,i,n,r,a,o,s){function l(){u--,u||a&&a()}b(n)?(a=r,r=n,n=0):w(r)?(a=r,r="linear",n=0):w(n)?(a=n,n=0):w(i)?(a=i,i=500):i||(i=500),t.stopAnimation(),fi(t,"",t,e,i,n,s);var h=t.animators.slice(),u=h.length;u||a&&a();for(var c=0;c0&&t.animate(e,!1).when(null==r?500:r,s).delay(a||0)}function pi(t,e,i,n){if(e){var r={};r[e]={},r[e][i]=n,t.attr(r)}else t.attr(i,n)}function gi(t,e,i,n){0>i&&(t+=i,i=-i),0>n&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}function vi(t){for(var e=0;t>=hv;)e|=1&t,t>>=1;return t+e}function mi(t,e,i,n){var r=e+1;if(r===i)return 1;if(n(t[r++],t[e])<0){for(;i>r&&n(t[r],t[r-1])<0;)r++;yi(t,e,r)}else for(;i>r&&n(t[r],t[r-1])>=0;)r++;return r-e}function yi(t,e,i){for(i--;i>e;){var n=t[e];t[e++]=t[i],t[i--]=n}}function xi(t,e,i,n,r){for(n===e&&n++;i>n;n++){for(var a,o=t[n],s=e,l=n;l>s;)a=s+l>>>1,r(o,t[a])<0?l=a:s=a+1;var h=n-s;switch(h){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;h>0;)t[s+h]=t[s+h-1],h--}t[s]=o}}function _i(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])>0){for(s=n-r;s>l&&a(t,e[i+r+l])>0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}else{for(s=r+1;s>l&&a(t,e[i+r-l])<=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var h=o;o=r-l,l=r-h}for(o++;l>o;){var u=o+(l-o>>>1);a(t,e[i+u])>0?o=u+1:l=u}return l}function wi(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])<0){for(s=r+1;s>l&&a(t,e[i+r-l])<0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var h=o;o=r-l,l=r-h}else{for(s=n-r;s>l&&a(t,e[i+r+l])>=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}for(o++;l>o;){var u=o+(l-o>>>1);a(t,e[i+u])<0?l=u:o=u+1}return l}function bi(t,e){function i(t,e){l[c]=t,h[c]=e,c+=1}function n(){for(;c>1;){var t=c-2;if(t>=1&&h[t-1]<=h[t]+h[t+1]||t>=2&&h[t-2]<=h[t]+h[t-1])h[t-1]h[t+1])break;a(t)}}function r(){for(;c>1;){var t=c-2;t>0&&h[t-1]=r?o(n,r,a,u):s(n,r,a,u)))}function o(i,n,r,a){var o=0;for(o=0;n>o;o++)d[o]=t[i+o];var s=0,l=r,h=i;if(t[h++]=t[l++],0!==--a){if(1===n){for(o=0;a>o;o++)t[h+o]=t[l+o];return void(t[h+a]=d[s])}for(var c,f,p,g=u;;){c=0,f=0,p=!1;do if(e(t[l],d[s])<0){if(t[h++]=t[l++],f++,c=0,0===--a){p=!0;break}}else if(t[h++]=d[s++],c++,f=0,1===--n){p=!0;break}while(g>(c|f));if(p)break;do{if(c=wi(t[l],d,s,n,0,e),0!==c){for(o=0;c>o;o++)t[h+o]=d[s+o];if(h+=c,s+=c,n-=c,1>=n){p=!0;break}}if(t[h++]=t[l++],0===--a){p=!0;break}if(f=_i(d[s],t,l,a,0,e),0!==f){for(o=0;f>o;o++)t[h+o]=t[l+o];if(h+=f,l+=f,a-=f,0===a){p=!0;break}}if(t[h++]=d[s++],1===--n){p=!0;break}g--}while(c>=uv||f>=uv);if(p)break;0>g&&(g=0),g+=2}if(u=g,1>u&&(u=1),1===n){for(o=0;a>o;o++)t[h+o]=t[l+o];t[h+a]=d[s]}else{if(0===n)throw new Error;for(o=0;n>o;o++)t[h+o]=d[s+o]}}else for(o=0;n>o;o++)t[h+o]=d[s+o]}function s(i,n,r,a){var o=0;for(o=0;a>o;o++)d[o]=t[r+o];var s=i+n-1,l=a-1,h=r+a-1,c=0,f=0;if(t[h--]=t[s--],0!==--n){if(1===a){for(h-=n,s-=n,f=h+1,c=s+1,o=n-1;o>=0;o--)t[f+o]=t[c+o];return void(t[h]=d[l])}for(var p=u;;){var g=0,v=0,m=!1;do if(e(d[l],t[s])<0){if(t[h--]=t[s--],g++,v=0,0===--n){m=!0;break}}else if(t[h--]=d[l--],v++,g=0,1===--a){m=!0;break}while(p>(g|v));if(m)break;do{if(g=n-wi(d[l],t,i,n,n-1,e),0!==g){for(h-=g,s-=g,n-=g,f=h+1,c=s+1,o=g-1;o>=0;o--)t[f+o]=t[c+o];if(0===n){m=!0;break}}if(t[h--]=d[l--],1===--a){m=!0;break}if(v=a-_i(t[s],d,0,a,a-1,e),0!==v){for(h-=v,l-=v,a-=v,f=h+1,c=l+1,o=0;v>o;o++)t[f+o]=d[c+o];if(1>=a){m=!0;break}}if(t[h--]=t[s--],0===--n){m=!0;break}p--}while(g>=uv||v>=uv);if(m)break;0>p&&(p=0),p+=2}if(u=p,1>u&&(u=1),1===a){for(h-=n,s-=n,f=h+1,c=s+1,o=n-1;o>=0;o--)t[f+o]=t[c+o];t[h]=d[l]}else{if(0===a)throw new Error;for(c=h-(a-1),o=0;a>o;o++)t[c+o]=d[o]}}else for(c=h-(a-1),o=0;a>o;o++)t[c+o]=d[o]}var l,h,u=uv,c=0,d=[];l=[],h=[],this.mergeRuns=n,this.forceMergeRuns=r,this.pushRun=i}function Si(t,e,i,n){i||(i=0),n||(n=t.length);var r=n-i;if(!(2>r)){var a=0;if(hv>r)return a=mi(t,i,n,e),void xi(t,i,n,i+a,e);var o=new bi(t,e),s=vi(r);do{if(a=mi(t,i,n,e),s>a){var l=r;l>s&&(l=s),xi(t,i,i+l,i+a,e),a=l}o.pushRun(i,a),o.mergeRuns(),r-=a,i+=a}while(0!==r);o.forceMergeRuns()}}function Mi(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function Ii(t,e,i){var n=null==e.x?0:e.x,r=null==e.x2?1:e.x2,a=null==e.y?0:e.y,o=null==e.y2?0:e.y2;e.global||(n=n*i.width+i.x,r=r*i.width+i.x,a=a*i.height+i.y,o=o*i.height+i.y),n=isNaN(n)?0:n,r=isNaN(r)?1:r,a=isNaN(a)?0:a,o=isNaN(o)?0:o;var s=t.createLinearGradient(n,a,r,o);return s}function Ti(t,e,i){var n=i.width,r=i.height,a=Math.min(n,r),o=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;e.global||(o=o*n+i.x,s=s*r+i.y,l*=a);var h=t.createRadialGradient(o,s,0,o,s,l);return h}function Ci(){return!1}function Ai(t,e,i){var n=cg(),r=e.getWidth(),a=e.getHeight(),o=n.style;return o&&(o.position="absolute",o.left=0,o.top=0,o.width=r+"px",o.height=a+"px",n.setAttribute("data-zr-dom-id",t)),n.width=r*i,n.height=a*i,n}function Di(t){if("string"==typeof t){var e=bv.get(t);return e&&e.image}return t}function ki(t,e,i,n,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!i)return e;var a=bv.get(t),o={hostEl:i,cb:n,cbPayload:r};return a?(e=a.image,!Li(e)&&a.pending.push(o)):(!e&&(e=new Image),e.onload=e.onerror=Pi,bv.put(t,e.__cachedImgObj={image:e,pending:[o]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Pi(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;ea;a++)r=Math.max(Yi(n[a],e).width,r);return Mv>Iv&&(Mv=0,Sv={}),Mv++,Sv[i]=r,r}function Ei(t,e,i,n,r,a,o){return a?Bi(t,e,i,n,r,a,o):Ri(t,e,i,n,r,o)}function Ri(t,e,i,n,r,a){var o=ji(t,e,r,a),s=zi(t,e);r&&(s+=r[1]+r[3]);var l=o.outerHeight,h=Ni(0,s,i),u=Fi(0,l,n),c=new gi(h,u,s,l);return c.lineHeight=o.lineHeight,c}function Bi(t,e,i,n,r,a,o){var s=qi(t,{rich:a,truncate:o,font:e,textAlign:i,textPadding:r}),l=s.outerWidth,h=s.outerHeight,u=Ni(0,l,i),c=Fi(0,h,n);return new gi(u,c,l,h)}function Ni(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function Fi(t,e,i){return"middle"===i?t-=e/2:"bottom"===i&&(t-=e),t}function Vi(t,e,i){var n=e.x,r=e.y,a=e.height,o=e.width,s=a/2,l="left",h="top";switch(t){case"left":n-=i,r+=s,l="right",h="middle";break;case"right":n+=i+o,r+=s,h="middle";break;case"top":n+=o/2,r-=i,l="center",h="bottom";break;case"bottom":n+=o/2,r+=a+i,l="center";break;case"inside":n+=o/2,r+=s,l="center",h="middle";break;case"insideLeft":n+=i,r+=s,h="middle";break;case"insideRight":n+=o-i,r+=s,l="right",h="middle";break;case"insideTop":n+=o/2,r+=i,l="center";break;case"insideBottom":n+=o/2,r+=a-i,l="center",h="bottom";break;case"insideTopLeft":n+=i,r+=i;break;case"insideTopRight":n+=o-i,r+=i,l="right";break;case"insideBottomLeft":n+=i,r+=a-i,h="bottom";break;case"insideBottomRight":n+=o-i,r+=a-i,l="right",h="bottom"}return{x:n,y:r,textAlign:l,textVerticalAlign:h}}function Wi(t,e,i,n,r){if(!e)return"";var a=(t+"").split("\n");r=Gi(e,i,n,r);for(var o=0,s=a.length;s>o;o++)a[o]=Hi(a[o],r);return a.join("\n")}function Gi(t,e,i,n){n=o({},n),n.font=e;var i=D(i,"...");n.maxIterations=D(n.maxIterations,2);var r=n.minChar=D(n.minChar,0);n.cnCharWidth=zi("国",e);var a=n.ascCharWidth=zi("a",e);n.placeholder=D(n.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;r>l&&s>=a;l++)s-=a;var h=zi(i);return h>s&&(i="",h=0),s=t-h,n.ellipsis=i,n.ellipsisWidth=h,n.contentWidth=s,n.containerWidth=t,n}function Hi(t,e){var i=e.containerWidth,n=e.font,r=e.contentWidth;if(!i)return"";var a=zi(t,n);if(i>=a)return t;for(var o=0;;o++){if(r>=a||o>=e.maxIterations){t+=e.ellipsis;break}var s=0===o?Zi(t,r,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*r/a):0;t=t.substr(0,s),a=zi(t,n)}return""===t&&(t=e.placeholder),t}function Zi(t,e,i,n){for(var r=0,a=0,o=t.length;o>a&&e>r;a++){var s=t.charCodeAt(a);r+=s>=0&&127>=s?i:n}return a}function Xi(t){return zi("国",t)}function Yi(t,e){return Av.measureText(t,e)}function ji(t,e,i,n){null!=t&&(t+="");var r=Xi(e),a=t?t.split("\n"):[],o=a.length*r,s=o;if(i&&(s+=i[0]+i[2]),t&&n){var l=n.outerHeight,h=n.outerWidth;if(null!=l&&s>l)t="",a=[];else if(null!=h)for(var u=Gi(h-(i?i[1]+i[3]:0),e,n.ellipsis,{minChar:n.minChar,placeholder:n.placeholder}),c=0,d=a.length;d>c;c++)a[c]=Hi(a[c],u)}return{lines:a,height:o,outerHeight:s,lineHeight:r}}function qi(t,e){var i={lines:[],width:0,height:0};if(null!=t&&(t+=""),!t)return i;for(var n,r=Tv.lastIndex=0;null!=(n=Tv.exec(t));){var a=n.index;a>r&&Ui(i,t.substring(r,a)),Ui(i,n[2],n[1]),r=Tv.lastIndex}rf)return{lines:[],width:0,height:0};x.textWidth=zi(x.text,b);var M=_.textWidth,I=null==M||"auto"===M;if("string"==typeof M&&"%"===M.charAt(M.length-1))x.percentWidth=M,h.push(x),M=0;else{if(I){M=x.textWidth;var T=_.textBackgroundColor,C=T&&T.image;C&&(C=Di(C),Li(C)&&(M=Math.max(M,C.width*S/C.height)))}var A=w?w[1]+w[3]:0;M+=A;var P=null!=d?d-m:null;null!=P&&M>P&&(!I||A>P?(x.text="",x.textWidth=M=0):(x.text=Wi(x.text,P-A,b,c.ellipsis,{minChar:c.minChar}),x.textWidth=zi(x.text,b),M=x.textWidth+A))}m+=x.width=M,_&&(v=Math.max(v,x.lineHeight))}g.width=m,g.lineHeight=v,s+=v,l=Math.max(l,m)}i.outerWidth=i.width=D(e.textWidth,l),i.outerHeight=i.height=D(e.textHeight,s),u&&(i.outerWidth+=u[1]+u[3],i.outerHeight+=u[0]+u[2]);for(var p=0;pl&&(o+=l,l=-l),0>h&&(s+=h,h=-h),"number"==typeof u?i=n=r=a=u:u instanceof Array?1===u.length?i=n=r=a=u[0]:2===u.length?(i=r=u[0],n=a=u[1]):3===u.length?(i=u[0],n=a=u[1],r=u[2]):(i=u[0],n=u[1],r=u[2],a=u[3]):i=n=r=a=0;var c;i+n>l&&(c=i+n,i*=l/c,n*=l/c),r+a>l&&(c=r+a,r*=l/c,a*=l/c),n+r>h&&(c=n+r,n*=h/c,r*=h/c),i+a>h&&(c=i+a,i*=h/c,a*=h/c),t.moveTo(o+i,s),t.lineTo(o+l-n,s),0!==n&&t.arc(o+l-n,s+n,n,-Math.PI/2,0),t.lineTo(o+l,s+h-r),0!==r&&t.arc(o+l-r,s+h-r,r,0,Math.PI/2),t.lineTo(o+a,s+h),0!==a&&t.arc(o+a,s+h-a,a,Math.PI/2,Math.PI),t.lineTo(o,s+i),0!==i&&t.arc(o+i,s+i,i,Math.PI,1.5*Math.PI)}function Qi(t){return Ji(t),f(t.rich,Ji),t}function Ji(t){if(t){t.font=$i(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||Dv[e]?e:"left";var i=t.textVerticalAlign||t.textBaseline;"center"===i&&(i="middle"),t.textVerticalAlign=null==i||kv[i]?i:"top";var n=t.textPadding;n&&(t.textPadding=L(t.textPadding))}}function tn(t,e,i,n,r,a){n.rich?nn(t,e,i,n,r):en(t,e,i,n,r,a)}function en(t,e,i,n,r,a){var o=a&&a.style,s=o&&"text"===a.type,l=n.font||Cv;s&&l===(o.font||Cv)||(e.font=l);var h=t.__computedFont;t.__styleFont!==l&&(t.__styleFont=l,h=t.__computedFont=e.font);var u=n.textPadding,c=t.__textCotentBlock;(!c||t.__dirtyText)&&(c=t.__textCotentBlock=ji(i,h,u,n.truncate));var d=c.outerHeight,f=c.lines,p=c.lineHeight,g=un(d,n,r),v=g.baseX,m=g.baseY,y=g.textAlign||"left",x=g.textVerticalAlign;an(e,n,r,v,m);var _=Fi(m,d,x),w=v,b=_,S=sn(n);if(S||u){var M=zi(i,h),I=M;u&&(I+=u[1]+u[3]);var T=Ni(v,I,y);S&&ln(t,e,n,T,_,I,d),u&&(w=gn(v,y,u),b+=u[0])}e.textAlign=y,e.textBaseline="middle";for(var C=0;CT&&(_=b[T],!_.textAlign||"left"===_.textAlign);)on(t,e,_,n,M,m,C,"left"),I-=_.width,C+=_.width,T++;for(;D>=0&&(_=b[D],"right"===_.textAlign);)on(t,e,_,n,M,m,A,"right"),I-=_.width,A-=_.width,D--;for(C+=(a-(C-v)-(y-A)-I)/2;D>=T;)_=b[T],on(t,e,_,n,M,m,C+_.width/2,"center"),C+=_.width,T++;m+=M}}function an(t,e,i,n,r){if(i&&e.textRotation){var a=e.textOrigin;"center"===a?(n=i.width/2+i.x,r=i.height/2+i.y):a&&(n=a[0]+i.x,r=a[1]+i.y),t.translate(n,r),t.rotate(-e.textRotation),t.translate(-n,-r)}}function on(t,e,i,n,r,a,o,s){var l=n.rich[i.styleName]||{};l.text=i.text;var h=i.textVerticalAlign,u=a+r/2;"top"===h?u=a+i.height/2:"bottom"===h&&(u=a+r-i.height/2),!i.isLineHolder&&sn(l)&&ln(t,e,l,"right"===s?o-i.width:"center"===s?o-i.width/2:o,u-i.height/2,i.width,i.height);var c=i.textPadding;c&&(o=gn(o,s,c),u-=i.height/2-c[2]-i.textHeight/2),cn(e,"shadowBlur",k(l.textShadowBlur,n.textShadowBlur,0)),cn(e,"shadowColor",l.textShadowColor||n.textShadowColor||"transparent"),cn(e,"shadowOffsetX",k(l.textShadowOffsetX,n.textShadowOffsetX,0)),cn(e,"shadowOffsetY",k(l.textShadowOffsetY,n.textShadowOffsetY,0)),cn(e,"textAlign",s),cn(e,"textBaseline","middle"),cn(e,"font",i.font||Cv);var d=dn(l.textStroke||n.textStroke,p),f=fn(l.textFill||n.textFill),p=D(l.textStrokeWidth,n.textStrokeWidth);d&&(cn(e,"lineWidth",p),cn(e,"strokeStyle",d),e.strokeText(i.text,o,u)),f&&(cn(e,"fillStyle",f),e.fillText(i.text,o,u))}function sn(t){return t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor}function ln(t,e,i,n,r,a,o){var s=i.textBackgroundColor,l=i.textBorderWidth,h=i.textBorderColor,u=b(s);if(cn(e,"shadowBlur",i.textBoxShadowBlur||0),cn(e,"shadowColor",i.textBoxShadowColor||"transparent"),cn(e,"shadowOffsetX",i.textBoxShadowOffsetX||0),cn(e,"shadowOffsetY",i.textBoxShadowOffsetY||0),u||l&&h){e.beginPath();var c=i.textBorderRadius;c?Ki(e,{x:n,y:r,width:a,height:o,r:c}):e.rect(n,r,a,o),e.closePath()}if(u)if(cn(e,"fillStyle",s),null!=i.fillOpacity){var d=e.globalAlpha;e.globalAlpha=i.fillOpacity*i.opacity,e.fill(),e.globalAlpha=d}else e.fill();else if(w(s))cn(e,"fillStyle",s(i)),e.fill();else if(S(s)){var f=s.image;f=ki(f,null,t,hn,s),f&&Li(f)&&e.drawImage(f,n,r,a,o)}if(l&&h)if(cn(e,"lineWidth",l),cn(e,"strokeStyle",h),null!=i.strokeOpacity){var d=e.globalAlpha;e.globalAlpha=i.strokeOpacity*i.opacity,e.stroke(),e.globalAlpha=d}else e.stroke()}function hn(t,e){e.image=t}function un(t,e,i){var n=e.x||0,r=e.y||0,a=e.textAlign,o=e.textVerticalAlign;if(i){var s=e.textPosition;if(s instanceof Array)n=i.x+pn(s[0],i.width),r=i.y+pn(s[1],i.height);else{var l=Vi(s,i,e.textDistance);n=l.x,r=l.y,a=a||l.textAlign,o=o||l.textVerticalAlign}var h=e.textOffset;h&&(n+=h[0],r+=h[1])}return{baseX:n,baseY:r,textAlign:a,textVerticalAlign:o}}function cn(t,e,i){return t[e]=fv(t,e,i),t[e]}function dn(t,e){return null==t||0>=e||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function fn(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function pn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function gn(t,e,i){return"right"===e?t-i[1]:"center"===e?t+i[3]/2-i[1]/2:t+i[3]}function vn(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function mn(t){t=t||{},rv.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new gv(t.style,this),this._rect=null,this.__clipPaths=[] +}function yn(t){mn.call(this,t)}function xn(t){return parseInt(t,10)}function _n(t){return t?t.__builtin__?!0:"function"!=typeof t.resize||"function"!=typeof t.refresh?!1:!0:!1}function wn(t,e,i){return Nv.copy(t.getBoundingRect()),t.transform&&Nv.applyTransform(t.transform),Fv.width=e,Fv.height=i,!Nv.intersect(Fv)}function bn(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;in;n++){var a=i[n];!t.emphasis[e].hasOwnProperty(a)&&t[e].hasOwnProperty(a)&&(t.emphasis[e][a]=t[e][a])}}}function Vn(t){return!rm(t)||am(t)||t instanceof Date?t:t.value}function Wn(t){return rm(t)&&!(t instanceof Array)}function Gn(t,e){e=(e||[]).slice();var i=p(t||[],function(t){return{exist:t}});return nm(e,function(t,n){if(rm(t)){for(var r=0;r=i.length&&i.push({option:t})}}),i}function Hn(t){var e=N();nm(t,function(t){var i=t.exist;i&&e.set(i.id,t)}),nm(t,function(t){var i=t.option;O(!i||null==i.id||!e.get(i.id)||e.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&e.set(i.id,t),!t.keyInfo&&(t.keyInfo={})}),nm(t,function(t,i){var n=t.exist,r=t.option,a=t.keyInfo;if(rm(r)){if(a.name=null!=r.name?r.name+"":n?n.name:om+i,n)a.id=n.id;else if(null!=r.id)a.id=r.id+"";else{var o=0;do a.id="\x00"+a.name+"\x00"+o++;while(e.get(a.id))}e.set(a.id,t)}})}function Zn(t){var e=t.name;return!(!e||!e.indexOf(om))}function Xn(t){return rm(t)&&t.id&&0===(t.id+"").indexOf("\x00_ec_\x00")}function Yn(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?_(e.dataIndex)?p(e.dataIndex,function(e){return t.indexOfRawIndex(e)}):t.indexOfRawIndex(e.dataIndex):null!=e.name?_(e.name)?p(e.name,function(e){return t.indexOfName(e)}):t.indexOfName(e.name):void 0}function jn(){var t="__\x00ec_inner_"+lm++ +"_"+Math.random().toFixed(5);return function(e){return e[t]||(e[t]={})}}function qn(t,e,i){if(b(e)){var n={};n[e+"Index"]=0,e=n}var r=i&&i.defaultMainType;!r||Un(e,r+"Index")||Un(e,r+"Id")||Un(e,r+"Name")||(e[r+"Index"]=0);var a={};return nm(e,function(n,r){var n=e[r];if("dataIndex"===r||"dataIndexInside"===r)return void(a[r]=n);var o=r.match(/^(\w+)(Index|Id|Name)$/)||[],s=o[1],l=(o[2]||"").toLowerCase();if(!(!s||!l||null==n||"index"===l&&"none"===n||i&&i.includeMainTypes&&h(i.includeMainTypes,s)<0)){var u={mainType:s};("index"!==l||"all"!==n)&&(u[l]=n);var c=t.queryComponents(u);a[s+"Models"]=c,a[s+"Model"]=c[0]}}),a}function Un(t,e){return t&&t.hasOwnProperty(e)}function $n(t,e,i){t.setAttribute?t.setAttribute(e,i):t[e]=i}function Kn(t,e){return t.getAttribute?t.getAttribute(e):t[e]}function Qn(t){return"auto"===t?tg.domSupported?"html":"richText":t||"html"}function Jn(t){var e={main:"",sub:""};return t&&(t=t.split(hm),e.main=t[0]||"",e.sub=t[1]||""),e}function tr(t){O(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function er(t){t.$constructor=t,t.extend=function(t){var e=this,i=function(){t.$constructor?t.$constructor.apply(this,arguments):e.apply(this,arguments)};return o(i.prototype,t),i.extend=this.extend,i.superCall=nr,i.superApply=rr,u(i,this),i.superClass=e,i}}function ir(t){var e=["__\x00is_clz",cm++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function nr(t,e){var i=P(arguments,2);return this.superClass.prototype[e].apply(t,i)}function rr(t,e,i){return this.superClass.prototype[e].apply(t,i)}function ar(t,e){function i(t){var e=n[t.main];return e&&e[um]||(e=n[t.main]={},e[um]=!0),e}e=e||{};var n={};if(t.registerClass=function(t,e){if(e)if(tr(e),e=Jn(e),e.sub){if(e.sub!==um){var r=i(e);r[e.sub]=t}}else n[e.main]=t;return t},t.getClass=function(t,e,i){var r=n[t];if(r&&r[um]&&(r=e?r[e]:null),i&&!r)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){t=Jn(t);var e=[],i=n[t.main];return i&&i[um]?f(i,function(t,i){i!==um&&e.push(t)}):e.push(i),e},t.hasClass=function(t){return t=Jn(t),!!n[t.main]},t.getAllClassMainTypes=function(){var t=[];return f(n,function(e,i){t.push(i)}),t},t.hasSubTypes=function(t){t=Jn(t);var e=n[t.main];return e&&e[um]},t.parseClassType=Jn,e.registerWhenExtend){var r=t.extend;r&&(t.extend=function(e){var i=r.call(this,e);return t.registerClass(i,e.type)})}return t}function or(t){return t>-xm&&xm>t}function sr(t){return t>xm||-xm>t}function lr(t,e,i,n,r){var a=1-r;return a*a*(a*t+3*r*e)+r*r*(r*n+3*a*i)}function hr(t,e,i,n,r){var a=1-r;return 3*(((e-t)*a+2*(i-e)*r)*a+(n-i)*r*r)}function ur(t,e,i,n,r,a){var o=n+3*(e-i)-t,s=3*(i-2*e+t),l=3*(e-t),h=t-r,u=s*s-3*o*l,c=s*l-9*o*h,d=l*l-3*s*h,f=0;if(or(u)&&or(c))if(or(s))a[0]=0;else{var p=-l/s;p>=0&&1>=p&&(a[f++]=p)}else{var g=c*c-4*u*d;if(or(g)){var v=c/u,p=-s/o+v,m=-v/2;p>=0&&1>=p&&(a[f++]=p),m>=0&&1>=m&&(a[f++]=m)}else if(g>0){var y=ym(g),x=u*s+1.5*o*(-c+y),_=u*s+1.5*o*(-c-y);x=0>x?-mm(-x,bm):mm(x,bm),_=0>_?-mm(-_,bm):mm(_,bm);var p=(-s-(x+_))/(3*o);p>=0&&1>=p&&(a[f++]=p)}else{var w=(2*u*s-3*o*c)/(2*ym(u*u*u)),b=Math.acos(w)/3,S=ym(u),M=Math.cos(b),p=(-s-2*S*M)/(3*o),m=(-s+S*(M+wm*Math.sin(b)))/(3*o),I=(-s+S*(M-wm*Math.sin(b)))/(3*o);p>=0&&1>=p&&(a[f++]=p),m>=0&&1>=m&&(a[f++]=m),I>=0&&1>=I&&(a[f++]=I)}}return f}function cr(t,e,i,n,r){var a=6*i-12*e+6*t,o=9*e+3*n-3*t-9*i,s=3*e-3*t,l=0;if(or(o)){if(sr(a)){var h=-s/a;h>=0&&1>=h&&(r[l++]=h)}}else{var u=a*a-4*o*s;if(or(u))r[0]=-a/(2*o);else if(u>0){var c=ym(u),h=(-a+c)/(2*o),d=(-a-c)/(2*o);h>=0&&1>=h&&(r[l++]=h),d>=0&&1>=d&&(r[l++]=d)}}return l}function dr(t,e,i,n,r,a){var o=(e-t)*r+t,s=(i-e)*r+e,l=(n-i)*r+i,h=(s-o)*r+o,u=(l-s)*r+s,c=(u-h)*r+h;a[0]=t,a[1]=o,a[2]=h,a[3]=c,a[4]=c,a[5]=u,a[6]=l,a[7]=n}function fr(t,e,i,n,r,a,o,s,l,h,u){var c,d,f,p,g,v=.005,m=1/0;Sm[0]=l,Sm[1]=h;for(var y=0;1>y;y+=.05)Mm[0]=lr(t,i,r,o,y),Mm[1]=lr(e,n,a,s,y),p=xg(Sm,Mm),m>p&&(c=y,m=p);m=1/0;for(var x=0;32>x&&!(_m>v);x++)d=c-v,f=c+v,Mm[0]=lr(t,i,r,o,d),Mm[1]=lr(e,n,a,s,d),p=xg(Mm,Sm),d>=0&&m>p?(c=d,m=p):(Im[0]=lr(t,i,r,o,f),Im[1]=lr(e,n,a,s,f),g=xg(Im,Sm),1>=f&&m>g?(c=f,m=g):v*=.5);return u&&(u[0]=lr(t,i,r,o,c),u[1]=lr(e,n,a,s,c)),ym(m)}function pr(t,e,i,n){var r=1-n;return r*(r*t+2*n*e)+n*n*i}function gr(t,e,i,n){return 2*((1-n)*(e-t)+n*(i-e))}function vr(t,e,i,n,r){var a=t-2*e+i,o=2*(e-t),s=t-n,l=0;if(or(a)){if(sr(o)){var h=-s/o;h>=0&&1>=h&&(r[l++]=h)}}else{var u=o*o-4*a*s;if(or(u)){var h=-o/(2*a);h>=0&&1>=h&&(r[l++]=h)}else if(u>0){var c=ym(u),h=(-o+c)/(2*a),d=(-o-c)/(2*a);h>=0&&1>=h&&(r[l++]=h),d>=0&&1>=d&&(r[l++]=d)}}return l}function mr(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function yr(t,e,i,n,r){var a=(e-t)*n+t,o=(i-e)*n+e,s=(o-a)*n+a;r[0]=t,r[1]=a,r[2]=s,r[3]=s,r[4]=o,r[5]=i}function xr(t,e,i,n,r,a,o,s,l){var h,u=.005,c=1/0;Sm[0]=o,Sm[1]=s;for(var d=0;1>d;d+=.05){Mm[0]=pr(t,i,r,d),Mm[1]=pr(e,n,a,d);var f=xg(Sm,Mm);c>f&&(h=d,c=f)}c=1/0;for(var p=0;32>p&&!(_m>u);p++){var g=h-u,v=h+u;Mm[0]=pr(t,i,r,g),Mm[1]=pr(e,n,a,g);var f=xg(Mm,Sm);if(g>=0&&c>f)h=g,c=f;else{Im[0]=pr(t,i,r,v),Im[1]=pr(e,n,a,v);var m=xg(Im,Sm);1>=v&&c>m?(h=v,c=m):u*=.5}}return l&&(l[0]=pr(t,i,r,h),l[1]=pr(e,n,a,h)),ym(c)}function _r(t,e,i){if(0!==t.length){var n,r=t[0],a=r[0],o=r[0],s=r[1],l=r[1];for(n=1;nu;u++){var p=d(t,i,r,o,zm[u]);l[0]=Tm(p,l[0]),h[0]=Cm(p,h[0])}for(f=c(e,n,a,s,Em),u=0;f>u;u++){var g=d(e,n,a,s,Em[u]);l[1]=Tm(g,l[1]),h[1]=Cm(g,h[1])}l[0]=Tm(t,l[0]),h[0]=Cm(t,h[0]),l[0]=Tm(o,l[0]),h[0]=Cm(o,h[0]),l[1]=Tm(e,l[1]),h[1]=Cm(e,h[1]),l[1]=Tm(s,l[1]),h[1]=Cm(s,h[1])}function Sr(t,e,i,n,r,a,o,s){var l=mr,h=pr,u=Cm(Tm(l(t,i,r),1),0),c=Cm(Tm(l(e,n,a),1),0),d=h(t,i,r,u),f=h(e,n,a,c);o[0]=Tm(t,r,d),o[1]=Tm(e,a,f),s[0]=Cm(t,r,d),s[1]=Cm(e,a,f)}function Mr(t,e,i,n,r,a,o,s,l){var h=oe,u=se,c=Math.abs(r-a);if(1e-4>c%km&&c>1e-4)return s[0]=t-i,s[1]=e-n,l[0]=t+i,void(l[1]=e+n);if(Pm[0]=Dm(r)*i+t,Pm[1]=Am(r)*n+e,Lm[0]=Dm(a)*i+t,Lm[1]=Am(a)*n+e,h(s,Pm,Lm),u(l,Pm,Lm),r%=km,0>r&&(r+=km),a%=km,0>a&&(a+=km),r>a&&!o?a+=km:a>r&&o&&(r+=km),o){var d=a;a=r,r=d}for(var f=0;a>f;f+=Math.PI/2)f>r&&(Om[0]=Dm(f)*i+t,Om[1]=Am(f)*n+e,h(s,Om,s),u(l,Om,l))}function Ir(t,e,i,n,r,a,o){if(0===r)return!1;var s=r,l=0,h=t;if(o>e+s&&o>n+s||e-s>o&&n-s>o||a>t+s&&a>i+s||t-s>a&&i-s>a)return!1;if(t===i)return Math.abs(a-t)<=s/2;l=(e-n)/(t-i),h=(t*n-i*e)/(t-i);var u=l*a-o+h,c=u*u/(l*l+1);return s/2*s/2>=c}function Tr(t,e,i,n,r,a,o,s,l,h,u){if(0===l)return!1;var c=l;if(u>e+c&&u>n+c&&u>a+c&&u>s+c||e-c>u&&n-c>u&&a-c>u&&s-c>u||h>t+c&&h>i+c&&h>r+c&&h>o+c||t-c>h&&i-c>h&&r-c>h&&o-c>h)return!1;var d=fr(t,e,i,n,r,a,o,s,h,u,null);return c/2>=d}function Cr(t,e,i,n,r,a,o,s,l){if(0===o)return!1;var h=o;if(l>e+h&&l>n+h&&l>a+h||e-h>l&&n-h>l&&a-h>l||s>t+h&&s>i+h&&s>r+h||t-h>s&&i-h>s&&r-h>s)return!1;var u=xr(t,e,i,n,r,a,s,l,null);return h/2>=u}function Ar(t){return t%=Um,0>t&&(t+=Um),t}function Dr(t,e,i,n,r,a,o,s,l){if(0===o)return!1;var h=o;s-=t,l-=e;var u=Math.sqrt(s*s+l*l);if(u-h>i||i>u+h)return!1;if(Math.abs(n-r)%$m<1e-4)return!0;if(a){var c=n;n=Ar(r),r=Ar(c)}else n=Ar(n),r=Ar(r);n>r&&(r+=$m);var d=Math.atan2(l,s);return 0>d&&(d+=$m),d>=n&&r>=d||d+$m>=n&&r>=d+$m}function kr(t,e,i,n,r,a){if(a>e&&a>n||e>a&&n>a)return 0;if(n===e)return 0;var o=e>n?1:-1,s=(a-e)/(n-e);(1===s||0===s)&&(o=e>n?.5:-.5);var l=s*(i-t)+t;return l===r?1/0:l>r?o:0}function Pr(t,e){return Math.abs(t-e)e&&h>n&&h>a&&h>s||e>h&&n>h&&a>h&&s>h)return 0;var u=ur(e,n,a,s,h,ty);if(0===u)return 0;for(var c,d,f=0,p=-1,g=0;u>g;g++){var v=ty[g],m=0===v||1===v?.5:1,y=lr(t,i,r,o,v);l>y||(0>p&&(p=cr(e,n,a,s,ey),ey[1]1&&Lr(),c=lr(e,n,a,s,ey[0]),p>1&&(d=lr(e,n,a,s,ey[1]))),f+=2==p?vc?m:-m:vd?m:-m:d>s?m:-m:vc?m:-m:c>s?m:-m)}return f}function zr(t,e,i,n,r,a,o,s){if(s>e&&s>n&&s>a||e>s&&n>s&&a>s)return 0;var l=vr(e,n,a,s,ty);if(0===l)return 0;var h=mr(e,n,a);if(h>=0&&1>=h){for(var u=0,c=pr(e,n,a,h),d=0;l>d;d++){var f=0===ty[d]||1===ty[d]?.5:1,p=pr(t,i,r,ty[d]);o>p||(u+=ty[d]c?f:-f:c>a?f:-f)}return u}var f=0===ty[0]||1===ty[0]?.5:1,p=pr(t,i,r,ty[0]);return o>p?0:e>a?f:-f}function Er(t,e,i,n,r,a,o,s){if(s-=e,s>i||-i>s)return 0;var l=Math.sqrt(i*i-s*s);ty[0]=-l,ty[1]=l;var h=Math.abs(n-r);if(1e-4>h)return 0;if(1e-4>h%Qm){n=0,r=Qm;var u=a?1:-1;return o>=ty[0]+t&&o<=ty[1]+t?u:0}if(a){var l=n;n=Ar(r),r=Ar(l)}else n=Ar(n),r=Ar(r);n>r&&(r+=Qm);for(var c=0,d=0;2>d;d++){var f=ty[d];if(f+t>o){var p=Math.atan2(s,f),u=a?1:-1;0>p&&(p=Qm+p),(p>=n&&r>=p||p+Qm>=n&&r>=p+Qm)&&(p>Math.PI/2&&p<1.5*Math.PI&&(u=-u),c+=u)}}return c}function Rr(t,e,i,n,r){for(var a=0,o=0,s=0,l=0,h=0,u=0;u1&&(i||(a+=kr(o,s,l,h,n,r))),1==u&&(o=t[u],s=t[u+1],l=o,h=s),c){case Km.M:l=t[u++],h=t[u++],o=l,s=h;break;case Km.L:if(i){if(Ir(o,s,t[u],t[u+1],e,n,r))return!0}else a+=kr(o,s,t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.C:if(i){if(Tr(o,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],e,n,r))return!0}else a+=Or(o,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.Q:if(i){if(Cr(o,s,t[u++],t[u++],t[u],t[u+1],e,n,r))return!0}else a+=zr(o,s,t[u++],t[u++],t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.A:var d=t[u++],f=t[u++],p=t[u++],g=t[u++],v=t[u++],m=t[u++],y=(t[u++],1-t[u++]),x=Math.cos(v)*p+d,_=Math.sin(v)*g+f;u>1?a+=kr(o,s,x,_,n,r):(l=x,h=_);var w=(n-d)*g/p+d;if(i){if(Dr(d,f,g,v,v+m,y,e,w,r))return!0}else a+=Er(d,f,g,v,v+m,y,w,r);o=Math.cos(v+m)*p+d,s=Math.sin(v+m)*g+f;break;case Km.R:l=o=t[u++],h=s=t[u++];var b=t[u++],S=t[u++],x=l+b,_=h+S;if(i){if(Ir(l,h,x,h,e,n,r)||Ir(x,h,x,_,e,n,r)||Ir(x,_,l,_,e,n,r)||Ir(l,_,l,h,e,n,r))return!0}else a+=kr(x,h,x,_,n,r),a+=kr(l,_,l,h,n,r);break;case Km.Z:if(i){if(Ir(o,s,l,h,e,n,r))return!0}else a+=kr(o,s,l,h,n,r);o=l,s=h}}return i||Pr(s,h)||(a+=kr(o,s,l,h,n,r)||0),0!==a}function Br(t,e,i){return Rr(t,0,!1,e,i)}function Nr(t,e,i,n){return Rr(t,e,!0,i,n)}function Fr(t){mn.call(this,t),this.path=null}function Vr(t,e,i,n,r,a,o,s,l,h,u){var c=l*(fy/180),d=dy(c)*(t-i)/2+cy(c)*(e-n)/2,f=-1*cy(c)*(t-i)/2+dy(c)*(e-n)/2,p=d*d/(o*o)+f*f/(s*s);p>1&&(o*=uy(p),s*=uy(p));var g=(r===a?-1:1)*uy((o*o*s*s-o*o*f*f-s*s*d*d)/(o*o*f*f+s*s*d*d))||0,v=g*o*f/s,m=g*-s*d/o,y=(t+i)/2+dy(c)*v-cy(c)*m,x=(e+n)/2+cy(c)*v+dy(c)*m,_=vy([1,0],[(d-v)/o,(f-m)/s]),w=[(d-v)/o,(f-m)/s],b=[(-1*d-v)/o,(-1*f-m)/s],S=vy(w,b);gy(w,b)<=-1&&(S=fy),gy(w,b)>=1&&(S=0),0===a&&S>0&&(S-=2*fy),1===a&&0>S&&(S+=2*fy),u.addData(h,y,x,o,s,_,S,c,a)}function Wr(t){if(!t)return new qm;for(var e,i=0,n=0,r=i,a=n,o=new qm,s=qm.CMD,l=t.match(my),h=0;hg;g++)f[g]=parseFloat(f[g]);for(var v=0;p>v;){var m,y,x,_,w,b,S,M=i,I=n;switch(d){case"l":i+=f[v++],n+=f[v++],u=s.L,o.addData(u,i,n);break;case"L":i=f[v++],n=f[v++],u=s.L,o.addData(u,i,n);break;case"m":i+=f[v++],n+=f[v++],u=s.M,o.addData(u,i,n),r=i,a=n,d="l";break;case"M":i=f[v++],n=f[v++],u=s.M,o.addData(u,i,n),r=i,a=n,d="L";break;case"h":i+=f[v++],u=s.L,o.addData(u,i,n);break;case"H":i=f[v++],u=s.L,o.addData(u,i,n);break;case"v":n+=f[v++],u=s.L,o.addData(u,i,n);break;case"V":n=f[v++],u=s.L,o.addData(u,i,n);break;case"C":u=s.C,o.addData(u,f[v++],f[v++],f[v++],f[v++],f[v++],f[v++]),i=f[v-2],n=f[v-1];break;case"c":u=s.C,o.addData(u,f[v++]+i,f[v++]+n,f[v++]+i,f[v++]+n,f[v++]+i,f[v++]+n),i+=f[v-2],n+=f[v-1];break;case"S":m=i,y=n;var T=o.len(),C=o.data;e===s.C&&(m+=i-C[T-4],y+=n-C[T-3]),u=s.C,M=f[v++],I=f[v++],i=f[v++],n=f[v++],o.addData(u,m,y,M,I,i,n);break;case"s":m=i,y=n;var T=o.len(),C=o.data;e===s.C&&(m+=i-C[T-4],y+=n-C[T-3]),u=s.C,M=i+f[v++],I=n+f[v++],i+=f[v++],n+=f[v++],o.addData(u,m,y,M,I,i,n);break;case"Q":M=f[v++],I=f[v++],i=f[v++],n=f[v++],u=s.Q,o.addData(u,M,I,i,n);break;case"q":M=f[v++]+i,I=f[v++]+n,i+=f[v++],n+=f[v++],u=s.Q,o.addData(u,M,I,i,n);break;case"T":m=i,y=n;var T=o.len(),C=o.data;e===s.Q&&(m+=i-C[T-4],y+=n-C[T-3]),i=f[v++],n=f[v++],u=s.Q,o.addData(u,m,y,i,n);break;case"t":m=i,y=n;var T=o.len(),C=o.data;e===s.Q&&(m+=i-C[T-4],y+=n-C[T-3]),i+=f[v++],n+=f[v++],u=s.Q,o.addData(u,m,y,i,n);break;case"A":x=f[v++],_=f[v++],w=f[v++],b=f[v++],S=f[v++],M=i,I=n,i=f[v++],n=f[v++],u=s.A,Vr(M,I,i,n,b,S,x,_,w,u,o);break;case"a":x=f[v++],_=f[v++],w=f[v++],b=f[v++],S=f[v++],M=i,I=n,i+=f[v++],n+=f[v++],u=s.A,Vr(M,I,i,n,b,S,x,_,w,u,o)}}("z"===d||"Z"===d)&&(u=s.Z,o.addData(u),i=r,n=a),e=u}return o.toStatic(),o}function Gr(t,e){var i=Wr(t);return e=e||{},e.buildPath=function(t){if(t.setData){t.setData(i.data);var e=t.getContext();e&&t.rebuildPath(e)}else{var e=t;i.rebuildPath(e)}},e.applyTransform=function(t){hy(i,t),this.dirty(!0)},e}function Hr(t,e){return new Fr(Gr(t,e))}function Zr(t,e){return Fr.extend(Gr(t,e))}function Xr(t,e){for(var i=[],n=t.length,r=0;n>r;r++){var a=t[r];a.path||a.createPathProxy(),a.__dirtyPath&&a.buildPath(a.path,a.shape,!0),i.push(a.path)}var o=new Fr(e);return o.createPathProxy(),o.buildPath=function(t){t.appendPath(i);var e=t.getContext();e&&t.rebuildPath(e)},o}function Yr(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}function jr(t,e,i){var n=e.points,r=e.smooth;if(n&&n.length>=2){if(r&&"spline"!==r){var a=Ty(n,r,i,e.smoothConstraint);t.moveTo(n[0][0],n[0][1]);for(var o=n.length,s=0;(i?o:o-1)>s;s++){var l=a[2*s],h=a[2*s+1],u=n[(s+1)%o];t.bezierCurveTo(l[0],l[1],h[0],h[1],u[0],u[1])}}else{"spline"===r&&(n=Iy(n,i)),t.moveTo(n[0][0],n[0][1]);for(var s=1,c=n.length;c>s;s++)t.lineTo(n[s][0],n[s][1])}i&&t.closePath()}}function qr(t,e,i){var n=t.cpx2,r=t.cpy2;return null===n||null===r?[(i?hr:lr)(t.x1,t.cpx1,t.cpx2,t.x2,e),(i?hr:lr)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(i?gr:pr)(t.x1,t.cpx1,t.x2,e),(i?gr:pr)(t.y1,t.cpy1,t.y2,e)]}function Ur(t){mn.call(this,t),this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.notClear=!0}function $r(t){return Fr.extend(t)}function Kr(t,e){return Zr(t,e)}function Qr(t,e,i,n){var r=Hr(t,e);return i&&("center"===n&&(i=ta(i,r.getBoundingRect())),ea(r,i)),r}function Jr(t,e,i){var n=new yn({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===i){var r={width:t.width,height:t.height};n.setStyle(ta(e,r))}}});return n}function ta(t,e){var i,n=e.width/e.height,r=t.height*n;r<=t.width?i=t.height:(r=t.width,i=r/n);var a=t.x+t.width/2,o=t.y+t.height/2;return{x:a-r/2,y:o-i/2,width:r,height:i}}function ea(t,e){if(t.applyTransform){var i=t.getBoundingRect(),n=i.calculateTransform(e);t.applyTransform(n)}}function ia(t){var e=t.shape,i=t.style.lineWidth;return Fy(2*e.x1)===Fy(2*e.x2)&&(e.x1=e.x2=ra(e.x1,i,!0)),Fy(2*e.y1)===Fy(2*e.y2)&&(e.y1=e.y2=ra(e.y1,i,!0)),t}function na(t){var e=t.shape,i=t.style.lineWidth,n=e.x,r=e.y,a=e.width,o=e.height;return e.x=ra(e.x,i,!0),e.y=ra(e.y,i,!0),e.width=Math.max(ra(n+a,i,!1)-e.x,0===a?0:1),e.height=Math.max(ra(r+o,i,!1)-e.y,0===o?0:1),t}function ra(t,e,i){var n=Fy(2*t);return(n+Fy(e))%2===0?n/2:(n+(i?1:-1))/2}function aa(t){return null!=t&&"none"!==t}function oa(t){if("string"!=typeof t)return t;var e=Zy.get(t);return e||(e=Ye(t,-.1),1e4>Xy&&(Zy.set(t,e),Xy++)),e}function sa(t){if(t.__hoverStlDirty){t.__hoverStlDirty=!1;var e=t.__hoverStl;if(!e)return void(t.__normalStl=null);var i=t.__normalStl={},n=t.style;for(var r in e)null!=e[r]&&(i[r]=n[r]);i.fill=n.fill,i.stroke=n.stroke}}function la(t){var e=t.__hoverStl;if(e&&!t.__highlighted){var i=t.useHoverLayer;t.__highlighted=i?"layer":"plain";var n=t.__zr;if(n||!i){var r=t,a=t.style;i&&(r=n.addHover(t),a=r.style),Da(a),i||sa(r),a.extendFrom(e),ha(a,e,"fill"),ha(a,e,"stroke"),Aa(a),i||(t.dirty(!1),t.z2+=1)}}}function ha(t,e,i){!aa(e[i])&&aa(t[i])&&(t[i]=oa(t[i]))}function ua(t){t.__highlighted&&(ca(t),t.__highlighted=!1)}function ca(t){var e=t.__highlighted;if("layer"===e)t.__zr&&t.__zr.removeHover(t);else if(e){var i=t.style,n=t.__normalStl;n&&(Da(i),t.setStyle(n),Aa(i),t.z2-=1)}}function da(t,e){t.isGroup?t.traverse(function(t){!t.isGroup&&e(t)}):e(t)}function fa(t,e){e=t.__hoverStl=e!==!1&&(e||{}),t.__hoverStlDirty=!0,t.__highlighted&&(ua(t),la(t))}function pa(t){return t&&t.__isEmphasisEntered}function ga(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasisEntered&&da(this,la)}function va(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasisEntered&&da(this,ua)}function ma(){this.__isEmphasisEntered=!0,da(this,la)}function ya(){this.__isEmphasisEntered=!1,da(this,ua)}function xa(t,e,i){t.isGroup?t.traverse(function(t){!t.isGroup&&fa(t,t.hoverStyle||e)}):fa(t,t.hoverStyle||e),_a(t,i)}function _a(t,e){var i=e===!1;if(t.__hoverSilentOnTouch=null!=e&&e.hoverSilentOnTouch,!i||t.__hoverStyleTrigger){var n=i?"off":"on";t[n]("mouseover",ga)[n]("mouseout",va),t[n]("emphasis",ma)[n]("normal",ya),t.__hoverStyleTrigger=!i}}function wa(t,e,i,n,r,a,o){r=r||Gy;var s,l=r.labelFetcher,h=r.labelDataIndex,u=r.labelDimIndex,c=i.getShallow("show"),d=n.getShallow("show");(c||d)&&(l&&(s=l.getFormattedLabel(h,"normal",null,u)),null==s&&(s=w(r.defaultText)?r.defaultText(h,r):r.defaultText));var f=c?s:null,p=d?D(l?l.getFormattedLabel(h,"emphasis",null,u):null,s):null;(null!=f||null!=p)&&(ba(t,i,a,r),ba(e,n,o,r,!0)),t.text=f,e.text=p}function ba(t,e,i,n,r){return Ma(t,e,n,r),i&&o(t,i),t}function Sa(t,e,i){var n,r={isRectText:!0};i===!1?n=!0:r.autoColor=i,Ma(t,e,r,n)}function Ma(t,e,i,n){if(i=i||Gy,i.isRectText){var r=e.getShallow("position")||(n?null:"inside");"outside"===r&&(r="top"),t.textPosition=r,t.textOffset=e.getShallow("offset");var a=e.getShallow("rotate");null!=a&&(a*=Math.PI/180),t.textRotation=a,t.textDistance=D(e.getShallow("distance"),n?null:5)}var o,s=e.ecModel,l=s&&s.option.textStyle,h=Ia(e);if(h){o={};for(var u in h)if(h.hasOwnProperty(u)){var c=e.getModel(["rich",u]);Ta(o[u]={},c,l,i,n)}}return t.rich=o,Ta(t,e,l,i,n,!0),i.forceRich&&!i.textStyle&&(i.textStyle={}),t}function Ia(t){for(var e;t&&t!==t.ecModel;){var i=(t.option||Gy).rich;if(i){e=e||{};for(var n in i)i.hasOwnProperty(n)&&(e[n]=1)}t=t.parentModel}return e}function Ta(t,e,i,n,r,a){i=!r&&i||Gy,t.textFill=Ca(e.getShallow("color"),n)||i.color,t.textStroke=Ca(e.getShallow("textBorderColor"),n)||i.textBorderColor,t.textStrokeWidth=D(e.getShallow("textBorderWidth"),i.textBorderWidth),t.insideRawTextPosition=t.textPosition,r||(a&&(t.insideRollbackOpt=n,Aa(t)),null==t.textFill&&(t.textFill=n.autoColor)),t.fontStyle=e.getShallow("fontStyle")||i.fontStyle,t.fontWeight=e.getShallow("fontWeight")||i.fontWeight,t.fontSize=e.getShallow("fontSize")||i.fontSize,t.fontFamily=e.getShallow("fontFamily")||i.fontFamily,t.textAlign=e.getShallow("align"),t.textVerticalAlign=e.getShallow("verticalAlign")||e.getShallow("baseline"),t.textLineHeight=e.getShallow("lineHeight"),t.textWidth=e.getShallow("width"),t.textHeight=e.getShallow("height"),t.textTag=e.getShallow("tag"),a&&n.disableBox||(t.textBackgroundColor=Ca(e.getShallow("backgroundColor"),n),t.textPadding=e.getShallow("padding"),t.textBorderColor=Ca(e.getShallow("borderColor"),n),t.textBorderWidth=e.getShallow("borderWidth"),t.textBorderRadius=e.getShallow("borderRadius"),t.textBoxShadowColor=e.getShallow("shadowColor"),t.textBoxShadowBlur=e.getShallow("shadowBlur"),t.textBoxShadowOffsetX=e.getShallow("shadowOffsetX"),t.textBoxShadowOffsetY=e.getShallow("shadowOffsetY")),t.textShadowColor=e.getShallow("textShadowColor")||i.textShadowColor,t.textShadowBlur=e.getShallow("textShadowBlur")||i.textShadowBlur,t.textShadowOffsetX=e.getShallow("textShadowOffsetX")||i.textShadowOffsetX,t.textShadowOffsetY=e.getShallow("textShadowOffsetY")||i.textShadowOffsetY}function Ca(t,e){return"auto"!==t?t:e&&e.autoColor?e.autoColor:null}function Aa(t){var e=t.insideRollbackOpt;if(e&&null==t.textFill){var i,n=e.useInsideStyle,r=t.insideRawTextPosition,a=e.autoColor;n!==!1&&(n===!0||e.isRectText&&r&&"string"==typeof r&&r.indexOf("inside")>=0)?(i={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=a,null==t.textStrokeWidth&&(t.textStrokeWidth=2))):null!=a&&(i={textFill:null},t.textFill=a),i&&(t.insideRollback=i)}}function Da(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth,t.insideRollback=null)}function ka(t,e){var i=e||e.getModel("textStyle");return z([t.fontStyle||i&&i.getShallow("fontStyle")||"",t.fontWeight||i&&i.getShallow("fontWeight")||"",(t.fontSize||i&&i.getShallow("fontSize")||12)+"px",t.fontFamily||i&&i.getShallow("fontFamily")||"sans-serif"].join(" "))}function Pa(t,e,i,n,r,a){"function"==typeof r&&(a=r,r=null);var o=n&&n.isAnimationEnabled();if(o){var s=t?"Update":"",l=n.getShallow("animationDuration"+s),h=n.getShallow("animationEasing"+s),u=n.getShallow("animationDelay"+s);"function"==typeof u&&(u=u(r,n.getAnimationDelayParams?n.getAnimationDelayParams(e,r):null)),"function"==typeof l&&(l=l(r)),l>0?e.animateTo(i,l,u||0,h,a,!!a):(e.stopAnimation(),e.attr(i),a&&a())}else e.stopAnimation(),e.attr(i),a&&a()}function La(t,e,i,n,r){Pa(!0,t,e,i,n,r)}function Oa(t,e,i,n,r){Pa(!1,t,e,i,n,r)}function za(t,e){for(var i=Se([]);t&&t!==e;)Ie(i,t.getLocalTransform(),i),t=t.parent;return i}function Ea(t,e,i){return e&&!d(e)&&(e=Og.getLocalTransform(e)),i&&(e=De([],e)),ae([],t,e)}function Ra(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),a=["left"===t?-n:"right"===t?n:0,"top"===t?-r:"bottom"===t?r:0];return a=Ea(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Ba(t,e,i){function n(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}function r(t){var e={position:H(t.position),rotation:t.rotation};return t.shape&&(e.shape=o({},t.shape)),e}if(t&&e){var a=n(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var n=r(t);t.attr(r(e)),La(t,n,i,t.dataIndex)}}})}}function Na(t,e){return p(t,function(t){var i=t[0];i=Vy(i,e.x),i=Wy(i,e.x+e.width);var n=t[1];return n=Vy(n,e.y),n=Wy(n,e.y+e.height),[i,n]})}function Fa(t,e){var i=Vy(t.x,e.x),n=Wy(t.x+t.width,e.x+e.width),r=Vy(t.y,e.y),a=Wy(t.y+t.height,e.y+e.height);return n>=i&&a>=r?{x:i,y:r,width:n-i,height:a-r}:void 0}function Va(t,e,i){e=o({rectHover:!0},e);var n=e.style={strokeNoScale:!0};return i=i||{x:-1,y:-1,width:2,height:2},t?0===t.indexOf("image://")?(n.image=t.slice(8),s(n,i),new yn(e)):Qr(t.replace("path://",""),e,i,"center"):void 0}function Wa(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function Ga(t,e,i){for(var n=0;n=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,n,r){function a(t){l[t].entryCount--,0===l[t].entryCount&&h.push(t)}function o(t){u[t]=!0,a(t)}if(t.length){var s=i(e),l=s.graph,h=s.noEntryList,u={};for(f(t,function(t){u[t]=!0});h.length;){var c=h.pop(),d=l[c],p=!!u[c];p&&(n.call(r,c,d.originalDeps.slice()),delete u[c]),f(d.successor,p?o:a)}f(u,function(){throw new Error("Circle dependency may exists")})}}}function ja(t){return t.replace(/^\s+/,"").replace(/\s+$/,"")}function qa(t,e,i,n){var r=e[1]-e[0],a=i[1]-i[0];if(0===r)return 0===a?i[0]:(i[0]+i[1])/2;if(n)if(r>0){if(t<=e[0])return i[0];if(t>=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/r*a+i[0]}function Ua(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?ja(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?0/0:+t}function $a(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Ka(t){return t.sort(function(t,e){return t-e}),t}function Qa(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Ja(t){var e=t.toString(),i=e.indexOf("e");if(i>0){var n=+e.slice(i+1);return 0>n?-n:0}var r=e.indexOf(".");return 0>r?0:e.length-1-r}function to(t,e){var i=Math.log,n=Math.LN10,r=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n),o=Math.min(Math.max(-r+a,0),20);return isFinite(o)?o:20}function eo(t,e,i){if(!t[e])return 0;var n=g(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return 0;for(var r=Math.pow(10,i),a=p(t,function(t){return(isNaN(t)?0:t)/n*r*100}),o=100*r,s=p(a,function(t){return Math.floor(t)}),l=g(s,function(t,e){return t+e},0),h=p(a,function(t,e){return t-s[e]});o>l;){for(var u=Number.NEGATIVE_INFINITY,c=null,d=0,f=h.length;f>d;++d)h[d]>u&&(u=h[d],c=d);++s[c],h[c]=0,++l}return s[e]/r}function io(t){var e=2*Math.PI;return(t%e+e)%e}function no(t){return t>-tx&&tx>t}function ro(t){if(t instanceof Date)return t;if("string"==typeof t){var e=ix.exec(t);if(!e)return new Date(0/0);if(e[8]){var i=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(i-=e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,i,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return new Date(null==t?0/0:Math.round(t))}function ao(t){return Math.pow(10,oo(t))}function oo(t){return Math.floor(Math.log(t)/Math.LN10)}function so(t,e){var i,n=oo(t),r=Math.pow(10,n),a=t/r;return i=e?1.5>a?1:2.5>a?2:4>a?3:7>a?5:10:1>a?1:2>a?2:3>a?3:5>a?5:10,t=i*r,n>=-20?+t.toFixed(0>n?-n:0):t}function lo(t,e){var i=(t.length-1)*e+1,n=Math.floor(i),r=+t[n-1],a=i-n;return a?r+a*(t[n]-r):r}function ho(t){function e(t,i,n){return t.interval[n]s;s++)a[s]<=i&&(a[s]=i,o[s]=s?1:1-n),i=a[s],n=o[s];a[0]===a[1]&&o[0]*o[1]!==1?t.splice(r,1):r++}return t}function uo(t){return t-parseFloat(t)>=0}function co(t){return isNaN(t)?"-":(t=(t+"").split("."),t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:""))}function fo(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(t,e){return e.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}function po(t){return null==t?"":(t+"").replace(ax,function(t,e){return ox[e]})}function go(t,e,i){_(e)||(e=[e]);var n=e.length;if(!n)return"";for(var r=e[0].$vars||[],a=0;as;s++)for(var l=0;l':'':{renderMode:r,content:"{marker"+a+"|} ",style:{color:i}}:"" +}function yo(t,e){return t+="","0000".substr(0,e-t.length)+t}function xo(t,e,i){("week"===t||"month"===t||"quarter"===t||"half-year"===t||"year"===t)&&(t="MM-dd\nyyyy");var n=ro(e),r=i?"UTC":"",a=n["get"+r+"FullYear"](),o=n["get"+r+"Month"]()+1,s=n["get"+r+"Date"](),l=n["get"+r+"Hours"](),h=n["get"+r+"Minutes"](),u=n["get"+r+"Seconds"](),c=n["get"+r+"Milliseconds"]();return t=t.replace("MM",yo(o,2)).replace("M",o).replace("yyyy",a).replace("yy",a%100).replace("dd",yo(s,2)).replace("d",s).replace("hh",yo(l,2)).replace("h",l).replace("mm",yo(h,2)).replace("m",h).replace("ss",yo(u,2)).replace("s",u).replace("SSS",yo(c,3))}function _o(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function wo(t,e,i,n,r){var a=0,o=0;null==n&&(n=1/0),null==r&&(r=1/0);var s=0;e.eachChild(function(l,h){var u,c,d=l.position,f=l.getBoundingRect(),p=e.childAt(h+1),g=p&&p.getBoundingRect();if("horizontal"===t){var v=f.width+(g?-g.x+f.x:0);u=a+v,u>n||l.newline?(a=0,u=v,o+=s+i,s=f.height):s=Math.max(s,f.height)}else{var m=f.height+(g?-g.y+f.y:0);c=o+m,c>r||l.newline?(a+=s+i,o=0,c=m,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=o,"horizontal"===t?a=u+i:o=c+i)})}function bo(t,e,i){i=rx(i||0);var n=e.width,r=e.height,a=Ua(t.left,n),o=Ua(t.top,r),s=Ua(t.right,n),l=Ua(t.bottom,r),h=Ua(t.width,n),u=Ua(t.height,r),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(h)&&(h=n-s-d-a),isNaN(u)&&(u=r-l-c-o),null!=f&&(isNaN(h)&&isNaN(u)&&(f>n/r?h=.8*n:u=.8*r),isNaN(h)&&(h=f*u),isNaN(u)&&(u=h/f)),isNaN(a)&&(a=n-s-h-d),isNaN(o)&&(o=r-l-u-c),t.left||t.right){case"center":a=n/2-h/2-i[3];break;case"right":a=n-h-d}switch(t.top||t.bottom){case"middle":case"center":o=r/2-u/2-i[0];break;case"bottom":o=r-u-c}a=a||0,o=o||0,isNaN(h)&&(h=n-d-a-(s||0)),isNaN(u)&&(u=r-c-o-(l||0));var p=new gi(a+i[3],o+i[0],h,u);return p.margin=i,p}function So(t,e,i){function n(i,n){var o={},l=0,h={},u=0,c=2;if(dx(i,function(e){h[e]=t[e]}),dx(i,function(t){r(e,t)&&(o[t]=h[t]=e[t]),a(o,t)&&l++,a(h,t)&&u++}),s[n])return a(e,i[1])?h[i[2]]=null:a(e,i[2])&&(h[i[1]]=null),h;if(u!==c&&l){if(l>=c)return o;for(var d=0;dn;n++)if(t[n].length>e)return t[n];return t[i-1]}function Ao(t){var e=t.get("coordinateSystem"),i={coordSysName:e,coordSysDims:[],axisMap:N(),categoryAxisMap:N()},n=Mx[e];return n?(n(t,i,i.axisMap,i.categoryAxisMap),i):void 0}function Do(t){return"category"===t.get("type")}function ko(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===Ax?{}:[]),this.sourceFormat=t.sourceFormat||Dx,this.seriesLayoutBy=t.seriesLayoutBy||Px,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&N(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function Po(t){var e=t.option.source,i=Dx;if(I(e))i=kx;else if(_(e)){0===e.length&&(i=Tx);for(var n=0,r=e.length;r>n;n++){var a=e[n];if(null!=a){if(_(a)){i=Tx;break}if(S(a)){i=Cx;break}}}}else if(S(e)){for(var o in e)if(e.hasOwnProperty(o)&&d(e[o])){i=Ax;break}}else if(null!=e)throw new Error("Invalid data");Ox(t).sourceFormat=i}function Lo(t){return Ox(t).source}function Oo(t){Ox(t).datasetMap=N()}function zo(t){var e=t.option,i=e.data,n=I(i)?kx:Ix,r=!1,a=e.seriesLayoutBy,o=e.sourceHeader,s=e.dimensions,l=Vo(t);if(l){var h=l.option;i=h.source,n=Ox(l).sourceFormat,r=!0,a=a||h.seriesLayoutBy,null==o&&(o=h.sourceHeader),s=s||h.dimensions}var u=Eo(i,n,a,o,s),c=e.encode;!c&&l&&(c=Fo(t,l,i,n,a,u)),Ox(t).source=new ko({data:i,fromDataset:r,seriesLayoutBy:a,sourceFormat:n,dimensionsDefine:u.dimensionsDefine,startIndex:u.startIndex,dimensionsDetectCount:u.dimensionsDetectCount,encodeDefine:c})}function Eo(t,e,i,n,r){if(!t)return{dimensionsDefine:Ro(r)};var a,o,s;if(e===Tx)"auto"===n||null==n?Bo(function(t){null!=t&&"-"!==t&&(b(t)?null==o&&(o=1):o=0)},i,t,10):o=n?1:0,r||1!==o||(r=[],Bo(function(t,e){r[e]=null!=t?t:""},i,t)),a=r?r.length:i===Lx?t.length:t[0]?t[0].length:null;else if(e===Cx)r||(r=No(t),s=!0);else if(e===Ax)r||(r=[],s=!0,f(t,function(t,e){r.push(e)}));else if(e===Ix){var l=Vn(t[0]);a=_(l)&&l.length||1}var h;return s&&f(r,function(t,e){"name"===(S(t)?t.name:t)&&(h=e)}),{startIndex:o,dimensionsDefine:Ro(r),dimensionsDetectCount:a,potentialNameDimIndex:h}}function Ro(t){if(t){var e=N();return p(t,function(t){if(t=o({},S(t)?t:{name:t}),null==t.name)return t;t.name+="",null==t.displayName&&(t.displayName=t.name);var i=e.get(t.name);return i?t.name+="-"+i.count++:e.set(t.name,{count:1}),t})}}function Bo(t,e,i,n){if(null==n&&(n=1/0),e===Lx)for(var r=0;rr;r++)t(i[r]?i[r][0]:null,r);else for(var a=i[0]||[],r=0;rr;r++)t(a[r],r)}function No(t){for(var e,i=0;ix&&null==y;x++)Go(i,n,r,a.dimensionsDefine,a.startIndex,x)||(y=x);if(null!=y){s.value=y;var _=a.potentialNameDimIndex||Math.max(y-1,0);h.push(_),l.push(_)}}return l.length&&(s.itemName=l),h.length&&(s.seriesName=h),s}function Vo(t){var e=t.option,i=e.data;return i?void 0:t.ecModel.getComponent("dataset",e.datasetIndex||0)}function Wo(t,e){return Go(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function Go(t,e,i,n,r,a){function o(t){return null!=t&&isFinite(t)&&""!==t?!1:b(t)&&"-"!==t?!0:void 0}var s,l=5;if(I(t))return!1;var h;if(n&&(h=n[a],h=S(h)?h.name:h),e===Tx)if(i===Lx){for(var u=t[a],c=0;c<(u||[]).length&&l>c;c++)if(null!=(s=o(u[r+c])))return s}else for(var c=0;cc;c++){var d=t[r+c];if(d&&null!=(s=o(d[a])))return s}else if(e===Cx){if(!h)return;for(var c=0;cc;c++){var f=t[c];if(f&&null!=(s=o(f[h])))return s}}else if(e===Ax){if(!h)return;var u=t[h];if(!u||I(u))return!1;for(var c=0;cc;c++)if(null!=(s=o(u[c])))return s}else if(e===Ix)for(var c=0;cc;c++){var f=t[c],p=Vn(f);if(!_(p))return!1;if(null!=(s=o(p[a])))return s}return!1}function Ho(t,e){if(e){var i=e.seiresIndex,n=e.seriesId,r=e.seriesName;return null!=i&&t.componentIndex!==i||null!=n&&t.id!==n||null!=r&&t.name!==r}}function Zo(t,e){var i=t.color&&!t.colorLayer;f(e,function(e,a){"colorLayer"===a&&i||yx.hasClass(a)||("object"==typeof e?t[a]=t[a]?r(t[a],e,!1):n(e):null==t[a]&&(t[a]=e))})}function Xo(t){t=t,this.option={},this.option[zx]=1,this._componentsMap=N({series:[]}),this._seriesIndices,this._seriesIndicesMap,Zo(t,this._theme.option),r(t,_x,!1),this.mergeOption(t)}function Yo(t,e){_(e)||(e=e?[e]:[]);var i={};return f(e,function(e){i[e]=(t.get(e)||[]).slice()}),i}function jo(t,e,i){var n=e.type?e.type:i?i.subType:yx.determineSubType(t,e);return n}function qo(t,e){t._seriesIndicesMap=N(t._seriesIndices=p(e,function(t){return t.componentIndex})||[])}function Uo(t,e){return e.hasOwnProperty("subType")?v(t,function(t){return t.subType===e.subType}):t}function $o(t){f(Rx,function(e){this[e]=y(t[e],t)},this)}function Ko(){this._coordinateSystems=[]}function Qo(t){this._api=t,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function Jo(t,e,i){var n,r,a=[],o=[],s=t.timeline;if(t.baseOption&&(r=t.baseOption),(s||t.options)&&(r=r||{},a=(t.options||[]).slice()),t.media){r=r||{};var l=t.media;Nx(l,function(t){t&&t.option&&(t.query?o.push(t):n||(n=t))})}return r||(r=t),r.timeline||(r.timeline=s),Nx([r].concat(a).concat(p(o,function(t){return t.option})),function(t){Nx(e,function(e){e(t,i)})}),{baseOption:r,timelineOptions:a,mediaDefault:n,mediaList:o}}function ts(t,e,i){var n={width:e,height:i,aspectratio:e/i},r=!0;return f(t,function(t,e){var i=e.match(Gx);if(i&&i[1]&&i[2]){var a=i[1],o=i[2].toLowerCase();es(n[o],t,a)||(r=!1)}}),r}function es(t,e,i){return"min"===i?t>=e:"max"===i?e>=t:t===e}function is(t,e){return t.join(",")===e.join(",")}function ns(t,e){e=e||{},Nx(e,function(e,i){if(null!=e){var n=t[i];if(yx.hasClass(i)){e=Nn(e),n=Nn(n);var r=Gn(n,e);t[i]=Vx(r,function(t){return t.option&&t.exist?Wx(t.exist,t.option,!0):t.exist||t.option})}else t[i]=Wx(n,e,!0)}})}function rs(t){var e=t&&t.itemStyle;if(e)for(var i=0,n=Xx.length;n>i;i++){var a=Xx[i],o=e.normal,s=e.emphasis;o&&o[a]&&(t[a]=t[a]||{},t[a].normal?r(t[a].normal,o[a]):t[a].normal=o[a],o[a]=null),s&&s[a]&&(t[a]=t[a]||{},t[a].emphasis?r(t[a].emphasis,s[a]):t[a].emphasis=s[a],s[a]=null)}}function as(t,e,i){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var n=t[e].normal,r=t[e].emphasis;n&&(i?(t[e].normal=t[e].emphasis=null,s(t[e],n)):t[e]=n),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r)}}function os(t){as(t,"itemStyle"),as(t,"lineStyle"),as(t,"areaStyle"),as(t,"label"),as(t,"labelLine"),as(t,"upperLabel"),as(t,"edgeLabel")}function ss(t,e){var i=Zx(t)&&t[e],n=Zx(i)&&i.textStyle;if(n)for(var r=0,a=sm.length;a>r;r++){var e=sm[r];n.hasOwnProperty(e)&&(i[e]=n[e])}}function ls(t){t&&(os(t),ss(t,"label"),t.emphasis&&ss(t.emphasis,"label"))}function hs(t){if(Zx(t)){rs(t),os(t),ss(t,"label"),ss(t,"upperLabel"),ss(t,"edgeLabel"),t.emphasis&&(ss(t.emphasis,"label"),ss(t.emphasis,"upperLabel"),ss(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(rs(e),ls(e));var i=t.markLine;i&&(rs(i),ls(i));var n=t.markArea;n&&ls(n);var r=t.data;if("graph"===t.type){r=r||t.nodes;var a=t.links||t.edges;if(a&&!I(a))for(var o=0;o=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var v=g.data.getByRawIndex(g.stackResultDimension,d);if(u>=0&&v>0||0>=u&&0>v){u+=v,f=v;break}}}return n[0]=u,n[1]=f,n});o.hostModel.setData(l),e.data=l})}function vs(t,e){ko.isInstance(t)||(t=ko.seriesDataToSource(t)),this._source=t;var i=this._data=t.data,n=t.sourceFormat;n===kx&&(this._offset=0,this._dimSize=e,this._data=i);var r=Qx[n===Tx?n+"_"+t.seriesLayoutBy:n];o(this,r)}function ms(){return this._data.length}function ys(t){return this._data[t]}function xs(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function zs(t,e){f(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,x(Es,e))})}function Es(t){var e=Rs(t);e&&e.setOutputEnd(this.count())}function Rs(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var r=n.agentStubMap;r&&(n=r.get(t.uid))}return n}}function Bs(){this.group=new lv,this.uid=Za("viewChart"),this.renderTask=Is({plan:Vs,reset:Ws}),this.renderTask.context={view:this}}function Ns(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var i=0;i=0?n():c=setTimeout(n,-a),h=r};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function Hs(t,e,i,n){var r=t[e];if(r){var a=r[p_]||r,o=r[v_],s=r[g_];if(s!==i||o!==n){if(null==i||!n)return t[e]=a;r=t[e]=Gs(a,i,"debounce"===n),r[p_]=a,r[v_]=n,r[g_]=i}return r}}function Zs(t,e){var i=t[e];i&&i[p_]&&(t[e]=i[p_])}function Xs(t,e,i,n){this.ecInstance=t,this.api=e,this.unfinished;var i=this._dataProcessorHandlers=i.slice(),n=this._visualHandlers=n.slice();this._allHandlers=i.concat(n),this._stageTaskMap=N()}function Ys(t,e,i,n,r){function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}r=r||{};var o;f(e,function(e){if(!r.visualType||r.visualType===e.visualType){var s=t._stageTaskMap.get(e.uid),l=s.seriesTaskMap,h=s.overallTask;if(h){var u,c=h.agentStubMap;c.each(function(t){a(r,t)&&(t.dirty(),u=!0)}),u&&h.dirty(),S_(h,n);var d=t.getPerformArgs(h,r.block);c.each(function(t){t.perform(d)}),o|=h.perform(d)}else l&&l.each(function(s){a(r,s)&&s.dirty();var l=t.getPerformArgs(s,r.block);l.skip=!e.performRawSeries&&i.isSeriesFiltered(s.context.model),S_(s,n),o|=s.perform(l)})}}),t.unfinished|=o}function js(t,e,i,n,r){function a(i){var a=i.uid,s=o.get(a)||o.set(a,Is({plan:Js,reset:tl,count:il}));s.context={model:i,ecModel:n,api:r,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},nl(t,i,s)}var o=i.seriesTaskMap||(i.seriesTaskMap=N()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(a):s?n.eachRawSeriesByType(s,a):l&&l(n,r).each(a);var h=t._pipelineMap;o.each(function(t,e){h.get(e)||(t.dispose(),o.removeKey(e))})}function qs(t,e,i,n,r){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,Is({reset:$s,onDirty:Qs})),o.dirty()),n.context={model:e,overallProgress:u,modifyOutputEnd:c},n.agent=o,n.__block=u,nl(t,e,n)}var o=i.overallTask=i.overallTask||Is({reset:Us});o.context={ecModel:n,api:r,overallReset:e.overallReset,scheduler:t};var s=o.agentStubMap=o.agentStubMap||N(),l=e.seriesType,h=e.getTargetSeries,u=!0,c=e.modifyOutputEnd;l?n.eachRawSeriesByType(l,a):h?h(n,r).each(a):(u=!1,f(n.getSeries(),a));var d=t._pipelineMap;s.each(function(t,e){d.get(e)||(t.dispose(),o.dirty(),s.removeKey(e))})}function Us(t){t.overallReset(t.ecModel,t.api,t.payload)}function $s(t){return t.overallProgress&&Ks}function Ks(){this.agent.dirty(),this.getDownstream().dirty()}function Qs(){this.agent&&this.agent.dirty()}function Js(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function tl(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Nn(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?p(e,function(t,e){return el(e)}):M_}function el(t){return function(e,i){var n=i.data,r=i.resetDefines[t];if(r&&r.dataEach)for(var a=e.start;a0?parseInt(n,10)/100:n?parseFloat(n):0;var r=i.getAttribute("stop-color")||"#000000";e.addColorStop(n,r)}i=i.nextSibling}}function hl(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),s(e.__inheritedStyle,t.__inheritedStyle))}function ul(t){for(var e=z(t).split(E_),i=[],n=0;n0;a-=2){var o=r[a],s=r[a-1];switch(n=n||be(),s){case"translate":o=z(o).split(E_),Te(n,n,[parseFloat(o[0]),parseFloat(o[1]||0)]);break;case"scale":o=z(o).split(E_),Ae(n,n,[parseFloat(o[0]),parseFloat(o[1]||o[0])]);break;case"rotate":o=z(o).split(E_),Ce(n,n,parseFloat(o[0]));break;case"skew":o=z(o).split(E_),console.warn("Skew transform is not supported yet");break;case"matrix":var o=z(o).split(E_);n[0]=parseFloat(o[0]),n[1]=parseFloat(o[1]),n[2]=parseFloat(o[2]),n[3]=parseFloat(o[3]),n[4]=parseFloat(o[4]),n[5]=parseFloat(o[5])}}}e.setLocalTransform(n)}function pl(t){var e=t.getAttribute("style"),i={};if(!e)return i;var n={};W_.lastIndex=0;for(var r;null!=(r=W_.exec(e));)n[r[1]]=r[2];for(var a in N_)N_.hasOwnProperty(a)&&null!=n[a]&&(i[N_[a]]=n[a]);return i}function gl(t,e,i){var n=e/t.width,r=i/t.height,a=Math.min(n,r),o=[a,a],s=[-(t.x+t.width/2)*a+e/2,-(t.y+t.height/2)*a+i/2];return{scale:o,position:s}}function vl(t){return function(e,i,n){e=e&&e.toLowerCase(),bg.prototype[t].call(this,e,i,n)}}function ml(){bg.call(this)}function yl(t,e,i){function r(t,e){return t.__prio-e.__prio}i=i||{},"string"==typeof e&&(e=xw[e]),this.id,this.group,this._dom=t;var a="canvas",o=this._zr=On(t,{renderer:i.renderer||a,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height});this._throttledZrFlush=Gs(y(o.flush,o),17);var e=n(e);e&&Ux(e,!0),this._theme=e,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new Ko;var s=this._api=Rl(this);Si(yw,r),Si(gw,r),this._scheduler=new Xs(this,s,gw,yw),bg.call(this,this._ecEventProcessor=new Bl),this._messageCenter=new ml,this._initEvents(),this.resize=y(this.resize,this),this._pendingActions=[],o.animation.on("frame",this._onframe,this),Tl(o,this),E(this)}function xl(t,e,i){var n,r=this._model,a=this._coordSysMgr.getCoordinateSystems();e=qn(r,e);for(var o=0;oe.get("hoverLayerThreshold")&&!tg.node&&i.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function zl(t,e){var i=t.get("blendMode")||null;e.group.traverse(function(t){t.isGroup||t.style.blend!==i&&t.setStyle("blend",i),t.eachPendingDisplayable&&t.eachPendingDisplayable(function(t){t.setStyle("blend",i)})})}function El(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function Rl(t){var e=t._coordSysMgr;return o(new $o(t),{getCoordinateSystems:y(e.getCoordinateSystems,e),getComponentByElement:function(e){for(;e;){var i=e.__ecComponentInfo;if(null!=i)return t._model.getComponent(i.mainType,i.index);e=e.parent}}})}function Bl(){this.eventInfo}function Nl(t){function e(t,e){for(var i=0;i65535?Ow:zw}function vh(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function mh(t,e){f(Ew.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,f(Rw,function(i){t[i]=n(e[i])}),t._calculationInfo=o(e._calculationInfo)}function yh(t){var e=t._invertedIndicesMap;f(e,function(i,n){var r=t._dimensionInfos[n],a=r.ordinalMeta;if(a){i=e[n]=new Ow(a.categories.length);for(var o=0;o=0?this._indices[t]:-1}function bh(t,e){var i=t._idList[e];return null==i&&(i=xh(t,t._idDimIdx,e)),null==i&&(i=Pw+e),i}function Sh(t){return _(t)||(t=[t]),t}function Mh(t,e){var i=t.dimensions,n=new Bw(p(i,t.getDimensionInfo,t),t.hostModel);mh(n,t);for(var r=n._storage={},a=t._storage,o=0;o=0?(r[s]=Ih(a[s]),n._rawExtent[s]=Th(),n._extent[s]=null):r[s]=a[s])}return n}function Ih(t){for(var e=new Array(t.length),i=0;ip;p++){var g=a[p]=o({},S(a[p])?a[p]:{name:a[p]}),v=g.name,m=c[p]={otherDims:{}};null!=v&&null==h.get(v)&&(m.name=m.displayName=v,h.set(v,p)),null!=g.type&&(m.type=g.type),null!=g.displayName&&(m.displayName=g.displayName)}l.each(function(t,e){if(t=Nn(t).slice(),1===t.length&&t[0]<0)return void l.set(e,!1);var i=l.set(e,[]);f(t,function(t,n){b(t)&&(t=h.get(t)),null!=t&&d>t&&(i[n]=t,r(c[t],e,n))})});var y=0;f(t,function(t){var e,t,i,a;if(b(t))e=t,t={};else{e=t.name;var o=t.ordinalMeta;t.ordinalMeta=null,t=n(t),t.ordinalMeta=o,i=t.dimsDef,a=t.otherDims,t.name=t.coordDim=t.coordDimIndex=t.dimsDef=t.otherDims=null}var h=l.get(e);if(h!==!1){var h=Nn(h);if(!h.length)for(var u=0;u<(i&&i.length||1);u++){for(;yI;I++){var m=c[I]=c[I]||{},T=m.coordDim;null==T&&(m.coordDim=Dh(M,u,w),m.coordDimIndex=0,(!x||0>=_)&&(m.isExtraCoord=!0),_--),null==m.name&&(m.name=Dh(m.coordDim,h)),null==m.type&&Wo(e,I,m.name)&&(m.type="ordinal")}return c}function Ah(t,e,i,n){var r=Math.max(t.dimensionsDetectCount||1,e.length,i.length,n||0);return f(e,function(t){var e=t.dimsDef;e&&(r=Math.max(r,e.length)) +}),r}function Dh(t,e,i){if(i||null!=e.get(t)){for(var n=0;null!=e.get(t+n);)n++;t+=n}return e.set(t,!0),t}function kh(t,e,i){i=i||{};var n,r,a,o,s=i.byIndex,l=i.stackedCoordDimension,h=!(!t||!t.get("stack"));if(f(e,function(t,i){b(t)&&(e[i]=t={name:t}),h&&!t.isExtraCoord&&(s||n||!t.ordinalMeta||(n=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))}),!r||s||n||(s=!0),r){a="__\x00ecstackresult",o="__\x00ecstackedover",n&&(n.createInvertedIndices=!0);var u=r.coordDim,c=r.type,d=0;f(e,function(t){t.coordDim===u&&d++}),e.push({name:a,coordDim:u,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0}),d++,e.push({name:o,coordDim:o,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:n&&n.name,isStackedByIndex:s,stackedOverDimension:o,stackResultDimension:a}}function Ph(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function Lh(t,e){return Ph(t,e)?t.getCalculationInfo("stackResultDimension"):e}function Oh(t,e,i){i=i||{},ko.isInstance(t)||(t=ko.seriesDataToSource(t));var n,r=e.get("coordinateSystem"),a=Ko.get(r),o=Ao(e);o&&(n=p(o.coordSysDims,function(t){var e={name:t},i=o.axisMap.get(t);if(i){var n=i.get("type");e.type=fh(n)}return e})),n||(n=a&&(a.getDimensionsInfo?a.getDimensionsInfo():a.dimensions.slice())||["x","y"]);var s,l,h=Vw(t,{coordDimensions:n,generateCoord:i.generateCoord});o&&f(h,function(t,e){var i=t.coordDim,n=o.categoryAxisMap.get(i);n&&(null==s&&(s=e),t.ordinalMeta=n.getOrdinalMeta()),null!=t.otherDims.itemName&&(l=!0)}),l||null==s||(h[s].otherDims.itemName=0);var u=kh(e,h),c=new Bw(h,e);c.setCalculationInfo(u);var d=null!=s&&zh(t)?function(t,e,i,n){return n===s?i:this.defaultDimValueGetter(t,e,i,n)}:null;return c.hasItemOption=!1,c.initData(t,null,d),c}function zh(t){if(t.sourceFormat===Ix){var e=Eh(t.data||[]);return null!=e&&!_(Vn(e))}}function Eh(t){for(var e=0;eo&&(o=r.interval=i),null!=n&&o>n&&(o=r.interval=n);var s=r.intervalPrecision=Wh(o),l=r.niceTickExtent=[Zw(Math.ceil(t[0]/o)*o,s),Zw(Math.floor(t[1]/o)*o,s)];return Hh(l,t),r}function Wh(t){return Ja(t)+2}function Gh(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Hh(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Gh(t,0,e),Gh(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Zh(t,e,i,n){var r=[];if(!t)return r;var a=1e4;e[0]a)return[];return e[1]>(r.length?r[r.length-1]:i[1])&&r.push(e[1]),r}function Xh(t){return t.get("stack")||jw+t.seriesIndex}function Yh(t){return t.dim+t.index}function jh(t){var e=[],i=t.axis,n="axis0";if("category"===i.type){for(var r=i.getBandWidth(),a=0;ae&&(e=Math.min(e,s),t.width&&(e=Math.min(e,t.width)),s-=e,t.width=e,l--)}),h=(s-a)/(l+(l-1)*o),h=Math.max(h,0);var u,c=0;f(n,function(t){t.width||(t.width=h),u=t,c+=t.width*(1+o)}),u&&(c-=u.width*o);var d=-c/2;f(n,function(t,n){i[e][n]=i[e][n]||{offset:d,width:t.width},d+=t.width*(1+o)})}),i}function Kh(t,e,i){if(t&&e){var n=t[Yh(e)];return null!=n&&null!=i&&(n=n[Xh(i)]),n}}function Qh(t,e){var i=qh(t,e),n=Uh(i),r={};f(i,function(t){var e=t.getData(),i=t.coordinateSystem,a=i.getBaseAxis(),o=Xh(t),s=n[Yh(a)][o],l=s.offset,h=s.width,u=i.getOtherAxis(a),c=t.get("barMinHeight")||0;r[o]=r[o]||[],e.setLayout({offset:l,size:h});for(var d=e.mapDimension(u.dim),f=e.mapDimension(a.dim),p=Ph(e,d),g=u.isHorizontal(),v=eu(a,u,p),m=0,y=e.count();y>m;m++){var x=e.get(d,m),_=e.get(f,m);if(!isNaN(x)){var w=x>=0?"p":"n",b=v;p&&(r[o][_]||(r[o][_]={p:v,n:v}),b=r[o][_][w]);var S,M,I,T;if(g){var C=i.dataToPoint([x,_]);S=b,M=C[1]+l,I=C[0]-v,T=h,Math.abs(I)I?-1:1)*c),p&&(r[o][_][w]+=I)}else{var C=i.dataToPoint([_,x]);S=C[0]+l,M=b,I=h,T=C[1]-v,Math.abs(T)=T?-1:1)*c),p&&(r[o][_][w]+=T)}e.setItemLayout(m,{x:S,y:M,width:I,height:T})}}},this)}function Jh(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function tu(t){return t.pipelineContext&&t.pipelineContext.large}function eu(t,e){var i,n,r=e.getGlobalExtent();r[0]>r[1]?(i=r[1],n=r[0]):(i=r[0],n=r[1]);var a=e.toGlobalCoord(e.dataToCoord(0));return i>a&&(a=i),a>n&&(a=n),a}function iu(t,e){return ub(t,hb(e))}function nu(t,e){var i,n,r,a=t.type,o=e.getMin(),s=e.getMax(),l=null!=o,h=null!=s,u=t.getExtent();"ordinal"===a?i=e.getCategories().length:(n=e.get("boundaryGap"),_(n)||(n=[n||0,n||0]),"boolean"==typeof n[0]&&(n=[0,0]),n[0]=Ua(n[0],1),n[1]=Ua(n[1],1),r=u[1]-u[0]||Math.abs(u[0])),null==o&&(o="ordinal"===a?i?0:0/0:u[0]-n[0]*r),null==s&&(s="ordinal"===a?i?i-1:0/0:u[1]+n[1]*r),"dataMin"===o?o=u[0]:"function"==typeof o&&(o=o({min:u[0],max:u[1]})),"dataMax"===s?s=u[1]:"function"==typeof s&&(s=s({min:u[0],max:u[1]})),(null==o||!isFinite(o))&&(o=0/0),(null==s||!isFinite(s))&&(s=0/0),t.setBlank(C(o)||C(s)||"ordinal"===a&&!t.getOrdinalMeta().categories.length),e.getNeedCrossZero()&&(o>0&&s>0&&!l&&(o=0),0>o&&0>s&&!h&&(s=0));var c=e.ecModel;if(c&&"time"===a){var d,p=qh("bar",c);if(f(p,function(t){d|=t.getBaseAxis()===e.axis}),d){var g=Uh(p),v=ru(o,s,e,g);o=v.min,s=v.max}}return[o,s]}function ru(t,e,i,n){var r=i.axis.getExtent(),a=r[1]-r[0],o=Kh(n,i.axis);if(void 0===o)return{min:t,max:e};var s=1/0;f(o,function(t){s=Math.min(t.offset,s)});var l=-1/0;f(o,function(t){l=Math.max(t.offset+t.width,l)}),s=Math.abs(s),l=Math.abs(l);var h=s+l,u=e-t,c=1-(s+l)/a,d=u/c-u;return e+=d*(l/h),t-=d*(s/h),{min:t,max:e}}function au(t,e){var i=nu(t,e),n=null!=e.getMin(),r=null!=e.getMax(),a=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:a,fixMin:n,fixMax:r,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function ou(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Hw(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new Yw;default:return(Rh.getClass(e)||Yw).create(t)}}function su(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||0>i&&0>n)}function lu(t){var e=t.getLabelModel().get("formatter"),i="category"===t.type?t.scale.getExtent()[0]:null;return"string"==typeof e?e=function(e){return function(i){return i=t.scale.getLabel(i),e.replace("{value}",null!=i?i:"")}}(e):"function"==typeof e?function(n,r){return null!=i&&(r=n-i),e(hu(t,n),r)}:function(e){return t.scale.getLabel(e)}}function hu(t,e){return"category"===t.type?t.scale.getLabel(e):e}function uu(t){var e=t.model,i=t.scale;if(e.get("axisLabel.show")&&!i.isBlank()){var n,r,a="category"===t.type,o=i.getExtent();a?r=i.count():(n=i.getTicks(),r=n.length);var s,l=t.getLabelModel(),h=lu(t),u=1;r>40&&(u=Math.ceil(r/40));for(var c=0;r>c;c+=u){var d=n?n[c]:o[0]+c,f=h(d),p=l.getTextRect(f),g=cu(p,l.get("rotate")||0);s?s.union(g):s=g}return s}}function cu(t,e){var i=e*Math.PI/180,n=t.plain(),r=n.width,a=n.height,o=r*Math.cos(i)+a*Math.sin(i),s=r*Math.sin(i)+a*Math.cos(i),l=new gi(n.x,n.y,o,s);return l}function du(t,e){if("image"!==this.type){var i=this.style,n=this.shape;n&&"line"===n.symbolType?i.stroke=t:this.__isEmptyBrush?(i.stroke=t,i.fill=e||"#fff"):(i.fill&&(i.fill=t),i.stroke&&(i.stroke=t)),this.dirty(!1)}}function fu(t,e,i,n,r,a,o){var s=0===t.indexOf("empty");s&&(t=t.substr(5,1).toLowerCase()+t.substr(6));var l;return l=0===t.indexOf("image://")?Jr(t.slice(8),new gi(e,i,n,r),o?"center":"cover"):0===t.indexOf("path://")?Qr(t.slice(7),{},new gi(e,i,n,r),o?"center":"cover"):new Mb({shape:{symbolType:t,x:e,y:i,width:n,height:r}}),l.__isEmptyBrush=s,l.setColor=du,l.setColor(a),l}function pu(t){return Oh(t.getSource(),t)}function gu(t,e){var i=e;Wa.isInstance(e)||(i=new Wa(e),c(i,vb));var n=ou(i);return n.setExtent(t[0],t[1]),au(n,i),n}function vu(t){c(t,vb)}function mu(t,e){return Math.abs(t-e)>1^-(1&s),l=l>>1^-(1&l),s+=r,l+=a,r=s,a=l,n.push([s/i,l/i])}return n}function bu(t){return"category"===t.type?Mu(t):Cu(t)}function Su(t,e){return"category"===t.type?Tu(t,e):{ticks:t.scale.getTicks()}}function Mu(t){var e=t.getLabelModel(),i=Iu(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function Iu(t,e){var i=Au(t,"labels"),n=Ru(e),r=Du(i,n);if(r)return r;var a,o;return w(n)?a=Eu(t,n):(o="auto"===n?Pu(t):n,a=zu(t,o)),ku(i,n,{labels:a,labelCategoryInterval:o})}function Tu(t,e){var i=Au(t,"ticks"),n=Ru(e),r=Du(i,n);if(r)return r;var a,o;if((!e.get("show")||t.scale.isBlank())&&(a=[]),w(n))a=Eu(t,n,!0);else if("auto"===n){var s=Iu(t,t.getLabelModel());o=s.labelCategoryInterval,a=p(s.labels,function(t){return t.tickValue})}else o=n,a=zu(t,o,!0);return ku(i,n,{ticks:a,tickCategoryInterval:o})}function Cu(t){var e=t.scale.getTicks(),i=lu(t);return{labels:p(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function Au(t,e){return Db(t)[e]||(Db(t)[e]=[])}function Du(t,e){for(var i=0;i40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],h=t.dataToCoord(l+1)-t.dataToCoord(l),u=Math.abs(h*Math.cos(n)),c=Math.abs(h*Math.sin(n)),d=0,f=0;l<=a[1];l+=s){var p=0,g=0,v=Ei(i(l),e.font,"center","top");p=1.3*v.width,g=1.3*v.height,d=Math.max(d,p,7),f=Math.max(f,g,7)}var m=d/u,y=f/c;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var x=Math.max(0,Math.floor(Math.min(m,y))),_=Db(t.model),w=_.lastAutoInterval,b=_.lastTickCount;return null!=w&&null!=b&&Math.abs(w-x)<=1&&Math.abs(b-o)<=1&&w>x?x=w:(_.lastTickCount=o,_.lastAutoInterval=x),x}function Ou(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function zu(t,e,i){function n(t){l.push(i?t:{formattedLabel:r(t),rawLabel:a.getLabel(t),tickValue:t})}var r=lu(t),a=t.scale,o=a.getExtent(),s=t.getLabelModel(),l=[],h=Math.max((e||0)+1,1),u=o[0],c=a.count();0!==u&&h>1&&c/h>2&&(u=Math.round(Math.ceil(u/h)*h));var d={min:s.get("showMinLabel"),max:s.get("showMaxLabel")};d.min&&u!==o[0]&&n(o[0]);for(var f=u;f<=o[1];f+=h)n(f);return d.max&&f!==o[1]&&n(o[1]),l}function Eu(t,e,i){var n=t.scale,r=lu(t),a=[];return f(n.getTicks(),function(t){var o=n.getLabel(t);e(t,o)&&a.push(i?t:{formattedLabel:r(t),rawLabel:o,tickValue:t})}),a}function Ru(t){var e=t.get("interval");return null==e?"auto":e}function Bu(t,e){var i=t[1]-t[0],n=e,r=i/n/2;t[0]+=r,t[1]-=r}function Nu(t,e,i,n,r){function a(t,e){return u?t>e:e>t}var o=e.length;if(t.onBand&&!n&&o){var s,l=t.getExtent();if(1===o)e[0].coord=l[0],s=e[1]={coord:l[0]};else{var h=e[1].coord-e[0].coord;f(e,function(t){t.coord-=h/2;var e=e||0;e%2>0&&(t.coord-=h/(2*(e+1)))}),s={coord:e[o-1].coord+h},e.push(s)}var u=l[0]>l[1];a(e[0].coord,l[0])&&(r?e[0].coord=l[0]:e.shift()),r&&a(l[0],e[0].coord)&&e.unshift({coord:l[0]}),a(l[1],s.coord)&&(r?s.coord=l[1]:e.pop()),r&&a(s.coord,l[1])&&e.push({coord:l[1]})}}function Fu(t){return this._axes[t]}function Vu(t){Eb.call(this,t)}function Wu(t,e){return e.type||(e.data?"category":"value")}function Gu(t,e){return t.getCoordSysModel()===e}function Hu(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function Zu(t,e,i,n){function r(t){return t.dim+"_"+t.index}i.getAxesOnZeroOf=function(){return a?[a]:[]};var a,o=t[e],s=i.model,l=s.get("axisLine.onZero"),h=s.get("axisLine.onZeroAxisIndex");if(l){if(null!=h)Xu(o[h])&&(a=o[h]);else for(var u in o)if(o.hasOwnProperty(u)&&Xu(o[u])&&!n[r(o[u])]){a=o[u];break}a&&(n[r(a)]=!0)}}function Xu(t){return t&&"category"!==t.type&&"time"!==t.type&&su(t)}function Yu(t,e){var i=t.getExtent(),n=i[0]+i[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return n-t+e}}function ju(t){return p(Zb,function(e){var i=t.getReferringComponents(e)[0];return i})}function qu(t){return"cartesian2d"===t.get("coordinateSystem")}function Uu(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return Ss(t,e,i[0]);if(n){for(var r=[],a=0;a0?"bottom":"top":r.width>0?"left":"right";l||$u(t.style,d,n,h,a,i,p),xa(t,d)}function ec(t,e){var i=t.get(qb)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function ic(t,e,i){var n=t.getData(),r=[],a=n.getLayout("valueAxisHorizontal")?1:0;r[1-a]=n.getLayout("valueAxisStart");var o=new Kb({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:r,__valueIdx:a});e.add(o),nc(o,t,n)}function nc(t,e,i){var n=i.getVisual("borderColor")||i.getVisual("color"),r=e.getModel("itemStyle").getItemStyle(["color","borderColor"]);t.useStyle(r),t.style.fill=null,t.style.stroke=n,t.style.lineWidth=i.getLayout("barWidth")}function rc(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e}function ac(t,e,i,n){var r,a,o=io(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return no(o-Qb/2)?(a=l?"bottom":"top",r="center"):no(o-1.5*Qb)?(a=l?"top":"bottom",r="center"):(a="middle",r=1.5*Qb>o&&o>Qb/2?l?"left":"right":l?"right":"left"),{rotation:o,textAlign:r,textVerticalAlign:a}}function oc(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function sc(t,e,i){var n=t.get("axisLabel.showMinLabel"),r=t.get("axisLabel.showMaxLabel");e=e||[],i=i||[];var a=e[0],o=e[1],s=e[e.length-1],l=e[e.length-2],h=i[0],u=i[1],c=i[i.length-1],d=i[i.length-2];n===!1?(lc(a),lc(h)):hc(a,o)&&(n?(lc(o),lc(u)):(lc(a),lc(h))),r===!1?(lc(s),lc(c)):hc(l,s)&&(r?(lc(l),lc(d)):(lc(s),lc(c)))}function lc(t){t&&(t.ignore=!0)}function hc(t,e){var i=t&&t.getBoundingRect().clone(),n=e&&e.getBoundingRect().clone();if(i&&n){var r=Se([]);return Ce(r,r,-t.rotation),i.applyTransform(Ie([],r,t.getLocalTransform())),n.applyTransform(Ie([],r,e.getLocalTransform())),i.intersect(n)}}function uc(t){return"middle"===t||"center"===t}function cc(t,e,i){var n=e.axis;if(e.get("axisTick.show")&&!n.scale.isBlank()){for(var r=e.getModel("axisTick"),a=r.getModel("lineStyle"),o=r.get("length"),l=n.getTicksCoords(),h=[],u=[],c=t._transform,d=[],f=0;f=0||t===e}function xc(t){var e=_c(t);if(e){var i=e.axisPointerModel,n=e.axis.scale,r=i.option,a=i.get("status"),o=i.get("value");null!=o&&(o=n.parse(o));var s=bc(i);null==a&&(r.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==o||o>l[1])&&(o=l[1]),o0?i=n[0]:n[1]<0&&(i=n[1]),i}function Vc(t,e,i,n){var r=0/0;t.stacked&&(r=i.get(i.getCalculationInfo("stackedOverDimension"),n)),isNaN(r)&&(r=t.valueStart);var a=t.baseDataOffset,o=[];return o[a]=i.get(t.baseDim,n),o[1-a]=r,e.dataToPoint(o)}function Wc(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}function Gc(t){return isNaN(t[0])||isNaN(t[1])}function Hc(t,e,i,n,r,a,o,s,l,h){return"none"!==h&&h?Zc.apply(this,arguments):Xc.apply(this,arguments)}function Zc(t,e,i,n,r,a,o,s,l,h,u){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=r||0>d)break;if(Gc(p)){if(u){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],v="y"===h?1:0,m=(p[v]-g[v])*l;_S(bS,g),bS[v]=g[v]+m,_S(SS,p),SS[v]=p[v]-m,t.bezierCurveTo(bS[0],bS[1],SS[0],SS[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Xc(t,e,i,n,r,a,o,s,l,h,u){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=r||0>d)break;if(Gc(p)){if(u){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),_S(bS,p);else if(l>0){var g=d+a,v=e[g];if(u)for(;v&&Gc(e[g]);)g+=a,v=e[g];var m=.5,y=e[c],v=e[g];if(!v||Gc(v))_S(SS,p);else{Gc(v)&&!u&&(v=p),j(wS,v,y);var x,_;if("x"===h||"y"===h){var w="x"===h?0:1;x=Math.abs(p[w]-y[w]),_=Math.abs(p[w]-v[w])}else x=yg(p,y),_=yg(p,v);m=_/(_+x),xS(SS,p,wS,-l*(1-m))}mS(bS,bS,s),yS(bS,bS,o),mS(SS,SS,s),yS(SS,SS,o),t.bezierCurveTo(bS[0],bS[1],SS[0],SS[1],p[0],p[1]),xS(bS,p,wS,l*m)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Yc(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var r=0;rn[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}function jc(t,e){if(t.length===e.length){for(var i=0;ie[0]?1:-1;e[0]+=n*i,e[1]-=n*i}return e}function $c(t,e,i){if(!i.valueDim)return[];for(var n=[],r=0,a=e.count();a>r;r++)n.push(Vc(i,t,e,r));return n}function Kc(t,e,i,n){var r=Uc(t.getAxis("x")),a=Uc(t.getAxis("y")),o=t.getBaseAxis().isHorizontal(),s=Math.min(r[0],r[1]),l=Math.min(a[0],a[1]),h=Math.max(r[0],r[1])-s,u=Math.max(a[0],a[1])-l;if(i)s-=.5,h+=.5,l-=.5,u+=.5;else{var c=n.get("lineStyle.width")||2,d=n.get("clipOverflow")?c/2:Math.max(h,u);o?(l-=d,u+=2*d):(s-=d,h+=2*d)}var f=new Dy({shape:{x:s,y:l,width:h,height:u}});return e&&(f.shape[o?"width":"height"]=0,Oa(f,{shape:{width:h,height:u}},n)),f}function Qc(t,e,i,n){var r=t.getAngleAxis(),a=t.getRadiusAxis(),o=a.getExtent().slice();o[0]>o[1]&&o.reverse();var s=r.getExtent(),l=Math.PI/180;i&&(o[0]-=.5,o[1]+=.5);var h=new Sy({shape:{cx:$a(t.cx,1),cy:$a(t.cy,1),r0:$a(o[0],1),r:$a(o[1],1),startAngle:-s[0]*l,endAngle:-s[1]*l,clockwise:r.inverse}});return e&&(h.shape.endAngle=-s[0]*l,Oa(h,{shape:{endAngle:-s[1]*l}},n)),h}function Jc(t,e,i,n){return"polar"===t.type?Qc(t,e,i,n):Kc(t,e,i,n)}function td(t,e,i){for(var n=e.getBaseAxis(),r="x"===n.dim||"radius"===n.dim?0:1,a=[],o=0;o=0;a--){var o=i[a].dimension,s=t.dimensions[o],l=t.getDimensionInfo(s);if(n=l&&l.coordDim,"x"===n||"y"===n){r=i[a];break}}if(r){var h=e.getAxis(n),u=p(r.stops,function(t){return{coord:h.toGlobalCoord(h.dataToCoord(t.value)),color:t.color}}),c=u.length,d=r.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),d.reverse());var g=10,v=u[0].coord-g,m=u[c-1].coord+g,y=m-v;if(.001>y)return"transparent";f(u,function(t){t.offset=(t.coord-v)/y}),u.push({offset:c?u[c-1].offset:.5,color:d[1]||"transparent"}),u.unshift({offset:c?u[0].offset:.5,color:d[0]||"transparent"});var x=new Ry(0,0,0,0,u,!0);return x[n]=v,x[n+"2"]=m,x}}}function id(t,e,i){var n=t.get("showAllSymbol"),r="auto"===n;if(!n||r){var a=i.getAxesByScale("ordinal")[0];if(a&&(!r||!nd(a,e))){var o=e.mapDimension(a.dim),s={};return f(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(o,t))}}}}function nd(t,e){var i=t.getExtent(),n=Math.abs(i[1]-i[0])/t.scale.count();isNaN(n)&&(n=0);for(var r=e.count(),a=Math.max(1,Math.round(r/5)),o=0;r>o;o+=a)if(1.5*Cc.getSymbolSize(e,o)[t.isHorizontal()?1:0]>n)return!1;return!0}function rd(t,e,i,n){var r=e.getData(),a=this.dataIndex,o=r.getName(a),s=e.get("selectedOffset");n.dispatchAction({type:"pieToggleSelect",from:t,name:o,seriesId:e.id}),r.each(function(t){ad(r.getItemGraphicEl(t),r.getItemLayout(t),e.isSelected(r.getName(t)),s,i)})}function ad(t,e,i,n,r){var a=(e.startAngle+e.endAngle)/2,o=Math.cos(a),s=Math.sin(a),l=i?n:0,h=[o*l,s*l];r?t.animate().when(200,{position:h}).start("bounceOut"):t.attr("position",h)}function od(t,e){function i(){a.ignore=a.hoverIgnore,o.ignore=o.hoverIgnore}function n(){a.ignore=a.normalIgnore,o.ignore=o.normalIgnore}lv.call(this);var r=new Sy({z2:2}),a=new Ay,o=new xy;this.add(r),this.add(a),this.add(o),this.updateData(t,e,!0),this.on("emphasis",i).on("normal",n).on("mouseover",i).on("mouseout",n)}function sd(t,e,i,n,r,a,o){function s(e,i,n){for(var r=e;i>r;r++)if(t[r].y+=n,r>e&&i>r+1&&t[r+1].y>t[r].y+t[r].height)return void l(r,n/2);l(i-1,n/2)}function l(e,i){for(var n=e;n>=0&&(t[n].y-=i,!(n>0&&t[n].y>t[n-1].y+t[n-1].height));n--);}function h(t,e,i,n,r,a){for(var o=a>0?e?Number.MAX_VALUE:0:e?Number.MAX_VALUE:0,s=0,l=t.length;l>s;s++)if("center"!==t[s].position){var h=Math.abs(t[s].y-n),u=t[s].len,c=t[s].len2,d=r+u>h?Math.sqrt((r+u+c)*(r+u+c)-h*h):Math.abs(t[s].x-i);e&&d>=o&&(d=o-10),!e&&o>=d&&(d=o+10),t[s].x=i+d*a,o=d}}t.sort(function(t,e){return t.y-e.y});for(var u,c=0,d=t.length,f=[],p=[],g=0;d>g;g++)u=t[g].y-c,0>u&&s(g,d,-u,r),c=t[g].y+t[g].height;0>o-c&&l(d-1,c-o);for(var g=0;d>g;g++)t[g].y>=i?p.push(t[g]):f.push(t[g]);h(f,!1,e,i,n,r),h(p,!0,e,i,n,r)}function ld(t,e,i,n,r,a){for(var o=[],s=[],l=0;lu;u++)a[u]&&xd(t.childAt(u),e,a[u],n,t,r)}}function wd(t){new uh(t.oldChildren,t.newChildren,bd,bd,t).add(Sd).update(Sd).remove(Md).execute()}function bd(t,e){var i=t&&t.name;return null!=i?i:KS+e}function Sd(t,e){var i=this.context,n=null!=t?i.newChildren[t]:null,r=null!=e?i.oldChildren[e]:null;xd(r,i.dataIndex,n,i.animatableModel,i.group,i.data)}function Md(t){var e=this.context,i=e.oldChildren[t];i&&e.group.remove(i)}function Id(t){return t&&(t.pathData||t.d)}function Td(t){return t&&(t.hasOwnProperty("pathData")||t.hasOwnProperty("d"))}function Cd(t,e){return t&&t.hasOwnProperty(e)}function Ad(t,e,i){var n,r={},a="toggleSelected"===t;return i.eachComponent("legend",function(i){a&&null!=n?i[n?"select":"unSelect"](e.name):(i[t](e.name),n=i.isSelected(e.name));var o=i.getData();f(o,function(t){var e=t.get("name");if("\n"!==e&&""!==e){var n=i.isSelected(e);r[e]=r.hasOwnProperty(e)?r[e]&&n:n}})}),{name:e.name,selected:r}}function Dd(t,e){var i=rx(e.get("padding")),n=e.getItemStyle(["color","opacity"]);n.fill=e.get("backgroundColor");var t=new Dy({shape:{x:t.x-i[3],y:t.y-i[0],width:t.width+i[1]+i[3],height:t.height+i[0]+i[2],r:e.get("borderRadius")},style:n,silent:!0,z2:-1});return t}function kd(t,e){e.dispatchAction({type:"legendToggleSelect",name:t})}function Pd(t,e,i,n){var r=i.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||i.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:n})}function Ld(t,e,i,n){var r=i.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||i.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:n})}function Od(t,e,i){var n=t.getOrient(),r=[1,1];r[n.index]=0,So(e,i,{type:"box",ignoreSize:r})}function zd(t,e,i,n,r){var a=t.axis;if(!a.scale.isBlank()&&a.containData(e)){if(!t.involveSeries)return void i.showPointer(t,e);var s=Ed(e,t),l=s.payloadBatch,h=s.snapToValue;l[0]&&null==r.seriesIndex&&o(r,l[0]),!n&&t.snap&&a.containData(h)&&null!=h&&(e=h),i.showPointer(t,e,l,r),i.showTooltip(t,s,h)}}function Ed(t,e){var i=e.axis,n=i.dim,r=t,a=[],o=Number.MAX_VALUE,s=-1;return cM(e.seriesModels,function(e){var l,h,u=e.getData().mapDimension(n,!0);if(e.getAxisTooltipData){var c=e.getAxisTooltipData(u,t,i);h=c.dataIndices,l=c.nestestValue}else{if(h=e.getData().indicesOfNearest(u[0],t,"category"===i.type?.5:null),!h.length)return;l=e.getData().get(u[0],h[0])}if(null!=l&&isFinite(l)){var d=t-l,f=Math.abs(d);o>=f&&((o>f||d>=0&&0>s)&&(o=f,s=d,r=l,a.length=0),cM(h,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:r}}function Rd(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function Bd(t,e,i,n){var r=i.payloadBatch,a=e.axis,o=a.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,h=Sc(l),u=t.map[h];u||(u=t.map[h]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(u)),u.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:r.slice()})}}function Nd(t,e,i){var n=i.axesInfo=[];cM(e,function(e,i){var r=e.axisPointerModel.option,a=t[i];a?(!e.useHandle&&(r.status="show"),r.value=a.value,r.seriesDataIndices=(a.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&n.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})})}function Fd(t,e,i,n){if(Hd(e)||!t.list.length)return void n({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}function Vd(t,e,i){var n=i.getZr(),r="axisPointerLastHighlights",a=fM(n)[r]||{},o=fM(n)[r]={};cM(t,function(t){var e=t.axisPointerModel.option;"show"===e.status&&cM(e.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;o[e]=t})});var s=[],l=[];f(a,function(t,e){!o[e]&&l.push(t)}),f(o,function(t,e){!a[e]&&s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}function Wd(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}function Gd(t){var e=t.axis.model,i={},n=i.axisDim=t.axis.dim;return i.axisIndex=i[n+"AxisIndex"]=e.componentIndex,i.axisName=i[n+"AxisName"]=e.name,i.axisId=i[n+"AxisId"]=e.id,i}function Hd(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function Zd(t,e,i){if(!tg.node){var n=e.getZr();gM(n).records||(gM(n).records={}),Xd(n,e);var r=gM(n).records[t]||(gM(n).records[t]={});r.handler=i}}function Xd(t,e){function i(i,n){t.on(i,function(i){var r=Ud(e);vM(gM(t).records,function(t){t&&n(t,i,r.dispatchAction)}),Yd(r.pendings,e)})}gM(t).initialized||(gM(t).initialized=!0,i("click",x(qd,"click")),i("mousemove",x(qd,"mousemove")),i("globalout",jd))}function Yd(t,e){var i,n=t.showTip.length,r=t.hideTip.length;n?i=t.showTip[n-1]:r&&(i=t.hideTip[r-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function jd(t,e,i){t.handler("leave",null,i)}function qd(t,e,i,n){e.handler(t,i,n)}function Ud(t){var e={showTip:[],hideTip:[]},i=function(n){var r=e[n.type];r?r.push(n):(n.dispatchAction=i,t.dispatchAction(n))};return{dispatchAction:i,pendings:e}}function $d(t,e){if(!tg.node){var i=e.getZr(),n=(gM(i).records||{})[t];n&&(gM(i).records[t]=null)}}function Kd(){}function Qd(t,e,i,n){Jd(yM(i).lastProp,n)||(yM(i).lastProp=n,e?La(i,n,t):(i.stopAnimation(),i.attr(n)))}function Jd(t,e){if(S(t)&&S(e)){var i=!0;return f(e,function(e,n){i=i&&Jd(t[n],e)}),!!i}return t===e}function tf(t,e){t[e.get("label.show")?"show":"hide"]()}function ef(t){return{position:t.position.slice(),rotation:t.rotation||0}}function nf(t,e,i){var n=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=r&&(t.zlevel=r),t.silent=i)})}function rf(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle(),e.fill=null):"shadow"===i&&(e=n.getAreaStyle(),e.stroke=null),e}function af(t,e,i,n,r){var a=i.get("value"),o=sf(a,e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),s=i.getModel("label"),l=rx(s.get("padding")||0),h=s.getFont(),u=Ei(o,h),c=r.position,d=u.width+l[1]+l[3],f=u.height+l[0]+l[2],p=r.align;"right"===p&&(c[0]-=d),"center"===p&&(c[0]-=d/2);var g=r.verticalAlign;"bottom"===g&&(c[1]-=f),"middle"===g&&(c[1]-=f/2),of(c,d,f,n);var v=s.get("backgroundColor");v&&"auto"!==v||(v=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:d,height:f,r:s.get("borderRadius")},position:c.slice(),style:{text:o,textFont:h,textFill:s.getTextColor(),textPosition:"inside",fill:v,stroke:s.get("borderColor")||"transparent",lineWidth:s.get("borderWidth")||0,shadowBlur:s.get("shadowBlur"),shadowColor:s.get("shadowColor"),shadowOffsetX:s.get("shadowOffsetX"),shadowOffsetY:s.get("shadowOffsetY")},z2:10}}function of(t,e,i,n){var r=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+i,a)-i,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function sf(t,e,i,n,r){t=e.scale.parse(t);var a=e.scale.getLabel(t,{precision:r.precision}),o=r.formatter;if(o){var s={value:hu(e,t),seriesData:[]};f(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,r=e&&e.getDataParams(n);r&&s.seriesData.push(r)}),b(o)?a=o.replace("{value}",a):w(o)&&(a=o(s))}return a}function lf(t,e,i){var n=be();return Ce(n,n,i.rotation),Te(n,n,i.position),Ea([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function hf(t,e,i,n,r,a){var o=Jb.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=r.get("label.margin"),af(e,n,r,a,{position:lf(n.axis,t,i),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function uf(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}}function cf(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}function df(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function ff(t){return"x"===t.dim?0:1}function pf(t){var e="cubic-bezier(0.23, 1, 0.32, 1)",i="left "+t+"s "+e+",top "+t+"s "+e;return p(IM,function(t){return t+"transition:"+i}).join(";")}function gf(t){var e=[],i=t.get("fontSize"),n=t.getTextColor();return n&&e.push("color:"+n),e.push("font:"+t.getFont()),i&&e.push("line-height:"+Math.round(3*i/2)+"px"),SM(["decoration","align"],function(i){var n=t.get(i);n&&e.push("text-"+i+":"+n)}),e.join(";")}function vf(t){var e=[],i=t.get("transitionDuration"),n=t.get("backgroundColor"),r=t.getModel("textStyle"),a=t.get("padding");return i&&e.push(pf(i)),n&&(tg.canvasSupported?e.push("background-Color:"+n):(e.push("background-Color:#"+je(n)),e.push("filter:alpha(opacity=70)"))),SM(["width","color","radius"],function(i){var n="border-"+i,r=MM(n),a=t.get(r);null!=a&&e.push(n+":"+a+("color"===i?"":"px"))}),e.push(gf(r)),null!=a&&e.push("padding:"+rx(a).join("px ")+"px"),e.join(";")+";"}function mf(t,e){if(tg.wxa)return null;var i=document.createElement("div"),n=this._zr=e.getZr();this.el=i,this._x=e.getWidth()/2,this._y=e.getHeight()/2,t.appendChild(i),this._container=t,this._show=!1,this._hideTimeout;var r=this;i.onmouseenter=function(){r._enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},i.onmousemove=function(e){if(e=e||window.event,!r._enterable){var i=n.handler;pe(t,e,!0),i.dispatch("mousemove",e)}},i.onmouseleave=function(){r._enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}function yf(t){this._zr=t.getZr(),this._show=!1,this._hideTimeout}function xf(t){for(var e=t.pop();t.length;){var i=t.pop();i&&(Wa.isInstance(i)&&(i=i.get("tooltip",!0)),"string"==typeof i&&(i={formatter:i}),e=new Wa(i,e,e.ecModel))}return e}function _f(t,e){return t.dispatchAction||y(e.dispatchAction,e)}function wf(t,e,i,n,r,a,o){var s=i.getOuterSize(),l=s.width,h=s.height;return null!=a&&(t+l+a>n?t-=l+a:t+=a),null!=o&&(e+h+o>r?e-=h+o:e+=o),[t,e]}function bf(t,e,i,n,r){var a=i.getOuterSize(),o=a.width,s=a.height;return t=Math.min(t+o,n)-o,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function Sf(t,e,i){var n=i[0],r=i[1],a=5,o=0,s=0,l=e.width,h=e.height;switch(t){case"inside":o=e.x+l/2-n/2,s=e.y+h/2-r/2;break;case"top":o=e.x+l/2-n/2,s=e.y-r-a;break;case"bottom":o=e.x+l/2-n/2,s=e.y+h+a;break;case"left":o=e.x-n-a,s=e.y+h/2-r/2;break;case"right":o=e.x+l+a,s=e.y+h/2-r/2}return[o,s]}function Mf(t){return"center"===t||"middle"===t}function If(t){Fn(t,"label",["show"])}function Tf(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function Cf(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function Af(t,e,i,n,r,a){var o=[],s=Ph(e,n),l=s?e.getCalculationInfo("stackResultDimension"):n,h=zf(e,l,t),u=e.indicesOfNearest(l,h)[0];o[r]=e.get(i,u),o[a]=e.get(n,u);var c=Qa(e.get(n,u));return c=Math.min(c,20),c>=0&&(o[a]=+o[a].toFixed(c)),o}function Df(t,e){var i=t.getData(),r=t.coordinateSystem;if(e&&!Cf(e)&&!_(e.coord)&&r){var a=r.dimensions,o=kf(e,i,r,t);if(e=n(e),e.type&&RM[e.type]&&o.baseAxis&&o.valueAxis){var s=zM(a,o.baseAxis.dim),l=zM(a,o.valueAxis.dim);e.coord=RM[e.type](i,o.baseDataDim,o.valueDataDim,s,l),e.value=e.coord[l]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],u=0;2>u;u++)RM[h[u]]&&(h[u]=zf(i,i.mapDimension(a[u]),h[u]));e.coord=h}}return e}function kf(t,e,i,n){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=i.getAxis(Pf(n,r.valueDataDim)),r.baseAxis=i.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=n.getBaseAxis(),r.valueAxis=i.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function Pf(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var r=0;rn?t.coord&&t.coord[n]:t.value}function zf(t,e,i){if("average"===i){var n=0,r=0;return t.each(e,function(t){isNaN(t)||(n+=t,r++)}),n/r}return"median"===i?t.getMedian(e):t.getDataExtent(e,!0)["max"===i?1:0]}function Ef(t,e,i){var n=e.coordinateSystem;t.each(function(r){var a,o=t.getItemModel(r),s=Ua(o.get("x"),i.getWidth()),l=Ua(o.get("y"),i.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)a=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(n){var h=t.get(n.dimensions[0],r),u=t.get(n.dimensions[1],r);a=n.dataToPoint([h,u])}}else a=[s,l];isNaN(s)||(a[0]=s),isNaN(l)||(a[1]=l),t.setItemLayout(r,a)})}function Rf(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var r=new Bw(n,i),a=p(i.get("data"),x(Df,e));return t&&(a=v(a,x(Lf,t))),r.initData(a,null,t?Of:function(t){return t.value}),r}function Bf(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}function Nf(t){return"_"+t+"Type"}function Ff(t,e,i){var n=e.getItemVisual(i,"color"),r=e.getItemVisual(i,t),a=e.getItemVisual(i,t+"Size");if(r&&"none"!==r){_(a)||(a=[a,a]);var o=fu(r,-a[0]/2,-a[1]/2,a[0],a[1],n);return o.name=t,o}}function Vf(t){var e=new VM({name:"line"});return Wf(e.shape,t),e}function Wf(t,e){var i=e[0],n=e[1],r=e[2];t.x1=i[0],t.y1=i[1],t.x2=n[0],t.y2=n[1],t.percent=1,r?(t.cpx1=r[0],t.cpy1=r[1]):(t.cpx1=0/0,t.cpy1=0/0)}function Gf(){var t=this,e=t.childOfName("fromSymbol"),i=t.childOfName("toSymbol"),n=t.childOfName("label");if(e||i||!n.ignore){for(var r=1,a=this.parent;a;)a.scale&&(r/=a.scale[0]),a=a.parent;var o=t.childOfName("line");if(this.__dirty||o.__dirty){var s=o.shape.percent,l=o.pointAt(0),h=o.pointAt(s),u=j([],h,l);if(te(u,u),e){e.attr("position",l);var c=o.tangentAt(0);e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[r*s,r*s])}if(i){i.attr("position",h);var c=o.tangentAt(1);i.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),i.attr("scale",[r*s,r*s])}if(!n.ignore){n.attr("position",h);var d,f,p,g=5*r;if("end"===n.__position)d=[u[0]*g+h[0],u[1]*g+h[1]],f=u[0]>.8?"left":u[0]<-.8?"right":"center",p=u[1]>.8?"top":u[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var v=s/2,c=o.tangentAt(v),m=[c[1],-c[0]],y=o.pointAt(v);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]),d=[y[0]+m[0]*g,y[1]+m[1]*g],f="center",p="bottom";var x=-Math.atan2(c[1],c[0]);h[0].8?"right":u[0]<-.8?"left":"center",p=u[1]>.8?"bottom":u[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||p,textAlign:n.__textAlign||f},position:d,scale:[r,r]})}}}}function Hf(t,e,i){lv.call(this),this._createLine(t,e,i)}function Zf(t){this._ctor=t||Hf,this.group=new lv}function Xf(t,e,i,n){var r=e.getItemLayout(i);if(Uf(r)){var a=new t._ctor(e,i,n);e.setItemGraphicEl(i,a),t.group.add(a)}}function Yf(t,e,i,n,r,a){var o=e.getItemGraphicEl(n);return Uf(i.getItemLayout(r))?(o?o.updateData(i,r,a):o=new t._ctor(i,r,a),i.setItemGraphicEl(r,o),void t.group.add(o)):void t.group.remove(o)}function jf(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),hoverLineStyle:e.getModel("emphasis.lineStyle").getLineStyle(),labelModel:e.getModel("label"),hoverLabelModel:e.getModel("emphasis.label")}}function qf(t){return isNaN(t[0])||isNaN(t[1])}function Uf(t){return!qf(t[0])&&!qf(t[1])}function $f(t){return!isNaN(t)&&!isFinite(t)}function Kf(t,e,i,n){var r=1-t,a=n.dimensions[t];return $f(e[r])&&$f(i[r])&&e[t]===i[t]&&n.getAxis(a).containData(e[t])}function Qf(t,e){if("cartesian2d"===t.type){var i=e[0].coord,n=e[1].coord;if(i&&n&&(Kf(1,i,n,t)||Kf(0,i,n,t)))return!0}return Lf(t,e[0])&&Lf(t,e[1])}function Jf(t,e,i,n,r){var a,o=n.coordinateSystem,s=t.getItemModel(e),l=Ua(s.get("x"),r.getWidth()),h=Ua(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(h)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(t.dimensions,e));else{var u=o.dimensions,c=t.get(u[0],e),d=t.get(u[1],e);a=o.dataToPoint([c,d])}if("cartesian2d"===o.type){var f=o.getAxis("x"),p=o.getAxis("y"),u=o.dimensions;$f(t.get(u[0],e))?a[0]=f.toGlobalCoord(f.getExtent()[i?0:1]):$f(t.get(u[1],e))&&(a[1]=p.toGlobalCoord(p.getExtent()[i?0:1]))}isNaN(l)||(a[0]=l),isNaN(h)||(a[1]=h)}else a=[l,h];t.setItemLayout(e,a)}function tp(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var r=new Bw(n,i),a=new Bw(n,i),o=new Bw([],i),l=p(i.get("data"),x(ZM,e,t,i));t&&(l=v(l,x(Qf,t)));var h=t?Of:function(t){return t.value};return r.initData(p(l,function(t){return t[0]}),null,h),a.initData(p(l,function(t){return t[1]}),null,h),o.initData(p(l,function(t){return t[2]})),o.hasItemOption=!0,{from:r,to:a,line:o}}function ep(t){return!isNaN(t)&&!isFinite(t)}function ip(t,e,i){var n=1-t;return ep(e[n])&&ep(i[n])}function np(t,e){var i=e.coord[0],n=e.coord[1];return"cartesian2d"===t.type&&i&&n&&(ip(1,i,n,t)||ip(0,i,n,t))?!0:Lf(t,{coord:i,x:e.x0,y:e.y0})||Lf(t,{coord:n,x:e.x1,y:e.y1})}function rp(t,e,i,n,r){var a,o=n.coordinateSystem,s=t.getItemModel(e),l=Ua(s.get(i[0]),r.getWidth()),h=Ua(s.get(i[1]),r.getHeight());if(isNaN(l)||isNaN(h)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(i,e));else{var u=t.get(i[0],e),c=t.get(i[1],e),d=[u,c];o.clampData&&o.clampData(d,d),a=o.dataToPoint(d,!0)}if("cartesian2d"===o.type){var f=o.getAxis("x"),p=o.getAxis("y"),u=t.get(i[0],e),c=t.get(i[1],e);ep(u)?a[0]=f.toGlobalCoord(f.getExtent()["x0"===i[0]?0:1]):ep(c)&&(a[1]=p.toGlobalCoord(p.getExtent()["y0"===i[1]?0:1]))}isNaN(l)||(a[0]=l),isNaN(h)||(a[1]=h)}else a=[l,h];return a}function ap(t,e,i){var n,r,a=["x0","y0","x1","y1"];t?(n=p(t&&t.dimensions,function(t){var i=e.getData(),n=i.getDimensionInfo(i.mapDimension(t))||{};return s({name:t},n)}),r=new Bw(p(a,function(t,e){return{name:t,type:n[e%2].type}}),i)):(n=[{name:"value",type:"float"}],r=new Bw(n,i));var o=p(i.get("data"),x(XM,e,t,i));t&&(o=v(o,x(np,t)));var l=t?function(t,e,i,n){return t.coord[Math.floor(n/2)][n%2]}:function(t){return t.value};return r.initData(o,null,l),r.hasItemOption=!0,r}function op(t){var e=t.type,i={number:"value",time:"time"};if(i[e]&&(t.axisType=i[e],delete t.type),sp(t),lp(t,"controlPosition")){var n=t.controlStyle||(t.controlStyle={});lp(n,"position")||(n.position=t.controlPosition),"none"!==n.position||lp(n,"show")||(n.show=!1,delete n.position),delete t.controlPosition}f(t.data||[],function(t){S(t)&&!_(t)&&(!lp(t,"value")&&lp(t,"name")&&(t.value=t.name),sp(t))})}function sp(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},r=n.normal||(n.normal={}),a={normal:1,emphasis:1};f(n,function(t,e){a[e]||lp(r,e)||(r[e]=t)}),i.label&&!lp(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function lp(t,e){return t.hasOwnProperty(e)}function hp(t,e){return bo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}function up(t,e,i,r){var a=Qr(t.get(e).replace(/^path:\/\//,""),n(r||{}),new gi(i[0],i[1],i[2],i[3]),"center");return a}function cp(t,e,i,n,a,o){var s=e.get("color");if(a)a.setColor(s),i.add(a),o&&o.onUpdate(a);else{var l=t.get("symbol");a=fu(l,-1,-1,2,2,s),a.setStyle("strokeNoScale",!0),i.add(a),o&&o.onCreate(a)}var h=e.getItemStyle(["color","symbol","symbolSize"]);a.setStyle(h),n=r({rectHover:!0,z2:100},n,!0);var u=t.get("symbolSize");u=u instanceof Array?u.slice():[+u,+u],u[0]/=2,u[1]/=2,n.scale=u;var c=t.get("symbolOffset");if(c){var d=n.position=n.position||[0,0];d[0]+=Ua(c[0],u[0]),d[1]+=Ua(c[1],u[1])}var f=t.get("symbolRotate");return n.rotation=(f||0)*Math.PI/180||0,a.attr(n),a.updateTransform(),a}function dp(t,e,i,n,r){if(!t.dragging){var a=n.getModel("checkpointStyle"),o=i.dataToCoord(n.getData().get(["value"],e));r||!a.get("animation",!0)?t.attr({position:[o,0]}):(t.stopAnimation(!0),t.animateTo({position:[o,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}function fp(t){return h(iI,t)>=0}function pp(t,e){t=t.slice();var i=p(t,_o);e=(e||[]).slice();var n=p(e,_o);return function(r,a){f(t,function(t,o){for(var s={name:t,capital:i[o]},l=0;l=0}function r(t,n){var r=!1;return e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]&&(r=!0)})}),r}function a(t,n){n.nodes.push(t),e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){function o(t){!n(t,s)&&r(t,s)&&(a(t,s),l=!0)}var s={nodes:[],records:{}};if(e(function(t){s.records[t.name]={}}),!i)return s;a(i,s);var l;do l=!1,t(o);while(l);return s}}function vp(t,e,i){var n=[1/0,-1/0];return rI(i,function(t){var i=t.getData();i&&rI(i.mapDimension(e,!0),function(t){var e=i.getApproximateExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:0/0);var o=i.getMax(!0);return null!=o&&"dataMax"!==o&&"function"!=typeof o?e[1]=o:r&&(e[1]=a>0?a-1:0/0),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function yp(t,e){var i=t.getAxisModel(),n=t._percentWindow,r=t._valueWindow;if(n){var a=to(r,[0,500]);a=Math.min(a,20);var o=e||0===n[0]&&100===n[1];i.setRange(o?null:+r[0].toFixed(a),o?null:+r[1].toFixed(a))}}function xp(t){var e=t._minMaxSpan={},i=t._dataZoomModel;rI(["min","max"],function(n){e[n+"Span"]=i.get(n+"Span");var r=i.get(n+"ValueSpan");if(null!=r&&(e[n+"ValueSpan"]=r,r=t.getAxisModel().axis.scale.parse(r),null!=r)){var a=t._dataExtent;e[n+"Span"]=qa(a[0]+r,a,[0,100],!0)}})}function _p(t){var e={};return sI(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function wp(t,e){var i=t._rangePropMode,n=t.get("rangeMode");sI([["start","startValue"],["end","endValue"]],function(t,r){var a=null!=e[t[0]],o=null!=e[t[1]];a&&!o?i[r]="percent":!a&&o?i[r]="value":n?i[r]=n[r]:a&&(i[r]="percent")})}function bp(t,e){var i=t[e]-t[1-e];return{span:Math.abs(i),sign:i>0?-1:0>i?1:e?-1:1}}function Sp(t,e){return Math.min(e[1],Math.max(e[0],t))}function Mp(t){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[t]}function Ip(t){return"vertical"===t?"ns-resize":"ew-resize"}function Tp(t,e){return!!Cp(t)[e]}function Cp(t){return t[II]||(t[II]={})}function Ap(t){this.pointerChecker,this._zr=t,this._opt={};var e=y,i=e(Dp,this),r=e(kp,this),a=e(Pp,this),o=e(Lp,this),l=e(Op,this);bg.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,h){this.disable(),this._opt=s(n(h)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==e&&(e=!0),(e===!0||"move"===e||"pan"===e)&&(t.on("mousedown",i),t.on("mousemove",r),t.on("mouseup",a)),(e===!0||"scale"===e||"zoom"===e)&&(t.on("mousewheel",o),t.on("pinch",l))},this.disable=function(){t.off("mousedown",i),t.off("mousemove",r),t.off("mouseup",a),t.off("mousewheel",o),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function Dp(t){if(!(me(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function kp(t){if(!me(t)&&Rp("moveOnMouseMove",t,this._opt)&&this._dragging&&"pinch"!==t.gestureEvent&&!Tp(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,r=this._y,a=e-n,o=i-r;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&Ig(t.event),Ep(this,"pan","moveOnMouseMove",t,{dx:a,dy:o,oldX:n,oldY:r,newX:e,newY:i})}}function Pp(t){me(t)||(this._dragging=!1)}function Lp(t){var e=Rp("zoomOnMouseWheel",t,this._opt),i=Rp("moveOnMouseWheel",t,this._opt),n=t.wheelDelta,r=Math.abs(n),a=t.offsetX,o=t.offsetY;if(0!==n&&(e||i)){if(e){var s=r>3?1.4:r>1?1.2:1.1,l=n>0?s:1/s;zp(this,"zoom","zoomOnMouseWheel",t,{scale:l,originX:a,originY:o})}if(i){var h=Math.abs(n),u=(n>0?1:-1)*(h>3?.4:h>1?.15:.05);zp(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:u,originX:a,originY:o})}}}function Op(t){if(!Tp(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;zp(this,"zoom",null,t,{scale:e,originX:t.pinchX,originY:t.pinchY})}}function zp(t,e,i,n,r){t.pointerChecker&&t.pointerChecker(n,r.originX,r.originY)&&(Ig(n.event),Ep(t,e,i,n,r))}function Ep(t,e,i,n,r){r.isAvailableBehavior=y(Rp,null,i,n),t.trigger(e,r)}function Rp(t,e,i){var n=i[t];return!t||n&&(!b(n)||e.event[n+"Key"])}function Bp(t,e){var i=Vp(t),n=e.dataZoomId,r=e.coordId;f(i,function(t){var i=t.dataZoomInfos;i[n]&&h(e.allCoordIds,r)<0&&(delete i[n],t.count--)}),Gp(i);var a=i[r];a||(a=i[r]={coordId:r,dataZoomInfos:{},count:0},a.controller=Wp(t,a),a.dispatchAction=x(Hp,t)),!a.dataZoomInfos[n]&&a.count++,a.dataZoomInfos[n]=e;var o=Zp(a.dataZoomInfos);a.controller.enable(o.controlType,o.opt),a.controller.setPointerChecker(e.containsPoint),Hs(a,"dispatchAction",e.dataZoomModel.get("throttle",!0),"fixRate")}function Np(t,e){var i=Vp(t);f(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),Gp(i)}function Fp(t){return t.type+"\x00_"+t.id}function Vp(t){var e=t.getZr();return e[TI]||(e[TI]={})}function Wp(t,e){var i=new Ap(t.getZr());return f(["pan","zoom","scrollMove"],function(t){i.on(t,function(i){var n=[];f(e.dataZoomInfos,function(r){if(i.isAvailableBehavior(r.dataZoomModel.option)){var a=(r.getRange||{})[t],o=a&&a(e.controller,i);!r.dataZoomModel.get("disabled",!0)&&o&&n.push({dataZoomId:r.dataZoomId,start:o[0],end:o[1]})}}),n.length&&e.dispatchAction(n)})}),i}function Gp(t){f(t,function(e,i){e.count||(e.controller.dispose(),delete t[i])})}function Hp(t,e){t.dispatchAction({type:"dataZoom",batch:e})}function Zp(t){var e,i="type_",n={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return f(t,function(t){var a=t.dataZoomModel,o=a.get("disabled",!0)?!1:a.get("zoomLock",!0)?"move":!0;n[i+o]>n[i+e]&&(e=o),r&=a.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}function Xp(t){return function(e,i,n,r){var a=this._range,o=a.slice(),s=e.axisModels[0];if(s){var l=t(o,s,e,i,n,r);return cI(l,o,[0,100],"all"),this._range=o,a[0]!==o[0]||a[1]!==o[1]?o:void 0}}}function Yp(t){return PI(t)}function jp(){if(!zI&&EI){zI=!0;var t=EI.styleSheets;t.length<31?EI.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function qp(t){return parseInt(t,10)}function Up(t,e){jp(),this.root=t,this.storage=e;var i=document.createElement("div"),n=document.createElement("div");i.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",n.style.cssText="position:absolute;left:0;top:0;",t.appendChild(i),this._vmlRoot=n,this._vmlViewport=i,this.resize();var r=e.delFromStorage,a=e.addToStorage;e.delFromStorage=function(t){r.call(e,t),t&&t.onRemove&&t.onRemove(n)},e.addToStorage=function(t){t.onAdd&&t.onAdd(n),a.call(e,t) +},this._firstPaint=!0}function $p(t){return function(){iv('In IE8.0 VML mode painter not support method "'+t+'"')}}var Kp=2311,Qp=function(){return Kp++},Jp={};Jp="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:e(navigator.userAgent);var tg=Jp,eg={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},ig={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},ng=Object.prototype.toString,rg=Array.prototype,ag=rg.forEach,og=rg.filter,sg=rg.slice,lg=rg.map,hg=rg.reduce,ug={},cg=function(){return ug.createCanvas()};ug.createCanvas=function(){return document.createElement("canvas")};var dg,fg="__ec_primitive__";B.prototype={constructor:B,get:function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},set:function(t,e){return this.data[t]=e},each:function(t,e){void 0!==e&&(t=y(t,e));for(var i in this.data)this.data.hasOwnProperty(i)&&t(this.data[i],i)},removeKey:function(t){delete this.data[t]}};var pg=(Object.freeze||Object)({$override:i,clone:n,merge:r,mergeAll:a,extend:o,defaults:s,createCanvas:cg,getContext:l,indexOf:h,inherits:u,mixin:c,isArrayLike:d,each:f,map:p,reduce:g,filter:v,find:m,bind:y,curry:x,isArray:_,isFunction:w,isString:b,isObject:S,isBuiltInObject:M,isTypedArray:I,isDom:T,eqNaN:C,retrieve:A,retrieve2:D,retrieve3:k,slice:P,normalizeCssArray:L,assert:O,trim:z,setAsPrimitive:E,isPrimitive:R,createHashMap:N,concatArray:F,noop:V}),gg="undefined"==typeof Float32Array?Array:Float32Array,vg=q,mg=U,yg=ee,xg=ie,_g=(Object.freeze||Object)({create:W,copy:G,clone:H,set:Z,add:X,scaleAndAdd:Y,sub:j,len:q,length:vg,lenSquare:U,lengthSquare:mg,mul:$,div:K,dot:Q,scale:J,normalize:te,distance:ee,dist:yg,distanceSquare:ie,distSquare:xg,negate:ne,lerp:re,applyTransform:ae,min:oe,max:se});le.prototype={constructor:le,_dragStart:function(t){var e=t.target;e&&e.draggable&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.dispatchToElement(he(e,t),"dragstart",t.event))},_drag:function(t){var e=this._draggingTarget;if(e){var i=t.offsetX,n=t.offsetY,r=i-this._x,a=n-this._y;this._x=i,this._y=n,e.drift(r,a,t),this.dispatchToElement(he(e,t),"drag",t.event);var o=this.findHover(i,n,e).target,s=this._dropTarget;this._dropTarget=o,e!==o&&(s&&o!==s&&this.dispatchToElement(he(s,t),"dragleave",t.event),o&&o!==s&&this.dispatchToElement(he(o,t),"dragenter",t.event))}},_dragEnd:function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.dispatchToElement(he(e,t),"dragend",t.event),this._dropTarget&&this.dispatchToElement(he(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null}};var wg=Array.prototype.slice,bg=function(t){this._$handlers={},this._$eventProcessor=t};bg.prototype={constructor:bg,one:function(t,e,i,n){var r=this._$handlers;if("function"==typeof e&&(n=i,i=e,e=null),!i||!t)return this;e=ue(this,e),r[t]||(r[t]=[]);for(var a=0;ar;r++)i[t][r].h!==e&&n.push(i[t][r]);i[t]=n}i[t]&&0===i[t].length&&delete i[t]}else delete i[t];return this},trigger:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,r=n.length;r>3&&(n=wg.call(n,1));for(var a=e.length,o=0;a>o;){var s=e[o];if(i&&i.filter&&null!=s.query&&!i.filter(t,s.query))o++;else{switch(r){case 1:s.h.call(s.ctx);break;case 2:s.h.call(s.ctx,n[1]);break;case 3:s.h.call(s.ctx,n[1],n[2]);break;default:s.h.apply(s.ctx,n)}s.one?(e.splice(o,1),a--):o++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this},triggerWithContext:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,r=n.length;r>4&&(n=wg.call(n,1,n.length-1));for(var a=n[n.length-1],o=e.length,s=0;o>s;){var l=e[s];if(i&&i.filter&&null!=l.query&&!i.filter(t,l.query))s++;else{switch(r){case 1:l.h.call(a);break;case 2:l.h.call(a,n[1]);break;case 3:l.h.call(a,n[1],n[2]);break;default:l.h.apply(a,n)}l.one?(e.splice(s,1),o--):s++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this}};var Sg="undefined"!=typeof window&&!!window.addEventListener,Mg=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ig=Sg?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0},Tg="silent";_e.prototype.dispose=function(){};var Cg=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Ag=function(t,e,i,n){bg.call(this),this.storage=t,this.painter=e,this.painterRoot=n,i=i||new _e,this.proxy=null,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,le.call(this),this.setHandlerProxy(i)};Ag.prototype={constructor:Ag,setHandlerProxy:function(t){this.proxy&&this.proxy.dispose(),t&&(f(Cg,function(e){t.on&&t.on(e,this[e],this)},this),t.handler=this),this.proxy=t},mousemove:function(t){var e=t.zrX,i=t.zrY,n=this._hovered,r=n.target;r&&!r.__zr&&(n=this.findHover(n.x,n.y),r=n.target);var a=this._hovered=this.findHover(e,i),o=a.target,s=this.proxy;s.setCursor&&s.setCursor(o?o.cursor:"default"),r&&o!==r&&this.dispatchToElement(n,"mouseout",t),this.dispatchToElement(a,"mousemove",t),o&&o!==r&&this.dispatchToElement(a,"mouseover",t)},mouseout:function(t){this.dispatchToElement(this._hovered,"mouseout",t);var e,i=t.toElement||t.relatedTarget;do i=i&&i.parentNode;while(i&&9!=i.nodeType&&!(e=i===this.painterRoot));!e&&this.trigger("globalout",{event:t})},resize:function(){this._hovered={}},dispatch:function(t,e){var i=this[t];i&&i.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,i){t=t||{};var n=t.target;if(!n||!n.silent){for(var r="on"+e,a=ye(e,t,i);n&&(n[r]&&(a.cancelBubble=n[r].call(n,a)),n.trigger(e,a),n=n.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[r]&&t[r].call(t,a),t.trigger&&t.trigger(e,a)}))}},findHover:function(t,e,i){for(var n=this.storage.getDisplayList(),r={x:t,y:e},a=n.length-1;a>=0;a--){var o;if(n[a]!==i&&!n[a].ignore&&(o=we(n[a],t,e))&&(!r.topTarget&&(r.topTarget=n[a]),o!==Tg)){r.target=n[a];break}}return r}},f(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){Ag.prototype[t]=function(e){var i=this.findHover(e.zrX,e.zrY),n=i.target;if("mousedown"===t)this._downEl=n,this._downPoint=[e.zrX,e.zrY],this._upEl=n;else if("mouseup"===t)this._upEl=n;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||yg(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,t,e)}}),c(Ag,bg),c(Ag,le);var Dg="undefined"==typeof Float32Array?Array:Float32Array,kg=(Object.freeze||Object)({create:be,identity:Se,copy:Me,mul:Ie,translate:Te,rotate:Ce,scale:Ae,invert:De,clone:ke}),Pg=Se,Lg=5e-5,Og=function(t){t=t||{},t.position||(this.position=[0,0]),null==t.rotation&&(this.rotation=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},zg=Og.prototype;zg.transform=null,zg.needLocalTransform=function(){return Pe(this.rotation)||Pe(this.position[0])||Pe(this.position[1])||Pe(this.scale[0]-1)||Pe(this.scale[1]-1)};var Eg=[];zg.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;if(!i&&!e)return void(n&&Pg(n));n=n||be(),i?this.getLocalTransform(n):Pg(n),e&&(i?Ie(n,t.transform,n):Me(n,t.transform)),this.transform=n;var r=this.globalScaleRatio;if(null!=r&&1!==r){this.getGlobalScale(Eg);var a=Eg[0]<0?-1:1,o=Eg[1]<0?-1:1,s=((Eg[0]-a)*r+a)/Eg[0]||0,l=((Eg[1]-o)*r+o)/Eg[1]||0;n[0]*=s,n[1]*=s,n[2]*=l,n[3]*=l}this.invTransform=this.invTransform||be(),De(this.invTransform,n)},zg.getLocalTransform=function(t){return Og.getLocalTransform(this,t)},zg.setTransform=function(t){var e=this.transform,i=t.dpr||1;e?t.setTransform(i*e[0],i*e[1],i*e[2],i*e[3],i*e[4],i*e[5]):t.setTransform(i,0,0,i,0,0)},zg.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var Rg=[],Bg=be();zg.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],i=t[2]*t[2]+t[3]*t[3],n=this.position,r=this.scale;Pe(e-1)&&(e=Math.sqrt(e)),Pe(i-1)&&(i=Math.sqrt(i)),t[0]<0&&(e=-e),t[3]<0&&(i=-i),n[0]=t[4],n[1]=t[5],r[0]=e,r[1]=i,this.rotation=Math.atan2(-t[1]/i,t[0]/e)}},zg.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Ie(Rg,t.invTransform,e),e=Rg);var i=this.origin;i&&(i[0]||i[1])&&(Bg[4]=i[0],Bg[5]=i[1],Ie(Rg,e,Bg),Rg[4]-=i[0],Rg[5]-=i[1],e=Rg),this.setLocalTransform(e)}},zg.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},zg.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&ae(i,i,n),i},zg.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&ae(i,i,n),i},Og.getLocalTransform=function(t,e){e=e||[],Pg(e);var i=t.origin,n=t.scale||[1,1],r=t.rotation||0,a=t.position||[0,0];return i&&(e[4]-=i[0],e[5]-=i[1]),Ae(e,e,n),r&&Ce(e,e,r),i&&(e[4]+=i[0],e[5]+=i[1]),e[4]+=a[0],e[5]+=a[1],e};var Ng={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)))},elasticOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/n)+1)},elasticInOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n):i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?.5*t*t*((e+1)*t-e):.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Ng.bounceOut(1-t)},bounceOut:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return.5>t?.5*Ng.bounceIn(2*t):.5*Ng.bounceOut(2*t-1)+.5}};Le.prototype={constructor:Le,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)return void(this._pausedTime+=e);var i=(t-this._startTime-this._pausedTime)/this._life;if(!(0>i)){i=Math.min(i,1);var n=this.easing,r="string"==typeof n?Ng[n]:n,a="function"==typeof r?r(i):i;return this.fire("frame",a),1==i?this.loop?(this.restart(t),"restart"):(this._needsRemove=!0,"destroy"):null}},restart:function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0,this._needsRemove=!1},fire:function(t,e){t="on"+t,this[t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var Fg=function(){this.head=null,this.tail=null,this._len=0},Vg=Fg.prototype;Vg.insert=function(t){var e=new Wg(t);return this.insertEntry(e),e},Vg.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},Vg.remove=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},Vg.len=function(){return this._len},Vg.clear=function(){this.head=this.tail=null,this._len=0};var Wg=function(t){this.value=t,this.next,this.prev},Gg=function(t){this._list=new Fg,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},Hg=Gg.prototype;Hg.put=function(t,e){var i=this._list,n=this._map,r=null;if(null==n[t]){var a=i.len(),o=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=i.head;i.remove(s),delete n[s.key],r=s.value,this._lastRemovedEntry=s}o?o.value=e:o=new Wg(e),o.key=t,i.insertEntry(o),n[t]=o}return r},Hg.get=function(t){var e=this._map[t],i=this._list;return null!=e?(e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value):void 0},Hg.clear=function(){this._list.clear(),this._map={}};var Zg={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},Xg=new Gg(20),Yg=null,jg=qe,qg=Ue,Ug=(Object.freeze||Object)({parse:He,lift:Ye,toHex:je,fastLerp:qe,fastMapToColor:jg,lerp:Ue,mapToColor:qg,modifyHSL:$e,modifyAlpha:Ke,stringify:Qe}),$g=Array.prototype.slice,Kg=function(t,e,i,n){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||Je,this._setter=n||ti,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};Kg.prototype={when:function(t,e){var i=this._tracks;for(var n in e)if(e.hasOwnProperty(n)){if(!i[n]){i[n]=[];var r=this._getter(this._target,n);if(null==r)continue;0!==t&&i[n].push({time:0,value:li(r)})}i[n].push({time:t,value:e[n]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;ti;i++)t[i].call(this)},start:function(t,e){var i,n=this,r=0,a=function(){r--,r||n._doneCallback()};for(var o in this._tracks)if(this._tracks.hasOwnProperty(o)){var s=ci(this,t,a,this._tracks[o],o,e);s&&(this._clipList.push(s),r++,this.animation&&this.animation.addClip(s),i=s)}if(i){var l=i.onframe;i.onframe=function(t,e){l(t,e);for(var i=0;i1&&(ev=function(){for(var t in arguments)console.log(arguments[t])});var iv=ev,nv=function(){this.animators=[]};nv.prototype={constructor:nv,animate:function(t,e){var i,n=!1,r=this,a=this.__zr;if(t){var o=t.split("."),s=r;n="shape"===o[0];for(var l=0,u=o.length;u>l;l++)s&&(s=s[o[l]]);s&&(i=s)}else i=r;if(!i)return void iv('Property "'+t+'" is not existed in element '+r.id);var c=r.animators,d=new Kg(i,e);return d.during(function(){r.dirty(n)}).done(function(){c.splice(h(c,d),1)}),c.push(d),a&&a.animation.addAnimator(d),d},stopAnimation:function(t){for(var e=this.animators,i=e.length,n=0;i>n;n++)e[n].stop(t);return e.length=0,this},animateTo:function(t,e,i,n,r,a){di(this,t,e,i,n,r,a)},animateFrom:function(t,e,i,n,r,a){di(this,t,e,i,n,r,a,!0)}};var rv=function(t){Og.call(this,t),bg.call(this,t),nv.call(this,t),this.id=t.id||Qp()};rv.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,isGroup:!1,drift:function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(){},attrKV:function(t,e){if("position"===t||"scale"===t||"origin"===t){if(e){var i=this[t];i||(i=this[t]=[]),i[0]=e[0],i[1]=e[1]}}else this[t]=e},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(S(t))for(var i in t)t.hasOwnProperty(i)&&this.attrKV(i,t[i]);return this.dirty(!1),this},setClipPath:function(t){var e=this.__zr;e&&t.addSelfToZr(e),this.clipPath&&this.clipPath!==t&&this.removeClipPath(),this.clipPath=t,t.__zr=e,t.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var t=this.clipPath;t&&(t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(t){this.__zr=t;var e=this.animators;if(e)for(var i=0;in||i>s||l>a||r>h)},contain:function(t,e){var i=this;return t>=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new gi(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},gi.create=function(t){return new gi(t.x,t.y,t.width,t.height)};var lv=function(t){t=t||{},rv.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};lv.prototype={constructor:lv,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i=0&&(i.splice(n,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,i=this.__zr;e&&e!==t.__storage&&(e.addToStorage(t),t instanceof lv&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,n=this._children,r=h(n,t);return 0>r?this:(n.splice(r,1),t.parent=null,i&&(i.delFromStorage(t),t instanceof lv&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;en;n++)this._updateAndAddDisplayable(e[n],null,t);i.length=this._displayListLen,tg.canvasSupported&&Si(i,Mi)},_updateAndAddDisplayable:function(t,e,i){if(!t.ignore||i){t.beforeUpdate(),t.__dirty&&t.update(),t.afterUpdate();var n=t.clipPath;if(n){e=e?e.slice():[];for(var r=n,a=t;r;)r.parent=a,r.updateTransform(),e.push(r),a=r,r=r.clipPath}if(t.isGroup){for(var o=t._children,s=0;se;e++)this.delRoot(t[e]);else{var r=h(this._roots,t);r>=0&&(this.delFromStorage(t),this._roots.splice(r,1),t instanceof lv&&t.delChildrenFromStorage(this))}},addToStorage:function(t){return t&&(t.__storage=this,t.dirty(!1)),this},delFromStorage:function(t){return t&&(t.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:Mi};var dv={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},fv=function(t,e,i){return dv.hasOwnProperty(e)?i*=t.dpr:i},pv=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],gv=function(t){this.extendFrom(t,!1)};gv.prototype={constructor:gv,fill:"#000",stroke:null,opacity:1,fillOpacity:null,strokeOpacity:null,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(t,e,i){for(var n=this,r=i&&i.style,a=!r,o=0;o0},extendFrom:function(t,e){if(t)for(var i in t)!t.hasOwnProperty(i)||e!==!0&&(e===!1?this.hasOwnProperty(i):null==t[i])||(this[i]=t[i])},set:function(t,e){"string"==typeof t?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(t,e,i){for(var n="radial"===e.type?Ti:Ii,r=n(t,e,i),a=e.colorStops,o=0;o=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(){for(var t=this._hoverElements,e=0;er;){var a=t[r],o=a.__from;o&&o.__zr?(r++,o.invisible||(a.transform=o.transform,a.invTransform=o.invTransform,a.__clipPaths=o.__clipPaths,this._doPaintEl(a,i,!0,n))):(t.splice(r,1),o.__hoverMir=null,e--)}i.ctx.restore()}},getHoverLayer:function(){return this.getLayer(zv)},_paintList:function(t,e,i){if(this._redrawId===i){e=e||!1,this._updateLayerStatus(t);var n=this._doPaintList(t,e);if(this._needsManuallyCompositing&&this._compositeManually(),!n){var r=this;wv(function(){r._paintList(t,e,i)})}}},_compositeManually:function(){var t=this.getLayer(Ev).ctx,e=this._domRoot.width,i=this._domRoot.height;t.clearRect(0,0,e,i),this.eachBuiltinLayer(function(n){n.virtual&&t.drawImage(n.dom,0,0,e,i)})},_doPaintList:function(t,e){for(var i=[],n=0;n15)break}}a.__drawIndex=v,a.__drawIndex0&&t>n[0]){for(o=0;r-1>o&&!(n[o]t);o++);a=i[n[o]]}if(n.splice(o+1,0,t),i[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)},eachLayer:function(t,e){var i,n,r=this._zlevelList;for(n=0;n0?Rv:0),this._needsManuallyCompositing),o.__builtin__||iv("ZLevel "+s+" has been used by unkown layer "+o.id),o!==r&&(o.__used=!0,o.__startIndex!==i&&(o.__dirty=!0),o.__startIndex=i,o.__drawIndex=o.incremental?-1:i,e(i),r=o),n.__dirty&&(o.__dirty=!0,o.incremental&&o.__drawIndex<0&&(o.__drawIndex=i))}e(i),this.eachBuiltinLayer(function(t){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},setBackgroundColor:function(t){this._backgroundColor=t},configLayer:function(t,e){if(e){var i=this._layerConfig;i[t]?r(i[t],e,!0):i[t]=e;for(var n=0;n=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;io;o++){var s=i[o],l=s.step(t,e);l&&(r.push(l),a.push(s))}for(var o=0;n>o;)i[o]._needsRemove?(i[o]=i[n-1],i.pop(),n--):o++;n=r.length;for(var o=0;n>o;o++)a[o].fire(r[o]);this._time=t,this.onframe(e),this.trigger("frame",e),this.stage.update&&this.stage.update()},_startLoop:function(){function t(){e._running&&(wv(t),!e._paused&&e._update())}var e=this;this._running=!0,wv(t)},start:function(){this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop()},stop:function(){this._running=!1},pause:function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},resume:function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},clear:function(){this._clips=[]},isFinished:function(){return!this._clips.length},animate:function(t,e){e=e||{};var i=new Kg(t,e.loop,e.getter,e.setter);return this.addAnimator(i),i}},c(Wv,bg);var Gv=function(){this._track=[]};Gv.prototype={constructor:Gv,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,i){var n=t.touches;if(n){for(var r={points:[],touches:[],target:e,event:t},a=0,o=n.length;o>a;a++){var s=n[a],l=de(i,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},_recognize:function(t){for(var e in Hv)if(Hv.hasOwnProperty(e)){var i=Hv[e](this._track,t);if(i)return i}}};var Hv={pinch:function(t,e){var i=t.length;if(i){var n=(t[i-1]||{}).points,r=(t[i-2]||{}).points||n;if(r&&r.length>1&&n&&n.length>1){var a=In(n)/In(r);!isFinite(a)&&(a=1),e.pinchScale=a;var o=Tn(n);return e.pinchX=o[0],e.pinchY=o[1],{type:"pinch",target:t[0].target,event:e}}}}},Zv=300,Xv=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Yv=["touchstart","touchend","touchmove"],jv={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},qv=p(Xv,function(t){var e=t.replace("mouse","pointer");return jv[e]?e:t}),Uv={mousemove:function(t){t=pe(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){t=pe(this.dom,t);var e=t.toElement||t.relatedTarget;if(e!=this.dom)for(;e&&9!=e.nodeType;){if(e===this.dom)return;e=e.parentNode}this.trigger("mouseout",t)},touchstart:function(t){t=pe(this.dom,t),t.zrByTouch=!0,this._lastTouchMoment=new Date,An(this,t,"start"),Uv.mousemove.call(this,t),Uv.mousedown.call(this,t),Dn(this)},touchmove:function(t){t=pe(this.dom,t),t.zrByTouch=!0,An(this,t,"change"),Uv.mousemove.call(this,t),Dn(this)},touchend:function(t){t=pe(this.dom,t),t.zrByTouch=!0,An(this,t,"end"),Uv.mouseup.call(this,t),+new Date-this._lastTouchMoment=0||n&&h(n,o)<0)){var s=e.getShallow(o);null!=s&&(r[t[a][0]]=s)}}return r}},fm=dm([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),pm={getLineStyle:function(t){var e=fm(this,t),i=this.getLineDash(e.lineWidth);return i&&(e.lineDash=i),e},getLineDash:function(t){null==t&&(t=1);var e=this.get("type"),i=Math.max(t,2),n=4*t;return"solid"===e||null==e?null:"dashed"===e?[n,n]:[i,i]}},gm=dm([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),vm={getAreaStyle:function(t,e){return gm(this,t,e)}},mm=Math.pow,ym=Math.sqrt,xm=1e-8,_m=1e-4,wm=ym(3),bm=1/3,Sm=W(),Mm=W(),Im=W(),Tm=Math.min,Cm=Math.max,Am=Math.sin,Dm=Math.cos,km=2*Math.PI,Pm=W(),Lm=W(),Om=W(),zm=[],Em=[],Rm={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Bm=[],Nm=[],Fm=[],Vm=[],Wm=Math.min,Gm=Math.max,Hm=Math.cos,Zm=Math.sin,Xm=Math.sqrt,Ym=Math.abs,jm="undefined"!=typeof Float32Array,qm=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};qm.prototype={constructor:qm,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(t,e){this._ux=Ym(1/tv/t)||0,this._uy=Ym(1/tv/e)||0},getContext:function(){return this._ctx},beginPath:function(t){return this._ctx=t,t&&t.beginPath(),t&&(this.dpr=t.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(t,e){return this.addData(Rm.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},lineTo:function(t,e){var i=Ym(t-this._xi)>this._ux||Ym(e-this._yi)>this._uy||this._len<5;return this.addData(Rm.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,r,a){return this.addData(Rm.C,t,e,i,n,r,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,r,a):this._ctx.bezierCurveTo(t,e,i,n,r,a)),this._xi=r,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(Rm.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,r,a){return this.addData(Rm.A,t,e,i,i,n,r-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,r,a),this._xi=Hm(r)*i+t,this._yi=Zm(r)*i+e,this},arcTo:function(t,e,i,n,r){return this._ctx&&this._ctx.arcTo(t,e,i,n,r),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(Rm.R,t,e,i,n),this},closePath:function(){this.addData(Rm.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,i=0;ii;i++)this.data[i]=t[i];this._len=e},appendPath:function(t){t instanceof Array||(t=[t]);for(var e=t.length,i=0,n=this._len,r=0;e>r;r++)i+=t[r].len();jm&&this.data instanceof Float32Array&&(this.data=new Float32Array(n+i));for(var r=0;e>r;r++)for(var a=t[r].data,o=0;oe.length&&(this._expandData(),e=this.data);for(var i=0;ia&&(a=r+a),a%=r,f-=a*u,p-=a*c;u>0&&t>=f||0>u&&f>=t||0==u&&(c>0&&e>=p||0>c&&p>=e);)n=this._dashIdx,i=o[n],f+=u*i,p+=c*i,this._dashIdx=(n+1)%g,u>0&&l>f||0>u&&f>l||c>0&&h>p||0>c&&p>h||s[n%2?"moveTo":"lineTo"](u>=0?Wm(f,t):Gm(f,t),c>=0?Wm(p,e):Gm(p,e));u=f-t,c=p-e,this._dashOffset=-Xm(u*u+c*c)},_dashedBezierTo:function(t,e,i,n,r,a){var o,s,l,h,u,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,v=this._yi,m=lr,y=0,x=this._dashIdx,_=f.length,w=0;for(0>d&&(d=c+d),d%=c,o=0;1>o;o+=.1)s=m(g,t,i,r,o+.1)-m(g,t,i,r,o),l=m(v,e,n,a,o+.1)-m(v,e,n,a,o),y+=Xm(s*s+l*l);for(;_>x&&(w+=f[x],!(w>d));x++);for(o=(w-d)/y;1>=o;)h=m(g,t,i,r,o),u=m(v,e,n,a,o),x%2?p.moveTo(h,u):p.lineTo(h,u),o+=f[x]/y,x=(x+1)%_;x%2!==0&&p.lineTo(r,a),s=r-h,l=a-u,this._dashOffset=-Xm(s*s+l*l)},_dashedQuadraticTo:function(t,e,i,n){var r=i,a=n;i=(i+2*t)/3,n=(n+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,i,n,r,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,jm&&(this.data=new Float32Array(t)))},getBoundingRect:function(){Bm[0]=Bm[1]=Fm[0]=Fm[1]=Number.MAX_VALUE,Nm[0]=Nm[1]=Vm[0]=Vm[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,r=0,a=0;ac;){var d=s[c++];switch(1==c&&(n=s[c],r=s[c+1],e=n,i=r),d){case Rm.M:e=n=s[c++],i=r=s[c++],t.moveTo(n,r);break;case Rm.L:a=s[c++],o=s[c++],(Ym(a-n)>l||Ym(o-r)>h||c===u-1)&&(t.lineTo(a,o),n=a,r=o);break;case Rm.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],r=s[c-1];break;case Rm.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],r=s[c-1];break;case Rm.A:var f=s[c++],p=s[c++],g=s[c++],v=s[c++],m=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>v?g:v,b=g>v?1:g/v,S=g>v?v/g:1,M=Math.abs(g-v)>.001,I=m+y;M?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,m,I,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,m,I,1-_),1==c&&(e=Hm(m)*g+f,i=Zm(m)*v+p),n=Hm(I)*g+f,r=Zm(I)*v+p;break;case Rm.R:e=n=s[c],i=r=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case Rm.Z:t.closePath(),n=e,r=i}}}},qm.CMD=Rm;var Um=2*Math.PI,$m=2*Math.PI,Km=qm.CMD,Qm=2*Math.PI,Jm=1e-4,ty=[-1,-1,-1],ey=[-1,-1],iy=xv.prototype.getCanvasPattern,ny=Math.abs,ry=new qm(!0);Fr.prototype={constructor:Fr,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var i=this.style,n=this.path||ry,r=i.hasStroke(),a=i.hasFill(),o=i.fill,s=i.stroke,l=a&&!!o.colorStops,h=r&&!!s.colorStops,u=a&&!!o.image,c=r&&!!s.image;if(i.bind(t,this,e),this.setTransform(t),this.__dirty){var d;l&&(d=d||this.getBoundingRect(),this._fillGradient=i.getGradient(t,o,d)),h&&(d=d||this.getBoundingRect(),this._strokeGradient=i.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:u&&(t.fillStyle=iy.call(o,t)),h?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=iy.call(s,t));var f=i.lineDash,p=i.lineDashOffset,g=!!t.setLineDash,v=this.getGlobalScale();if(n.setScale(v[0],v[1]),this.__dirtyPath||f&&!g&&r?(n.beginPath(t),f&&!g&&(n.setLineDash(f),n.setLineDashOffset(p)),this.buildPath(n,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),a)if(null!=i.fillOpacity){var m=t.globalAlpha;t.globalAlpha=i.fillOpacity*i.opacity,n.fill(t),t.globalAlpha=m}else n.fill(t);if(f&&g&&(t.setLineDash(f),t.lineDashOffset=p),r)if(null!=i.strokeOpacity){var m=t.globalAlpha;t.globalAlpha=i.strokeOpacity*i.opacity,n.stroke(t),t.globalAlpha=m}else n.stroke(t);f&&g&&t.setLineDash([]),null!=i.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(){},createPathProxy:function(){this.path=new qm},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;n||(n=this.path=new qm),this.__dirtyPath&&(n.beginPath(),this.buildPath(n,this.shape,!1)),t=n.getBoundingRect()}if(this._rect=t,e.hasStroke()){var r=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){r.copy(t);var a=e.lineWidth,o=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(a=Math.max(a,this.strokeContainThreshold||4)),o>1e-10&&(r.width+=a/o,r.height+=a/o,r.x-=a/o/2,r.y-=a/o/2)}return r}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this.getBoundingRect(),r=this.style;if(t=i[0],e=i[1],n.contain(t,e)){var a=this.path.data;if(r.hasStroke()){var o=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(r.hasFill()||(o=Math.max(o,this.strokeContainThreshold)),Nr(a,o/s,t,e)))return!0}if(r.hasFill())return Br(a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=this.__dirtyText=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this.setShape(e),this.__dirtyPath=!0,this._rect=null):mn.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(S(t))for(var n in t)t.hasOwnProperty(n)&&(i[n]=t[n]);else i[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&ny(t[0]-1)>1e-10&&ny(t[3]-1)>1e-10?Math.sqrt(ny(t[0]*t[3]-t[2]*t[1])):1}},Fr.extend=function(t){var e=function(e){Fr.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var i=t.shape;if(i){this.shape=this.shape||{};var n=this.shape;for(var r in i)!n.hasOwnProperty(r)&&i.hasOwnProperty(r)&&(n[r]=i[r])}t.init&&t.init.call(this,e)};u(e,Fr);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(Fr,mn);var ay=qm.CMD,oy=[[],[],[]],sy=Math.sqrt,ly=Math.atan2,hy=function(t,e){var i,n,r,a,o,s,l=t.data,h=ay.M,u=ay.C,c=ay.L,d=ay.R,f=ay.A,p=ay.Q;for(r=0,a=0;ro;o++){var s=oy[o];s[0]=l[r++],s[1]=l[r++],ae(s,s,e),l[a++]=s[0],l[a++]=s[1]}}},uy=Math.sqrt,cy=Math.sin,dy=Math.cos,fy=Math.PI,py=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},gy=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(py(t)*py(e))},vy=function(t,e){return(t[0]*e[1]=11?function(){var e,i=this.__clipPaths,n=this.style;if(i)for(var r=0;ra;a++)r+=ee(t[a-1],t[a]);var o=r/2;o=i>o?i:o;for(var a=0;o>a;a++){var s,l,h,u=a/(o-1)*(e?i:i-1),c=Math.floor(u),d=u-c,f=t[c%i];e?(s=t[(c-1+i)%i],l=t[(c+1)%i],h=t[(c+2)%i]):(s=t[0===c?c:c-1],l=t[c>i-2?i-1:c+1],h=t[c>i-3?i-1:c+2]);var p=d*d,g=d*p;n.push([Yr(s[0],f[0],l[0],h[0],d,p,g),Yr(s[1],f[1],l[1],h[1],d,p,g)])}return n},Ty=function(t,e,i,n){var r,a,o,s,l=[],h=[],u=[],c=[];if(n){o=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;f>d;d++)oe(o,o,t[d]),se(s,s,t[d]);oe(o,o,n[0]),se(s,s,n[1])}for(var d=0,f=t.length;f>d;d++){var p=t[d];if(i)r=t[d?d-1:f-1],a=t[(d+1)%f];else{if(0===d||d===f-1){l.push(H(t[d]));continue}r=t[d-1],a=t[d+1]}j(h,a,r),J(h,h,e);var g=ee(p,r),v=ee(p,a),m=g+v;0!==m&&(g/=m,v/=m),J(u,h,-g),J(c,h,v);var y=X([],p,u),x=X([],p,c);n&&(se(y,y,o),oe(y,y,s),se(x,x,o),oe(x,x,s)),l.push(y),l.push(x)}return i&&l.push(l.shift()),l},Cy=Fr.extend({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(t,e){jr(t,e,!0)}}),Ay=Fr.extend({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(t,e){jr(t,e,!1)}}),Dy=Fr.extend({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,r=e.width,a=e.height;e.r?Ki(t,e):t.rect(i,n,r,a),t.closePath()}}),ky=Fr.extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,r=e.x2,a=e.y2,o=e.percent;0!==o&&(t.moveTo(i,n),1>o&&(r=i*(1-o)+r*o,a=n*(1-o)+a*o),t.lineTo(r,a))},pointAt:function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]}}),Py=[],Ly=Fr.extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,r=e.x2,a=e.y2,o=e.cpx1,s=e.cpy1,l=e.cpx2,h=e.cpy2,u=e.percent;0!==u&&(t.moveTo(i,n),null==l||null==h?(1>u&&(yr(i,o,r,u,Py),o=Py[1],r=Py[2],yr(n,s,a,u,Py),s=Py[1],a=Py[2]),t.quadraticCurveTo(o,s,r,a)):(1>u&&(dr(i,o,l,r,u,Py),o=Py[1],l=Py[2],r=Py[3],dr(n,s,h,a,u,Py),s=Py[1],h=Py[2],a=Py[3]),t.bezierCurveTo(o,s,l,h,r,a)))},pointAt:function(t){return qr(this.shape,t,!1)},tangentAt:function(t){var e=qr(this.shape,t,!0);return te(e,e)}}),Oy=Fr.extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.cx,n=e.cy,r=Math.max(e.r,0),a=e.startAngle,o=e.endAngle,s=e.clockwise,l=Math.cos(a),h=Math.sin(a);t.moveTo(l*r+i,h*r+n),t.arc(i,n,r,a,o,!s)}}),zy=Fr.extend({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var t=this.__dirtyPath,e=this.shape.paths,i=0;i"'])/g,ox={"&":"&","<":"<",">":">",'"':""","'":"'"},sx=["a","b","c","d","e","f","g"],lx=function(t,e){return"{"+t+(null==e?"":e)+"}"},hx=Wi,ux=Ei,cx=(Object.freeze||Object)({addCommas:co,toCamelCase:fo,normalizeCssArray:rx,encodeHTML:po,formatTpl:go,formatTplSimple:vo,getTooltipMarker:mo,formatTime:xo,capitalFirst:_o,truncateText:hx,getTextRect:ux}),dx=f,fx=["left","right","top","bottom","width","height"],px=[["width","left","right"],["height","top","bottom"]],gx=wo,vx=(x(wo,"vertical"),x(wo,"horizontal"),{getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get("bottom"),width:this.get("width"),height:this.get("height")}}}),mx=jn(),yx=Wa.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){Wa.call(this,t,e,i,n),this.uid=Za("ec_cpt_model")},init:function(t,e,i){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?Mo(t):{},a=e.getTheme();r(t,a.get(this.mainType)),r(t,this.getDefaultOption()),i&&So(t,n,i)},mergeOption:function(t){r(this.option,t,!0);var e=this.layoutMode;e&&So(this.option,t,e)},optionUpdated:function(){},getDefaultOption:function(){var t=mx(this);if(!t.defaultOption){for(var e=[],i=this.constructor;i;){var n=i.prototype.defaultOption;n&&e.push(n),i=i.superClass}for(var a={},o=e.length-1;o>=0;o--)a=r(a,e[o],!0);t.defaultOption=a}return t.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});ar(yx,{registerWhenExtend:!0}),Xa(yx),Ya(yx,To),c(yx,vx);var xx="";"undefined"!=typeof navigator&&(xx=navigator.platform||"");var _x={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:xx.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},bx=jn(),Sx={clearColorPalette:function(){bx(this).colorIdx=0,bx(this).colorNameMap={}},getColorFromPalette:function(t,e,i){e=e||this;var n=bx(e),r=n.colorIdx||0,a=n.colorNameMap=n.colorNameMap||{};if(a.hasOwnProperty(t))return a[t];var o=Nn(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=i&&s?Co(s,i):o;if(l=l||o,l&&l.length){var h=l[r];return t&&(a[t]=h),n.colorIdx=(r+1)%l.length,h}}},Mx={cartesian2d:function(t,e,i,n){var r=t.getReferringComponents("xAxis")[0],a=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],i.set("x",r),i.set("y",a),Do(r)&&(n.set("x",r),e.firstCategoryDimIndex=0),Do(a)&&(n.set("y",a),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,i,n){var r=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],i.set("single",r),Do(r)&&(n.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,i,n){var r=t.getReferringComponents("polar")[0],a=r.findAxisModel("radiusAxis"),o=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],i.set("radius",a),i.set("angle",o),Do(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),Do(o)&&(n.set("angle",o),e.firstCategoryDimIndex=1)},geo:function(t,e){e.coordSysDims=["lng","lat"]},parallel:function(t,e,i,n){var r=t.ecModel,a=r.getComponent("parallel",t.get("parallelIndex")),o=e.coordSysDims=a.dimensions.slice();f(a.parallelAxisIndex,function(t,a){var s=r.getComponent("parallelAxis",t),l=o[a];i.set(l,s),Do(s)&&null==e.firstCategoryDimIndex&&(n.set(l,s),e.firstCategoryDimIndex=a)})}},Ix="original",Tx="arrayRows",Cx="objectRows",Ax="keyedColumns",Dx="unknown",kx="typedArray",Px="column",Lx="row";ko.seriesDataToSource=function(t){return new ko({data:t,sourceFormat:I(t)?kx:Ix,fromDataset:!1})},ir(ko);var Ox=jn(),zx="\x00_ec_inner",Ex=Wa.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new Wa(i),this._optionManager=n},setOption:function(t,e){O(!(zx in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null)},resetOption:function(t){var e=!1,i=this._optionManager;if(!t||"recreate"===t){var n=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this.mergeOption(n)):Xo.call(this,n),e=!0}if(("timeline"===t||"media"===t)&&this.restoreData(),!t||"recreate"===t||"timeline"===t){var r=i.getTimelineOption(this);r&&(this.mergeOption(r),e=!0)}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this,this._api);a.length&&f(a,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){function e(e,n){var r=Nn(t[e]),s=Gn(a.get(e),r);Hn(s),f(s,function(t){var i=t.option;S(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=jo(e,i,t.exist))});var l=Yo(a,n);i[e]=[],a.set(e,[]),f(s,function(t,n){var r=t.exist,s=t.option;if(O(S(s)||r,"Empty component definition"),s){var h=yx.getClass(e,t.keyInfo.subType,!0);if(r&&r instanceof h)r.name=t.keyInfo.name,r.mergeOption(s,this),r.optionUpdated(s,!1);else{var u=o({dependentModels:l,componentIndex:n},t.keyInfo);r=new h(s,this,this,u),o(r,u),r.init(s,this,this,u),r.optionUpdated(null,!0)}}else r.mergeOption({},this),r.optionUpdated({},!1);a.get(e)[n]=r,i[e][n]=r.option},this),"series"===e&&qo(this,a.get("series"))}var i=this.option,a=this._componentsMap,s=[];Oo(this),f(t,function(t,e){null!=t&&(yx.hasClass(e)?e&&s.push(e):i[e]=null==i[e]?n(t):r(i[e],t,!0))}),yx.topologicalTravel(s,yx.getAllClassMainTypes(),e,this),this._seriesIndicesMap=N(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=n(this.option);return f(t,function(e,i){if(yx.hasClass(i)){for(var e=Nn(e),n=e.length-1;n>=0;n--)Xn(e[n])&&e.splice(n,1);t[i]=e}}),delete t[zx],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap.get(t);return i?i[e||0]:void 0},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,r=t.name,a=this._componentsMap.get(e);if(!a||!a.length)return[];var o;if(null!=i)_(i)||(i=[i]),o=v(p(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=_(n);o=v(a,function(t){return s&&h(n,t.id)>=0||!s&&t.id===n})}else if(null!=r){var l=_(r);o=v(a,function(t){return l&&h(r,t.name)>=0||!l&&t.name===r})}else o=a.slice();return Uo(o,t)},findComponents:function(t){function e(t){var e=r+"Index",i=r+"Id",n=r+"Name";return!t||null==t[e]&&null==t[i]&&null==t[n]?null:{mainType:r,index:t[e],id:t[i],name:t[n]}}function i(e){return t.filter?v(e,t.filter):e}var n=t.query,r=t.mainType,a=e(n),o=a?this.queryComponents(a):this._componentsMap.get(r);return i(Uo(o,t))},eachComponent:function(t,e,i){var n=this._componentsMap;if("function"==typeof t)i=e,e=t,n.each(function(t,n){f(t,function(t,r){e.call(i,n,t,r)})});else if(b(t))f(n.get(t),e,i);else if(S(t)){var r=this.findComponents(t);f(r,e,i)}},getSeriesByName:function(t){var e=this._componentsMap.get("series");return v(e,function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){var e=this._componentsMap.get("series");return v(e,function(e){return e.subType===t})},getSeries:function(){return this._componentsMap.get("series").slice()},getSeriesCount:function(){return this._componentsMap.get("series").length},eachSeries:function(t,e){f(this._seriesIndices,function(i){var n=this._componentsMap.get("series")[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){f(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,i){f(this._seriesIndices,function(n){var r=this._componentsMap.get("series")[n];r.subType===t&&e.call(i,r,n)},this)},eachRawSeriesByType:function(t,e,i){return f(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){var i=v(this._componentsMap.get("series"),t,e);qo(this,i)},restoreData:function(t){var e=this._componentsMap;qo(this,e.get("series"));var i=[];e.each(function(t,e){i.push(e)}),yx.topologicalTravel(i,yx.getAllClassMainTypes(),function(i){f(e.get(i),function(e){("series"!==i||!Ho(e,t))&&e.restoreData()})})}});c(Ex,Sx);var Rx=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],Bx={};Ko.prototype={constructor:Ko,create:function(t,e){var i=[];f(Bx,function(n){var r=n.create(t,e);i=i.concat(r||[])}),this._coordinateSystems=i},update:function(t,e){f(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},Ko.register=function(t,e){Bx[t]=e},Ko.get=function(t){return Bx[t]};var Nx=f,Fx=n,Vx=p,Wx=r,Gx=/^(min|max)?(.+)$/;Qo.prototype={constructor:Qo,setOption:function(t,e){t&&f(Nn(t.series),function(t){t&&t.data&&I(t.data)&&E(t.data)}),t=Fx(t,!0);var i=this._optionBackup,n=Jo.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(ns(i.baseOption,n.baseOption),n.timelineOptions.length&&(i.timelineOptions=n.timelineOptions),n.mediaList.length&&(i.mediaList=n.mediaList),n.mediaDefault&&(i.mediaDefault=n.mediaDefault)):this._optionBackup=n},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=Vx(e.timelineOptions,Fx),this._mediaList=Vx(e.mediaList,Fx),this._mediaDefault=Fx(e.mediaDefault),this._currentMediaIndices=[],Fx(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=Fx(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(){var t=this._api.getWidth(),e=this._api.getHeight(),i=this._mediaList,n=this._mediaDefault,r=[],a=[];if(!i.length&&!n)return a;for(var o=0,s=i.length;s>o;o++)ts(i[o].query,t,e)&&r.push(o);return!r.length&&n&&(r=[-1]),r.length&&!is(r,this._currentMediaIndices)&&(a=Vx(r,function(t){return Fx(-1===t?n.option:i[t].option)})),this._currentMediaIndices=r,a}};var Hx=f,Zx=S,Xx=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"],Yx=function(t,e){Hx(us(t.series),function(t){Zx(t)&&hs(t)});var i=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&i.push("valueAxis","categoryAxis","logAxis","timeAxis"),Hx(i,function(e){Hx(us(t[e]),function(t){t&&(ss(t,"axisLabel"),ss(t.axisPointer,"label"))})}),Hx(us(t.parallel),function(t){var e=t&&t.parallelAxisDefault;ss(e,"axisLabel"),ss(e&&e.axisPointer,"label")}),Hx(us(t.calendar),function(t){as(t,"itemStyle"),ss(t,"dayLabel"),ss(t,"monthLabel"),ss(t,"yearLabel")}),Hx(us(t.radar),function(t){ss(t,"name")}),Hx(us(t.geo),function(t){Zx(t)&&(ls(t),Hx(us(t.regions),function(t){ls(t)}))}),Hx(us(t.timeline),function(t){ls(t),as(t,"label"),as(t,"itemStyle"),as(t,"controlStyle",!0);var e=t.data;_(e)&&f(e,function(t){S(t)&&(as(t,"label"),as(t,"itemStyle"))})}),Hx(us(t.toolbox),function(t){as(t,"iconStyle"),Hx(t.feature,function(t){as(t,"iconStyle")})}),ss(cs(t.axisPointer),"label"),ss(cs(t.tooltip).axisPointer,"label")},jx=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],qx=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],Ux=function(t,e){Yx(t,e),t.series=Nn(t.series),f(t.series,function(t){if(S(t)){var e=t.type;if(("pie"===e||"gauge"===e)&&null!=t.clockWise&&(t.clockwise=t.clockWise),"gauge"===e){var i=ds(t,"pointer.color");null!=i&&fs(t,"itemStyle.normal.color",i)}ps(t)}}),t.dataRange&&(t.visualMap=t.dataRange),f(qx,function(e){var i=t[e];i&&(_(i)||(i=[i]),f(i,function(t){ps(t)}))})},$x=function(t){var e=N();t.eachSeries(function(t){var i=t.get("stack");if(i){var n=e.get(i)||e.set(i,[]),r=t.getData(),a={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;n.length&&r.setCalculationInfo("stackedOnSeries",n[n.length-1].seriesModel),n.push(a)}}),e.each(gs)},Kx=vs.prototype;Kx.pure=!1,Kx.persistent=!0,Kx.getSource=function(){return this._source};var Qx={arrayRows_column:{pure:!0,count:function(){return Math.max(0,this._data.length-this._source.startIndex)},getItem:function(t){return this._data[t+this._source.startIndex]},appendData:xs},arrayRows_row:{pure:!0,count:function(){var t=this._data[0];return t?Math.max(0,t.length-this._source.startIndex):0},getItem:function(t){t+=this._source.startIndex;for(var e=[],i=this._data,n=0;n=1)&&(t=1),t}var i=this._upstream,n=t&&t.skip;if(this._dirty&&i){var r=this.context;r.data=r.outputData=i.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=e(this._modBy),s=this._modDataCount||0,l=e(t&&t.modBy),h=t&&t.modDataCount||0;(o!==l||s!==h)&&(a="reset");var u;(this._dirty||"reset"===a)&&(this._dirty=!1,u=As(this,n)),this._modBy=l,this._modDataCount=h;var c=t&&t.step;if(this._dueEnd=i?i._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!n&&(u||f>d)){var p=this._progress;if(_(p))for(var g=0;gn?n++:null}function e(){var t=n%o*r+Math.ceil(n/o),e=n>=i?null:a>t?t:n;return n++,e}var i,n,r,a,o,s={reset:function(l,h,u,c){n=l,i=h,r=u,a=c,o=Math.ceil(a/r),s.next=r>1&&a>0?e:t}};return s}();n_.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},n_.unfinished=function(){return this._progress&&this._dueIndex":"",v=p+s.join(p||", ");return{renderMode:n,content:v,style:h}}function a(t){return{renderMode:n,content:po(co(t)),style:h}}var o=this;n=n||"html";var s="html"===n?"
          ":"\n",l="richText"===n,h={},u=0,c=this.getData(),d=c.mapDimension("defaultedTooltip",!0),p=d.length,v=this.getRawValue(t),m=_(v),y=c.getItemVisual(t,"color");S(y)&&y.colorStops&&(y=(y.colorStops[0]||{}).color),y=y||"transparent";var x=p>1||m&&!p?r(v):a(p?Ss(c,t,d[0]):m?v[0]:v),w=x.content,b=o.seriesIndex+"at"+u,M=mo({color:y,type:"item",renderMode:n,markerId:b});h[b]=y,++u;var I=c.getName(t),T=this.name;Zn(this)||(T=""),T=T?po(T)+(e?": ":s):"";var C="string"==typeof M?M:M.content,A=e?C+T+w:T+C+(I?po(I)+": "+w:w);return{html:A,markers:h}},isAnimationEnabled:function(){if(tg.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,r=Sx.getColorFromPalette.call(this,t,e,i);return r||(r=n.getColorFromPalette(t,e,i)),r},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});c(o_,i_),c(o_,Sx);var s_=function(){this.group=new lv,this.uid=Za("viewComponent")};s_.prototype={constructor:s_,init:function(){},render:function(){},dispose:function(){},filterForExposedEvent:null};var l_=s_.prototype;l_.updateView=l_.updateLayout=l_.updateVisual=function(){},er(s_),ar(s_,{registerWhenExtend:!0});var h_=function(){var t=jn();return function(e){var i=t(e),n=e.pipelineContext,r=i.large,a=i.progressiveRender,o=i.large=n.large,s=i.progressiveRender=n.progressiveRender;return!!(r^o||a^s)&&"reset"}},u_=jn(),c_=h_();Bs.prototype={type:"chart",init:function(){},render:function(){},highlight:function(t,e,i,n){Fs(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){Fs(t.getData(),n,"normal")},remove:function(){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var d_=Bs.prototype;d_.updateView=d_.updateLayout=d_.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},er(Bs,["dispose"]),ar(Bs,{registerWhenExtend:!0}),Bs.markUpdateMethod=function(t,e){u_(t).updateMethod=e +};var f_={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},p_="\x00__throttleOriginMethod",g_="\x00__throttleRate",v_="\x00__throttleType",m_={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),r=t.get(n)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(i.setVisual("color",r),!e.isSeriesFiltered(t)){"function"!=typeof r||r instanceof Ey||i.each(function(e){i.setItemVisual(e,"color",r(t.getDataParams(e)))});var a=function(t,e){var i=t.getItemModel(e),r=i.get(n,!0);null!=r&&t.setItemVisual(e,"color",r)};return{dataEach:i.hasItemOption?a:null}}}},y_={toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},x_=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return f(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=o.get(t);if(null==e){for(var i=t.split("."),n=y_.aria,r=0;rs)){var d=r();l=d?i(n("general.withTitle"),{title:d}):n("general.withoutTitle");var p=[],g=s>1?"series.multiple.prefix":"series.single.prefix";l+=i(n(g),{seriesCount:s}),e.eachSeries(function(t,e){if(c>e){var r,o=t.get("name"),l="series."+(s>1?"multiple":"single")+".";r=n(o?l+"withName":l+"withoutName"),r=i(r,{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:a(t.subType)});var u=t.getData();window.data=u,r+=u.count()>h?i(n("data.partialData"),{displayCnt:h}):n("data.allData");for(var d=[],f=0;ff){var g=u.getName(f),v=Ss(u,f);d.push(i(n(g?"data.withName":"data.withoutName"),{name:g,value:v}))}r+=d.join(n("data.separator.middle"))+n("data.separator.end"),p.push(r)}}),l+=p.join(n("series.multiple.separator.middle"))+n("series.multiple.separator.end"),t.setAttribute("aria-label",l)}}},__=Math.PI,w_=function(t,e){e=e||{},s(e,{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var i=new Dy({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),n=new Oy({shape:{startAngle:-__/2,endAngle:-__/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),r=new Dy({style:{fill:"none",text:e.text,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});n.animateShape(!0).when(1e3,{endAngle:3*__/2}).start("circularInOut"),n.animateShape(!0).when(1e3,{startAngle:3*__/2}).delay(300).start("circularInOut");var a=new lv;return a.add(n),a.add(r),a.add(i),a.resize=function(){var e=t.getWidth()/2,a=t.getHeight()/2;n.setShape({cx:e,cy:a});var o=n.shape.r;r.setShape({x:e-o,y:a-o,width:2*o,height:2*o}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},a.resize(),a},b_=Xs.prototype;b_.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each(function(t){var e=t.overallTask;e&&e.dirty()})},b_.getPerformArgs=function(t,e){if(t.__pipeline){var i=this._pipelineMap.get(t.__pipeline.id),n=i.context,r=!e&&i.progressiveEnabled&&(!n||n.progressiveRender)&&t.__idxInPipeline>i.blockIndex,a=r?i.step:null,o=n&&n.modDataCount,s=null!=o?Math.ceil(o/a):null;return{step:a,modBy:s,modDataCount:o}}},b_.getPipeline=function(t){return this._pipelineMap.get(t)},b_.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData(),r=n.count(),a=i.progressiveEnabled&&e.incrementalPrepareRender&&r>=i.threshold,o=t.get("large")&&r>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?r:null;t.pipelineContext=i.context={progressiveRender:a,modDataCount:s,large:o}},b_.restorePipelines=function(t){var e=this,i=e._pipelineMap=N();t.eachSeries(function(t){var n=t.getProgressive(),r=t.uid;i.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:n&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(n||700),count:0}),nl(e,t,t.dataTask)})},b_.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),i=this.api;f(this._allHandlers,function(n){var r=t.get(n.uid)||t.set(n.uid,[]);n.reset&&js(this,n,r,e,i),n.overallReset&&qs(this,n,r,e,i)},this)},b_.prepareView=function(t,e,i,n){var r=t.renderTask,a=r.context;a.model=e,a.ecModel=i,a.api=n,r.__block=!t.incrementalPrepareRender,nl(this,e,r)},b_.performDataProcessorTasks=function(t,e){Ys(this,this._dataProcessorHandlers,t,e,{block:!0})},b_.performVisualTasks=function(t,e,i){Ys(this,this._visualHandlers,t,e,i)},b_.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},b_.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var S_=b_.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},M_=el(0);Xs.wrapStageHandler=function(t,e){return w(t)&&(t={overallReset:t,seriesType:rl(t)}),t.uid=Za("stageHandler"),e&&(t.visualType=e),t};var I_,T_={},C_={};al(T_,Ex),al(C_,$o),T_.eachSeriesByType=T_.eachRawSeriesByType=function(t){I_=t},T_.eachComponent=function(t){"series"===t.mainType&&t.subType&&(I_=t.subType)};var A_=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],D_={color:A_,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],A_]},k_="#eee",P_=function(){return{axisLine:{lineStyle:{color:k_}},axisTick:{lineStyle:{color:k_}},axisLabel:{textStyle:{color:k_}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:k_}}}},L_=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],O_={color:L_,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:k_},crossStyle:{color:k_}}},legend:{textStyle:{color:k_}},textStyle:{color:k_},title:{textStyle:{color:k_}},toolbox:{iconStyle:{normal:{borderColor:k_}}},dataZoom:{textStyle:{color:k_}},visualMap:{textStyle:{color:k_}},timeline:{lineStyle:{color:k_},itemStyle:{normal:{color:L_[1]}},label:{normal:{textStyle:{color:k_}}},controlStyle:{normal:{color:k_,borderColor:k_}}},timeAxis:P_(),logAxis:P_(),valueAxis:P_(),categoryAxis:P_(),line:{symbol:"circle"},graph:{color:L_},gauge:{title:{textStyle:{color:k_}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};O_.categoryAxis.splitLine.show=!1,yx.extend({type:"dataset",defaultOption:{seriesLayoutBy:Px,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){Po(this)}}),s_.extend({type:"dataset"});var z_=Fr.extend({type:"ellipse",shape:{cx:0,cy:0,rx:0,ry:0},buildPath:function(t,e){var i=.5522848,n=e.cx,r=e.cy,a=e.rx,o=e.ry,s=a*i,l=o*i;t.moveTo(n-a,r),t.bezierCurveTo(n-a,r-l,n-s,r-o,n,r-o),t.bezierCurveTo(n+s,r-o,n+a,r-l,n+a,r),t.bezierCurveTo(n+a,r+l,n+s,r+o,n,r+o),t.bezierCurveTo(n-s,r+o,n-a,r+l,n-a,r),t.closePath()}}),E_=/[\s,]+/;sl.prototype.parse=function(t,e){e=e||{};var i=ol(t);if(!i)throw new Error("Illegal svg");var n=new lv;this._root=n;var r=i.getAttribute("viewBox")||"",a=parseFloat(i.getAttribute("width")||e.width),o=parseFloat(i.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(o)&&(o=null),cl(i,n,null,!0);for(var s=i.firstChild;s;)this._parseNode(s,n),s=s.nextSibling;var l,h;if(r){var u=z(r).split(E_);u.length>=4&&(l={x:parseFloat(u[0]||0),y:parseFloat(u[1]||0),width:parseFloat(u[2]),height:parseFloat(u[3])})}if(l&&null!=a&&null!=o&&(h=gl(l,a,o),!e.ignoreViewBox)){var c=n;n=new lv,n.add(c),c.scale=h.scale.slice(),c.position=h.position.slice()}return e.ignoreRootClip||null==a||null==o||n.setClipPath(new Dy({shape:{x:0,y:0,width:a,height:o}})),{root:n,width:a,height:o,viewBoxRect:l,viewBoxTransform:h}},sl.prototype._parseNode=function(t,e){var i=t.nodeName.toLowerCase();"defs"===i?this._isDefine=!0:"text"===i&&(this._isText=!0);var n;if(this._isDefine){var r=B_[i];if(r){var a=r.call(this,t),o=t.getAttribute("id");o&&(this._defs[o]=a)}}else{var r=R_[i];r&&(n=r.call(this,t,e),e.add(n))}for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===i?this._isDefine=!1:"text"===i&&(this._isText=!1)},sl.prototype._parseText=function(t,e){if(1===t.nodeType){var i=t.getAttribute("dx")||0,n=t.getAttribute("dy")||0;this._textX+=parseFloat(i),this._textY+=parseFloat(n)}var r=new xy({style:{text:t.textContent,transformText:!0},position:[this._textX||0,this._textY||0]});hl(e,r),cl(t,r,this._defs);var a=r.style.fontSize;a&&9>a&&(r.style.fontSize=9,r.scale=r.scale||[1,1],r.scale[0]*=a/9,r.scale[1]*=a/9);var o=r.getBoundingRect();return this._textX+=o.width,e.add(r),r};var R_={g:function(t,e){var i=new lv;return hl(e,i),cl(t,i,this._defs),i},rect:function(t,e){var i=new Dy;return hl(e,i),cl(t,i,this._defs),i.setShape({x:parseFloat(t.getAttribute("x")||0),y:parseFloat(t.getAttribute("y")||0),width:parseFloat(t.getAttribute("width")||0),height:parseFloat(t.getAttribute("height")||0)}),i},circle:function(t,e){var i=new _y;return hl(e,i),cl(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),r:parseFloat(t.getAttribute("r")||0)}),i},line:function(t,e){var i=new ky;return hl(e,i),cl(t,i,this._defs),i.setShape({x1:parseFloat(t.getAttribute("x1")||0),y1:parseFloat(t.getAttribute("y1")||0),x2:parseFloat(t.getAttribute("x2")||0),y2:parseFloat(t.getAttribute("y2")||0)}),i},ellipse:function(t,e){var i=new z_;return hl(e,i),cl(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),rx:parseFloat(t.getAttribute("rx")||0),ry:parseFloat(t.getAttribute("ry")||0)}),i},polygon:function(t,e){var i=t.getAttribute("points");i&&(i=ul(i));var n=new Cy({shape:{points:i||[]}});return hl(e,n),cl(t,n,this._defs),n},polyline:function(t,e){var i=new Fr;hl(e,i),cl(t,i,this._defs);var n=t.getAttribute("points");n&&(n=ul(n));var r=new Ay({shape:{points:n||[]}});return r},image:function(t,e){var i=new yn;return hl(e,i),cl(t,i,this._defs),i.setStyle({image:t.getAttribute("xlink:href"),x:t.getAttribute("x"),y:t.getAttribute("y"),width:t.getAttribute("width"),height:t.getAttribute("height")}),i},text:function(t,e){var i=t.getAttribute("x")||0,n=t.getAttribute("y")||0,r=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0;this._textX=parseFloat(i)+parseFloat(r),this._textY=parseFloat(n)+parseFloat(a);var o=new lv;return hl(e,o),cl(t,o,this._defs),o},tspan:function(t,e){var i=t.getAttribute("x"),n=t.getAttribute("y");null!=i&&(this._textX=parseFloat(i)),null!=n&&(this._textY=parseFloat(n));var r=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0,o=new lv;return hl(e,o),cl(t,o,this._defs),this._textX+=r,this._textY+=a,o},path:function(t,e){var i=t.getAttribute("d")||"",n=Hr(i);return hl(e,n),cl(t,n,this._defs),n}},B_={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||0,10),i=parseInt(t.getAttribute("y1")||0,10),n=parseInt(t.getAttribute("x2")||10,10),r=parseInt(t.getAttribute("y2")||0,10),a=new Ry(e,i,n,r);return ll(t,a),a},radialgradient:function(){}},N_={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"},F_=/url\(\s*#(.*?)\)/,V_=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,W_=/([^\s:;]+)\s*:\s*([^:;]+)/g,G_=N(),H_={registerMap:function(t,e,i){var n;return _(e)?n=e:e.svg?n=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}]:(e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),n=[{type:"geoJSON",source:e,specialAreas:i}]),f(n,function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var i=Z_[e];i(t)}),G_.set(t,n)},retrieveMap:function(t){return G_.get(t)}},Z_={geoJSON:function(t){var e=t.source;t.geoJSON=b(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=ol(t.source)}},X_=O,Y_=f,j_=w,q_=S,U_=yx.parseClassType,$_="4.2.0",K_={zrender:"4.0.5"},Q_=1,J_=1e3,tw=5e3,ew=1e3,iw=2e3,nw=3e3,rw=4e3,aw=5e3,ow={PROCESSOR:{FILTER:J_,STATISTIC:tw},VISUAL:{LAYOUT:ew,GLOBAL:iw,CHART:nw,COMPONENT:rw,BRUSH:aw}},sw="__flagInMainProcess",lw="__optionUpdated",hw=/^[a-zA-Z0-9_]+$/;ml.prototype.on=vl("on"),ml.prototype.off=vl("off"),ml.prototype.one=vl("one"),c(ml,bg);var uw=yl.prototype;uw._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[lw]){var e=this[lw].silent;this[sw]=!0,_l(this),cw.update.call(this),this[sw]=!1,this[lw]=!1,Ml.call(this,e),Il.call(this,e)}else if(t.unfinished){var i=Q_,n=this._model,r=this._api;t.unfinished=!1;do{var a=+new Date;t.performSeriesTasks(n),t.performDataProcessorTasks(n),bl(this,n),t.performVisualTasks(n),Pl(this,this._model,r,"remain"),i-=+new Date-a}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},uw.getDom=function(){return this._dom},uw.getZr=function(){return this._zr},uw.setOption=function(t,e,i){var n;if(q_(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[sw]=!0,!this._model||e){var r=new Qo(this._api),a=this._theme,o=this._model=new Ex(null,null,a,r);o.scheduler=this._scheduler,o.init(null,null,a,r)}this._model.setOption(t,vw),i?(this[lw]={silent:n},this[sw]=!1):(_l(this),cw.update.call(this),this._zr.flush(),this[lw]=!1,this[sw]=!1,Ml.call(this,n),Il.call(this,n))},uw.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},uw.getModel=function(){return this._model},uw.getOption=function(){return this._model&&this._model.getOption()},uw.getWidth=function(){return this._zr.getWidth()},uw.getHeight=function(){return this._zr.getHeight()},uw.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},uw.getRenderedCanvas=function(t){if(tg.canvasSupported){t=t||{},t.pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor");var e=this._zr;return e.painter.getRenderedCanvas(t)}},uw.getSvgDataUrl=function(){if(tg.svgSupported){var t=this._zr,e=t.storage.getDisplayList();return f(e,function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},uw.getDataURL=function(t){t=t||{};var e=t.excludeComponents,i=this._model,n=[],r=this;Y_(e,function(t){i.eachComponent({mainType:t},function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(n.push(e),e.group.ignore=!0)})});var a="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Y_(n,function(t){t.group.ignore=!1}),a},uw.getConnectedDataURL=function(t){if(tg.canvasSupported){var e=this.group,i=Math.min,r=Math.max,a=1/0;if(bw[e]){var o=a,s=a,l=-a,h=-a,u=[],c=t&&t.pixelRatio||1;f(ww,function(a){if(a.group===e){var c=a.getRenderedCanvas(n(t)),d=a.getDom().getBoundingClientRect();o=i(d.left,o),s=i(d.top,s),l=r(d.right,l),h=r(d.bottom,h),u.push({dom:c,left:d.left,top:d.top})}}),o*=c,s*=c,l*=c,h*=c;var d=l-o,p=h-s,g=cg();g.width=d,g.height=p;var v=On(g);return Y_(u,function(t){var e=new yn({style:{x:t.left*c-o,y:t.top*c-s,image:t.dom}});v.add(e)}),v.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},uw.convertToPixel=x(xl,"convertToPixel"),uw.convertFromPixel=x(xl,"convertFromPixel"),uw.containPixel=function(t,e){var i,n=this._model;return t=qn(n,t),f(t,function(t,n){n.indexOf("Models")>=0&&f(t,function(t){var r=t.coordinateSystem;if(r&&r.containPoint)i|=!!r.containPoint(e);else if("seriesModels"===n){var a=this._chartsMap[t.__viewId];a&&a.containPoint&&(i|=a.containPoint(e,t))}},this)},this),!!i},uw.getVisual=function(t,e){var i=this._model;t=qn(i,t,{defaultMainType:"series"});var n=t.seriesModel,r=n.getData(),a=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?r.indexOfRawIndex(t.dataIndex):null;return null!=a?r.getItemVisual(a,e):r.getVisual(e)},uw.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},uw.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var cw={prepareAndUpdate:function(t){_l(this),cw.update.call(this,t)},update:function(t){var e=this._model,i=this._api,n=this._zr,r=this._coordSysMgr,a=this._scheduler;if(e){a.restoreData(e,t),a.performSeriesTasks(e),r.create(e,i),a.performDataProcessorTasks(e,t),bl(this,e),r.update(e,i),Al(e),a.performVisualTasks(e,t),Dl(this,e,i,t);var o=e.get("backgroundColor")||"transparent";if(tg.canvasSupported)n.setBackgroundColor(o);else{var s=He(o);o=Qe(s,"rgb"),0===s[3]&&(o="transparent")}Ll(e,i)}},updateTransform:function(t){var e=this._model,i=this,n=this._api;if(e){var r=[];e.eachComponent(function(a,o){var s=i.getViewOfComponentModel(o);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(o,e,n,t);l&&l.update&&r.push(s)}else r.push(s)});var a=N();e.eachSeries(function(r){var o=i._chartsMap[r.__viewId];if(o.updateTransform){var s=o.updateTransform(r,e,n,t);s&&s.update&&a.set(r.uid,1)}else a.set(r.uid,1)}),Al(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),Pl(i,e,n,t,a),Ll(e,this._api)}},updateView:function(t){var e=this._model;e&&(Bs.markUpdateMethod(t,"updateView"),Al(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Dl(this,this._model,this._api,t),Ll(e,this._api))},updateVisual:function(t){cw.update.call(this,t)},updateLayout:function(t){cw.update.call(this,t)}};uw.resize=function(t){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[sw]=!0,i&&_l(this),cw.update.call(this),this[sw]=!1,Ml.call(this,n),Il.call(this,n)}},uw.showLoading=function(t,e){if(q_(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),_w[t]){var i=_w[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},uw.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},uw.makeActionFromEvent=function(t){var e=o({},t);return e.type=pw[t.type],e},uw.dispatchAction=function(t,e){if(q_(e)||(e={silent:!!e}),fw[t.type]&&this._model){if(this[sw])return void this._pendingActions.push(t);Sl.call(this,t,e.silent),e.flush?this._zr.flush(!0):e.flush!==!1&&tg.browser.weChat&&this._throttledZrFlush(),Ml.call(this,e.silent),Il.call(this,e.silent)}},uw.appendData=function(t){var e=t.seriesIndex,i=this.getModel(),n=i.getSeriesByIndex(e);n.appendData(t),this._scheduler.unfinished=!0},uw.on=vl("on"),uw.off=vl("off"),uw.one=vl("one");var dw=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];uw._initEvents=function(){Y_(dw,function(t){this._zr.on(t,function(e){var i,n=this.getModel(),r=e.target,a="globalout"===t;if(a)i={};else if(r&&null!=r.dataIndex){var s=r.dataModel||n.getSeriesByIndex(r.seriesIndex);i=s&&s.getDataParams(r.dataIndex,r.dataType,r)||{}}else r&&r.eventData&&(i=o({},r.eventData));if(i){var l=i.componentType,h=i.componentIndex;("markLine"===l||"markPoint"===l||"markArea"===l)&&(l="series",h=i.seriesIndex);var u=l&&null!=h&&n.getComponent(l,h),c=u&&this["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];i.event=e,i.type=t,this._ecEventProcessor.eventInfo={targetEl:r,packedEvent:i,model:u,view:c},this.trigger(t,i)}},this)},this),Y_(pw,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},uw.isDisposed=function(){return this._disposed},uw.clear=function(){this.setOption({series:[]},!0)},uw.dispose=function(){if(!this._disposed){this._disposed=!0,$n(this.getDom(),Iw,"");var t=this._api,e=this._model;Y_(this._componentsViews,function(i){i.dispose(e,t)}),Y_(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete ww[this.id]}},c(yl,bg),Bl.prototype={constructor:Bl,normalizeQuery:function(t){var e={},i={},n={};if(b(t)){var r=U_(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var a=["Index","Name","Id"],o={name:1,dataIndex:1,dataType:1};f(t,function(t,r){for(var s=!1,l=0;l0&&u===r.length-h.length){var c=r.slice(0,u);"data"!==c&&(e.mainType=c,e[h.toLowerCase()]=t,s=!0)}}o.hasOwnProperty(r)&&(i[r]=t,s=!0),s||(n[r]=t)})}return{cptQuery:e,dataQuery:i,otherQuery:n}},filter:function(t,e){function i(t,e,i,n){return null==t[i]||e[n||i]===t[i]}var n=this.eventInfo;if(!n)return!0;var r=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=e.cptQuery,h=e.dataQuery;return i(l,o,"mainType")&&i(l,o,"subType")&&i(l,o,"index","componentIndex")&&i(l,o,"name")&&i(l,o,"id")&&i(h,a,"name")&&i(h,a,"dataIndex")&&i(h,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,e.otherQuery,r,a))},afterTrigger:function(){this.eventInfo=null}};var fw={},pw={},gw=[],vw=[],mw=[],yw=[],xw={},_w={},ww={},bw={},Sw=new Date-0,Mw=new Date-0,Iw="_echarts_instance_",Tw=Wl;Jl(iw,m_),Yl(Ux),jl(tw,$x),eh("default",w_),Ul({type:"highlight",event:"highlight",update:"highlight"},V),Ul({type:"downplay",event:"downplay",update:"downplay"},V),Xl("light",D_),Xl("dark",O_);var Cw={};uh.prototype={constructor:uh,add:function(t){return this._add=t,this},update:function(t){return this._update=t,this},remove:function(t){return this._remove=t,this},execute:function(){var t,e=this._old,i=this._new,n={},r={},a=[],o=[];for(ch(e,n,a,"_oldKeyGetter",this),ch(i,r,o,"_newKeyGetter",this),t=0;tu;u++)this._add&&this._add(l[u]);else this._add&&this._add(l)}}}};var Aw=N(["tooltip","label","itemName","itemId","seriesName"]),Dw=S,kw="undefined",Pw="e\x00\x00",Lw={"float":typeof Float64Array===kw?Array:Float64Array,"int":typeof Int32Array===kw?Array:Int32Array,ordinal:Array,number:Array,time:Array},Ow=typeof Uint32Array===kw?Array:Uint32Array,zw=typeof Uint16Array===kw?Array:Uint16Array,Ew=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_chunkSize","_chunkCount","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx"],Rw=["_extent","_approximateExtent","_rawExtent"],Bw=function(t,e){t=t||["x","y"];for(var i={},n=[],r={},a=0;a=e)){for(var i,n=this._chunkSize,r=this._rawData,a=this._storage,o=this.dimensions,s=o.length,l=this._dimensionInfos,h=this._nameList,u=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=f-1,g=0;s>g;g++){var v=o[g];c[v]||(c[v]=Th());var m=l[v];0===m.otherDims.itemName&&(i=this._nameDimIdx=g),0===m.otherDims.itemId&&(this._idDimIdx=g);var y=Lw[m.type];a[v]||(a[v]=[]);var x=a[v][p];if(x&&x.lengthb;b+=n)a[v].push(new y(Math.min(e-b,n)));this._chunkCount=a[v].length}for(var S=new Array(s),M=t;e>M;M++){S=r.getItem(M,S);for(var I=Math.floor(M/n),T=M%n,b=0;s>b;b++){var v=o[b],C=a[v][I],A=this._dimValueGetter(S,v,M,b);C[T]=A;var D=c[v];AD[1]&&(D[1]=A)}if(!r.pure){var k=h[M];if(S&&null==k)if(null!=S.name)h[M]=k=S.name;else if(null!=i){var P=o[i],L=a[P][I];if(L){k=L[T];var O=l[P].ordinalMeta;O&&O.categories.length&&(k=O.categories[k])}}var z=null==S?null:S.id;null==z&&null!=k&&(d[k]=d[k]||0,z=k,d[k]>0&&(z+="__ec__"+d[k]),d[k]++),null!=z&&(u[M]=z)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=e,this._extent={},yh(this)}},Nw.count=function(){return this._count},Nw.getIndices=function(){var t,e=this._indices;if(e){var i=e.constructor,n=this._count;if(i===Array){t=new i(n);for(var r=0;n>r;r++)t[r]=e[r]}else t=new i(e.buffer,0,n)}else for(var i=gh(this),t=new i(this.count()),r=0;r=0&&e=0&&en;n++)i.push(this.get(t[n],e));return i},Nw.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,i=this._dimensionInfos,n=0,r=e.length;r>n;n++)if("ordinal"!==i[e[n]].type&&isNaN(this.get(e[n],t)))return!1;return!0},Nw.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],i=Th();if(!e)return i;var n,r=this.count(),a=!this._indices;if(a)return this._rawExtent[t].slice();if(n=this._extent[t])return n.slice();n=i;for(var o=n[0],s=n[1],l=0;r>l;l++){var h=this._getFast(t,this.getRawIndex(l));o>h&&(o=h),h>s&&(s=h)}return n=[o,s],this._extent[t]=n,n},Nw.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},Nw.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},Nw.getCalculationInfo=function(t){return this._calculationInfo[t]},Nw.setCalculationInfo=function(t,e){Dw(t)?o(this._calculationInfo,t):this._calculationInfo[t]=e},Nw.getSum=function(t){var e=this._storage[t],i=0;if(e)for(var n=0,r=this.count();r>n;n++){var a=this.get(t,n);isNaN(a)||(i+=a)}return i},Nw.getMedian=function(t){var e=[];this.each(t,function(t){isNaN(t)||e.push(t)});var i=[].concat(e).sort(function(t,e){return t-e}),n=this.count();return 0===n?0:n%2===1?i[(n-1)/2]:(i[n/2]+i[n/2-1])/2},Nw.rawIndexOf=function(t,e){var i=t&&this._invertedIndicesMap[t],n=i[e];return null==n||isNaN(n)?-1:n},Nw.indexOfName=function(t){for(var e=0,i=this.count();i>e;e++)if(this.getName(e)===t)return e;return-1},Nw.indexOfRawIndex=function(t){if(!this._indices)return t;if(t>=this._rawCount||0>t)return-1;var e=this._indices,i=e[t];if(null!=i&&i=n;){var a=(n+r)/2|0;if(e[a]t))return a;r=a-1}}return-1},Nw.indicesOfNearest=function(t,e,i){var n=this._storage,r=n[t],a=[];if(!r)return a;null==i&&(i=1/0);for(var o=Number.MAX_VALUE,s=-1,l=0,h=this.count();h>l;l++){var u=e-this.get(t,l),c=Math.abs(u);i>=u&&o>=c&&((o>c||u>=0&&0>s)&&(o=c,s=u,a.length=0),a.push(l))}return a},Nw.getRawIndex=_h,Nw.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;io;o++)s[o]=this.get(t[o],a);s[o]=a,e.apply(i,s)}}},Nw.filterSelf=function(t,e,i,n){if(this._count){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this,t=p(Sh(t),this.getDimension,this);for(var r=this.count(),a=gh(this),o=new a(r),s=[],l=t.length,h=0,u=t[0],c=0;r>c;c++){var d,f=this.getRawIndex(c);if(0===l)d=e.call(i,c);else if(1===l){var g=this._getFast(u,f);d=e.call(i,g,c)}else{for(var v=0;l>v;v++)s[v]=this._getFast(u,f);s[v]=c,d=e.apply(i,s)}d&&(o[h++]=f)}return r>h&&(this._indices=o),this._count=h,this._extent={},this.getRawIndex=this._indices?wh:_h,this}},Nw.selectRange=function(t){if(this._count){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(i);var n=e.length;if(n){var r=this.count(),a=gh(this),o=new a(r),s=0,l=e[0],h=t[l][0],u=t[l][1],c=!1;if(!this._indices){var d=0;if(1===n){for(var f=this._storage[e[0]],p=0;pm;m++){var y=g[m];(y>=h&&u>=y||isNaN(y))&&(o[s++]=d),d++}c=!0}else if(2===n){for(var f=this._storage[l],x=this._storage[e[1]],_=t[e[1]][0],w=t[e[1]][1],p=0;pm;m++){var y=g[m],S=b[m]; + (y>=h&&u>=y||isNaN(y))&&(S>=_&&w>=S||isNaN(S))&&(o[s++]=d),d++}c=!0}}if(!c)if(1===n)for(var m=0;r>m;m++){var M=this.getRawIndex(m),y=this._getFast(l,M);(y>=h&&u>=y||isNaN(y))&&(o[s++]=M)}else for(var m=0;r>m;m++){for(var I=!0,M=this.getRawIndex(m),p=0;n>p;p++){var T=e[p],y=this._getFast(i,M);(yt[T][1])&&(I=!1)}I&&(o[s++]=this.getRawIndex(m))}return r>s&&(this._indices=o),this._count=s,this._extent={},this.getRawIndex=this._indices?wh:_h,this}}},Nw.mapArray=function(t,e,i,n){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this;var r=[];return this.each(t,function(){r.push(e&&e.apply(this,arguments))},i),r},Nw.map=function(t,e,i,n){i=i||n||this,t=p(Sh(t),this.getDimension,this);var r=Mh(this,t);r._indices=this._indices,r.getRawIndex=r._indices?wh:_h;for(var a=r._storage,o=[],s=this._chunkSize,l=t.length,h=this.count(),u=[],c=r._rawExtent,d=0;h>d;d++){for(var f=0;l>f;f++)u[f]=this.get(t[f],d);u[l]=d;var g=e&&e.apply(i,u);if(null!=g){"object"!=typeof g&&(o[0]=g,g=o);for(var v=this.getRawIndex(d),m=Math.floor(v/s),y=v%s,x=0;xb[1]&&(b[1]=w)}}}return r},Nw.downSample=function(t,e,i,n){for(var r=Mh(this,[t]),a=r._storage,o=[],s=Math.floor(1/e),l=a[t],h=this.count(),u=this._chunkSize,c=r._rawExtent[t],d=new(gh(this))(h),f=0,p=0;h>p;p+=s){s>h-p&&(s=h-p,o.length=s);for(var g=0;s>g;g++){var v=this.getRawIndex(p+g),m=Math.floor(v/u),y=v%u;o[g]=l[m][y]}var x=i(o),_=this.getRawIndex(Math.min(p+n(o,x)||0,h-1)),w=Math.floor(_/u),b=_%u;l[w][b]=x,xc[1]&&(c[1]=x),d[f++]=_}return r._count=f,r._indices=d,r.getRawIndex=wh,r},Nw.getItemModel=function(t){var e=this.hostModel;return new Wa(this.getRawDataItem(t),e,e&&e.ecModel)},Nw.diff=function(t){var e=this;return new uh(t?t.getIndices():[],this.getIndices(),function(e){return bh(t,e)},function(t){return bh(e,t)})},Nw.getVisual=function(t){var e=this._visual;return e&&e[t]},Nw.setVisual=function(t,e){if(Dw(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},Nw.setLayout=function(t,e){if(Dw(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},Nw.getLayout=function(t){return this._layout[t]},Nw.getItemLayout=function(t){return this._itemLayouts[t]},Nw.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?o(this._itemLayouts[t]||{},e):e},Nw.clearItemLayouts=function(){this._itemLayouts.length=0},Nw.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],r=n&&n[e];return null!=r||i?r:this.getVisual(e)},Nw.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},r=this.hasItemVisual;if(this._itemVisuals[t]=n,Dw(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],r[a]=!0);else n[e]=i,r[e]=!0},Nw.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var Fw=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};Nw.setItemGraphicEl=function(t,e){var i=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(Fw,e)),this._graphicEls[t]=e},Nw.getItemGraphicEl=function(t){return this._graphicEls[t]},Nw.eachItemGraphicEl=function(t,e){f(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},Nw.cloneShallow=function(t){if(!t){var e=p(this.dimensions,this.getDimensionInfo,this);t=new Bw(e,this.hostModel)}if(t._storage=this._storage,mh(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?wh:_h,t},Nw.wrapMethod=function(t,e){var i=this[t];"function"==typeof i&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=i.apply(this,arguments);return e.apply(this,[t].concat(P(arguments)))})},Nw.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],Nw.CHANGABLE_METHODS=["filterSelf","selectRange"];var Vw=function(t,e){return e=e||{},Ch(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};Rh.prototype.parse=function(t){return t},Rh.prototype.getSetting=function(t){return this._setting[t]},Rh.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},Rh.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},Rh.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},Rh.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},Rh.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Rh.prototype.getExtent=function(){return this._extent.slice()},Rh.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},Rh.prototype.isBlank=function(){return this._isBlank},Rh.prototype.setBlank=function(t){this._isBlank=t},Rh.prototype.getLabel=null,er(Rh),ar(Rh,{registerWhenExtend:!0}),Bh.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&p(i,Fh);return new Bh({categories:n,needCollect:!n,deduplication:e.dedplication!==!1})};var Ww=Bh.prototype;Ww.getOrdinal=function(t){return Nh(this).get(t)},Ww.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=Nh(this);return e=n.get(t),null==e&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=0/0),e};var Gw=Rh.prototype,Hw=Rh.extend({type:"ordinal",init:function(t,e){(!t||_(t))&&(t=new Bh({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),Gw.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return Gw.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(Gw.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){return this.isBlank()?void 0:this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:V,niceExtent:V});Hw.create=function(){return new Hw};var Zw=$a,Xw=$a,Yw=Rh.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),Yw.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Wh(t)},getTicks:function(){return Zh(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var i=e&&e.precision;return null==i?i=Ja(t)||0:"auto"===i&&(i=this._intervalPrecision),t=Xw(t,i,!0),co(t)},niceTicks:function(t,e,i){t=t||5;var n=this._extent,r=n[1]-n[0];if(isFinite(r)){0>r&&(r=-r,n.reverse());var a=Vh(n,t,e,i);this._intervalPrecision=a.intervalPrecision,this._interval=a.interval,this._niceExtent=a.niceTickExtent}},niceExtent:function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var i=e[0];t.fixMax?e[0]-=i/2:(e[1]+=i/2,e[0]-=i/2)}else e[1]=1;var n=e[1]-e[0];isFinite(n)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=Xw(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=Xw(Math.ceil(e[1]/r)*r))}});Yw.create=function(){return new Yw};var jw="__ec_stack_",qw=.5,Uw="undefined"!=typeof Float32Array?Float32Array:Array,$w={seriesType:"bar",plan:h_(),reset:function(t){function e(t,e){for(var i,c=new Uw(2*t.count),d=[],f=[],p=0;null!=(i=t.next());)f[h]=e.get(o,i),f[1-h]=e.get(s,i),d=n.dataToPoint(f,null,d),c[p++]=d[0],c[p++]=d[1];e.setLayout({largePoints:c,barWidth:u,valueAxisStart:eu(r,a,!1),valueAxisHorizontal:l})}if(Jh(t)&&tu(t)){var i=t.getData(),n=t.coordinateSystem,r=n.getBaseAxis(),a=n.getOtherAxis(r),o=i.mapDimension(a.dim),s=i.mapDimension(r.dim),l=a.isHorizontal(),h=l?0:1,u=Kh(Uh([t]),r,t).width;return u>qw||(u=qw),{progress:e}}}},Kw=Yw.prototype,Qw=Math.ceil,Jw=Math.floor,tb=1e3,eb=60*tb,ib=60*eb,nb=24*ib,rb=function(t,e,i,n){for(;n>i;){var r=i+n>>>1;t[r][1]a&&(a=e),null!=i&&a>i&&(a=i);var o=ob.length,s=rb(ob,a,0,o),l=ob[Math.min(s,o-1)],h=l[1];if("year"===l[0]){var u=r/h,c=so(u/t,!0);h*=c}var d=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,f=[Math.round(Qw((n[0]-d)/h)*h+d),Math.round(Jw((n[1]-d)/h)*h+d)];Hh(f,n),this._stepLvl=l,this._interval=h,this._niceExtent=f},parse:function(t){return+ro(t)}});f(["contain","normalize"],function(t){ab.prototype[t]=function(e){return Kw[t].call(this,this.parse(e))}});var ob=[["hh:mm:ss",tb],["hh:mm:ss",5*tb],["hh:mm:ss",10*tb],["hh:mm:ss",15*tb],["hh:mm:ss",30*tb],["hh:mm\nMM-dd",eb],["hh:mm\nMM-dd",5*eb],["hh:mm\nMM-dd",10*eb],["hh:mm\nMM-dd",15*eb],["hh:mm\nMM-dd",30*eb],["hh:mm\nMM-dd",ib],["hh:mm\nMM-dd",2*ib],["hh:mm\nMM-dd",6*ib],["hh:mm\nMM-dd",12*ib],["MM-dd\nyyyy",nb],["MM-dd\nyyyy",2*nb],["MM-dd\nyyyy",3*nb],["MM-dd\nyyyy",4*nb],["MM-dd\nyyyy",5*nb],["MM-dd\nyyyy",6*nb],["week",7*nb],["MM-dd\nyyyy",10*nb],["week",14*nb],["week",21*nb],["month",31*nb],["week",42*nb],["month",62*nb],["week",70*nb],["quarter",95*nb],["month",31*nb*4],["month",31*nb*5],["half-year",380*nb/2],["month",31*nb*8],["month",31*nb*10],["year",380*nb]];ab.create=function(t){return new ab({useUTC:t.ecModel.get("useUTC")})};var sb=Rh.prototype,lb=Yw.prototype,hb=Ja,ub=$a,cb=Math.floor,db=Math.ceil,fb=Math.pow,pb=Math.log,gb=Rh.extend({type:"log",base:10,$constructor:function(){Rh.apply(this,arguments),this._originalScale=new Yw},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return p(lb.getTicks.call(this),function(n){var r=$a(fb(this.base,n));return r=n===e[0]&&t.__fixMin?iu(r,i[0]):r,r=n===e[1]&&t.__fixMax?iu(r,i[1]):r},this)},getLabel:lb.getLabel,scale:function(t){return t=sb.scale.call(this,t),fb(this.base,t)},setExtent:function(t,e){var i=this.base;t=pb(t)/pb(i),e=pb(e)/pb(i),lb.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=sb.getExtent.call(this);e[0]=fb(t,e[0]),e[1]=fb(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=iu(e[0],n[0])),i.__fixMax&&(e[1]=iu(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=pb(t[0])/pb(e),t[1]=pb(t[1])/pb(e),sb.unionExtent.call(this,t)},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},niceTicks:function(t){t=t||10;var e=this._extent,i=e[1]-e[0];if(!(1/0===i||0>=i)){var n=ao(i),r=t/i*n;for(.5>=r&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var a=[$a(db(e[0]/n)*n),$a(cb(e[1]/n)*n)];this._interval=n,this._niceExtent=a}},niceExtent:function(t){lb.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});f(["contain","normalize"],function(t){gb.prototype[t]=function(e){return e=pb(e)/pb(this.base),sb[t].call(this,e)}}),gb.create=function(){return new gb};var vb={getMin:function(t){var e=this.option,i=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=i&&"dataMin"!==i&&"function"!=typeof i&&!C(i)&&(i=this.axis.scale.parse(i)),i},getMax:function(t){var e=this.option,i=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=i&&"dataMax"!==i&&"function"!=typeof i&&!C(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null!=t.rangeStart||null!=t.rangeEnd?!1:!t.scale},getCoordSysModel:V,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},mb=$r({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+r,n+a),t.lineTo(i-r,n+a),t.closePath()}}),yb=$r({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+r,n),t.lineTo(i,n+a),t.lineTo(i-r,n),t.closePath()}}),xb=$r({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,r=e.width/5*3,a=Math.max(r,e.height),o=r/2,s=o*o/(a-o),l=n-a+o+s,h=Math.asin(s/o),u=Math.cos(h)*o,c=Math.sin(h),d=Math.cos(h),f=.6*o,p=.7*o;t.moveTo(i-u,l+s),t.arc(i,l,o,Math.PI-h,2*Math.PI+h),t.bezierCurveTo(i+u-c*f,l+s+d*f,i,n-p,i,n),t.bezierCurveTo(i,n-p,i-u+c*f,l+s+d*f,i-u,l+s),t.closePath()}}),_b=$r({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.height,n=e.width,r=e.x,a=e.y,o=n/3*2;t.moveTo(r,a),t.lineTo(r+o,a+i),t.lineTo(r,a+i/4*3),t.lineTo(r-o,a+i),t.lineTo(r,a),t.closePath()}}),wb={line:ky,rect:Dy,roundRect:Dy,square:Dy,circle:_y,diamond:yb,pin:xb,arrow:_b,triangle:mb},bb={line:function(t,e,i,n,r){r.x1=t,r.y1=e+n/2,r.x2=t+i,r.y2=e+n/2},rect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r.height=n},roundRect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r.height=n,r.r=Math.min(i,n)/4},square:function(t,e,i,n,r){var a=Math.min(i,n);r.x=t,r.y=e,r.width=a,r.height=a},circle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.r=Math.min(i,n)/2},diamond:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r.height=n},pin:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r.height=n},arrow:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r.height=n},triangle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r.height=n}},Sb={};f(wb,function(t,e){Sb[e]=new t});var Mb=$r({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style,e=this.shape;"pin"===e.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,i){var n=e.symbolType,r=Sb[n];"none"!==e.symbolType&&(r||(n="rect",r=Sb[n]),bb[n](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,i))}}),Ib={isDimensionStacked:Ph,enableDataStack:kh,getStackedDimension:Lh},Tb=(Object.freeze||Object)({createList:pu,getLayoutRect:bo,dataStack:Ib,createScale:gu,mixinAxisModelCommonMethods:vu,completeDimensions:Ch,createDimensions:Vw,createSymbol:fu}),Cb=1e-8;xu.prototype={constructor:xu,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],r=[],a=[],o=this.geometries,s=0;sn;n++)if("polygon"===i[n].type){var a=i[n].exterior,o=i[n].interiors;if(yu(a,t[0],t[1])){for(var s=0;s<(o?o.length:0);s++)if(yu(o[s]))continue t;return!0}}return!1},transformTo:function(t,e,i,n){var r=this.getBoundingRect(),a=r.width/r.height;i?n||(n=i/a):i=a*n;for(var o=new gi(t,e,i,n),s=r.calculateTransform(o),l=this.geometries,h=0;h0}),function(t){var e=t.properties,i=t.geometry,n=i.coordinates,r=[];"Polygon"===i.type&&r.push({type:"polygon",exterior:n[0],interiors:n.slice(1)}),"MultiPolygon"===i.type&&f(n,function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var a=new xu(e.name,r,e.cp);return a.properties=e,a})},Db=jn(),kb=[0,1],Pb=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};Pb.prototype={constructor:Pb,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&n>=t},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return to(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var i=this._extent;i[0]=t,i[1]=e},dataToCoord:function(t,e){var i=this._extent,n=this.scale;return t=n.normalize(t),this.onBand&&"ordinal"===n.type&&(i=i.slice(),Bu(i,n.count())),qa(t,kb,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&(i=i.slice(),Bu(i,n.count()));var r=qa(t,i,kb,e);return this.scale.scale(r)},pointToData:function(){},getTicksCoords:function(t){t=t||{};var e=t.tickModel||this.getTickModel(),i=Su(this,e),n=i.ticks,r=p(n,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),a=e.get("alignWithLabel");return Nu(this,r,i.tickCategoryInterval,a,t.clamp),r},getViewLabels:function(){return bu(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var t=this._extent,e=this.scale.getExtent(),i=e[1]-e[0]+(this.onBand?1:0);0===i&&(i=1);var n=Math.abs(t[1]-t[0]);return Math.abs(n)/i},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return Lu(this)}};var Lb=Ab,Ob={};f(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){Ob[t]=pg[t]});var zb={};f(["extendShape","extendPath","makePath","makeImage","mergePath","resizePath","createIcon","setHoverStyle","setLabelStyle","setTextStyle","setText","getFont","updateProps","initProps","getTransform","clipPointsByRect","clipRectByRect","Group","Image","Text","Circle","Sector","Ring","Polygon","Polyline","Rect","Line","BezierCurve","Arc","IncrementalDisplayable","CompoundPath","LinearGradient","RadialGradient","BoundingRect"],function(t){zb[t]=Yy[t]});var Eb=function(t){this._axes={},this._dimList=[],this.name=t||""};Eb.prototype={constructor:Eb,type:"cartesian",getAxis:function(t){return this._axes[t]},getAxes:function(){return p(this._dimList,Fu,this)},getAxesByScale:function(t){return t=t.toLowerCase(),v(this.getAxes(),function(e){return e.scale.type===t})},addAxis:function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},dataToCoord:function(t){return this._dataCoordConvert(t,"dataToCoord")},coordToData:function(t){return this._dataCoordConvert(t,"coordToData")},_dataCoordConvert:function(t,e){for(var i=this._dimList,n=t instanceof Array?[]:{},r=0;re[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},u(Rb,Pb);var Bb={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},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)"]}}},Nb={};Nb.categoryAxis=r({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Bb),Nb.valueAxis=r({boundaryGap:[0,0],splitNumber:5},Bb),Nb.timeAxis=s({scale:!0,min:"dataMin",max:"dataMax"},Nb.valueAxis),Nb.logAxis=s({scale:!0,logBase:10},Nb.valueAxis);var Fb=["value","category","time","log"],Vb=function(t,e,i,n){f(Fb,function(o){e.extend({type:t+"Axis."+o,mergeDefaultAndTheme:function(e,n){var a=this.layoutMode,s=a?Mo(e):{},l=n.getTheme();r(e,l.get(o+"Axis")),r(e,this.getDefaultOption()),e.type=i(t,e),a&&So(e,s,a)},optionUpdated:function(){var t=this.option;"category"===t.type&&(this.__ordinalMeta=Bh.createByAxisModel(this))},getCategories:function(t){var e=this.option;return"category"===e.type?t?e.data:this.__ordinalMeta.categories:void 0},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:a([{},Nb[o+"Axis"],n],!0)})}),yx.registerSubTypeDefaulter(t+"Axis",x(i,t))},Wb=yx.extend({type:"cartesian2dAxis",axis:null,init:function(){Wb.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){Wb.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){Wb.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});r(Wb.prototype,vb);var Gb={offset:0};Vb("x",Wb,Wu,Gb),Vb("y",Wb,Wu,Gb),yx.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var Hb=Hu.prototype;Hb.type="grid",Hb.axisPointerEnabled=!0,Hb.getRect=function(){return this._rect},Hb.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),f(i.x,function(t){au(t.scale,t.model)}),f(i.y,function(t){au(t.scale,t.model)});var n={};f(i.x,function(t){Zu(i,"y",t,n)}),f(i.y,function(t){Zu(i,"x",t,n)}),this.resize(this.model,e)},Hb.resize=function(t,e,i){function n(){f(a,function(t){var e=t.isHorizontal(),i=e?[0,r.width]:[0,r.height],n=t.inverse?1:0;t.setExtent(i[n],i[1-n]),Yu(t,e?r.x:r.y)})}var r=bo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=r;var a=this._axesList;n(),!i&&t.get("containLabel")&&(f(a,function(t){if(!t.model.get("axisLabel.inside")){var e=uu(t);if(e){var i=t.isHorizontal()?"height":"width",n=t.model.get("axisLabel.margin");r[i]-=e[i]+n,"top"===t.position?r.y+=e.height+n:"left"===t.position&&(r.x+=e.width+n)}}}),n())},Hb.getAxis=function(t,e){var i=this._axesMap[t];if(null!=i){if(null==e)for(var n in i)if(i.hasOwnProperty(n))return i[n];return i[e]}},Hb.getAxes=function(){return this._axesList.slice()},Hb.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}S(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var n=0,r=this._coordsList;nt&&(t=e),t}});var Yb=dm([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),jb={getBarItemStyle:function(t){var e=Yb(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},qb=["itemStyle","barBorderWidth"];o(Wa.prototype,jb),ah({type:"bar",render:function(t,e,i){this._updateDrawMode(t);var n=t.get("coordinateSystem");return("cartesian2d"===n||"polar"===n)&&(this._isLargeDraw?this._renderLarge(t,e,i):this._renderNormal(t,e,i)),this.group},incrementalPrepareRender:function(t){this._clear(),this._updateDrawMode(t)},incrementalRender:function(t,e){this._incrementalRenderLarge(t,e)},_updateDrawMode:function(t){var e=t.pipelineContext.large;(null==this._isLargeDraw||e^this._isLargeDraw)&&(this._isLargeDraw=e,this._clear())},_renderNormal:function(t){var e,i=this.group,n=t.getData(),r=this._data,a=t.coordinateSystem,o=a.getBaseAxis();"cartesian2d"===a.type?e=o.isHorizontal():"polar"===a.type&&(e="angle"===o.dim);var s=t.isAnimationEnabled()?t:null;n.diff(r).add(function(r){if(n.hasValue(r)){var o=n.getItemModel(r),l=$b[a.type](n,r,o),h=Ub[a.type](n,r,o,l,e,s);n.setItemGraphicEl(r,h),i.add(h),tc(h,n,r,o,l,t,e,"polar"===a.type)}}).update(function(o,l){var h=r.getItemGraphicEl(l);if(!n.hasValue(o))return void i.remove(h);var u=n.getItemModel(o),c=$b[a.type](n,o,u);h?La(h,{shape:c},s,o):h=Ub[a.type](n,o,u,c,e,s,!0),n.setItemGraphicEl(o,h),i.add(h),tc(h,n,o,u,c,t,e,"polar"===a.type)}).remove(function(t){var e=r.getItemGraphicEl(t);"cartesian2d"===a.type?e&&Qu(t,s,e):e&&Ju(t,s,e)}).execute(),this._data=n},_renderLarge:function(t){this._clear(),ic(t,this.group)},_incrementalRenderLarge:function(t,e){ic(e,this.group,!0)},dispose:V,remove:function(t){this._clear(t)},_clear:function(t){var e=this.group,i=this._data;t&&t.get("animation")&&i&&!this._isLargeDraw?i.eachItemGraphicEl(function(e){"sector"===e.type?Ju(e.dataIndex,t,e):Qu(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var Ub={cartesian2d:function(t,e,i,n,r,a,s){var l=new Dy({shape:o({},n)});if(a){var h=l.shape,u=r?"height":"width",c={};h[u]=0,c[u]=n[u],Yy[s?"updateProps":"initProps"](l,{shape:c},a,e)}return l},polar:function(t,e,i,n,r,a,o){var l=n.startAngle0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*r/2,y:n.y+o*r/2,width:n.width-a*r,height:n.height-o*r}},polar:function(t,e){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}},Kb=Fr.extend({type:"largeBar",shape:{points:[]},buildPath:function(t,e){for(var i=e.points,n=this.__startPoint,r=this.__valueIdx,a=0;ah[1]?-1:1,c=["start"===r?h[0]-u*l:"end"===r?h[1]+u*l:(h[0]+h[1])/2,uc(r)?t.labelOffset+a*l:0],d=e.get("nameRotate");null!=d&&(d=d*Qb/180);var f;uc(r)?n=eS(t.rotation,null!=d?d:t.rotation,a):(n=ac(t,r,d||0,h),f=t.axisNameAvailableWidth,null!=f&&(f=Math.abs(f/Math.sin(n.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},v=g.ellipsis,m=A(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=v&&null!=m?hx(i,m,p,v,{minChar:2,placeholder:g.placeholder}):i,x=e.get("tooltip",!0),_=e.mainType,w={componentType:_,name:i,$vars:["name"]};w[_+"Index"]=e.componentIndex;var b=new xy({anid:"name",__fullText:i,__truncatedText:y,position:c,rotation:n.rotation,silent:oc(e),z2:1,tooltip:x&&x.show?o({content:i,formatter:function(){return i},formatterParams:w},x):null});ba(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:n.textAlign,textVerticalAlign:n.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=rc(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},eS=Jb.innerTextLayout=function(t,e,i){var n,r,a=io(e-t);return no(a)?(r=i>0?"top":"bottom",n="center"):no(a-Qb)?(r=i>0?"bottom":"top",n="center"):(r="middle",n=a>0&&Qb>a?i>0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:r}},iS=f,nS=x,rS=nh({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&xc(t),rS.superApply(this,"render",arguments),Mc(this,t,e,i,n,!0)},updateAxisPointer:function(t,e,i,n){Mc(this,t,e,i,n,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),rS.superApply(this,"remove",arguments)},dispose:function(t,e){Ic(this,e),rS.superApply(this,"dispose",arguments)}}),aS=[];rS.registerAxisPointerClass=function(t,e){aS[t]=e},rS.getAxisPointerClass=function(t){return t&&aS[t]};var oS=["axisLine","axisTickLabel","axisName"],sS=["splitArea","splitLine"],lS=rS.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,n){this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new lv,this.group.add(this._axisGroup),t.get("show")){var a=t.getCoordSysModel(),o=Tc(a,t),s=new Jb(t,o);f(oS,s.add,s),this._axisGroup.add(s.getGroup()),f(sS,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),Ba(r,this._axisGroup,t),lS.superCall(this,"render",t,e,i,n)}},remove:function(){this._splitAreaColors=null},_splitLine:function(t,e){var i=t.axis;if(!i.scale.isBlank()){var n=t.getModel("splitLine"),r=n.getModel("lineStyle"),a=r.get("color");a=_(a)?a:[a];for(var o=e.coordinateSystem.getRect(),l=i.isHorizontal(),h=0,u=i.getTicksCoords({tickModel:n}),c=[],d=[],f=r.getLineStyle(),p=0;p0&&Gc(i[r-1]);r--);for(;r>n&&Gc(i[n]);n++);}for(;r>n;)n+=Hc(t,i,n,r,r,1,a.min,a.max,e.smooth,e.smoothMonotone,e.connectNulls)+1}}),IS=Fr.extend({type:"ec-polygon",shape:{points:[],stackedOnPoints:[],smooth:0,stackedOnSmooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},brush:by(Fr.prototype.brush),buildPath:function(t,e){var i=e.points,n=e.stackedOnPoints,r=0,a=i.length,o=e.smoothMonotone,s=Yc(i,e.smoothConstraint),l=Yc(n,e.smoothConstraint);if(e.connectNulls){for(;a>0&&Gc(i[a-1]);a--);for(;a>r&&Gc(i[r]);r++);}for(;a>r;){var h=Hc(t,i,r,a,a,1,s.min,s.max,e.smooth,o,e.connectNulls);Hc(t,n,r+h-1,h,a,-1,l.min,l.max,e.stackedOnSmooth,o,e.connectNulls),r+=h+1,t.closePath()}}});Bs.extend({type:"line",init:function(){var t=new lv,e=new zc;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var n=t.coordinateSystem,r=this.group,a=t.getData(),o=t.getModel("lineStyle"),l=t.getModel("areaStyle"),h=a.mapArray(a.getItemLayout),u="polar"===n.type,c=this._coordSys,d=this._symbolDraw,f=this._polyline,p=this._polygon,g=this._lineGroup,v=t.get("animation"),m=!l.isEmpty(),y=l.get("origin"),x=Nc(n,a,y),_=$c(n,a,x),w=t.get("showSymbol"),b=w&&!u&&id(t,a,n),S=this._data;S&&S.eachItemGraphicEl(function(t,e){t.__temp&&(r.remove(t),S.setItemGraphicEl(e,null))}),w||d.remove(),r.add(g);var M=!u&&t.get("step");f&&c.type===n.type&&M===this._step?(m&&!p?p=this._newPolygon(h,_,n,v):p&&!m&&(g.remove(p),p=this._polygon=null),g.setClipPath(Jc(n,!1,!1,t)),w&&d.updateData(a,{isIgnore:b,clipShape:Jc(n,!1,!0,t)}),a.eachItemGraphicEl(function(t){t.stopAnimation(!0)}),jc(this._stackedOnPoints,_)&&jc(this._points,h)||(v?this._updateAnimation(a,_,n,i,M,y):(M&&(h=td(h,n,M),_=td(_,n,M)),f.setShape({points:h}),p&&p.setShape({points:h,stackedOnPoints:_})))):(w&&d.updateData(a,{isIgnore:b,clipShape:Jc(n,!1,!0,t)}),M&&(h=td(h,n,M),_=td(_,n,M)),f=this._newPolyline(h,n,v),m&&(p=this._newPolygon(h,_,n,v)),g.setClipPath(Jc(n,!0,!1,t)));var I=ed(a,n)||a.getVisual("color");f.useStyle(s(o.getLineStyle(),{fill:"none",stroke:I,lineJoin:"bevel"}));var T=t.get("smooth");if(T=qc(t.get("smooth")),f.setShape({smooth:T,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),p){var C=a.getCalculationInfo("stackedOnSeries"),A=0;p.useStyle(s(l.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel"})),C&&(A=qc(C.get("smooth"))),p.setShape({smooth:T,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=a,this._coordSys=n,this._stackedOnPoints=_,this._points=h,this._step=M,this._valueOrigin=y},dispose:function(){},highlight:function(t,e,i,n){var r=t.getData(),a=Yn(r,n);if(!(a instanceof Array)&&null!=a&&a>=0){var o=r.getItemGraphicEl(a);if(!o){var s=r.getItemLayout(a);if(!s)return;o=new Cc(r,a),o.position=s,o.setZ(t.get("zlevel"),t.get("z")),o.ignore=isNaN(s[0])||isNaN(s[1]),o.__temp=!0,r.setItemGraphicEl(a,o),o.stopSymbolAnimation(!0),this.group.add(o)}o.highlight()}else Bs.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var r=t.getData(),a=Yn(r,n);if(null!=a&&a>=0){var o=r.getItemGraphicEl(a);o&&(o.__temp?(r.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay())}else Bs.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new MS({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new IS({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_updateAnimation:function(t,e,i,n,r,a){var o=this._polyline,s=this._polygon,l=t.hostModel,h=vS(this._data,t,this._stackedOnPoints,e,this._coordSys,i,this._valueOrigin,a),u=h.current,c=h.stackedOnCurrent,d=h.next,f=h.stackedOnNext;r&&(u=td(h.current,i,r),c=td(h.stackedOnCurrent,i,r),d=td(h.next,i,r),f=td(h.stackedOnNext,i,r)),o.shape.__points=h.current,o.shape.points=u,La(o,{shape:{points:d}},l),s&&(s.setShape({points:u,stackedOnPoints:c}),La(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=h.status,v=0;ve&&(e=t[i]);return isFinite(e)?e:0/0},min:function(t){for(var e=1/0,i=0;i1){var h;"string"==typeof i?h=AS[i]:"function"==typeof i&&(h=i),h&&t.setData(e.downSample(e.mapDimension(a.dim),1/l,h,DS))}}}}};Jl(TS("line","circle","line")),Ql(CS("line")),jl(ow.PROCESSOR.STATISTIC,kS("line"));var PS=function(t,e,i){e=_(e)&&{coordDimensions:e}||o({},e);var n=t.getSource(),r=Vw(n,e),a=new Bw(r,t);return a.initData(n,i),a},LS={updateSelectedMap:function(t){this._targetList=_(t)?t.slice():[],this._selectTargetMap=g(t||[],function(t,e){return t.set(e.name,e),t},N())},select:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t),n=this.get("selectedMode");"single"===n&&this._selectTargetMap.each(function(t){t.selected=!1}),i&&(i.selected=!0)},unSelect:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);i&&(i.selected=!1)},toggleSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return null!=i?(this[i.selected?"unSelect":"select"](t,e),i.selected):void 0},isSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return i&&i.selected}},OS=rh({type:"series.pie",init:function(t){OS.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this.updateSelectedMap(this._createSelectableList()),this._defaultLabelLine(t)},mergeOption:function(t){OS.superCall(this,"mergeOption",t),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(){return PS(this,["value"])},_createSelectableList:function(){for(var t=this.getRawData(),e=t.mapDimension("value"),i=[],n=0,r=t.count();r>n;n++)i.push({name:t.getName(n),value:t.get(e,n),selected:Ms(t,n,"selected")});return i},getDataParams:function(t){var e=this.getData(),i=OS.superCall(this,"getDataParams",t),n=[];return e.each(e.mapDimension("value"),function(t){n.push(t)}),i.percent=eo(n,t,e.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},_defaultLabelLine:function(t){Fn(t,"labelLine",["show"]);var e=t.labelLine,i=t.emphasis.labelLine;e.show=e.show&&t.label.show,i.show=i.show&&t.emphasis.label.show},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,selectedOffset:10,hoverOffset:10,avoidLabelOverlap:!0,percentPrecision:2,stillShowZeroSum:!0,label:{rotate:!1,show:!0,position:"outer"},labelLine:{show:!0,length:15,length2:15,smooth:!1,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},animationType:"expansion",animationEasing:"cubicOut"}});c(OS,LS);var zS=od.prototype;zS.updateData=function(t,e,i){function n(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r+l.get("hoverOffset")}},300,"elasticOut")}function r(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r}},300,"elasticOut")}var a=this.childAt(0),l=t.hostModel,h=t.getItemModel(e),u=t.getItemLayout(e),c=o({},u);if(c.label=null,i){a.setShape(c);var d=l.getShallow("animationType");"scale"===d?(a.shape.r=u.r0,Oa(a,{shape:{r:u.r}},l,e)):(a.shape.endAngle=u.startAngle,La(a,{shape:{endAngle:u.endAngle}},l,e))}else La(a,{shape:c},l,e);var f=t.getItemVisual(e,"color");a.useStyle(s({lineJoin:"bevel",fill:f},h.getModel("itemStyle").getItemStyle())),a.hoverStyle=h.getModel("emphasis.itemStyle").getItemStyle();var p=h.getShallow("cursor");p&&a.attr("cursor",p),ad(this,t.getItemLayout(e),l.isSelected(null,e),l.get("selectedOffset"),l.get("animation")),a.off("mouseover").off("mouseout").off("emphasis").off("normal"),h.get("hoverAnimation")&&l.isAnimationEnabled()&&a.on("mouseover",n).on("mouseout",r).on("emphasis",n).on("normal",r),this._updateLabel(t,e),xa(this)},zS._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),r=t.hostModel,a=t.getItemModel(e),o=t.getItemLayout(e),s=o.label,l=t.getItemVisual(e,"color");La(i,{shape:{points:s.linePoints||[[s.x,s.y],[s.x,s.y],[s.x,s.y]]}},r,e),La(n,{style:{x:s.x,y:s.y}},r,e),n.attr({rotation:s.rotation,origin:[s.x,s.y],z2:10});var h=a.getModel("label"),u=a.getModel("emphasis.label"),c=a.getModel("labelLine"),d=a.getModel("emphasis.labelLine"),l=t.getItemVisual(e,"color");wa(n.style,n.hoverStyle={},h,u,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:l,useInsideStyle:!!s.inside},{textAlign:s.textAlign,textVerticalAlign:s.verticalAlign,opacity:t.getItemVisual(e,"opacity")}),n.ignore=n.normalIgnore=!h.get("show"),n.hoverIgnore=!u.get("show"),i.ignore=i.normalIgnore=!c.get("show"),i.hoverIgnore=!d.get("show"),i.setStyle({stroke:l,opacity:t.getItemVisual(e,"opacity")}),i.setStyle(c.getModel("lineStyle").getLineStyle()),i.hoverStyle=d.getModel("lineStyle").getLineStyle();var f=c.get("smooth");f&&f===!0&&(f=.4),i.setShape({smooth:f})},u(od,lv);var ES=(Bs.extend({type:"pie",init:function(){var t=new lv;this._sectorGroup=t},render:function(t,e,i,n){if(!n||n.from!==this.uid){var r=t.getData(),a=this._data,o=this.group,s=e.get("animation"),l=!a,h=t.get("animationType"),u=x(rd,this.uid,t,s,i),c=t.get("selectedMode");if(r.diff(a).add(function(t){var e=new od(r,t);l&&"scale"!==h&&e.eachChild(function(t){t.stopAnimation(!0)}),c&&e.on("click",u),r.setItemGraphicEl(t,e),o.add(e)}).update(function(t,e){var i=a.getItemGraphicEl(e);i.updateData(r,t),i.off("click"),c&&i.on("click",u),o.add(i),r.setItemGraphicEl(t,i)}).remove(function(t){var e=a.getItemGraphicEl(t);o.remove(e)}).execute(),s&&l&&r.count()>0&&"scale"!==h){var d=r.getItemLayout(0),f=Math.max(i.getWidth(),i.getHeight())/2,p=y(o.removeClipPath,o);o.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}else o.removeClipPath();this._data=r}},dispose:function(){},_createClipPath:function(t,e,i,n,r,a,o){var s=new Sy({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:r}});return Oa(s,{shape:{endAngle:n+(r?1:-1)*Math.PI*2}},o,a),s},containPoint:function(t,e){var i=e.getData(),n=i.getItemLayout(0);if(n){var r=t[0]-n.cx,a=t[1]-n.cy,o=Math.sqrt(r*r+a*a);return o<=n.r&&o>=n.r0}}}),function(t,e){f(e,function(e){e.update="updateView",Ul(e,function(i,n){var r={};return n.eachComponent({mainType:"series",subType:t,query:i},function(t){t[e.method]&&t[e.method](i.name,i.dataIndex);var n=t.getData();n.each(function(e){var i=n.getName(e);r[i]=t.isSelected(i)||!1})}),{name:i.name,selected:r}})})}),RS=function(t){return{getTargetSeries:function(e){var i={},n=N();return e.eachSeriesByType(t,function(t){t.__paletteScope=i,n.set(t.uid,t)}),n},reset:function(t){var e=t.getRawData(),i={},n=t.getData();n.each(function(t){var e=n.getRawIndex(t);i[e]=t}),e.each(function(r){var a=i[r],o=null!=a&&n.getItemVisual(a,"color",!0);if(o)e.setItemVisual(r,"color",o);else{var s=e.getItemModel(r),l=s.get("itemStyle.color")||t.getColorFromPalette(e.getName(r)||r+"",t.__paletteScope,e.count());e.setItemVisual(r,"color",l),null!=a&&n.setItemVisual(a,"color",l)}})}}},BS=function(t,e,i,n){var r,a,o=t.getData(),s=[],l=!1;o.each(function(i){var n,h,u,c,d=o.getItemLayout(i),f=o.getItemModel(i),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),v=f.getModel("labelLine"),m=v.get("length"),y=v.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);r=d.cx,a=d.cy;var b="inside"===g||"inner"===g;if("center"===g)n=d.cx,h=d.cy,c="center";else{var S=(b?(d.r+d.r0)/2*_:d.r*_)+r,M=(b?(d.r+d.r0)/2*w:d.r*w)+a;if(n=S+3*_,h=M+3*w,!b){var I=S+_*(m+e-d.r),T=M+w*(m+e-d.r),C=I+(0>_?-1:1)*y,A=T;n=C+(0>_?-5:5),h=A,u=[[S,M],[I,T],[C,A]]}c=b?"center":_>0?"left":"right"}var D=p.getFont(),k=p.get("rotate")?0>_?-x+Math.PI:-x:0,P=t.getFormattedLabel(i,"normal")||o.getName(i),L=Ei(P,D,c,"top");l=!!k,d.label={x:n,y:h,position:g,height:L.height,len:m,len2:y,linePoints:u,textAlign:c,verticalAlign:"middle",rotation:k,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&ld(s,r,a,e,i,n)},NS=2*Math.PI,FS=Math.PI/180,VS=function(t,e,i){e.eachSeriesByType(t,function(t){var e=t.getData(),n=e.mapDimension("value"),r=t.get("center"),a=t.get("radius");_(a)||(a=[0,a]),_(r)||(r=[r,r]);var o=i.getWidth(),s=i.getHeight(),l=Math.min(o,s),h=Ua(r[0],o),u=Ua(r[1],s),c=Ua(a[0],l/2),d=Ua(a[1],l/2),f=-t.get("startAngle")*FS,p=t.get("minAngle")*FS,g=0;e.each(n,function(t){!isNaN(t)&&g++});var v=e.getSum(n),m=Math.PI/(v||g)*2,y=t.get("clockwise"),x=t.get("roseType"),w=t.get("stillShowZeroSum"),b=e.getDataExtent(n);b[0]=0;var S=NS,M=0,I=f,T=y?1:-1;if(e.each(n,function(t,i){var n;if(isNaN(t))return void e.setItemLayout(i,{angle:0/0,startAngle:0/0,endAngle:0/0,clockwise:y,cx:h,cy:u,r0:c,r:x?0/0:d});n="area"!==x?0===v&&w?m:t*m:NS/g,p>n?(n=p,S-=p):M+=t;var r=I+T*n;e.setItemLayout(i,{angle:n,startAngle:I,endAngle:r,clockwise:y,cx:h,cy:u,r0:c,r:x?qa(t,b,[c,d]):d}),I=r}),NS>S&&g)if(.001>=S){var C=NS/g;e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i);n.angle=C,n.startAngle=f+T*i*C,n.endAngle=f+T*(i+1)*C}})}else m=S/M,I=f,e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i),r=n.angle===p?p:t*m;n.startAngle=I,n.endAngle=I+T*r,I+=T*r}});BS(t,d,o,s)})},WS=function(t){return{seriesType:t,reset:function(t,e){var i=e.findComponents({mainType:"legend"});if(i&&i.length){var n=t.getData();n.filterSelf(function(t){for(var e=n.getName(t),r=0;rn[1]&&n.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:n[1],r0:n[0]},api:{coord:y(function(n){var r=e.dataToRadius(n[0]),a=i.dataToAngle(n[1]),o=t.coordToPoint([r,a]);return o.push(r,a*Math.PI/180),o}),size:y(dd,t)}}},YS=function(t){var e=t.getRect(),i=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:i.start,end:i.end,weeks:i.weeks,dayCount:i.allDay}},api:{coord:function(e,i){return t.dataToPoint(e,i)}}}},jS=["itemStyle"],qS=["emphasis","itemStyle"],US=["label"],$S=["emphasis","label"],KS="e\x00\x00",QS={cartesian2d:GS,geo:HS,singleAxis:ZS,polar:XS,calendar:YS};o_.extend({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,useTransform:!0},getInitialData:function(){return Oh(this.getSource(),this)},getDataParams:function(t,e,i){var n=o_.prototype.getDataParams.apply(this,arguments);return i&&(n.info=i.info),n}}),Bs.extend({type:"custom",_data:null,render:function(t,e,i,n){var r=this._data,a=t.getData(),o=this.group,s=vd(t,a,e,i);a.diff(r).add(function(e){yd(null,e,s(e,n),t,o,a)}).update(function(e,i){var l=r.getItemGraphicEl(i);yd(l,e,s(e,n),t,o,a)}).remove(function(t){var e=r.getItemGraphicEl(t);e&&o.remove(e)}).execute(),this._data=a},incrementalPrepareRender:function(){this.group.removeAll(),this._data=null},incrementalRender:function(t,e,i,n,r){function a(t){t.isGroup||(t.incremental=!0,t.useHoverLayer=!0)}for(var o=e.getData(),s=vd(e,o,i,n),l=t.start;l=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}});Ul("legendToggleSelect","legendselectchanged",x(Ad,"toggleSelected")),Ul("legendSelect","legendselected",x(Ad,"select")),Ul("legendUnSelect","legendunselected",x(Ad,"unSelect"));var tM=x,eM=f,iM=lv,nM=nh({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new iM),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(t,e,i){if(this.resetInner(),t.get("show",!0)){var n=t.get("align");n&&"auto"!==n||(n="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left"),this.renderInner(n,t,e,i);var r=t.getBoxLayoutParams(),a={width:i.getWidth(),height:i.getHeight()},o=t.get("padding"),l=bo(r,a,o),h=this.layoutInner(t,n,l),u=bo(s({width:h.width,height:h.height},r),a,o);this.group.attr("position",[u.x-h.x,u.y-h.y]),this.group.add(this._backgroundEl=Dd(h,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,i,n){var r=this.getContentGroup(),a=N(),o=e.get("selectedMode"),s=[];i.eachRawSeries(function(t){!t.get("legendHoverLink")&&s.push(t.id)}),eM(e.getData(),function(l,h){var u=l.get("name");if(!this.newlineDisabled&&(""===u||"\n"===u))return void r.add(new iM({newline:!0}));var c=i.getSeriesByName(u)[0];if(!a.get(u))if(c){var d=c.getData(),f=d.getVisual("color");"function"==typeof f&&(f=f(c.getDataParams(0)));var p=d.getVisual("legendSymbol")||"roundRect",g=d.getVisual("symbol"),v=this._createItem(u,h,l,e,p,g,t,f,o);v.on("click",tM(kd,u,n)).on("mouseover",tM(Pd,c.name,null,n,s)).on("mouseout",tM(Ld,c.name,null,n,s)),a.set(u,!0)}else i.eachRawSeries(function(i){if(!a.get(u)&&i.legendDataProvider){var r=i.legendDataProvider(),c=r.indexOfName(u);if(0>c)return;var d=r.getItemVisual(c,"color"),f="roundRect",p=this._createItem(u,h,l,e,f,null,t,d,o);p.on("click",tM(kd,u,n)).on("mouseover",tM(Pd,null,u,n,s)).on("mouseout",tM(Ld,null,u,n,s)),a.set(u,!0)}},this)},this)},_createItem:function(t,e,i,n,r,a,s,l,h){var u=n.get("itemWidth"),c=n.get("itemHeight"),d=n.get("inactiveColor"),f=n.get("symbolKeepAspect"),p=n.isSelected(t),g=new iM,v=i.getModel("textStyle"),m=i.get("icon"),y=i.getModel("tooltip"),x=y.parentModel;if(r=m||r,g.add(fu(r,0,0,u,c,p?l:d,null==f?!0:f)),!m&&a&&(a!==r||"none"===a)){var _=.8*c;"none"===a&&(a="circle"),g.add(fu(a,(u-_)/2,(c-_)/2,_,_,p?l:d,null==f?!0:f))}var w="left"===s?u+5:-5,b=s,S=n.get("formatter"),M=t;"string"==typeof S&&S?M=S.replace("{name}",null!=t?t:""):"function"==typeof S&&(M=S(t)),g.add(new xy({style:ba({},v,{text:M,x:w,y:c/2,textFill:p?v.getTextColor():d,textAlign:b,textVerticalAlign:"middle"})}));var I=new Dy({shape:g.getBoundingRect(),invisible:!0,tooltip:y.get("show")?o({content:t,formatter:x.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:n.componentIndex,name:t,$vars:["name"]}},y.option):null});return g.add(I),g.eachChild(function(t){t.silent=!0}),I.silent=!h,this.getContentGroup().add(g),xa(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,i){var n=this.getContentGroup();gx(t.get("orient"),n,t.get("itemGap"),i.width,i.height);var r=n.getBoundingRect();return n.attr("position",[-r.x,-r.y]),this.group.getBoundingRect()}}),rM=function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;ii[s],f=[-u.x,-u.y];f[o]=n.position[o];var p=[0,0],g=[-c.x,-c.y],v=D(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var m=t.get("pageButtonPosition",!0);"end"===m?g[o]+=i[s]-c[s]:p[o]+=c[s]+v}g[1-o]+=u[l]/2-c[l]/2,n.attr("position",f),r.attr("position",p),a.attr("position",g);var y=this.group.getBoundingRect(),y={x:0,y:0};if(y[s]=d?i[s]:u[s],y[l]=Math.max(u[l],c[l]),y[h]=Math.min(0,c[h]+g[1-o]),r.__rectSize=i[s],d){var x={x:0,y:0};x[s]=Math.max(i[s]-c[s]-v,0),x[l]=y[l],r.setClipPath(new Dy({shape:x})),r.__rectSize=x[s]}else a.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var _=this._getPageInfo(t);return null!=_.pageIndex&&La(n,{position:_.contentPosition},d?t:!1),this._updatePageInfoView(t,_),y},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(t,e){var i=this._controllerGroup;f(["pagePrev","pageNext"],function(n){var r=null!=e[n+"DataIndex"],a=i.childOfName(n);a&&(a.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=r?"pointer":"default")});var n=i.childOfName("pageText"),r=t.get("pageFormatter"),a=e.pageIndex,o=null!=a?a+1:0,s=e.pageCount;n&&r&&n.setStyle("text",b(r)?r.replace("{current}",o).replace("{total}",s):r({current:o,total:s}))},_getPageInfo:function(t){function e(t){var e=t.getBoundingRect().clone();return e[f]+=t.position[u],e}var i,n,r,a,o=t.get("scrollDataIndex",!0),s=this.getContentGroup(),l=s.getBoundingRect(),h=this._containerGroup.__rectSize,u=t.getOrient().index,c=sM[u],d=sM[1-u],f=lM[u],p=s.position.slice();this._showController?s.eachChild(function(t){t.__legendDataIndex===o&&(a=t)}):a=s.childAt(0);var g=h?Math.ceil(l[c]/h):0;if(a){var v=a.getBoundingRect(),m=a.position[u]+v[f];p[u]=-m-l[f],i=Math.floor(g*(m+v[f]+h/2)/l[c]),i=l[c]&&g?Math.max(0,Math.min(g-1,i)):-1;var y={x:0,y:0};y[c]=h,y[d]=l[d],y[f]=-p[u]-l[f];var x,_=s.children();if(s.eachChild(function(t,i){var n=e(t);n.intersect(y)&&(null==x&&(x=i),r=t.__legendDataIndex),i===_.length-1&&n[f]+n[c]<=y[f]+y[c]&&(r=null)}),null!=x){var w=_[x],b=e(w);if(y[f]=b[f]+b[c]-y[c],0>=x&&b[f]>=y[f])n=null;else{for(;x>0&&e(_[x-1]).intersect(y);)x--;n=_[x].__legendDataIndex}}}return{contentPosition:p,pageIndex:i,pageCount:g,pagePrevDataIndex:n,pageNextDataIndex:r}}});Ul("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})});var uM=function(t,e){var i,n=[],r=t.seriesIndex;if(null==r||!(i=e.getSeriesByIndex(r)))return{point:[]};var a=i.getData(),o=Yn(a,t);if(null==o||0>o||_(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)n=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)n=l.dataToPoint(a.getValues(p(l.dimensions,function(t){return a.mapDimension(t)}),o,!0))||[];else if(s){var h=s.getBoundingRect().clone();h.applyTransform(s.transform),n=[h.x+h.width/2,h.y+h.height/2]}return{point:n,el:s}},cM=f,dM=x,fM=jn(),pM=function(t,e,i){var n=t.currTrigger,r=[t.x,t.y],a=t,o=t.dispatchAction||y(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Hd(r)&&(r=uM({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=Hd(r),h=a.axesInfo,u=s.axesInfo,c="leave"===n||Hd(r),d={},f={},p={list:[],map:{}},g={showPointer:dM(Rd,f),showTooltip:dM(Bd,p)};cM(s.coordSysMap,function(t,e){var i=l||t.containPoint(r);cM(s.coordSysAxesInfo[e],function(t){var e=t.axis,n=Wd(h,t);if(!c&&i&&(!h||n)){var a=n&&n.value;null!=a||l||(a=e.pointToData(r)),null!=a&&zd(t,a,g,!1,d)}})});var v={};return cM(u,function(t,e){var i=t.linkGroup;i&&!f[e]&&cM(i.axesInfo,function(e,n){var r=f[n];if(e!==t&&r){var a=r.value;i.mapper&&(a=t.axis.scale.parse(i.mapper(a,Gd(e),Gd(t)))),v[t.key]=a}})}),cM(v,function(t,e){zd(u[e],t,g,!0,d)}),Nd(f,u,d),Fd(p,r,t,o),Vd(u,o,i),d}},gM=(ih({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}}),jn()),vM=f,mM=nh({type:"axisPointer",render:function(t,e,i){var n=e.getComponent("tooltip"),r=t.get("triggerOn")||n&&n.get("triggerOn")||"mousemove|click";Zd("axisPointer",i,function(t,e,i){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){$d(e.getZr(),"axisPointer"),mM.superApply(this._model,"remove",arguments)},dispose:function(t,e){$d("axisPointer",e),mM.superApply(this._model,"dispose",arguments)}}),yM=jn(),xM=n,_M=y;Kd.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,i,n){var r=e.get("value"),a=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=i,n||this._lastValue!==r||this._lastStatus!==a){this._lastValue=r,this._lastStatus=a;var o=this._group,s=this._handle;if(!a||"hide"===a)return o&&o.hide(),void(s&&s.hide());o&&o.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,i);var h=l.graphicKey;h!==this._lastGraphicKey&&this.clear(i),this._lastGraphicKey=h;var u=this._moveAnimation=this.determineAnimation(t,e);if(o){var c=x(Qd,e,u);this.updatePointerEl(o,l,c,e),this.updateLabelEl(o,l,c,e)}else o=this._group=new lv,this.createPointerEl(o,l,t,e),this.createLabelEl(o,l,t,e),i.getZr().add(o);nf(o,e,!0),this._renderHandle(r)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var i=e.get("animation"),n=t.axis,r="category"===n.type,a=e.get("snap");if(!a&&!r)return!1;if("auto"===i||null==i){var o=this.animationThreshold;if(r&&n.getBandWidth()>o)return!0;if(a){var s=_c(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>o}return!1}return i===!0},makeElOption:function(){},createPointerEl:function(t,e){var i=e.pointer;if(i){var n=yM(t).pointerEl=new Yy[i.type](xM(e.pointer));t.add(n)}},createLabelEl:function(t,e,i,n){if(e.label){var r=yM(t).labelEl=new Dy(xM(e.label));t.add(r),tf(r,n)}},updatePointerEl:function(t,e,i){var n=yM(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var r=yM(t).labelEl;r&&(r.setStyle(e.label.style),i(r,{shape:e.label.shape,position:e.label.position}),tf(r,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,i=this._api.getZr(),n=this._handle,r=e.getModel("handle"),a=e.get("status");if(!r.get("show")||!a||"hide"===a)return n&&i.remove(n),void(this._handle=null);var o;this._handle||(o=!0,n=this._handle=Va(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Ig(t.event)},onmousedown:_M(this._onHandleDragMove,this,0,0),drift:_M(this._onHandleDragMove,this),ondragend:_M(this._onHandleDragEnd,this)}),i.add(n)),nf(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(r.getItemStyle(null,s));var l=r.get("size");_(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),Hs(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,o)}},_moveHandleToValue:function(t,e){Qd(this._axisPointerModel,!e&&this._moveAnimation,this._handle,ef(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(ef(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(ef(n)),yM(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){var t=this._handle;if(t){var e=this._payloadInfo,i=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:i.axis.dim,axisIndex:i.componentIndex}]})}},_onHandleDragEnd:function(){this._dragging=!1;var t=this._handle;if(t){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}},Kd.prototype.constructor=Kd,er(Kd);var wM=Kd.extend({makeElOption:function(t,e,i,n,r){var a=i.axis,o=a.grid,s=n.get("type"),l=df(o,a).getOtherAxis(a).getGlobalExtent(),h=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var u=rf(n),c=bM[s](a,h,l,u);c.style=u,t.graphicKey=c.type,t.pointer=c}var d=Tc(o.model,i);hf(e,t,d,i,n,r)},getHandleTransform:function(t,e,i){var n=Tc(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:lf(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i){var n=i.axis,r=n.grid,a=n.getGlobalExtent(!0),o=df(r,n).getOtherAxis(n).getGlobalExtent(),s="x"===n.dim?0:1,l=t.position;l[s]+=e[s],l[s]=Math.min(a[1],l[s]),l[s]=Math.max(a[0],l[s]);var h=(o[1]+o[0])/2,u=[h,h];u[s]=l[s];var c=[{verticalAlign:"middle"},{align:"center"}];return{position:l,rotation:t.rotation,cursorPoint:u,tooltipOption:c[s]}}}),bM={line:function(t,e,i,n){var r=uf([e,i[0]],[e,i[1]],ff(t));return ia({shape:r,style:n}),{type:"Line",shape:r}},shadow:function(t,e,i){var n=Math.max(1,t.getBandWidth()),r=i[1]-i[0];return{type:"Rect",shape:cf([e-n/2,i[0]],[n,r],ff(t))}}};rS.registerAxisPointerClass("CartesianAxisPointer",wM),Yl(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!_(e)&&(t.axisPointer.link=[e])}}),jl(ow.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=fc(t,e)}),Ul({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},pM),ih({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});var SM=f,MM=fo,IM=["","-webkit-","-moz-","-o-"],TM="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";mf.prototype={constructor:mf,_enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),i=t.style;"absolute"!==i.position&&"absolute"!==e.position&&(i.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText=TM+vf(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",e.style.pointerEvents=this._enterable?"auto":"none",this._show=!0},setContent:function(t){this.el.innerHTML=null==t?"":t},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el;return[t.clientWidth,t.clientHeight]},moveTo:function(t,e){var i,n=this._zr;n&&n.painter&&(i=n.painter.getViewportRootOffset())&&(t+=i.offsetLeft,e+=i.offsetTop);var r=this.el.style;r.left=t+"px",r.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(y(this.hide,this),t)):this.hide())},isShow:function(){return this._show},getOuterSize:function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var i=document.defaultView.getComputedStyle(this.el);i&&(t+=parseInt(i.paddingLeft,10)+parseInt(i.paddingRight,10)+parseInt(i.borderLeftWidth,10)+parseInt(i.borderRightWidth,10),e+=parseInt(i.paddingTop,10)+parseInt(i.paddingBottom,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10))}return{width:t,height:e}}},yf.prototype={constructor:yf,_enterable:!0,update:function(){},show:function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.attr("show",!0),this._show=!0},setContent:function(t,e,i){this.el&&this._zr.remove(this.el);for(var n={},r=t,a="{marker",o="|}",s=r.indexOf(a);s>=0;){var l=r.indexOf(o),h=r.substr(s+a.length,l-s-a.length);n["marker"+h]=h.indexOf("sub")>-1?{textWidth:4,textHeight:4,textBorderRadius:2,textBackgroundColor:e[h],textOffset:[3,0]}:{textWidth:10,textHeight:10,textBorderRadius:5,textBackgroundColor:e[h]},r=r.substr(l+1),s=r.indexOf("{marker")}this.el=new xy({style:{rich:n,text:t,textLineHeight:20,textBackgroundColor:i.get("backgroundColor"),textBorderRadius:i.get("borderRadius"),textFill:i.get("textStyle.color"),textPadding:i.get("padding")},z:i.get("z")}),this._zr.add(this.el);var u=this;this.el.on("mouseover",function(){u._enterable&&(clearTimeout(u._hideTimeout),u._show=!0),u._inContent=!0}),this.el.on("mouseout",function(){u._enterable&&u._show&&u.hideLater(u._hideDelay),u._inContent=!1})},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el.getBoundingRect();return[t.width,t.height]},moveTo:function(t,e){this.el&&this.el.attr("position",[t,e])},hide:function(){this.el.hide(),this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(y(this.hide,this),t)):this.hide())},isShow:function(){return this._show},getOuterSize:function(){return this.getSize()}};var CM=y,AM=f,DM=Ua,kM=new Dy({shape:{x:-1,y:-1,width:2,height:2}});nh({type:"tooltip",init:function(t,e){if(!tg.node){var i=t.getComponent("tooltip"),n=i.get("renderMode");this._renderMode=Qn(n);var r;"html"===this._renderMode?(r=new mf(e.getDom(),e),this._newLine="
          "):(r=new yf(e),this._newLine="\n"),this._tooltipContent=r}},render:function(t,e,i){if(!tg.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var n=this._tooltipContent;n.update(),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel,e=t.get("triggerOn");Zd("itemTooltip",this._api,CM(function(t,i,n){"none"!==e&&(e.indexOf(t)>=0?this._tryShow(i,n):"leave"===t&&this._hide(n))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,i=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var n=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!tg.node){var r=_f(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var o=kM;o.position=[n.x,n.y],o.update(),o.tooltip=n.tooltip,this._tryShow({offsetX:n.x,offsetY:n.y,target:o},r)}else if(a)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},r);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=uM(n,e),l=s.point[0],h=s.point[1];null!=l&&null!=h&&this._tryShow({offsetX:l,offsetY:h,position:n.position,target:s.el,event:{}},r)}else null!=n.x&&null!=n.y&&(i.dispatchAction({type:"updateAxisPointer",x:n.x,y:n.y}),this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:i.getZr().findHover(n.x,n.y).target,event:{}},r))}},manuallyHideTip:function(t,e,i,n){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(_f(n,i))},_manuallyAxisShowTip:function(t,e,i,n){var r=n.seriesIndex,a=n.dataIndex,o=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=a&&null!=o){var s=e.getSeriesByIndex(r);if(s){var l=s.getData(),t=xf([l.getItemModel(a),s,(s.coordinateSystem||{}).model,t]);if("axis"===t.get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:a,position:n.position}),!0}}},_tryShow:function(t,e){var i=t.target,n=this._tooltipModel;if(n){this._lastX=t.offsetX,this._lastY=t.offsetY;var r=t.dataByCoordSys;r&&r.length?this._showAxisTooltip(r,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var i=t.get("showDelay");e=y(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,n=this._tooltipModel,a=[e.offsetX,e.offsetY],o=[],s=[],l=xf([e.tooltipOption,n]),h=this._renderMode,u=this._newLine,c={};AM(t,function(t){AM(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),n=t.value,a=[];if(e&&null!=n){var l=sf(n,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);f(t.seriesDataIndices,function(o){var u=i.getSeriesByIndex(o.seriesIndex),d=o.dataIndexInside,f=u&&u.getDataParams(d);if(f.axisDim=t.axisDim,f.axisIndex=t.axisIndex,f.axisType=t.axisType,f.axisId=t.axisId,f.axisValue=hu(e.axis,n),f.axisValueLabel=l,f){s.push(f);var p,g=u.formatTooltip(d,!0,null,h);if(S(g)){p=g.html;var v=g.markers;r(c,v)}else p=g;a.push(p)}});var d=l;o.push("html"!==h?a.join(u):(d?po(d)+u:"")+a.join(u))}})},this),o.reverse(),o=o.join(this._newLine+this._newLine);var d=e.position;this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(l,d,a[0],a[1],this._tooltipContent,s):this._showTooltipContent(l,o,s,Math.random(),a[0],a[1],d,void 0,c)})},_showSeriesItemTooltip:function(t,e,i){var n=this._ecModel,r=e.seriesIndex,a=n.getSeriesByIndex(r),o=e.dataModel||a,s=e.dataIndex,l=e.dataType,h=o.getData(),u=xf([h.getItemModel(s),o,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),c=u.get("trigger");if(null==c||"item"===c){var d,f,p=o.getDataParams(s,l),g=o.formatTooltip(s,!1,l,this._renderMode);S(g)?(d=g.html,f=g.markers):(d=g,f=null);var v="item_"+o.name+"_"+s;this._showOrMove(u,function(){this._showTooltipContent(u,d,p,v,t.offsetX,t.offsetY,t.position,t.target,f)}),i({type:"showTip",dataIndexInside:s,dataIndex:h.getRawIndex(s),seriesIndex:r,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var r=n;n={content:r,formatter:r}}var a=new Wa(n,this._tooltipModel,this._ecModel),o=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,o,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,r,a,o,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var h=this._tooltipContent,u=t.get("formatter");o=o||t.get("position");var c=e;if(u&&"string"==typeof u)c=go(u,i,!0);else if("function"==typeof u){var d=CM(function(e,n){e===this._ticket&&(h.setContent(n,l,t),this._updatePosition(t,o,r,a,h,i,s))},this);this._ticket=n,c=u(i,n,d)}h.setContent(c,l,t),h.show(t),this._updatePosition(t,o,r,a,h,i,s)}},_updatePosition:function(t,e,i,n,r,a,o){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var h=r.getSize(),u=t.get("align"),c=t.get("verticalAlign"),d=o&&o.getBoundingRect().clone();if(o&&d.applyTransform(o.transform),"function"==typeof e&&(e=e([i,n],a,r.el,d,{viewSize:[s,l],contentSize:h.slice()})),_(e))i=DM(e[0],s),n=DM(e[1],l);else if(S(e)){e.width=h[0],e.height=h[1];var f=bo(e,{width:s,height:l});i=f.x,n=f.y,u=null,c=null}else if("string"==typeof e&&o){var p=Sf(e,d,h);i=p[0],n=p[1]}else{var p=wf(i,n,r,s,l,u?null:20,c?null:20);i=p[0],n=p[1]}if(u&&(i-=Mf(u)?h[0]/2:"right"===u?h[0]:0),c&&(n-=Mf(c)?h[1]/2:"bottom"===c?h[1]:0),t.get("confine")){var p=bf(i,n,r,s,l);i=p[0],n=p[1]}r.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return i&&AM(e,function(e,n){var r=e.dataByAxis||{},a=t[n]||{},o=a.dataByAxis||[];i&=r.length===o.length,i&&AM(r,function(t,e){var n=o[e]||{},r=t.seriesDataIndices||[],a=n.seriesDataIndices||[];i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&r.length===a.length,i&&AM(r,function(t,e){var n=a[e];i&=t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})})}),this._lastDataByCoordSys=t,!!i},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){tg.node||(this._tooltipContent.hide(),$d("itemTooltip",e))}}),Ul({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Ul({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){});var PM=co,LM=po,OM=ih({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i),this.mergeOption(t,i,n.createdBySelf,!0)},isAnimationEnabled:function(){if(tg.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,n){var r=this.constructor,a=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType,!0),s=t[a];return i&&i.data?(s?s.mergeOption(i,e,!0):(n&&If(i),f(i.data,function(t){t instanceof Array?(If(t[0]),If(t[1])):If(t)}),s=new r(i,this,e),o(s,{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),void(t[a]=s)):void(t[a]=null)},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=_(i)?p(i,PM).join(", "):PM(i),r=e.getName(t),a=LM(this.name);return(null!=i||r)&&(a+="
          "),r&&(a+=LM(r),null!=i&&(a+=" : ")),null!=i&&(a+=LM(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});c(OM,i_),OM.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var zM=h,EM=x,RM={min:EM(Af,"min"),max:EM(Af,"max"),average:EM(Af,"average")},BM=nh({type:"marker",init:function(){this.markerGroupMap=N()},render:function(t,e,i){var n=this.markerGroupMap;n.each(function(t){t.__keep=!1});var r=this.type+"Model";e.eachSeries(function(t){var n=t[r];n&&this.renderSeries(t,n,e,i)},this),n.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});BM.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(Ef(e.getData(),t,i),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,i,n){var r=t.coordinateSystem,a=t.id,o=t.getData(),s=this.markerGroupMap,l=s.get(a)||s.set(a,new zc),h=Rf(r,t,e);e.setData(h),Ef(e.getData(),t,n),h.each(function(t){var i=h.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),h.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.color")||o.getVisual("color"),symbol:i.getShallow("symbol")})}),l.updateData(h),this.group.add(l.group),h.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e + })}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markPoint=t.markPoint||{}}),OM.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var NM=ky.prototype,FM=Ly.prototype,VM=$r({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){(Bf(e)?NM:FM).buildPath(t,e)},pointAt:function(t){return Bf(this.shape)?NM.pointAt.call(this,t):FM.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=Bf(e)?[e.x2-e.x1,e.y2-e.y1]:FM.tangentAt.call(this,t);return te(i,i)}}),WM=["fromSymbol","toSymbol"],GM=Hf.prototype;GM.beforeUpdate=Gf,GM._createLine=function(t,e,i){var n=t.hostModel,r=t.getItemLayout(e),a=Vf(r);a.shape.percent=0,Oa(a,{shape:{percent:1}},n,e),this.add(a);var o=new xy({name:"label"});this.add(o),f(WM,function(i){var n=Ff(i,t,e);this.add(n),this[Nf(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},GM.updateData=function(t,e,i){var n=t.hostModel,r=this.childOfName("line"),a=t.getItemLayout(e),o={shape:{}};Wf(o.shape,a),La(r,o,n,e),f(WM,function(i){var n=t.getItemVisual(e,i),r=Nf(i);if(this[r]!==n){this.remove(this.childOfName(i));var a=Ff(i,t,e);this.add(a)}this[r]=n},this),this._updateCommonStl(t,e,i)},GM._updateCommonStl=function(t,e,i){var n=t.hostModel,r=this.childOfName("line"),a=i&&i.lineStyle,o=i&&i.hoverLineStyle,l=i&&i.labelModel,h=i&&i.hoverLabelModel;if(!i||t.hasItemOption){var u=t.getItemModel(e);a=u.getModel("lineStyle").getLineStyle(),o=u.getModel("emphasis.lineStyle").getLineStyle(),l=u.getModel("label"),h=u.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),d=k(t.getItemVisual(e,"opacity"),a.opacity,1);r.useStyle(s({strokeNoScale:!0,fill:"none",stroke:c,opacity:d},a)),r.hoverStyle=o,f(WM,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:d}))},this);var p,g,v=l.getShallow("show"),m=h.getShallow("show"),y=this.childOfName("label");if((v||m)&&(p=c||"#000",g=n.getFormattedLabel(e,"normal",t.dataType),null==g)){var x=n.getRawValue(e);g=null==x?t.getName(e):isFinite(x)?$a(x):x}var _=v?g:null,w=m?D(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;(null!=_||null!=w)&&(ba(y.style,l,{text:_},{autoColor:p}),y.__textAlign=b.textAlign,y.__verticalAlign=b.textVerticalAlign,y.__position=l.get("position")||"middle"),y.hoverStyle=null!=w?{text:w,textFill:h.getTextColor(!0),fontStyle:h.getShallow("fontStyle"),fontWeight:h.getShallow("fontWeight"),fontSize:h.getShallow("fontSize"),fontFamily:h.getShallow("fontFamily")}:{text:null},y.ignore=!v&&!m,xa(this)},GM.highlight=function(){this.trigger("emphasis")},GM.downplay=function(){this.trigger("normal")},GM.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},GM.setLinePoints=function(t){var e=this.childOfName("line");Wf(e.shape,t),e.dirty()},u(Hf,lv);var HM=Zf.prototype;HM.isPersistent=function(){return!0},HM.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var r=jf(t);t.diff(n).add(function(i){Xf(e,t,i,r)}).update(function(i,a){Yf(e,n,t,a,i,r)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},HM.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},HM.incrementalPrepareUpdate=function(t){this._seriesScope=jf(t),this._lineData=null,this.group.removeAll()},HM.incrementalUpdate=function(t,e){function i(t){t.isGroup||(t.incremental=t.useHoverLayer=!0)}for(var n=t.start;n=0&&"number"==typeof c&&(c=+c.toFixed(Math.min(m,20))),g.coord[f]=v.coord[f]=c,a=[g,v,{type:l,valueIndex:a.valueIndex,value:c}]}return a=[Df(t,a[0]),Df(t,a[1]),o({},a[2])],a[2].type=a[2].type||"",r(a[2],a[0]),r(a[2],a[1]),a};BM.extend({type:"markLine",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),r=e.__from,a=e.__to;r.each(function(e){Jf(r,e,!0,t,i),Jf(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[r.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,i,n){function r(e,i,r){var a=e.getItemModel(i);Jf(e,i,r,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||g[r?0:1],symbol:a.get("symbol",!0)||p[r?0:1],color:a.get("itemStyle.color")||s.getVisual("color")})}var a=t.coordinateSystem,o=t.id,s=t.getData(),l=this.markerGroupMap,h=l.get(o)||l.set(o,new Zf);this.group.add(h.group);var u=tp(a,t,e),c=u.from,d=u.to,f=u.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");_(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),u.from.each(function(t){r(c,t,!0),r(d,t,!1)}),f.each(function(t){var e=f.getItemModel(t).get("lineStyle.color");f.setItemVisual(t,{color:e||c.getItemVisual(t,"color")}),f.setItemLayout(t,[c.getItemLayout(t),d.getItemLayout(t)]),f.setItemVisual(t,{fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),h.updateData(f),u.line.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),h.__keep=!0,h.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markLine=t.markLine||{}}),OM.extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});var XM=function(t,e,i,n){var r=Df(t,n[0]),o=Df(t,n[1]),s=A,l=r.coord,h=o.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),h[0]=s(h[0],1/0),h[1]=s(h[1],1/0);var u=a([{},r,o]);return u.coord=[r.coord,o.coord],u.x0=r.x,u.y0=r.y,u.x1=o.x,u.y1=o.y,u},YM=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];BM.extend({type:"markArea",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var n=e.getData();n.each(function(e){var r=p(YM,function(r){return rp(n,e,r,t,i)});n.setItemLayout(e,r);var a=n.getItemGraphicEl(e);a.setShape("points",r)})}},this)},renderSeries:function(t,e,i,n){var r=t.coordinateSystem,a=t.id,o=t.getData(),l=this.markerGroupMap,h=l.get(a)||l.set(a,{group:new lv});this.group.add(h.group),h.__keep=!0;var u=ap(r,t,e);e.setData(u),u.each(function(e){u.setItemLayout(e,p(YM,function(i){return rp(u,e,i,t,n)})),u.setItemVisual(e,{color:o.getVisual("color")})}),u.diff(h.__data).add(function(t){var e=new Cy({shape:{points:u.getItemLayout(t)}});u.setItemGraphicEl(t,e),h.group.add(e)}).update(function(t,i){var n=h.__data.getItemGraphicEl(i);La(n,{shape:{points:u.getItemLayout(t)}},e,t),h.group.add(n),u.setItemGraphicEl(t,n)}).remove(function(t){var e=h.__data.getItemGraphicEl(t);h.group.remove(e)}).execute(),u.eachItemGraphicEl(function(t,i){var n=u.getItemModel(i),r=n.getModel("label"),a=n.getModel("emphasis.label"),o=u.getItemVisual(i,"color");t.useStyle(s(n.getModel("itemStyle").getItemStyle(),{fill:Ke(o,.4),stroke:o})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),wa(t.style,t.hoverStyle,r,a,{labelFetcher:e,labelDataIndex:i,defaultText:u.getName(i)||"",isRectText:!0,autoColor:o}),xa(t,{}),t.dataModel=e}),h.__data=u,h.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markArea=t.markArea||{}});var jM=function(t){var e=t&&t.timeline;_(e)||(e=e?[e]:[]),f(e,function(t){t&&op(t)})};yx.registerSubTypeDefaulter("timeline",function(){return"slider"}),Ul({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),s({currentIndex:i.option.currentIndex},t)}),Ul({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var qM=yx.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(){qM.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),0>t&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],i=t.axisType,r=this._names=[];if("category"===i){var a=[];f(e,function(t,e){var i,o=Vn(t);S(t)?(i=n(t),i.value=e):i=e,a.push(i),b(o)||null!=o&&!isNaN(o)||(o=""),r.push(o+"")}),e=a}var o={category:"ordinal",time:"time"}[i]||"number",s=this._data=new Bw([{name:"value",type:o}],this);s.initData(e,r)},getData:function(){return this._data},getCategories:function(){return"category"===this.get("axisType")?this._names.slice():void 0}}),UM=qM.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}});c(UM,i_);var $M=s_.extend({type:"timeline"}),KM=function(t,e,i,n){Pb.call(this,t,e,i),this.type=n||"value",this.model=null};KM.prototype={constructor:KM,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u(KM,Pb);var QM=y,JM=f,tI=Math.PI;$M.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(t,e,i){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var n=this._layout(t,i),r=this._createGroup("mainGroup"),a=this._createGroup("labelGroup"),o=this._axis=this._createAxis(n,t);t.formatTooltip=function(t){return po(o.scale.getLabel(t))},JM(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](n,r,o,t)},this),this._renderAxisLabel(n,a,o,t),this._position(n,t)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),r=hp(t,e);null==i||"auto"===i?i="horizontal"===n?r.y+r.height/2=0||"+"===i?"left":"right"},o={horizontal:i>=0||"+"===i?"top":"bottom",vertical:"middle"},s={horizontal:0,vertical:tI/2},l="vertical"===n?r.height:r.width,h=t.getModel("controlStyle"),u=h.get("show",!0),c=u?h.get("itemSize"):0,d=u?h.get("itemGap"):0,f=c+d,p=t.get("label.rotate")||0;p=p*tI/180;var g,v,m,y,x=h.get("position",!0),_=u&&h.get("showPlayBtn",!0),w=u&&h.get("showPrevBtn",!0),b=u&&h.get("showNextBtn",!0),S=0,M=l;return"left"===x||"bottom"===x?(_&&(g=[0,0],S+=f),w&&(v=[S,0],S+=f),b&&(m=[M-c,0],M-=f)):(_&&(g=[M-c,0],M-=f),w&&(v=[0,0],S+=f),b&&(m=[M-c,0],M-=f)),y=[S,M],t.get("inverse")&&y.reverse(),{viewRect:r,mainLength:l,orient:n,rotation:s[n],labelRotation:p,labelPosOpt:i,labelAlign:t.get("label.align")||a[n],labelBaseline:t.get("label.verticalAlign")||t.get("label.baseline")||o[n],playPosition:g,prevBtnPosition:v,nextBtnPosition:m,axisExtent:y,controlSize:c,controlGap:d}},_position:function(t){function e(t){var e=t.position;t.origin=[u[0][0]-e[0],u[1][0]-e[1]]}function i(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function n(t,e,i,n,r){t[n]+=i[n][r]-e[n][r]}var r=this._mainGroup,a=this._labelGroup,o=t.viewRect;if("vertical"===t.orient){var s=be(),l=o.x,h=o.y+o.height;Te(s,s,[-l,-h]),Ce(s,s,-tI/2),Te(s,s,[l,h]),o=o.clone(),o.applyTransform(s)}var u=i(o),c=i(r.getBoundingRect()),d=i(a.getBoundingRect()),f=r.position,p=a.position;p[0]=f[0]=u[0][0];var g=t.labelPosOpt;if(isNaN(g)){var v="+"===g?0:1;n(f,c,u,1,v),n(p,d,u,1,1-v)}else{var v=g>=0?0:1;n(f,c,u,1,v),p[1]=f[1]+g}r.attr("position",f),a.attr("position",p),r.rotation=a.rotation=t.rotation,e(r),e(a)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),r=ou(e,n);r.getTicks=function(){return i.mapArray(["value"],function(t){return t})};var a=i.getDataExtent("value");r.setExtent(a[0],a[1]),r.niceTicks();var o=new KM("value",r,t.axisExtent,n);return o.model=e,o},_createGroup:function(t){var e=this["_"+t]=new lv;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var r=i.getExtent();n.get("lineStyle.show")&&e.add(new ky({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:o({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var r=n.getData(),a=i.scale.getTicks();JM(a,function(t){var a=i.dataToCoord(t),o=r.getItemModel(t),s=o.getModel("itemStyle"),l=o.getModel("emphasis.itemStyle"),h={position:[a,0],onclick:QM(this._changeTimeline,this,t)},u=cp(o,s,e,h);xa(u,l.getItemStyle()),o.get("tooltip")?(u.dataIndex=t,u.dataModel=n):u.dataIndex=u.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){var r=i.getLabelModel();if(r.get("show")){var a=n.getData(),o=i.getViewLabels();JM(o,function(n){var r=n.tickValue,o=a.getItemModel(r),s=o.getModel("label"),l=o.getModel("emphasis.label"),h=i.dataToCoord(n.tickValue),u=new xy({position:[h,0],rotation:t.labelRotation-t.rotation,onclick:QM(this._changeTimeline,this,r),silent:!1});ba(u.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(u),xa(u,ba({},l))},this)}},_renderControl:function(t,e,i,n){function r(t,i,r,u){if(t){var c={position:t,origin:[a/2,0],rotation:u?-o:0,rectHover:!0,style:s,onclick:r},d=up(n,i,h,c);e.add(d),xa(d,l)}}var a=t.controlSize,o=t.rotation,s=n.getModel("controlStyle").getItemStyle(),l=n.getModel("emphasis.controlStyle").getItemStyle(),h=[0,-a/2,a,a],u=n.getPlayState(),c=n.get("inverse",!0);r(t.nextBtnPosition,"controlStyle.nextIcon",QM(this._changeTimeline,this,c?"-":"+")),r(t.prevBtnPosition,"controlStyle.prevIcon",QM(this._changeTimeline,this,c?"+":"-")),r(t.playPosition,"controlStyle."+(u?"stopIcon":"playIcon"),QM(this._handlePlayClick,this,!u),!0)},_renderCurrentPointer:function(t,e,i,n){var r=n.getData(),a=n.getCurrentIndex(),o=r.getItemModel(a).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=QM(s._handlePointerDrag,s),t.ondragend=QM(s._handlePointerDragend,s),dp(t,a,i,n,!0)},onUpdate:function(t){dp(t,a,i,n)}};this._currentPointer=cp(o,o,this._mainGroup,{},this._currentPointer,l)},_handlePlayClick:function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},_handlePointerDrag:function(t,e,i){this._clearTimer(),this._pointerChangeTimeline([i.offsetX,i.offsetY])},_handlePointerDragend:function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},_pointerChangeTimeline:function(t,e){var i=this._toAxisCoord(t)[0],n=this._axis,r=Ka(n.getExtent().slice());i>r[1]&&(i=r[1]),is&&(n=s,e=a)}),e},_clearTimer:function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},_changeTimeline:function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})}}),Yl(jM),yx.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var eI=["x","y","z","radius","angle","single"],iI=["cartesian2d","polar","singleAxis"],nI=pp(eI,["axisIndex","axis","index","id"]),rI=f,aI=Ka,oI=function(t,e,i,n){this._dimName=t,this._axisIndex=e,this._valueWindow,this._percentWindow,this._dataExtent,this._minMaxSpan,this.ecModel=n,this._dataZoomModel=i};oI.prototype={constructor:oI,hostedBy:function(t){return this._dataZoomModel===t},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var t=[],e=this.ecModel;return e.eachSeries(function(i){if(fp(i.get("coordinateSystem"))){var n=this._dimName,r=e.queryComponents({mainType:n+"Axis",index:i.get(n+"AxisIndex"),id:i.get(n+"AxisId")})[0];this._axisIndex===(r&&r.componentIndex)&&t.push(i)}},this),t},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var t,e,i=this._dimName,n=this.ecModel,r=this.getAxisModel(),a="x"===i||"y"===i;a?(e="gridIndex",t="x"===i?"y":"x"):(e="polarIndex",t="angle"===i?"radius":"angle");var o;return n.eachComponent(t+"Axis",function(t){(t.get(e)||0)===(r.get(e)||0)&&(o=t)}),o},getMinMaxSpan:function(){return n(this._minMaxSpan)},calculateDataWindow:function(t){var e=this._dataExtent,i=this.getAxisModel(),n=i.axis.scale,r=this._dataZoomModel.getRangePropMode(),a=[0,100],o=[t.start,t.end],s=[];return rI(["startValue","endValue"],function(e){s.push(null!=t[e]?n.parse(t[e]):null)}),rI([0,1],function(t){var i=s[t],l=o[t];"percent"===r[t]?(null==l&&(l=a[t]),i=n.parse(qa(l,a,e,!0))):l=qa(i,e,a,!0),s[t]=i,o[t]=l}),{valueWindow:aI(s),percentWindow:aI(o)}},reset:function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=vp(this,this._dimName,e);var i=this.calculateDataWindow(t.option);this._valueWindow=i.valueWindow,this._percentWindow=i.percentWindow,xp(this),yp(this)}},restore:function(t){t===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,yp(this,!0))},filterData:function(t){function e(t){return t>=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,n=this.getTargetSeriesModels(),r=t.get("filterMode"),a=this._valueWindow;"none"!==r&&rI(n,function(t){var n=t.getData(),o=n.mapDimension(i,!0);o.length&&("weakFilter"===r?n.filterSelf(function(t){for(var e,i,r,s=0;sa[1];if(h&&!u&&!c)return!0;h&&(r=!0),u&&(e=!0),c&&(i=!0)}return r&&e&&i}):rI(o,function(i){if("empty"===r)t.setData(n.map(i,function(t){return e(t)?t:0/0}));else{var o={};o[i]=a,n.selectRange(o)}}),rI(o,function(t){n.setApproximateExtent(a,t)}))})}}};var sI=f,lI=nI,hI=ih({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=_p(t);this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=_p(t);r(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;tg.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),wp(this,t),sI([["start","startValue"],["end","endValue"]],function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,i,n,r){var a=this.dependentModels[e.axis][i],o=a.__dzAxisProxy||(a.__dzAxisProxy=new oI(e.name,i,this,r));t[e.name+"_"+i]=o},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();lI(function(e){var i=e.axisIndex;t[i]=Nn(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;lI(function(i){null!=t[i.axisIndex]&&(e=!0)},this);var i=t.orient;return null==i&&e?"orient":e?void 0:(null==i&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),i=this.option,n=this.dependentModels;if(t){var r="vertical"===e?"y":"x";n[r+"Axis"].length?(i[r+"AxisIndex"]=[0],t=!1):sI(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&lI(function(e){if(t){var n=[],r=this.dependentModels[e.axis];if(r.length&&!n.length)for(var a=0,o=r.length;o>a;a++)"category"===r[a].get("type")&&n.push(a);i[e.axisIndex]=n,n.length&&(t=!1)}},this),t&&this.ecModel.eachSeries(function(t){this._isSeriesHasAllAxesTypeOf(t,"value")&&lI(function(e){var n=i[e.axisIndex],r=t.get(e.axisIndex),a=t.get(e.axisId),o=t.ecModel.queryComponents({mainType:e.axis,index:r,id:a})[0];r=o.componentIndex,h(n,r)<0&&n.push(r)})},this)},_autoSetOrient:function(){var t;this.eachTargetAxis(function(e){!t&&(t=e.name)},this),this.option.orient="y"===t?"vertical":"horizontal"},_isSeriesHasAllAxesTypeOf:function(t,e){var i=!0;return lI(function(n){var r=t.get(n.axisIndex),a=this.dependentModels[n.axis][r];a&&a.get("type")===e||(i=!1)},this),i},_setDefaultThrottle:function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},getFirstTargetAxisModel:function(){var t;return lI(function(e){if(null==t){var i=this.get(e.axisIndex);i.length&&(t=this.dependentModels[e.axis][i[0]])}},this),t},eachTargetAxis:function(t,e){var i=this.ecModel;lI(function(n){sI(this.get(n.axisIndex),function(r){t.call(e,n,r,this,i)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var i=this.getAxisProxy(t,e);return i&&i.getAxisModel()},setRawRange:function(t,e){var i=this.option;sI([["start","startValue"],["end","endValue"]],function(e){(null!=t[e[0]]||null!=t[e[1]])&&(i[e[0]]=t[e[0]],i[e[1]]=t[e[1]])},this),!e&&wp(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();return t?t.getDataPercentWindow():void 0},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var i=this.findRepresentativeAxisProxy();return i?i.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(t){if(t)return t.__dzAxisProxy;var e=this._axisProxies;for(var i in e)if(e.hasOwnProperty(i)&&e[i].hostedBy(this))return e[i];for(var i in e)if(e.hasOwnProperty(i)&&!e[i].hostedBy(this))return e[i]},getRangePropMode:function(){return this._rangePropMode.slice()}}),uI=s_.extend({type:"dataZoom",render:function(t,e,i){this.dataZoomModel=t,this.ecModel=e,this.api=i},getTargetCoordInfo:function(){function t(t,e,i,n){for(var r,a=0;aa&&(e[1-n]=e[n]+u.sign*a),e}),dI=Dy,fI=qa,pI=Ka,gI=y,vI=f,mI=7,yI=1,xI=30,_I="horizontal",wI="vertical",bI=5,SI=["line","bar","candlestick","scatter"],MI=uI.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){return MI.superApply(this,"render",arguments),Hs(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),this.dataZoomModel.get("show")===!1?void this.group.removeAll():(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),void this._updateView())},remove:function(){MI.superApply(this,"remove",arguments),Zs(this,"_dispatchZoomAction")},dispose:function(){MI.superApply(this,"dispose",arguments),Zs(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new lv;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,i=this._findCoordRect(),n={width:e.getWidth(),height:e.getHeight()},r=this._orient===_I?{right:n.width-i.x-i.width,top:n.height-xI-mI,width:i.width,height:xI}:{right:mI,top:i.y,width:xI,height:i.height},a=Mo(t.option);f(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=r[t])});var o=bo(a,n,t.padding);this._location={x:o.x,y:o.y},this._size=[o.width,o.height],this._orient===wI&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),r=n&&n.get("inverse"),a=this._displayables.barGroup,o=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(i!==_I||r?i===_I&&r?{scale:o?[-1,1]:[-1,-1]}:i!==wI||r?{scale:o?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:o?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:o?[1,1]:[1,-1]});var s=t.getBoundingRect([a]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,i=this._displayables.barGroup;i.add(new dI({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),i.add(new dI({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:y(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,i=t.series,n=i.getRawData(),r=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=r){var a=n.getDataExtent(r),o=.3*(a[1]-a[0]);a=[a[0]-o,a[1]+o];var l,h=[0,e[1]],u=[0,e[0]],c=[[e[0],0],[0,0]],d=[],f=u[1]/(n.count()-1),p=0,g=Math.round(n.count()/e[0]);n.each([r],function(t,e){if(g>0&&e%g)return void(p+=f);var i=null==t||isNaN(t)||""===t,n=i?0:fI(t,a,h,!0);i&&!l&&e?(c.push([c[c.length-1][0],0]),d.push([d[d.length-1][0],0])):!i&&l&&(c.push([p,0]),d.push([p,0])),c.push([p,n]),d.push([p,n]),p+=f,l=i});var v=this.dataZoomModel;this._displayables.barGroup.add(new Cy({shape:{points:c},style:s({fill:v.get("dataBackgroundColor")},v.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new Ay({shape:{points:d},style:v.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(e!==!1){var i,n=this.ecModel;return t.eachTargetAxis(function(r,a){var o=t.getAxisProxy(r.name,a).getTargetSeriesModels();f(o,function(t){if(!(i||e!==!0&&h(SI,t.get("type"))<0)){var o,s=n.getComponent(r.axis,a).axis,l=Mp(r.name),u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(o=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),i={thisAxis:s,series:t,thisDim:r.name,otherDim:l,otherAxisInverse:o}}},this)},this),i}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,r=this._size,a=this.dataZoomModel;n.add(t.filler=new dI({draggable:!0,cursor:Ip(this._orient),drift:gI(this._onDragMove,this,"all"),onmousemove:function(t){Ig(t.event)},ondragstart:gI(this._showDataInfo,this,!0),ondragend:gI(this._onDragEnd,this),onmouseover:gI(this._showDataInfo,this,!0),onmouseout:gI(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new dI(na({silent:!0,shape:{x:0,y:0,width:r[0],height:r[1]},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:yI,fill:"rgba(0,0,0,0)"}}))),vI([0,1],function(t){var r=Va(a.get("handleIcon"),{cursor:Ip(this._orient),draggable:!0,drift:gI(this._onDragMove,this,t),onmousemove:function(t){Ig(t.event) + },ondragend:gI(this._onDragEnd,this),onmouseover:gI(this._showDataInfo,this,!0),onmouseout:gI(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),o=r.getBoundingRect();this._handleHeight=Ua(a.get("handleSize"),this._size[1]),this._handleWidth=o.width/o.height*this._handleHeight,r.setStyle(a.getModel("handleStyle").getItemStyle());var s=a.get("handleColor");null!=s&&(r.style.fill=s),n.add(e[t]=r);var l=a.textStyleModel;this.group.add(i[t]=new xy({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:l.getTextColor(),textFont:l.getFont()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[fI(t[0],[0,100],e,!0),fI(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this.dataZoomModel,n=this._handleEnds,r=this._getViewExtent(),a=i.findRepresentativeAxisProxy().getMinMaxSpan(),o=[0,100];cI(e,n,r,i.get("zoomLock")?"all":t,null!=a.minSpan?fI(a.minSpan,o,r,!0):null,null!=a.maxSpan?fI(a.maxSpan,o,r,!0):null);var s=this._range,l=this._range=pI([fI(n[0],r,o,!0),fI(n[1],r,o,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},_updateView:function(t){var e=this._displayables,i=this._handleEnds,n=pI(i.slice()),r=this._size;vI([0,1],function(t){var n=e.handles[t],a=this._handleHeight;n.attr({scale:[a/2,a/2],position:[i[t],r[1]/2-a/2]})},this),e.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:r[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=za(n.handles[t].parent,this.group),i=Ra(0===t?"right":"left",e),s=this._handleWidth/2+bI,l=Ea([c[t]+(0===t?-s:s),this._size[1]/2],e);r[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===_I?"middle":i,textAlign:a===_I?i:"center",text:o[t]})}var i=this.dataZoomModel,n=this._displayables,r=n.handleLabels,a=this._orient,o=["",""];if(i.get("showDetail")){var s=i.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,h=this._range,u=t?s.calculateDataWindow({start:h[0],end:h[1]}).valueWindow:s.getDataValueWindow();o=[this._formatLabel(u[0],l),this._formatLabel(u[1],l)]}}var c=pI(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var i=this.dataZoomModel,n=i.get("labelFormatter"),r=i.get("labelPrecision");(null==r||"auto"===r)&&(r=e.getPixelPrecision());var a=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(r,20));return w(n)?n(t,a):b(n)?n.replace("{value}",a):a},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,i){this._dragging=!0;var n=this._displayables.barGroup.getLocalTransform(),r=Ea([e,i],n,!0),a=this._updateInterval(t,r[0]),o=this.dataZoomModel.get("realtime");this._updateView(!o),a&&o&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1);var t=this.dataZoomModel.get("realtime");!t&&this._dispatchZoomAction()},_onClickPanelClick:function(t){var e=this._size,i=this._displayables.barGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(i[0]<0||i[0]>e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,r=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-r);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var t;if(vI(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var i=e[0].model.coordinateSystem;t=i.getRect&&i.getRect()}}),!t){var e=this.api.getWidth(),i=this.api.getHeight();t={x:.2*e,y:.2*i,width:.6*e,height:.6*i}}return t}});hI.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var II="\x00_ec_interaction_mutex";Ul({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),c(Ap,bg);var TI="\x00_ec_dataZoom_roams",CI=y,AI=uI.extend({type:"dataZoom.inside",init:function(){this._range},render:function(t,e,i){AI.superApply(this,"render",arguments),this._range=t.getPercentRange(),f(this.getTargetCoordInfo(),function(e,n){var r=p(e,function(t){return Fp(t.model)});f(e,function(e){var a=e.model,o={};f(["pan","zoom","scrollMove"],function(t){o[t]=CI(DI[t],this,e,n)},this),Bp(i,{coordId:Fp(a),allCoordIds:r,containsPoint:function(t,e,i){return a.coordinateSystem.containPoint([e,i])},dataZoomId:t.id,dataZoomModel:t,getRange:o})},this)},this)},dispose:function(){Np(this.api,this.dataZoomModel.id),AI.superApply(this,"dispose",arguments),this._range=null}}),DI={zoom:function(t,e,i,n){var r=this._range,a=r.slice(),o=t.axisModels[0];if(o){var s=kI[e](null,[n.originX,n.originY],o,i,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],h=Math.max(1/n.scale,0);a[0]=(a[0]-l)*h+l,a[1]=(a[1]-l)*h+l;var u=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return cI(0,a,[0,100],0,u.minSpan,u.maxSpan),this._range=a,r[0]!==a[0]||r[1]!==a[1]?a:void 0}},pan:Xp(function(t,e,i,n,r,a){var o=kI[n]([a.oldX,a.oldY],[a.newX,a.newY],e,r,i);return o.signal*(t[1]-t[0])*o.pixel/o.pixelLength}),scrollMove:Xp(function(t,e,i,n,r,a){var o=kI[n]([0,0],[a.scrollDelta,a.scrollDelta],e,r,i);return o.signal*(t[1]-t[0])*a.scrollDelta})},kI={grid:function(t,e,i,n,r){var a=i.axis,o={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===a.dim?(o.pixel=e[0]-t[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=e[1]-t[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(t,e,i,n,r){var a=i.axis,o={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),h=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===i.mainType?(o.pixel=e[0]-t[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?1:-1):(o.pixel=e[1]-t[1],o.pixelLength=h[1]-h[0],o.pixelStart=h[0],o.signal=a.inverse?-1:1),o},singleAxis:function(t,e,i,n,r){var a=i.axis,o=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===a.orient?(s.pixel=e[0]-t[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}};jl({getTargetSeries:function(t){var e=N();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){var r=n.getAxisProxy(t.name,i);f(r.getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},modifyOutputEnd:!0,overallReset:function(t,e){t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).reset(n,e)}),t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).filterData(n,e)})}),t.eachComponent("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),i=e.getDataPercentWindow(),n=e.getDataValueWindow();t.setRawRange({start:i[0],end:i[1],startValue:n[0],endValue:n[1]},!0)})}}),Ul("dataZoom",function(t,e){var i=gp(y(e.eachComponent,e,"dataZoom"),nI,function(t,e){return t.get(e.axisIndex)}),n=[];e.eachComponent({mainType:"dataZoom",query:t},function(t){n.push.apply(n,i(t).nodes)}),f(n,function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var PI,LI="urn:schemas-microsoft-com:vml",OI="undefined"==typeof window?null:window,zI=!1,EI=OI&&OI.document;if(EI&&!tg.canvasSupported)try{!EI.namespaces.zrvml&&EI.namespaces.add("zrvml",LI),PI=function(t){return EI.createElement("')}}catch(RI){PI=function(t){return EI.createElement("<"+t+' xmlns="'+LI+'" class="zrvml">')}}var BI=qm.CMD,NI=Math.round,FI=Math.sqrt,VI=Math.abs,WI=Math.cos,GI=Math.sin,HI=Math.max;if(!tg.canvasSupported){var ZI=",",XI="progid:DXImageTransform.Microsoft",YI=21600,jI=YI/2,qI=1e5,UI=1e3,$I=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=YI+","+YI,t.coordorigin="0,0"},KI=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},QI=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},JI=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},tT=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},eT=function(t,e,i){return(parseFloat(t)||0)*qI+(parseFloat(e)||0)*UI+i},iT=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},nT=function(t,e,i){var n=He(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=QI(n[0],n[1],n[2]),t.opacity=i*n[3])},rT=function(t){var e=He(t);return[QI(e[0],e[1],e[2]),e[3]]},aT=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof Ey){var r,a=0,o=[0,0],s=0,l=1,h=i.getBoundingRect(),u=h.width,c=h.height;if("linear"===n.type){r="gradient";var d=i.transform,f=[n.x*u,n.y*c],p=[n.x2*u,n.y2*c];d&&(ae(f,f,d),ae(p,p,d));var g=p[0]-f[0],v=p[1]-f[1];a=180*Math.atan2(g,v)/Math.PI,0>a&&(a+=360),1e-6>a&&(a=0)}else{r="gradientradial";var f=[n.x*u,n.y*c],d=i.transform,m=i.scale,y=u,x=c;o=[(f[0]-h.x)/y,(f[1]-h.y)/x],d&&ae(f,f,d),y/=m[0]*YI,x/=m[1]*YI;var _=HI(y,x);s=0/_,l=2*n.r/_-s}var w=n.colorStops.slice();w.sort(function(t,e){return t.offset-e.offset});for(var b=w.length,S=[],M=[],I=0;b>I;I++){var T=w[I],C=rT(T.color);M.push(T.offset*l+s+" "+C[0]),(0===I||I===b-1)&&S.push(C)}if(b>=2){var A=S[0][0],D=S[1][0],k=S[0][1]*e.opacity,P=S[1][1]*e.opacity;t.type=r,t.method="none",t.focus="100%",t.angle=a,t.color=A,t.color2=D,t.colors=M.join(","),t.opacity=P,t.opacity2=k}"radial"===r&&(t.focusposition=o.join(","))}else nT(t,n,e.opacity)},oT=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof Ey||nT(t,e.stroke,e.opacity)},sT=function(t,e,i,n){var r="fill"==e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(r||!r&&i.lineWidth)?(t[r?"filled":"stroked"]="true",i[e]instanceof Ey&&tT(t,a),a||(a=Yp(e)),r?aT(a,i,n):oT(a,i),JI(t,a)):(t[r?"filled":"stroked"]="false",tT(t,a))},lT=[[],[],[]],hT=function(t,e){var i,n,r,a,o,s,l=BI.M,h=BI.C,u=BI.L,c=BI.A,d=BI.Q,f=[],p=t.data,g=t.len();for(a=0;g>a;){switch(r=p[a++],n="",i=0,r){case l:n=" m ",i=1,o=p[a++],s=p[a++],lT[0][0]=o,lT[0][1]=s;break;case u:n=" l ",i=1,o=p[a++],s=p[a++],lT[0][0]=o,lT[0][1]=s;break;case d:case h:n=" c ",i=3;var v,m,y=p[a++],x=p[a++],_=p[a++],w=p[a++];r===d?(v=_,m=w,_=(_+2*y)/3,w=(w+2*x)/3,y=(o+2*y)/3,x=(s+2*x)/3):(v=p[a++],m=p[a++]),lT[0][0]=y,lT[0][1]=x,lT[1][0]=_,lT[1][1]=w,lT[2][0]=v,lT[2][1]=m,o=v,s=m;break;case c:var b=0,S=0,M=1,I=1,T=0;e&&(b=e[4],S=e[5],M=FI(e[0]*e[0]+e[1]*e[1]),I=FI(e[2]*e[2]+e[3]*e[3]),T=Math.atan2(-e[1]/I,e[0]/M));var C=p[a++],A=p[a++],D=p[a++],k=p[a++],P=p[a++]+T,L=p[a++]+P+T;a++;var O=p[a++],z=C+WI(P)*D,E=A+GI(P)*k,y=C+WI(L)*D,x=A+GI(L)*k,R=O?" wa ":" at ";Math.abs(z-y)<1e-4&&(Math.abs(L-P)>.01?O&&(z+=270/YI):Math.abs(E-A)<1e-4?O&&C>z||!O&&z>C?x-=270/YI:x+=270/YI:O&&A>E||!O&&E>A?y+=270/YI:y-=270/YI),f.push(R,NI(((C-D)*M+b)*YI-jI),ZI,NI(((A-k)*I+S)*YI-jI),ZI,NI(((C+D)*M+b)*YI-jI),ZI,NI(((A+k)*I+S)*YI-jI),ZI,NI((z*M+b)*YI-jI),ZI,NI((E*I+S)*YI-jI),ZI,NI((y*M+b)*YI-jI),ZI,NI((x*I+S)*YI-jI)),o=y,s=x;break;case BI.R:var B=lT[0],N=lT[1];B[0]=p[a++],B[1]=p[a++],N[0]=B[0]+p[a++],N[1]=B[1]+p[a++],e&&(ae(B,B,e),ae(N,N,e)),B[0]=NI(B[0]*YI-jI),N[0]=NI(N[0]*YI-jI),B[1]=NI(B[1]*YI-jI),N[1]=NI(N[1]*YI-jI),f.push(" m ",B[0],ZI,B[1]," l ",N[0],ZI,B[1]," l ",N[0],ZI,N[1]," l ",B[0],ZI,N[1]);break;case BI.Z:f.push(" x ")}if(i>0){f.push(n);for(var F=0;i>F;F++){var V=lT[F];e&&ae(V,V,e),f.push(NI(V[0]*YI-jI),ZI,NI(V[1]*YI-jI),i-1>F?ZI:"")}}}return f.join("")};Fr.prototype.brushVML=function(t){var e=this.style,i=this._vmlEl;i||(i=Yp("shape"),$I(i),this._vmlEl=i),sT(i,"fill",e,this),sT(i,"stroke",e,this);var n=this.transform,r=null!=n,a=i.getElementsByTagName("stroke")[0];if(a){var o=e.lineWidth;if(r&&!e.strokeNoScale){var s=n[0]*n[3]-n[1]*n[2];o*=FI(VI(s))}a.weight=o+"px"}var l=this.path||(this.path=new qm);this.__dirtyPath&&(l.beginPath(),this.buildPath(l,this.shape),l.toStatic(),this.__dirtyPath=!1),i.path=hT(l,this.transform),i.style.zIndex=eT(this.zlevel,this.z,this.z2),JI(t,i),null!=e.text?this.drawRectText(t,this.getBoundingRect()):this.removeRectText(t)},Fr.prototype.onRemove=function(t){tT(t,this._vmlEl),this.removeRectText(t)},Fr.prototype.onAdd=function(t){JI(t,this._vmlEl),this.appendRectText(t)};var uT=function(t){return"object"==typeof t&&t.tagName&&"IMG"===t.tagName.toUpperCase()};yn.prototype.brushVML=function(t){var e,i,n=this.style,r=n.image;if(uT(r)){var a=r.src;if(a===this._imageSrc)e=this._imageWidth,i=this._imageHeight;else{var o=r.runtimeStyle,s=o.width,l=o.height;o.width="auto",o.height="auto",e=r.width,i=r.height,o.width=s,o.height=l,this._imageSrc=a,this._imageWidth=e,this._imageHeight=i}r=a}else r===this._imageSrc&&(e=this._imageWidth,i=this._imageHeight);if(r){var h=n.x||0,u=n.y||0,c=n.width,d=n.height,f=n.sWidth,p=n.sHeight,g=n.sx||0,v=n.sy||0,m=f&&p,y=this._vmlEl;y||(y=EI.createElement("div"),$I(y),this._vmlEl=y);var x,_=y.style,w=!1,b=1,S=1;if(this.transform&&(x=this.transform,b=FI(x[0]*x[0]+x[1]*x[1]),S=FI(x[2]*x[2]+x[3]*x[3]),w=x[1]||x[2]),w){var M=[h,u],I=[h+c,u],T=[h,u+d],C=[h+c,u+d];ae(M,M,x),ae(I,I,x),ae(T,T,x),ae(C,C,x);var A=HI(M[0],I[0],T[0],C[0]),D=HI(M[1],I[1],T[1],C[1]),k=[];k.push("M11=",x[0]/b,ZI,"M12=",x[2]/S,ZI,"M21=",x[1]/b,ZI,"M22=",x[3]/S,ZI,"Dx=",NI(h*b+x[4]),ZI,"Dy=",NI(u*S+x[5])),_.padding="0 "+NI(A)+"px "+NI(D)+"px 0",_.filter=XI+".Matrix("+k.join("")+", SizingMethod=clip)"}else x&&(h=h*b+x[4],u=u*S+x[5]),_.filter="",_.left=NI(h)+"px",_.top=NI(u)+"px";var P=this._imageEl,L=this._cropEl;P||(P=EI.createElement("div"),this._imageEl=P);var O=P.style;if(m){if(e&&i)O.width=NI(b*e*c/f)+"px",O.height=NI(S*i*d/p)+"px";else{var z=new Image,E=this;z.onload=function(){z.onload=null,e=z.width,i=z.height,O.width=NI(b*e*c/f)+"px",O.height=NI(S*i*d/p)+"px",E._imageWidth=e,E._imageHeight=i,E._imageSrc=r},z.src=r}L||(L=EI.createElement("div"),L.style.overflow="hidden",this._cropEl=L);var R=L.style;R.width=NI((c+g*c/f)*b),R.height=NI((d+v*d/p)*S),R.filter=XI+".Matrix(Dx="+-g*c/f*b+",Dy="+-v*d/p*S+")",L.parentNode||y.appendChild(L),P.parentNode!=L&&L.appendChild(P)}else O.width=NI(b*c)+"px",O.height=NI(S*d)+"px",y.appendChild(P),L&&L.parentNode&&(y.removeChild(L),this._cropEl=null);var B="",N=n.opacity;1>N&&(B+=".Alpha(opacity="+NI(100*N)+") "),B+=XI+".AlphaImageLoader(src="+r+", SizingMethod=scale)",O.filter=B,y.style.zIndex=eT(this.zlevel,this.z,this.z2),JI(t,y),null!=n.text&&this.drawRectText(t,this.getBoundingRect())}},yn.prototype.onRemove=function(t){tT(t,this._vmlEl),this._vmlEl=null,this._cropEl=null,this._imageEl=null,this.removeRectText(t)},yn.prototype.onAdd=function(t){JI(t,this._vmlEl),this.appendRectText(t)};var cT,dT="normal",fT={},pT=0,gT=100,vT=document.createElement("div"),mT=function(t){var e=fT[t];if(!e){pT>gT&&(pT=0,fT={});var i,n=vT.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(r){}e={style:n.fontStyle||dT,variant:n.fontVariant||dT,weight:n.fontWeight||dT,size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},fT[t]=e,pT++}return e};Oi("measureText",function(t,e){var i=EI;cT||(cT=i.createElement("div"),cT.style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",EI.body.appendChild(cT));try{cT.style.font=e}catch(n){}return cT.innerHTML="",cT.appendChild(i.createTextNode(t)),{width:cT.offsetWidth}});for(var yT=new gi,xT=function(t,e,i,n){var r=this.style;this.__dirty&&Qi(r,!0);var a=r.text;if(null!=a&&(a+=""),a){if(r.rich){var o=qi(a,r);a=[];for(var s=0;s'; + + oriIcon += '
          '; + + var selectHtml = '
          ' + + '
          ' + + '
          ' + + '' + + oriIcon + + '' + + '' + + '
          ' + + '
          ' + + '
          ' + + '123' + + '
          '; + $(elem).after(selectHtml); + return a; + }, + /** + * 展开/折叠下拉框 + */ + toggleSelect: function () { + var item = '#' + TITLE_ID + ' .layui-iconpicker-item,#' + TITLE_ID + ' .layui-iconpicker-item .layui-edge'; + a.event('click', item, function (e) { + var $icon = $('#' + ICON_BODY); + if ($icon.hasClass(selected)) { + $icon.removeClass(selected).addClass(unselect); + } else { + // 隐藏其他picker + $('.layui-form-select').removeClass(selected); + // 显示当前picker + $icon.addClass(selected).removeClass(unselect); + } + e.stopPropagation(); + }); + return a; + }, + /** + * 绘制主体部分 + */ + createBody: function () { + // 获取数据 + var searchHtml = ''; + + if (search) { + searchHtml = ''; + } + + // 组合dom + var bodyHtml = '
          ' + + searchHtml + + '
          ' + + '
          '; + $('#' + ICON_BODY).find('.layui-anim').eq(0).html(bodyHtml); + a.search().createList().check().page(); + + return a; + }, + /** + * 绘制图标列表 + * @param text 模糊查询关键字 + * @returns {string} + */ + createList: function (text) { + var d = data, + l = d.length, + pageHtml = '', + listHtml = $('
          ')//'
          '; + + // 计算分页数据 + var _limit = limit, // 每页显示数量 + _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1), // 总计多少页 + _id = PAGE_ID; + + // 图标列表 + var icons = []; + + for (var i = 0; i < l; i++) { + var obj = d[i]; + + // 判断是否模糊查询 + if (text && obj.indexOf(text) === -1) { + continue; + } + + // 是否自定义格子宽度 + var style = ''; + if (cellWidth !== null) { + style += ' style="width:' + cellWidth + '"'; + } + + // 每个图标dom + var icon = '
          '; + + icon += ''; + + icon += '
          '; + + icons.push(icon); + } + + // 查询出图标后再分页 + l = icons.length; + _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1); + for (var i = 0; i < _pages; i++) { + // 按limit分块 + var lm = $('
          '); + + for (var j = i * _limit; j < (i + 1) * _limit && j < l; j++) { + lm.append(icons[j]); + } + + listHtml.append(lm); + } + + // 无数据 + if (l === 0) { + listHtml.append('

          无数据

          '); + } + + // 判断是否分页 + if (page) { + $('#' + PICKER_BODY).addClass('layui-iconpicker-body-page'); + pageHtml = '
          ' + + '
          ' + + '1/' + + '' + _pages + '' + + ' (' + l + ')' + + '
          ' + + '
          ' + + ' ' + + ' ' + + '
          ' + + '
          '; + } + + + $('#' + ICON_BODY).find('.layui-anim').find('.' + LIST_BOX).html('').append(listHtml).append(pageHtml); + return a; + }, + // 阻止Layui的一些默认事件 + preventEvent: function () { + var item = '#' + ICON_BODY + ' .layui-anim'; + a.event('click', item, function (e) { + e.stopPropagation(); + }); + return a; + }, + // 分页 + page: function () { + var icon = '#' + PAGE_ID + ' .layui-iconpicker-page-operate .layui-icon'; + + $(icon).unbind('click'); + a.event('click', icon, function (e) { + var elem = e.currentTarget, + total = parseInt($('#' + PAGE_ID + '-pages').html()), + isPrev = $(elem).attr('prev') !== undefined, + // 按钮上标的页码 + index = parseInt($(elem).attr('data-index')), + $cur = $('#' + PAGE_ID + '-current'), + // 点击时正在显示的页码 + current = parseInt($cur.html()); + + // 分页数据 + if (isPrev && current > 1) { + current = current - 1; + $(icon + '[prev]').attr('data-index', current); + } else if (!isPrev && current < total) { + current = current + 1; + $(icon + '[next]').attr('data-index', current); + } + $cur.html(current); + + // 图标数据 + $('#' + ICON_BODY + ' .layui-iconpicker-icon-limit').hide(); + $('#layui-iconpicker-icon-limit-' + tmp + current).show(); + e.stopPropagation(); + }); + return a; + }, + /** + * 搜索 + */ + search: function () { + var item = '#' + PICKER_BODY + ' .layui-iconpicker-search .layui-input'; + a.event('input propertychange', item, function (e) { + var elem = e.target, + t = $(elem).val(); + a.createList(t); + }); + return a; + }, + /** + * 点击选中图标 + */ + check: function () { + var item = '#' + PICKER_BODY + ' .layui-iconpicker-icon-item'; + a.event('click', item, function (e) { + var el = $(e.currentTarget).find('.fa'), + icon = ''; + + var clsArr = el.attr('class').split(/[\s\n]/), + cls = clsArr[1], + icon = cls; + $('#' + TITLE_ID).find('.layui-iconpicker-item .fa').html('').attr('class', clsArr.join(' ')); + + + $('#' + ICON_BODY).removeClass(selected).addClass(unselect); + $(elem).val(icon).attr('value', icon); + // 回调 + if (click) { + click({ + icon: icon + }); + } + + }); + return a; + }, + // 监听原始input数值改变 + inputListen: function () { + var el = $(elem); + a.event('change', elem, function () { + var value = el.val(); + }) + // el.change(function(){ + + // }); + return a; + }, + event: function (evt, el, fn) { + $(BODY).on(evt, el, fn); + } + }; + + var common = { + /** + * 加载样式表 + */ + loadCss: function () { + var css = '.layui-iconpicker {max-width: 280px;}.layui-iconpicker .layui-anim{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;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-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:38px;border-radius:4px;cursor:pointer;position:relative;}.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}.layui-iconpicker-icon i{line-height:38px;font-size:18px;}.layui-iconpicker-item > .layui-edge{left:70px;}.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}.layui-iconpicker.layui-form-selected .layui-anim{display:block;}.layui-iconpicker-body{padding:6px;}.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}.layui-iconpicker-search{position:relative;margin:0 0 6px 0;border:1px solid #e6e6e6;border-radius:2px;transition:300ms;}.layui-iconpicker-search:hover{border-color:#D2D2D2!important;}.layui-iconpicker-search .layui-input{cursor:text;display:inline-block;width:86%;border:none;padding-right:0;margin-top:1px;}.layui-iconpicker-search .layui-icon{position:absolute;top:11px;right:4%;}.layui-iconpicker-tips{text-align:center;padding:8px 0;cursor:not-allowed;}.layui-iconpicker-page{margin-top:6px;margin-bottom:-6px;font-size:12px;padding:0 2px;}.layui-iconpicker-page-count{display:inline-block;}.layui-iconpicker-page-operate{display:inline-block;float:right;cursor:default;}.layui-iconpicker-page-operate .layui-icon{font-size:12px;cursor:pointer;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit{display:none;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit:first-child{display:block;}'; + var $style = $('head').find('style[iconpicker]'); + if ($style.length === 0) { + $('head').append(''); + } + }, + + /** + * 获取数据 + */ + getData: function (url) { + var iconlist = []; + $.ajax({ + url: url, + type: 'get', + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + async: false, + success: function (ret) { + var exp = /fa-var-(.*):/ig; + var result; + while ((result = exp.exec(ret)) != null) { + iconlist.push('fa-' + result[1]); + } + }, + error: function (xhr, textstatus, thrown) { + layer.msg('fa图标接口有误'); + } + }); + return iconlist; + } + }; + + a.init(); + return new IconPicker(); + }; + + /** + * 选中图标 + * @param filter lay-filter + * @param iconName 图标名称,自动识别fontClass/unicode + */ + IconPicker.prototype.checkIcon = function (filter, iconName) { + var el = $('*[lay-filter=' + filter + ']'), + p = el.next().find('.layui-iconpicker-item .fa'), + c = iconName; + + if (c.indexOf('#xe') > 0) { + p.html(c); + } else { + p.html('').attr('class', 'fa ' + c); + } + el.attr('value', c).val(c); + }; + + var iconPicker = new IconPicker(); + exports(_MOD, iconPicker); +}); \ No newline at end of file diff --git a/target/classes/static/js/lay-module/layarea/layarea.js b/target/classes/static/js/lay-module/layarea/layarea.js new file mode 100644 index 00000000..d62e3846 --- /dev/null +++ b/target/classes/static/js/lay-module/layarea/layarea.js @@ -0,0 +1,4040 @@ +layui.define(['layer', 'form', 'laytpl'], function (exports) { + "use strict"; + + let $ = layui.$ + , form = layui.form + , layarea = { + _id: 0 + , config: {} + , set: function (options) { + let that = this; + that.config = $.extend({}, that.config, options); + return that; + } + , on: function (events, callback) { + return layui.onevent.call(this, 'layarea', events, callback); + } + } + , thisArea = function () { + let that = this; + return { + layarea: function (files) { + that.layarea.call(that, files); + } + , config: that.config + } + } + , Class = function (options) { + let that = this; + that.config = $.extend({}, that.config, layarea.config, options); + that.render(); + }; + + let areaList = { + province_list: { + 110000: '北京市', + 120000: '天津市', + 130000: '河北省', + 140000: '山西省', + 150000: '内蒙古自治区', + 210000: '辽宁省', + 220000: '吉林省', + 230000: '黑龙江省', + 310000: '上海市', + 320000: '江苏省', + 330000: '浙江省', + 340000: '安徽省', + 350000: '福建省', + 360000: '江西省', + 370000: '山东省', + 410000: '河南省', + 420000: '湖北省', + 430000: '湖南省', + 440000: '广东省', + 450000: '广西壮族自治区', + 460000: '海南省', + 500000: '重庆市', + 510000: '四川省', + 520000: '贵州省', + 530000: '云南省', + 540000: '西藏自治区', + 610000: '陕西省', + 620000: '甘肃省', + 630000: '青海省', + 640000: '宁夏回族自治区', + 650000: '新疆维吾尔自治区', + 710000: '台湾省', + 810000: '香港特别行政区', + 820000: '澳门特别行政区', + 900000: '海外' + }, + city_list: { + 110100: '北京市', + 120100: '天津市', + 130100: '石家庄市', + 130200: '唐山市', + 130300: '秦皇岛市', + 130400: '邯郸市', + 130500: '邢台市', + 130600: '保定市', + 130700: '张家口市', + 130800: '承德市', + 130900: '沧州市', + 131000: '廊坊市', + 131100: '衡水市', + 139000: '省直辖县', + 140100: '太原市', + 140200: '大同市', + 140300: '阳泉市', + 140400: '长治市', + 140500: '晋城市', + 140600: '朔州市', + 140700: '晋中市', + 140800: '运城市', + 140900: '忻州市', + 141000: '临汾市', + 141100: '吕梁市', + 150100: '呼和浩特市', + 150200: '包头市', + 150300: '乌海市', + 150400: '赤峰市', + 150500: '通辽市', + 150600: '鄂尔多斯市', + 150700: '呼伦贝尔市', + 150800: '巴彦淖尔市', + 150900: '乌兰察布市', + 152200: '兴安盟', + 152500: '锡林郭勒盟', + 152900: '阿拉善盟', + 210100: '沈阳市', + 210200: '大连市', + 210300: '鞍山市', + 210400: '抚顺市', + 210500: '本溪市', + 210600: '丹东市', + 210700: '锦州市', + 210800: '营口市', + 210900: '阜新市', + 211000: '辽阳市', + 211100: '盘锦市', + 211200: '铁岭市', + 211300: '朝阳市', + 211400: '葫芦岛市', + 220100: '长春市', + 220200: '吉林市', + 220300: '四平市', + 220400: '辽源市', + 220500: '通化市', + 220600: '白山市', + 220700: '松原市', + 220800: '白城市', + 222400: '延边朝鲜族自治州', + 230100: '哈尔滨市', + 230200: '齐齐哈尔市', + 230300: '鸡西市', + 230400: '鹤岗市', + 230500: '双鸭山市', + 230600: '大庆市', + 230700: '伊春市', + 230800: '佳木斯市', + 230900: '七台河市', + 231000: '牡丹江市', + 231100: '黑河市', + 231200: '绥化市', + 232700: '大兴安岭地区', + 310100: '上海市', + 320100: '南京市', + 320200: '无锡市', + 320300: '徐州市', + 320400: '常州市', + 320500: '苏州市', + 320600: '南通市', + 320700: '连云港市', + 320800: '淮安市', + 320900: '盐城市', + 321000: '扬州市', + 321100: '镇江市', + 321200: '泰州市', + 321300: '宿迁市', + 330100: '杭州市', + 330200: '宁波市', + 330300: '温州市', + 330400: '嘉兴市', + 330500: '湖州市', + 330600: '绍兴市', + 330700: '金华市', + 330800: '衢州市', + 330900: '舟山市', + 331000: '台州市', + 331100: '丽水市', + 340100: '合肥市', + 340200: '芜湖市', + 340300: '蚌埠市', + 340400: '淮南市', + 340500: '马鞍山市', + 340600: '淮北市', + 340700: '铜陵市', + 340800: '安庆市', + 341000: '黄山市', + 341100: '滁州市', + 341200: '阜阳市', + 341300: '宿州市', + 341500: '六安市', + 341600: '亳州市', + 341700: '池州市', + 341800: '宣城市', + 350100: '福州市', + 350200: '厦门市', + 350300: '莆田市', + 350400: '三明市', + 350500: '泉州市', + 350600: '漳州市', + 350700: '南平市', + 350800: '龙岩市', + 350900: '宁德市', + 360100: '南昌市', + 360200: '景德镇市', + 360300: '萍乡市', + 360400: '九江市', + 360500: '新余市', + 360600: '鹰潭市', + 360700: '赣州市', + 360800: '吉安市', + 360900: '宜春市', + 361000: '抚州市', + 361100: '上饶市', + 370100: '济南市', + 370200: '青岛市', + 370300: '淄博市', + 370400: '枣庄市', + 370500: '东营市', + 370600: '烟台市', + 370700: '潍坊市', + 370800: '济宁市', + 370900: '泰安市', + 371000: '威海市', + 371100: '日照市', + 371200: '莱芜市', + 371300: '临沂市', + 371400: '德州市', + 371500: '聊城市', + 371600: '滨州市', + 371700: '菏泽市', + 410100: '郑州市', + 410200: '开封市', + 410300: '洛阳市', + 410400: '平顶山市', + 410500: '安阳市', + 410600: '鹤壁市', + 410700: '新乡市', + 410800: '焦作市', + 410900: '濮阳市', + 411000: '许昌市', + 411100: '漯河市', + 411200: '三门峡市', + 411300: '南阳市', + 411400: '商丘市', + 411500: '信阳市', + 411600: '周口市', + 411700: '驻马店市', + 419000: '省直辖县', + 420100: '武汉市', + 420200: '黄石市', + 420300: '十堰市', + 420500: '宜昌市', + 420600: '襄阳市', + 420700: '鄂州市', + 420800: '荆门市', + 420900: '孝感市', + 421000: '荆州市', + 421100: '黄冈市', + 421200: '咸宁市', + 421300: '随州市', + 422800: '恩施土家族苗族自治州', + 429000: '省直辖县', + 430100: '长沙市', + 430200: '株洲市', + 430300: '湘潭市', + 430400: '衡阳市', + 430500: '邵阳市', + 430600: '岳阳市', + 430700: '常德市', + 430800: '张家界市', + 430900: '益阳市', + 431000: '郴州市', + 431100: '永州市', + 431200: '怀化市', + 431300: '娄底市', + 433100: '湘西土家族苗族自治州', + 440100: '广州市', + 440200: '韶关市', + 440300: '深圳市', + 440400: '珠海市', + 440500: '汕头市', + 440600: '佛山市', + 440700: '江门市', + 440800: '湛江市', + 440900: '茂名市', + 441200: '肇庆市', + 441300: '惠州市', + 441400: '梅州市', + 441500: '汕尾市', + 441600: '河源市', + 441700: '阳江市', + 441800: '清远市', + 441900: '东莞市', + 442000: '中山市', + 445100: '潮州市', + 445200: '揭阳市', + 445300: '云浮市', + 450100: '南宁市', + 450200: '柳州市', + 450300: '桂林市', + 450400: '梧州市', + 450500: '北海市', + 450600: '防城港市', + 450700: '钦州市', + 450800: '贵港市', + 450900: '玉林市', + 451000: '百色市', + 451100: '贺州市', + 451200: '河池市', + 451300: '来宾市', + 451400: '崇左市', + 460100: '海口市', + 460200: '三亚市', + 460300: '三沙市', + 460400: '儋州市', + 469000: '省直辖县', + 500100: '重庆市', + 500200: '县', + 510100: '成都市', + 510300: '自贡市', + 510400: '攀枝花市', + 510500: '泸州市', + 510600: '德阳市', + 510700: '绵阳市', + 510800: '广元市', + 510900: '遂宁市', + 511000: '内江市', + 511100: '乐山市', + 511300: '南充市', + 511400: '眉山市', + 511500: '宜宾市', + 511600: '广安市', + 511700: '达州市', + 511800: '雅安市', + 511900: '巴中市', + 512000: '资阳市', + 513200: '阿坝藏族羌族自治州', + 513300: '甘孜藏族自治州', + 513400: '凉山彝族自治州', + 520100: '贵阳市', + 520200: '六盘水市', + 520300: '遵义市', + 520400: '安顺市', + 520500: '毕节市', + 520600: '铜仁市', + 522300: '黔西南布依族苗族自治州', + 522600: '黔东南苗族侗族自治州', + 522700: '黔南布依族苗族自治州', + 530100: '昆明市', + 530300: '曲靖市', + 530400: '玉溪市', + 530500: '保山市', + 530600: '昭通市', + 530700: '丽江市', + 530800: '普洱市', + 530900: '临沧市', + 532300: '楚雄彝族自治州', + 532500: '红河哈尼族彝族自治州', + 532600: '文山壮族苗族自治州', + 532800: '西双版纳傣族自治州', + 532900: '大理白族自治州', + 533100: '德宏傣族景颇族自治州', + 533300: '怒江傈僳族自治州', + 533400: '迪庆藏族自治州', + 540100: '拉萨市', + 540200: '日喀则市', + 540300: '昌都市', + 540400: '林芝市', + 540500: '山南市', + 540600: '那曲市', + 542500: '阿里地区', + 610100: '西安市', + 610200: '铜川市', + 610300: '宝鸡市', + 610400: '咸阳市', + 610500: '渭南市', + 610600: '延安市', + 610700: '汉中市', + 610800: '榆林市', + 610900: '安康市', + 611000: '商洛市', + 620100: '兰州市', + 620200: '嘉峪关市', + 620300: '金昌市', + 620400: '白银市', + 620500: '天水市', + 620600: '武威市', + 620700: '张掖市', + 620800: '平凉市', + 620900: '酒泉市', + 621000: '庆阳市', + 621100: '定西市', + 621200: '陇南市', + 622900: '临夏回族自治州', + 623000: '甘南藏族自治州', + 630100: '西宁市', + 630200: '海东市', + 632200: '海北藏族自治州', + 632300: '黄南藏族自治州', + 632500: '海南藏族自治州', + 632600: '果洛藏族自治州', + 632700: '玉树藏族自治州', + 632800: '海西蒙古族藏族自治州', + 640100: '银川市', + 640200: '石嘴山市', + 640300: '吴忠市', + 640400: '固原市', + 640500: '中卫市', + 650100: '乌鲁木齐市', + 650200: '克拉玛依市', + 650400: '吐鲁番市', + 650500: '哈密市', + 652300: '昌吉回族自治州', + 652700: '博尔塔拉蒙古自治州', + 652800: '巴音郭楞蒙古自治州', + 652900: '阿克苏地区', + 653000: '克孜勒苏柯尔克孜自治州', + 653100: '喀什地区', + 653200: '和田地区', + 654000: '伊犁哈萨克自治州', + 654200: '塔城地区', + 654300: '阿勒泰地区', + 659000: '自治区直辖县级行政区划', + 710100: '台北市', + 710200: '高雄市', + 710300: '台南市', + 710400: '台中市', + 710500: '金门县', + 710600: '南投县', + 710700: '基隆市', + 710800: '新竹市', + 710900: '嘉义市', + 711100: '新北市', + 711200: '宜兰县', + 711300: '新竹县', + 711400: '桃园县', + 711500: '苗栗县', + 711700: '彰化县', + 711900: '嘉义县', + 712100: '云林县', + 712400: '屏东县', + 712500: '台东县', + 712600: '花莲县', + 712700: '澎湖县', + 712800: '连江县', + 810100: '香港岛', + 810200: '九龙', + 810300: '新界', + 820100: '澳门半岛', + 820200: '离岛', + 912400: '加拿大', + 941000: '韩国', + 984000: '美国' + }, + county_list: { + 110101: '东城区', + 110102: '西城区', + 110105: '朝阳区', + 110106: '丰台区', + 110107: '石景山区', + 110108: '海淀区', + 110109: '门头沟区', + 110111: '房山区', + 110112: '通州区', + 110113: '顺义区', + 110114: '昌平区', + 110115: '大兴区', + 110116: '怀柔区', + 110117: '平谷区', + 110118: '密云区', + 110119: '延庆区', + 120101: '和平区', + 120102: '河东区', + 120103: '河西区', + 120104: '南开区', + 120105: '河北区', + 120106: '红桥区', + 120110: '东丽区', + 120111: '西青区', + 120112: '津南区', + 120113: '北辰区', + 120114: '武清区', + 120115: '宝坻区', + 120116: '滨海新区', + 120117: '宁河区', + 120118: '静海区', + 120119: '蓟州区', + 130102: '长安区', + 130104: '桥西区', + 130105: '新华区', + 130107: '井陉矿区', + 130108: '裕华区', + 130109: '藁城区', + 130110: '鹿泉区', + 130111: '栾城区', + 130121: '井陉县', + 130123: '正定县', + 130125: '行唐县', + 130126: '灵寿县', + 130127: '高邑县', + 130128: '深泽县', + 130129: '赞皇县', + 130130: '无极县', + 130131: '平山县', + 130132: '元氏县', + 130133: '赵县', + 130181: '辛集市', + 130183: '晋州市', + 130184: '新乐市', + 130202: '路南区', + 130203: '路北区', + 130204: '古冶区', + 130205: '开平区', + 130207: '丰南区', + 130208: '丰润区', + 130209: '曹妃甸区', + 130223: '滦县', + 130224: '滦南县', + 130225: '乐亭县', + 130227: '迁西县', + 130229: '玉田县', + 130281: '遵化市', + 130283: '迁安市', + 130302: '海港区', + 130303: '山海关区', + 130304: '北戴河区', + 130306: '抚宁区', + 130321: '青龙满族自治县', + 130322: '昌黎县', + 130324: '卢龙县', + 130390: '经济技术开发区', + 130402: '邯山区', + 130403: '丛台区', + 130404: '复兴区', + 130406: '峰峰矿区', + 130407: '肥乡区', + 130408: '永年区', + 130423: '临漳县', + 130424: '成安县', + 130425: '大名县', + 130426: '涉县', + 130427: '磁县', + 130430: '邱县', + 130431: '鸡泽县', + 130432: '广平县', + 130433: '馆陶县', + 130434: '魏县', + 130435: '曲周县', + 130481: '武安市', + 130502: '桥东区', + 130503: '桥西区', + 130521: '邢台县', + 130522: '临城县', + 130523: '内丘县', + 130524: '柏乡县', + 130525: '隆尧县', + 130526: '任县', + 130527: '南和县', + 130528: '宁晋县', + 130529: '巨鹿县', + 130530: '新河县', + 130531: '广宗县', + 130532: '平乡县', + 130533: '威县', + 130534: '清河县', + 130535: '临西县', + 130581: '南宫市', + 130582: '沙河市', + 130602: '竞秀区', + 130606: '莲池区', + 130607: '满城区', + 130608: '清苑区', + 130609: '徐水区', + 130623: '涞水县', + 130624: '阜平县', + 130626: '定兴县', + 130627: '唐县', + 130628: '高阳县', + 130629: '容城县', + 130630: '涞源县', + 130631: '望都县', + 130632: '安新县', + 130633: '易县', + 130634: '曲阳县', + 130635: '蠡县', + 130636: '顺平县', + 130637: '博野县', + 130638: '雄县', + 130681: '涿州市', + 130682: '定州市', + 130683: '安国市', + 130684: '高碑店市', + 130702: '桥东区', + 130703: '桥西区', + 130705: '宣化区', + 130706: '下花园区', + 130708: '万全区', + 130709: '崇礼区', + 130722: '张北县', + 130723: '康保县', + 130724: '沽源县', + 130725: '尚义县', + 130726: '蔚县', + 130727: '阳原县', + 130728: '怀安县', + 130730: '怀来县', + 130731: '涿鹿县', + 130732: '赤城县', + 130802: '双桥区', + 130803: '双滦区', + 130804: '鹰手营子矿区', + 130821: '承德县', + 130822: '兴隆县', + 130824: '滦平县', + 130825: '隆化县', + 130826: '丰宁满族自治县', + 130827: '宽城满族自治县', + 130828: '围场满族蒙古族自治县', + 130881: '平泉市', + 130902: '新华区', + 130903: '运河区', + 130921: '沧县', + 130922: '青县', + 130923: '东光县', + 130924: '海兴县', + 130925: '盐山县', + 130926: '肃宁县', + 130927: '南皮县', + 130928: '吴桥县', + 130929: '献县', + 130930: '孟村回族自治县', + 130981: '泊头市', + 130982: '任丘市', + 130983: '黄骅市', + 130984: '河间市', + 131002: '安次区', + 131003: '广阳区', + 131022: '固安县', + 131023: '永清县', + 131024: '香河县', + 131025: '大城县', + 131026: '文安县', + 131028: '大厂回族自治县', + 131081: '霸州市', + 131082: '三河市', + 131090: '开发区', + 131102: '桃城区', + 131103: '冀州区', + 131121: '枣强县', + 131122: '武邑县', + 131123: '武强县', + 131124: '饶阳县', + 131125: '安平县', + 131126: '故城县', + 131127: '景县', + 131128: '阜城县', + 131182: '深州市', + 140105: '小店区', + 140106: '迎泽区', + 140107: '杏花岭区', + 140108: '尖草坪区', + 140109: '万柏林区', + 140110: '晋源区', + 140121: '清徐县', + 140122: '阳曲县', + 140123: '娄烦县', + 140181: '古交市', + 140202: '城区', + 140203: '矿区', + 140211: '南郊区', + 140212: '新荣区', + 140221: '阳高县', + 140222: '天镇县', + 140223: '广灵县', + 140224: '灵丘县', + 140225: '浑源县', + 140226: '左云县', + 140227: '大同县', + 140302: '城区', + 140303: '矿区', + 140311: '郊区', + 140321: '平定县', + 140322: '盂县', + 140402: '城区', + 140411: '郊区', + 140421: '长治县', + 140423: '襄垣县', + 140424: '屯留县', + 140425: '平顺县', + 140426: '黎城县', + 140427: '壶关县', + 140428: '长子县', + 140429: '武乡县', + 140430: '沁县', + 140431: '沁源县', + 140481: '潞城市', + 140502: '城区', + 140521: '沁水县', + 140522: '阳城县', + 140524: '陵川县', + 140525: '泽州县', + 140581: '高平市', + 140602: '朔城区', + 140603: '平鲁区', + 140621: '山阴县', + 140622: '应县', + 140623: '右玉县', + 140624: '怀仁县', + 140702: '榆次区', + 140721: '榆社县', + 140722: '左权县', + 140723: '和顺县', + 140724: '昔阳县', + 140725: '寿阳县', + 140726: '太谷县', + 140727: '祁县', + 140728: '平遥县', + 140729: '灵石县', + 140781: '介休市', + 140802: '盐湖区', + 140821: '临猗县', + 140822: '万荣县', + 140823: '闻喜县', + 140824: '稷山县', + 140825: '新绛县', + 140826: '绛县', + 140827: '垣曲县', + 140828: '夏县', + 140829: '平陆县', + 140830: '芮城县', + 140881: '永济市', + 140882: '河津市', + 140902: '忻府区', + 140921: '定襄县', + 140922: '五台县', + 140923: '代县', + 140924: '繁峙县', + 140925: '宁武县', + 140926: '静乐县', + 140927: '神池县', + 140928: '五寨县', + 140929: '岢岚县', + 140930: '河曲县', + 140931: '保德县', + 140932: '偏关县', + 140981: '原平市', + 141002: '尧都区', + 141021: '曲沃县', + 141022: '翼城县', + 141023: '襄汾县', + 141024: '洪洞县', + 141025: '古县', + 141026: '安泽县', + 141027: '浮山县', + 141028: '吉县', + 141029: '乡宁县', + 141030: '大宁县', + 141031: '隰县', + 141032: '永和县', + 141033: '蒲县', + 141034: '汾西县', + 141081: '侯马市', + 141082: '霍州市', + 141102: '离石区', + 141121: '文水县', + 141122: '交城县', + 141123: '兴县', + 141124: '临县', + 141125: '柳林县', + 141126: '石楼县', + 141127: '岚县', + 141128: '方山县', + 141129: '中阳县', + 141130: '交口县', + 141181: '孝义市', + 141182: '汾阳市', + 150102: '新城区', + 150103: '回民区', + 150104: '玉泉区', + 150105: '赛罕区', + 150121: '土默特左旗', + 150122: '托克托县', + 150123: '和林格尔县', + 150124: '清水河县', + 150125: '武川县', + 150202: '东河区', + 150203: '昆都仑区', + 150204: '青山区', + 150205: '石拐区', + 150206: '白云鄂博矿区', + 150207: '九原区', + 150221: '土默特右旗', + 150222: '固阳县', + 150223: '达尔罕茂明安联合旗', + 150302: '海勃湾区', + 150303: '海南区', + 150304: '乌达区', + 150402: '红山区', + 150403: '元宝山区', + 150404: '松山区', + 150421: '阿鲁科尔沁旗', + 150422: '巴林左旗', + 150423: '巴林右旗', + 150424: '林西县', + 150425: '克什克腾旗', + 150426: '翁牛特旗', + 150428: '喀喇沁旗', + 150429: '宁城县', + 150430: '敖汉旗', + 150502: '科尔沁区', + 150521: '科尔沁左翼中旗', + 150522: '科尔沁左翼后旗', + 150523: '开鲁县', + 150524: '库伦旗', + 150525: '奈曼旗', + 150526: '扎鲁特旗', + 150581: '霍林郭勒市', + 150602: '东胜区', + 150603: '康巴什区', + 150621: '达拉特旗', + 150622: '准格尔旗', + 150623: '鄂托克前旗', + 150624: '鄂托克旗', + 150625: '杭锦旗', + 150626: '乌审旗', + 150627: '伊金霍洛旗', + 150702: '海拉尔区', + 150703: '扎赉诺尔区', + 150721: '阿荣旗', + 150722: '莫力达瓦达斡尔族自治旗', + 150723: '鄂伦春自治旗', + 150724: '鄂温克族自治旗', + 150725: '陈巴尔虎旗', + 150726: '新巴尔虎左旗', + 150727: '新巴尔虎右旗', + 150781: '满洲里市', + 150782: '牙克石市', + 150783: '扎兰屯市', + 150784: '额尔古纳市', + 150785: '根河市', + 150802: '临河区', + 150821: '五原县', + 150822: '磴口县', + 150823: '乌拉特前旗', + 150824: '乌拉特中旗', + 150825: '乌拉特后旗', + 150826: '杭锦后旗', + 150902: '集宁区', + 150921: '卓资县', + 150922: '化德县', + 150923: '商都县', + 150924: '兴和县', + 150925: '凉城县', + 150926: '察哈尔右翼前旗', + 150927: '察哈尔右翼中旗', + 150928: '察哈尔右翼后旗', + 150929: '四子王旗', + 150981: '丰镇市', + 152201: '乌兰浩特市', + 152202: '阿尔山市', + 152221: '科尔沁右翼前旗', + 152222: '科尔沁右翼中旗', + 152223: '扎赉特旗', + 152224: '突泉县', + 152501: '二连浩特市', + 152502: '锡林浩特市', + 152522: '阿巴嘎旗', + 152523: '苏尼特左旗', + 152524: '苏尼特右旗', + 152525: '东乌珠穆沁旗', + 152526: '西乌珠穆沁旗', + 152527: '太仆寺旗', + 152528: '镶黄旗', + 152529: '正镶白旗', + 152530: '正蓝旗', + 152531: '多伦县', + 152921: '阿拉善左旗', + 152922: '阿拉善右旗', + 152923: '额济纳旗', + 210102: '和平区', + 210103: '沈河区', + 210104: '大东区', + 210105: '皇姑区', + 210106: '铁西区', + 210111: '苏家屯区', + 210112: '浑南区', + 210113: '沈北新区', + 210114: '于洪区', + 210115: '辽中区', + 210123: '康平县', + 210124: '法库县', + 210181: '新民市', + 210190: '经济技术开发区', + 210202: '中山区', + 210203: '西岗区', + 210204: '沙河口区', + 210211: '甘井子区', + 210212: '旅顺口区', + 210213: '金州区', + 210214: '普兰店区', + 210224: '长海县', + 210281: '瓦房店市', + 210283: '庄河市', + 210302: '铁东区', + 210303: '铁西区', + 210304: '立山区', + 210311: '千山区', + 210321: '台安县', + 210323: '岫岩满族自治县', + 210381: '海城市', + 210390: '高新区', + 210402: '新抚区', + 210403: '东洲区', + 210404: '望花区', + 210411: '顺城区', + 210421: '抚顺县', + 210422: '新宾满族自治县', + 210423: '清原满族自治县', + 210502: '平山区', + 210503: '溪湖区', + 210504: '明山区', + 210505: '南芬区', + 210521: '本溪满族自治县', + 210522: '桓仁满族自治县', + 210602: '元宝区', + 210603: '振兴区', + 210604: '振安区', + 210624: '宽甸满族自治县', + 210681: '东港市', + 210682: '凤城市', + 210702: '古塔区', + 210703: '凌河区', + 210711: '太和区', + 210726: '黑山县', + 210727: '义县', + 210781: '凌海市', + 210782: '北镇市', + 210793: '经济技术开发区', + 210802: '站前区', + 210803: '西市区', + 210804: '鲅鱼圈区', + 210811: '老边区', + 210881: '盖州市', + 210882: '大石桥市', + 210902: '海州区', + 210903: '新邱区', + 210904: '太平区', + 210905: '清河门区', + 210911: '细河区', + 210921: '阜新蒙古族自治县', + 210922: '彰武县', + 211002: '白塔区', + 211003: '文圣区', + 211004: '宏伟区', + 211005: '弓长岭区', + 211011: '太子河区', + 211021: '辽阳县', + 211081: '灯塔市', + 211102: '双台子区', + 211103: '兴隆台区', + 211104: '大洼区', + 211122: '盘山县', + 211202: '银州区', + 211204: '清河区', + 211221: '铁岭县', + 211223: '西丰县', + 211224: '昌图县', + 211281: '调兵山市', + 211282: '开原市', + 211302: '双塔区', + 211303: '龙城区', + 211321: '朝阳县', + 211322: '建平县', + 211324: '喀喇沁左翼蒙古族自治县', + 211381: '北票市', + 211382: '凌源市', + 211402: '连山区', + 211403: '龙港区', + 211404: '南票区', + 211421: '绥中县', + 211422: '建昌县', + 211481: '兴城市', + 215090: '工业园区', + 220102: '南关区', + 220103: '宽城区', + 220104: '朝阳区', + 220105: '二道区', + 220106: '绿园区', + 220112: '双阳区', + 220113: '九台区', + 220122: '农安县', + 220182: '榆树市', + 220183: '德惠市', + 220192: '经济技术开发区', + 220202: '昌邑区', + 220203: '龙潭区', + 220204: '船营区', + 220211: '丰满区', + 220221: '永吉县', + 220281: '蛟河市', + 220282: '桦甸市', + 220283: '舒兰市', + 220284: '磐石市', + 220302: '铁西区', + 220303: '铁东区', + 220322: '梨树县', + 220323: '伊通满族自治县', + 220381: '公主岭市', + 220382: '双辽市', + 220402: '龙山区', + 220403: '西安区', + 220421: '东丰县', + 220422: '东辽县', + 220502: '东昌区', + 220503: '二道江区', + 220521: '通化县', + 220523: '辉南县', + 220524: '柳河县', + 220581: '梅河口市', + 220582: '集安市', + 220602: '浑江区', + 220605: '江源区', + 220621: '抚松县', + 220622: '靖宇县', + 220623: '长白朝鲜族自治县', + 220681: '临江市', + 220702: '宁江区', + 220721: '前郭尔罗斯蒙古族自治县', + 220722: '长岭县', + 220723: '乾安县', + 220781: '扶余市', + 220802: '洮北区', + 220821: '镇赉县', + 220822: '通榆县', + 220881: '洮南市', + 220882: '大安市', + 221090: '工业园区', + 222401: '延吉市', + 222402: '图们市', + 222403: '敦化市', + 222404: '珲春市', + 222405: '龙井市', + 222406: '和龙市', + 222424: '汪清县', + 222426: '安图县', + 230102: '道里区', + 230103: '南岗区', + 230104: '道外区', + 230108: '平房区', + 230109: '松北区', + 230110: '香坊区', + 230111: '呼兰区', + 230112: '阿城区', + 230113: '双城区', + 230123: '依兰县', + 230124: '方正县', + 230125: '宾县', + 230126: '巴彦县', + 230127: '木兰县', + 230128: '通河县', + 230129: '延寿县', + 230183: '尚志市', + 230184: '五常市', + 230202: '龙沙区', + 230203: '建华区', + 230204: '铁锋区', + 230205: '昂昂溪区', + 230206: '富拉尔基区', + 230207: '碾子山区', + 230208: '梅里斯达斡尔族区', + 230221: '龙江县', + 230223: '依安县', + 230224: '泰来县', + 230225: '甘南县', + 230227: '富裕县', + 230229: '克山县', + 230230: '克东县', + 230231: '拜泉县', + 230281: '讷河市', + 230302: '鸡冠区', + 230303: '恒山区', + 230304: '滴道区', + 230305: '梨树区', + 230306: '城子河区', + 230307: '麻山区', + 230321: '鸡东县', + 230381: '虎林市', + 230382: '密山市', + 230402: '向阳区', + 230403: '工农区', + 230404: '南山区', + 230405: '兴安区', + 230406: '东山区', + 230407: '兴山区', + 230421: '萝北县', + 230422: '绥滨县', + 230502: '尖山区', + 230503: '岭东区', + 230505: '四方台区', + 230506: '宝山区', + 230521: '集贤县', + 230522: '友谊县', + 230523: '宝清县', + 230524: '饶河县', + 230602: '萨尔图区', + 230603: '龙凤区', + 230604: '让胡路区', + 230605: '红岗区', + 230606: '大同区', + 230621: '肇州县', + 230622: '肇源县', + 230623: '林甸县', + 230624: '杜尔伯特蒙古族自治县', + 230702: '伊春区', + 230703: '南岔区', + 230704: '友好区', + 230705: '西林区', + 230706: '翠峦区', + 230707: '新青区', + 230708: '美溪区', + 230709: '金山屯区', + 230710: '五营区', + 230711: '乌马河区', + 230712: '汤旺河区', + 230713: '带岭区', + 230714: '乌伊岭区', + 230715: '红星区', + 230716: '上甘岭区', + 230722: '嘉荫县', + 230781: '铁力市', + 230803: '向阳区', + 230804: '前进区', + 230805: '东风区', + 230811: '郊区', + 230822: '桦南县', + 230826: '桦川县', + 230828: '汤原县', + 230881: '同江市', + 230882: '富锦市', + 230883: '抚远市', + 230902: '新兴区', + 230903: '桃山区', + 230904: '茄子河区', + 230921: '勃利县', + 231002: '东安区', + 231003: '阳明区', + 231004: '爱民区', + 231005: '西安区', + 231025: '林口县', + 231081: '绥芬河市', + 231083: '海林市', + 231084: '宁安市', + 231085: '穆棱市', + 231086: '东宁市', + 231102: '爱辉区', + 231121: '嫩江县', + 231123: '逊克县', + 231124: '孙吴县', + 231181: '北安市', + 231182: '五大连池市', + 231202: '北林区', + 231221: '望奎县', + 231222: '兰西县', + 231223: '青冈县', + 231224: '庆安县', + 231225: '明水县', + 231226: '绥棱县', + 231281: '安达市', + 231282: '肇东市', + 231283: '海伦市', + 232721: '呼玛县', + 232722: '塔河县', + 232723: '漠河县', + 232790: '松岭区', + 232791: '呼中区', + 232792: '加格达奇区', + 232793: '新林区', + 310101: '黄浦区', + 310104: '徐汇区', + 310105: '长宁区', + 310106: '静安区', + 310107: '普陀区', + 310109: '虹口区', + 310110: '杨浦区', + 310112: '闵行区', + 310113: '宝山区', + 310114: '嘉定区', + 310115: '浦东新区', + 310116: '金山区', + 310117: '松江区', + 310118: '青浦区', + 310120: '奉贤区', + 310151: '崇明区', + 320102: '玄武区', + 320104: '秦淮区', + 320105: '建邺区', + 320106: '鼓楼区', + 320111: '浦口区', + 320113: '栖霞区', + 320114: '雨花台区', + 320115: '江宁区', + 320116: '六合区', + 320117: '溧水区', + 320118: '高淳区', + 320205: '锡山区', + 320206: '惠山区', + 320211: '滨湖区', + 320213: '梁溪区', + 320214: '新吴区', + 320281: '江阴市', + 320282: '宜兴市', + 320302: '鼓楼区', + 320303: '云龙区', + 320305: '贾汪区', + 320311: '泉山区', + 320312: '铜山区', + 320321: '丰县', + 320322: '沛县', + 320324: '睢宁县', + 320381: '新沂市', + 320382: '邳州市', + 320391: '工业园区', + 320402: '天宁区', + 320404: '钟楼区', + 320411: '新北区', + 320412: '武进区', + 320413: '金坛区', + 320481: '溧阳市', + 320505: '虎丘区', + 320506: '吴中区', + 320507: '相城区', + 320508: '姑苏区', + 320509: '吴江区', + 320581: '常熟市', + 320582: '张家港市', + 320583: '昆山市', + 320585: '太仓市', + 320590: '工业园区', + 320591: '高新区', + 320602: '崇川区', + 320611: '港闸区', + 320612: '通州区', + 320621: '海安县', + 320623: '如东县', + 320681: '启东市', + 320682: '如皋市', + 320684: '海门市', + 320691: '高新区', + 320703: '连云区', + 320706: '海州区', + 320707: '赣榆区', + 320722: '东海县', + 320723: '灌云县', + 320724: '灌南县', + 320803: '淮安区', + 320804: '淮阴区', + 320812: '清江浦区', + 320813: '洪泽区', + 320826: '涟水县', + 320830: '盱眙县', + 320831: '金湖县', + 320890: '经济开发区', + 320902: '亭湖区', + 320903: '盐都区', + 320904: '大丰区', + 320921: '响水县', + 320922: '滨海县', + 320923: '阜宁县', + 320924: '射阳县', + 320925: '建湖县', + 320981: '东台市', + 321002: '广陵区', + 321003: '邗江区', + 321012: '江都区', + 321023: '宝应县', + 321081: '仪征市', + 321084: '高邮市', + 321090: '经济开发区', + 321102: '京口区', + 321111: '润州区', + 321112: '丹徒区', + 321181: '丹阳市', + 321182: '扬中市', + 321183: '句容市', + 321202: '海陵区', + 321203: '高港区', + 321204: '姜堰区', + 321281: '兴化市', + 321282: '靖江市', + 321283: '泰兴市', + 321302: '宿城区', + 321311: '宿豫区', + 321322: '沭阳县', + 321323: '泗阳县', + 321324: '泗洪县', + 330102: '上城区', + 330103: '下城区', + 330104: '江干区', + 330105: '拱墅区', + 330106: '西湖区', + 330108: '滨江区', + 330109: '萧山区', + 330110: '余杭区', + 330111: '富阳区', + 330112: '临安区', + 330122: '桐庐县', + 330127: '淳安县', + 330182: '建德市', + 330203: '海曙区', + 330205: '江北区', + 330206: '北仑区', + 330211: '镇海区', + 330212: '鄞州区', + 330213: '奉化区', + 330225: '象山县', + 330226: '宁海县', + 330281: '余姚市', + 330282: '慈溪市', + 330302: '鹿城区', + 330303: '龙湾区', + 330304: '瓯海区', + 330305: '洞头区', + 330324: '永嘉县', + 330326: '平阳县', + 330327: '苍南县', + 330328: '文成县', + 330329: '泰顺县', + 330381: '瑞安市', + 330382: '乐清市', + 330402: '南湖区', + 330411: '秀洲区', + 330421: '嘉善县', + 330424: '海盐县', + 330481: '海宁市', + 330482: '平湖市', + 330483: '桐乡市', + 330502: '吴兴区', + 330503: '南浔区', + 330521: '德清县', + 330522: '长兴县', + 330523: '安吉县', + 330602: '越城区', + 330603: '柯桥区', + 330604: '上虞区', + 330624: '新昌县', + 330681: '诸暨市', + 330683: '嵊州市', + 330702: '婺城区', + 330703: '金东区', + 330723: '武义县', + 330726: '浦江县', + 330727: '磐安县', + 330781: '兰溪市', + 330782: '义乌市', + 330783: '东阳市', + 330784: '永康市', + 330802: '柯城区', + 330803: '衢江区', + 330822: '常山县', + 330824: '开化县', + 330825: '龙游县', + 330881: '江山市', + 330902: '定海区', + 330903: '普陀区', + 330921: '岱山县', + 330922: '嵊泗县', + 331002: '椒江区', + 331003: '黄岩区', + 331004: '路桥区', + 331022: '三门县', + 331023: '天台县', + 331024: '仙居县', + 331081: '温岭市', + 331082: '临海市', + 331083: '玉环市', + 331102: '莲都区', + 331121: '青田县', + 331122: '缙云县', + 331123: '遂昌县', + 331124: '松阳县', + 331125: '云和县', + 331126: '庆元县', + 331127: '景宁畲族自治县', + 331181: '龙泉市', + 340102: '瑶海区', + 340103: '庐阳区', + 340104: '蜀山区', + 340111: '包河区', + 340121: '长丰县', + 340122: '肥东县', + 340123: '肥西县', + 340124: '庐江县', + 340181: '巢湖市', + 340190: '高新技术开发区', + 340191: '经济技术开发区', + 340202: '镜湖区', + 340203: '弋江区', + 340207: '鸠江区', + 340208: '三山区', + 340221: '芜湖县', + 340222: '繁昌县', + 340223: '南陵县', + 340225: '无为县', + 340302: '龙子湖区', + 340303: '蚌山区', + 340304: '禹会区', + 340311: '淮上区', + 340321: '怀远县', + 340322: '五河县', + 340323: '固镇县', + 340402: '大通区', + 340403: '田家庵区', + 340404: '谢家集区', + 340405: '八公山区', + 340406: '潘集区', + 340421: '凤台县', + 340422: '寿县', + 340503: '花山区', + 340504: '雨山区', + 340506: '博望区', + 340521: '当涂县', + 340522: '含山县', + 340523: '和县', + 340602: '杜集区', + 340603: '相山区', + 340604: '烈山区', + 340621: '濉溪县', + 340705: '铜官区', + 340706: '义安区', + 340711: '郊区', + 340722: '枞阳县', + 340802: '迎江区', + 340803: '大观区', + 340811: '宜秀区', + 340822: '怀宁县', + 340824: '潜山县', + 340825: '太湖县', + 340826: '宿松县', + 340827: '望江县', + 340828: '岳西县', + 340881: '桐城市', + 341002: '屯溪区', + 341003: '黄山区', + 341004: '徽州区', + 341021: '歙县', + 341022: '休宁县', + 341023: '黟县', + 341024: '祁门县', + 341102: '琅琊区', + 341103: '南谯区', + 341122: '来安县', + 341124: '全椒县', + 341125: '定远县', + 341126: '凤阳县', + 341181: '天长市', + 341182: '明光市', + 341202: '颍州区', + 341203: '颍东区', + 341204: '颍泉区', + 341221: '临泉县', + 341222: '太和县', + 341225: '阜南县', + 341226: '颍上县', + 341282: '界首市', + 341302: '埇桥区', + 341321: '砀山县', + 341322: '萧县', + 341323: '灵璧县', + 341324: '泗县', + 341390: '经济开发区', + 341502: '金安区', + 341503: '裕安区', + 341504: '叶集区', + 341522: '霍邱县', + 341523: '舒城县', + 341524: '金寨县', + 341525: '霍山县', + 341602: '谯城区', + 341621: '涡阳县', + 341622: '蒙城县', + 341623: '利辛县', + 341702: '贵池区', + 341721: '东至县', + 341722: '石台县', + 341723: '青阳县', + 341802: '宣州区', + 341821: '郎溪县', + 341822: '广德县', + 341823: '泾县', + 341824: '绩溪县', + 341825: '旌德县', + 341881: '宁国市', + 350102: '鼓楼区', + 350103: '台江区', + 350104: '仓山区', + 350105: '马尾区', + 350111: '晋安区', + 350112: '长乐区', + 350121: '闽侯县', + 350122: '连江县', + 350123: '罗源县', + 350124: '闽清县', + 350125: '永泰县', + 350128: '平潭县', + 350181: '福清市', + 350203: '思明区', + 350205: '海沧区', + 350206: '湖里区', + 350211: '集美区', + 350212: '同安区', + 350213: '翔安区', + 350302: '城厢区', + 350303: '涵江区', + 350304: '荔城区', + 350305: '秀屿区', + 350322: '仙游县', + 350402: '梅列区', + 350403: '三元区', + 350421: '明溪县', + 350423: '清流县', + 350424: '宁化县', + 350425: '大田县', + 350426: '尤溪县', + 350427: '沙县', + 350428: '将乐县', + 350429: '泰宁县', + 350430: '建宁县', + 350481: '永安市', + 350502: '鲤城区', + 350503: '丰泽区', + 350504: '洛江区', + 350505: '泉港区', + 350521: '惠安县', + 350524: '安溪县', + 350525: '永春县', + 350526: '德化县', + 350527: '金门县', + 350581: '石狮市', + 350582: '晋江市', + 350583: '南安市', + 350602: '芗城区', + 350603: '龙文区', + 350622: '云霄县', + 350623: '漳浦县', + 350624: '诏安县', + 350625: '长泰县', + 350626: '东山县', + 350627: '南靖县', + 350628: '平和县', + 350629: '华安县', + 350681: '龙海市', + 350702: '延平区', + 350703: '建阳区', + 350721: '顺昌县', + 350722: '浦城县', + 350723: '光泽县', + 350724: '松溪县', + 350725: '政和县', + 350781: '邵武市', + 350782: '武夷山市', + 350783: '建瓯市', + 350802: '新罗区', + 350803: '永定区', + 350821: '长汀县', + 350823: '上杭县', + 350824: '武平县', + 350825: '连城县', + 350881: '漳平市', + 350902: '蕉城区', + 350921: '霞浦县', + 350922: '古田县', + 350923: '屏南县', + 350924: '寿宁县', + 350925: '周宁县', + 350926: '柘荣县', + 350981: '福安市', + 350982: '福鼎市', + 360102: '东湖区', + 360103: '西湖区', + 360104: '青云谱区', + 360105: '湾里区', + 360111: '青山湖区', + 360112: '新建区', + 360121: '南昌县', + 360123: '安义县', + 360124: '进贤县', + 360190: '经济技术开发区', + 360192: '高新区', + 360202: '昌江区', + 360203: '珠山区', + 360222: '浮梁县', + 360281: '乐平市', + 360302: '安源区', + 360313: '湘东区', + 360321: '莲花县', + 360322: '上栗县', + 360323: '芦溪县', + 360402: '濂溪区', + 360403: '浔阳区', + 360404: '柴桑区', + 360423: '武宁县', + 360424: '修水县', + 360425: '永修县', + 360426: '德安县', + 360428: '都昌县', + 360429: '湖口县', + 360430: '彭泽县', + 360481: '瑞昌市', + 360482: '共青城市', + 360483: '庐山市', + 360490: '经济技术开发区', + 360502: '渝水区', + 360521: '分宜县', + 360602: '月湖区', + 360622: '余江县', + 360681: '贵溪市', + 360702: '章贡区', + 360703: '南康区', + 360704: '赣县区', + 360722: '信丰县', + 360723: '大余县', + 360724: '上犹县', + 360725: '崇义县', + 360726: '安远县', + 360727: '龙南县', + 360728: '定南县', + 360729: '全南县', + 360730: '宁都县', + 360731: '于都县', + 360732: '兴国县', + 360733: '会昌县', + 360734: '寻乌县', + 360735: '石城县', + 360781: '瑞金市', + 360802: '吉州区', + 360803: '青原区', + 360821: '吉安县', + 360822: '吉水县', + 360823: '峡江县', + 360824: '新干县', + 360825: '永丰县', + 360826: '泰和县', + 360827: '遂川县', + 360828: '万安县', + 360829: '安福县', + 360830: '永新县', + 360881: '井冈山市', + 360902: '袁州区', + 360921: '奉新县', + 360922: '万载县', + 360923: '上高县', + 360924: '宜丰县', + 360925: '靖安县', + 360926: '铜鼓县', + 360981: '丰城市', + 360982: '樟树市', + 360983: '高安市', + 361002: '临川区', + 361003: '东乡区', + 361021: '南城县', + 361022: '黎川县', + 361023: '南丰县', + 361024: '崇仁县', + 361025: '乐安县', + 361026: '宜黄县', + 361027: '金溪县', + 361028: '资溪县', + 361030: '广昌县', + 361102: '信州区', + 361103: '广丰区', + 361121: '上饶县', + 361123: '玉山县', + 361124: '铅山县', + 361125: '横峰县', + 361126: '弋阳县', + 361127: '余干县', + 361128: '鄱阳县', + 361129: '万年县', + 361130: '婺源县', + 361181: '德兴市', + 370102: '历下区', + 370103: '市中区', + 370104: '槐荫区', + 370105: '天桥区', + 370112: '历城区', + 370113: '长清区', + 370114: '章丘区', + 370124: '平阴县', + 370125: '济阳县', + 370126: '商河县', + 370190: '高新区', + 370202: '市南区', + 370203: '市北区', + 370211: '黄岛区', + 370212: '崂山区', + 370213: '李沧区', + 370214: '城阳区', + 370215: '即墨区', + 370281: '胶州市', + 370283: '平度市', + 370285: '莱西市', + 370290: '开发区', + 370302: '淄川区', + 370303: '张店区', + 370304: '博山区', + 370305: '临淄区', + 370306: '周村区', + 370321: '桓台县', + 370322: '高青县', + 370323: '沂源县', + 370402: '市中区', + 370403: '薛城区', + 370404: '峄城区', + 370405: '台儿庄区', + 370406: '山亭区', + 370481: '滕州市', + 370502: '东营区', + 370503: '河口区', + 370505: '垦利区', + 370522: '利津县', + 370523: '广饶县', + 370602: '芝罘区', + 370611: '福山区', + 370612: '牟平区', + 370613: '莱山区', + 370634: '长岛县', + 370681: '龙口市', + 370682: '莱阳市', + 370683: '莱州市', + 370684: '蓬莱市', + 370685: '招远市', + 370686: '栖霞市', + 370687: '海阳市', + 370690: '开发区', + 370702: '潍城区', + 370703: '寒亭区', + 370704: '坊子区', + 370705: '奎文区', + 370724: '临朐县', + 370725: '昌乐县', + 370781: '青州市', + 370782: '诸城市', + 370783: '寿光市', + 370784: '安丘市', + 370785: '高密市', + 370786: '昌邑市', + 370790: '开发区', + 370791: '高新区', + 370811: '任城区', + 370812: '兖州区', + 370826: '微山县', + 370827: '鱼台县', + 370828: '金乡县', + 370829: '嘉祥县', + 370830: '汶上县', + 370831: '泗水县', + 370832: '梁山县', + 370881: '曲阜市', + 370883: '邹城市', + 370890: '高新区', + 370902: '泰山区', + 370911: '岱岳区', + 370921: '宁阳县', + 370923: '东平县', + 370982: '新泰市', + 370983: '肥城市', + 371002: '环翠区', + 371003: '文登区', + 371082: '荣成市', + 371083: '乳山市', + 371091: '经济技术开发区', + 371102: '东港区', + 371103: '岚山区', + 371121: '五莲县', + 371122: '莒县', + 371202: '莱城区', + 371203: '钢城区', + 371302: '兰山区', + 371311: '罗庄区', + 371312: '河东区', + 371321: '沂南县', + 371322: '郯城县', + 371323: '沂水县', + 371324: '兰陵县', + 371325: '费县', + 371326: '平邑县', + 371327: '莒南县', + 371328: '蒙阴县', + 371329: '临沭县', + 371402: '德城区', + 371403: '陵城区', + 371422: '宁津县', + 371423: '庆云县', + 371424: '临邑县', + 371425: '齐河县', + 371426: '平原县', + 371427: '夏津县', + 371428: '武城县', + 371481: '乐陵市', + 371482: '禹城市', + 371502: '东昌府区', + 371521: '阳谷县', + 371522: '莘县', + 371523: '茌平县', + 371524: '东阿县', + 371525: '冠县', + 371526: '高唐县', + 371581: '临清市', + 371602: '滨城区', + 371603: '沾化区', + 371621: '惠民县', + 371622: '阳信县', + 371623: '无棣县', + 371625: '博兴县', + 371626: '邹平县', + 371702: '牡丹区', + 371703: '定陶区', + 371721: '曹县', + 371722: '单县', + 371723: '成武县', + 371724: '巨野县', + 371725: '郓城县', + 371726: '鄄城县', + 371728: '东明县', + 410102: '中原区', + 410103: '二七区', + 410104: '管城回族区', + 410105: '金水区', + 410106: '上街区', + 410108: '惠济区', + 410122: '中牟县', + 410181: '巩义市', + 410182: '荥阳市', + 410183: '新密市', + 410184: '新郑市', + 410185: '登封市', + 410190: '高新技术开发区', + 410191: '经济技术开发区', + 410202: '龙亭区', + 410203: '顺河回族区', + 410204: '鼓楼区', + 410205: '禹王台区', + 410212: '祥符区', + 410221: '杞县', + 410222: '通许县', + 410223: '尉氏县', + 410225: '兰考县', + 410302: '老城区', + 410303: '西工区', + 410304: '瀍河回族区', + 410305: '涧西区', + 410306: '吉利区', + 410311: '洛龙区', + 410322: '孟津县', + 410323: '新安县', + 410324: '栾川县', + 410325: '嵩县', + 410326: '汝阳县', + 410327: '宜阳县', + 410328: '洛宁县', + 410329: '伊川县', + 410381: '偃师市', + 410402: '新华区', + 410403: '卫东区', + 410404: '石龙区', + 410411: '湛河区', + 410421: '宝丰县', + 410422: '叶县', + 410423: '鲁山县', + 410425: '郏县', + 410481: '舞钢市', + 410482: '汝州市', + 410502: '文峰区', + 410503: '北关区', + 410505: '殷都区', + 410506: '龙安区', + 410522: '安阳县', + 410523: '汤阴县', + 410526: '滑县', + 410527: '内黄县', + 410581: '林州市', + 410590: '开发区', + 410602: '鹤山区', + 410603: '山城区', + 410611: '淇滨区', + 410621: '浚县', + 410622: '淇县', + 410702: '红旗区', + 410703: '卫滨区', + 410704: '凤泉区', + 410711: '牧野区', + 410721: '新乡县', + 410724: '获嘉县', + 410725: '原阳县', + 410726: '延津县', + 410727: '封丘县', + 410728: '长垣县', + 410781: '卫辉市', + 410782: '辉县市', + 410802: '解放区', + 410803: '中站区', + 410804: '马村区', + 410811: '山阳区', + 410821: '修武县', + 410822: '博爱县', + 410823: '武陟县', + 410825: '温县', + 410882: '沁阳市', + 410883: '孟州市', + 410902: '华龙区', + 410922: '清丰县', + 410923: '南乐县', + 410926: '范县', + 410927: '台前县', + 410928: '濮阳县', + 411002: '魏都区', + 411003: '建安区', + 411024: '鄢陵县', + 411025: '襄城县', + 411081: '禹州市', + 411082: '长葛市', + 411102: '源汇区', + 411103: '郾城区', + 411104: '召陵区', + 411121: '舞阳县', + 411122: '临颍县', + 411202: '湖滨区', + 411203: '陕州区', + 411221: '渑池县', + 411224: '卢氏县', + 411281: '义马市', + 411282: '灵宝市', + 411302: '宛城区', + 411303: '卧龙区', + 411321: '南召县', + 411322: '方城县', + 411323: '西峡县', + 411324: '镇平县', + 411325: '内乡县', + 411326: '淅川县', + 411327: '社旗县', + 411328: '唐河县', + 411329: '新野县', + 411330: '桐柏县', + 411381: '邓州市', + 411402: '梁园区', + 411403: '睢阳区', + 411421: '民权县', + 411422: '睢县', + 411423: '宁陵县', + 411424: '柘城县', + 411425: '虞城县', + 411426: '夏邑县', + 411481: '永城市', + 411502: '浉河区', + 411503: '平桥区', + 411521: '罗山县', + 411522: '光山县', + 411523: '新县', + 411524: '商城县', + 411525: '固始县', + 411526: '潢川县', + 411527: '淮滨县', + 411528: '息县', + 411602: '川汇区', + 411621: '扶沟县', + 411622: '西华县', + 411623: '商水县', + 411624: '沈丘县', + 411625: '郸城县', + 411626: '淮阳县', + 411627: '太康县', + 411628: '鹿邑县', + 411681: '项城市', + 411690: '经济开发区', + 411702: '驿城区', + 411721: '西平县', + 411722: '上蔡县', + 411723: '平舆县', + 411724: '正阳县', + 411725: '确山县', + 411726: '泌阳县', + 411727: '汝南县', + 411728: '遂平县', + 411729: '新蔡县', + 419001: '济源市', + 420102: '江岸区', + 420103: '江汉区', + 420104: '硚口区', + 420105: '汉阳区', + 420106: '武昌区', + 420107: '青山区', + 420111: '洪山区', + 420112: '东西湖区', + 420113: '汉南区', + 420114: '蔡甸区', + 420115: '江夏区', + 420116: '黄陂区', + 420117: '新洲区', + 420202: '黄石港区', + 420203: '西塞山区', + 420204: '下陆区', + 420205: '铁山区', + 420222: '阳新县', + 420281: '大冶市', + 420302: '茅箭区', + 420303: '张湾区', + 420304: '郧阳区', + 420322: '郧西县', + 420323: '竹山县', + 420324: '竹溪县', + 420325: '房县', + 420381: '丹江口市', + 420502: '西陵区', + 420503: '伍家岗区', + 420504: '点军区', + 420505: '猇亭区', + 420506: '夷陵区', + 420525: '远安县', + 420526: '兴山县', + 420527: '秭归县', + 420528: '长阳土家族自治县', + 420529: '五峰土家族自治县', + 420581: '宜都市', + 420582: '当阳市', + 420583: '枝江市', + 420590: '经济开发区', + 420602: '襄城区', + 420606: '樊城区', + 420607: '襄州区', + 420624: '南漳县', + 420625: '谷城县', + 420626: '保康县', + 420682: '老河口市', + 420683: '枣阳市', + 420684: '宜城市', + 420702: '梁子湖区', + 420703: '华容区', + 420704: '鄂城区', + 420802: '东宝区', + 420804: '掇刀区', + 420821: '京山县', + 420822: '沙洋县', + 420881: '钟祥市', + 420902: '孝南区', + 420921: '孝昌县', + 420922: '大悟县', + 420923: '云梦县', + 420981: '应城市', + 420982: '安陆市', + 420984: '汉川市', + 421002: '沙市区', + 421003: '荆州区', + 421022: '公安县', + 421023: '监利县', + 421024: '江陵县', + 421081: '石首市', + 421083: '洪湖市', + 421087: '松滋市', + 421102: '黄州区', + 421121: '团风县', + 421122: '红安县', + 421123: '罗田县', + 421124: '英山县', + 421125: '浠水县', + 421126: '蕲春县', + 421127: '黄梅县', + 421181: '麻城市', + 421182: '武穴市', + 421202: '咸安区', + 421221: '嘉鱼县', + 421222: '通城县', + 421223: '崇阳县', + 421224: '通山县', + 421281: '赤壁市', + 421303: '曾都区', + 421321: '随县', + 421381: '广水市', + 422801: '恩施市', + 422802: '利川市', + 422822: '建始县', + 422823: '巴东县', + 422825: '宣恩县', + 422826: '咸丰县', + 422827: '来凤县', + 422828: '鹤峰县', + 429004: '仙桃市', + 429005: '潜江市', + 429006: '天门市', + 429021: '神农架林区', + 430102: '芙蓉区', + 430103: '天心区', + 430104: '岳麓区', + 430105: '开福区', + 430111: '雨花区', + 430112: '望城区', + 430121: '长沙县', + 430181: '浏阳市', + 430182: '宁乡市', + 430202: '荷塘区', + 430203: '芦淞区', + 430204: '石峰区', + 430211: '天元区', + 430221: '株洲县', + 430223: '攸县', + 430224: '茶陵县', + 430225: '炎陵县', + 430281: '醴陵市', + 430302: '雨湖区', + 430304: '岳塘区', + 430321: '湘潭县', + 430381: '湘乡市', + 430382: '韶山市', + 430405: '珠晖区', + 430406: '雁峰区', + 430407: '石鼓区', + 430408: '蒸湘区', + 430412: '南岳区', + 430421: '衡阳县', + 430422: '衡南县', + 430423: '衡山县', + 430424: '衡东县', + 430426: '祁东县', + 430481: '耒阳市', + 430482: '常宁市', + 430502: '双清区', + 430503: '大祥区', + 430511: '北塔区', + 430521: '邵东县', + 430522: '新邵县', + 430523: '邵阳县', + 430524: '隆回县', + 430525: '洞口县', + 430527: '绥宁县', + 430528: '新宁县', + 430529: '城步苗族自治县', + 430581: '武冈市', + 430602: '岳阳楼区', + 430603: '云溪区', + 430611: '君山区', + 430621: '岳阳县', + 430623: '华容县', + 430624: '湘阴县', + 430626: '平江县', + 430681: '汨罗市', + 430682: '临湘市', + 430702: '武陵区', + 430703: '鼎城区', + 430721: '安乡县', + 430722: '汉寿县', + 430723: '澧县', + 430724: '临澧县', + 430725: '桃源县', + 430726: '石门县', + 430781: '津市市', + 430802: '永定区', + 430811: '武陵源区', + 430821: '慈利县', + 430822: '桑植县', + 430902: '资阳区', + 430903: '赫山区', + 430921: '南县', + 430922: '桃江县', + 430923: '安化县', + 430981: '沅江市', + 431002: '北湖区', + 431003: '苏仙区', + 431021: '桂阳县', + 431022: '宜章县', + 431023: '永兴县', + 431024: '嘉禾县', + 431025: '临武县', + 431026: '汝城县', + 431027: '桂东县', + 431028: '安仁县', + 431081: '资兴市', + 431102: '零陵区', + 431103: '冷水滩区', + 431121: '祁阳县', + 431122: '东安县', + 431123: '双牌县', + 431124: '道县', + 431125: '江永县', + 431126: '宁远县', + 431127: '蓝山县', + 431128: '新田县', + 431129: '江华瑶族自治县', + 431202: '鹤城区', + 431221: '中方县', + 431222: '沅陵县', + 431223: '辰溪县', + 431224: '溆浦县', + 431225: '会同县', + 431226: '麻阳苗族自治县', + 431227: '新晃侗族自治县', + 431228: '芷江侗族自治县', + 431229: '靖州苗族侗族自治县', + 431230: '通道侗族自治县', + 431281: '洪江市', + 431302: '娄星区', + 431321: '双峰县', + 431322: '新化县', + 431381: '冷水江市', + 431382: '涟源市', + 433101: '吉首市', + 433122: '泸溪县', + 433123: '凤凰县', + 433124: '花垣县', + 433125: '保靖县', + 433126: '古丈县', + 433127: '永顺县', + 433130: '龙山县', + 440103: '荔湾区', + 440104: '越秀区', + 440105: '海珠区', + 440106: '天河区', + 440111: '白云区', + 440112: '黄埔区', + 440113: '番禺区', + 440114: '花都区', + 440115: '南沙区', + 440117: '从化区', + 440118: '增城区', + 440203: '武江区', + 440204: '浈江区', + 440205: '曲江区', + 440222: '始兴县', + 440224: '仁化县', + 440229: '翁源县', + 440232: '乳源瑶族自治县', + 440233: '新丰县', + 440281: '乐昌市', + 440282: '南雄市', + 440303: '罗湖区', + 440304: '福田区', + 440305: '南山区', + 440306: '宝安区', + 440307: '龙岗区', + 440308: '盐田区', + 440309: '龙华区', + 440310: '坪山区', + 440402: '香洲区', + 440403: '斗门区', + 440404: '金湾区', + 440507: '龙湖区', + 440511: '金平区', + 440512: '濠江区', + 440513: '潮阳区', + 440514: '潮南区', + 440515: '澄海区', + 440523: '南澳县', + 440604: '禅城区', + 440605: '南海区', + 440606: '顺德区', + 440607: '三水区', + 440608: '高明区', + 440703: '蓬江区', + 440704: '江海区', + 440705: '新会区', + 440781: '台山市', + 440783: '开平市', + 440784: '鹤山市', + 440785: '恩平市', + 440802: '赤坎区', + 440803: '霞山区', + 440804: '坡头区', + 440811: '麻章区', + 440823: '遂溪县', + 440825: '徐闻县', + 440881: '廉江市', + 440882: '雷州市', + 440883: '吴川市', + 440890: '经济技术开发区', + 440902: '茂南区', + 440904: '电白区', + 440981: '高州市', + 440982: '化州市', + 440983: '信宜市', + 441202: '端州区', + 441203: '鼎湖区', + 441204: '高要区', + 441223: '广宁县', + 441224: '怀集县', + 441225: '封开县', + 441226: '德庆县', + 441284: '四会市', + 441302: '惠城区', + 441303: '惠阳区', + 441322: '博罗县', + 441323: '惠东县', + 441324: '龙门县', + 441402: '梅江区', + 441403: '梅县区', + 441422: '大埔县', + 441423: '丰顺县', + 441424: '五华县', + 441426: '平远县', + 441427: '蕉岭县', + 441481: '兴宁市', + 441502: '城区', + 441521: '海丰县', + 441523: '陆河县', + 441581: '陆丰市', + 441602: '源城区', + 441621: '紫金县', + 441622: '龙川县', + 441623: '连平县', + 441624: '和平县', + 441625: '东源县', + 441702: '江城区', + 441704: '阳东区', + 441721: '阳西县', + 441781: '阳春市', + 441802: '清城区', + 441803: '清新区', + 441821: '佛冈县', + 441823: '阳山县', + 441825: '连山壮族瑶族自治县', + 441826: '连南瑶族自治县', + 441881: '英德市', + 441882: '连州市', + 441901: '中堂镇', + 441903: '南城区', + 441904: '长安镇', + 441905: '东坑镇', + 441906: '樟木头镇', + 441907: '莞城区', + 441908: '石龙镇', + 441909: '桥头镇', + 441910: '万江区', + 441911: '麻涌镇', + 441912: '虎门镇', + 441913: '谢岗镇', + 441914: '石碣镇', + 441915: '茶山镇', + 441916: '东城区', + 441917: '洪梅镇', + 441918: '道滘镇', + 441919: '高埗镇', + 441920: '企石镇', + 441921: '凤岗镇', + 441922: '大岭山镇', + 441923: '松山湖', + 441924: '清溪镇', + 441925: '望牛墩镇', + 441926: '厚街镇', + 441927: '常平镇', + 441928: '寮步镇', + 441929: '石排镇', + 441930: '横沥镇', + 441931: '塘厦镇', + 441932: '黄江镇', + 441933: '大朗镇', + 441990: '沙田镇', + 442001: '南头镇', + 442002: '神湾镇', + 442003: '东凤镇', + 442004: '五桂山镇', + 442005: '黄圃镇', + 442006: '小榄镇', + 442007: '石岐区街道', + 442008: '横栏镇', + 442009: '三角镇', + 442010: '三乡镇', + 442011: '港口镇', + 442012: '沙溪镇', + 442013: '板芙镇', + 442014: '沙朗镇', + 442015: '东升镇', + 442016: '阜沙镇', + 442017: '民众镇', + 442018: '东区街道', + 442019: '火炬开发区', + 442020: '西区街道', + 442021: '南区街道', + 442022: '古镇', + 442023: '坦洲镇', + 442024: '大涌镇', + 442025: '南朗镇', + 445102: '湘桥区', + 445103: '潮安区', + 445122: '饶平县', + 445202: '榕城区', + 445203: '揭东区', + 445222: '揭西县', + 445224: '惠来县', + 445281: '普宁市', + 445302: '云城区', + 445303: '云安区', + 445321: '新兴县', + 445322: '郁南县', + 445381: '罗定市', + 450102: '兴宁区', + 450103: '青秀区', + 450105: '江南区', + 450107: '西乡塘区', + 450108: '良庆区', + 450109: '邕宁区', + 450110: '武鸣区', + 450123: '隆安县', + 450124: '马山县', + 450125: '上林县', + 450126: '宾阳县', + 450127: '横县', + 450202: '城中区', + 450203: '鱼峰区', + 450204: '柳南区', + 450205: '柳北区', + 450206: '柳江区', + 450222: '柳城县', + 450223: '鹿寨县', + 450224: '融安县', + 450225: '融水苗族自治县', + 450226: '三江侗族自治县', + 450302: '秀峰区', + 450303: '叠彩区', + 450304: '象山区', + 450305: '七星区', + 450311: '雁山区', + 450312: '临桂区', + 450321: '阳朔县', + 450323: '灵川县', + 450324: '全州县', + 450325: '兴安县', + 450326: '永福县', + 450327: '灌阳县', + 450328: '龙胜各族自治县', + 450329: '资源县', + 450330: '平乐县', + 450331: '荔浦县', + 450332: '恭城瑶族自治县', + 450403: '万秀区', + 450405: '长洲区', + 450406: '龙圩区', + 450421: '苍梧县', + 450422: '藤县', + 450423: '蒙山县', + 450481: '岑溪市', + 450502: '海城区', + 450503: '银海区', + 450512: '铁山港区', + 450521: '合浦县', + 450602: '港口区', + 450603: '防城区', + 450621: '上思县', + 450681: '东兴市', + 450702: '钦南区', + 450703: '钦北区', + 450721: '灵山县', + 450722: '浦北县', + 450802: '港北区', + 450803: '港南区', + 450804: '覃塘区', + 450821: '平南县', + 450881: '桂平市', + 450902: '玉州区', + 450903: '福绵区', + 450921: '容县', + 450922: '陆川县', + 450923: '博白县', + 450924: '兴业县', + 450981: '北流市', + 451002: '右江区', + 451021: '田阳县', + 451022: '田东县', + 451023: '平果县', + 451024: '德保县', + 451026: '那坡县', + 451027: '凌云县', + 451028: '乐业县', + 451029: '田林县', + 451030: '西林县', + 451031: '隆林各族自治县', + 451081: '靖西市', + 451102: '八步区', + 451103: '平桂区', + 451121: '昭平县', + 451122: '钟山县', + 451123: '富川瑶族自治县', + 451202: '金城江区', + 451203: '宜州区', + 451221: '南丹县', + 451222: '天峨县', + 451223: '凤山县', + 451224: '东兰县', + 451225: '罗城仫佬族自治县', + 451226: '环江毛南族自治县', + 451227: '巴马瑶族自治县', + 451228: '都安瑶族自治县', + 451229: '大化瑶族自治县', + 451302: '兴宾区', + 451321: '忻城县', + 451322: '象州县', + 451323: '武宣县', + 451324: '金秀瑶族自治县', + 451381: '合山市', + 451402: '江州区', + 451421: '扶绥县', + 451422: '宁明县', + 451423: '龙州县', + 451424: '大新县', + 451425: '天等县', + 451481: '凭祥市', + 460105: '秀英区', + 460106: '龙华区', + 460107: '琼山区', + 460108: '美兰区', + 460202: '海棠区', + 460203: '吉阳区', + 460204: '天涯区', + 460205: '崖州区', + 460321: '西沙群岛', + 460322: '南沙群岛', + 460323: '中沙群岛的岛礁及其海域', + 460401: '那大镇', + 460402: '和庆镇', + 460403: '南丰镇', + 460404: '大成镇', + 460405: '雅星镇', + 460406: '兰洋镇', + 460407: '光村镇', + 460408: '木棠镇', + 460409: '海头镇', + 460410: '峨蔓镇', + 460411: '王五镇', + 460412: '白马井镇', + 460413: '中和镇', + 460414: '排浦镇', + 460415: '东成镇', + 460416: '新州镇', + 469001: '五指山市', + 469002: '琼海市', + 469005: '文昌市', + 469006: '万宁市', + 469007: '东方市', + 469021: '定安县', + 469022: '屯昌县', + 469023: '澄迈县', + 469024: '临高县', + 469025: '白沙黎族自治县', + 469026: '昌江黎族自治县', + 469027: '乐东黎族自治县', + 469028: '陵水黎族自治县', + 469029: '保亭黎族苗族自治县', + 469030: '琼中黎族苗族自治县', + 500101: '万州区', + 500102: '涪陵区', + 500103: '渝中区', + 500104: '大渡口区', + 500105: '江北区', + 500106: '沙坪坝区', + 500107: '九龙坡区', + 500108: '南岸区', + 500109: '北碚区', + 500110: '綦江区', + 500111: '大足区', + 500112: '渝北区', + 500113: '巴南区', + 500114: '黔江区', + 500115: '长寿区', + 500116: '江津区', + 500117: '合川区', + 500118: '永川区', + 500119: '南川区', + 500120: '璧山区', + 500151: '铜梁区', + 500152: '潼南区', + 500153: '荣昌区', + 500154: '开州区', + 500155: '梁平区', + 500156: '武隆区', + 500229: '城口县', + 500230: '丰都县', + 500231: '垫江县', + 500233: '忠县', + 500235: '云阳县', + 500236: '奉节县', + 500237: '巫山县', + 500238: '巫溪县', + 500240: '石柱土家族自治县', + 500241: '秀山土家族苗族自治县', + 500242: '酉阳土家族苗族自治县', + 500243: '彭水苗族土家族自治县', + 510104: '锦江区', + 510105: '青羊区', + 510106: '金牛区', + 510107: '武侯区', + 510108: '成华区', + 510112: '龙泉驿区', + 510113: '青白江区', + 510114: '新都区', + 510115: '温江区', + 510116: '双流区', + 510117: '郫都区', + 510121: '金堂县', + 510129: '大邑县', + 510131: '蒲江县', + 510132: '新津县', + 510181: '都江堰市', + 510182: '彭州市', + 510183: '邛崃市', + 510184: '崇州市', + 510185: '简阳市', + 510191: '高新区', + 510302: '自流井区', + 510303: '贡井区', + 510304: '大安区', + 510311: '沿滩区', + 510321: '荣县', + 510322: '富顺县', + 510402: '东区', + 510403: '西区', + 510411: '仁和区', + 510421: '米易县', + 510422: '盐边县', + 510502: '江阳区', + 510503: '纳溪区', + 510504: '龙马潭区', + 510521: '泸县', + 510522: '合江县', + 510524: '叙永县', + 510525: '古蔺县', + 510603: '旌阳区', + 510604: '罗江区', + 510623: '中江县', + 510681: '广汉市', + 510682: '什邡市', + 510683: '绵竹市', + 510703: '涪城区', + 510704: '游仙区', + 510705: '安州区', + 510722: '三台县', + 510723: '盐亭县', + 510725: '梓潼县', + 510726: '北川羌族自治县', + 510727: '平武县', + 510781: '江油市', + 510791: '高新区', + 510802: '利州区', + 510811: '昭化区', + 510812: '朝天区', + 510821: '旺苍县', + 510822: '青川县', + 510823: '剑阁县', + 510824: '苍溪县', + 510903: '船山区', + 510904: '安居区', + 510921: '蓬溪县', + 510922: '射洪县', + 510923: '大英县', + 511002: '市中区', + 511011: '东兴区', + 511024: '威远县', + 511025: '资中县', + 511083: '隆昌市', + 511102: '市中区', + 511111: '沙湾区', + 511112: '五通桥区', + 511113: '金口河区', + 511123: '犍为县', + 511124: '井研县', + 511126: '夹江县', + 511129: '沐川县', + 511132: '峨边彝族自治县', + 511133: '马边彝族自治县', + 511181: '峨眉山市', + 511302: '顺庆区', + 511303: '高坪区', + 511304: '嘉陵区', + 511321: '南部县', + 511322: '营山县', + 511323: '蓬安县', + 511324: '仪陇县', + 511325: '西充县', + 511381: '阆中市', + 511402: '东坡区', + 511403: '彭山区', + 511421: '仁寿县', + 511423: '洪雅县', + 511424: '丹棱县', + 511425: '青神县', + 511502: '翠屏区', + 511503: '南溪区', + 511521: '宜宾县', + 511523: '江安县', + 511524: '长宁县', + 511525: '高县', + 511526: '珙县', + 511527: '筠连县', + 511528: '兴文县', + 511529: '屏山县', + 511602: '广安区', + 511603: '前锋区', + 511621: '岳池县', + 511622: '武胜县', + 511623: '邻水县', + 511681: '华蓥市', + 511702: '通川区', + 511703: '达川区', + 511722: '宣汉县', + 511723: '开江县', + 511724: '大竹县', + 511725: '渠县', + 511781: '万源市', + 511802: '雨城区', + 511803: '名山区', + 511822: '荥经县', + 511823: '汉源县', + 511824: '石棉县', + 511825: '天全县', + 511826: '芦山县', + 511827: '宝兴县', + 511902: '巴州区', + 511903: '恩阳区', + 511921: '通江县', + 511922: '南江县', + 511923: '平昌县', + 512002: '雁江区', + 512021: '安岳县', + 512022: '乐至县', + 513201: '马尔康市', + 513221: '汶川县', + 513222: '理县', + 513223: '茂县', + 513224: '松潘县', + 513225: '九寨沟县', + 513226: '金川县', + 513227: '小金县', + 513228: '黑水县', + 513230: '壤塘县', + 513231: '阿坝县', + 513232: '若尔盖县', + 513233: '红原县', + 513301: '康定市', + 513322: '泸定县', + 513323: '丹巴县', + 513324: '九龙县', + 513325: '雅江县', + 513326: '道孚县', + 513327: '炉霍县', + 513328: '甘孜县', + 513329: '新龙县', + 513330: '德格县', + 513331: '白玉县', + 513332: '石渠县', + 513333: '色达县', + 513334: '理塘县', + 513335: '巴塘县', + 513336: '乡城县', + 513337: '稻城县', + 513338: '得荣县', + 513401: '西昌市', + 513422: '木里藏族自治县', + 513423: '盐源县', + 513424: '德昌县', + 513425: '会理县', + 513426: '会东县', + 513427: '宁南县', + 513428: '普格县', + 513429: '布拖县', + 513430: '金阳县', + 513431: '昭觉县', + 513432: '喜德县', + 513433: '冕宁县', + 513434: '越西县', + 513435: '甘洛县', + 513436: '美姑县', + 513437: '雷波县', + 520102: '南明区', + 520103: '云岩区', + 520111: '花溪区', + 520112: '乌当区', + 520113: '白云区', + 520115: '观山湖区', + 520121: '开阳县', + 520122: '息烽县', + 520123: '修文县', + 520181: '清镇市', + 520201: '钟山区', + 520203: '六枝特区', + 520221: '水城县', + 520281: '盘州市', + 520302: '红花岗区', + 520303: '汇川区', + 520304: '播州区', + 520322: '桐梓县', + 520323: '绥阳县', + 520324: '正安县', + 520325: '道真仡佬族苗族自治县', + 520326: '务川仡佬族苗族自治县', + 520327: '凤冈县', + 520328: '湄潭县', + 520329: '余庆县', + 520330: '习水县', + 520381: '赤水市', + 520382: '仁怀市', + 520402: '西秀区', + 520403: '平坝区', + 520422: '普定县', + 520423: '镇宁布依族苗族自治县', + 520424: '关岭布依族苗族自治县', + 520425: '紫云苗族布依族自治县', + 520502: '七星关区', + 520521: '大方县', + 520522: '黔西县', + 520523: '金沙县', + 520524: '织金县', + 520525: '纳雍县', + 520526: '威宁彝族回族苗族自治县', + 520527: '赫章县', + 520602: '碧江区', + 520603: '万山区', + 520621: '江口县', + 520622: '玉屏侗族自治县', + 520623: '石阡县', + 520624: '思南县', + 520625: '印江土家族苗族自治县', + 520626: '德江县', + 520627: '沿河土家族自治县', + 520628: '松桃苗族自治县', + 522301: '兴义市', + 522322: '兴仁县', + 522323: '普安县', + 522324: '晴隆县', + 522325: '贞丰县', + 522326: '望谟县', + 522327: '册亨县', + 522328: '安龙县', + 522601: '凯里市', + 522622: '黄平县', + 522623: '施秉县', + 522624: '三穗县', + 522625: '镇远县', + 522626: '岑巩县', + 522627: '天柱县', + 522628: '锦屏县', + 522629: '剑河县', + 522630: '台江县', + 522631: '黎平县', + 522632: '榕江县', + 522633: '从江县', + 522634: '雷山县', + 522635: '麻江县', + 522636: '丹寨县', + 522701: '都匀市', + 522702: '福泉市', + 522722: '荔波县', + 522723: '贵定县', + 522725: '瓮安县', + 522726: '独山县', + 522727: '平塘县', + 522728: '罗甸县', + 522729: '长顺县', + 522730: '龙里县', + 522731: '惠水县', + 522732: '三都水族自治县', + 530102: '五华区', + 530103: '盘龙区', + 530111: '官渡区', + 530112: '西山区', + 530113: '东川区', + 530114: '呈贡区', + 530115: '晋宁区', + 530124: '富民县', + 530125: '宜良县', + 530126: '石林彝族自治县', + 530127: '嵩明县', + 530128: '禄劝彝族苗族自治县', + 530129: '寻甸回族彝族自治县', + 530181: '安宁市', + 530302: '麒麟区', + 530303: '沾益区', + 530321: '马龙县', + 530322: '陆良县', + 530323: '师宗县', + 530324: '罗平县', + 530325: '富源县', + 530326: '会泽县', + 530381: '宣威市', + 530402: '红塔区', + 530403: '江川区', + 530422: '澄江县', + 530423: '通海县', + 530424: '华宁县', + 530425: '易门县', + 530426: '峨山彝族自治县', + 530427: '新平彝族傣族自治县', + 530428: '元江哈尼族彝族傣族自治县', + 530502: '隆阳区', + 530521: '施甸县', + 530523: '龙陵县', + 530524: '昌宁县', + 530581: '腾冲市', + 530602: '昭阳区', + 530621: '鲁甸县', + 530622: '巧家县', + 530623: '盐津县', + 530624: '大关县', + 530625: '永善县', + 530626: '绥江县', + 530627: '镇雄县', + 530628: '彝良县', + 530629: '威信县', + 530630: '水富县', + 530702: '古城区', + 530721: '玉龙纳西族自治县', + 530722: '永胜县', + 530723: '华坪县', + 530724: '宁蒗彝族自治县', + 530802: '思茅区', + 530821: '宁洱哈尼族彝族自治县', + 530822: '墨江哈尼族自治县', + 530823: '景东彝族自治县', + 530824: '景谷傣族彝族自治县', + 530825: '镇沅彝族哈尼族拉祜族自治县', + 530826: '江城哈尼族彝族自治县', + 530827: '孟连傣族拉祜族佤族自治县', + 530828: '澜沧拉祜族自治县', + 530829: '西盟佤族自治县', + 530902: '临翔区', + 530921: '凤庆县', + 530922: '云县', + 530923: '永德县', + 530924: '镇康县', + 530925: '双江拉祜族佤族布朗族傣族自治县', + 530926: '耿马傣族佤族自治县', + 530927: '沧源佤族自治县', + 532301: '楚雄市', + 532322: '双柏县', + 532323: '牟定县', + 532324: '南华县', + 532325: '姚安县', + 532326: '大姚县', + 532327: '永仁县', + 532328: '元谋县', + 532329: '武定县', + 532331: '禄丰县', + 532501: '个旧市', + 532502: '开远市', + 532503: '蒙自市', + 532504: '弥勒市', + 532523: '屏边苗族自治县', + 532524: '建水县', + 532525: '石屏县', + 532527: '泸西县', + 532528: '元阳县', + 532529: '红河县', + 532530: '金平苗族瑶族傣族自治县', + 532531: '绿春县', + 532532: '河口瑶族自治县', + 532601: '文山市', + 532622: '砚山县', + 532623: '西畴县', + 532624: '麻栗坡县', + 532625: '马关县', + 532626: '丘北县', + 532627: '广南县', + 532628: '富宁县', + 532801: '景洪市', + 532822: '勐海县', + 532823: '勐腊县', + 532901: '大理市', + 532922: '漾濞彝族自治县', + 532923: '祥云县', + 532924: '宾川县', + 532925: '弥渡县', + 532926: '南涧彝族自治县', + 532927: '巍山彝族回族自治县', + 532928: '永平县', + 532929: '云龙县', + 532930: '洱源县', + 532931: '剑川县', + 532932: '鹤庆县', + 533102: '瑞丽市', + 533103: '芒市', + 533122: '梁河县', + 533123: '盈江县', + 533124: '陇川县', + 533301: '泸水市', + 533323: '福贡县', + 533324: '贡山独龙族怒族自治县', + 533325: '兰坪白族普米族自治县', + 533401: '香格里拉市', + 533422: '德钦县', + 533423: '维西傈僳族自治县', + 540102: '城关区', + 540103: '堆龙德庆区', + 540104: '达孜区', + 540121: '林周县', + 540122: '当雄县', + 540123: '尼木县', + 540124: '曲水县', + 540127: '墨竹工卡县', + 540202: '桑珠孜区', + 540221: '南木林县', + 540222: '江孜县', + 540223: '定日县', + 540224: '萨迦县', + 540225: '拉孜县', + 540226: '昂仁县', + 540227: '谢通门县', + 540228: '白朗县', + 540229: '仁布县', + 540230: '康马县', + 540231: '定结县', + 540232: '仲巴县', + 540233: '亚东县', + 540234: '吉隆县', + 540235: '聂拉木县', + 540236: '萨嘎县', + 540237: '岗巴县', + 540302: '卡若区', + 540321: '江达县', + 540322: '贡觉县', + 540323: '类乌齐县', + 540324: '丁青县', + 540325: '察雅县', + 540326: '八宿县', + 540327: '左贡县', + 540328: '芒康县', + 540329: '洛隆县', + 540330: '边坝县', + 540402: '巴宜区', + 540421: '工布江达县', + 540422: '米林县', + 540423: '墨脱县', + 540424: '波密县', + 540425: '察隅县', + 540426: '朗县', + 540502: '乃东区', + 540521: '扎囊县', + 540522: '贡嘎县', + 540523: '桑日县', + 540524: '琼结县', + 540525: '曲松县', + 540526: '措美县', + 540527: '洛扎县', + 540528: '加查县', + 540529: '隆子县', + 540530: '错那县', + 540531: '浪卡子县', + 540602: '色尼区', + 542421: '那曲县', + 542422: '嘉黎县', + 542423: '比如县', + 542424: '聂荣县', + 542425: '安多县', + 542426: '申扎县', + 542427: '索县', + 542428: '班戈县', + 542429: '巴青县', + 542430: '尼玛县', + 542431: '双湖县', + 542521: '普兰县', + 542522: '札达县', + 542523: '噶尔县', + 542524: '日土县', + 542525: '革吉县', + 542526: '改则县', + 542527: '措勤县', + 610102: '新城区', + 610103: '碑林区', + 610104: '莲湖区', + 610111: '灞桥区', + 610112: '未央区', + 610113: '雁塔区', + 610114: '阎良区', + 610115: '临潼区', + 610116: '长安区', + 610117: '高陵区', + 610118: '鄠邑区', + 610122: '蓝田县', + 610124: '周至县', + 610202: '王益区', + 610203: '印台区', + 610204: '耀州区', + 610222: '宜君县', + 610302: '渭滨区', + 610303: '金台区', + 610304: '陈仓区', + 610322: '凤翔县', + 610323: '岐山县', + 610324: '扶风县', + 610326: '眉县', + 610327: '陇县', + 610328: '千阳县', + 610329: '麟游县', + 610330: '凤县', + 610331: '太白县', + 610402: '秦都区', + 610403: '杨陵区', + 610404: '渭城区', + 610422: '三原县', + 610423: '泾阳县', + 610424: '乾县', + 610425: '礼泉县', + 610426: '永寿县', + 610427: '彬县', + 610428: '长武县', + 610429: '旬邑县', + 610430: '淳化县', + 610431: '武功县', + 610481: '兴平市', + 610502: '临渭区', + 610503: '华州区', + 610522: '潼关县', + 610523: '大荔县', + 610524: '合阳县', + 610525: '澄城县', + 610526: '蒲城县', + 610527: '白水县', + 610528: '富平县', + 610581: '韩城市', + 610582: '华阴市', + 610602: '宝塔区', + 610603: '安塞区', + 610621: '延长县', + 610622: '延川县', + 610623: '子长县', + 610625: '志丹县', + 610626: '吴起县', + 610627: '甘泉县', + 610628: '富县', + 610629: '洛川县', + 610630: '宜川县', + 610631: '黄龙县', + 610632: '黄陵县', + 610702: '汉台区', + 610703: '南郑区', + 610722: '城固县', + 610723: '洋县', + 610724: '西乡县', + 610725: '勉县', + 610726: '宁强县', + 610727: '略阳县', + 610728: '镇巴县', + 610729: '留坝县', + 610730: '佛坪县', + 610802: '榆阳区', + 610803: '横山区', + 610822: '府谷县', + 610824: '靖边县', + 610825: '定边县', + 610826: '绥德县', + 610827: '米脂县', + 610828: '佳县', + 610829: '吴堡县', + 610830: '清涧县', + 610831: '子洲县', + 610881: '神木市', + 610902: '汉滨区', + 610921: '汉阴县', + 610922: '石泉县', + 610923: '宁陕县', + 610924: '紫阳县', + 610925: '岚皋县', + 610926: '平利县', + 610927: '镇坪县', + 610928: '旬阳县', + 610929: '白河县', + 611002: '商州区', + 611021: '洛南县', + 611022: '丹凤县', + 611023: '商南县', + 611024: '山阳县', + 611025: '镇安县', + 611026: '柞水县', + 620102: '城关区', + 620103: '七里河区', + 620104: '西固区', + 620105: '安宁区', + 620111: '红古区', + 620121: '永登县', + 620122: '皋兰县', + 620123: '榆中县', + 620201: '市辖区', + 620290: '雄关区', + 620291: '长城区', + 620292: '镜铁区', + 620293: '新城镇', + 620294: '峪泉镇', + 620295: '文殊镇', + 620302: '金川区', + 620321: '永昌县', + 620402: '白银区', + 620403: '平川区', + 620421: '靖远县', + 620422: '会宁县', + 620423: '景泰县', + 620502: '秦州区', + 620503: '麦积区', + 620521: '清水县', + 620522: '秦安县', + 620523: '甘谷县', + 620524: '武山县', + 620525: '张家川回族自治县', + 620602: '凉州区', + 620621: '民勤县', + 620622: '古浪县', + 620623: '天祝藏族自治县', + 620702: '甘州区', + 620721: '肃南裕固族自治县', + 620722: '民乐县', + 620723: '临泽县', + 620724: '高台县', + 620725: '山丹县', + 620802: '崆峒区', + 620821: '泾川县', + 620822: '灵台县', + 620823: '崇信县', + 620824: '华亭县', + 620825: '庄浪县', + 620826: '静宁县', + 620902: '肃州区', + 620921: '金塔县', + 620922: '瓜州县', + 620923: '肃北蒙古族自治县', + 620924: '阿克塞哈萨克族自治县', + 620981: '玉门市', + 620982: '敦煌市', + 621002: '西峰区', + 621021: '庆城县', + 621022: '环县', + 621023: '华池县', + 621024: '合水县', + 621025: '正宁县', + 621026: '宁县', + 621027: '镇原县', + 621102: '安定区', + 621121: '通渭县', + 621122: '陇西县', + 621123: '渭源县', + 621124: '临洮县', + 621125: '漳县', + 621126: '岷县', + 621202: '武都区', + 621221: '成县', + 621222: '文县', + 621223: '宕昌县', + 621224: '康县', + 621225: '西和县', + 621226: '礼县', + 621227: '徽县', + 621228: '两当县', + 622901: '临夏市', + 622921: '临夏县', + 622922: '康乐县', + 622923: '永靖县', + 622924: '广河县', + 622925: '和政县', + 622926: '东乡族自治县', + 622927: '积石山保安族东乡族撒拉族自治县', + 623001: '合作市', + 623021: '临潭县', + 623022: '卓尼县', + 623023: '舟曲县', + 623024: '迭部县', + 623025: '玛曲县', + 623026: '碌曲县', + 623027: '夏河县', + 630102: '城东区', + 630103: '城中区', + 630104: '城西区', + 630105: '城北区', + 630121: '大通回族土族自治县', + 630122: '湟中县', + 630123: '湟源县', + 630202: '乐都区', + 630203: '平安区', + 630222: '民和回族土族自治县', + 630223: '互助土族自治县', + 630224: '化隆回族自治县', + 630225: '循化撒拉族自治县', + 632221: '门源回族自治县', + 632222: '祁连县', + 632223: '海晏县', + 632224: '刚察县', + 632321: '同仁县', + 632322: '尖扎县', + 632323: '泽库县', + 632324: '河南蒙古族自治县', + 632521: '共和县', + 632522: '同德县', + 632523: '贵德县', + 632524: '兴海县', + 632525: '贵南县', + 632621: '玛沁县', + 632622: '班玛县', + 632623: '甘德县', + 632624: '达日县', + 632625: '久治县', + 632626: '玛多县', + 632701: '玉树市', + 632722: '杂多县', + 632723: '称多县', + 632724: '治多县', + 632725: '囊谦县', + 632726: '曲麻莱县', + 632801: '格尔木市', + 632802: '德令哈市', + 632821: '乌兰县', + 632822: '都兰县', + 632823: '天峻县', + 640104: '兴庆区', + 640105: '西夏区', + 640106: '金凤区', + 640121: '永宁县', + 640122: '贺兰县', + 640181: '灵武市', + 640202: '大武口区', + 640205: '惠农区', + 640221: '平罗县', + 640302: '利通区', + 640303: '红寺堡区', + 640323: '盐池县', + 640324: '同心县', + 640381: '青铜峡市', + 640402: '原州区', + 640422: '西吉县', + 640423: '隆德县', + 640424: '泾源县', + 640425: '彭阳县', + 640502: '沙坡头区', + 640521: '中宁县', + 640522: '海原县', + 650102: '天山区', + 650103: '沙依巴克区', + 650104: '新市区', + 650105: '水磨沟区', + 650106: '头屯河区', + 650107: '达坂城区', + 650109: '米东区', + 650121: '乌鲁木齐县', + 650202: '独山子区', + 650203: '克拉玛依区', + 650204: '白碱滩区', + 650205: '乌尔禾区', + 650402: '高昌区', + 650421: '鄯善县', + 650422: '托克逊县', + 650502: '伊州区', + 650521: '巴里坤哈萨克自治县', + 650522: '伊吾县', + 652301: '昌吉市', + 652302: '阜康市', + 652323: '呼图壁县', + 652324: '玛纳斯县', + 652325: '奇台县', + 652327: '吉木萨尔县', + 652328: '木垒哈萨克自治县', + 652701: '博乐市', + 652702: '阿拉山口市', + 652722: '精河县', + 652723: '温泉县', + 652801: '库尔勒市', + 652822: '轮台县', + 652823: '尉犁县', + 652824: '若羌县', + 652825: '且末县', + 652826: '焉耆回族自治县', + 652827: '和静县', + 652828: '和硕县', + 652829: '博湖县', + 652901: '阿克苏市', + 652922: '温宿县', + 652923: '库车县', + 652924: '沙雅县', + 652925: '新和县', + 652926: '拜城县', + 652927: '乌什县', + 652928: '阿瓦提县', + 652929: '柯坪县', + 653001: '阿图什市', + 653022: '阿克陶县', + 653023: '阿合奇县', + 653024: '乌恰县', + 653101: '喀什市', + 653121: '疏附县', + 653122: '疏勒县', + 653123: '英吉沙县', + 653124: '泽普县', + 653125: '莎车县', + 653126: '叶城县', + 653127: '麦盖提县', + 653128: '岳普湖县', + 653129: '伽师县', + 653130: '巴楚县', + 653131: '塔什库尔干塔吉克自治县', + 653201: '和田市', + 653221: '和田县', + 653222: '墨玉县', + 653223: '皮山县', + 653224: '洛浦县', + 653225: '策勒县', + 653226: '于田县', + 653227: '民丰县', + 654002: '伊宁市', + 654003: '奎屯市', + 654004: '霍尔果斯市', + 654021: '伊宁县', + 654022: '察布查尔锡伯自治县', + 654023: '霍城县', + 654024: '巩留县', + 654025: '新源县', + 654026: '昭苏县', + 654027: '特克斯县', + 654028: '尼勒克县', + 654201: '塔城市', + 654202: '乌苏市', + 654221: '额敏县', + 654223: '沙湾县', + 654224: '托里县', + 654225: '裕民县', + 654226: '和布克赛尔蒙古自治县', + 654301: '阿勒泰市', + 654321: '布尔津县', + 654322: '富蕴县', + 654323: '福海县', + 654324: '哈巴河县', + 654325: '青河县', + 654326: '吉木乃县', + 659001: '石河子市', + 659002: '阿拉尔市', + 659003: '图木舒克市', + 659004: '五家渠市', + 659005: '北屯市', + 659006: '铁门关市', + 659007: '双河市', + 659008: '可克达拉市', + 659009: '昆玉市', + 710101: '中正区', + 710102: '大同区', + 710103: '中山区', + 710104: '松山区', + 710105: '大安区', + 710106: '万华区', + 710107: '信义区', + 710108: '士林区', + 710109: '北投区', + 710110: '内湖区', + 710111: '南港区', + 710112: '文山区', + 710199: '其它区', + 710201: '新兴区', + 710202: '前金区', + 710203: '芩雅区', + 710204: '盐埕区', + 710205: '鼓山区', + 710206: '旗津区', + 710207: '前镇区', + 710208: '三民区', + 710209: '左营区', + 710210: '楠梓区', + 710211: '小港区', + 710241: '苓雅区', + 710242: '仁武区', + 710243: '大社区', + 710244: '冈山区', + 710245: '路竹区', + 710246: '阿莲区', + 710247: '田寮区', + 710248: '燕巢区', + 710249: '桥头区', + 710250: '梓官区', + 710251: '弥陀区', + 710252: '永安区', + 710253: '湖内区', + 710254: '凤山区', + 710255: '大寮区', + 710256: '林园区', + 710257: '鸟松区', + 710258: '大树区', + 710259: '旗山区', + 710260: '美浓区', + 710261: '六龟区', + 710262: '内门区', + 710263: '杉林区', + 710264: '甲仙区', + 710265: '桃源区', + 710266: '那玛夏区', + 710267: '茂林区', + 710268: '茄萣区', + 710299: '其它区', + 710301: '中西区', + 710302: '东区', + 710303: '南区', + 710304: '北区', + 710305: '安平区', + 710306: '安南区', + 710339: '永康区', + 710340: '归仁区', + 710341: '新化区', + 710342: '左镇区', + 710343: '玉井区', + 710344: '楠西区', + 710345: '南化区', + 710346: '仁德区', + 710347: '关庙区', + 710348: '龙崎区', + 710349: '官田区', + 710350: '麻豆区', + 710351: '佳里区', + 710352: '西港区', + 710353: '七股区', + 710354: '将军区', + 710355: '学甲区', + 710356: '北门区', + 710357: '新营区', + 710358: '后壁区', + 710359: '白河区', + 710360: '东山区', + 710361: '六甲区', + 710362: '下营区', + 710363: '柳营区', + 710364: '盐水区', + 710365: '善化区', + 710366: '大内区', + 710367: '山上区', + 710368: '新市区', + 710369: '安定区', + 710399: '其它区', + 710401: '中区', + 710402: '东区', + 710403: '南区', + 710404: '西区', + 710405: '北区', + 710406: '北屯区', + 710407: '西屯区', + 710408: '南屯区', + 710431: '太平区', + 710432: '大里区', + 710433: '雾峰区', + 710434: '乌日区', + 710435: '丰原区', + 710436: '后里区', + 710437: '石冈区', + 710438: '东势区', + 710439: '和平区', + 710440: '新社区', + 710441: '潭子区', + 710442: '大雅区', + 710443: '神冈区', + 710444: '大肚区', + 710445: '沙鹿区', + 710446: '龙井区', + 710447: '梧栖区', + 710448: '清水区', + 710449: '大甲区', + 710450: '外埔区', + 710451: '大安区', + 710499: '其它区', + 710507: '金沙镇', + 710508: '金湖镇', + 710509: '金宁乡', + 710510: '金城镇', + 710511: '烈屿乡', + 710512: '乌坵乡', + 710614: '南投市', + 710615: '中寮乡', + 710616: '草屯镇', + 710617: '国姓乡', + 710618: '埔里镇', + 710619: '仁爱乡', + 710620: '名间乡', + 710621: '集集镇', + 710622: '水里乡', + 710623: '鱼池乡', + 710624: '信义乡', + 710625: '竹山镇', + 710626: '鹿谷乡', + 710701: '仁爱区', + 710702: '信义区', + 710703: '中正区', + 710704: '中山区', + 710705: '安乐区', + 710706: '暖暖区', + 710707: '七堵区', + 710799: '其它区', + 710801: '东区', + 710802: '北区', + 710803: '香山区', + 710899: '其它区', + 710901: '东区', + 710902: '西区', + 710999: '其它区', + 711130: '万里区', + 711132: '板桥区', + 711133: '汐止区', + 711134: '深坑区', + 711136: '瑞芳区', + 711137: '平溪区', + 711138: '双溪区', + 711140: '新店区', + 711141: '坪林区', + 711142: '乌来区', + 711143: '永和区', + 711144: '中和区', + 711145: '土城区', + 711146: '三峡区', + 711147: '树林区', + 711149: '三重区', + 711150: '新庄区', + 711151: '泰山区', + 711152: '林口区', + 711154: '五股区', + 711155: '八里区', + 711156: '淡水区', + 711157: '三芝区', + 711287: '宜兰市', + 711288: '头城镇', + 711289: '礁溪乡', + 711290: '壮围乡', + 711291: '员山乡', + 711292: '罗东镇', + 711293: '三星乡', + 711294: '大同乡', + 711295: '五结乡', + 711296: '冬山乡', + 711297: '苏澳镇', + 711298: '南澳乡', + 711299: '钓鱼台', + 711387: '竹北市', + 711388: '湖口乡', + 711389: '新丰乡', + 711390: '新埔镇', + 711391: '关西镇', + 711392: '芎林乡', + 711393: '宝山乡', + 711394: '竹东镇', + 711395: '五峰乡', + 711396: '横山乡', + 711397: '尖石乡', + 711398: '北埔乡', + 711399: '峨眉乡', + 711487: '中坜市', + 711488: '平镇市', + 711489: '龙潭乡', + 711490: '杨梅市', + 711491: '新屋乡', + 711492: '观音乡', + 711493: '桃园市', + 711494: '龟山乡', + 711495: '八德市', + 711496: '大溪镇', + 711497: '复兴乡', + 711498: '大园乡', + 711499: '芦竹乡', + 711582: '竹南镇', + 711583: '头份镇', + 711584: '三湾乡', + 711585: '南庄乡', + 711586: '狮潭乡', + 711587: '后龙镇', + 711588: '通霄镇', + 711589: '苑里镇', + 711590: '苗栗市', + 711591: '造桥乡', + 711592: '头屋乡', + 711593: '公馆乡', + 711594: '大湖乡', + 711595: '泰安乡', + 711596: '铜锣乡', + 711597: '三义乡', + 711598: '西湖乡', + 711599: '卓兰镇', + 711774: '彰化市', + 711775: '芬园乡', + 711776: '花坛乡', + 711777: '秀水乡', + 711778: '鹿港镇', + 711779: '福兴乡', + 711780: '线西乡', + 711781: '和美镇', + 711782: '伸港乡', + 711783: '员林镇', + 711784: '社头乡', + 711785: '永靖乡', + 711786: '埔心乡', + 711787: '溪湖镇', + 711788: '大村乡', + 711789: '埔盐乡', + 711790: '田中镇', + 711791: '北斗镇', + 711792: '田尾乡', + 711793: '埤头乡', + 711794: '溪州乡', + 711795: '竹塘乡', + 711796: '二林镇', + 711797: '大城乡', + 711798: '芳苑乡', + 711799: '二水乡', + 711982: '番路乡', + 711983: '梅山乡', + 711984: '竹崎乡', + 711985: '阿里山乡', + 711986: '中埔乡', + 711987: '大埔乡', + 711988: '水上乡', + 711989: '鹿草乡', + 711990: '太保市', + 711991: '朴子市', + 711992: '东石乡', + 711993: '六脚乡', + 711994: '新港乡', + 711995: '民雄乡', + 711996: '大林镇', + 711997: '溪口乡', + 711998: '义竹乡', + 711999: '布袋镇', + 712180: '斗南镇', + 712181: '大埤乡', + 712182: '虎尾镇', + 712183: '土库镇', + 712184: '褒忠乡', + 712185: '东势乡', + 712186: '台西乡', + 712187: '仑背乡', + 712188: '麦寮乡', + 712189: '斗六市', + 712190: '林内乡', + 712191: '古坑乡', + 712192: '莿桐乡', + 712193: '西螺镇', + 712194: '二仑乡', + 712195: '北港镇', + 712196: '水林乡', + 712197: '口湖乡', + 712198: '四湖乡', + 712199: '元长乡', + 712467: '屏东市', + 712468: '三地门乡', + 712469: '雾台乡', + 712470: '玛家乡', + 712471: '九如乡', + 712472: '里港乡', + 712473: '高树乡', + 712474: '盐埔乡', + 712475: '长治乡', + 712476: '麟洛乡', + 712477: '竹田乡', + 712478: '内埔乡', + 712479: '万丹乡', + 712480: '潮州镇', + 712481: '泰武乡', + 712482: '来义乡', + 712483: '万峦乡', + 712484: '莰顶乡', + 712485: '新埤乡', + 712486: '南州乡', + 712487: '林边乡', + 712488: '东港镇', + 712489: '琉球乡', + 712490: '佳冬乡', + 712491: '新园乡', + 712492: '枋寮乡', + 712493: '枋山乡', + 712494: '春日乡', + 712495: '狮子乡', + 712496: '车城乡', + 712497: '牡丹乡', + 712498: '恒春镇', + 712499: '满州乡', + 712584: '台东市', + 712585: '绿岛乡', + 712586: '兰屿乡', + 712587: '延平乡', + 712588: '卑南乡', + 712589: '鹿野乡', + 712590: '关山镇', + 712591: '海端乡', + 712592: '池上乡', + 712593: '东河乡', + 712594: '成功镇', + 712595: '长滨乡', + 712596: '金峰乡', + 712597: '大武乡', + 712598: '达仁乡', + 712599: '太麻里乡', + 712686: '花莲市', + 712687: '新城乡', + 712688: '太鲁阁', + 712689: '秀林乡', + 712690: '吉安乡', + 712691: '寿丰乡', + 712692: '凤林镇', + 712693: '光复乡', + 712694: '丰滨乡', + 712695: '瑞穗乡', + 712696: '万荣乡', + 712697: '玉里镇', + 712698: '卓溪乡', + 712699: '富里乡', + 712794: '马公市', + 712795: '西屿乡', + 712796: '望安乡', + 712797: '七美乡', + 712798: '白沙乡', + 712799: '湖西乡', + 712896: '南竿乡', + 712897: '北竿乡', + 712898: '东引乡', + 712899: '莒光乡', + 810101: '中西区', + 810102: '湾仔', + 810103: '东区', + 810104: '南区', + 810201: '九龙城区', + 810202: '油尖旺区', + 810203: '深水埗区', + 810204: '黄大仙区', + 810205: '观塘区', + 810301: '北区', + 810302: '大埔区', + 810303: '沙田区', + 810304: '西贡区', + 810305: '元朗区', + 810306: '屯门区', + 810307: '荃湾区', + 810308: '葵青区', + 810309: '离岛区', + 820101: '澳门半岛', + 820201: '离岛' + } + }; + + + Class.prototype.config = { + elem: '', + data: { + province: '', + city: '', + county: '', + provinceCode: 0, + cityCode: 0, + countyCode: 0, + }, + change: function(result){} + }; + + Class.prototype.index = 0; + + Class.prototype.render = function () { + let that = this, options = that.config; + options.elem = $(options.elem); + options.bindAction = $(options.bindAction); + + that.events(); + }; + + Class.prototype.events = function () { + let that = this, options = that.config, index; + let provinceFilter = 'province-' + layarea._id; + let cityFilter = 'city-' + layarea._id; + let countyFilter = 'county-' + layarea._id; + + let provinceEl = options.elem.find('.province-selector'); + let cityEl = options.elem.find('.city-selector'); + let countyEl = options.elem.find('.county-selector'); + + //filter + if(provinceEl.attr('lay-filter')){ + provinceFilter = provinceEl.attr('lay-filter'); + } + if(cityEl.attr('lay-filter')){ + cityFilter = cityEl.attr('lay-filter'); + } + if(countyEl.attr('lay-filter')){ + countyFilter = countyEl.attr('lay-filter'); + } + provinceEl.attr('lay-filter', provinceFilter); + cityEl.attr('lay-filter', cityFilter); + countyEl.attr('lay-filter', countyFilter); + + //获取默认值 + if(provinceEl.data('value')){ + options.data.province = provinceEl.data('value'); + options.data.provinceCode = getCode('province', options.data.province); + } + if(cityEl.data('value')){ + options.data.city = cityEl.data('value'); + let code = getCode('city', options.data.city, options.data.provinceCode.slice(0, 2)); + options.data.cityCode = code; + } + if(countyEl.data('value')){ + options.data.county = countyEl.data('value'); + options.data.countyCode = getCode('county', options.data.county, options.data.cityCode.slice(0, 4)); + } + provinceEl.attr('lay-filter', provinceFilter); + cityEl.attr('lay-filter', cityFilter); + countyEl.attr('lay-filter', countyFilter); + + //监听结果 + form.on('select('+provinceFilter+')', function(data){ + options.data.province = data.value; + options.data.provinceCode = getCode('province', data.value); + renderCity(options.data.provinceCode); + + options.change(options.data); + }); + form.on('select('+cityFilter+')', function(data){ + options.data.city = data.value; + if(options.data.provinceCode){ + options.data.cityCode = getCode('city', data.value, options.data.provinceCode.slice(0, 2)); + renderCounty(options.data.cityCode); + } + + options.change(options.data); + }); + form.on('select('+countyFilter+')', function(data){ + options.data.county = data.value; + if(options.data.cityCode){ + options.data.countyCode = getCode('county', data.value, options.data.cityCode.slice(0, 4)); + } + options.change(options.data); + }); + + renderProvince(); + + //查找province + function renderProvince(){ + let tpl = ''; + let provinceList = getList("province"); + let currentCode = ''; + let currentName = ''; + provinceList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.province){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + provinceEl.html(tpl); + provinceEl.val(options.data.province); + form.render('select'); + renderCity(currentCode); + } + + function renderCity(provinceCode){ + let tpl = ''; + let cityList = getList('city', provinceCode.slice(0, 2)); + let currentCode = ''; + let currentName = ''; + cityList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.city){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + options.data.city = currentName; + cityEl.html(tpl); + cityEl.val(options.data.city); + form.render('select'); + renderCounty(currentCode); + } + + function renderCounty(cityCode){ + let tpl = ''; + let countyList = getList('county', cityCode.slice(0, 4)); + let currentCode = ''; + let currentName = ''; + countyList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.county){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + options.data.county = currentName; + countyEl.html(tpl); + countyEl.val(options.data.county); + + form.render('select'); + } + + function getList(type, code) { + let result = []; + + if (type !== 'province' && !code) { + return result; + } + + let list = areaList[type + "_list"] || {}; + result = Object.keys(list).map(function (code) { + return { + code: code, + name: list[code] + }; + }); + + if (code) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + + result = result.filter(function (item) { + return item.code.indexOf(code) === 0; + }); + } + + return result; + } + + function getCode(type, name, parentCode = 0){ + let code = ''; + let list = areaList[type + "_list"] || {}; + let result = {}; + Object.keys(list).map(function (_code) { + if(parentCode){ + if(_code.indexOf(parentCode) === 0){ + result[_code] = list[_code]; + } + }else{ + result[_code] = list[_code]; + } + }); + layui.each(result, function(_code, _name){ + if(_name === name){ + code = _code; + } + }); + + return code; + } + }; + + layarea.render = function (options) { + let inst = new Class(options); + layarea._id++; + return thisArea.call(inst); + }; + + //暴露接口 + exports('layarea', layarea); +}); \ No newline at end of file diff --git a/target/classes/static/js/lay-module/layuimini/miniAdmin.js b/target/classes/static/js/lay-module/layuimini/miniAdmin.js new file mode 100644 index 00000000..08b4b6b8 --- /dev/null +++ b/target/classes/static/js/lay-module/layuimini/miniAdmin.js @@ -0,0 +1,350 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 主体框架扩展 + */ +layui.define(["jquery", "miniMenu", "element","miniTab", "miniTheme"], function (exports) { + var $ = layui.$, + layer = layui.layer, + miniMenu = layui.miniMenu, + miniTheme = layui.miniTheme, + element = layui.element , + miniTab = layui.miniTab; + + if (!/http(s*):\/\//.test(location.href)) { + var tips = "请先将项目部署至web容器(Apache/Tomcat/Nginx/IIS/等),否则部分数据将无法显示"; + return layer.alert(tips); + } + + var miniAdmin = { + + /** + * 后台框架初始化 + * @param options.iniUrl 后台初始化接口地址 + * @param options.clearUrl 后台清理缓存接口 + * @param options.urlHashLocation URL地址hash定位 + * @param options.bgColorDefault 默认皮肤 + * @param options.multiModule 是否开启多模块 + * @param options.menuChildOpen 是否展开子菜单 + * @param options.loadingTime 初始化加载时间 + * @param options.pageAnim iframe窗口动画 + * @param options.maxTabNum 最大的tab打开数量 + */ + render: function (options) { + options.iniUrl = options.iniUrl || null; + options.clearUrl = options.clearUrl || null; + options.urlHashLocation = options.urlHashLocation || false; + options.bgColorDefault = options.bgColorDefault || 0; + options.multiModule = options.multiModule || false; + options.menuChildOpen = options.menuChildOpen || false; + options.loadingTime = options.loadingTime || 1; + options.pageAnim = options.pageAnim || false; + options.maxTabNum = options.maxTabNum || 20; + $.getJSON(options.iniUrl, function (data) { + if (data == null) { + miniAdmin.error('暂无菜单信息') + } else { + miniAdmin.renderLogo(data.logoInfo); + miniAdmin.renderClear(options.clearUrl); + miniAdmin.renderHome(data.homeInfo); + miniAdmin.renderAnim(options.pageAnim); + miniAdmin.listen(); + miniMenu.render({ + menuList: data.menuInfo, + multiModule: options.multiModule, + menuChildOpen: options.menuChildOpen + }); + miniTab.render({ + filter: 'layuiminiTab', + urlHashLocation: options.urlHashLocation, + multiModule: options.multiModule, + menuChildOpen: options.menuChildOpen, + maxTabNum: options.maxTabNum, + menuList: data.menuInfo, + homeInfo: data.homeInfo, + listenSwichCallback: function () { + miniAdmin.renderDevice(); + } + }); + miniTheme.render({ + bgColorDefault: options.bgColorDefault, + listen: true, + }); + miniAdmin.deleteLoader(options.loadingTime); + } + }).fail(function () { + miniAdmin.error('菜单接口有误'); + }); + }, + + /** + * 初始化logo + * @param data + */ + renderLogo: function (data) { + var html = '
          logo

          ' + data.title + '

          '; + $('.layuimini-logo').html(html); + }, + + /** + * 初始化首页 + * @param data + */ + renderHome: function (data) { + sessionStorage.setItem('layuiminiHomeHref', data.href); + $('#layuiminiHomeTabId').html('' + data.title + ''); + $('#layuiminiHomeTabId').attr('lay-id', data.href); + $('#layuiminiHomeTabIframe').html(''); + }, + + /** + * 初始化缓存地址 + * @param clearUrl + */ + renderClear: function (clearUrl) { + $('.layuimini-clear').attr('data-href',clearUrl); + }, + + /** + * 初始化iframe窗口动画 + * @param anim + */ + renderAnim: function (anim) { + if (anim) { + $('#layuimini-bg-color').after(''); + } + }, + + fullScreen: function () { + var el = document.documentElement; + var rfs = el.requestFullScreen || el.webkitRequestFullScreen; + if (typeof rfs != "undefined" && rfs) { + rfs.call(el); + } else if (typeof window.ActiveXObject != "undefined") { + var wscript = new ActiveXObject("WScript.Shell"); + if (wscript != null) { + wscript.SendKeys("{F11}"); + } + } else if (el.msRequestFullscreen) { + el.msRequestFullscreen(); + } else if (el.oRequestFullscreen) { + el.oRequestFullscreen(); + } else if (el.webkitRequestFullscreen) { + el.webkitRequestFullscreen(); + } else if (el.mozRequestFullScreen) { + el.mozRequestFullScreen(); + } else { + miniAdmin.error('浏览器不支持全屏调用!'); + } + }, + + /** + * 退出全屏 + */ + exitFullScreen: function () { + var el = document; + var cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.exitFullScreen; + if (typeof cfs != "undefined" && cfs) { + cfs.call(el); + } else if (typeof window.ActiveXObject != "undefined") { + var wscript = new ActiveXObject("WScript.Shell"); + if (wscript != null) { + wscript.SendKeys("{F11}"); + } + } else if (el.msExitFullscreen) { + el.msExitFullscreen(); + } else if (el.oRequestFullscreen) { + el.oCancelFullScreen(); + }else if (el.mozCancelFullScreen) { + el.mozCancelFullScreen(); + } else if (el.webkitCancelFullScreen) { + el.webkitCancelFullScreen(); + } else { + miniAdmin.error('浏览器不支持全屏调用!'); + } + }, + + /** + * 初始化设备端 + */ + renderDevice: function () { + if (miniAdmin.checkMobile()) { + $('.layuimini-tool i').attr('data-side-fold', 1); + $('.layuimini-tool i').attr('class', 'fa fa-outdent'); + $('.layui-layout-body').removeClass('layuimini-mini'); + $('.layui-layout-body').addClass('layuimini-all'); + } + }, + + + /** + * 初始化加载时间 + * @param loadingTime + */ + deleteLoader: function (loadingTime) { + setTimeout(function () { + $('.layuimini-loader').fadeOut(); + }, loadingTime * 1000) + }, + + /** + * 成功 + * @param title + * @returns {*} + */ + success: function (title) { + return layer.msg(title, {icon: 1, shade: this.shade, scrollbar: false, time: 2000, shadeClose: true}); + }, + + /** + * 失败 + * @param title + * @returns {*} + */ + error: function (title) { + return layer.msg(title, {icon: 2, shade: this.shade, scrollbar: false, time: 3000, shadeClose: true}); + }, + + /** + * 判断是否为手机 + * @returns {boolean} + */ + 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 > 1024) { + return false; + } else { + return true; + } + }, + + /** + * 监听 + */ + listen: function () { + + /** + * 清理 + */ + $('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 miniAdmin.error(data.msg); + } else { + return miniAdmin.success(data.msg); + } + }).fail(function () { + layer.close(loading); + return miniAdmin.error('清理缓存接口有误'); + }); + } else { + layer.close(loading); + return miniAdmin.success('清除缓存成功'); + } + }); + + /** + * 刷新 + */ + $('body').on('click', '[data-refresh]', function () { + $(".layui-tab-item.layui-show").find("iframe")[0].contentWindow.location.reload(); + miniAdmin.success('刷新成功'); + }); + + /** + * 监听提示信息 + */ + $("body").on("mouseenter", ".layui-nav-tree .menu-li", function () { + if (miniAdmin.checkMobile()) { + return false; + } + var classInfo = $(this).attr('class'), + tips = $(this).prop("innerHTML"), + isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0 && tips) { + tips = "
          • "+tips+"
          " ; + window.openTips = layer.tips(tips, $(this), { + tips: [2, '#2f4056'], + time: 300000, + skin:"popup-tips", + success:function (el) { + var left = $(el).position().left - 10 ; + $(el).css({ left:left }); + element.render(); + } + }); + } + }); + + $("body").on("mouseleave", ".popup-tips", function () { + if (miniAdmin.checkMobile()) { + return false; + } + var isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0) { + try { + layer.close(window.openTips); + } catch (e) { + console.log(e.message); + } + } + }); + + + /** + * 全屏 + */ + $('body').on('click', '[data-check-screen]', function () { + var check = $(this).attr('data-check-screen'); + if (check == 'full') { + miniAdmin.fullScreen(); + $(this).attr('data-check-screen', 'exit'); + $(this).html(''); + } else { + miniAdmin.exitFullScreen(); + $(this).attr('data-check-screen', 'full'); + $(this).html(''); + } + }); + + /** + * 点击遮罩层 + */ + $('body').on('click', '.layuimini-make', function () { + miniAdmin.renderDevice(); + }); + + } + }; + + + exports("miniAdmin", miniAdmin); +}); diff --git a/target/classes/static/js/lay-module/layuimini/miniMenu.js b/target/classes/static/js/lay-module/layuimini/miniMenu.js new file mode 100644 index 00000000..507eae35 --- /dev/null +++ b/target/classes/static/js/lay-module/layuimini/miniMenu.js @@ -0,0 +1,250 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 菜单框架扩展 + */ +layui.define(["element","laytpl" ,"jquery"], function (exports) { + var element = layui.element, + $ = layui.$, + laytpl = layui.laytpl, + layer = layui.layer; + + var miniMenu = { + + /** + * 菜单初始化 + * @param options.menuList 菜单数据信息 + * @param options.multiModule 是否开启多模块 + * @param options.menuChildOpen 是否展开子菜单 + */ + render: function (options) { + options.menuList = options.menuList || []; + options.multiModule = options.multiModule || false; + options.menuChildOpen = options.menuChildOpen || false; + if (options.multiModule) { + miniMenu.renderMultiModule(options.menuList, options.menuChildOpen); + } else { + miniMenu.renderSingleModule(options.menuList, options.menuChildOpen); + } + miniMenu.listen(); + }, + + /** + * 单模块 + * @param menuList 菜单数据 + * @param menuChildOpen 是否默认展开 + */ + renderSingleModule: function (menuList, menuChildOpen) { + menuList = menuList || []; + var leftMenuHtml = '', + childOpenClass = '', + leftMenuCheckDefault = 'layui-this'; + var me = this ; + if (menuChildOpen) childOpenClass = ' layui-nav-itemed'; + leftMenuHtml = this.renderLeftMenu(menuList,{ childOpenClass:childOpenClass }) ; + $('.layui-layout-body').addClass('layuimini-single-module'); //单模块标识 + $('.layuimini-header-menu').remove(); + $('.layuimini-menu-left').html(leftMenuHtml); + + element.init(); + }, + + /** + * 渲染一级菜单 + */ + compileMenu: function(menu,isSub){ + var menuHtml = '' ; + if(isSub){ + menuHtml = '

          xEI_A>a+UQ^8#Y-xOj4d< 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 D7CfxR literal 0 HcmV?d00001 diff --git a/target/classes/static/images/icon-login.png b/target/classes/static/images/icon-login.png new file mode 100644 index 0000000000000000000000000000000000000000..1db2f96207806cbec7ea333c6d253d323a982777 GIT binary patch literal 2791 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 z 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%0Aun3C+C72SH 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�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

          ' + } + return laytpl(menuHtml).render(menu); + }, + compileMenuContainer :function(menu,isSub){ + var wrapperHtml = '
            {{d.children}}
          ' ; + if(isSub){ + wrapperHtml = '
          {{d.children}}
          ' ; + } + if(!menu.children){ + return ""; + } + return laytpl(wrapperHtml).render(menu); + }, + + each:function(list,callback){ + var _list = []; + for(var i = 0 ,length = list.length ; i= options.maxTabNum) { + layer.msg('Tab窗口已达到限定数量,请先关闭部分Tab'); + return false; + } + var ele = element; + if (options.isIframe) ele = parent.layui.element; + ele.tabAdd('layuiminiTab', { + title: '' + options.title + '' //用于演示 + , content: '' + , id: options.tabId + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'add'); + sessionStorage.setItem('layuiminimenu_' + options.tabId, options.title); + }, + + + /** + * 切换选项卡 + * @param tabId + */ + change: function (tabId) { + element.tabChange('layuiminiTab', tabId); + }, + + /** + * 删除tab窗口 + * @param tabId + * @param isParent + */ + delete: function (tabId, isParent) { + // todo 未知BUG,不知道是不是layui问题,必须先删除元素 + $(".layuimini-tab .layui-tab-title .layui-unselect.layui-tab-bar").remove(); + + if (isParent === true) { + parent.layui.element.tabDelete('layuiminiTab', tabId); + } else { + element.tabDelete('layuiminiTab', tabId); + } + }, + + /** + * 在iframe层打开新tab方法 + */ + openNewTabByIframe: function (options) { + options.href = options.href || null; + options.title = options.title || null; + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + if (options.href === null || options.href === undefined) options.href = new Date().getTime(); + var checkTab = miniTab.check(options.href, true); + if (!checkTab) { + miniTab.create({ + tabId: options.href, + href: options.href, + title: options.title, + isIframe: true, + }); + } + parent.layui.element.tabChange('layuiminiTab', options.href); + parent.layer.close(loading); + }, + + /** + * 在iframe层关闭当前tab方法 + */ + deleteCurrentByIframe: function () { + var ele = $(".layuimini-tab .layui-tab-title li.layui-this", parent.document); + if (ele.length > 0) { + var layId = $(ele[0]).attr('lay-id'); + miniTab.delete(layId, true); + } + }, + + /** + * 判断tab窗口 + */ + check: function (tabId, isIframe) { + // 判断选项卡上是否有 + var checkTab = false; + if (isIframe === undefined || isIframe === false) { + $(".layui-tab-title li").each(function () { + var checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId === tabId) { + checkTab = true; + } + }); + } else { + parent.layui.$(".layui-tab-title li").each(function () { + var checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId === tabId) { + checkTab = true; + } + }); + } + return checkTab; + }, + + /** + * 开启tab右键菜单 + * @param tabId + * @param left + */ + openTabRignMenu: function (tabId, left) { + miniTab.closeTabRignMenu(); + var menuHtml = '
          \n' + + '
          \n' + + '
          关 闭 当 前
          \n' + + '
          关 闭 其 他
          \n' + + '
          关 闭 全 部
          \n' + + '
          \n' + + '
          '; + var makeHtml = '
          '; + $('.layuimini-tab .layui-tab-title').after(menuHtml); + $('.layuimini-tab .layui-tab-content').after(makeHtml); + }, + + /** + * 关闭tab右键菜单 + */ + closeTabRignMenu: function () { + $('.layuimini-tab-mousedown').remove(); + $('.layuimini-tab-make').remove(); + }, + + /** + * 查询菜单信息 + * @param href + * @param menuList + */ + searchMenu: function (href, menuList) { + var menu; + for (key in menuList) { + var item = menuList[key]; + if (item.href === href) { + menu = item; + break; + } + if (item.child) { + newMenu = miniTab.searchMenu(href, item.child); + if (newMenu) { + menu = newMenu; + break; + } + } + } + return menu; + }, + + /** + * 监听 + * @param options + */ + listen: function (options) { + options = options || {}; + options.maxTabNum = options.maxTabNum || 20; + + /** + * 打开新窗口 + */ + $('body').on('click', '[layuimini-href]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('layuimini-href'), + href = $(this).attr('layuimini-href'), + title = $(this).text(), + target = $(this).attr('target'); + + var el = $("[layuimini-href='" + href + "']", ".layuimini-menu-left"); + layer.close(window.openTips); + if (el.length) { + $(el).closest(".layui-nav-tree").find(".layui-this").removeClass("layui-this"); + $(el).parent().addClass("layui-this"); + } + + if (target === '_blank') { + layer.close(loading); + window.open(href, "_blank"); + return false; + } + + if (tabId === null || tabId === undefined) tabId = new Date().getTime(); + var checkTab = miniTab.check(tabId); + if (!checkTab) { + miniTab.create({ + tabId: tabId, + href: href, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + } + element.tabChange('layuiminiTab', tabId); + layer.close(loading); + }); + + /** + * 在iframe子菜单上打开新窗口 + */ + $('body').on('click', '[layuimini-content-href]', function () { + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('layuimini-content-href'), + href = $(this).attr('layuimini-content-href'), + title = $(this).attr('data-title'), + target = $(this).attr('target'); + if (target === '_blank') { + parent.layer.close(loading); + window.open(href, "_blank"); + return false; + } + if (tabId === null || tabId === undefined) tabId = new Date().getTime(); + var checkTab = miniTab.check(tabId, true); + if (!checkTab) { + miniTab.create({ + tabId: tabId, + href: href, + title: title, + isIframe: true, + maxTabNum: options.maxTabNum, + }); + } + parent.layui.element.tabChange('layuiminiTab', tabId); + parent.layer.close(loading); + }); + + /** + * 关闭选项卡 + **/ + $('body').on('click', '.layuimini-tab .layui-tab-title .layui-tab-close', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var $parent = $(this).parent(); + var tabId = $parent.attr('lay-id'); + if (tabId !== undefined || tabId !== null) { + miniTab.delete(tabId); + } + layer.close(loading); + }); + + /** + * 选项卡操作 + */ + $('body').on('click', '[layuimini-tab-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var closeType = $(this).attr('layuimini-tab-close'); + $(".layuimini-tab .layui-tab-title li").each(function () { + var tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); + var isCurrent = $(this).hasClass('layui-this'); + if (id !== 'layuiminiHomeTabId') { + if (closeType === 'all') { + miniTab.delete(tabId); + } else { + if (closeType === 'current' && isCurrent) { + miniTab.delete(tabId); + } else if (closeType === 'other' && !isCurrent) { + miniTab.delete(tabId); + } + } + } + }); + layer.close(loading); + }); + + /** + * 禁用网页右键 + */ + $(".layuimini-tab .layui-tab-title").unbind("mousedown").bind("contextmenu", function (e) { + e.preventDefault(); + return false; + }); + + /** + * 注册鼠标右键 + */ + $('body').on('mousedown', '.layuimini-tab .layui-tab-title li', function (e) { + var left = $(this).offset().left - $('.layuimini-tab ').offset().left + ($(this).width() / 2), + tabId = $(this).attr('lay-id'); + if (e.which === 3) { + miniTab.openTabRignMenu(tabId, left); + } + }); + + /** + * 关闭tab右键菜单 + */ + $('body').on('click', '.layui-body,.layui-header,.layuimini-menu-left,.layuimini-tab-make', function () { + miniTab.closeTabRignMenu(); + }); + + /** + * tab右键选项卡操作 + */ + $('body').on('click', '[layuimini-tab-menu-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var closeType = $(this).attr('layuimini-tab-menu-close'), + currentTabId = $('.layuimini-tab-mousedown').attr('data-tab-id'); + $(".layuimini-tab .layui-tab-title li").each(function () { + var tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); + if (id !== 'layuiminiHomeTabId') { + if (closeType === 'all') { + miniTab.delete(tabId); + } else { + if (closeType === 'current' && currentTabId === tabId) { + miniTab.delete(tabId); + } else if (closeType === 'other' && currentTabId !== tabId) { + miniTab.delete(tabId); + } + } + } + }); + miniTab.closeTabRignMenu(); + layer.close(loading); + }); + }, + + /** + * 监听tab切换 + * @param options + */ + listenSwitch: function (options) { + options.filter = options.filter || null; + options.multiModule = options.multiModule || false; + options.urlHashLocation = options.urlHashLocation || false; + options.listenSwichCallback = options.listenSwichCallback || function () { + + }; + element.on('tab(' + options.filter + ')', function (data) { + var tabId = $(this).attr('lay-id'); + if (options.urlHashLocation) { + location.hash = '/' + tabId; + } + if (typeof options.listenSwichCallback === 'function') { + options.listenSwichCallback(); + } + // 判断是否为新增窗口 + if ($('.layuimini-menu-left').attr('layuimini-tab-tag') === 'add') { + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no') + } else { + $("[layuimini-href]").parent().removeClass('layui-this'); + if (options.multiModule) { + miniTab.listenSwitchMultiModule(tabId); + } else { + miniTab.listenSwitchSingleModule(tabId); + } + } + miniTab.rollPosition(); + }); + }, + + /** + * 监听hash变化 + * @param options + * @returns {boolean} + */ + listenHash: function (options) { + options.urlHashLocation = options.urlHashLocation || false; + options.maxTabNum = options.maxTabNum || 20; + options.homeInfo = options.homeInfo || {}; + options.menuList = options.menuList || []; + if (!options.urlHashLocation) return false; + var tabId = location.hash.replace(/^#\//, ''); + if (tabId === null || tabId === undefined || tabId ==='') return false; + + // 判断是否为首页 + if(tabId ===options.homeInfo.href) return false; + + // 判断是否为右侧菜单 + var menu = miniTab.searchMenu(tabId, options.menuList); + if (menu !== undefined) { + miniTab.create({ + tabId: tabId, + href: tabId, + title: menu.title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no'); + element.tabChange('layuiminiTab', tabId); + return false; + } + + // 判断是否为快捷菜单 + var isSearchMenu = false; + $("[layuimini-content-href]").each(function () { + if ($(this).attr("layuimini-content-href") === tabId) { + var title = $(this).attr("data-title"); + miniTab.create({ + tabId: tabId, + href: tabId, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no'); + element.tabChange('layuiminiTab', tabId); + isSearchMenu = true; + return false; + } + }); + if (isSearchMenu) return false; + + // 既不是右侧菜单、快捷菜单,就直接打开 + var title = sessionStorage.getItem('layuiminimenu_' + tabId) === null ? tabId : sessionStorage.getItem('layuiminimenu_' + tabId); + miniTab.create({ + tabId: tabId, + href: tabId, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + element.tabChange('layuiminiTab', tabId); + return false; + }, + + /** + * 监听滚动 + */ + listenRoll: function () { + $(".layuimini-tab-roll-left").click(function () { + miniTab.rollClick("left"); + }); + $(".layuimini-tab-roll-right").click(function () { + miniTab.rollClick("right"); + }); + }, + + /** + * 单模块切换 + * @param tabId + */ + listenSwitchSingleModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 多模块切换 + * @param tabId + */ + listenSwitchMultiModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 自动定位 + */ + rollPosition: function () { + var $tabTitle = $('.layuimini-tab .layui-tab-title'); + var autoLeft = 0; + $tabTitle.children("li").each(function () { + if ($(this).hasClass('layui-this')) { + return false; + } else { + autoLeft += $(this).outerWidth(); + } + }); + $tabTitle.animate({ + scrollLeft: autoLeft - $tabTitle.width() / 3 + }, 200); + }, + + /** + * 点击滚动 + * @param direction + */ + rollClick: function (direction) { + var $tabTitle = $('.layuimini-tab .layui-tab-title'); + var left = $tabTitle.scrollLeft(); + if ('left' === direction) { + $tabTitle.animate({ + scrollLeft: left - 450 + }, 200); + } else { + $tabTitle.animate({ + scrollLeft: left + 450 + }, 200); + } + } + + }; + + exports("miniTab", miniTab); +}); diff --git a/target/classes/static/js/lay-module/layuimini/miniTheme.js b/target/classes/static/js/lay-module/layuimini/miniTheme.js new file mode 100644 index 00000000..817907b0 --- /dev/null +++ b/target/classes/static/js/lay-module/layuimini/miniTheme.js @@ -0,0 +1,474 @@ +/** + * date:2020/02/28 + * author:Mr.Chung + * version:2.0 + * description:layuimini tab框架扩展 + */ +layui.define(["jquery", "layer"], function (exports) { + var $ = layui.$, + layer = layui.layer; + + var miniTheme = { + + /** + * 主题配置项 + * @param bgcolorId + * @returns {{headerLogo, menuLeftHover, headerRight, menuLeft, headerRightThis, menuLeftThis}|*|*[]} + */ + config: function (bgcolorId) { + var bgColorConfig = [ + { + headerRightBg: '#ffffff', //头部右侧背景色 + headerRightBgThis: '#e4e4e4', //头部右侧选中背景色, + headerRightColor: 'rgba(107, 107, 107, 0.7)', //头部右侧字体颜色, + headerRightChildColor: 'rgba(107, 107, 107, 0.7)', //头部右侧下拉字体颜色, + headerRightColorThis: '#565656', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(160, 160, 160, 0.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1E9FFF', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#565656', //头部缩放按钮样式, + headerLogoBg: '#192027', //logo背景颜色, + headerLogoColor: 'rgb(191, 187, 187)', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#28333E', //左侧菜单背景, + leftMenuBgThis: '#1E9FFF', //左侧菜单选中背景, + leftMenuChildBg: '#0c0f13', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1e9fff', //tab选项卡选中颜色, + }, + { + headerRightBg: '#23262e', //头部右侧背景色 + headerRightBgThis: '#0c0c0c', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1aa094', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#23262e', //左侧菜单背景, + leftMenuBgThis: '#737373', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#23262e', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffa4d1', //头部右侧背景色 + headerRightBgThis: '#bf7b9d', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ffa4d1', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#e694bd', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#737373', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffa4d1', //tab选项卡选中颜色, + }, + { + headerRightBg: '#1aa094', //头部右侧背景色 + headerRightBgThis: '#197971', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1aa094', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#23262e', //左侧菜单背景, + leftMenuBgThis: '#1aa094', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1aa094', //tab选项卡选中颜色, + }, + { + headerRightBg: '#1e9fff', //头部右侧背景色 + headerRightBgThis: '#0069b7', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1e9fff', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#1e9fff', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1e9fff', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffb800', //头部右侧背景色 + headerRightBgThis: '#d09600', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#d09600', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#243346', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#8593a7', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffb800', //tab选项卡选中颜色, + }, + { + headerRightBg: '#e82121', //头部右侧背景色 + headerRightBgThis: '#ae1919', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ae1919', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#e82121', //tab选项卡选中颜色, + }, + { + headerRightBg: '#963885', //头部右侧背景色 + headerRightBgThis: '#772c6a', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#772c6a', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#243346', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#586473', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#963885', //tab选项卡选中颜色, + }, + { + headerRightBg: '#2D8CF0', //头部右侧背景色 + headerRightBgThis: '#0069b7', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#0069b7', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0069b7', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#2D8CF0', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#2d8cf0', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffb800', //头部右侧背景色 + headerRightBgThis: '#d09600', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#d09600', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#d09600', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffb800', //tab选项卡选中颜色, + }, + { + headerRightBg: '#e82121', //头部右侧背景色 + headerRightBgThis: '#ae1919', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ae1919', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#d91f1f', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#e82121', //tab选项卡选中颜色, + }, + { + headerRightBg: '#963885', //头部右侧背景色 + headerRightBgThis: '#772c6a', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#772c6a', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#772c6a', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#626f7f', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#963885', //tab选项卡选中颜色, + } + ]; + if (bgcolorId === undefined) { + return bgColorConfig; + } else { + return bgColorConfig[bgcolorId]; + } + }, + + /** + * 初始化 + * @param options + */ + render: function (options) { + options.bgColorDefault = options.bgColorDefault || false; + options.listen = options.listen || false; + var bgcolorId = sessionStorage.getItem('layuiminiBgcolorId'); + if (bgcolorId === null || bgcolorId === undefined || bgcolorId === '') { + bgcolorId = options.bgColorDefault; + } + miniTheme.buildThemeCss(bgcolorId); + if (options.listen) miniTheme.listen(options); + }, + + /** + * 构建主题样式 + * @param bgcolorId + * @returns {boolean} + */ + buildThemeCss: function (bgcolorId) { + if (!bgcolorId) { + return false; + } + var bgcolorData = miniTheme.config(bgcolorId); + var styleHtml = '/*头部右侧背景色 headerRightBg */\n' + + '.layui-layout-admin .layui-header {\n' + + ' background-color: ' + bgcolorData.headerRightBg + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧选中背景色 headerRightBgThis */\n' + + '.layui-layout-admin .layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover {\n' + + ' background-color: ' + bgcolorData.headerRightBgThis + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧字体颜色 headerRightColor */\n' + + '.layui-layout-admin .layui-header .layui-nav .layui-nav-item a {\n' + + ' color: ' + bgcolorData.headerRightColor + ';\n' + + '}\n' + + '/**头部右侧下拉字体颜色 headerRightChildColor */\n' + + '.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child a {\n' + + ' color: ' + bgcolorData.headerRightChildColor + '!important;\n' + + '}\n'+ + '\n' + + '/*头部右侧鼠标选中 headerRightColorThis */\n' + + '.layui-header .layuimini-menu-header-pc.layui-nav .layui-nav-item a:hover, .layui-header .layuimini-header-menu.layuimini-pc-show.layui-nav .layui-this a {\n' + + ' color: ' + bgcolorData.headerRightColorThis + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧更多下拉颜色 headerRightNavMore */\n' + + '.layui-header .layui-nav .layui-nav-more {\n' + + ' border-top-color: ' + bgcolorData.headerRightNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧更多下拉颜色 headerRightNavMore */\n' + + '.layui-header .layui-nav .layui-nav-mored, .layui-header .layui-nav-itemed > a .layui-nav-more {\n' + + ' border-color: transparent transparent ' + bgcolorData.headerRightNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/**头部右侧更多下拉配置色 headerRightNavMoreBg headerRightNavMoreColor */\n' + + '.layui-header .layui-nav .layui-nav-child dd.layui-this a, .layui-header .layui-nav-child dd.layui-this, .layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child .layui-this a {\n' + + ' background-color: ' + bgcolorData.headerRightNavMoreBg + ' !important;\n' + + ' color:' + bgcolorData.headerRightNavMoreColor + ' !important;\n' + + '}\n' + + '\n' + + '/*头部缩放按钮样式 headerRightToolColor */\n' + + '.layui-layout-admin .layui-header .layuimini-tool i {\n' + + ' color: ' + bgcolorData.headerRightToolColor + ';\n' + + '}\n' + + '\n' + + '/*logo背景颜色 headerLogoBg */\n' + + '.layui-layout-admin .layuimini-logo {\n' + + ' background-color: ' + bgcolorData.headerLogoBg + ' !important;\n' + + '}\n' + + '\n' + + '/*logo字体颜色 headerLogoColor */\n' + + '.layui-layout-admin .layuimini-logo h1 {\n' + + ' color: ' + bgcolorData.headerLogoColor + ';\n' + + '}\n' + + '\n' + + '/*左侧菜单更多下拉样式 leftMenuNavMore */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-more,.layuimini-menu-left-zoom.layui-nav .layui-nav-more {\n' + + ' border-top-color: ' + bgcolorData.leftMenuNavMore + ';\n' + + '}\n' + + '\n' + + '/*左侧菜单更多下拉样式 leftMenuNavMore */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more {\n' + + ' border-color: transparent transparent ' + bgcolorData.leftMenuNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单背景 leftMenuBg */\n' + + '.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul, .layuimini-menu-left-zoom > ul {\n' + + ' background-color: ' + bgcolorData.leftMenuBg + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单选中背景 leftMenuBgThis */\n' + + '.layuimini-menu-left .layui-nav-tree .layui-this, .layuimini-menu-left .layui-nav-tree .layui-this > a, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a, .layuimini-menu-left-zoom.layui-nav-tree .layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-this > a, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a {\n' + + ' background-color: ' + bgcolorData.leftMenuBgThis + ' !important\n' + + '}\n' + + '\n' + + '/*左侧菜单子菜单背景 leftMenuChildBg */\n' + + '.layuimini-menu-left .layui-nav-itemed > .layui-nav-child{\n' + + ' background-color: ' + bgcolorData.leftMenuChildBg + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单字体颜色 leftMenuColor */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-item a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a {\n' + + ' color: ' + bgcolorData.leftMenuColor + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单选中字体颜色 leftMenuColorThis */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-item a:hover, .layuimini-menu-left .layui-nav .layui-this a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a:hover, .layuimini-menu-left-zoom.layui-nav .layui-this a {\n' + + ' color:' + bgcolorData.leftMenuColorThis + ' !important;\n' + + '}\n' + + '\n' + + '/**tab选项卡选中颜色 tabActiveColor */\n' + + '.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active {\n' + + ' background-color: ' + bgcolorData.tabActiveColor + ';\n' + + '}\n'; + $('#layuimini-bg-color').html(styleHtml); + }, + + /** + * 构建主题选择html + * @param options + * @returns {string} + */ + buildBgColorHtml: function (options) { + options.bgColorDefault = options.bgColorDefault || 0; + var bgcolorId = parseInt(sessionStorage.getItem('layuiminiBgcolorId')); + if (isNaN(bgcolorId)) bgcolorId = options.bgColorDefault; + var bgColorConfig = miniTheme.config(); + var html = ''; + $.each(bgColorConfig, function (key, val) { + if (key === bgcolorId) { + html += '
        • \n'; + } else { + html += '
        • \n'; + } + html += '\n' + + '
          \n' + + '
          \n' + + '
          \n' + + '
        • '; + }); + return html; + }, + + /** + * 监听 + * @param options + */ + listen: function (options) { + $('body').on('click', '[data-bgcolor]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var clientHeight = (document.documentElement.clientHeight) - 60; + var bgColorHtml = miniTheme.buildBgColorHtml(options); + var html = '
          \n' + + '
          \n' + + '配色方案\n' + + '
          \n' + + '
          \n' + + '
            \n' + bgColorHtml + '
          \n' + + '
          \n' + + '
          \n' + + ' 开发文档\n' + + ' 开源地址\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, + success: function (index, layero) { + }, + end: function () { + $('.layuimini-select-bgcolor').removeClass('layui-this'); + } + }); + 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); + miniTheme.render({ + bgColorDefault: bgcolorId, + listen: false, + }); + }); + } + }; + + exports("miniTheme", miniTheme); + +}) +; \ No newline at end of file diff --git a/target/classes/static/js/lay-module/layuimini/miniTongji.js b/target/classes/static/js/lay-module/layuimini/miniTongji.js new file mode 100644 index 00000000..f0ca1016 --- /dev/null +++ b/target/classes/static/js/lay-module/layuimini/miniTongji.js @@ -0,0 +1,40 @@ +/** + * date:2020/03/01 + * author:Mr.Chung + * version:2.0 + * description:layuimini 统计框架扩展 + */ +layui.define(["jquery"], function (exports) { + var $ = layui.$; + + var miniTongji = { + + /** + * 初始化 + * @param options + */ + render: function (options) { + options.specific = options.specific || false; + options.domains = options.domains || []; + var domain = window.location.hostname; + if (options.specific === false || (options.specific === true && options.domains.indexOf(domain) >=0)) { + miniTongji.listen(); + } + }, + + /** + * 监听统计代码 + */ + listen: function () { + var _hmt = _hmt || []; + (function () { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?d97abf6d61c21d773f97835defbdef4e"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); + })(); + } + }; + + exports("miniTongji", miniTongji); +}); \ No newline at end of file diff --git a/target/classes/static/js/lay-module/step-lay/step.css b/target/classes/static/js/lay-module/step-lay/step.css new file mode 100644 index 00000000..cc5e2ce6 --- /dev/null +++ b/target/classes/static/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/target/classes/static/js/lay-module/step-lay/step.js b/target/classes/static/js/lay-module/step-lay/step.js new file mode 100644 index 00000000..82eee8be --- /dev/null +++ b/target/classes/static/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, position) { + var stepDiv = '
          '; + for (var i = 0; i < stepItems.length; i++) { + stepDiv += '
          '; + // 线 + if (i < (stepItems.length - 1)) { + if (i < position) { + stepDiv += '
          '; + } else { + stepDiv += '
          '; + } + } + + // 数字 + var number = stepItems[i].number; + if (!number) { + number = i + 1; + } + if (i == position) { + stepDiv += '
          ' + number + '
          '; + } else if (i < position) { + 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, param.position||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/target/classes/static/js/lay-module/tableSelect/tableSelect.js b/target/classes/static/js/lay-module/tableSelect/tableSelect.js new file mode 100644 index 00000000..84acc3db --- /dev/null +++ b/target/classes/static/js/lay-module/tableSelect/tableSelect.js @@ -0,0 +1,272 @@ +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.height || 315; + + //最小宽度 + opt.width = opt.width || '530'; + + //多搜索条件 + opt.searchType = opt.searchType || 'one'; + opt.searchList = opt.searchList || [{key: opt.searchKey, placeholder: opt.searchPlaceholder}]; + + 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 += '
          '; + + //判断是否多搜索条件 + if(opt.searchType == 'more'){ + $.each(opt.searchList, function (index, item) { + tableBox += ''; + }); + }else{ + 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/target/classes/static/js/lay-module/wangEditor/fonts/w-e-icon.woff b/target/classes/static/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(""),j=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",totalRowName:"totalRow",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=j.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+v),o=e.elem=t(i(E).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(N),e.layTotal=o.find(A),e.layPage=o.find(L),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="string"==typeof t?r[t]: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,i){var a=this;e=e||{},delete a.haveInit,e.data&&e.data.constructor===Array&&delete a.config.data,a.config=t.extend(i,{},a.config,e),a.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(),"function"==typeof a.error&&a.error(e,t)}})}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,"object"==typeof a.totalRow&&(c[n.totalRowName]=t.extend({},a.totalRow)),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=e[s.response.totalRowName],v=[],m=[],g=[],b=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=[],h=[],p=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,v=s.index+"-"+r.key,m=l[c];if(void 0!==m&&null!==m||(m=""),!r.colGroup){var g=['','
              '+function(){var n=t.extend(!0,{LAY_INDEX:p},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return p}return r.toolbar?i(t(r.toolbar).html()||"").render(n):u(r,m,n)}(),"
              "].join("");o.push(g),r.fixed&&"right"!==r.fixed&&y.push(g),"right"===r.fixed&&h.push(g)}}),v.push(''+o.join("")+""),m.push(''+y.join("")+""),g.push(''+h.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+p).remove(),c.layMain.find("tbody").html(v.join("")),c.layFixLeft.find("tbody").html(m.join("")),c.layFixRight.find("tbody").html(g.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),0===y.length?(c.renderForm(),c.errorView(s.text.none)):(c.layFixed.removeClass(f),r?b():(b(),c.renderTotal(y,h),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,a){var l=this,n=l.config,o={};if(n.totalRow){layui.each(e,function(e,t){0!==t.length&&l.eachCols(function(e,i){var a=i.field||e,l=t[a];i.totalRow&&(o[a]=(o[a]||0)+(parseFloat(l)||0))})}),l.dataTotal={};var r=[];l.eachCols(function(e,d){var c=d.field||e,s=function(){var e=d.totalRowText||"",t=parseFloat(o[c]).toFixed(2),i={};return i[c]=t,t=u(d,t,i),a?a[d.field]||e:d.totalRow?t||e:e}(),y=['','
              '+function(){var e=d.totalRow||n.totalRow;return"string"==typeof e?i(e).render(t.extend({TOTAL_NUMS:s},d)):s}(),"
              "].join("");d.field&&(l.dataTotal[c]=s),r.push(y)}),l.layTotal.find("tbody").html(""+r.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&&(n=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){o.error("Table modules: sort field '"+n+"' not matched")}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=j.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,i=this,a=i.config,o=t("body"),c={},s=i.layHeader.find("th"),h=".layui-table-cell",p=a.elem.attr("lay-filter");i.layTool.on("click","*[lay-event]",function(e){var o=t(this),c=o.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
                ');n.html(l),a.height&&n.css("max-height",a.height-(i.layTool.outerHeight()||50)),o.find(".layui-table-tool-panel")[0]||o.append(n),i.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(i.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return i.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 l=t(e.elem),n=this.checked,o=l.data("key"),r=l.data("parentkey");layui.each(a.cols,function(e,t){layui.each(t,function(t,l){if(e+"-"+t===o){var d=l.hide;l.hide=!n,i.elem.find('*[data-key="'+a.index+"-"+o+'"]')[n?"removeClass":"addClass"](f),d!=l.hide&&i.setParentCol(!n,r),i.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
              • 导出到 Csv 文件
              • ','
              • 导出到 Excel 文件
              • '].join("")}(),done:function(e,l){l.on("click",function(){var e=t(this).data("type");d.exportFile.call(i,a.id,null,e)})}});break;case"LAYTABLE_PRINT":var u=window.open("打印窗口","_blank"),h=[""].join(""),v=t(i.layHeader.html());v.append(i.layMain.find("table").html()),v.append(i.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:a},{}))}),s.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var l=t(this);if(c.allowResize){var n=l.data("key");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],i.getCssRule(n,function(e){var t=e.style.width||l.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=l.data("minwidth")||a.cellMinWidth})}}),F.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var a=c.ruleWidth+t.clientX-c.offset[0];a');return n[0].value=i.data("content")||l.text(),i.find("."+R)[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('
                ')}};i.layBody.on("click","."+g,function(e){var n=t(this),o=n.parent(),d=o.children(h);i.tipsIndex=l.tips(['
                ',d.html(),"
                ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:i.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)}),i.layBody.on("click","*[lay-event]",function(){var e=t(this),a=e.parents("tr").eq(0).data("index");layui.event.call(this,y,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),i.setThisRowChecked(a)}),i.layMain.on("scroll",function(){var e=t(this),a=e.scrollLeft(),n=e.scrollTop();i.layHeader.scrollLeft(a),i.layTotal.scrollLeft(a),i.layFixed.find(k).scrollTop(n),l.close(i.tipsIndex)}),j.on("resize",function(){i.resize()})},function(){F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()})}(),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,"error")}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.getData=function(e){var t=[],i=d.cache[e]||[];return layui.each(i,function(e,i){i.constructor!==Array&&t.push(d.clearCacheKey(i))}),t},d.exportFile=function(e,t,i){var a=this;t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var l=c.config[e]||{},n={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],s=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(s.href="data:"+n+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],l=[],n=[];return layui.each(t,function(t,a){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(a),function(e,t){n.push('"'+(t||"")+'"')})):d.eachCols(e,function(e,l){if(l.field&&"normal"==l.type&&!l.hide){var o=a[l.field];void 0!==o&&null!==o||(o=""),0==t&&i.push(l.title||""),n.push('"'+u(l,o,a,"text")+'"')}}),l.push(n.join(","))}),layui.each(a.dataTotal,function(e,t){n.push(t)}),i.join(",")+"\r\n"+l.join("\r\n")+"\r\n"+n.join(",")}()),s.download=(l.title||"table_"+(l.index||""))+"."+i,document.body.appendChild(s),s.click(),void document.body.removeChild(s))},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,i){var a=s(e);if(a){var l=c.that[e];return l.reload(t,i),c.call(l)}},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):al.length&&(l.value=l.length),parseInt(l.value)!==l.value&&(l.half||(l.value=Math.ceil(l.value)-l.value<.5?Math.ceil(l.value):Math.floor(l.value)));for(var n='
                  ",s=1;s<=l.length;s++){var r='
                • ";l.half&&parseInt(l.value)!==l.value&&s==Math.ceil(l.value)?n=n+'
                • ":n+=r}n+="
                "+(l.text?''+l.value+"星":"")+"";var c=l.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),l.span=e.elemTemp.next("span"),l.setText&&l.setText(l.value),c.html(e.elemTemp),c.addClass("layui-inline"),l.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,l=a.config;l.value=e,a.render()},v.prototype.action=function(){var e=this,l=e.config,i=e.elemTemp,n=i.find("i").width();i.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(l.value=t,l.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(l.value=l.value-.5)}l.text&&i.next("span").text(l.value+"星"),l.choose&&l.choose(l.value),l.setText&&l.setText(l.value)}),v.on("mousemove",function(e){if(i.find("i").each(function(){a(this).addClass(o).removeClass(r)}),i.find("i:lt("+t+")").each(function(){a(this).addClass(u).removeClass(f)}),l.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(s).removeClass(u)}}),v.on("mouseleave",function(){i.find("i").each(function(){a(this).addClass(o).removeClass(r)}),i.find("i:lt("+Math.floor(l.value)+")").each(function(){a(this).addClass(u).removeClass(f)}),l.half&&parseInt(l.value)!==l.value&&i.children("li:eq("+Math.floor(l.value)+")").children("i").addClass(s).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},l.render=function(e){var a=new v(e);return i.call(a)},e(n,l)});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&&f.width()&&(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:["","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:''},L=new c;t(n,L)});layui.define("jquery",function(a){"use strict";var e=layui.$;a("code",function(a){var l=[];a=a||{},a.elem=e(a.elem||".layui-code"),a.lang="lang"in a?a.lang:"code",a.elem.each(function(){l.push(this)}),layui.each(l.reverse(),function(l,i){var t=e(i),c=t.html();(t.attr("lay-encode")||a.encode)&&(c=c.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),t.html('
                1. '+c.replace(/[\r\t\n]+/g,"
                2. ")+"
                "),t.find(">.layui-code-h3")[0]||t.prepend('

                '+(t.attr("lay-title")||a.title||"</>")+''+(t.attr("lay-lang")||a.lang||"")+"

                ");var n=t.find(">.layui-code-ol");t.addClass("layui-box layui-code-view"),(t.attr("lay-skin")||a.skin)&&t.addClass("layui-code-"+(t.attr("lay-skin")||a.skin)),(n.find("li").length/100|0)>0&&n.css("margin-left",(n.find("li").length/100|0)+"px"),(t.attr("lay-height")||a.height)&&n.css("max-height",t.attr("lay-height")||a.height)})})}).addcss("modules/code.css?v=1","skincodecss"); \ No newline at end of file diff --git a/target/classes/templates/404.html b/target/classes/templates/404.html new file mode 100644 index 00000000..ced95fd5 --- /dev/null +++ b/target/classes/templates/404.html @@ -0,0 +1,110 @@ + + + + + 404 + + + + + + + + + + +
                +
                +
                +
                +
                +
                + +
                +
                +
                +
                + +
                +
                +
                +
                + +
                +
                +
                OH! + +
                +
                +

                很抱歉,你访问的页面找不到了

                +
                +
                +
                + + + + \ No newline at end of file diff --git a/target/classes/templates/index.html b/target/classes/templates/index.html new file mode 100644 index 00000000..b8edffeb --- /dev/null +++ b/target/classes/templates/index.html @@ -0,0 +1,179 @@ + + + + + + 仓库管理系统 + + + + + + + + + + + + + + + + + + +
                + +
                + + +
                + +
                +
                + + +
                  +
                + + + + + +
                +
                + + +
                +
                + + +
                +
                +
                + + +
                + + +
                + +
                + +
                +
                  +
                • +
                +
                +
              • +
              • +
              • + +
              • +
                +
                +
                +
                +
                + +
                +
                + + + + + + + + diff --git a/target/classes/templates/index_back.html b/target/classes/templates/index_back.html new file mode 100644 index 00000000..ae149725 --- /dev/null +++ b/target/classes/templates/index_back.html @@ -0,0 +1,204 @@ + + + + + 仓库管理系统 + + + + + + + + + + + + + + + + + + +
                + +
                + + +
                + +
                +
                + + +
                  +
                + + + + + +
                +
                + + +
                +
                + + +
                +
                +
                + + +
                + + +
                + +
                + +
                +
                  +
                • +
                +
                +
              • +
              • +
              • + +
              • +
                +
                +
                +
                +
                + +
                +
                + + + + + + + + diff --git a/target/classes/templates/pages/application/application-in.html b/target/classes/templates/pages/application/application-in.html new file mode 100644 index 00000000..5396e056 --- /dev/null +++ b/target/classes/templates/pages/application/application-in.html @@ -0,0 +1,157 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                + +
                +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/application-in_back.html b/target/classes/templates/pages/application/application-in_back.html new file mode 100644 index 00000000..f9934aa6 --- /dev/null +++ b/target/classes/templates/pages/application/application-in_back.html @@ -0,0 +1,172 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                + +
                +
                +
                +

                说明


                + 申请提交后,24小时内审核完毕 +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/application-out.html b/target/classes/templates/pages/application/application-out.html new file mode 100644 index 00000000..aeab24b5 --- /dev/null +++ b/target/classes/templates/pages/application/application-out.html @@ -0,0 +1,153 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                + +
                +
                +
                +

                说明


                + 申请提交后,24小时内审核完毕 +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/application-out_back.html b/target/classes/templates/pages/application/application-out_back.html new file mode 100644 index 00000000..bda3b663 --- /dev/null +++ b/target/classes/templates/pages/application/application-out_back.html @@ -0,0 +1,192 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                + +
                +
                +
                +

                说明


                + 申请提交后,24小时内审核完毕 +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/application-review.html b/target/classes/templates/pages/application/application-review.html new file mode 100644 index 00000000..6342ec2d --- /dev/null +++ b/target/classes/templates/pages/application/application-review.html @@ -0,0 +1,238 @@ + + + + + 任务审批 + + + + + + + + +
                +
                +
                +
                +
                +
                +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                申请编号123456
                材料名称骁龙888芯片
                仓库名称外芯仓库
                数量数量
                金额金额
                状态状态
                申请人申请人
                请求提交时间1970-01-01 08:00:00
                申请备注申请备注
                部门负责人部门负责人
                +
                +
                +
                +
                +
                +
                + +
                + +
                +
                + +
                +
                + + +
                +
                +
                +
                + + + + +
                +
                +
                +

                说明


                + 申请提交后,24小时内审核完毕 +
                +
                + +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/application-transfer.html b/target/classes/templates/pages/application/application-transfer.html new file mode 100644 index 00000000..f5475588 --- /dev/null +++ b/target/classes/templates/pages/application/application-transfer.html @@ -0,0 +1,182 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                + +
                +
                +
                +

                说明


                + 申请提交后,24小时内审核完毕 +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/application-transfer_back.html b/target/classes/templates/pages/application/application-transfer_back.html new file mode 100644 index 00000000..e22166a0 --- /dev/null +++ b/target/classes/templates/pages/application/application-transfer_back.html @@ -0,0 +1,218 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                + +
                +
                +
                +

                说明


                + 申请提交后,24小时内审核完毕 +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/form-step-look.html b/target/classes/templates/pages/application/form-step-look.html new file mode 100644 index 00000000..7ec764d8 --- /dev/null +++ b/target/classes/templates/pages/application/form-step-look.html @@ -0,0 +1,83 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                +
                +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                申请编号123456
                材料名称骁龙888芯片
                仓库名称外芯仓库
                数量409
                金额2016-11-28
                提交人2016-11-28
                提交时间2016-11-28
                申请备注2016-11-28
                +
                +
                + +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/form-step-look_back.html b/target/classes/templates/pages/application/form-step-look_back.html new file mode 100644 index 00000000..ec8228bc --- /dev/null +++ b/target/classes/templates/pages/application/form-step-look_back.html @@ -0,0 +1,158 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                +
                +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                申请编号123456
                材料名称骁龙888芯片
                仓库名称外芯仓库
                数量409
                金额2016-11-28
                状态2016-11-28
                申请人2016-11-28
                请求提交时间2016-11-28
                申请备注备注
                部门负责人部门负责人
                +
                +
                + +
                +
                +
                +

                说明


                + 申请提交后,24小时内审核完毕 +
                +
                + +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/my-apply.html b/target/classes/templates/pages/application/my-apply.html new file mode 100644 index 00000000..13f11a99 --- /dev/null +++ b/target/classes/templates/pages/application/my-apply.html @@ -0,0 +1,152 @@ + + + + + layui + + + + + + + +
                +
                + 入库记录 + + + + + + + + +
                + 出库申请 + + + + + + + + +
                +
                +
                + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/my-apply_back.html b/target/classes/templates/pages/application/my-apply_back.html new file mode 100644 index 00000000..b7da0c8d --- /dev/null +++ b/target/classes/templates/pages/application/my-apply_back.html @@ -0,0 +1,102 @@ + + + + + layui + + + + + + + +
                +
                + 我的申请 +
                + + + + + + + + + +
                +
                + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/my-task.html b/target/classes/templates/pages/application/my-task.html new file mode 100644 index 00000000..4c3799c4 --- /dev/null +++ b/target/classes/templates/pages/application/my-task.html @@ -0,0 +1,179 @@ + + + + + layui + + + + + + + + +
                +
                + 未完成任务 +
                + + + + + + + + + +
                +
                +
                +
                + 已完成任务 +
                + + + + + + + + + +
                +
                + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/my-task_back.html b/target/classes/templates/pages/application/my-task_back.html new file mode 100644 index 00000000..fc62fa78 --- /dev/null +++ b/target/classes/templates/pages/application/my-task_back.html @@ -0,0 +1,184 @@ + + + + + layui + + + + + + + + +
                +
                + 未完成任务 +
                + + + + + + + + + +
                +
                +
                +
                + 已完成任务 +
                + + + + + + + + + + + +
                +
                + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/chart/chart-in.html b/target/classes/templates/pages/chart/chart-in.html new file mode 100644 index 00000000..95f1f8ec --- /dev/null +++ b/target/classes/templates/pages/chart/chart-in.html @@ -0,0 +1,375 @@ + + + + + 首页三 + + + + + + + + + + +
                + +
                +
                + +
                +
                转入材料数量
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                转入材料金额
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                购入材料数量
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                入库材料金额
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                + +
                + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                + + + + + + + diff --git a/target/classes/templates/pages/chart/chart-in_back.html b/target/classes/templates/pages/chart/chart-in_back.html new file mode 100644 index 00000000..fe6757f4 --- /dev/null +++ b/target/classes/templates/pages/chart/chart-in_back.html @@ -0,0 +1,620 @@ + + + + + 首页三 + + + + + + + + + + +
                + +
                +
                + +
                +
                转入材料数量
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                转入材料金额
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                购入材料数量
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                入库材料金额
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                + +
                + +
                +
                + + +
                +
                +
                +
                +
                +
                +
                + + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                + + + + + + + diff --git a/target/classes/templates/pages/chart/chart-out.html b/target/classes/templates/pages/chart/chart-out.html new file mode 100644 index 00000000..3d8f981d --- /dev/null +++ b/target/classes/templates/pages/chart/chart-out.html @@ -0,0 +1,365 @@ + + + + + 首页三 + + + + + + + + + + +
                + +
                +
                + +
                +
                转出材料数量
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                转出材料金额
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                购出材料数量
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                出库材料金额
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                + +
                + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                + + + + + + diff --git a/target/classes/templates/pages/chart/chart-out_back.html b/target/classes/templates/pages/chart/chart-out_back.html new file mode 100644 index 00000000..e68b0543 --- /dev/null +++ b/target/classes/templates/pages/chart/chart-out_back.html @@ -0,0 +1,623 @@ + + + + + 首页三 + + + + + + + + + + +
                + +
                +
                + +
                +
                转出材料数量
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                转出材料金额
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                出售材料数量
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                出库材料金额
                +
                +
                +
                + +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                + +
                + +
                +
                + + +
                +
                +
                +
                +
                +
                + + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                + + + + + + + diff --git a/target/classes/templates/pages/chart/chart-stock.html b/target/classes/templates/pages/chart/chart-stock.html new file mode 100644 index 00000000..d41c45d6 --- /dev/null +++ b/target/classes/templates/pages/chart/chart-stock.html @@ -0,0 +1,365 @@ + + + + + 首页三 + + + + + + + + + + +
                + +
                +
                + +
                +
                库存材料数量
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                库存材料金额
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                库存材料数量
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                +
                + +
                +
                库存材料金额
                +
                +
                +
                + 9,054,056 +
                +
                + 比昨天 ▲0.12
                + 比七日 ▼0.06 +
                +
                +
                +
                + +
                + +
                + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                + + + + + + diff --git a/target/classes/templates/pages/chart/chart-stock_back.html b/target/classes/templates/pages/chart/chart-stock_back.html new file mode 100644 index 00000000..bee05895 --- /dev/null +++ b/target/classes/templates/pages/chart/chart-stock_back.html @@ -0,0 +1,544 @@ + + + + + 首页三 + + + + + + + + + + +
                + +
                +
                + + +
                +
                +
                +
                +
                +
                + + +
                +
                +
                +
                +
                +
                +
                +
                + + +
                + + + + + + + diff --git a/target/classes/templates/pages/company/company-out.html b/target/classes/templates/pages/company/company-out.html new file mode 100644 index 00000000..9c0421c2 --- /dev/null +++ b/target/classes/templates/pages/company/company-out.html @@ -0,0 +1,206 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/company/company-out_back.html b/target/classes/templates/pages/company/company-out_back.html new file mode 100644 index 00000000..e2428cf2 --- /dev/null +++ b/target/classes/templates/pages/company/company-out_back.html @@ -0,0 +1,358 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + + + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/company/companyByParentId.html b/target/classes/templates/pages/company/companyByParentId.html new file mode 100644 index 00000000..bd5fa32a --- /dev/null +++ b/target/classes/templates/pages/company/companyByParentId.html @@ -0,0 +1,191 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/company/company_add.html b/target/classes/templates/pages/company/company_add.html new file mode 100644 index 00000000..d84ac9b0 --- /dev/null +++ b/target/classes/templates/pages/company/company_add.html @@ -0,0 +1,107 @@ + + + + + layui + + + + + + + +
                +
                +
                + 公司增加 +
                +
                +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + +
                +
                +
                +
                +
                +
                +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/company/company_edit.html b/target/classes/templates/pages/company/company_edit.html new file mode 100644 index 00000000..1073417b --- /dev/null +++ b/target/classes/templates/pages/company/company_edit.html @@ -0,0 +1,62 @@ + + + + + 分步表单 + + + + + + + + + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/depository/table-in.html b/target/classes/templates/pages/depository/table-in.html new file mode 100644 index 00000000..a8cac6d5 --- /dev/null +++ b/target/classes/templates/pages/depository/table-in.html @@ -0,0 +1,267 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + + +
                +
                +
                + +
                +
                +
                +
                +
                + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/depository/table-out.html b/target/classes/templates/pages/depository/table-out.html new file mode 100644 index 00000000..25e1f58c --- /dev/null +++ b/target/classes/templates/pages/depository/table-out.html @@ -0,0 +1,276 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                + +
                +
                +
                +
                +
                + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/depository/table-stock.html b/target/classes/templates/pages/depository/table-stock.html new file mode 100644 index 00000000..ecee60a0 --- /dev/null +++ b/target/classes/templates/pages/depository/table-stock.html @@ -0,0 +1,127 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                + +
                +
                +
                +
                +
                + +
                +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/material/material-add.html b/target/classes/templates/pages/material/material-add.html new file mode 100644 index 00000000..cd2e4ed6 --- /dev/null +++ b/target/classes/templates/pages/material/material-add.html @@ -0,0 +1,174 @@ + + + + + layui + + + + + + + +
                +
                +
                + 材料创建 +
                +
                +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                +
                + +
                +
                +
                +
                +
                +
                +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/material/material-out.html b/target/classes/templates/pages/material/material-out.html new file mode 100644 index 00000000..a195bed6 --- /dev/null +++ b/target/classes/templates/pages/material/material-out.html @@ -0,0 +1,430 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                +
                + +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + + + + +
                + + + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/material/material-view.html b/target/classes/templates/pages/material/material-view.html new file mode 100644 index 00000000..ca64937a --- /dev/null +++ b/target/classes/templates/pages/material/material-view.html @@ -0,0 +1,135 @@ + + + + + 分步表单 + + + + + + + + + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + + +
                +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/materialtype/materialTypeByParentId.html b/target/classes/templates/pages/materialtype/materialTypeByParentId.html new file mode 100644 index 00000000..a73f81ab --- /dev/null +++ b/target/classes/templates/pages/materialtype/materialTypeByParentId.html @@ -0,0 +1,259 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/materialtype/materialType_add.html b/target/classes/templates/pages/materialtype/materialType_add.html new file mode 100644 index 00000000..84cf2937 --- /dev/null +++ b/target/classes/templates/pages/materialtype/materialType_add.html @@ -0,0 +1,107 @@ + + + + + layui + + + + + + + +
                +
                +
                + 材料种类增加 +
                +
                +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + +
                +
                +
                +
                +
                +
                +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/materialtype/materialType_edit.html b/target/classes/templates/pages/materialtype/materialType_edit.html new file mode 100644 index 00000000..24f889a1 --- /dev/null +++ b/target/classes/templates/pages/materialtype/materialType_edit.html @@ -0,0 +1,94 @@ + + + + + 分步表单 + + + + + + + + + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + + +
                +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/materialtype/materialType_view.html b/target/classes/templates/pages/materialtype/materialType_view.html new file mode 100644 index 00000000..935ec50d --- /dev/null +++ b/target/classes/templates/pages/materialtype/materialType_view.html @@ -0,0 +1,508 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + + + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/other/notice-edit.html b/target/classes/templates/pages/other/notice-edit.html new file mode 100644 index 00000000..eb6bbcac --- /dev/null +++ b/target/classes/templates/pages/other/notice-edit.html @@ -0,0 +1,86 @@ + + + + + layui + + + + + + + + +
                +
                +
                + 公告发布 +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + +
                +
                +
                +
                +
                + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/other/setting.html b/target/classes/templates/pages/other/setting.html new file mode 100644 index 00000000..2c2a4f37 --- /dev/null +++ b/target/classes/templates/pages/other/setting.html @@ -0,0 +1,106 @@ + + + + + 系统设置 + + + + + + + + +
                +
                + +
                +
                + +
                + + 填写自己部署网站的名称。 +
                +
                +
                + +
                + +
                +
                + +
                + +
                + +
                +
                分钟
                +
                本地开发一般推荐设置为 0,线上环境建议设置为 10。
                +
                +
                + +
                + +
                +
                KB
                +
                提示:1 M = 1024 KB
                +
                +
                + +
                + +
                +
                + +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                +
                + +
                +
                +
                +
                +
                + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/other/welcome.html b/target/classes/templates/pages/other/welcome.html new file mode 100644 index 00000000..63e0f249 --- /dev/null +++ b/target/classes/templates/pages/other/welcome.html @@ -0,0 +1,397 @@ + + + + + 首页二 + + + + + + + + + +
                +
                +
                +
                +
                +
                +
                +
                数据统计
                +
                +
                +
                +
                +
                +
                +
                + 实时 +
                仓库数量
                +
                +
                +

                4

                + 当前分类总记录数 +
                +
                +
                +
                +
                +
                +
                +
                + 实时 +
                库存金额统计
                +
                +
                +

                12032

                + 当前分类总记录数 +
                +
                +
                +
                +
                +
                +
                +
                + 实时 +
                记录数
                +
                +
                +

                7

                + 当前分类总记录数 +
                +
                +
                +
                +
                +
                +
                +
                + 实时 +
                仓库流水
                +
                +
                +

                + 当前分类总记录数 +
                +
                +
                +
                +
                +
                +
                +
                +
                + +
                +
                +
                报表统计
                +
                +
                +
                +
                +
                +
                +
                + +
                + +
                +
                系统公告
                +
                +
                +
                修改选项卡样式
                +
                2019-07-11 23:06
                +
                + 界面足够简洁清爽。
                + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                + 支持多tab,可以打开多窗口。
                + 支持无限级菜单和对font-awesome图标库的完美支持。
                + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                + url地址hash定位,可以清楚看到当前tab的地址信息。
                + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                + 移动端的友好支持。
                +
                +
                +
                +
                + +
                +
                版本信息
                +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                项目名称 + 仓库管理系统 +
                当前版本v1.0.0
                作者金昊霖
                使用技术 + 前端技术:Layui/jquery/echarts
                + 后端技术:JavaEE/MySql/SSM/SpringBoot +
                主要特色响应式 / 清爽 / 极简
                前端模板 + + iframe版-v2:点击查看
                + 单页版-v2:点击查看
                +
                +
                +
                + +
                +
                作者心语
                +
                +

                该项目为作者大二的实训大作业,前端借用了layuimini的模板

                +

                欢迎大家关注我的CSDN博客:Dreamchaser追梦

                +
                +
                + +
                +
                +
                +
                + + + + + diff --git a/target/classes/templates/pages/post/post-out.html b/target/classes/templates/pages/post/post-out.html new file mode 100644 index 00000000..f2f04f2e --- /dev/null +++ b/target/classes/templates/pages/post/post-out.html @@ -0,0 +1,214 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/post/post-view.html b/target/classes/templates/pages/post/post-view.html new file mode 100644 index 00000000..655657e7 --- /dev/null +++ b/target/classes/templates/pages/post/post-view.html @@ -0,0 +1,86 @@ + + + + + 分步表单 + + + + + + + + + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/post/postRole_add.html b/target/classes/templates/pages/post/postRole_add.html new file mode 100644 index 00000000..2997707f --- /dev/null +++ b/target/classes/templates/pages/post/postRole_add.html @@ -0,0 +1,107 @@ + + + + + layui + + + + + + + + +
                + + +
                + +
                + + 填写自己管理账号的名称。 +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + + +
                +
                + +
                +
                + + +
                + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/user/account-look.html b/target/classes/templates/pages/user/account-look.html new file mode 100644 index 00000000..ee961fcf --- /dev/null +++ b/target/classes/templates/pages/user/account-look.html @@ -0,0 +1,305 @@ + + + + + layui + + + + + + + + + +
                +
                +

                基本信息

                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 临时工 + 编外人员 + 实习&实习生 + 试用员工 + 待分配 + 待岗 + 临时调入 + 正式员工 + 长期病假 + 停薪留职 + 退休 + 辞职 + 辞退 + 离职 +
                +
                +
                + +
                + +
                +
                + 男性 + 女性 + 中性 +
                +
                +
                +
                + +
                +
                + 不是 + 分公司 + 集团管理员 + 超级管理员 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 良好 + 一般 + 较弱 + 有生理缺陷 + 残废 +
                +
                +
                +
                + +
                +
                + 未婚 + 已婚 + 丧偶 + 离异 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 白羊座 + 金牛座 + 双子座 + 巨蟹座 + 狮子座 + 处女座 + 天枰座 + 天蝎座 + 射手座 + 摩羯座 + 水瓶座 + 双鱼座 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 群众 + 无党派 + 台盟会员 + 九三社员 + 致公党员 + 农工党员 + 民进会员 + 民建会员 + 民盟盟员 + 民革会员 + 共青团员 + 预备党员 + 中共党员 +
                +
                +
                +
                +
                +

                账户信息

                +
                +
                + + + + + + + + + + + + + + + + + + + + +
                绑定邮箱123456789@qq.com
                身份系统管理员
                负责仓库all
                +
                +
                +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/user/login.html b/target/classes/templates/pages/user/login.html new file mode 100644 index 00000000..a44549d7 --- /dev/null +++ b/target/classes/templates/pages/user/login.html @@ -0,0 +1,144 @@ + + + + + 后台管理-登陆 + + + + + + + + + + + + +
                + +
                + + + + + + + diff --git a/target/classes/templates/pages/user/login_back.html b/target/classes/templates/pages/user/login_back.html new file mode 100644 index 00000000..6738f62c --- /dev/null +++ b/target/classes/templates/pages/user/login_back.html @@ -0,0 +1,140 @@ + + + + + 后台管理-登陆 + + + + + + + + + + + + +
                + +
                + + + + + + + diff --git a/target/classes/templates/pages/user/register.html b/target/classes/templates/pages/user/register.html new file mode 100644 index 00000000..16eeb4b7 --- /dev/null +++ b/target/classes/templates/pages/user/register.html @@ -0,0 +1,165 @@ + + + + + layui + + + + + + + + +
                +
                +
                + 用户注册 +
                +
                +
                + +
                + + 填写自己真实姓名 +
                +
                +
                + +
                + + +
                +
                + +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + + + +
                + + +
                +
                + +
                +
                +
                +
                +
                + + +
                +
                + + + + + diff --git a/target/classes/templates/pages/user/table-user.html b/target/classes/templates/pages/user/table-user.html new file mode 100644 index 00000000..1fa6530f --- /dev/null +++ b/target/classes/templates/pages/user/table-user.html @@ -0,0 +1,259 @@ + + + + + layui + + + + + + + + +
                +
                + +
                + 搜索信息 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + +
                + + + +
                +
                + + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/user/user-add.html b/target/classes/templates/pages/user/user-add.html new file mode 100644 index 00000000..163f6871 --- /dev/null +++ b/target/classes/templates/pages/user/user-add.html @@ -0,0 +1,103 @@ + + + + + layui + + + + + + + + +
                + +
                + +
                + + 填写自己管理账号的名称。 +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + +
                +
                +
                + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/user/user-edit.html b/target/classes/templates/pages/user/user-edit.html new file mode 100644 index 00000000..f0b2edd3 --- /dev/null +++ b/target/classes/templates/pages/user/user-edit.html @@ -0,0 +1,275 @@ + + + + + layui + + + + + + + + +
                + +
                + +
                + +
                +
                +
                + +
                + + 填写自己管理账号的名称。 +
                +
                +
                + +
                + + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 临时工 + 编外人员 + 实习&实习生 + 试用员工 + 待分配 + 待岗 + 临时调入 + 正式员工 + 长期病假 + 停薪留职 + 退休 + 辞职 + 辞退 + 离职 +
                +
                +
                + +
                + +
                + + + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 良好 + 一般 + 较弱 + 有生理缺陷 + 残废 +
                +
                +
                +
                + +
                +
                + 未婚 + 已婚 + 丧偶 + 离异 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 白羊座 + 金牛座 + 双子座 + 巨蟹座 + 狮子座 + 处女座 + 天枰座 + 天蝎座 + 射手座 + 摩羯座 + 水瓶座 + 双鱼座 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                + 群众 + 无党派 + 台盟会员 + 九三社员 + 致公党员 + 农工党员 + 民进会员 + 民建会员 + 民盟盟员 + 民革会员 + 共青团员 + 预备党员 + 中共党员 +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + + +
                + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/user/user-email.html b/target/classes/templates/pages/user/user-email.html new file mode 100644 index 00000000..beebbb9c --- /dev/null +++ b/target/classes/templates/pages/user/user-email.html @@ -0,0 +1,249 @@ + + + + + 分步表单 + + + + + + + + +
                +
                +
                +
                +
                + +
                +
                +

                说明


                + 验证码五分钟后会失效,请及时输入。 +
                +
                +
                + +
                +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/user/user-password.html b/target/classes/templates/pages/user/user-password.html new file mode 100644 index 00000000..3fbbc396 --- /dev/null +++ b/target/classes/templates/pages/user/user-password.html @@ -0,0 +1,97 @@ + + + + + 修改密码 + + + + + + + + + +
                +
                +
                +
                + + +
                + + 填写自己账号的旧的密码。 +
                +
                + +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + +
                +
                +
                +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/warehouse/depository-out.html b/target/classes/templates/pages/warehouse/depository-out.html new file mode 100644 index 00000000..7cd1a151 --- /dev/null +++ b/target/classes/templates/pages/warehouse/depository-out.html @@ -0,0 +1,550 @@ + + + + + layui + + + + + + + +
                +
                +
                + 搜索信息 +
                +
                +
                + +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + + + + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/warehouse/depository_add.html b/target/classes/templates/pages/warehouse/depository_add.html new file mode 100644 index 00000000..92990f99 --- /dev/null +++ b/target/classes/templates/pages/warehouse/depository_add.html @@ -0,0 +1,127 @@ + + + + + layui + + + + + + + +
                +
                +
                + 仓库创建 +
                +
                +
                +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + +
                +
                +
                +
                +
                +
                +
                +
                +
                + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/warehouse/manager.html b/target/classes/templates/pages/warehouse/manager.html new file mode 100644 index 00000000..57d26728 --- /dev/null +++ b/target/classes/templates/pages/warehouse/manager.html @@ -0,0 +1,105 @@ + + + + + layui + + + + + + + + + +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/warehouse/warehouseByParentId.html b/target/classes/templates/pages/warehouse/warehouseByParentId.html new file mode 100644 index 00000000..d6e04019 --- /dev/null +++ b/target/classes/templates/pages/warehouse/warehouseByParentId.html @@ -0,0 +1,271 @@ + + + + + layui + + + + + + + +
                + +
                +
                + 搜索信息 +
                +
                + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                +
                +
                +
                +
                + + + +
                + + + +
                +
                + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/warehouse/warehouse_view.html b/target/classes/templates/pages/warehouse/warehouse_view.html new file mode 100644 index 00000000..f51120ad --- /dev/null +++ b/target/classes/templates/pages/warehouse/warehouse_view.html @@ -0,0 +1,108 @@ + + + + + 分步表单 + + + + + + + + + +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                +
                + +
                + +
                +
                + +
                +
                + + +
                +
                +
                + + + + + \ No newline at end of file