From 71c0d47afc510a2741d440b35e35b1d5234fb221 Mon Sep 17 00:00:00 2001 From: xxjin <313383180@qq.com> Date: Thu, 13 Dec 2018 09:42:52 +0800 Subject: [PATCH 01/14] =?UTF-8?q?2.0=E6=9B=B4=E6=96=B0=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 731e630..9a805d8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ +# icec 2.0 + + 主要更新: + 1、springboot升级到2,及其他依赖版本升级 + 2、项目结构变更,建立icec应用生态环境圈 + 3、应用集成更方便 + 交流群1:15643354 + # icec 1.0 本项目目前还在研发阶段,第一阶段是完成基础框架部分 -- Gitee From 0f4a0d5a5ff5e64c0f6bcec6273e58d7ab33dd01 Mon Sep 17 00:00:00 2001 From: xxjin <313383180@qq.com> Date: Thu, 13 Dec 2018 15:49:36 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../icec-admin}/.gitignore | 0 .../icec-admin}/bin/check.sh | 0 .../icec-admin}/bin/start.sh | 0 .../icec-admin}/bin/stop.sh | 0 .../icec-admin}/pom.xml | 57 +- .../src/main/java/org/icec/web/AdminMain.java | 2 +- .../main/resources/application-dev.properties | 2 +- .../main/resources/application-pro.properties | 0 .../resources/application-test.properties | 0 .../src/main/resources/application.properties | 0 .../resources/distribution/distribution.xml | 0 .../src/main/resources/ehcache-shiro.xml | 0 .../src/main/resources/logback.xml | 0 .../main/resources/logback/logback-dev.xml | 0 .../logback/logback-level-config.xml | 0 .../main/resources/logback/logback-pro.xml | 0 .../src/main/resources/mykaptcha.xml | 0 .../src/main/resources/static/my/css/1.css | 0 .../main/resources/static/my/css/index.css | 0 .../main/resources/static/my/css/style.css | 0 .../main/resources/static/my/images/icec.png | Bin .../main/resources/static/my/js/bodyTab.js | 0 .../src/main/resources/static/my/js/cache.js | 0 .../src/main/resources/static/my/js/index.js | 0 icec-admin/.classpath | 31 - .../.settings/org.eclipse.jdt.core.prefs | 5 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../resources/static/ace/images/email1.png | Bin 4328 -> 0 bytes .../resources/static/ace/images/email2.png | Bin 10953 -> 0 bytes .../resources/static/ace/images/email3.png | Bin 4991 -> 0 bytes .../resources/static/ace/images/email4.png | Bin 4313 -> 0 bytes .../static/ace/images/gallery/image-1.jpg | Bin 67665 -> 0 bytes .../static/ace/images/gallery/image-2.jpg | Bin 80940 -> 0 bytes .../static/ace/images/gallery/image-3.jpg | Bin 62542 -> 0 bytes .../static/ace/images/gallery/image-4.jpg | Bin 91462 -> 0 bytes .../static/ace/images/gallery/image-5.jpg | Bin 60472 -> 0 bytes .../static/ace/images/gallery/image-6.jpg | Bin 43293 -> 0 bytes .../static/ace/images/gallery/thumb-1.jpg | Bin 6513 -> 0 bytes .../static/ace/images/gallery/thumb-2.jpg | Bin 9604 -> 0 bytes .../static/ace/images/gallery/thumb-3.jpg | Bin 8811 -> 0 bytes .../static/ace/images/gallery/thumb-4.jpg | Bin 8944 -> 0 bytes .../static/ace/images/gallery/thumb-5.jpg | Bin 7970 -> 0 bytes .../static/ace/images/gallery/thumb-6.jpg | Bin 4800 -> 0 bytes .../plugins/My97DatePicker/docs/css/base.css | 110 - .../ace/plugins/My97DatePicker/docs/demo.htm | 97 - .../My97DatePicker/docs/demo/index.htm | 25 - .../docs/demo/resource/2.1.asp.htm | 163 - .../docs/demo/resource/2.2.asp.htm | 382 - .../docs/demo/resource/2.3.asp.htm | 97 - .../docs/demo/resource/2.4.asp.htm | 335 - .../docs/demo/resource/2.5.asp-.htm | 260 - .../docs/demo/resource/2.5.asp.htm | 260 - .../docs/demo/resource/2.6.asp.htm | 71 - .../docs/demo/resource/3.asp.htm | 431 - .../docs/demo/resource/999.asp-.htm | 177 - .../docs/demo/resource/999.asp.htm | 177 - .../docs/demo/resource/demo.css | 61 - .../docs/demo/resource/demo_iframe.htm | 45 - .../docs/demo/resource/demo_iframe2.htm | 16 - .../docs/demo/resource/left.htm | 120 - .../docs/demo/resource/main.asp | 64 - .../docs/demo/resource/pic1.jpg | Bin 10075 -> 0 bytes .../docs/demo/resource/pic2.jpg | Bin 10375 -> 0 bytes .../docs/demo/resource/pic3.jpg | Bin 10085 -> 0 bytes .../docs/images/block/block-body.gif | Bin 61 -> 0 bytes .../docs/images/block/block-bottom.gif | Bin 135 -> 0 bytes .../docs/images/block/block-top.gif | Bin 915 -> 0 bytes .../My97DatePicker/docs/images/body.jpg | Bin 396 -> 0 bytes .../My97DatePicker/docs/images/footer.jpg | Bin 2537 -> 0 bytes .../font-awesome/css/font-awesome.min.css | 4 - .../font-awesome/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes .../fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../fonts/fontawesome-webfont.svg | 2671 ------ .../fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../ace/plugins/treeTable/demo/style/demo.css | 35 - .../ace/plugins/treeTable/demo/treeTable.html | 260 - icec-sys/.classpath | 32 - icec-sys/.settings/org.eclipse.jdt.core.prefs | 5 - icec-sys/.settings/org.eclipse.m2e.core.prefs | 4 - .../java/org/icec/web/config/ShiroConfig.java | 112 - icec-sys/src/main/resources/ehcache-shiro.xml | 12 - icec-sys/src/main/resources/mykaptcha.xml | 34 - .../resources/templates/common/commonJS.html | 34 - icec-sys/src/test/resources/jdbc.properties | 4 - .../msyh-1.0.jar_\346\224\271\345\220\215" | Bin {icec-ireport => module/icec-ireport}/pom.xml | 0 .../ireport/controller/IreportController.java | 0 .../main/resources/jasperreports/test.jrxml | 0 .../org/icec/ireport/test/IreportDemo.java | 0 .../test/java/org/icec/ireport/test/User.java | 0 .../src/test/resources/A_A4.jrxml | 0 {icec-oa => module/icec-oa}/pom.xml | 0 .../org/icec/web/oa/common/BaseFlowModel.java | 0 .../web/oa/controller/LeaveProcessCtrl.java | 0 .../java/org/icec/web/oa/dao/OaLeaveDao.java | 0 .../java/org/icec/web/oa/model/OaLeave.java | 0 .../icec/web/oa/service/OaLeaveService.java | 0 .../src/main/resources/sql/oaLeave.md | 0 .../templates/oa/leave/leaveEdit.html | 0 .../resources/templates/oa/leave/leavemy.html | 0 .../icec-schedule}/.springBeans | 0 .../icec-schedule}/pom.xml | 0 .../icec/schedule/ScheduleApplication.java | 0 .../schedule/core/QuartzConfigration.java | 0 .../schedule/exception/ServiceException.java | 0 .../java/org/icec/schedule/job/DemoJob.java | 0 .../icec/schedule/service/JobTaskService.java | 0 .../org/icec/schedule/service/TaskInfo.java | 0 .../org/icec/schedule/web/ScheduleCtrl.java | 0 .../src/main/resources/quartz.properties | 0 .../icec-workflow}/pom.xml | 0 .../java/org/icec/web/activiti/Status.java | 0 .../java/org/icec/web/activiti/ToWeb.java | 0 .../web/activiti/config/Cfg_Activiti.java | 0 .../web/activiti/controller/ActTaskCtrl.java | 0 .../controller/ModelerController.java | 0 .../controller/ProcessController.java | 0 .../controller/RestServiceController.java | 0 .../core/FilterServletOutputStream.java | 0 .../activiti/core/GenericResponseWrapper.java | 0 .../activiti/core/JsonpCallbackFilter.java | 0 ...rocessDefinitionDiagramLayoutResource.java | 0 ...rocessDefinitionDiagramLayoutResource.java | 0 .../ProcessInstanceDiagramLayoutResource.java | 0 .../ProcessInstanceHighlightsResource.java | 0 .../editor/ModelEditorJsonRestResource.java | 0 .../core/editor/ModelSaveRestResource.java | 0 .../core/editor/StencilsetRestResource.java | 0 .../web/activiti/service/ActTaskService.java | 0 .../web/activiti/service/ModelService.java | 0 .../web/activiti/service/ProcessService.java | 0 .../java/org/icec/web/activiti/vo/Act.java | 0 .../static/diagram-viewer/images/bg.png | Bin .../diagram-viewer/images/breadcrumbs.png | Bin .../diagram-viewer/images/checker-bg.png | Bin .../images/deployer/blue/message_catch.png | Bin .../images/deployer/business_rule.png | Bin .../images/deployer/error_catch.png | Bin .../images/deployer/error_throw.png | Bin .../diagram-viewer/images/deployer/manual.png | Bin .../images/deployer/message_catch.png | Bin .../images/deployer/message_throw.png | Bin .../images/deployer/receive.png | Bin .../diagram-viewer/images/deployer/script.png | Bin .../diagram-viewer/images/deployer/send.png | Bin .../images/deployer/service.png | Bin .../images/deployer/signal_catch.png | Bin .../images/deployer/signal_throw.png | Bin .../diagram-viewer/images/deployer/timer.png | Bin .../diagram-viewer/images/deployer/user.png | Bin .../static/diagram-viewer/index.html | 0 .../static/diagram-viewer/js/ActivitiRest.js | 0 .../static/diagram-viewer/js/ActivityImpl.js | 0 .../static/diagram-viewer/js/Color.js | 0 .../diagram-viewer/js/LineBreakMeasurer.js | 0 .../static/diagram-viewer/js/Polyline.js | 0 .../diagram-viewer/js/ProcessDiagramCanvas.js | 0 .../js/ProcessDiagramGenerator.js | 0 .../js/jquery/jquery.asyncqueue.js | 0 .../static/diagram-viewer/js/jquery/jquery.js | 0 .../js/jquery/jquery.progressbar.js | 0 .../static/diagram-viewer/js/jstools.js | 0 .../static/diagram-viewer/js/raphael.2.1.1.js | 0 .../static/diagram-viewer/js/raphael.js | 0 .../diagram-viewer/js/raphael_uncompressed.js | 0 .../static/diagram-viewer/js/textlayout.js | 0 .../resources/static/diagram-viewer/style.css | 0 .../resources/static/editor-app/app-cfg.js | 0 .../main/resources/static/editor-app/app.js | 0 .../properties-assignment-controller.js | 0 ...perties-condition-expression-controller.js | 0 .../properties-custom-controllers.js | 0 .../properties-default-controllers.js | 0 .../properties-event-listeners-controller.js | 0 ...operties-execution-listeners-controller.js | 0 .../properties-fields-controller.js | 0 .../properties-form-properties-controller.js | 0 .../properties-in-parameters-controller.js | 0 ...operties-message-definitions-controller.js | 0 .../properties-message-scope-controller.js | 0 .../properties-multiinstance-controller.js | 0 .../properties-out-parameters-controller.js | 0 ...roperties-sequenceflow-order-controller.js | 0 ...roperties-signal-definitions-controller.js | 0 .../properties-signal-scope-controller.js | 0 .../properties-task-listeners-controller.js | 0 .../editor-app/configuration/properties.js | 0 .../assignment-display-template.html | 0 .../properties/assignment-popup.html | 0 .../properties/assignment-write-template.html | 0 .../properties/boolean-property-template.html | 0 ...condition-expression-display-template.html | 0 .../condition-expression-popup.html | 0 .../condition-expression-write-template.html | 0 .../default-value-display-template.html | 0 .../event-listeners-display-template.html | 0 .../properties/event-listeners-popup.html | 0 .../event-listeners-write-template.html | 0 .../execution-listeners-display-template.html | 0 .../properties/execution-listeners-popup.html | 0 .../execution-listeners-write-template.html | 0 .../properties/feedback-popup.html | 0 .../properties/fields-display-template.html | 0 .../properties/fields-popup.html | 0 .../properties/fields-write-template.html | 0 .../form-properties-display-template.html | 0 .../properties/form-properties-popup.html | 0 .../form-properties-write-template.html | 0 .../in-parameters-display-template.html | 0 .../properties/in-parameters-popup.html | 0 .../in-parameters-write-template.html | 0 .../message-definitions-display-template.html | 0 .../properties/message-definitions-popup.html | 0 .../message-definitions-write-template.html | 0 .../message-property-write-template.html | 0 ...multiinstance-property-write-template.html | 0 .../out-parameters-display-template.html | 0 .../properties/out-parameters-popup.html | 0 .../out-parameters-write-template.html | 0 .../sequenceflow-order-display-template.html | 0 .../properties/sequenceflow-order-popup.html | 0 .../sequenceflow-order-write-template.html | 0 .../signal-definitions-display-template.html | 0 .../properties/signal-definitions-popup.html | 0 .../signal-definitions-write-template.html | 0 .../signal-property-write-template.html | 0 .../string-property-write-mode-template.html | 0 ...subprocess-reference-display-template.html | 0 .../subprocess-reference-popup.html | 0 .../subprocess-reference-write-template.html | 0 .../task-listeners-display-template.html | 0 .../properties/task-listeners-popup.html | 0 .../task-listeners-write-template.html | 0 .../configuration/properties/text-popup.html | 0 .../text-property-write-template.html | 0 .../configuration/toolbar-custom-actions.js | 0 .../configuration/toolbar-default-actions.js | 0 .../editor-app/configuration/toolbar.js | 0 .../editor-app/configuration/url-config.js | 0 .../static/editor-app/css/style-common.css | 0 .../static/editor-app/css/style-editor.css | 0 .../resources/static/editor-app/css/style.css | 0 .../static/editor-app/editor-config.js | 0 .../static/editor-app/editor-controller.js | 0 .../static/editor-app/editor-utils.js | 0 .../resources/static/editor-app/editor.html | 0 .../static/editor-app/editor/css/editor.css | 0 .../editor-app/editor/i18n/translation_de.js | 0 .../editor/i18n/translation_en_us.js | 0 .../editor/i18n/translation_signavio_de.js | 0 .../editor/i18n/translation_signavio_en_us.js | 0 .../static/editor-app/editor/oryx.debug.js | 0 .../static/editor-app/editor/oryx.js | 0 .../resources/static/editor-app/eventbus.js | 0 .../fonts/activiti-admin-webfont.eot | Bin .../fonts/activiti-admin-webfont.svg | 0 .../fonts/activiti-admin-webfont.ttf | Bin .../fonts/activiti-admin-webfont.woff | Bin .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../static/editor-app/header-controller.js | 0 .../resources/static/editor-app/i18n/en.json | 0 .../static/editor-app/i18n/en.json_bak | 0 .../static/editor-app/images/bpmn-error.png | Bin .../static/editor-app/images/bpmn-warning.png | Bin .../editor-app/images/datadefinition.png | Bin .../static/editor-app/images/delete.png | Bin .../static/editor-app/images/loading.gif | Bin .../static/editor-app/images/logo-2x.png | Bin .../static/editor-app/images/logo.png | Bin .../editor-app/images/nw-handle-dark.gif | Bin .../editor-app/images/se-handle-dark.gif | Bin .../editor-app/images/shapemenu_highlight.png | Bin .../static/editor-app/images/wrench.png | Bin .../angular-cookies.min.js | 0 .../angular-cookies.min.js.map | 0 .../libs/angular-dragdrop.min-1.0.3.js | 0 .../angular-dragdrop.min.js | 0 .../angular-mocks_1.2.13/angular-mocks.js | 0 .../angular-resource.js | 0 .../angular-resource.min.js | 0 .../angular-resource.min.js.map | 0 .../angular-route_1.2.13/angular-route.js | 0 .../angular-route_1.2.13/angular-route.min.js | 0 .../angular-route.min.js.map | 0 .../angular-sanitize.js | 0 .../angular-sanitize.min.js | 0 .../angular-sanitize.min.js.map | 0 .../angular-scroll.min.js | 0 .../angular-strap_2.0.5/angular-strap.min.js | 0 .../angular-strap.tpl.min.js | 0 .../.bower.json | 0 .../angular-translate-loader-static-files.js | 0 ...gular-translate-loader-static-files.min.js | 0 .../.bower.json | 0 .../angular-translate-storage-cookie.js | 0 .../angular-translate-storage-cookie.min.js | 0 .../angular-translate.js | 0 .../angular-translate.min.js | 0 .../angular_1.2.13/angular-animate.min.js | 0 .../libs/angular_1.2.13/angular.min.js | 0 .../daterangepicker-bs3.css | 0 .../daterangepicker.js | 0 .../bootstrap_3.1.1/css/bootstrap-theme.css | 0 .../css/bootstrap-theme.css.map | 0 .../css/bootstrap-theme.min.css | 0 .../libs/bootstrap_3.1.1/css/bootstrap.css | 0 .../bootstrap_3.1.1/css/bootstrap.css.map | 0 .../bootstrap_3.1.1/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../libs/bootstrap_3.1.1/js/bootstrap.js | 0 .../libs/bootstrap_3.1.1/js/bootstrap.min.js | 0 .../libs/es5-shim-15.3.4.5/.bower.json | 0 .../libs/es5-shim-15.3.4.5/.gitignore | 0 .../editor-app/libs/es5-shim-15.3.4.5/CHANGES | 0 .../libs/es5-shim-15.3.4.5/CONTRIBUTORS.md | 0 .../editor-app/libs/es5-shim-15.3.4.5/LICENSE | 0 .../libs/es5-shim-15.3.4.5/README.md | 0 .../libs/es5-shim-15.3.4.5/es5-sham.js | 0 .../libs/es5-shim-15.3.4.5/es5-sham.map | 0 .../libs/es5-shim-15.3.4.5/es5-sham.min.js | 0 .../libs/es5-shim-15.3.4.5/es5-shim.js | 0 .../libs/es5-shim-15.3.4.5/es5-shim.map | 0 .../libs/es5-shim-15.3.4.5/es5-shim.min.js | 0 .../libs/es5-shim-15.3.4.5/package.json | 0 .../es5-shim-15.3.4.5/tests/helpers/h-kill.js | 0 .../tests/helpers/h-matchers.js | 0 .../libs/es5-shim-15.3.4.5/tests/helpers/h.js | 0 .../libs/es5-shim-15.3.4.5/tests/index.html | 0 .../es5-shim-15.3.4.5/tests/index.min.html | 0 .../tests/lib/jasmine-html.js | 0 .../es5-shim-15.3.4.5/tests/lib/jasmine.css | 0 .../es5-shim-15.3.4.5/tests/lib/jasmine.js | 0 .../tests/lib/jasmine_favicon.png | Bin .../libs/es5-shim-15.3.4.5/tests/lib/json2.js | 0 .../es5-shim-15.3.4.5/tests/spec/s-array.js | 0 .../es5-shim-15.3.4.5/tests/spec/s-date.js | 0 .../tests/spec/s-function.js | 0 .../es5-shim-15.3.4.5/tests/spec/s-number.js | 0 .../es5-shim-15.3.4.5/tests/spec/s-object.js | 0 .../es5-shim-15.3.4.5/tests/spec/s-string.js | 0 .../libs/jquery-ui-1.10.3.custom.min.js | 0 .../libs/jquery.autogrow-textarea.js | 0 .../editor-app/libs/jquery_1.11.0/jquery.js | 0 .../libs/jquery_1.11.0/jquery.min.js | 0 .../libs/jquery_1.11.0/jquery.min.map | 0 .../editor-app/libs/json3_3.2.6/LICENSE | 0 .../editor-app/libs/json3_3.2.6/lib/json3.js | 0 .../libs/json3_3.2.6/lib/json3.min.js | 0 .../libs/momentjs_2.5.1/momentjs.min.js | 0 .../editor-app/libs/mousetrap-1.4.5.min.js | 0 .../editor-app/libs/ng-grid-2.0.7-min.js | 0 .../editor-app/libs/ng-grid-2.0.7.min.css | 0 .../static/editor-app/libs/path_parser.js | 0 .../static/editor-app/libs/prototype-1.5.1.js | 0 .../editor-app/libs/ui-utils.min-0.0.4.js | 0 .../partials/root-stencil-item-template.html | 0 .../partials/stencil-item-template.html | 0 .../resources/static/editor-app/plugins.xml | 0 .../editor-app/popups/icon-template.html | 0 .../static/editor-app/popups/save-model.html | 0 .../editor-app/popups/select-shape.html | 0 .../editor-app/popups/unsaved-changes.html | 0 .../editor-app/select-shape-controller.js | 0 .../static/editor-app/stencil-controller.js | 0 .../activity/event.subprocess.collapsed.png | Bin .../icons/activity/event.subprocess.png | Bin .../icons/activity/expanded.subprocess.png | Bin .../activity/list/type.business.rule.png | Bin .../icons/activity/list/type.camel.png | Bin .../icons/activity/list/type.manual.png | Bin .../bpmn2.0/icons/activity/list/type.mule.png | Bin .../icons/activity/list/type.receive.png | Bin .../icons/activity/list/type.script.png | Bin .../bpmn2.0/icons/activity/list/type.send.png | Bin .../icons/activity/list/type.service.png | Bin .../icons/activity/list/type.shell.png | Bin .../bpmn2.0/icons/activity/list/type.user.png | Bin .../bpmn2.0/icons/activity/subprocess.png | Bin .../bpmn2.0/icons/activity/task.png | Bin .../icons/artifact/text.annotation.png | Bin .../bpmn2.0/icons/catching/cancel.png | Bin .../bpmn2.0/icons/catching/compensation.png | Bin .../bpmn2.0/icons/catching/error.png | Bin .../bpmn2.0/icons/catching/message.png | Bin .../bpmn2.0/icons/catching/signal.png | Bin .../bpmn2.0/icons/catching/timer.png | Bin .../connector/association.undirected.png | Bin .../connector/association.unidirectional.png | Bin .../bpmn2.0/icons/connector/messageflow.png | Bin .../bpmn2.0/icons/connector/sequenceflow.png | Bin .../bpmn2.0/icons/dataobject/data.store.png | Bin .../stencilsets/bpmn2.0/icons/diagram.png | Bin .../bpmn2.0/icons/endevent/cancel.png | Bin .../bpmn2.0/icons/endevent/error.png | Bin .../bpmn2.0/icons/endevent/none.png | Bin .../bpmn2.0/icons/endevent/terminate.png | Bin .../bpmn2.0/icons/gateway/eventbased.png | Bin .../icons/gateway/exclusive.databased.png | Bin .../bpmn2.0/icons/gateway/inclusive.png | Bin .../bpmn2.0/icons/gateway/parallel.png | Bin .../bpmn2.0/icons/startevent/error.png | Bin .../bpmn2.0/icons/startevent/message.png | Bin .../bpmn2.0/icons/startevent/none.png | Bin .../bpmn2.0/icons/startevent/signal.png | Bin .../bpmn2.0/icons/startevent/timer.png | Bin .../bpmn2.0/icons/swimlane/lane.png | Bin .../bpmn2.0/icons/swimlane/pool.png | Bin .../bpmn2.0/icons/throwing/none.png | Bin .../bpmn2.0/icons/throwing/signal.png | Bin .../static/editor-app/toolbar-controller.js | 0 .../src/main/resources/static/modeler.html | 0 .../src/main/resources/stencilset.json | 0 .../templates/workflow/modelAdd.html | 0 .../templates/workflow/modelList.html | 0 .../templates/workflow/processDefList.html | 0 .../templates/workflow/processEndList.html | 0 .../workflow/processRunningList.html | 0 .../templates/workflow/taskTodoList.html | 0 .../src/test/resources/application.yml | 0 {icec-common => platform/icec-common}/pom.xml | 45 +- .../org/icec/common/base/tips/DataTip.java | 0 .../org/icec/common/base/tips/ErrorTip.java | 0 .../org/icec/common/base/tips/SuccessTip.java | 0 .../java/org/icec/common/base/tips/Tip.java | 0 .../common/constants/SessionConstants.java | 0 .../icec/common/exception/IcecException.java | 0 .../java/org/icec/common/model/BaseModel.java | 0 .../org/icec/common/model/JsTreeData.java | 0 .../java/org/icec/common/model/TreeModel.java | 0 .../main/java/org/icec/common/page/Page.java | 0 .../java/org/icec/common/utils/AjaxUtils.java | 0 .../org/icec/common/utils/CryptoUtils.java | 0 .../java/org/icec/common/utils/DateUtils.java | 0 .../java/org/icec/common/utils/FileUtil.java | 0 .../java/org/icec/common/utils/HttpKit.java | 0 .../common/utils/SpringContextHolder.java | 0 .../java/org/icec/common/utils/TreeBuild.java | 0 .../java/org/icec/common/utils/WafKit.java | 0 .../icec/common/utils/WafRequestWrapper.java | 0 .../org/icec/common/web/BaseController.java | 0 {icec-parent => platform/icec-parent}/pom.xml | 43 +- platform/icec-static/pom.xml | 28 + .../static/resource}/avatars/avatar.png | Bin .../static/resource}/avatars/avatar1.png | Bin .../static/resource}/avatars/avatar2.png | Bin .../static/resource}/avatars/avatar3.png | Bin .../static/resource}/avatars/avatar4.png | Bin .../static/resource}/avatars/avatar5.png | Bin .../static/resource}/avatars/profile-pic.jpg | Bin .../static/resource}/avatars/user.jpg | Bin .../static/resource}/css/ace-fonts.css | 0 .../resources/static/resource}/css/ace-ie.css | 0 .../static/resource}/css/ace-part2.css | 0 .../static/resource}/css/ace-rtl.css | 0 .../static/resource}/css/ace-skins.css | 0 .../resources/static/resource}/css/ace.css | 2 +- .../static/resource}/css/ace.onpage-help.css | 0 .../static/resource}/css/bootstrap.css | 0 .../static/resource}/css/images/loading.gif | Bin .../resource}/css/images/meteorshower.jpg | Bin .../resource}/css/images/meteorshower2.jpg | Bin .../static/resource}/css/images/pattern.jpg | Bin .../static/resource}/css/images/pattern.png | Bin .../resource/css/login/image/2v-icon-g.png | Bin 0 -> 649 bytes .../static/resource/css/login/image/logo.png | Bin 0 -> 16653 bytes .../static/resource/css/login/image/logo.png2 | Bin 0 -> 20351 bytes .../resource/css/login/image/pc-icon-g.png | Bin 0 -> 669 bytes .../static/resource/css/login/image/pic-j.png | Bin 0 -> 317226 bytes .../resource/css/login/image/pic-j.png2 | Bin 0 -> 131170 bytes .../resource/css/login/image/qrcode.png | Bin 0 -> 1012 bytes .../static/resource/css/login/image/sjtu.png | Bin 0 -> 15726 bytes .../static/resource/css/login/image/sjtu.png2 | Bin 0 -> 42464 bytes .../static/resource/css/login/login.css | 725 ++ .../resources/static/resource}/css/pace.css | 0 .../resources/static/resource}/css/tab.css | 0 .../static/resource}/fonts/OpenSans-300.woff | Bin .../static/resource}/fonts/OpenSans-400.woff | Bin .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../resources/static/resource}/fonts/readme | 0 .../static/resource}/js/ace-elements.js | 0 .../static/resource}/js/ace-extra.js | 0 .../static/resource}/js/ace-require.js | 0 .../static/resource}/js/ace-small.js | 0 .../main/resources/static/resource}/js/ace.js | 0 .../plugins/My97DatePicker/WdatePicker.js | 0 .../plugins/My97DatePicker/calendar.js | 0 .../My97DatePicker/develop/lang/zh-cn.js | 0 .../My97DatePicker/develop/lang/zh-tw.js | 0 .../plugins/My97DatePicker/develop/readme.txt | 0 .../develop/skin/default/datepicker.css | 0 .../develop/skin/twoer/datepicker.css | 0 .../develop/skin/whyGreen/datepicker.css | 0 .../plugins/My97DatePicker/lang/en.js | 0 .../plugins/My97DatePicker/lang/zh-cn.js | 0 .../plugins/My97DatePicker/lang/zh-tw.js | 0 .../My97DatePicker/skin/WdatePicker.css | 0 .../My97DatePicker/skin/datePicker.gif | Bin .../skin/default/datepicker.css | 0 .../My97DatePicker/skin/default/img.gif | Bin .../My97DatePicker/skin/twoer/datepicker.css | 0 .../plugins/My97DatePicker/skin/twoer/img.gif | Bin .../plugins/My97DatePicker/skin/twoer/img.png | Bin .../My97DatePicker/skin/whyGreen/bg.jpg | Bin .../skin/whyGreen/datepicker.css | 0 .../My97DatePicker/skin/whyGreen/img.gif | Bin .../bootstrap-table.css | 0 .../bootstrap-table-1.11.1/bootstrap-table.js | 0 .../bootstrap-table.min.css | 0 .../bootstrap-table.min.js | 0 .../locale/bootstrap-table-en-US.js | 0 .../locale/bootstrap-table-en-US.min.js | 0 .../locale/bootstrap-table-zh-CN.js | 0 .../locale/bootstrap-table-zh-CN.min.js | 0 .../locale/bootstrap-table-zh-TW.js | 0 .../locale/bootstrap-table-zh-TW.min.js | 0 .../plugins/bootstrap/css/bootstrap-theme.css | 0 .../bootstrap/css/bootstrap-theme.min.css | 0 .../plugins/bootstrap/css/bootstrap.css | 0 .../plugins/bootstrap/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../plugins/bootstrap/js/bootstrap.js | 0 .../plugins/bootstrap/js/bootstrap.min.js | 0 .../resource}/plugins/bootstrap/js/npm.js | 0 .../plugins/chosen/chosen-sprite.png | Bin .../plugins/chosen/chosen-sprite@2x.png | Bin .../resource}/plugins/chosen/chosen.css | 0 .../resource}/plugins/chosen/chosen.jquery.js | 0 .../plugins/chosen/chosen.jquery.min.js | 0 .../resource}/plugins/chosen/chosen.min.css | 0 .../resource}/plugins/common/contabs.js | 0 .../resource}/plugins/common/jeeplus.js | 1 + .../plugins/echart/echarts.common.min.js | 1 + .../resource/plugins/echart/echarts.min.js | 1 + .../plugins/font-awesome/css/font-awesome.css | 269 +- .../font-awesome/css/font-awesome.min.css | 4 + .../fonts/fontawesome-webfont.eot | Bin 0 -> 70807 bytes .../fonts/fontawesome-webfont.svg | 655 ++ .../fonts/fontawesome-webfont.ttf | Bin 165548 -> 142072 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 83588 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 66624 bytes .../plugins/font-awesome/less/animated.less | 0 .../font-awesome/less/bordered-pulled.less | 0 .../plugins/font-awesome/less/core.less | 0 .../font-awesome/less/fixed-width.less | 0 .../font-awesome/less/font-awesome.less | 0 .../plugins/font-awesome/less/icons.less | 0 .../plugins/font-awesome/less/larger.less | 0 .../plugins/font-awesome/less/list.less | 0 .../plugins/font-awesome/less/mixins.less | 0 .../plugins/font-awesome/less/path.less | 0 .../font-awesome/less/rotated-flipped.less | 0 .../plugins/font-awesome/less/stacked.less | 0 .../plugins/font-awesome/less/variables.less | 0 .../resource/plugins/fuelux/js/wizard.js | 459 + .../resource}/plugins/html5shiv/Gruntfile.js | 0 .../html5shiv/dist/html5shiv-printshiv.js | 0 .../html5shiv/dist/html5shiv-printshiv.min.js | 0 .../plugins/html5shiv/dist/html5shiv.js | 0 .../plugins/html5shiv/dist/html5shiv.min.js | 0 .../resource/plugins/jTopo/jtopo-0.4.8-min.js | 3 + .../plugins/jquery-select2/3.4/LICENSE | 0 .../plugins/jquery-select2/3.4/README.md | 0 .../plugins/jquery-select2/3.4/index.html | 0 .../jquery-select2/3.4/select2-bootstrap.css | 0 .../jquery-select2/3.4/select2-spinner.gif | Bin .../plugins/jquery-select2/3.4/select2.css | 0 .../plugins/jquery-select2/3.4/select2.js | 0 .../jquery-select2/3.4/select2.min.css | 0 .../plugins/jquery-select2/3.4/select2.min.js | 0 .../plugins/jquery-select2/3.4/select2.png | Bin .../3.4/select2_locale_zh-CN.js | 0 .../plugins/jquery-select2/3.4/select2x2.png | Bin .../additional-methods.js | 0 .../additional-methods.min.js | 0 .../jquery.validate.js | 0 .../jquery.validate.min.js | 0 .../jquery-validation-1.17.0/messages_zh.js | 0 .../jquery-ztree/3.5.12/api/API_cn.html | 0 .../jquery-ztree/3.5.12/api/apiCss/api.js | 0 .../jquery-ztree/3.5.12/api/apiCss/common.css | 0 .../3.5.12/api/apiCss/common_ie6.css | 0 .../3.5.12/api/apiCss/img/apiMenu.gif | Bin .../3.5.12/api/apiCss/img/apiMenu.png | Bin .../3.5.12/api/apiCss/img/background.jpg | Bin .../3.5.12/api/apiCss/img/chinese.png | Bin .../3.5.12/api/apiCss/img/close.png | Bin .../3.5.12/api/apiCss/img/contact-bg.png | Bin .../3.5.12/api/apiCss/img/english.png | Bin .../3.5.12/api/apiCss/img/header-bg.png | Bin .../3.5.12/api/apiCss/img/lightbulb.png | Bin .../3.5.12/api/apiCss/img/overlay_arrow.gif | Bin .../3.5.12/api/apiCss/img/overlay_arrow.png | Bin .../3.5.12/api/apiCss/img/overlay_bg.png | Bin .../api/apiCss/img/overlay_close_IE6.gif | Bin .../3.5.12/api/apiCss/img/zTreeStandard.gif | Bin .../3.5.12/api/apiCss/img/zTreeStandard.png | Bin .../3.5.12/api/apiCss/zTreeStyleForApi.css | 0 .../3.5.12/api/cn/fn.zTree._z.html | 0 .../3.5.12/api/cn/fn.zTree.destroy.html | 0 .../3.5.12/api/cn/fn.zTree.getZTreeObj.html | 0 .../3.5.12/api/cn/fn.zTree.init.html | 0 .../api/cn/setting.async.autoParam.html | 0 .../api/cn/setting.async.contentType.html | 0 .../api/cn/setting.async.dataFilter.html | 0 .../3.5.12/api/cn/setting.async.dataType.html | 0 .../3.5.12/api/cn/setting.async.enable.html | 0 .../api/cn/setting.async.otherParam.html | 0 .../3.5.12/api/cn/setting.async.type.html | 0 .../3.5.12/api/cn/setting.async.url.html | 0 .../api/cn/setting.callback.beforeAsync.html | 0 .../api/cn/setting.callback.beforeCheck.html | 0 .../api/cn/setting.callback.beforeClick.html | 0 .../cn/setting.callback.beforeCollapse.html | 0 .../cn/setting.callback.beforeDblClick.html | 0 .../api/cn/setting.callback.beforeDrag.html | 0 .../cn/setting.callback.beforeDragOpen.html | 0 .../api/cn/setting.callback.beforeDrop.html | 0 .../cn/setting.callback.beforeEditName.html | 0 .../api/cn/setting.callback.beforeExpand.html | 0 .../cn/setting.callback.beforeMouseDown.html | 0 .../cn/setting.callback.beforeMouseUp.html | 0 .../api/cn/setting.callback.beforeRemove.html | 0 .../api/cn/setting.callback.beforeRename.html | 0 .../cn/setting.callback.beforeRightClick.html | 0 .../api/cn/setting.callback.onAsyncError.html | 0 .../cn/setting.callback.onAsyncSuccess.html | 0 .../api/cn/setting.callback.onCheck.html | 0 .../api/cn/setting.callback.onClick.html | 0 .../api/cn/setting.callback.onCollapse.html | 0 .../api/cn/setting.callback.onDblClick.html | 0 .../api/cn/setting.callback.onDrag.html | 0 .../api/cn/setting.callback.onDrop.html | 0 .../api/cn/setting.callback.onExpand.html | 0 .../api/cn/setting.callback.onMouseDown.html | 0 .../api/cn/setting.callback.onMouseUp.html | 0 .../cn/setting.callback.onNodeCreated.html | 0 .../api/cn/setting.callback.onRemove.html | 0 .../api/cn/setting.callback.onRename.html | 0 .../api/cn/setting.callback.onRightClick.html | 0 .../cn/setting.check.autoCheckTrigger.html | 0 .../cn/setting.check.chkDisabledInherit.html | 0 .../3.5.12/api/cn/setting.check.chkStyle.html | 0 .../api/cn/setting.check.chkboxType.html | 0 .../3.5.12/api/cn/setting.check.enable.html | 0 .../api/cn/setting.check.nocheckInherit.html | 0 .../api/cn/setting.check.radioType.html | 0 .../3.5.12/api/cn/setting.data.keep.leaf.html | 0 .../api/cn/setting.data.keep.parent.html | 0 .../api/cn/setting.data.key.checked.html | 0 .../api/cn/setting.data.key.children.html | 0 .../3.5.12/api/cn/setting.data.key.name.html | 0 .../3.5.12/api/cn/setting.data.key.title.html | 0 .../3.5.12/api/cn/setting.data.key.url.html | 0 .../cn/setting.data.simpleData.enable.html | 0 .../api/cn/setting.data.simpleData.idKey.html | 0 .../cn/setting.data.simpleData.pIdKey.html | 0 .../cn/setting.data.simpleData.rootPId.html | 0 .../setting.edit.drag.autoExpandTrigger.html | 0 .../cn/setting.edit.drag.autoOpenTime.html | 0 .../api/cn/setting.edit.drag.borderMax.html | 0 .../api/cn/setting.edit.drag.borderMin.html | 0 .../api/cn/setting.edit.drag.inner.html | 0 .../api/cn/setting.edit.drag.isCopy.html | 0 .../api/cn/setting.edit.drag.isMove.html | 0 .../cn/setting.edit.drag.maxShowNodeNum.html | 0 .../api/cn/setting.edit.drag.minMoveSize.html | 0 .../3.5.12/api/cn/setting.edit.drag.next.html | 0 .../3.5.12/api/cn/setting.edit.drag.prev.html | 0 .../cn/setting.edit.editNameSelectAll.html | 0 .../3.5.12/api/cn/setting.edit.enable.html | 0 .../api/cn/setting.edit.removeTitle.html | 0 .../api/cn/setting.edit.renameTitle.html | 0 .../api/cn/setting.edit.showRemoveBtn.html | 0 .../api/cn/setting.edit.showRenameBtn.html | 0 .../3.5.12/api/cn/setting.treeId.html | 0 .../3.5.12/api/cn/setting.treeObj.html | 0 .../3.5.12/api/cn/setting.view.addDiyDom.html | 0 .../api/cn/setting.view.addHoverDom.html | 0 .../cn/setting.view.autoCancelSelected.html | 0 .../api/cn/setting.view.dblClickExpand.html | 0 .../api/cn/setting.view.expandSpeed.html | 0 .../3.5.12/api/cn/setting.view.fontCss.html | 0 .../api/cn/setting.view.nameIsHTML.html | 0 .../api/cn/setting.view.removeHoverDom.html | 0 .../api/cn/setting.view.selectedMulti.html | 0 .../3.5.12/api/cn/setting.view.showIcon.html | 0 .../3.5.12/api/cn/setting.view.showLine.html | 0 .../3.5.12/api/cn/setting.view.showTitle.html | 0 .../api/cn/treeNode.check_Child_State.html | 0 .../3.5.12/api/cn/treeNode.check_Focus.html | 0 .../3.5.12/api/cn/treeNode.checked.html | 0 .../3.5.12/api/cn/treeNode.checkedOld.html | 0 .../3.5.12/api/cn/treeNode.children.html | 0 .../3.5.12/api/cn/treeNode.chkDisabled.html | 0 .../3.5.12/api/cn/treeNode.click.html | 0 .../3.5.12/api/cn/treeNode.diy.html | 0 .../3.5.12/api/cn/treeNode.editNameFlag.html | 0 .../api/cn/treeNode.getCheckStatus.html | 0 .../3.5.12/api/cn/treeNode.getNextNode.html | 0 .../3.5.12/api/cn/treeNode.getParentNode.html | 0 .../3.5.12/api/cn/treeNode.getPreNode.html | 0 .../3.5.12/api/cn/treeNode.halfCheck.html | 0 .../3.5.12/api/cn/treeNode.icon.html | 0 .../3.5.12/api/cn/treeNode.iconClose.html | 0 .../3.5.12/api/cn/treeNode.iconOpen.html | 0 .../3.5.12/api/cn/treeNode.iconSkin.html | 0 .../3.5.12/api/cn/treeNode.isAjaxing.html | 0 .../3.5.12/api/cn/treeNode.isFirstNode.html | 0 .../3.5.12/api/cn/treeNode.isHidden.html | 0 .../3.5.12/api/cn/treeNode.isHover.html | 0 .../3.5.12/api/cn/treeNode.isLastNode.html | 0 .../3.5.12/api/cn/treeNode.isParent.html | 0 .../3.5.12/api/cn/treeNode.level.html | 0 .../3.5.12/api/cn/treeNode.name.html | 0 .../3.5.12/api/cn/treeNode.nocheck.html | 0 .../3.5.12/api/cn/treeNode.open.html | 0 .../3.5.12/api/cn/treeNode.parentTId.html | 0 .../3.5.12/api/cn/treeNode.tId.html | 0 .../3.5.12/api/cn/treeNode.target.html | 0 .../3.5.12/api/cn/treeNode.url.html | 0 .../3.5.12/api/cn/treeNode.zAsync.html | 0 .../3.5.12/api/cn/zTreeObj.addNodes.html | 0 .../api/cn/zTreeObj.cancelEditName.html | 0 .../api/cn/zTreeObj.cancelSelectedNode.html | 0 .../3.5.12/api/cn/zTreeObj.checkAllNodes.html | 0 .../3.5.12/api/cn/zTreeObj.checkNode.html | 0 .../3.5.12/api/cn/zTreeObj.copyNode.html | 0 .../3.5.12/api/cn/zTreeObj.destroy.html | 0 .../3.5.12/api/cn/zTreeObj.editName.html | 0 .../3.5.12/api/cn/zTreeObj.expandAll.html | 0 .../3.5.12/api/cn/zTreeObj.expandNode.html | 0 .../cn/zTreeObj.getChangeCheckedNodes.html | 0 .../api/cn/zTreeObj.getCheckedNodes.html | 0 .../api/cn/zTreeObj.getNodeByParam.html | 0 .../3.5.12/api/cn/zTreeObj.getNodeByTId.html | 0 .../3.5.12/api/cn/zTreeObj.getNodeIndex.html | 0 .../3.5.12/api/cn/zTreeObj.getNodes.html | 0 .../api/cn/zTreeObj.getNodesByFilter.html | 0 .../api/cn/zTreeObj.getNodesByParam.html | 0 .../api/cn/zTreeObj.getNodesByParamFuzzy.html | 0 .../api/cn/zTreeObj.getSelectedNodes.html | 0 .../3.5.12/api/cn/zTreeObj.hideNode.html | 0 .../3.5.12/api/cn/zTreeObj.hideNodes.html | 0 .../3.5.12/api/cn/zTreeObj.moveNode.html | 0 .../api/cn/zTreeObj.reAsyncChildNodes.html | 0 .../3.5.12/api/cn/zTreeObj.refresh.html | 0 .../api/cn/zTreeObj.removeChildNodes.html | 0 .../3.5.12/api/cn/zTreeObj.removeNode.html | 0 .../3.5.12/api/cn/zTreeObj.selectNode.html | 0 .../api/cn/zTreeObj.setChkDisabled.html | 0 .../3.5.12/api/cn/zTreeObj.setEditable.html | 0 .../3.5.12/api/cn/zTreeObj.setting.html | 0 .../3.5.12/api/cn/zTreeObj.showNode.html | 0 .../3.5.12/api/cn/zTreeObj.showNodes.html | 0 .../api/cn/zTreeObj.transformToArray.html | 0 .../cn/zTreeObj.transformTozTreeNodes.html | 0 .../3.5.12/api/cn/zTreeObj.updateNode.html | 0 .../plugins/jquery-ztree/3.5.12/css/demo.css | 0 .../3.5.12/css/zTreeStyle/img/diy/1_close.png | Bin .../3.5.12/css/zTreeStyle/img/diy/1_open.png | Bin .../3.5.12/css/zTreeStyle/img/diy/2.png | Bin .../3.5.12/css/zTreeStyle/img/diy/3.png | Bin .../3.5.12/css/zTreeStyle/img/diy/4.png | Bin .../3.5.12/css/zTreeStyle/img/diy/5.png | Bin .../3.5.12/css/zTreeStyle/img/diy/6.png | Bin .../3.5.12/css/zTreeStyle/img/diy/7.png | Bin .../3.5.12/css/zTreeStyle/img/diy/8.png | Bin .../3.5.12/css/zTreeStyle/img/diy/9.png | Bin .../3.5.12/css/zTreeStyle/img/line_conn.gif | Bin .../3.5.12/css/zTreeStyle/img/loading.gif | Bin .../css/zTreeStyle/img/zTreeStandard.gif | Bin .../css/zTreeStyle/img/zTreeStandard.png | Bin .../3.5.12/css/zTreeStyle/zTreeStyle.css | 0 .../3.5.12/css/zTreeStyle/zTreeStyle.min.css | 0 .../3.5.12/demo/cn/asyncData/getNodes.php | 0 .../demo/cn/asyncData/getNodesForBigData.php | 0 .../3.5.12/demo/cn/bigdata/common.html | 0 .../3.5.12/demo/cn/bigdata/diy_async.html | 0 .../3.5.12/demo/cn/bigdata/page.html | 0 .../3.5.12/demo/cn/core/async.html | 0 .../3.5.12/demo/cn/core/async_fun.html | 0 .../3.5.12/demo/cn/core/click.html | 0 .../3.5.12/demo/cn/core/custom_font.html | 0 .../3.5.12/demo/cn/core/custom_icon.html | 0 .../3.5.12/demo/cn/core/custom_iconSkin.html | 0 .../3.5.12/demo/cn/core/expand.html | 0 .../3.5.12/demo/cn/core/noicon.html | 0 .../3.5.12/demo/cn/core/noline.html | 0 .../3.5.12/demo/cn/core/otherMouse.html | 0 .../3.5.12/demo/cn/core/searchNodes.html | 0 .../3.5.12/demo/cn/core/simpleData.html | 0 .../3.5.12/demo/cn/core/standardData.html | 0 .../3.5.12/demo/cn/core/update_fun.html | 0 .../jquery-ztree/3.5.12/demo/cn/core/url.html | 0 .../3.5.12/demo/cn/excheck/checkbox.html | 0 .../demo/cn/excheck/checkbox_chkDisabled.html | 0 .../demo/cn/excheck/checkbox_count.html | 0 .../3.5.12/demo/cn/excheck/checkbox_fun.html | 0 .../demo/cn/excheck/checkbox_halfCheck.html | 0 .../demo/cn/excheck/checkbox_nocheck.html | 0 .../3.5.12/demo/cn/excheck/radio.html | 0 .../demo/cn/excheck/radio_chkDisabled.html | 0 .../3.5.12/demo/cn/excheck/radio_fun.html | 0 .../demo/cn/excheck/radio_halfCheck.html | 0 .../3.5.12/demo/cn/excheck/radio_nocheck.html | 0 .../3.5.12/demo/cn/exedit/async_edit.html | 0 .../3.5.12/demo/cn/exedit/drag.html | 0 .../3.5.12/demo/cn/exedit/drag_fun.html | 0 .../3.5.12/demo/cn/exedit/drag_super.html | 0 .../3.5.12/demo/cn/exedit/edit.html | 0 .../3.5.12/demo/cn/exedit/edit_fun.html | 0 .../3.5.12/demo/cn/exedit/edit_super.html | 0 .../3.5.12/demo/cn/exedit/multiTree.html | 0 .../3.5.12/demo/cn/exhide/checkbox.html | 0 .../3.5.12/demo/cn/exhide/common.html | 0 .../3.5.12/demo/cn/exhide/radio.html | 0 .../jquery-ztree/3.5.12/demo/cn/index.html | 0 .../3.5.12/demo/cn/super/asyncForAll.html | 0 .../3.5.12/demo/cn/super/checkbox_radio.html | 0 .../3.5.12/demo/cn/super/diydom.html | 0 .../3.5.12/demo/cn/super/dragWithOther.html | 0 .../3.5.12/demo/cn/super/left_menu.html | 0 .../demo/cn/super/left_menuForOutLook.gif | Bin .../demo/cn/super/left_menuForOutLook.html | 0 .../demo/cn/super/left_menuForOutLook.png | Bin .../3.5.12/demo/cn/super/oneclick.html | 0 .../3.5.12/demo/cn/super/oneroot.html | 0 .../3.5.12/demo/cn/super/rightClickMenu.html | 0 .../3.5.12/demo/cn/super/select_menu.html | 0 .../demo/cn/super/select_menu_checkbox.html | 0 .../demo/cn/super/select_menu_radio.html | 0 .../3.5.12/demo/cn/super/singlepath.html | 0 .../3.5.12/js/jquery-1.4.4.min.js | 0 .../3.5.12/js/jquery.ztree.all-3.5.js | 0 .../3.5.12/js/jquery.ztree.all-3.5.min.js | 0 .../3.5.12/js/jquery.ztree.core-3.5.js | 0 .../3.5.12/js/jquery.ztree.core-3.5.min.js | 0 .../3.5.12/js/jquery.ztree.excheck-3.5.js | 0 .../3.5.12/js/jquery.ztree.excheck-3.5.min.js | 0 .../3.5.12/js/jquery.ztree.exedit-3.5.js | 0 .../3.5.12/js/jquery.ztree.exedit-3.5.min.js | 0 .../3.5.12/js/jquery.ztree.exhide-3.5.js | 0 .../3.5.12/js/jquery.ztree.exhide-3.5.min.js | 0 .../plugins/jquery-ztree/3.5.12/log v3.x.txt | 0 .../plugins/jquery.1x/dist/jquery.js | 0 .../plugins/jquery.1x/dist/jquery.min.js | 0 .../plugins/jquery.1x/dist/jquery.slim.js | 0 .../plugins/jquery.1x/dist/jquery.slim.min.js | 0 .../resource}/plugins/jquery.form.min.js | 0 .../jquery.mobile.custom.js | 0 .../jquery.mobile.custom.min.js | 0 .../plugins/jquery.serializejson.min.js | 0 .../resource}/plugins/jquery/dist/jquery.js | 0 .../plugins/jquery/dist/jquery.min.js | 0 .../plugins/jquery/dist/jquery.slim.js | 0 .../plugins/jquery/dist/jquery.slim.min.js | 0 .../static/resource}/plugins/jstree/jstree.js | 0 .../resource}/plugins/jstree/jstree.min.js | 0 .../jstree/themes/default-dark/32px.png | Bin .../jstree/themes/default-dark/40px.png | Bin .../jstree/themes/default-dark/style.css | 0 .../jstree/themes/default-dark/style.min.css | 0 .../jstree/themes/default-dark/throbber.gif | Bin .../plugins/jstree/themes/default/32px.png | Bin .../plugins/jstree/themes/default/40px.png | Bin .../plugins/jstree/themes/default/style.css | 0 .../jstree/themes/default/style.min.css | 0 .../jstree/themes/default/throbber.gif | Bin .../static/resource}/plugins/layer/layer.js | 0 .../static/resource}/plugins/layer/laytpl.js | 0 .../resource}/plugins/layer/mobile/layer.js | 0 .../plugins/layer/mobile/need/layer.css | 0 .../plugins/layer/theme/default/icon-ext.png | Bin .../plugins/layer/theme/default/icon.png | Bin .../plugins/layer/theme/default/layer.css | 0 .../plugins/layer/theme/default/loading-0.gif | Bin .../plugins/layer/theme/default/loading-1.gif | Bin .../plugins/layer/theme/default/loading-2.gif | Bin .../resource/plugins}/layui/css/layui.css | 0 .../plugins}/layui/css/layui.mobile.css | 0 .../plugins}/layui/css/modules/code.css | 0 .../css/modules/laydate/default/laydate.css | 0 .../css/modules/layer/default/icon-ext.png | Bin .../layui/css/modules/layer/default/icon.png | Bin .../layui/css/modules/layer/default/layer.css | 0 .../css/modules/layer/default/loading-0.gif | Bin .../css/modules/layer/default/loading-1.gif | Bin .../css/modules/layer/default/loading-2.gif | Bin .../resource/plugins}/layui/font/iconfont.eot | Bin .../resource/plugins}/layui/font/iconfont.svg | 0 .../resource/plugins}/layui/font/iconfont.ttf | Bin .../plugins}/layui/font/iconfont.woff | Bin .../resource/plugins}/layui/images/face/0.gif | Bin .../resource/plugins}/layui/images/face/1.gif | Bin .../plugins}/layui/images/face/10.gif | Bin .../plugins}/layui/images/face/11.gif | Bin .../plugins}/layui/images/face/12.gif | Bin .../plugins}/layui/images/face/13.gif | Bin .../plugins}/layui/images/face/14.gif | Bin .../plugins}/layui/images/face/15.gif | Bin .../plugins}/layui/images/face/16.gif | Bin .../plugins}/layui/images/face/17.gif | Bin .../plugins}/layui/images/face/18.gif | Bin .../plugins}/layui/images/face/19.gif | Bin .../resource/plugins}/layui/images/face/2.gif | Bin .../plugins}/layui/images/face/20.gif | Bin .../plugins}/layui/images/face/21.gif | Bin .../plugins}/layui/images/face/22.gif | Bin .../plugins}/layui/images/face/23.gif | Bin .../plugins}/layui/images/face/24.gif | Bin .../plugins}/layui/images/face/25.gif | Bin .../plugins}/layui/images/face/26.gif | Bin .../plugins}/layui/images/face/27.gif | Bin .../plugins}/layui/images/face/28.gif | Bin .../plugins}/layui/images/face/29.gif | Bin .../resource/plugins}/layui/images/face/3.gif | Bin .../plugins}/layui/images/face/30.gif | Bin .../plugins}/layui/images/face/31.gif | Bin .../plugins}/layui/images/face/32.gif | Bin .../plugins}/layui/images/face/33.gif | Bin .../plugins}/layui/images/face/34.gif | Bin .../plugins}/layui/images/face/35.gif | Bin .../plugins}/layui/images/face/36.gif | Bin .../plugins}/layui/images/face/37.gif | Bin .../plugins}/layui/images/face/38.gif | Bin .../plugins}/layui/images/face/39.gif | Bin .../resource/plugins}/layui/images/face/4.gif | Bin .../plugins}/layui/images/face/40.gif | Bin .../plugins}/layui/images/face/41.gif | Bin .../plugins}/layui/images/face/42.gif | Bin .../plugins}/layui/images/face/43.gif | Bin .../plugins}/layui/images/face/44.gif | Bin .../plugins}/layui/images/face/45.gif | Bin .../plugins}/layui/images/face/46.gif | Bin .../plugins}/layui/images/face/47.gif | Bin .../plugins}/layui/images/face/48.gif | Bin .../plugins}/layui/images/face/49.gif | Bin .../resource/plugins}/layui/images/face/5.gif | Bin .../plugins}/layui/images/face/50.gif | Bin .../plugins}/layui/images/face/51.gif | Bin .../plugins}/layui/images/face/52.gif | Bin .../plugins}/layui/images/face/53.gif | Bin .../plugins}/layui/images/face/54.gif | Bin .../plugins}/layui/images/face/55.gif | Bin .../plugins}/layui/images/face/56.gif | Bin .../plugins}/layui/images/face/57.gif | Bin .../plugins}/layui/images/face/58.gif | Bin .../plugins}/layui/images/face/59.gif | Bin .../resource/plugins}/layui/images/face/6.gif | Bin .../plugins}/layui/images/face/60.gif | Bin .../plugins}/layui/images/face/61.gif | Bin .../plugins}/layui/images/face/62.gif | Bin .../plugins}/layui/images/face/63.gif | Bin .../plugins}/layui/images/face/64.gif | Bin .../plugins}/layui/images/face/65.gif | Bin .../plugins}/layui/images/face/66.gif | Bin .../plugins}/layui/images/face/67.gif | Bin .../plugins}/layui/images/face/68.gif | Bin .../plugins}/layui/images/face/69.gif | Bin .../resource/plugins}/layui/images/face/7.gif | Bin .../plugins}/layui/images/face/70.gif | Bin .../plugins}/layui/images/face/71.gif | Bin .../resource/plugins}/layui/images/face/8.gif | Bin .../resource/plugins}/layui/images/face/9.gif | Bin .../plugins}/layui/lay/modules/carousel.js | 0 .../plugins}/layui/lay/modules/code.js | 0 .../plugins}/layui/lay/modules/element.js | 0 .../plugins}/layui/lay/modules/flow.js | 0 .../plugins}/layui/lay/modules/form.js | 0 .../plugins}/layui/lay/modules/jquery.js | 0 .../plugins}/layui/lay/modules/laydate.js | 0 .../plugins}/layui/lay/modules/layedit.js | 0 .../plugins}/layui/lay/modules/layer.js | 0 .../plugins}/layui/lay/modules/laypage.js | 0 .../plugins}/layui/lay/modules/laytpl.js | 0 .../plugins}/layui/lay/modules/mobile.js | 0 .../plugins}/layui/lay/modules/table.js | 0 .../plugins}/layui/lay/modules/tree.js | 0 .../plugins}/layui/lay/modules/upload.js | 0 .../plugins}/layui/lay/modules/util.js | 0 .../resource/plugins}/layui/layui.all.js | 0 .../static/resource/plugins}/layui/layui.js | 0 .../plugins/mustache/mustache.min.js | 0 .../static/resource/plugins/openlayer/ol.css | 1 + .../static/resource/plugins/openlayer/ol.js | 1072 +++ .../resource}/plugins/respond/Gruntfile.js | 0 .../respond/cross-domain/respond.proxy.gif | Bin .../respond/cross-domain/respond.proxy.js | 0 .../respond.matchmedia.addListener.min.js | 0 .../respond.matchmedia.addListener.src.js | 0 .../plugins/respond/dest/respond.min.js | 0 .../plugins/respond/dest/respond.src.js | 0 .../respond/src/matchmedia.addListener.js | 0 .../respond/src/matchmedia.polyfill.js | 0 .../resource}/plugins/respond/src/respond.js | 0 .../plugins/swiper-4.1.6/css/swiper.css | 616 ++ .../plugins/swiper-4.1.6/css/swiper.min.css | 12 + .../swiper-4.1.6/js/swiper.esm.bundle.js | 6478 ++++++++++++++ .../plugins/swiper-4.1.6/js/swiper.esm.js | 6461 ++++++++++++++ .../plugins/swiper-4.1.6/js/swiper.js | 7485 +++++++++++++++++ .../plugins/swiper-4.1.6/js/swiper.min.js | 13 + .../plugins/swiper-4.1.6/js/swiper.min.js.map | 1 + .../plugins/template7/1.3.5/template7.esm.js | 598 ++ .../plugins/template7/1.3.5/template7.js | 622 ++ .../plugins/template7/1.3.5/template7.js.map | 1 + .../plugins/template7/1.3.5/template7.min.js | 16 + .../template7/1.3.5/template7.min.js.map | 1 + .../plugins/template7/template7Helper.js | 5 + .../plugins/treeTable/jquery.treeTable.js | 0 .../plugins/treeTable/jquery.treeTable.min.js | 0 .../treeTable/themes/default/allbgs.gif | Bin .../treeTable/themes/default/allbgs.png | Bin .../treeTable/themes/default/treeTable.css | 0 .../themes/default/treeTable.min.css | 0 .../treeTable/themes/vsStyle/allbgs.gif | Bin .../treeTable/themes/vsStyle/allbgs.png | Bin .../treeTable/themes/vsStyle/allbgs.psd | Bin .../treeTable/themes/vsStyle/treeTable.css | 0 .../themes/vsStyle/treeTable.min.css | 0 .../resource/plugins/websocket/sockjs.min.js | 27 + .../resource/plugins/websocket/stomp.js | 501 ++ {icec-sys => platform/icec-sys}/pom.xml | 92 +- .../icec/web/core}/config/KaptchaConfig.java | 2 +- .../org/icec/web/core/config/RedisConfig.java | 48 + .../org/icec/web/core/config/ShiroConfig.java | 107 + .../icec/web/core}/config/SystemConfig.java | 5 +- .../web/core}/config/WebMvcConfigurer.java | 4 +- .../core}/shiro/annotation/CurrentUser.java | 2 +- .../credential/BCryptPasswordService.java | 2 +- .../exception/IncorrectCaptchaException.java | 2 +- .../filter/JWTOrFormAuthenticationFilter.java | 6 +- .../org/icec/web/core}/shiro/jwt/JwtUtil.java | 4 +- .../icec/web/core}/shiro/jwt/TokenStatus.java | 2 +- .../web/core}/shiro/realm/MyFormRealm.java | 14 +- .../web/core}/shiro/realm/MyJWTRealm.java | 20 +- .../CurrentUserMethodArgumentResolver.java | 6 +- .../shiro/token/JWTAuthenticationToken.java | 2 +- .../shiro/token/UserAuthenticationToken.java | 2 +- .../support}/aop/GlobalExceptionHandler.java | 10 +- .../support}/aop/MainsiteErrorController.java | 2 +- .../web/core/support}/aop/WebLogAspect.java | 12 +- .../web/core/support}/log/LogManager.java | 2 +- .../web/core/support}/log/LogTaskFactory.java | 6 +- .../thymeleaf/config/DialectConfig.java | 4 +- .../support}/thymeleaf/dict/DictDialect.java | 2 +- .../thymeleaf/dict/DictSelectProcessor.java | 6 +- .../thymeleaf/dict/DictShowProcessor.java | 6 +- .../StompMessageHandshakeHandler.java | 2 +- .../support}/websocket/WebSocketAction.java | 2 +- .../support}/websocket/WebSocketConfig.java | 2 +- .../websocket/WebSocketHandshakeHandler.java | 2 +- .../WebSocketHandshakeInterceptor.java | 6 +- .../support}/websocket/WebsocketSender.java | 2 +- .../web/core}/sys/controller/IndexCtrl.java | 14 +- .../web/core}/sys/controller/SysAreaCtrl.java | 10 +- .../web/core}/sys/controller/SysDictCtrl.java | 12 +- .../web/core}/sys/controller/SysFileCtrl.java | 10 +- .../core}/sys/controller/SysGlobalCtrl.java | 10 +- .../web/core}/sys/controller/SysLogCtrl.java | 6 +- .../web/core}/sys/controller/SysMenuCtrl.java | 10 +- .../core}/sys/controller/SysOfficeCtrl.java | 12 +- .../web/core}/sys/controller/SysRoleCtrl.java | 10 +- .../web/core}/sys/controller/SystemCtrl.java | 12 +- .../core}/sys/controller/SystemInfoCtrl.java | 2 +- .../core}/sys/controller/TreeSelectCtrl.java | 2 +- .../web/core}/sys/controller/UserCtrl.java | 16 +- .../icec/web/core}/sys/dao/SysAreaDao.java | 4 +- .../icec/web/core}/sys/dao/SysDictDao.java | 4 +- .../icec/web/core}/sys/dao/SysFileDao.java | 4 +- .../icec/web/core}/sys/dao/SysGlobalDao.java | 4 +- .../org/icec/web/core}/sys/dao/SysLogDao.java | 4 +- .../icec/web/core}/sys/dao/SysMenuDao.java | 4 +- .../icec/web/core}/sys/dao/SysOfficeDao.java | 4 +- .../icec/web/core}/sys/dao/SysRoleDao.java | 4 +- .../icec/web/core}/sys/dao/SysUserDao.java | 4 +- .../org/icec/web/core}/sys/model/SysArea.java | 2 +- .../org/icec/web/core}/sys/model/SysDict.java | 2 +- .../org/icec/web/core}/sys/model/SysFile.java | 2 +- .../icec/web/core}/sys/model/SysGlobal.java | 2 +- .../org/icec/web/core}/sys/model/SysLog.java | 2 +- .../org/icec/web/core}/sys/model/SysMenu.java | 2 +- .../icec/web/core}/sys/model/SysOffice.java | 2 +- .../org/icec/web/core}/sys/model/SysRole.java | 2 +- .../org/icec/web/core}/sys/model/SysUser.java | 2 +- .../web/core}/sys/service/SysAreaService.java | 8 +- .../web/core}/sys/service/SysDictService.java | 9 +- .../web/core}/sys/service/SysFileService.java | 8 +- .../core}/sys/service/SysGlobalService.java | 8 +- .../web/core}/sys/service/SysLogService.java | 6 +- .../web/core}/sys/service/SysMenuService.java | 10 +- .../core}/sys/service/SysOfficeService.java | 10 +- .../web/core}/sys/service/SysRoleService.java | 8 +- .../web/core}/sys/service/SysUserService.java | 10 +- .../icec/web/core}/sys/utils/ShiroKit.java | 4 +- .../src/main/resources/sql/sysArea.md | 0 .../src/main/resources/sql/sysDict.md | 0 .../src/main/resources/sql/sysFile.md | 83 +- .../src/main/resources/sql/sysGlobal.md | 0 .../src/main/resources/sql/sysLog.md | 0 .../src/main/resources/sql/sysMenu.md | 0 .../src/main/resources/sql/sysOffice.md | 0 .../src/main/resources/sql/sysRole.md | 0 .../src/main/resources/sql/sysUser.md | 0 .../resources/templates/common/commonJS.html | 34 + .../resources/templates/common/layout.html | 20 +- .../templates/common/treeselect.html | 0 .../main/resources/templates/error/404.html | 0 .../main/resources/templates/error/500.html | 0 .../resources/templates/sys/area/areaAdd.html | 0 .../templates/sys/area/areaEdit.html | 0 .../templates/sys/area/areaList.html | 4 +- .../resources/templates/sys/dict/dictAdd.html | 43 +- .../templates/sys/dict/dictEdit.html | 48 +- .../templates/sys/dict/dictList.html | 30 +- .../templates/sys/dict/dictValueAdd.html | 0 .../templates/sys/dict/dictValueEdit.html | 0 .../resources/templates/sys/environment.html | 0 .../templates/sys/global/globalEdit.html | 0 .../main/resources/templates/sys/home.html | 86 +- .../main/resources/templates/sys/index.html | 162 +- .../main/resources/templates/sys/index2.html | 0 .../resources/templates/sys/log/logList.html | 115 +- .../main/resources/templates/sys/login.html | 425 + .../main/resources/templates/sys/login2.html | 8 +- .../resources/templates/sys/menu/menuAdd.html | 0 .../templates/sys/menu/menuEdit.html | 0 .../templates/sys/menu/menuList.html | 0 .../templates/sys/office/officeAdd.html | 4 +- .../templates/sys/office/officeEdit.html | 0 .../templates/sys/office/officeList.html | 4 +- .../resources/templates/sys/role/roleAdd.html | 51 +- .../templates/sys/role/roleAuth.html | 42 +- .../templates/sys/role/roleEdit.html | 48 +- .../templates/sys/role/roleList.html | 6 +- .../templates/sys/role/roleValueAdd.html | 0 .../templates/sys/schedule/list.html | 0 .../resources/templates/sys/sidebar_nav.html | 2 +- .../templates/sys/sysGlobalInfo.html | 97 + .../templates/sys/user/modifyPasswd.html | 0 .../resources/templates/sys/user/userAdd.html | 42 +- .../templates/sys/user/userEdit.html | 48 +- .../templates/sys/user/userList.html | 0 .../templates/sys/user/userSetting.html | 0 .../resources/templates/websocket/test.html | 39 + .../java/org/iece/tools/sys/UserTool.java | 0 pom.xml => platform/pom.xml | 14 +- {icec-autogen => tools/icec-autogen}/pom.xml | 5 +- .../main/java/org/icec/gen/core/AutoGen.java | 0 .../main/java/org/icec/gen/core/CodeGen.java | 0 .../org/icec/gen/core/ControllerCodeGen.java | 0 .../java/org/icec/gen/core/GenConfig.java | 0 .../java/org/icec/gen/core/MapperCodeGen.java | 0 .../java/org/icec/gen/core/MdCodeGen.java | 0 .../org/icec/gen/core/ServiceCodeGen.java | 0 .../java/org/icec/gen/core/SourceGen.java | 0 .../java/org/icec/gen/core/controller.btl | 0 .../main/java/org/icec/gen/core/mapper.btl | 0 .../src/main/java/org/icec/gen/core/md.btl | 0 .../src/main/java/org/icec/gen/core/pojo.btl | 0 .../main/java/org/icec/gen/core/service.btl | 0 .../src/main/resources/logback.xml | 0 .../main/resources/logback/logback-dev.xml | 0 .../logback/logback-level-config.xml | 0 .../main/resources/logback/logback-pro.xml | 0 .../test/java/org/icec/gen/GenBqlTools.java | 0 .../src/test/resources/jdbc.properties | 0 1181 files changed, 27290 insertions(+), 7162 deletions(-) rename {icec-admin => application/icec-admin}/.gitignore (100%) rename {icec-admin => application/icec-admin}/bin/check.sh (100%) rename {icec-admin => application/icec-admin}/bin/start.sh (100%) rename {icec-admin => application/icec-admin}/bin/stop.sh (100%) rename {icec-admin => application/icec-admin}/pom.xml (76%) rename {icec-admin => application/icec-admin}/src/main/java/org/icec/web/AdminMain.java (93%) rename {icec-admin => application/icec-admin}/src/main/resources/application-dev.properties (93%) rename {icec-admin => application/icec-admin}/src/main/resources/application-pro.properties (100%) rename {icec-admin => application/icec-admin}/src/main/resources/application-test.properties (100%) rename {icec-admin => application/icec-admin}/src/main/resources/application.properties (100%) rename {icec-admin => application/icec-admin}/src/main/resources/distribution/distribution.xml (100%) rename {icec-admin => application/icec-admin}/src/main/resources/ehcache-shiro.xml (100%) rename {icec-admin => application/icec-admin}/src/main/resources/logback.xml (100%) rename {icec-admin => application/icec-admin}/src/main/resources/logback/logback-dev.xml (100%) rename {icec-admin => application/icec-admin}/src/main/resources/logback/logback-level-config.xml (100%) rename {icec-admin => application/icec-admin}/src/main/resources/logback/logback-pro.xml (100%) rename {icec-admin => application/icec-admin}/src/main/resources/mykaptcha.xml (100%) rename {icec-admin => application/icec-admin}/src/main/resources/static/my/css/1.css (100%) rename {icec-admin => application/icec-admin}/src/main/resources/static/my/css/index.css (100%) rename {icec-admin => application/icec-admin}/src/main/resources/static/my/css/style.css (100%) rename {icec-admin => application/icec-admin}/src/main/resources/static/my/images/icec.png (100%) rename {icec-admin => application/icec-admin}/src/main/resources/static/my/js/bodyTab.js (100%) rename {icec-admin => application/icec-admin}/src/main/resources/static/my/js/cache.js (100%) rename {icec-admin => application/icec-admin}/src/main/resources/static/my/js/index.js (100%) delete mode 100644 icec-admin/.classpath delete mode 100644 icec-admin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 icec-admin/.settings/org.eclipse.m2e.core.prefs delete mode 100644 icec-admin/src/main/resources/static/ace/images/email1.png delete mode 100644 icec-admin/src/main/resources/static/ace/images/email2.png delete mode 100644 icec-admin/src/main/resources/static/ace/images/email3.png delete mode 100644 icec-admin/src/main/resources/static/ace/images/email4.png delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/image-1.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/image-2.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/image-3.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/image-4.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/image-5.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/image-6.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/thumb-1.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/thumb-2.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/thumb-3.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/thumb-4.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/thumb-5.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/images/gallery/thumb-6.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/css/base.css delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/index.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.1.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.2.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.3.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.4.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp-.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.6.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/3.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp-.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo.css delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe2.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/left.htm delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/main.asp delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic1.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic2.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic3.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/block/block-body.gif delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/block/block-bottom.gif delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/block/block-top.gif delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/body.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/footer.jpg delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/font-awesome/css/font-awesome.min.css delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/FontAwesome.otf delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.eot delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.svg delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.woff delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.woff2 delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/style/demo.css delete mode 100644 icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/treeTable.html delete mode 100644 icec-sys/.classpath delete mode 100644 icec-sys/.settings/org.eclipse.jdt.core.prefs delete mode 100644 icec-sys/.settings/org.eclipse.m2e.core.prefs delete mode 100644 icec-sys/src/main/java/org/icec/web/config/ShiroConfig.java delete mode 100644 icec-sys/src/main/resources/ehcache-shiro.xml delete mode 100644 icec-sys/src/main/resources/mykaptcha.xml delete mode 100644 icec-sys/src/main/resources/templates/common/commonJS.html delete mode 100644 icec-sys/src/test/resources/jdbc.properties rename "icec-ireport/lib/msyh-1.0.jar_\346\224\271\345\220\215" => "module/icec-ireport/lib/msyh-1.0.jar_\346\224\271\345\220\215" (100%) rename {icec-ireport => module/icec-ireport}/pom.xml (100%) rename {icec-ireport => module/icec-ireport}/src/main/java/org/icec/web/ireport/controller/IreportController.java (100%) rename {icec-ireport => module/icec-ireport}/src/main/resources/jasperreports/test.jrxml (100%) rename {icec-ireport => module/icec-ireport}/src/test/java/org/icec/ireport/test/IreportDemo.java (100%) rename {icec-ireport => module/icec-ireport}/src/test/java/org/icec/ireport/test/User.java (100%) rename {icec-ireport => module/icec-ireport}/src/test/resources/A_A4.jrxml (100%) rename {icec-oa => module/icec-oa}/pom.xml (100%) rename {icec-oa => module/icec-oa}/src/main/java/org/icec/web/oa/common/BaseFlowModel.java (100%) rename {icec-oa => module/icec-oa}/src/main/java/org/icec/web/oa/controller/LeaveProcessCtrl.java (100%) rename {icec-oa => module/icec-oa}/src/main/java/org/icec/web/oa/dao/OaLeaveDao.java (100%) rename {icec-oa => module/icec-oa}/src/main/java/org/icec/web/oa/model/OaLeave.java (100%) rename {icec-oa => module/icec-oa}/src/main/java/org/icec/web/oa/service/OaLeaveService.java (100%) rename {icec-oa => module/icec-oa}/src/main/resources/sql/oaLeave.md (100%) rename {icec-oa => module/icec-oa}/src/main/resources/templates/oa/leave/leaveEdit.html (100%) rename {icec-oa => module/icec-oa}/src/main/resources/templates/oa/leave/leavemy.html (100%) rename {icec-schedule => module/icec-schedule}/.springBeans (100%) rename {icec-schedule => module/icec-schedule}/pom.xml (100%) rename {icec-schedule => module/icec-schedule}/src/main/java/org/icec/schedule/ScheduleApplication.java (100%) rename {icec-schedule => module/icec-schedule}/src/main/java/org/icec/schedule/core/QuartzConfigration.java (100%) rename {icec-schedule => module/icec-schedule}/src/main/java/org/icec/schedule/exception/ServiceException.java (100%) rename {icec-schedule => module/icec-schedule}/src/main/java/org/icec/schedule/job/DemoJob.java (100%) rename {icec-schedule => module/icec-schedule}/src/main/java/org/icec/schedule/service/JobTaskService.java (100%) rename {icec-schedule => module/icec-schedule}/src/main/java/org/icec/schedule/service/TaskInfo.java (100%) rename {icec-schedule => module/icec-schedule}/src/main/java/org/icec/schedule/web/ScheduleCtrl.java (100%) rename {icec-schedule => module/icec-schedule}/src/main/resources/quartz.properties (100%) rename {icec-workflow => module/icec-workflow}/pom.xml (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/Status.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/ToWeb.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/config/Cfg_Activiti.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/controller/ActTaskCtrl.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/controller/ModelerController.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/controller/ProcessController.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/controller/RestServiceController.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/FilterServletOutputStream.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/GenericResponseWrapper.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/JsonpCallbackFilter.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/diagram/BaseProcessDefinitionDiagramLayoutResource.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/diagram/ProcessDefinitionDiagramLayoutResource.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceDiagramLayoutResource.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceHighlightsResource.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/editor/ModelEditorJsonRestResource.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/editor/ModelSaveRestResource.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/core/editor/StencilsetRestResource.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/service/ActTaskService.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/service/ModelService.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/service/ProcessService.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/java/org/icec/web/activiti/vo/Act.java (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/bg.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/breadcrumbs.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/checker-bg.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/blue/message_catch.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/business_rule.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/error_catch.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/error_throw.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/manual.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/message_catch.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/message_throw.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/receive.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/script.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/send.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/service.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/signal_catch.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/signal_throw.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/timer.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/images/deployer/user.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/index.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/ActivitiRest.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/ActivityImpl.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/Color.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/LineBreakMeasurer.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/Polyline.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/ProcessDiagramCanvas.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/ProcessDiagramGenerator.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/jquery/jquery.asyncqueue.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/jquery/jquery.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/jquery/jquery.progressbar.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/jstools.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/raphael.2.1.1.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/raphael.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/raphael_uncompressed.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/js/textlayout.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/diagram-viewer/style.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/app-cfg.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/app.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-assignment-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-condition-expression-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-custom-controllers.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-default-controllers.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-event-listeners-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-execution-listeners-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-fields-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-form-properties-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-in-parameters-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-message-definitions-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-message-scope-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-multiinstance-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-out-parameters-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-sequenceflow-order-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-signal-definitions-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-signal-scope-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties-task-listeners-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/assignment-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/assignment-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/assignment-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/boolean-property-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/condition-expression-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/condition-expression-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/condition-expression-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/default-value-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/event-listeners-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/event-listeners-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/event-listeners-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/execution-listeners-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/execution-listeners-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/execution-listeners-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/feedback-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/fields-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/fields-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/fields-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/form-properties-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/form-properties-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/form-properties-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/in-parameters-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/in-parameters-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/in-parameters-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/message-definitions-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/message-definitions-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/message-definitions-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/message-property-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/multiinstance-property-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/out-parameters-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/out-parameters-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/out-parameters-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/signal-definitions-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/signal-definitions-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/signal-definitions-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/signal-property-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/string-property-write-mode-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/task-listeners-display-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/task-listeners-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/task-listeners-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/text-popup.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/properties/text-property-write-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/toolbar-custom-actions.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/toolbar-default-actions.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/toolbar.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/configuration/url-config.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/css/style-common.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/css/style-editor.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/css/style.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor-config.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor-utils.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor/css/editor.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor/i18n/translation_de.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor/i18n/translation_en_us.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor/i18n/translation_signavio_de.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor/i18n/translation_signavio_en_us.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor/oryx.debug.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/editor/oryx.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/eventbus.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.eot (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.svg (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.ttf (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.woff (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.eot (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.svg (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.ttf (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.woff (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/header-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/i18n/en.json (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/i18n/en.json_bak (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/bpmn-error.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/bpmn-warning.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/datadefinition.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/delete.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/loading.gif (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/logo-2x.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/logo.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/nw-handle-dark.gif (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/se-handle-dark.gif (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/shapemenu_highlight.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/images/wrench.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-dragdrop.min-1.0.3.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/.bower.json (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/.bower.json (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular_1.2.13/angular-animate.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/angular_1.2.13/angular.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.bower.json (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.gitignore (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CHANGES (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/LICENSE (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/README.md (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/package.json (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/jquery-ui-1.10.3.custom.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/jquery.autogrow-textarea.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.map (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/json3_3.2.6/LICENSE (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/momentjs_2.5.1/momentjs.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/mousetrap-1.4.5.min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/ng-grid-2.0.7-min.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/ng-grid-2.0.7.min.css (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/path_parser.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/prototype-1.5.1.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/libs/ui-utils.min-0.0.4.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/partials/root-stencil-item-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/partials/stencil-item-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/plugins.xml (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/popups/icon-template.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/popups/save-model.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/popups/select-shape.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/popups/unsaved-changes.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/select-shape-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencil-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/task.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/error.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/message.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/diagram.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/editor-app/toolbar-controller.js (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/static/modeler.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/stencilset.json (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/templates/workflow/modelAdd.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/templates/workflow/modelList.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/templates/workflow/processDefList.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/templates/workflow/processEndList.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/templates/workflow/processRunningList.html (100%) rename {icec-workflow => module/icec-workflow}/src/main/resources/templates/workflow/taskTodoList.html (100%) rename {icec-workflow => module/icec-workflow}/src/test/resources/application.yml (100%) rename {icec-common => platform/icec-common}/pom.xml (55%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/base/tips/DataTip.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/base/tips/ErrorTip.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/base/tips/SuccessTip.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/base/tips/Tip.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/constants/SessionConstants.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/exception/IcecException.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/model/BaseModel.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/model/JsTreeData.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/model/TreeModel.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/page/Page.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/AjaxUtils.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/CryptoUtils.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/DateUtils.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/FileUtil.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/HttpKit.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/SpringContextHolder.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/TreeBuild.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/WafKit.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/utils/WafRequestWrapper.java (100%) rename {icec-common => platform/icec-common}/src/main/java/org/icec/common/web/BaseController.java (100%) rename {icec-parent => platform/icec-parent}/pom.xml (62%) create mode 100644 platform/icec-static/pom.xml rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/avatar.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/avatar1.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/avatar2.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/avatar3.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/avatar4.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/avatar5.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/profile-pic.jpg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/avatars/user.jpg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/ace-fonts.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/ace-ie.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/ace-part2.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/ace-rtl.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/ace-skins.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/ace.css (99%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/ace.onpage-help.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/bootstrap.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/images/loading.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/images/meteorshower.jpg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/images/meteorshower2.jpg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/images/pattern.jpg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/images/pattern.png (100%) create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/2v-icon-g.png create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/logo.png create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/logo.png2 create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/pc-icon-g.png create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/pic-j.png create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/pic-j.png2 create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/qrcode.png create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/sjtu.png create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/image/sjtu.png2 create mode 100644 platform/icec-static/src/main/resources/static/resource/css/login/login.css rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/pace.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/css/tab.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/OpenSans-300.woff (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/OpenSans-400.woff (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/glyphicons-halflings-regular.eot (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/glyphicons-halflings-regular.svg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/glyphicons-halflings-regular.ttf (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/glyphicons-halflings-regular.woff (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/glyphicons-halflings-regular.woff2 (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/fonts/readme (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/js/ace-elements.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/js/ace-extra.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/js/ace-require.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/js/ace-small.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/js/ace.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/WdatePicker.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/calendar.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/develop/lang/zh-cn.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/develop/lang/zh-tw.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/develop/readme.txt (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/develop/skin/default/datepicker.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/develop/skin/twoer/datepicker.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/develop/skin/whyGreen/datepicker.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/lang/en.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/lang/zh-cn.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/lang/zh-tw.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/WdatePicker.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/datePicker.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/default/datepicker.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/default/img.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/twoer/datepicker.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/twoer/img.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/twoer/img.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/whyGreen/bg.jpg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/whyGreen/datepicker.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/My97DatePicker/skin/whyGreen/img.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/bootstrap-table.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/bootstrap-table.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/bootstrap-table.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/bootstrap-table.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/locale/bootstrap-table-en-US.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/locale/bootstrap-table-en-US.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/locale/bootstrap-table-zh-CN.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/locale/bootstrap-table-zh-CN.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/locale/bootstrap-table-zh-TW.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap-table-1.11.1/locale/bootstrap-table-zh-TW.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/css/bootstrap-theme.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/css/bootstrap-theme.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/css/bootstrap.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/css/bootstrap.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/js/bootstrap.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/js/bootstrap.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/bootstrap/js/npm.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/chosen/chosen-sprite.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/chosen/chosen-sprite@2x.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/chosen/chosen.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/chosen/chosen.jquery.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/chosen/chosen.jquery.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/chosen/chosen.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/common/contabs.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/common/jeeplus.js (96%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/echart/echarts.common.min.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/echart/echarts.min.js rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/css/font-awesome.css (86%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/css/font-awesome.min.css create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.eot create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.svg rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/fonts/fontawesome-webfont.ttf (68%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.woff create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.woff2 rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/animated.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/bordered-pulled.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/core.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/fixed-width.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/font-awesome.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/icons.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/larger.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/list.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/mixins.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/path.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/rotated-flipped.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/stacked.less (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/font-awesome/less/variables.less (100%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/fuelux/js/wizard.js rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/html5shiv/Gruntfile.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/html5shiv/dist/html5shiv-printshiv.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/html5shiv/dist/html5shiv-printshiv.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/html5shiv/dist/html5shiv.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/html5shiv/dist/html5shiv.min.js (100%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/jTopo/jtopo-0.4.8-min.js rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/LICENSE (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/README.md (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/index.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2-bootstrap.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2-spinner.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2_locale_zh-CN.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-select2/3.4/select2x2.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-validation-1.17.0/additional-methods.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-validation-1.17.0/additional-methods.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-validation-1.17.0/jquery.validate.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-validation-1.17.0/jquery.validate.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-validation-1.17.0/messages_zh.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/API_cn.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/api.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/common.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/common_ie6.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/background.jpg (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/chinese.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/close.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/contact-bg.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/english.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/header-bg.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/lightbulb.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_bg.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_close_IE6.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/apiCss/zTreeStyleForApi.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree._z.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.destroy.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.getZTreeObj.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.init.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.autoParam.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.contentType.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataFilter.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataType.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.enable.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.otherParam.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.type.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.async.url.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeAsync.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeClick.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCollapse.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDblClick.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrag.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDragOpen.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrop.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeEditName.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeExpand.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseDown.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseUp.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRemove.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRename.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRightClick.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncError.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncSuccess.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onClick.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCollapse.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDblClick.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrag.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrop.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onExpand.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseDown.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseUp.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onNodeCreated.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRemove.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRename.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRightClick.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.check.autoCheckTrigger.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkDisabledInherit.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkStyle.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkboxType.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.check.enable.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.check.nocheckInherit.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.check.radioType.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.leaf.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.parent.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.checked.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.children.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.name.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.title.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.url.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.enable.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.idKey.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.pIdKey.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.rootPId.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoExpandTrigger.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoOpenTime.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMax.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMin.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.inner.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isCopy.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isMove.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.maxShowNodeNum.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.minMoveSize.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.next.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.prev.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.editNameSelectAll.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.enable.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.removeTitle.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.renameTitle.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRemoveBtn.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRenameBtn.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.treeId.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.treeObj.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addDiyDom.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addHoverDom.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.autoCancelSelected.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.dblClickExpand.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.expandSpeed.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.fontCss.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.nameIsHTML.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.removeHoverDom.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.selectedMulti.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showIcon.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showLine.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showTitle.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Child_State.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Focus.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checked.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checkedOld.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.children.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.chkDisabled.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.click.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.diy.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.editNameFlag.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getCheckStatus.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getNextNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getParentNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getPreNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.halfCheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.icon.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconClose.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconOpen.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconSkin.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isAjaxing.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isFirstNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHidden.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHover.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isLastNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isParent.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.level.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.name.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.nocheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.open.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.parentTId.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.tId.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.target.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.url.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/treeNode.zAsync.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.addNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelEditName.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelSelectedNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkAllNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.copyNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.destroy.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.editName.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandAll.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getChangeCheckedNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getCheckedNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByParam.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByTId.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeIndex.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByFilter.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParam.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParamFuzzy.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getSelectedNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.moveNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.reAsyncChildNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.refresh.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeChildNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.selectNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setChkDisabled.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setEditable.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setting.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformToArray.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformTozTreeNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.updateNode.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/demo.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_close.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_open.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/2.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/3.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/4.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/5.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/6.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/7.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/8.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/9.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/line_conn.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/loading.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodes.php (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodesForBigData.php (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/common.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/diy_async.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/page.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/async.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/async_fun.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/click.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_font.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_icon.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_iconSkin.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/expand.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/noicon.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/noline.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/otherMouse.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/searchNodes.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/simpleData.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/standardData.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/update_fun.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/core/url.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_chkDisabled.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_count.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_fun.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_halfCheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_nocheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_chkDisabled.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_fun.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_halfCheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_nocheck.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/async_edit.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_fun.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_super.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_fun.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_super.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exedit/multiTree.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exhide/checkbox.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exhide/common.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/exhide/radio.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/index.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/asyncForAll.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/checkbox_radio.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/diydom.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/dragWithOther.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menu.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/oneclick.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/oneroot.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/rightClickMenu.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_checkbox.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_radio.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/demo/cn/super/singlepath.html (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery-1.4.4.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery-ztree/3.5.12/log v3.x.txt (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.1x/dist/jquery.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.1x/dist/jquery.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.1x/dist/jquery.slim.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.1x/dist/jquery.slim.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.form.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.mobile.custom/jquery.mobile.custom.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.mobile.custom/jquery.mobile.custom.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery.serializejson.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery/dist/jquery.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery/dist/jquery.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery/dist/jquery.slim.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jquery/dist/jquery.slim.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/jstree.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/jstree.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default-dark/32px.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default-dark/40px.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default-dark/style.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default-dark/style.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default-dark/throbber.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default/32px.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default/40px.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default/style.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default/style.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/jstree/themes/default/throbber.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/layer.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/laytpl.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/mobile/layer.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/mobile/need/layer.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/theme/default/icon-ext.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/theme/default/icon.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/theme/default/layer.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/theme/default/loading-0.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/theme/default/loading-1.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/layer/theme/default/loading-2.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/layui.css (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/layui.mobile.css (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/code.css (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/laydate/default/laydate.css (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/layer/default/icon-ext.png (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/layer/default/icon.png (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/layer/default/layer.css (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/layer/default/loading-0.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/layer/default/loading-1.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/css/modules/layer/default/loading-2.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/font/iconfont.eot (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/font/iconfont.svg (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/font/iconfont.ttf (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/font/iconfont.woff (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/0.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/1.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/10.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/11.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/12.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/13.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/14.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/15.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/16.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/17.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/18.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/19.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/2.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/20.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/21.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/22.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/23.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/24.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/25.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/26.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/27.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/28.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/29.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/3.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/30.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/31.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/32.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/33.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/34.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/35.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/36.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/37.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/38.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/39.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/4.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/40.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/41.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/42.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/43.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/44.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/45.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/46.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/47.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/48.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/49.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/5.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/50.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/51.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/52.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/53.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/54.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/55.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/56.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/57.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/58.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/59.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/6.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/60.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/61.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/62.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/63.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/64.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/65.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/66.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/67.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/68.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/69.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/7.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/70.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/71.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/8.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/images/face/9.gif (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/carousel.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/code.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/element.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/flow.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/form.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/jquery.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/laydate.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/layedit.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/layer.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/laypage.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/laytpl.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/mobile.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/table.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/tree.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/upload.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/lay/modules/util.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/layui.all.js (100%) rename {icec-admin/src/main/resources/static => platform/icec-static/src/main/resources/static/resource/plugins}/layui/layui.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/mustache/mustache.min.js (100%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.css create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.js rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/Gruntfile.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/cross-domain/respond.proxy.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/cross-domain/respond.proxy.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/dest/respond.matchmedia.addListener.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/dest/respond.matchmedia.addListener.src.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/dest/respond.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/dest/respond.src.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/src/matchmedia.addListener.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/src/matchmedia.polyfill.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/respond/src/respond.js (100%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/css/swiper.css create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/css/swiper.min.css create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.bundle.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js.map create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.esm.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js.map create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js.map create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/template7/template7Helper.js rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/jquery.treeTable.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/jquery.treeTable.min.js (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/default/allbgs.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/default/allbgs.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/default/treeTable.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/default/treeTable.min.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/vsStyle/allbgs.gif (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/vsStyle/allbgs.png (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/vsStyle/allbgs.psd (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/vsStyle/treeTable.css (100%) rename {icec-admin/src/main/resources/static/ace => platform/icec-static/src/main/resources/static/resource}/plugins/treeTable/themes/vsStyle/treeTable.min.css (100%) create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/websocket/sockjs.min.js create mode 100644 platform/icec-static/src/main/resources/static/resource/plugins/websocket/stomp.js rename {icec-sys => platform/icec-sys}/pom.xml (79%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/config/KaptchaConfig.java (83%) create mode 100644 platform/icec-sys/src/main/java/org/icec/web/core/config/RedisConfig.java create mode 100644 platform/icec-sys/src/main/java/org/icec/web/core/config/ShiroConfig.java rename {icec-admin/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/config/SystemConfig.java (92%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/config/WebMvcConfigurer.java (88%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/annotation/CurrentUser.java (82%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/credential/BCryptPasswordService.java (92%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/exception/IncorrectCaptchaException.java (89%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/filter/JWTOrFormAuthenticationFilter.java (95%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/jwt/JwtUtil.java (94%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/jwt/TokenStatus.java (83%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/realm/MyFormRealm.java (87%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/realm/MyJWTRealm.java (81%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/resolvers/CurrentUserMethodArgumentResolver.java (88%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/token/JWTAuthenticationToken.java (88%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/shiro/token/UserAuthenticationToken.java (93%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/aop/GlobalExceptionHandler.java (94%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/aop/MainsiteErrorController.java (92%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/aop/WebLogAspect.java (91%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/log/LogManager.java (94%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/log/LogTaskFactory.java (93%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/thymeleaf/config/DialectConfig.java (66%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/thymeleaf/dict/DictDialect.java (92%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/thymeleaf/dict/DictSelectProcessor.java (93%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/thymeleaf/dict/DictShowProcessor.java (91%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/websocket/StompMessageHandshakeHandler.java (91%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/websocket/WebSocketAction.java (90%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/websocket/WebSocketConfig.java (94%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/websocket/WebSocketHandshakeHandler.java (92%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/websocket/WebSocketHandshakeInterceptor.java (90%) rename {icec-sys/src/main/java/org/icec/web/core => platform/icec-sys/src/main/java/org/icec/web/core/support}/websocket/WebsocketSender.java (90%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/IndexCtrl.java (84%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysAreaCtrl.java (88%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysDictCtrl.java (89%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysFileCtrl.java (92%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysGlobalCtrl.java (82%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysLogCtrl.java (86%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysMenuCtrl.java (90%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysOfficeCtrl.java (87%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SysRoleCtrl.java (91%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SystemCtrl.java (93%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/SystemInfoCtrl.java (94%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/TreeSelectCtrl.java (86%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/controller/UserCtrl.java (90%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysAreaDao.java (88%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysDictDao.java (88%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysFileDao.java (84%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysGlobalDao.java (76%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysLogDao.java (77%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysMenuDao.java (87%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysOfficeDao.java (86%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysRoleDao.java (91%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/dao/SysUserDao.java (87%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysArea.java (98%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysDict.java (98%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysFile.java (98%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysGlobal.java (92%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysLog.java (98%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysMenu.java (98%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysOffice.java (99%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysRole.java (98%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/model/SysUser.java (99%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysAreaService.java (91%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysDictService.java (88%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysFileService.java (92%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysGlobalService.java (81%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysLogService.java (79%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysMenuService.java (91%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysOfficeService.java (91%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysRoleService.java (90%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/service/SysUserService.java (91%) rename {icec-sys/src/main/java/org/icec/web => platform/icec-sys/src/main/java/org/icec/web/core}/sys/utils/ShiroKit.java (95%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysArea.md (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysDict.md (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysFile.md (91%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysGlobal.md (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysLog.md (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysMenu.md (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysOffice.md (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysRole.md (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/sql/sysUser.md (100%) create mode 100644 platform/icec-sys/src/main/resources/templates/common/commonJS.html rename {icec-sys => platform/icec-sys}/src/main/resources/templates/common/layout.html (68%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/common/treeselect.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/error/404.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/error/500.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/area/areaAdd.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/area/areaEdit.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/area/areaList.html (93%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/dict/dictAdd.html (75%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/dict/dictEdit.html (67%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/dict/dictList.html (89%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/dict/dictValueAdd.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/dict/dictValueEdit.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/environment.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/global/globalEdit.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/home.html (66%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/index.html (63%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/index2.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/log/logList.html (35%) create mode 100644 platform/icec-sys/src/main/resources/templates/sys/login.html rename icec-sys/src/main/resources/templates/sys/login.html => platform/icec-sys/src/main/resources/templates/sys/login2.html (92%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/menu/menuAdd.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/menu/menuEdit.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/menu/menuList.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/office/officeAdd.html (96%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/office/officeEdit.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/office/officeList.html (94%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/role/roleAdd.html (75%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/role/roleAuth.html (76%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/role/roleEdit.html (78%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/role/roleList.html (95%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/role/roleValueAdd.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/schedule/list.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/sidebar_nav.html (93%) create mode 100644 platform/icec-sys/src/main/resources/templates/sys/sysGlobalInfo.html rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/user/modifyPasswd.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/user/userAdd.html (92%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/user/userEdit.html (90%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/user/userList.html (100%) rename {icec-sys => platform/icec-sys}/src/main/resources/templates/sys/user/userSetting.html (100%) create mode 100644 platform/icec-sys/src/main/resources/templates/websocket/test.html rename {icec-sys => platform/icec-sys}/src/test/java/org/iece/tools/sys/UserTool.java (100%) rename pom.xml => platform/pom.xml (57%) rename {icec-autogen => tools/icec-autogen}/pom.xml (92%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/AutoGen.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/CodeGen.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/ControllerCodeGen.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/GenConfig.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/MapperCodeGen.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/MdCodeGen.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/ServiceCodeGen.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/SourceGen.java (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/controller.btl (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/mapper.btl (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/md.btl (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/pojo.btl (100%) rename {icec-autogen => tools/icec-autogen}/src/main/java/org/icec/gen/core/service.btl (100%) rename {icec-autogen => tools/icec-autogen}/src/main/resources/logback.xml (100%) rename {icec-autogen => tools/icec-autogen}/src/main/resources/logback/logback-dev.xml (100%) rename {icec-autogen => tools/icec-autogen}/src/main/resources/logback/logback-level-config.xml (100%) rename {icec-autogen => tools/icec-autogen}/src/main/resources/logback/logback-pro.xml (100%) rename {icec-autogen => tools/icec-autogen}/src/test/java/org/icec/gen/GenBqlTools.java (100%) rename {icec-autogen => tools/icec-autogen}/src/test/resources/jdbc.properties (100%) diff --git a/icec-admin/.gitignore b/application/icec-admin/.gitignore similarity index 100% rename from icec-admin/.gitignore rename to application/icec-admin/.gitignore diff --git a/icec-admin/bin/check.sh b/application/icec-admin/bin/check.sh similarity index 100% rename from icec-admin/bin/check.sh rename to application/icec-admin/bin/check.sh diff --git a/icec-admin/bin/start.sh b/application/icec-admin/bin/start.sh similarity index 100% rename from icec-admin/bin/start.sh rename to application/icec-admin/bin/start.sh diff --git a/icec-admin/bin/stop.sh b/application/icec-admin/bin/stop.sh similarity index 100% rename from icec-admin/bin/stop.sh rename to application/icec-admin/bin/stop.sh diff --git a/icec-admin/pom.xml b/application/icec-admin/pom.xml similarity index 76% rename from icec-admin/pom.xml rename to application/icec-admin/pom.xml index a965a89..c6adcaa 100644 --- a/icec-admin/pom.xml +++ b/application/icec-admin/pom.xml @@ -5,47 +5,31 @@ org.icec icec-parent - 0.0.1-SNAPSHOT + 2.0 ../icec-parent/pom.xml icec-admin org.springframework.boot - spring-boot-starter-web + spring-boot-devtools + true org.springframework.boot - spring-boot-starter-thymeleaf - - - net.sourceforge.nekohtml - nekohtml - - - org.thymeleaf - thymeleaf-spring4 - ${thymeleaf-spring4.version} - - - - org.thymeleaf - thymeleaf - ${thymeleaf.version} + spring-boot-starter-test + test - nz.net.ultraq.thymeleaf - thymeleaf-layout-dialect - ${thymeleaf-layout-dialect.version} + org.projectlombok + lombok - org.springframework.boot - spring-boot-devtools - true + com.alibaba + fastjson + ${fastjson.version} - - - + org.icec icec-sys ${icec.version} @@ -55,26 +39,9 @@ icec-common ${icec.version} - - - org.icec - icec-schedule - ${icec.version} - - - - org.icec - icec-workflow - ${icec.version} - - - org.icec - icec-oa - ${icec.version} - org.icec - icec-ireport + icec-static ${icec.version} diff --git a/icec-admin/src/main/java/org/icec/web/AdminMain.java b/application/icec-admin/src/main/java/org/icec/web/AdminMain.java similarity index 93% rename from icec-admin/src/main/java/org/icec/web/AdminMain.java rename to application/icec-admin/src/main/java/org/icec/web/AdminMain.java index f8b00c0..50511dc 100644 --- a/icec-admin/src/main/java/org/icec/web/AdminMain.java +++ b/application/icec-admin/src/main/java/org/icec/web/AdminMain.java @@ -13,7 +13,7 @@ import org.springframework.boot.Banner; @ComponentScan(basePackages= {"org.icec"}) public class AdminMain extends SpringBootServletInitializer { /** - * 为了将来支持war发布 + * 为了支持war发布 */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { diff --git a/icec-admin/src/main/resources/application-dev.properties b/application/icec-admin/src/main/resources/application-dev.properties similarity index 93% rename from icec-admin/src/main/resources/application-dev.properties rename to application/icec-admin/src/main/resources/application-dev.properties index a5ee37a..5f4c7be 100644 --- a/icec-admin/src/main/resources/application-dev.properties +++ b/application/icec-admin/src/main/resources/application-dev.properties @@ -9,7 +9,7 @@ datasource.url=jdbc:mysql://127.0.0.1:3306/icec?useUnicode=true&characterEncodin datasource.username=icec datasource.password=icec #} - +beetlsql.daoPackage= #upload max file size spring.http.multipart.maxFileSize=10Mb spring.http.multipart.maxRequestSize=10Mb diff --git a/icec-admin/src/main/resources/application-pro.properties b/application/icec-admin/src/main/resources/application-pro.properties similarity index 100% rename from icec-admin/src/main/resources/application-pro.properties rename to application/icec-admin/src/main/resources/application-pro.properties diff --git a/icec-admin/src/main/resources/application-test.properties b/application/icec-admin/src/main/resources/application-test.properties similarity index 100% rename from icec-admin/src/main/resources/application-test.properties rename to application/icec-admin/src/main/resources/application-test.properties diff --git a/icec-admin/src/main/resources/application.properties b/application/icec-admin/src/main/resources/application.properties similarity index 100% rename from icec-admin/src/main/resources/application.properties rename to application/icec-admin/src/main/resources/application.properties diff --git a/icec-admin/src/main/resources/distribution/distribution.xml b/application/icec-admin/src/main/resources/distribution/distribution.xml similarity index 100% rename from icec-admin/src/main/resources/distribution/distribution.xml rename to application/icec-admin/src/main/resources/distribution/distribution.xml diff --git a/icec-admin/src/main/resources/ehcache-shiro.xml b/application/icec-admin/src/main/resources/ehcache-shiro.xml similarity index 100% rename from icec-admin/src/main/resources/ehcache-shiro.xml rename to application/icec-admin/src/main/resources/ehcache-shiro.xml diff --git a/icec-admin/src/main/resources/logback.xml b/application/icec-admin/src/main/resources/logback.xml similarity index 100% rename from icec-admin/src/main/resources/logback.xml rename to application/icec-admin/src/main/resources/logback.xml diff --git a/icec-admin/src/main/resources/logback/logback-dev.xml b/application/icec-admin/src/main/resources/logback/logback-dev.xml similarity index 100% rename from icec-admin/src/main/resources/logback/logback-dev.xml rename to application/icec-admin/src/main/resources/logback/logback-dev.xml diff --git a/icec-admin/src/main/resources/logback/logback-level-config.xml b/application/icec-admin/src/main/resources/logback/logback-level-config.xml similarity index 100% rename from icec-admin/src/main/resources/logback/logback-level-config.xml rename to application/icec-admin/src/main/resources/logback/logback-level-config.xml diff --git a/icec-admin/src/main/resources/logback/logback-pro.xml b/application/icec-admin/src/main/resources/logback/logback-pro.xml similarity index 100% rename from icec-admin/src/main/resources/logback/logback-pro.xml rename to application/icec-admin/src/main/resources/logback/logback-pro.xml diff --git a/icec-admin/src/main/resources/mykaptcha.xml b/application/icec-admin/src/main/resources/mykaptcha.xml similarity index 100% rename from icec-admin/src/main/resources/mykaptcha.xml rename to application/icec-admin/src/main/resources/mykaptcha.xml diff --git a/icec-admin/src/main/resources/static/my/css/1.css b/application/icec-admin/src/main/resources/static/my/css/1.css similarity index 100% rename from icec-admin/src/main/resources/static/my/css/1.css rename to application/icec-admin/src/main/resources/static/my/css/1.css diff --git a/icec-admin/src/main/resources/static/my/css/index.css b/application/icec-admin/src/main/resources/static/my/css/index.css similarity index 100% rename from icec-admin/src/main/resources/static/my/css/index.css rename to application/icec-admin/src/main/resources/static/my/css/index.css diff --git a/icec-admin/src/main/resources/static/my/css/style.css b/application/icec-admin/src/main/resources/static/my/css/style.css similarity index 100% rename from icec-admin/src/main/resources/static/my/css/style.css rename to application/icec-admin/src/main/resources/static/my/css/style.css diff --git a/icec-admin/src/main/resources/static/my/images/icec.png b/application/icec-admin/src/main/resources/static/my/images/icec.png similarity index 100% rename from icec-admin/src/main/resources/static/my/images/icec.png rename to application/icec-admin/src/main/resources/static/my/images/icec.png diff --git a/icec-admin/src/main/resources/static/my/js/bodyTab.js b/application/icec-admin/src/main/resources/static/my/js/bodyTab.js similarity index 100% rename from icec-admin/src/main/resources/static/my/js/bodyTab.js rename to application/icec-admin/src/main/resources/static/my/js/bodyTab.js diff --git a/icec-admin/src/main/resources/static/my/js/cache.js b/application/icec-admin/src/main/resources/static/my/js/cache.js similarity index 100% rename from icec-admin/src/main/resources/static/my/js/cache.js rename to application/icec-admin/src/main/resources/static/my/js/cache.js diff --git a/icec-admin/src/main/resources/static/my/js/index.js b/application/icec-admin/src/main/resources/static/my/js/index.js similarity index 100% rename from icec-admin/src/main/resources/static/my/js/index.js rename to application/icec-admin/src/main/resources/static/my/js/index.js diff --git a/icec-admin/.classpath b/icec-admin/.classpath deleted file mode 100644 index e7cc693..0000000 --- a/icec-admin/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/icec-admin/.settings/org.eclipse.jdt.core.prefs b/icec-admin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index d59e09c..0000000 --- a/icec-admin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/icec-admin/.settings/org.eclipse.m2e.core.prefs b/icec-admin/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index 14b697b..0000000 --- a/icec-admin/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/icec-admin/src/main/resources/static/ace/images/email1.png b/icec-admin/src/main/resources/static/ace/images/email1.png deleted file mode 100644 index f870af802e2303b5e87230e69a345e514a5ff21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4328 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 Ih1tCNA9_iVaR2}S diff --git a/icec-admin/src/main/resources/static/ace/images/email3.png b/icec-admin/src/main/resources/static/ace/images/email3.png deleted file mode 100644 index f6243d59ebfa5eae8a71dc02cff4beb27574a099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4991 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 diff --git a/icec-admin/src/main/resources/static/ace/images/email4.png b/icec-admin/src/main/resources/static/ace/images/email4.png deleted file mode 100644 index 03d368f523ee2efa645ab02113a2bf9efe4f99f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4313 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 diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/image-3.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/image-3.jpg deleted file mode 100644 index 78b3a5c9a096076b5feee57f5424a2317395f238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62542 zcmb4}XE+<~7xyDVP&JZJY6Y=N?OL%{Vn?hfRjX+2O{rZ}kr>6#-n*#STC+x}JsP7{ zDQeYdORG=+Z=UOU``q`t`<(0C=iM3K&)>zrYXAncHcA^nMn(qE{dWO>mjD_7N)QDl z1&ET8f)Wg-q@rP^GTef(u-t+%GvDUmKdyGw&v}&tWUKZGvy=D=cq$c1?z$P-=`iZ< zUMfg6)P-4fU~CQ@OYC{Cy3N_#vSe2U?@5&?$Vs?OfHZd6K@ltwt^s8MaTrGVgr&64 zby$C-r6k&VWG(p_4(T7|quDg|)<4v`R3Tf9aT-41ZJIYI=@`GsG~7G^?HKJ#L_3hX z4$are+Dg(PxHWt_IO!*tifjiNJd2%n*&d@#2}P~>g+}@Ym?L-XF9;U!s{Rm@Yx^AD z>!T^rNO)SxOKmbBm@%19I)C!3XA^HzhOisZidAE3LcgaDPC4 zw_qmLQoxSK_xz#`bl>-uK+u57{SL3fqLMvvxpA}KFNb_0FbQcAt66VP{2i-dbja?F zIPZ%|x-UgG5fb_5H}~WvO=ORG3{X^hcJDRglQVGM83glBe99||rtZ&-PnnIQXcD$K zDTJKAI7E041lBHnvf6Z`VvX)1wJ>z$mp^w&ukkb)WcB)yRnHSF%`;SUR+?qk7v)Vy z>=4DvPsljFY0JEa08(A3peuUsYgtOKX?2*A97xqW)LGqo5_dvG$~+ISjBR!on>qel z2OvR5=#T2RImd3hd?rL~YJOV3zktLJvTf;%NX0ZlP>xNn|3tHKe4~3sNTDiH#cfs= zm_hzoAUQ6{)VRxgqC12&xR;e$mD@gFhNGyO;t5yBVjd zj%m&rp(a1vm96AV1DtOX?{i#3T{u*WoATNvOIU|9MX0_vLNrhGeyhG)8{lZmDsCo{ zKcPu^cveOloNXrxsuMJ`3#QA0&RLw_e{>4g%Me03kk^rU-y~=z0HPE^XY|Hnb#ZE- ze1Rj?&-aL_I}*dFKYK~-Tl(K+vv1rJ6wCl%ymRei)Kd@MZvmC_!Ue}w47^Wx)ajga zEWf_R#T`>a90Q7zG6sCAZ5AS-Hp`jyi^dW}jp+C+8Q+*r$L9zL_&!%RRwhrz{wtjB z4SDnFwSkg#?+fX|(|pO+2Vo4nalm@e!o zAwqRe$K#yiOXtf3>T~^stBGB+H@>vBg{+XVB^RGDLB_+-84=m8PRA%^w-kr!s#~HB zWp%)JgO*4e%zuS zC&UXC^=f<;unb0<0s_t{EM#J@Uw@iO9sWs<1o4v{%yuJJV07w>#=a=V?oL;rQ^G!Hk zLj7ml?!fA00u{#w>Mwvo?V(>Q69be#XhLcFI%C69>=tC))4Pq8p(uOT)b%eQ&Y-Vr z;;whbBNge`s}!N8bbZGBiZv{4$GX>@h^%NviF}a+06F*LA<4D9RL&c!WJ*0Ozsi|k zMQT!wTuu;$TgU<;a-(O5#zWoKZipkIBNxXZ)lbMA75@7k^N z0=zkP>+1s8h=Mzi@K1?#xDH)77p63=mkZ{Oy3_M0k`J4Y&p4l-AJ*Asks4y3eo=>F zcA*KzRHkJocg?1V-YKoy+%;6EM_keDaNe2C@b|%~kLZua_xvo)Y4r7-mNFpwsHhY2 zJW+HxNPVi!k2QLEDxV@a&vfukLuu4=j9vcuc(&8RD%C?`-6KVe0Oz^mBx6|l9_@0> zH)}V__{UUjjO%FlMj#jKPx(?S{*BLcd~(TD-yRe8l46EQWT2$L`plyjhcY*XMBC=) z_;|hX6O_V{;j70b!^%}_T!~_m?TIxEy744KZgp*)>9oBTCz0jF?2mF4>wK+F8u@2K zMnsR@=F*N(VMtSnB=9~__n;a4Zj)KAu} zReO_Ce$_gCX?;Q{wBx@AeCDS8iVBqv`U}{?z9NS@z%aHE*$_c#@Pf^iCSn z;{=NGo!#8W*b3c|hZ8i(xY#G@yKF&1ns5l!R;YO*J|*d8JN{ZoF94D^rNSu1Q|j*q zPs?|t6TBz(pJOk!(y?F$cBHRo@lsb%K0c+}Vr+-wOBNIBK$Tkuz6CsU2pc}xV^Ux0vgdEq_Z0Z|J$`)HGyyt$F-k+u~d z4L6_C$${;CE9Qmhq#gWfvD2XBSBX8;a3PhC8oRdVZjpl*i%PhV!Fb~I8z9xlp725O zD$YinVU68C1@+pqx%vIJeuc!yP`CN4+?d5jK`$o;+4A=~9B%z~kT0#}_voUY;l6K- z!TV-7E)yL}Tshjz+Z}|DH6b|ArWt3B`5q(tSz7JB7=)+|>=uj&je7EQ;#@ zcLdJxgEWI94M7y6>ZK7p{Bbp{(bJ-xS-%r_!atKLTqy?f|2PmquLzqi=2IZrtErY6 zYGbMBk0F>R;*0pzCnU55rT5H_N+Op8LReht>_}5dwkA*t5@Pr`keLREB?AM4HeNme zL%d03ZogKkdj|dj#^u`$FCg^}1zAN)Z}gco>3%Y@6}sIU_6`e-XB@itRk z)HmS>bvJqc6=)4V3V*ei~k`h_N zY8m=iPhU(GzM+LXdyflldXAxDejisqUh_tEu>@b zOvVV?fLA)6r`v;^Hp1?A4W&=XpA8=@$Y9)Wh((btMU&%oL~Y%MPW`x)XWeT6ve-hz z7JfC|%kvFC6~vJ5!9a)aLaPBE!KX@MgppL}}S7Wmd5m$*aCu3}kuDj-SIUPx-{!{TY9K&WZR#Fc}@G%d1v6B_ja&>ew8B%*#pBp zRrK2bVgcG3NhSs!PjgH~VPm*WBAD&MDsM4so%!e3+MBmoF7&^pY@W(`@E?s{j0Yx$ zAP}t)l>h#dXa=qc0*xp};OA>;=9aq%7d`bw0?=u#8v*IcgbeCUl91nd*yb4OkgrL< zbP?HMTuVNaWXfboptel!9fIoPrmZvvUB%@g3O`^Wb%E04&Y_Hkm^E6c@JH$m-#?h8 z58fK_;ylEed4^N(=$I@de=ROE!E37$=y-O0UjDqWBhPTfFp41~%6nlW*6o~!L5|1& z!OfqnOMm!k{(Ch$x{w;d4@QsfbwE+t86J2bgUUlIGu(Hw3|t`XM55Saxs}x3k^m9w zF>CAVvQs;^Z?5)R>?gNyD!uN$nf8HBL5H~EBWb(Q@Ndp+v+b9NbuH}f5~KO5y(zedF7@0 zGPgtzhX8(HcDynpge=0B<8s`ECx(ULj>93IXFj?b-39lVS z^cUvE@;xv;VX|KMEgMIMb7auxq(bt)s{hW0T)$BwM)m5k-uuJ4>B1_o{1<8FMo0E1 z>6=-b2iVS=CRZ|ilGs#urSEyo&GN44X$B%tF2#db`o#Jc>jpwMxe z^s5D~xDTaqD#WFf`aZy0LU#&gqW-?JI5 zJ;$DMU~Y87jrN6oU)l|E+5sK*Ipi!~HVMTVUw&I5;hbs(5P#jw-)f&}rL|f5wFll% zTug%%cZj~fG&sRcFX}o*-)-|PUu-G8GPRf|2!2+r^TIDQy`wb_LtE22Zr(`|&12OL z?`yU$@pq0&!|$bijuKjFH(#dD@2j%C-SwMk0~dNdJw`soukdsMrOx8BBI1&?4Sx2} z%3*{T(Lsww{eG4+QO@i)fMG3bmJ zw4o5lIqQ>`s(&&O;`DfZf|qZ)kR8zTayT+oarXAxr1N6E11_1OJqy3992{CRAE?*!(hRFu zmUny-)_79ErwtA{Rcm3McW-ThWwGug@|{(jD9%OXKy!14qTKaaq0|O-ZH#-D#tX0d z=2r{_-&5zi1*XH$$$*`Pi|Xy#pJ5M63v_vWBNwq{nt0Gbv(~*p&((MB4^o}r=gQ~h zeKEZPynurF+RP4L%H?X%S;}fA|D4wMV!GLa`5OB-ei88G?(NKRkU&VB-Lo}|R~Bo6 z+?4c<>{#5(Vbu5DAxkM~BD`ab>pxx&W#RTk?^R20mWB#0cy4}JM2?(nlj;g*|2r8G z=Aukf`TR$(yKndry0DCPKr+8?>m{4i+G6g=L8W}RH5LbGG4dO^g51{V`lz|YC z`qR%}UD#qX)}p`-@#Qz%Ss)fjP_Fzo1&W$0>+A~i<0!kC0z;FOjj%8Mo{Q19gN_X( zO)lV6pV6~MCg&B$w$b5OnaIwwA0D5rHepNNY8&cb(eG+^W#$OD0lpcApS|w4TP$pO zb916JO`JC|(2LD)n3tDv9M!t`p%WM;5TE>Oko9IM^&a4Ik}VS!s0-LIr0+5->O?qh z_!wEruw7!9X(Hmkf_F9C$LB#=*|D&QXG;+(IPTV@(_N+fE?G`SHNx9ep(D`Is+w;FyBXEYt_|TK~Q5K^l3j zmjaFB2b8M(ujJw=z2S!teNBhe%+LF3kaSjo2)T;XI(w{;2mXBUgY0$LR>B4aU)u={ z!^5UWwNE!;8T-%0ROA&y5~D}J4V8~acIh$%ucn&LcRruB%J&f5`q$^jg6r$CJ}8yx zDt82YEIFtmGo;9sOoF%SqDcOZy!dmMT?Jn5wsUHJ#D-8^wq{h?(c&EC1kNSqP+VlN)Ggfa(+!*;bo{lyVYjtPqEUH1bSokiwB13aan z#7s0+XZk^#iEghP=j=)k9jMOgh}D%7j!`$h;61Mi$g6LNIU;YE*u|2USE;LlE|@Y8 zkuF7T_`~3zIky-4OZP=Ab``Sb-Iq~_2%kr#=ViFeDvwfFnF}~Vid19n@!tem{x4uj z>CgV7Z|tZc^5_G0tOUQvmsq6{_IKzE`Ghp3k3z{We5PMD2PXW{GW)DPX_xTh4~0SL zTdQtXac||b|BB!V&+aBAOxG4rle=y*CZBCJy;usXr#2qW4;QZU_>RR?rRpq^au;nt zy)<}ff^+KR8E&rsL`{C@qJ?`JI&}XD7m`9IoccRjpH0B8w$e)|Eb+5V7ijB}m zA;TZ%yB)A8wlb*cDi_ir0xModd#ul!e5d5w8$45<#>N6`A)2O+&797vY{dYiqJ_ld z`7Nt<0K{4VI(%tieEierpn`drh6+#_xD|h8{36Lii8_R-);+>;;D?Z@C!nOo&E~;dV?SD=1T(_0w9hKC%ODc|^Y)TDo?50J5$+aN|H3trN@(z0@mQ@ZX=I3uott ztqi?cuPCZ~7VO@CHJgaV&ZSy;{o2K#BZko^vIizoON>U%2OM=`dtclkrR~(ZN`*ia z^w2)1NKG|eBv3!_HCjF9_WOICNsnsJ&c3>oMGJrDuORT|Kb{qt0$0eCAN|lwVjZ-z zq;uz|Uh~%YxVXz`{q?bdtLvlhN@p=%WW13VmCe@JTNYj$P6mV-orbMHZCq|r77pVL z{;1yvDH4c4@+$-Pk`~4aYkp^AnD3m`&c1qJzzCYalpHaHY)_+ z-BdY!z}IhKS6pQV>nqfGGKFPjbj!JQ({e~me*ce(uUy$u({4gk6y#MUWl8&uDL^tm zzZV9*VGkbEPIWpHoCG1}=7y3+{5ARTX66MUZ%S4#cDh6k@VHekTS=Yp3G%-mxJR#^ zM78!OVASml?RNHa-sW$#ynKJ-K?Sq1DtoeKrLDrvrs?dnTs$dtF-D=*35DR?QPQ%O zuDiYQO-QUr|6T$n&QO6SxIDhwGUwf;4R73*c0+25I!#s>}M45<=W>I3WFczbl$ zM>pq+R3Kdw&xOCD{a@^zWx6KcVb^-y)>-u=#n}x-(tb4)LDebDIwwHToV(ezA&vpj-0fpd6mn%jGNtOFSak0k0=khfeJ4 zJxAfWn0D6n1ha$&Qgw`o>~?-B^|4?p2VyV*ZQAs#f6(L9Ky8fQ?)RL{E$!tDa*iPh z+rNO>dJnsMWKsZM6?Dtyvg)TIj->GKF|cS}i9hMYpP(7uc>1;2E10Vl0 zv}+OfEir_GX6btuS)Nw87gig_v^tV)SCia3v=CyuGHP(#n z$p^l?xPTvxmv!1XvruI9^i|eer`K! z6O`II+g%0J9yqH>#Wq!avvZKqck1iGVFTofQ4jcdyuc))bQ?Tt@J3SBr_3kWs(L+2 zyQ7)K!L_A_wsD!pB<3w2OscBVz`WT@Dx(#y^r>5J^x7)9U!G8_GMak+RtRMG&$)R+ zNEZ%~tJ3S;dP2i((%0!aoJEa*ZF&hzLE+L zH$qH`XPwb@l@KZIgo)LXA27tfyOaTABINg9nTqJSkh97Q)EZC}E;02j^wbDjlTw2~ zM&w5p`>@8wp6H?mN>w?aLQdTGDY_P2_HCCT1oU4EOpXZnDgZS}()#Y44{hX1u#$&@ zXj&dDrUSJ@Qx-8?^mllEm!^_M=bwj#rEV&gOcxE!5MhAblgRdjCm#bVEuX6=f3^TG zj+q6l6UBF~*LydmEDqEPV+ryC(J2lxxH(bs(PccemjhX4rgR`V`zbn_cKYzeMb9~a z^=P%W10r_UR&v{YK5@`RdH13NPdBR0H3t4@s{VQ12c^W9PnUM4!(; z9V)HU-r{x;LNJ7IQY9We*j+*yM!S@S2QK^T1lp*O6pmN^JW7xuzS zS=moBOsA*w(aBMp0D!O4G~8|ou?b|D#2cdlj9hM~Ef2md8VBT8y_%-}uSy-58c=g2 zBjU;DvP=(l<#-9&yEq*FQ!UF$<&|)TXFNii)-1VzD^8F8e3Wr?RIj%Xi_tbCI7=9d z@bJPTs9wYBCMxqARM4}vqwgM~-2AnN?2VqywEnnL6Nw1f^snB!EOE^>6nBZO=5FSw z`lpw0C}5(RHX|WEns`#ENwv4)X_V%aDQ?`B<;wT`h_B{7V$@%4@{Mr54zScT(rODT zrO{TIUd<;CA3GV>CLW0Mt9%rRtE#cD^`ZZRjv13((JY8$)UcIfdn$OWGvE9szyqGF z#`I-TY?<4c%AF4lt{N~s+dDNpS=j%Xd+YHjjXTOo$a12@rWNPZW*(2Z$9+?4)6Fe1Ywn1p|u3W`h#Us z^@nVund(N!VxjNpMCKP44OR#%tR;8T22|8J}C>K}o3A-k0 zRCo0G1YKkp-I(DySSm;f9+FYisjI^dZYWi#lL@Bk=1WQAQ$b`|YXSAGn*nTrTHT7; ze*t#{89-~p(EA_X_jD08-8qX(dN}8Z>pyM?T@2VXm!N^kaca(Sx#9O;CR|$*!k&|| zRVtoO2|>(Kw}2fMsVIa4TZ2`Ebx!e~&3gU^bLO}}k-LG8-# zOlgRyf3m`%f3jM08@cWpj@zPpUR1+ik@ZhI@XF%aAyN*?ZP>eseE-kW^#uy;$ocaq zCrL#4bm(0-I#oY5fy2OU6XPT&klbAU(SB<@b5zXa{j-X0T43FXK9G8+)Wkf|7^}vS zVrZY_vqI17^-&UhWU*-Ex)P#4Gq+8DZM*tMxMU-y>ZM~bH`_g+Jw3YJb&Y$a;xyp; zoGV_sg?KYo^*IAIiX-f$gzl$#+g4I=dW8P9R8 zFg4#nSGY(3M&LPuYD~J?tw<#6C#vMoGZ}bC$CH=4>eImtU{d<+>gY$5ciULaordn% zKA$vUkxD6@^BuZ9U4NUF+m@((^w6S!0db$i1UkSt8zDH)ht6*VPKE4of@(R#I!xX6 z?aun9ELS@2l8j{bObbql`sL=Jsv7|RBy&C$k8?%+P$}br%DS|q`71|@SO!Vu^Cc(W zJK-GNs%KEBc|&@YB!Ni@uM}ACGG*#PQ2{c0fu2uKk6XTAa2Zxz8?38M!`~6B$d?+v zo)u{z+rNB<8?@p6grO#{L{>A^rtRh?K*y~;?0?E{(;Scv>KQg9ORK{(rn*$BTSFZo z8RR@#zUz*y6*Dcq();R7;bX5|ymcX!y8M6<2~4%c7ZJC(e|nLONxK{JR4LRf;EOFT zAL}>Xx zJ8L@L7r^!XdgeKYTArLB*hfu0 zCf08=C)Tm_K<)?ftEkeupT-~hJu@ryx6%jVrS+zZ#uz`>+26!;{Jw5Pnvd7TQ@(b7 zUt)JqH;v8-taSnxKX3aJRQC4P8=JTccl$H2X!@E7JC~I)?_zYK7Z#1p&^6xKj`i2N zu`0h-;28qG?%jVNQca+3+D-qo{TJ|oCB}{NzMEXZzLt;|;0G_4bjNz=G$|rpiFV_K zxi>;>caXcfOD0Jt$o#%we%(m6{O*wn+%t%5NMN(hWnIXkGXL~oa<-+ETf}55>-yb% z8n^)a&7BpZ?o<0GtYg-LqYCT0IKNy2G$OjK38TQ@hdF0R(I0f#)kH_=nGjou-XA3l z-J>SII|%}xIRyD5b+Tx6x#jmwneqmD09&AVDCtEfIYV;0cy>D3mzO;wQp4XwtYgup z84MC>LqyFC-I#(WxAFb$Kz%akYA8+pMwoc0mt(*l_g0laLP0B2Q+nXd>T?LcH|usY zW*{P$Y{2}#NI7x-gia5@Hq^t=F|wy7<`qr)j9sohSne|C`@ncVqDL_juq{8R(axhD zgV-<~=6F8t=@zhD7;~^BhkVzs?@2p4epHa+Iq8tFI5V_Lx!cILh;u zh>W0MSRC?YFIa86Z zVw$E9ejm5Qp(ykrlXvBVjHYO(~B_nMY#+;*gf~4c*jYX93uHOvNZl zfaAG}j5*OnET+y93`WcmR&+*a)W*CF$##uYAb^-}NJ+5FuI_GcZz9L@1UT2IqfW>@ z*97HbdG^Uufm(__Yj0s44gLbxSG)ey=ypV!WH=t3IcZLX{}DZ%(l|pHMGtt8^A=s2 zrAIQ&PKvS|-KhoD0V?E&9;D%52PWhRo2-RTUZ+}o$v~$?$tM@bTX$mRSti^XX|$bh z5{d53{R|AHsks}%kArVSAt?cW0sK+!uHuFDp(ZVdu`Ib2cndSGm_kV%2G-yvc@t^| z`C|4A9mCn=`GXHH{Y&qRN;MmCp4+vnx!Z1%*Qt`t#ee0#W7GD+vyO1utBJ@fgxEK= z1j&^F7bzrW2b}~6iXZ6GcJ5`Nbl37rDpg=J8k06{-oiL4)Vflbf%J@@-NERsCN(+b zKYM30qD$gzj_QR>mFK&Fxz}wN`F)!ClL30eMz?V?(J~5Ecag29H1Z}b)N3RA7};Un zEOyeEV#gn-x_@{r<*^|l1Pm|luo)9#9G1_~2+ymB;3KpZ^fwBM zD6bVzh|1v%#W1qi7D!8E#3Je!1exSE|`Z^@)dR!FXB z5#EZty#mnsZ;HF*V*H8p5#4Mplby6|SHRi3xD7}-#o0+~>?^nh2# znXKfz$tt*}ATslX+nrxpX*}K8=!rz{_I4pJ#)VS>rNl3`R6%an5;IR^GMKDZMD^1T zF@d$E-wfB(P{Q%@P(ZYd&s>*8Td}5vv)0eEe%2PidQ9Ps1MvpTnkD&s6yc$r zT~g#YZ(SSGT~*FrF6FCqa(yd4m0qgx9+CP~bl4q`M)iIUDs?V}+^gE4r?!6Z7qI8o z^PgS@gLz!fO@(YSO@UwRoQp_@oF-YwegE=I=I6!%uvGQNcEr<)BV)^s(mO?}zdUr+ zJ3M+*h(U;Xn=-}ywN&2&{Gl@R(}Us)Gb?LK9hdy8J{4k?=BF#f1)OEl52(y`iY+8)IAX3`O76yoX z1_AQ$b4s1-R-?iANXt-fc7iYTFMxB7(dv52wo2zoG;f!oA{L#hxt8xLBFcN1r3D>? zz%>J;75@TS%27}?9sN6|QvZY{M};MsUs>>mzD-n+ zXf4-tibVw&q$=)Q+?(%ciL}Hkk!k(~h)+y+xf&<=Bj$VPuwlrsKQ+dA5dzCQmo$aD zye<4!5hQ1Y0=KiBhE&HO5P@f^U5%6hOl|tLzZe;6f&;>(BN&jm+h!~RW z^B7WVpx;IrLQwrkwcX;aj>%d97Y%VdHs}}r3mBMn0lQ$55K)d>1xa&wUqz0se*4t= z#NL8(5eo>=Ne*1$fTMzI+npYqVmz;JKPLxYEig_8P${X+`$D_~7DHz*_V^Zi`F|*te?kYKh`kA3qTT?E{53kT7X--RR#QXYFa5p zoETYqfDY}I%X%J1@Yk+;Fyk_+q^#aKlIVf({xhBl{y{G{irywaBHVDjY1>3sF(9ro^KcW8Ia1(7=H30d0 zLvLJqYGt1Xqg6vzuE+;QUV@ zi^+Rqo&Ii{Pr7RCs?d2)fDQSb0)VUDCcf^PJrp-$b1Nr9UyfE((SeJLrP@(F zX)wgU*ZJrpCP7$U<;3E~BT~D&A`C%Qu)s8N{^C*p^U?IXsnFg_^HnxqV`8_S;SmOP zwh8||r7U&V+R*UuwD3R(v=yEz7{_5LWCDH|DFAG2U~?7m=Ju%6XRt4BZ?nB8GNTv| zq_FVf*!IkXIc75zKmTJuWBmNK7x^&4NXBbcwi-rXE?*s$sI*-Gy!E+MA8P1ni#vd^ zDQRBOyK&t5Wk0CYcR(ivZf{feJRUlRlZYsSPR6zO8~YsqSMG zhNE^!Idub7Yy`VNjw;HA>kZ>aIX{|9rByQ3Yj& z4b;hIL(?_kLbDWUlKM~v=dkUpH~Fb%FUJ5GKN6S2<`AjaH#wh}jTnWp53w)7~CBgCv_da5~_>)2(s z1waCAIHs(&nZ;9frvNb)>zOln@n>#KD*$+^II<&5`0UEDkmZ8B`>uC-ZEo+H=I`58 z2=tADRjkU_!KMuEzSt;OM(Gy>14ivgzJA}es&nJP4QsbCj-2k?qO)?z2Fk4=Y^{1k zz2zw%V#rX-^4W|#3Ky7Q`efr`X^;9lj30O(Vr?-Y^cQeZd&Fp@TuilP@Qmt&vc{O) zPf71>)al(uk0n=HX4yhMN=Qt>2xrfR0-sY3So_}?4i)yKD!=9lx;E-#OiBLGSl;xA$ZMo(Ey ztSPAwBb@JFDO7IKY;G!Cwy2)4AALfSrEW&=DZAa{+s&u3KOuN!**8eVE+nWKYs)Ph>U@C`S!kQwTsHul?ePBiSJcHxU9 z){@!}dD9j{XZWXgo|yHp_x3%lpmEHK%nv%!;_FEV&{rNC+&v|fwXO3aQnLX=y05L< z_jFe#$u14#OBYR$9E>0IFVJ}e&t+6S zf*7gUycpFxWa^5MYXp#|;up=6cV+M0tfM0}5_>R(=>UhVNBhA%A7@?f zG`{I1Cq4b%`s&HW+`nlHdcov8RlkVAnQs|cMTI}Et>_~`$b_fPzCd`)drWxi_29`OlSF?HVL%m9D&-Jyd9Oo_V zjElRP1W5lhXK;y>!6^|Hg1=wBfa`2f^;liYOa_|ak6>o4@nYCAPrpNx)L<^yaaoLs zp~8pmmDrBe-;tUF-f3Dg_JeIV&}_^6w6tcP8gB#EI`-oN@W5cD+r&@sj#PqVA96vrbfbT-_LVhh z>Y0@}_EXt(^6wUPTVv=H)AVzmHm^H{7pm%#=g<uiLVeC2*Bj9jaO4M`-q;%9W z@C|2rEhL2Yk86Z#c0TGOAhTw+#A6B~p?sF-N^O!9ke|+r#T5Il z?^(ZjM-(Hy!1ac9Kuv7LWs2J^ZU2X7#Wd;Zu$~>qwLdCusOx;UO2fj#EMjS62*G;n zz#CpL`w#YcZSYXgbgT3hLqn=AA^(x``RQlQnVT{dNcx3^(J@(??^1*BjZ|6;I?PK>I{a$XcHL}H zoY>XVd|=GVk#s84!O9kig$)e371(16bOG9SI@5)%EV&;g63Cz19cmj9b-L1ovbKiY z@I7>D!(SD#+yvAz+95(-h8JSNvaO#%K_y>FlKlM_@CJT09+a8z7tr$P?Kj3FnSEzL9P4raMZjiK9@|5SOss3N`;`| zYCF5vVL}-*g!ZI5idS$QbO!|;51+B_78A0uo;!XfMcRjJdXQ{BIS z+g!nFMtAKUfda@e?EG^ugR4%KcsD4ZnPT0j{a33C^cID%ZK-crPZ| zEyp2^LlHge@_a=!+Dnan{V3LXL9 ze79>|CHC442#Zr2O)rcp`9^<)T|D%$Gt?zZ5*1kkpcu*IB~EaV=4>1`)$ksb)M}j1 z`Wj{_;L2KniCzEB%$K(o8BgWWq-O;GeF#y#G0awK@ zQshc0@&+>Z&%#-CNXb7 z*;mA;6B!{l?zt^wsSiCElrh|9l?X6=_)r}*@eUWYH$8vwr23?M^=6F^WJ5hQ?fUD6 z!)x>>csyd@jFrD;RjG5<{p?0Tk2PU>67y#Sr|Q%mtD21%qhh%-PtJTr>?4ozLKcel zRq=bTm{E7mihXwC7M0tZT|}#^8g4d|O?s6_Kko?xYv+c5xz#r_bk<)^-oAFl(%)*n7TE3~7_D9%G0JEG*1A8RR>y{Cup z67N)7dP`XiNZvN&2^)9PB$+c%v+p291pAF1atL^M^cgG3j+hsJ0;*zlf7LfWuB=}a za79FNSyrn=-qDLc)y?-knz^V^Bv1zLf)b?9MTl|{TfSln9`#~H!YUfmc}hiF4vP!O z8JMXLl@vccx}$|C{7JDrX-Y#J(myx$5=Dbe;+l@>HY#^Wrm$xhw9^0M+~RFLm2YS? z5mEtCk4!+HXr)^74OGk)7$>_GlHMO&J>)^{bJh8+s5P|2lYi!T{NMh~@S8&>%fq|Z zzS?E~(8W8pzQWi1ZS;4f(~=E^yUx=*N{1oAi4XmX_dl4N1MR~)%5 zu14y7v1lB0er#=G^4Ws7Er$fHXbuiI4%-obH&uU@_A^XEG72t*NG7i`*JZT+^-^t8B+B zm&0Ah=QYCcC}S)ch&=)ZKLM9Hx+z)cg*kVdJ^J&T-sLjL;7s|CV#@1P3t|fSS6lvO z?V|M;FG2-uGvLkltQA6GKGC0_FwV)0$<#pyaM1elQ}jCx_nnXK849D%wfF|2c)#fw zi?n^^1kd;>o-cn549UpyR_*lI@7q{eTuZO?py7Zq@h;of8+2@{x?>`_4*1`QoMcY6 zzYae;$S+whxcaT2?S4Gl<@D-t;E;y0#qoS=$laWfkN4YL9}c9W&Vf_~#4v%1&%{bf zPfIr3TNefB^_)NICp_`uA9FDyR$$gYZ@$}M{NbRG&+Qld(Y`bjvFY1%xmS7A=wxYp z^ep2{N;mx=@hm6ff|OCb0T^Huw81%&6j5_uF*UY`GY- zSbVY4*Gqo&l#J#yLKJ8Rl7y^feu38n1PU<2f>;{ zs+%XAVZfilyc|MS(owU_ZAt*0y$F-jKT0E9xp{k<((T=FrAb28fFV4_) zm0jzOm(m1;vZ8QOKuA%bHJ}}H5BRZc_rjr zT%~IB96>3CNd+KA5&-X>y{MZFMcbEOykL}A*thB~sFLE2ASe7CE0|cr1p&m8%uo`e zAHV(m38B9_m6Pm+Fwtj%?tTLhG>Y*P3#j+{;j9DC3j zw};hgpT+5}pxCUHxPg;yl5hYSQb&A#l=s7GX3FK2uU8LQr3Y{<6s}emkv@*{uHI=Z0JSa(K|h#s55-zqYTeMKEQ_K*2~xc%2S1b!Q$1Ca z?N!w2cUpFze|Fu=N@$(D5bB#M=WhunbC?3Lompi`WyK@O7$!I!s+Ow~e6l}zYm?7A zt2_x|w->Bi0EIN-4i?i5`Enr1$3MJKDhxcUPr#)qO64cZBsTyPx_@$L-7@(%ZtiS| zNx>X@bf|RKS+~|Nn`3Eh4itvOZ8^w_Ofv>M$08~NA#OPw{{YP}&i| zJx@VG+5nUeGs)>Rp6gR?;^)d~;H!3^Hy8?6RewQEtwAmcqu(D#;ls@UJKobVM9-kn<&cu^Dca(x03sO#ky zN=ivk7?Bl~O1ZGq!>4ttvVDP?$_cu{XLIj5*MWmgX`Z9%+Xtmg@<*Jlv9z3Z>zWlT z3n@!yYED1%ULomF1kA)wCZAjZD(%?Db|^k_aRBr4S1WK0vPW?rrBW?k1!*95#awJu z6v9l*b*tk&CD)_^@=)<2VDfRzYL_G#{kfvGM!{`L9H&3lmNui2*S|@m+!bs?iQ}rt zlk97pf2fIDNkgrO$w?!i;<^*05@(FnEB!#)bk_;yCyu`LG`Fu4iJaY~0$|`DwGxJR zC@M4G>(ZcSV#K3^k|?%R0LUf=5B9B4Wm*zi4#G!2(!6&`bTz#h08D#DNXo)?sU(s* zntNw{*OjqkK*%SWt%TzuR#C3)O2I;b3(SxBr55)~(w-&=Pgvr*zNO&ZM&SbKyEh6- zK>@Ort{@P0f=p+m)e~OR3KUSZ!-?b^AGHNtZ5xpD4iW40*rWsRI#2pz{-HJEH&LK# zi`l4@#g)px`}qF=wxj;>(Ek81$0Il8GFot@SdN5aCXk;YC4vKZqB--D^zU|9>6Y+>L2d!9P?gl#dI4~+Jlb&0AAm>%crOC-w+2CSbj!3 zV1%frgrBBsa=xDYd(g>Ph$A9F9gNi5)|5h|6C6fIdhr^iUHKDyuQ{GAM3PQVu>O^! zZ93rGl)`iBQGjb04nFqT3T#18QH&Ylj(Cl}p*_haerO#%Mng8=NPsD|w5`GqeYufQ ztJfQHN&6bz^R!A#$KJfOA=gzPD1`DyTxM#$vkQ_2=`cQ82w3$f$s-_qP*;~pX|P~+ zCT3*R*Y0g>$$)w96snr3v2c|&dVo>E+F?mQAl5sm19hnaKuQ<63Edy?s}Dhnmf! zt%bCdECsp=9-?wkp1H}II;Kfx;0RPeNqac<_xTAu&Vg%o0kzcJL#Jp@ntWn{#tl5;%#P?k2=nyadM-6^%OP>;pkthUlje=Ox+{(KmXIkA|6dU5SC<3hB&Xrjm_(%~^G3o2}acv49x;tfvCqjnl{ zY%QKs;nfEpT9Oc4RvqBT3&$`y;#sSLKcA*AGCO$FEY{Mg0yIU$MOD!lk=}C>r z&eVg@llo?xm7o+M03oKZl%haL_V)eirGhTb@>@~E7Bq>F3f87K0nza@b&Sz6=)^o=`^IbN{>q{khcTF>LAQd4Y&n(VKG7~+3Co~?M z%a&TAZOh4ZBh+07l=m~jyNdHtu)DBe5U};609% zkP6S{0{|R+R9EhVxX2I`K~VqzdBOeYTj$1_#N4`?WDl)t=NbMQam12f`_wMD7PA}^_Z5K(F#`vo{p*)1cMh_4 z40@qWxVJE+50*-#Crtbm_#I|0(F7Ty>`fSa`~!^{H-n(1cUD*WjSNZ=3+Vbg6K{MP99 zi5U2r^&TJM_37yq*^+-x!=94|U7@z;%|rnz8cv&SV&YS5gdlYY0At+suWphTe6_?5 zkyZ=sF`HER%@U2grA9=1QfrasD`@K?ed|TN`gsZ@J( ztfC8S#|A(qM{uy}611K~&|yR>34_R}G~1x%xk1j{0s3aWdO(rhVq$s<-yAFj*v>>f zmjXyTus*e5Z&_~M*DHl_9`#C7=Yn&@kLysmbV)fUr)*bllv_5-JNok7B?*Ls#$<|x zy;!7#szKx5>s7Qp5h{a-9CWW%;NQ4NPuz~vQa~aQT4m1O?GK!&ADXN9`GV%0=E6ZJ zB7U7~+dGvsprA*%Jl6Wnz`E1coE1bt9@H>^9wB#vvxnQ=xWpxAj7X;T_vmv3$6_gF zp=wid>LZ1aG4D(Et(8hoz@`HgjbU6%-MA|OQ|UcH!5-9B(y0hCLCBoXANi`bm#Y*2 zg_#|Vbzca0t3bH4X3tu*wfsU55SQ-TN}E{eDhZUHnUU{NZllUg+jH`fMw`yFV=!Nw z*TbGGdclURuT+=q&|$e=)wS%EdwbQ;g{Ht z=2q|g0paysq3avFtts@XP}`(B)b;^Tej!!vucLUr*(@VVdckREf|n5CX=y$7tVil; z;x8`Bid-V$3c+n@1S|BS?W`7C4(Y=7$s-{N1xWe~r}i|Oc-E~(!rO<$XZ^!l;TlId z#?$cn{tTYQ+sEx1R;Y`1^&OyG3w09NSNoGAuWpCE9+SC<2PrT|w?j+3`_>Xa5#_BX z`SwKpD3)$XKBP8D?TWy=EX0x4X!%7{0nQ;-YxO#gum~M}>US0C#tGtpQj2R#sRWK- z_Ua8zl@~}2%7HTy0glF(BQR{d?t(rRrIOlIsF^4dCZMx_%ha1f(o$C_AyP7F>x3mc z6M@hV=}UD6JkjbPClXcDIIAmz#vv=TFxtXvt01YOBalbVII1%j4_WJWuYL~V?Y3PW zhEk&^IFLUu<_~Xrys(!p5~BYAmf{k2f)zW&e>e4{`nIy0BDPylXf~1p5(CL*5F zu|u#8(Y+(E2B0&TotvV+^%16+T1zjLw&EP&O$3!nyNLk%@m5V-m&M9jyJ@AqN{CWQ z&;&$AG4zVn7iPmrVcYfXaZLq0>e2$F$%EG%3a=GvdXsk!q^8QqC@BuS3QLKD>OhQv z*N#Wc8`X9(!mrDmeRP&1&0yz%pbvcG@S6C4PPo!_Ta{j|w;56cR_?T-Lge~@6Cwv9 zI`dKM`WB~ud6o2G%{N7BPJK-&_Rv+m1gI0Z zkVO3R0!0!pFK(^H`E~51dZd7&I!6bL#Kl(i>+SD0wo|qeQb)YNf%U7s-I>!g{Xb70 zVw-KWZQl|~fhv*H)OhK|Ug3ofMsk_wa|E13Ow-1h{0)-O(LQS6tx-En4@!Tzq5Svt3rnV+-0(|hE9hq#kGFbM zSaXbP+vSP+egOcNQ7DB?qQN>Yb)N$t@7ly;k76{PJ@CvvAfyH?ls zlV})71g;WKwB*%Z)h&;V6KWK;AodL@jU|Nb2zkNgxc~y9c-(!2P?sfar72EUvw(OW z=h#I*aRpAO1o}h-1Px}YvKU4Zp*37o!D3@ijV%sKNaYzA61dmBn zN)z0BnWt8)p$&kP?PwA}87lXsmVRO`6gnvGB#xb_mF??R*2;Be5RgCvl^(*T(#&un zor`cJTFb~rm3QXEEgKRKQy_pn@id!8(^q$Tg{?4@5U3-8-YO;$cdA{s?b3{cDL^uo z{-4*aAAXk~E7PoH0SZszE@lD*PSG5zy&VUa=+DpL420ID0p$LXTdujR>ji9pvl5bZIIQV1+rgo6Z~DIK>q;RoWS?z_NnyS1R~W9+a$AWAd){bhq*M( zD@#e(&!i5C5I$&D-VddE2rDihaYqB|n4A8p(<)FY3VA0f8Qboo{VGAJmu=rmR<{=m zC?ohl#zq9w3%f*Lwp(?!i-5y!DI!v5zrPd)p7?FRmPTKk z#!07MD@@aim&aqRCR7N5PehNNJ5<^W>UPv6UzkbHdY@6WZ&TCVVb+^*TM1~p!W@GN z2c<63nReM;TYwd}g>4{_-m8^#KKX+MEJi1W&(oTGBviOA=C|M3Kka zgF|TcqTW`J(!!2Tz?H}CNVUHaH>lpRZ(vI8Szh4kLRjo>6nNeL&Y6|2r6 zPAy6)OK8DgIO=ItcFrP0BaYKYk`VUUN{j<3{U_d~X~+QfAQC(LQs2e-&lRCClfdjK zmZ3^XI3jZs)1@#8Ry%n5_`)@0FRCyb7a}4$@M=a>T}h4s!Bm4C_@UWQ!Rv|XnxD=~ zK~AnpU}Xptobvd0!T}O`B7w>lZsKJENbqPSa-uhy#JeO50%|6-3S}Rj8Bue_Am>xh7&_ zY$PT?ka3UiT1oX49jOB+u!{F^4f@Cl7&2o#)eFWREl16+is1@=iE(YYN${!AWJr7vr4;5YTBcYKsY2*hg<~C z44FSQQ`3@5h*F27l70nR0(V<(Pa~M^N5&T>3HcKU1d$Rrni=Lvn4DxyOl2fV`+s_s zCK5`%N#JqbxBz;=2(YrW@I-a~vs0-j%7QWvJ!UAE6beZlV4ft zS3m+9F)1c-1i<>&L?7ubl2Vmhc%JF9M1gT;fZ5c*zm|@9#_7xwqPn#GwtLWB7L#$|0o= z@(-u=6*Ja4ngDZ7)E4qT{7)q%QPibT>aR1Zxa&z~``-c29p0*p;YnPJwF4? z(&FhP2H#VbVBn)@2wCatAGFbot*zn25{JNmt9J?j_mA&1CYWA*;?3#} znK}Ka*IEk(aym$w9mWzw9D%^?@M(5^$1TZ|SgdxM+b!#tb~coNe=#CLN5A%?8*LWv zt`w;VKEiR*ywX`HQ-uyf3<87RFhy;Ak`DO)063vDdbW;|jKQ3s={GAVNh>%$^8!24 zU2^>lvPu?rfM6&d}1RQdZ-j zow-p4573&UH>tII;u5RYyvr+8E%l(nfFOD#9(}#@Oz8!gE~kMDqgNSq?brH^Y*L5X z({%k>6{?}Vg|&YWG}r`}GlHcJyw2I;MML8CxY|%uvRDK7XgS-C0QTuy=*+mrti3}0 z&DUCs3VkRNOKFh_GBTjtnr1^lb-e4!DetZ zA6tYFAKH|*Svxl*Nld{TzxQ_)zMQmv6xyN`;)eGWUbaXwl}2yI(_unlIF%Hn6(>Q@FfvSr2^@|0Utl2QTZ zyk@nyLGw_ujj7xL9`j197x;$!#U?k6z^t5(grB7t?Ze8qNDej|Or(WGPckt>YRG7t z9GR`!gRUD}QWtihcA!VsKNC|MaEpD205*h#COZLDZCT`nt!Y}+TyxTpl0t+7x@q>S zsI3;I^cAOkl&%aUz|YQTty2J?cZMr~FnYl+ZdzsWZrnKXkEnmJc0bypztfAC5s~ODPE347lqY90${5?uYc6li^_WO0roa6l1T(BB+PLgD6S1h0ygK%z*G3a z)}-1p3ql-F+JFGS@BVeI^xI_lY1|>9FeIJ+=lsoiwFh(Vkd~9xSf6S(*+_Ac>tqxr z0qM8oP+5psVBVf2%T$cucC7-kF^<&}j)a&b3}mRmkBS|4jJ8CmtzO(vf)mQH0r_UzOP-G(J*)BIS0p%t+2brbrS+}HF zxpd#0{ksxe8%Fe}{odepJvsPdt)WW)0La5oQ3EOJWs#>_VU;@J32CvpN1y<4Ni@$GsQ&;?Der~EvNtH1#v-iRV^w9Fsg^oZ zO-#+y!d~#(4r))`wRG|p;){z4NLVW-OdNfUGfPg{FchT+QXmxrA60*PoUAscP=Em> zkr>)LnwkCo0Ec)su*%9vO4q`0d8JzBas!-*i(KRdW03$ir77BvQ6%nB{Xn7RPVG(r z2LNDv#RX^`4Iw2>36Dqzw?j>>9dM{4a!zJdF%jB}vj+k&=qk=8Gj3BPkJp+d001QV zcqHU~sFWhv#`h&&LdP*BGd;R}DkssoqNz$;Y{H62g$k{RYa@_;QA2L?gEjM#k@-&Y zAjy;S?fcXvOLf3hXP`ZYU@LSb2bez8TP&k+B_M;-=};KI8JtK?WOm3nI7k_jQ@Z#_ zA*`$Y$ARuEWiZ=`&hhM(P}g=&0Cp^`F_aMpj%TemMx9%Y!#}6z6T0o7u^Ge(!lK!5 zO0)UZ%8yf1>CPeRb%hR32BQco8wN*T+M;UBZGSllnSqJxUh7P)QmE^R;dK^ymKOsV zo7~zZC{ni)BOf%fJhX0b#B;@Mtm^#n}ww=VkbQfRR~kJ zv|V4En6}j zG}7MGT3eaqe4mWfZu0nkDMW7s5+LKRLrj~7aoSy%9GKB;LdpaZ3<>Hv!Kpv#_bPAF zGt?7H?e9umN{(d79E!K;mxy(->OhFhP+t9`fhd)$N}Kv+@WzdiB`8qrMSAV43lO9U>mBF=R63b&Ax}d&a+AF|9-)kbJVt6Vc+N&Eqh09M z*9nb?lfj5Tdad4gRp#7LWyO?^5xqYGBS#D~+c<$0Cjsr2V@KcyR?zAZIY9&v59 z*d;C%q^uN?1V9I$ik*5L$j&=)2E21exdK3wALs8^Rotaa8W*j@fzz2_PKn{YWB&l^ z-m-_)$hIM{djA01Q91aE3g^HVC^Khz+pusQK}nC0Pwh$n0O@xmWfRw)J}Hiysq3~5 zr7kv`>v4}M@X)83>)<44e_#f|?vtF-7dH(?QRkuCYKd{I125!&9o*sCX zwAEeOs(jWOR`e`)1M?*Nf%m7HCZy3*X}4X)niqvz-L_DsmDq>?r1Vlx%{sNZ7s&?B z`sT*xt+n6|v`?}Apb7rr%VuY%eghIG~05g9rXA&v=bx&g+*A@5ub;sqpIS zsWGRsa(fe;e7=leHA`k+2Iq4mfR!x%RrUwmQE!BlrN-12+2Kes4tvsq>o*96*pP(+ z3XC0`z7j}c^5fX&Y zPU_$sRigceoVjO8xYa!SXNYK&+kmtPGN5|nyq>f!wXZd&c%IYFQ;4%^kjrT2%SnMM zG5n)5%!<~dH3MB-lb^^4{U*e$*Iy*$=byu`f7)&0Ym(!LWv2+fX~3omQzV`?MJ5fFXnp0ySB zqENk#w4J$1qchk=4J>N^0LG$O9I5itpzAANi4E;_3W9|VvI&v)gfHxqSAi>N=O*8OzjEi=hzk1jUg&DOj9PN+HkW2~h%u!v_ zW=Q5<+mRQ04rJPPj^j5iD_3Z=g`n)!#t!R+g{VpD0=24)Wxa;NcmwWOrg340DTmb<;$~Sw&;~glArM~UGy|am0 z5Ta6{J3>J1^U^A{XL_qg?A*C*n}*dp8#xP(4l&HZr#ElAeQvkhTUKnSs0435a@0GB z$4L9rc2rc4Xi}sR&k?qSrmmk4xXE!%HUdzD9gXLekUuf$IO|hd-!8{eNl&SVmK$*j zFeI1?n86?MM0ic~T-jU{Tok^>#+J|k0u%ufJI?Q8KJp@pZ^ zSsSFA#Fpy+0IQ)2xI;~BDgi){2rx(kzr96f>-shGYq)JIw{RH=GKX8{QhSa>*N&y@ z-35!)K3sLRtt4QWN!mgBXWpaH((a+9-q;i+NVf&%l|H1EAId$aKHpll3Z@Tkv6Lgq z+Q%cI{^2*)p*M~t_X?W?6!HuaB7TOVN)Zs0NEsxn?Oy5^FWfDaT11vm98$(Nfd)R* zJ2uYk{yo~(d4|#w0IKc477yz7N%3Q#HBqDTtHIf)b& zpQt6LeMq=U!62mIr0`^WR)x8@ARb3qrDkmfbLtq(x#@xXEz7%FUU|s{!;rJ>+CSR@ zD4)fl)&3oYZc!ehAb>j`dKr|psaUC%$V186WE>ucvWz5dwdDDh$?oa!1dP;!$g7e2$T;Nejl(dEiY>(_rNa zDfS$D;+I;xDUs$0=`kbkMxkj=LQY3=Dp7_o!cxT|9MXXhOe?Uh)C59=j==L;+W@A7 zresb|N%l3k9$NP9-~Qk1X{4_>F*13?(Ry+~Dq%r5!2Xq7*DuYIRNoGn#LQKw5TP4n z9>=9n{8wtWFG7=Q<1H*mD{wDzy5dZ8$6ED15vVTave_NJkNci?#q^0?er;n1;r&F* zQr>Y&S(Pi1AEgA87Th35F`l(4SxTd!$JV5{Nm7E+CPoE%EDn>)6Ok8RGbEBAAM=_c z!+I#Xy9;$bgyfF-qwVaJ@Ig@LxAm)5kz|`@ae{d~{V887FS(8f>ZDC%1Y?x}C42pMiAnwQu-Z)j&v}OQ3;=FF=*-ij9LBtx3eiLET{%hnbs4g~tr9iI=w1P+C zwIpDfQW8hp3Sa*KYKNddk(xjHeP{mw)Zs`v&W6-bV?FOr8 z@U*LQdX}c1xIh5?XvQ=fh8C44QoD)a#HJ{Ac#RgW+Z5yC3}T-S*HYV&aDHMQ?XQq` zHsM=y^-pQ7fjvMXyj`oiB{zFiI6G(VCZx1zq(km`q+}4-Z*c7rf2DaZ5vG9KsC
  • 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%0AlEN@rdf{j5>`@&mj!pN#PFqSK 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

    KBV~f(ra$h6geOC~&Xe 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

    ?UxSsDgNeVITH^pnh}D$E#w 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 a($%rD^4KweJ-FMTexaX@EiEkuXaCt5>?_g$ diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/image-5.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/image-5.jpg deleted file mode 100644 index c75f814182a2a24b9a48612d2d4c65f5a832b9e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60472 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%0D{?gju@)ES9(dZ|lnD`$yIk$R zd^XFo%Bo3AEV2+!n4z;D?l5!0q`aZUrPyNhMv&B+d1I=A1|~&P4bXq)sUDkN+mCU4 zZZZvwZdnMrw-)*P;(C0}imrI(RQnBNZK-N#;YHQ|0Om$4uiuLs8xTg==2{1(y+lt< zK3ywm5>v_KjGu<;e9AAiw*c*a1_dcY@dGHQx)@|qn6osNS%h%L1d=iApo@=t`f__> zdbz4)j8d17x&bXjY}$&RLJ``-p7%c3Uli3jd|zp$rFyBaphk!!Wng|VH{5#Ik;onK z1r=o_OvwyW&D4>Kv=soPir`%EE$i>?jPr)3-(irI!6GTC>HrNQfDY}gf|KpNy|5JU zPt*m1YCrxU+w=KYVaq`Tv$&i~75BTJZMNFu`eFvkC}&`?%3+uII@(XrIUxNG8v!yD z=#ej|#;1h_MZeFVo(B*HsC{NFDm0t80Q`@x8dT(SQX@R1fVTrl*eLYFbZtdSRly48Re_zl ztQ>&4wz(LRJjS5zU0e=Tlo9&$!16{FtWj<4-yDJ#;^*4fuL?eb^)=jbWfgSO%ONPr zp&G+gl%M2w2i)LDDP#L`Ow|LXxAKU5+KA_p4X_Hkg>f0)zl{6E_n_02k~{RSl$-2d6v)Ut^H diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/image-6.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/image-6.jpg deleted file mode 100644 index 6ccdc9207307e18b3f1af946d4a51d66b739d583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43293 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 HfA9Yf_)@J3 diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/thumb-1.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/thumb-1.jpg deleted file mode 100644 index ddd63609b0d241006995d7bff30605d57ea57ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6513 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 KkI+M&m;Mjx(@%;3 diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/thumb-3.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/thumb-3.jpg deleted file mode 100644 index 3261bff49e1fc52ed9d14dea7830aba23504c81c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8811 zcmb7IWm^85kOA=^T&_35lVbVd#*QK~zFUatLAQkQiXdL0SZ9DUn7%5Rg_n z1>ySM`@BEkuJduPv(EmopS|~4_Y3zw0Mw7Q^|S#vH~;|7zXP~m0%!mT@d*eC@CgYC z2#JUYiAkwRNl8dZ=_#qmshQ}RnVIMr8Clu+I9P!^Y>bSYBAh(@4+Mn-SvW++MFqt9 z1Ox^CBZ5OjL_|tVN=HgcC&0?cD)9ft{U-noF#rWX;o)!taA|PxXmIZP0c-#OE*{Q5 z0R9Vn0stN%5iSn#zo;TL02c=r{~z#(@bUh`!NJADrvVVqa?wesnGkY22hdAKrSZJO z5;3UvOs*aAN|_!r^0`d?y9>nmKjr`G0swgUxCDea0HS|EDH;F{-hYG%aq#i}m+>Dq z4HrJG#1Vm-i8CE{z`Lk4>_16KLVBKKDRtBPMF9D~3~*`iXaJ7@BU>z;kW@oszGojx z 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 E50DObHUIzs diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/thumb-4.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/thumb-4.jpg deleted file mode 100644 index 8c265cf930b9a84ed70f9ec9d54336ecaca611e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8944 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 R0}I7dnV6Ws5)-bz{2!y4twsO< diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/thumb-5.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/thumb-5.jpg deleted file mode 100644 index 65d2cb70bbebca7feae5bdbae0eadec1fe7fdbdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7970 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 diff --git a/icec-admin/src/main/resources/static/ace/images/gallery/thumb-6.jpg b/icec-admin/src/main/resources/static/ace/images/gallery/thumb-6.jpg deleted file mode 100644 index ed1cdb6e597e5ff01589c179ae3b43e84e30f67a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4800 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 diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/css/base.css b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/css/base.css deleted file mode 100644 index 6267c3a..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/css/base.css +++ /dev/null @@ -1,110 +0,0 @@ -* { - margin: 0; - padding: 0; -} -body { - background: #5b5b5b; - color: #000; - text-align: center; - line-height: 1.6; -} -body, input, select, textarea, table { - font-family: "",Arial, Simsun, Verdana, sans-serif; - font-size: 9pt; - color:#333; -} -img { - border: none; -} -a { - color: #4264BD; -} -li { - line-height:20px; -} -.dCenter { - width: 800px; - margin: 0 auto; - text-align: left; -} - -.dBody{ - background:url("../images/body.jpg") repeat-y top; -} - -.nav { - list-style:none; - float: right; - margin-right: 25px; -} -.nav li { - margin-left: 20px; - float: left; -} - -.navbar { - height: 0px; - line-height: 28px; - margin-bottom: 6px; - color: #fff; - font-size: 14px; -} -.navbar a { - color: #fff; - text-decoration: none; -} -.navbar a:hover { - text-decoration: none; - color: #ccc; -} - -.res-block { - BACKGROUND: url("../images/block/block-top.gif") no-repeat; MARGIN-BOTTOM: 15px; WIDTH: 210px; PADDING-TOP: 5px -} -.res-block-inner { - PADDING-RIGHT: 11px; PADDING-LEFT: 11px; BACKGROUND: url("../images/block/block-body.gif") repeat-y left; PADDING-BOTTOM: 6px; PADDING-TOP: 6px -} -.res-block-bottom { - BACKGROUND: url("../images/block/block-bottom.gif") no-repeat; WIDTH: 210px;height:5px; -} -.res-block H3 { - MARGIN-BOTTOM: 8px; FONT: bold 12px ,tahoma,arial,sans-serif; COLOR: #555 -} -.res-block UL { - FONT: 12px tahoma,arial,sans-serif; MARGIN-LEFT: 15px; COLOR: #555; LIST-STYLE-TYPE: disc -} -.res-block UL LI { - MARGIN: 0px 0px 5px 3px -} -#footer { - background:url("../images/footer.jpg") no-repeat; - height:47px; - text-align:center; - padding-top:9px; - color:#CCC; - font-family:Arial; -} -#footer a { - color: #DDD; - text-decoration: none; -} -/*.logo { - float: left; - margin: 6px 0 0 13px; -} - -#footer { - margin-bottom: 25px; - line-height: normal; - color: #666; - text-align: center; - clear: both; -} -#footer a { - color: #666; -} -#footer a{text-decoration:none;} -#footer a:hover{text-decoration:underline;color:#333;} -* html .mmlink{width:200px;float:right;margin-right:250px;} -.mmlink{width:250px;float:right;margin-right:450px; } -*/ \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo.htm deleted file mode 100644 index 0b60b65..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo.htm +++ /dev/null @@ -1,97 +0,0 @@ - - - - <- ҵڿؼ - - - -" - onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:false,startDate:'%y-%M-01 00:00:00',alwaysUseStartDate:true});"/> - -



    -demoʹٷҳ
    http://www.my97.net - -

    -

    ϸĶ


    -
    -ע:˰汾Ϊ 4.8 Beta2 build 20111221
    -
    -:
    -[]preloadԤѡ
    -[ǿ]֤ܿɱرerrDealMode=-1
    -[޸]㷨ģʽ,weekMethod
    -[޸]ȥMy97DatePicker.htm
    -[޸]positionij(ԭΪ)
    -[]
    -[]onchangeܴ
    -[]Safari5
    -[]<script>ձǩʱĴ
    -[]ƽģʽµļż
    -[]˫¿ѡ
    -[]iframe,λƫƵ(ż)
    -
    -
    -
    -ʹ÷:
    -
    -1. ȥٷվ,㵱ǰصǷµİ汾,ܶbugΪʹõIJ°汾ɵ
    -ٷҳ:http://www.my97.net
    -
    -
    -2. My97DatePickerĿ¼,ĿӦĿ¼
    -
    -My97DatePickerĿ¼¸ļ:
    -  1.1 My97DatePickerĿ¼һ,ƻĿ¼ṹ,Ҳɶļ,ԸĿ¼
    -  1.2 Ŀ¼ļ;:
    -    WdatePicker.js ļ,ڵõĵطʹøļ,ɶ,xx_WdatePicker.jsʽ
    -    calendar.js ڿļ,
    -    Ŀ¼lang ļ,ԸҪļ
    -    Ŀ¼skin Ƥļ,ԸҪƤļ
    -
    -
    -3. ԸԼҪ,ɾҪƤļ
    -
    -
    -4. ԸԼҪ,µƤ
    -Ƥĵַ:http://www.my97.net/dp/skin.asp
    -
    -
    -5. ϸĶʾʹ˵,󲿷ⶼͨ,ϸ
    -ʾ:http://www.my97.net/dp/demo/
    -
    -
    -6. ޷
    -Ȳο:http://www.my97.net/dp/support.asp
    -
    -
    -7. ,֧ҳ޷
    -֧ͨҳṩϵʽϵ,ע:ʱ,һҪصHTMLϸĴϢ
    -
    -
    -8. ʲô,֧ͨҳṩϵʽϵ
    -
    -
    -9. ڿؼЭȤ,Է:http://www.my97.net/dp/license.asp
    -
    -
    -10.ףĿ˳,¼н!
    -
    ----------------------------------------------------------------------
    -ٷҳ
    -http://www.my97.net
    -
    -ʾʹ˵
    -http://www.my97.net/dp/demo/
    -
    -Ƥ:
    -http://www.my97.net/dp/skin.asp
    -
    -Э
    -http://www.my97.net/dp/license.asp  
    -
    -Դ:
    -http://www.my97.net/dp/source.asp
    -
    -֧ҳ
    -http://www.my97.net/dp/support.asp
    diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/index.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/index.htm deleted file mode 100644 index 78f8b86..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/index.htm +++ /dev/null @@ -1,25 +0,0 @@ - - - - -My97ڿؼ ʾ & ĵ My97 DatePicker Demo & Doc - - - - - - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.1.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.1.asp.htm deleted file mode 100644 index 4ca0c69..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.1.asp.htm +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - -My97ڿؼ ʾ 湦 My97 Datepicker Demo - - - - - - -
    -
    - - -

    . ܼʾ

    -

    1. 湦

    -
      -
    1. ֵֶ֧ģʽ -

      ֳ֧inputý,֧ʹԪ:<img><div>ȴWdatePickerõڿ

      -
      -

      ʾ1-1-1

      -

      - -
      - <input id="d11" type="text" onClick="WdatePicker()"/>

      -
      -
      -

      ʾ1-1-2 ͼ괥

      -

      - -
      - <input id="d12" type="text"/>
      - <img onclick="WdatePicker({el:'d12'})" src="../skin/datePicker.gif" width="16" height="22" align="absmiddle">
      - ע:ֻҪؼid

      -
      -
    2. -
    3. ,,ѡ -

      ʱ򶼾߱
      - 1. - ͨͼѡ
      -
      -
      - 2. ֱʹü
      -
      -
      - 3. ֱӴӵѡ
      -
      -
      - :ʾ,ûͬһť5ʱ,Զ

      -
    4. -
    5. ֧ʾ -

      ͨisShowWeekԾǷ,ڷڵʱ򻹿ͨԴԶ¼APIѡ

      -
      -
      -

      ʾ1-2-1 ʾӦ

      -

      - -
      - <input id="d121" type="text" onfocus="WdatePicker({isShowWeek:true})"/>
      -
      - ע:㷨οISO8601ķ,Դ,:http://en.wikipedia.org/wiki/ISO_week_date
      -
      - 㷨ѡ(4.8)
      - :weekMethod
      -㷨ͬĵطһЩ
      -㷨
      -1. ISO8601:涨һΪһ,Ĭֵ
      -2. MSExcel:11ڵ

      -
      -
      -

      ʾ1-2-2 onpicked¼ֵܸı

      -

      - -    - ѡ˵ - - (Wʽ), ʹWWʽ: - -
      - <input type="text" class="Wdate" id="d122" onFocus="WdatePicker({isShowWeek:true,onpicked:function() {$dp.$('d122_1').value=$dp.cal.getP('W','W');$dp.$('d122_2').value=$dp.cal.getP('W','WW');}})"/>
      -
      - onpicked ÷Զ¼
      - $dp.cal.getP ÷ú
      -

      -
      -
    6. -
    7. ֻ,ĩ -

      readOnly true false ָڿǷֻ
      - highLineWeekDay ture false ָǷĩ

      -
    8. -
    9. ťԶ -

      հťͽ찴ť,ԸҪԶ,ǷֱӦ isShowClear isShowToday Ĭֵtrue

      -
      -

      ʾ1-5 չ

      -

      ðreadOnlyΪtrue,ʹհť,ûȻֵdelete
      - -
      - <input class="Wdate" type="text" id="d15" onFocus="WdatePicker({isShowClear:false,readOnly:true})"/>

      -
      -
    10. -
    11. Զѡʾλ -

      ؼҳ߽ʱ,Զѡʾλ,ûбҪĵᱻҳ߽ס.

      -
    12. -
    13. Զ嵯λ -

      ؼҳ߽ʱ,Զѡʾλ.㻹ʹpositionԵλ.

      -
      -
      -

      ʾ1-6 ͨposition,Զ嵯λ

      -

      ʹpositonָ,ڵΪ{left:100,top:50}
      - -
      - <input class="Wdate" type="text" id="d16" onfocus="WdatePicker({position:{left:100,top:50}})"/>
      -
      - positionԵϸ÷Ա

      -
      -
    14. -
    15. Զڵĵһ(4.6) -

      ҵϰ߲ͬ,ЩϲΪһ,ЩһΪһ.
      -:firstDayOfWeek: 0 - 6 һ,0: 1:һ Դ

      -
      -

      ʾ1-7 һΪһ

      -

      - -
      - <input class="Wdate" type="text" id="d17" onfocus="WdatePicker({firstDayOfWeek:1})"/>
      -

      -
      -
    16. -
    -

    2. ɫ

    -

    3. ԺԶƤ

    -

    4. ڷΧ

    -

    5. Զ¼

    -

    6. ѡ

    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.2.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.2.asp.htm deleted file mode 100644 index f4df0c4..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.2.asp.htm +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - -My97ڿؼ ʾ ɫ 湦 My97 Datepicker Demo - - - - - - -
    -
    - -

    . ܼʾ

    -

    2. ɫ

    -
      -
    1. ƽʾ - -

      ڿؼ֧ƽʾ,ֻҪһeContԾͿ԰ʹ,败,ֱʾҳ

      -
      -
      -

      ʾ2-1 ƽʾʾ

      -
      - -

      <div id="div1"></div>
      - <script>
      - WdatePicker({eCont:'div1',onpicked:function(dp){alert('ѡ:'+dp.cal.getDateStr())}})
      - </script>
      -
      - $dp.cal.getDateStr ÷ú

      -
      -
    2. -
    3. ֶ֧ - -

      ˿Խֵظinput,ͨelԽֵظԪ(:textarea,div,span),innerHTMLԵHTMLԪ

      -
      -

      ʾ2-2 ڷص<span>

      -

      2008-01-01
      -
      - :
      - <span id="demospan">2008-01-01</span>
      - <img onClick="WdatePicker({el:'demospan'})" src="../../../skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer" />

      -
      -
    4. -
    5. ʼڹ
      - ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ -

      ʱĿҪѡ֮,Ĭϵ㿪ʼڶǵǰ,ѡdz鷳,ͨʼڹܼalwaysUseStartDateɽ

      -
      -

      ʾ2-3-1 ʼڼӦ

      -

      ĬϵʼΪ 1980-05-01
      - ڿΪֵʱ,ʹ 1980-05-01 Ϊʼ
      -
      - -
      - <input type="text" id="d221" onFocus="WdatePicker({startDate:'1980-05-01'})"/>

      -
      -
      -

      ʾ2-3-2 alwaysUseStartDateӦ

      -

      ĬϵʼΪ 1980-05-01
      - ڿǺֵ,ʼʹ 1980-05-01 Ϊʼ
      -
      - -
      - <input type="text" id="d222" onFocus="WdatePicker({startDate:'1980-05-01',alwaysUseStartDate:true})"/>

      -
      -
      -

      ʾ2-3-3 ʹò

      -

      ʹþֵ̬,ʹö̬(:%y,%Mֱʾǰ)
      -
      - ʾ,ʹõ굱µ1,ʱʹ00:00:00Ϊʼʱ
      -
      - -
      - <input type="text" id="d233" onFocus="WdatePicker({startDate:'%y-%M-01 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>

      -
      -
    6. -
    7. Զʽ - -

      yMdHmswWֱʱ,ЩԪԶԻڸʽ.

      -
      - ڸʽ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ʽ˵
      yݱʾΪλ֡ݶλнʾλλ
      yy ͬϣСλǰ油㡣
      yyyݱʾΪλ֡λǰ油㡣
      yyyyݱʾΪλ֡λǰ油㡣
      M·ݱʾΪ 1 12
      MMͬϣСλǰ油㡣
      MMM·ݵд һ ʮ (Ӣ״̬ Jan to Dec)
      MMMM·ݵȫ һ ʮ (Ӣ״̬ January to December)
      dڱʾΪ 1 31 ֡
      ddͬϣСλǰ油㡣
      H СʱʾΪ 0 23 ֡
      HHͬϣСλǰ油㡣
      mӱʾΪ 0 59 ֡
      mmͬϣСλǰ油㡣
      sʾΪ 0 59 ֡
      ssͬϣСλǰ油㡣
      wڶӦ 0 () - 6 ()
      Dڵд һ (Ӣ״̬ Sun to Sat)
      DDڵȫ һ (Ӣ״̬ Sunday to Saturday)
      WܶӦ (1 - 53)
      WWͬϣСλǰ油 (01 - 53)
      -
      - ʾ
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ʽֵַ
      yyyy-MM-dd HH:mm:ss2008-03-12 19:20:00
      yyM083
      yyyyMMdd20080312
      :yyyyMd HHʱmm :2008312 19ʱ20
      H:m:s19:20:0
      y8
      MMMM d, yyyy 12, 2008
      -
      -

      ʾ 2-4-1: ʱ

      -

      - -
      - <input type="text" id="d241" onfocus="WdatePicker({dateFmt:'yyyyMMdd HHʱmmss'})" class="Wdate" style="width:300px"/>
      -
      - ע:βѡڵԭ, autoPickDate

      -
      -
      -

      ʾ 2-4-2 ʱ

      -

      - -
      - <input type="text" id="d242" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'H:mm:ss'})" class="Wdate"/>
      -
      - ע:ǰʹƤ(skin),ῴһͬƤ,ƤԶͶ̬лƤ

      -
      -
      -

      ʾ 2-4-3

      -

      - -
      - <input type="text" id="d243" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyyMM'})" class="Wdate"/>

      -
      -
      -

      ʾ 2-4-4 ȡϵͳʶֵ(Ҫ)

      -

      199975 Dzܹϵͳʶ,תΪܹʶ 1999-07-05
      -
      - - ʵֵ: - -
      - <input id="d244" type="text" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyyMd',vel:'d244_2'})"/>
      - <input id="d244_2" type="text" />
      -
      - ע:ʵӦ,һvelָΪһhiddenؼ,Ϊ˰ʵֵչʾ,ʹı
      - ؼ: vel ָһؼؼID,value(input),ڴ洢ʵֵ(ҲrealDateFmtrealTimeFmtʽֵ)

      -
      -
      -

      ʾ 2-4-5 , , (4.6)

      -

      - -
      - <input type="text" id="d245" onfocus="WdatePicker({dateFmt:'DD, MMMM d, yyyy'})" class="Wdate"/>

      -
      -
    8. -
    9. ˫(4.6) -

      ͬʱµ

      -
      -

      ʾ2-5 ˫

      -

      - -
      - <input class="Wdate" type="text" onfocus="WdatePicker({doubleCalendar:true,dateFmt:'yyyy-MM-dd'})"/>
      -
      - ע:˫һֻڰԪصij,øʱ,autoPickDateԶΪtrue

      -
      -
    10. -
    11. Զ - -

      Ϊ3ģʽ:ʾ(Ĭ) Զ ,ڿеֵϸʽʱ,ϵͳ᳢Զ޸,޸ʧܻõľģʽд,жϹܷdzԱ֤ûֵһϷֵ

      -
      -

      ʾ2-6-1 Ϸʾ

      -

      ڿһϷ(:1997-02-29),
      - ʹĬݴģʽ ʾģʽ errDealMode = 0 ʱ,ʾ
      - -
      -
      - ע:1997겻Ŷ

      -
      -
      -

      ʾ2-6-2 ƷΧҲΪһϷ

      -

      2000-01-10 ,¿ 2000-01-10(2000-01-12)ҲᱻΪDzϷ
      - Զģʽ errDealMode = 1 ʱ,Զָǰһȷֵ
      - -

      -
      -
      -

      ʾ2-6-3 ʹЧЧڹƵҲΪһϷ

      -

      :
      - 2008-02-20 Ч
      - 2008-02-02 2008-02-09 2008-02-16 2008-02-23 Ч
      - Ч
      - Գ¿Щ,뿪
      -
      - ģʽ errDealMode = 2 ʱ,ʾ͸,ֻһ,ʱڿ򲻻
      - -
      -
      - ע::WdateFmtErrskinĿ¼WdatePicker.cssж

      -
      -
    12. -
    13. ޼ʾ - -

      ڿؼ,㶼ҪĻᱻiframeڵӰͻ,ΪMy97ڿؼǿԿ޼ʾ

      -
      -

      ʾ2-7 ޼ʾ

      -

      ޿Խiframe,ôǶ׿ܶص,ʹйҲ
      - ע:Javascript޷Խframeset,My97ڿؼ޿Խiframe,κεframesetʹiframe

      - -
      -
    14. -
    15. - -

      ݸʽΪyyyʽʱ,ݲyearOffset(Ĭֵ1911Ԫ),ʵ

      -
      -

      ʾ2-8 ʾ

      -

      - -
      - <input type="text" id="d28" onClick="WdatePicker({dateFmt:'yyy/MM/dd'})"/>
      -
      - ע:ݸʽóyyyʱ,ڽȥһyearOffset(ĬֵΪ:1911),ʹĬֵ,IJ,ͨʽ

      -
      -
    16. -
    17. -

      ڿֵʱ,޸ijԺ,ֻҪťͿʵʱڵı༭

      -
      -

      ʾ2-9 ںʱı༭ʾ

      -

      ԳԶе·ݸΪ1,Ȼ,ᷢ 2000-02-29 01:00:00 Ϊ 2000-01-29 01:00:00
      - -

      -
      -
    18. -
    19. Ϊ̴ - -

      elֵthis,ʡ,еel:thisԲд
      - ڿΪdisabledʱ,ֹ(ѡ)
      - ûжonpicked¼,Զıonchange¼
      - ûжoncleared¼,ʱ,Զonchange¼

      -
    20. -
    21. - -

      readOnly,ָڿǷֻ
      - highLineWeekDay,ָǷĩ
      - isShowOthers,ָǷʾµ
      - class="Wdate"ͻѡұ߳ͼ

      -
    22. -
    -

    3. ԺԶƤ

    -

    4. ڷΧ

    -

    5. Զ¼

    -

    6. ѡ

    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.3.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.3.asp.htm deleted file mode 100644 index b5e71e7..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.3.asp.htm +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -My97ڿؼ ʾ ԺƤ My97 Datepicker Demo - - - - - - -
    -
    - -

    . ܼʾ

    -

    3. ԺԶƤ

    -
    -
      -
    1. ֧ - -

      ͨlang,Ϊÿڿؼ,ȻҲͨWdatePicker.jsȫֵ
      - б԰װ˵

      -
      -

      ʾ3-1 ʾ

      -

      : - -
      - <input id="d311" class="Wdate" type="text" onFocus="WdatePicker({lang:'zh-tw'})"/>

      -

      Ӣ: - -
      - <input id="d312" class="Wdate" type="text" onFocus="WdatePicker({lang:'en'})"/>

      -

      : - -
      - <input id="d313" class="Wdate" type="text" onFocus="WdatePicker({lang:'zh-cn'})"/>
      -
      - ע:Ĭlang='auto',Զѡ.
      -
      - :ܶĿ,й̶ѡ,ϣѡǿij,:̨ͨԵѡ,ʵʵǺ׵,My97Datepickerֶ֧ļ,cn_WdatePicker.js,en_WdatePicker.js(ע,WdatePicker.jsβ)ȵ,ЩWdatePicker.jsòͬĬ,Ƥ,ʽõIJ,Ȼҳϵͳ벻ͬxx_WdatePicker.js
      -

      -
      -
    2. -
    3. ԶͶ̬лƤ - - תƤ -

      ͨskin,ΪÿڿؼƤ,ȻҲͨWdatePicker.jsȫֵƤ
      - ƤбƤװ˵Ƥ

      -
      -

      ʾ3-2 Ƥʾ

      -

      ĬƤdefault: skin:'default'
      - -
      - <input id="d321" class="Wdate" type="text" onfocus="WdatePicker()"/>
      -
      - ע:WdatePickerskin='default',Դ˴ʡ,ͬ,WdatePickerskinó'whyGreen'ôڲָƤ¶ʹ'whyGreen'Ƥ

      -


      - whyGreenƤ: skin:'whyGreen'
      -
      - -
      - <input id="d322" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen'})"/>

      - ע:Ƥ,뵽Ƥ

      -
      -
    4. -
    -

    4. ڷΧ

    -

    5. Զ¼

    -

    6. ѡ

    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.4.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.4.asp.htm deleted file mode 100644 index dfbfbb0..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.4.asp.htm +++ /dev/null @@ -1,335 +0,0 @@ - - - - - - -My97ڿؼ ʾ ڷΧ My97 Datepicker Demo - - - - - - -
    -
    - -

    . ܼʾ

    -

    4. ڷΧ

    -
      -
    1. ̬
      - ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ -

      ԸͨminDate(С),maxDate()Ϊֵ̬,޶ڵķΧ

      -

      ʾ4-1-1 ڵķΧ 2006-09-102008-12-20

      -


      -<input id="d411" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen',minDate:'2006-09-10',maxDate:'2008-12-20'})"/>

      -
      -

      ʾ4-1-2 ڵķΧ 2008-3-8 11:30:00 2008-3-10 20:59:30

      -


      -<input type="text" class="Wdate" id="d412" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'2008-03-08 11:30:00',maxDate:'2008-03-10 20:59:30'})" value="2008-03-09 11:00:00"/>

      -
      -

      ʾ4-1-3 ڵķΧ 20082 200810

      -


      -<input type="text" class="Wdate" id="d413" onfocus="WdatePicker({dateFmt:'yyyyM',minDate:'2008-2',maxDate:'2008-10'})"/>

      -
      -

      ʾ4-1-4 ڵķΧ 8:00:00 11:30:00

      -


      -<input type="text" class="Wdate" id="d414" onfocus="WdatePicker({dateFmt:'H:mm:ss',minDate:'8:00:00',maxDate:'11:30:00'})"/>

      -
    2. -
    3. ̬
      - ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ -

      ͨϵͳĶ̬,%y(ǰ),%M(ǰ)޶ڷΧ,㻹ͨ{}бʽ,:{%d+1}:ʾ
      -
      - ̬

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ʽ˵
      %y ǰ
      %M ǰ
      %d ǰ
      %ldһ
      %H ǰʱ
      %m ǰ
      %s ǰ
      {}ʽ,:{%d+1}:ʾ
      #F{}{}֮ǺдԶJS
      -
      -

      ʾ4-2-1 ֻѡǰ()

      -


      -<input id="d421" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})"/>

      -
      -
      -

      ʾ4-2-2 ʹʽ ֻѡԺ()

      -


      -<input id="d422" class="Wdate" type="text" onfocus="WdatePicker({minDate:'%y-%M-{%d+1}'})"/>

      -
      -
      -

      ʾ4-2-3 ֻѡµ1һ

      -


      -<input id="d423" class="Wdate" type="text" onfocus="WdatePicker({minDate:'%y-%M-01',maxDate:'%y-%M-%ld'})"/>

      -
      -
      -

      ʾ4-2-4 ֻѡ7:00:0021:00:00

      -


      -<input id="d424" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyy-M-d H:mm:ss',minDate:'%y-%M-%d 7:00:00',maxDate:'%y-%M-{%d+1} 21:00:00'})"/>

      -
      -
      -

      ʾ4-2-5 ʹʽ ֻѡ 20Сʱǰ 30Сʱ

      -


      -<input id="d425" class="Wdate" type="text" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'%y-%M-%d {%H-20}:%m:%s',maxDate:'%y-%M-%d {%H+30}:%m:%s'})"/>

      -
      -
    4. -
    5. űԶ
      - ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ -

      ϵͳṩ$dp.$D$dp.$DVAPI,㻹ͨ #F{} ԶĽű,κ

      -

      ʾ4-3-1 ǰڲܴںڶܴ 2020-10-01

      -

      ͬЧڴ - - - -
      - <input id="d4311" class="Wdate" type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4312\')||\'2020-10-01\'}'})"/>
      -<input id="d4312" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4311\')}',maxDate:'2020-10-01'})"/>
      -
      - ע:
      - ڵڸʽͬ
      -
      $dp.$ ൱ document.getElementById .
      -ôΪʲô ' ʹ \' ? Ϊ " ' Χĺʹ,ʹת \ ,ʾJS﷨.
      -طʹʱע \' ij " ' ʹ.
      -
      -#F{$dp.$D(\'d4312\')||\'2020-10-01\'} - ʾ d4312 Ϊʱ, 2020-10-01 ֵΪֵ
      -

      -
      -

      ʾ4-3-2 ǰ+3 ܴ

      -

      ڴ - - - -
      -<input type="text" class="Wdate" id="d4321" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4322\',{d:-3});}'})"/>
      -<input type="text" class="Wdate" id="d4322" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4321\',{d:3});}'})"/>
      -
      - ʹ $dp.$D Խڿеֵ,϶ڲ:
      -: id={ַ}Ҫıidֵ , obj={}ڲ
      -ڲ÷:
      -y,M,d,H,m,sֱʱ
      -
      -Ϊʱ,ʾֱȡֵ,(ʾ4-3-1еIJǿյ)
      -{M:5,d:7} ʾ 7
      -{y:1,d:-3} ʾ 13
      -{d:1,H:1} ʾһ1Сʱ

      -
      -

      ʾ4-3-3 ǰ+32 ܴ ǰڶܴ 2020-4-3ȥ32 ܴ 2020-4-3

      -

      סڴ - - - -
      -<input type="text" class="Wdate" id="d4331" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4332\',{M:-3,d:-2})||$dp.$DV(\'2020-4-3\',{M:-3,d:-2})}'})"/>
      -<input type="text" class="Wdate" id="d4332" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4331\',{M:3,d:2});}',maxDate:'2020-4-3'})"/>
      -
      -ע:
      -
      #F{$dp.$D(\'d4332\',{M:-3,d:-2}) || $dp.$DV(\'2020-4-3\',{M:-3,d:-2})}
      -ʾ d4332 Ϊʱ, $dp.$DV(\'2020-4-3\',{M:-3,d:-2})} ֵΪֵ

      -

      ʹ $dp.$DV Խʽֵ,϶ڲ:
      - : value={ַ}Ҫֵ , obj={}ڲ
      - ÷ͬ $dp.$D , $dp.$DV(\'2020-4-3\',{M:-3,d:-2}) ʾ 2020-4-3ȥ32

      -
      -

      ʾ4-3-4 JS,κҪ

      -

      Զתɵһ,Ȼ,ʾûʵʵ;,ֻΪʾĿ
      - - -
      -<script>
      -//һ
      -function randomDate(){
      -var Y = 2000 + Math.round(Math.random() * 10);
      -var M = 1 + Math.round(Math.random() * 11);
      -var D = 1 + Math.round(Math.random() * 27);
      -return Y+'-'+M+'-'+D;
      -}
      -</script>
      -<input type="text" class="Wdate" id="d434" onFocus="var date=randomDate();WdatePicker({minDate:date,maxDate:date})"/>

      -
      -
    6. -
    7. Ч -

      ʹô˹ܽӦ,:disabledDays (06 ֱ )

      -

      ʾ4-4-1 Ӧ

      -


      -<input id="d441" type="text" class="Wdate" onFocus="WdatePicker({disabledDays:[6]})"/>

      -
      -

      ʾ4-4-2 Ӧ

      -


      - <input id="d442" type="text" class="Wdate" onFocus="WdatePicker({disabledDays:[0,6]})"/>

      -
      -
    8. -
    9. Ч
      - ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ -

      ʹô˹ܽ,ָһ,ֻҪϤʽ,Ծ鷢

      - ÷(ƥ):
      -Ϥʽ,ƥ÷
      -Ϥ,Բοijʾ
      -['2008-02-01','2008-02-29'] ʾ 2008-02-01 2008-02-29
      -['2008-..-01','2008-02-29'] ʾ 2008-·-01 2008-02-29
      -['200[0-8]]-02-01','2008-02-29'] ʾ [20002008]-02-01 2008-02-29
      -['^2006'] ʾ 2006

      -

      ,ʹ %y %M %d %H %m %s ȱ, ÷̬ͬ ע:%ldʹ
      - ['....-..-01','%y-%M-%d'] ʾ ݺ·ݵĵһͽ
      - ['%y-%M-{%d-1}','%y-%M-{%d+1}'] ʾ

      -

      Ȼ,˿,ʱ
      - ['....-..-.. 10\:00\:00'] ʾ ÿ10 (ע : Ҫ ʹ \: )

      -

      ٶ,鷢ܰ!

      -
      -

      ʾ4-5-1 ÿ·ݵ 5 15 25

      -


      -<input id="d451" type="text" class="Wdate" onFocus="WdatePicker({disabledDates:['5$']})"/>
      -
      -ע -:'5$' ʾ 5 β ע $ ÷

      -
      -

      ʾ4-5-2 2000-01-01

      -


      -<input id="d452" type="text" class="Wdate" onFocus="WdatePicker({disabledDates:['^19']})"/>
      -
      - ע:'^19' ʾ 19 ͷ ע ^ ÷
      - Ȼ,ʹminDateʵƵĹ Ҫ ʾ ^ ÷

      -
      -

      ʾ4-5-3 min/maxDateʹ,԰ѿѡڷָɶ

      -

      ʾ¿ڷָ ֱ: 1-3 8-10 16-24 26,27 29-ĩ
      -
      -<input id="d453" type="text" class="Wdate" onFocus="WdatePicker({minDate:'%y-%M-01',maxDate:'%y-%M-%ld',disabledDates:['0[4-7]$','1[1-5]$','2[58]$']})"/>

      -
      -

      ʾ4-5-4 min/maxDate disabledDays disabledDates ʹ ʹҪdz̵Ҳ

      -


      -<input id="d454" type="text" class="Wdate" onFocus="WdatePicker({minDate:'%y-%M-01',maxDate:'%y-%M-%ld',disabledDates:['0[4-7]$','1[1-5]$','2[58]$'],disabledDays:[1,3,6]})"/>

      -
      -

      ʾ4-5-5 ǰһСʱͺһСʱʱ ʹ %y %M %d %H %m %s ȱ

      -

      Сʱʱ,ֵᷢȻʱӦǰһСʱͺһСʱǻɫ
      - -
      - <input id="d2a25" type="text" class="Wdate" onFocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',disabledDates:['%y-%M-%d {%H-1}\:..\:..','%y-%M-%d {%H+1}\:..\:..']})"/>
      -
      - ע:%y %M %d̬

      -
      -

      ʾ4-5-6 #F{}Ҳǿʹõ

      -

      ʾԶ庯 0-23еκһСʱ
      - Сʱѡ,ᷢһСʱõ,ÿνõСʱͬ
      - - -
      -<script>
      -function randomH(){
      -//һ 0-23
      -var H = Math.round(Math.random() * 23);
      -if(H<10) H='0'+H;
      -// '^' +
      -return '^'+H;
      -}
      -</script>
      -<input type="text" class="Wdate" id="d456" onFocus="WdatePicker({dateFmt:'HH:mm:ss',disabledDates:['#F{randomH()}']})"/>

      -
    10. -
    11. Ч -

      ʹЧڿԺܷĽòõ,ֻҪٲڵ,ЧڵĹܾͷdzʺ.
      - ؼ: opposite ĬΪfalse, Ϊtrueʱ,ЧڱЧ,ԶЧ,첻

      -
      -

      ʾ4-6 ֻ ÿ·ݵ 5 15 25

      -


      -<input id="d46" type="text" class="Wdate" onFocus="WdatePicker({opposite:true,disabledDates:['5$']})"/>
      -
      -ע -:'5$' ʾ 5 β ע $ ÷

      -
      -
    12. -
    13. -

      ڵ÷ȫЧЧȫͬ,oppositeԶЧ
      -
      - ؼ:
      - specialDays (06 ֱ ) ÷ͬЧ
      - specialDates ÷ͬЧ,ǶʱЧ

      -
      -

      ʾ4-7-1 ÿ һ

      -


      -<input id="d471" type="text" class="Wdate" onFocus="WdatePicker({specialDays:[1,5]})"/>

      -
      -
      -

      ʾ4-7-2 ÿ 1 15

      -


      -<input id="d472" type="text" class="Wdate" onFocus="WdatePicker({specialDates:['....-..-01','....-..-15']})"/>

      -
      -
    14. -
    -

    5. Զ¼

    -

    6. ѡ

    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp-.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp-.htm deleted file mode 100644 index 1397e1d..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp-.htm +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - -My97ڿؼ ʾ Զ¼ My97 Datepicker Demo - - - - - - -
    -
    - -

    . ܼʾ

    -

    5. Զ¼

    -
      -
    1. Զ¼ - -

      ҪһЩӵIJ,Ҳص,ڿؼԴԶ¼.,㻹Զ¼еṩAPIչ,ԿͨٵĴ㼰Ի.
      -
      - ע漸Ҫָ,ı̴ܶ
      - this: ָı
      - dp: ָ$dp
      - dp.cal: ָڿؼ

      - ע:ԭͱʹ function(dp){} ģʽ,,ںڲſʹdp

      -
    2. -
    3. onpicking onpicked ¼ - -
      -

      ʾ5-2-1 onpicking¼ʾ

      -

      - -
      - <input type="text" id="5421" onFocus="WdatePicker({onpicking:function(dp){if(!confirm('ڿԭֵΪ: '+dp.cal.getDateStr()+', Ҫѡֵ:' + dp.cal.getNewDateStr() + '?')) return true;}})" class="Wdate"/>
      -
      - ע:ע⵽dp.cal.getDateStrdp.cal.getNewDateStr÷? ú

      -
      -
      -

      ʾ5-2-2 ʹonpickedʵѡ

      -

      ѡһڵʱ,ڶѡԶ
      - ڴ: - - - -
      - ע:һؼд
      - <input id="d5221" class="Wdate" type="text" onFocus="var d5222=$dp.$('d5222');WdatePicker({onpicked:function(){d5222.focus();},maxDate:'#F{$dp.$D(\'d5222\')}'})"/>
      -
      -<input id="d5222" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d5221\')}'})"/>
      -
      - ע:$dp.$һú,൱document.getElementById

      -
      -
      -

      ʾ5-2-3 ѡֵֵı

      -

      - - - - - - - - ʱ - - - - - - - -
      - <input type="text" id="d523_y" size="5"/> -
      - <input type="text" id="d523_M" size="3"/> -
      - <input type="text" id="d523_d" size="3"/> -
      - <input type="text" id="d523_HH" size="3"/> - ʱ
      - <input type="text" id="d523_mm" size="3"/> -
      - <input type="text" id="d523_ss" size="3"/> -
      - <img onclick="WdatePicker({el:'d523',dateFmt:'yyyy-MM-dd HH:mm:ss',onpicked:pickedFunc})" src="../../../skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer"/>
      - <script>
      - function pickedFunc(){
      - $dp.$('d523_y').value=$dp.cal.getP('y');
      - $dp.$('d523_M').value=$dp.cal.getP('M');
      - $dp.$('d523_d').value=$dp.cal.getP('d');
      - $dp.$('d523_HH').value=$dp.cal.getP('H');
      - $dp.$('d523_mm').value=$dp.cal.getP('m');
      - $dp.$('d523_ss').value=$dp.cal.getP('s');
      - }
      - </script>
      -
      - ע:el:'d523',㲻Ҫd523,԰ijhidden,elԱָ
      - $dp.$$dp.cal.getPú

      -
      -
    4. -
    5. onclearing oncleared ¼ - -
      -

      ʾ5-3-1 ʹonclearing¼ȡղ

      -

      - -
      - <input type="text" class="Wdate" id="d531" onFocus="WdatePicker({onclearing:function(){if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?'))return true;}})"/>
      -
      - ע:onclearingtrueʱ,ϵͳ¼ȡ,
      - û$dp,ԺԭʡԲdp

      -
      -
      -

      ʾ5-3-2 ʹcalȡõǰѡ·(ʹ dp.cal)

      -

      - -
      - <input type="text" class="Wdate" id="d532" onFocus="WdatePicker({oncleared:function(dp){alert('ǰѡ·Ϊ:'+dp.cal.date.M);}})"/>

      -
      -
      -

      ʾ5-3-3 ۺʹ¼

      -

      - - -
      - <script>
      - function d533_focus(element){
      - var clearingFunc = function(){ - if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?')) return true; - }
      - var clearedFunc = function(){ - alert('ڿѱ'); - }
      - WdatePicker({el:element,onclearing:clearingFunc,oncleared:clearedFunc})
      - }
      - </script>
      - <input type="text" class="Wdate" id="d533" onFocus="d533_focus(this)"/>

      -
      -
    6. -
    7. ʱ changingchanged

      ʱ붼жӦchangingchanged¼,ֱ:
      - ychanging ychanged
      - Mchanging Mchanged
      - dchanging dchanged
      - Hchanging Hchanged
      - mchanging mchanged
      - schanging schanged
      -

      -
      -

      ʾ5-4-1 ոıʱϢ

      -

      - - -
      - <input type="text" class="Wdate" onFocus="WdatePicker({dchanging:cDayFunc, Mchanging:cMonthFunc, ychanging:cYearFunc, dchanged:cDayFunc, Mchanged:cMonthFunc, ychanged:cYearFunc})"/>
      - <script>
      - function cDayFunc(){
      -cFunc('d');
      -}
      -function cMonthFunc(){
      -cFunc('M');
      -}
      -function cYearFunc(){
      -cFunc('y');
      -}
      -function cFunc(who){
      -var str,p,c = $dp.cal;
      -if(who=='y'){
      -str='';
      -p='y';
      -}
      -else if(who=='M'){
      -str='·';
      -p='M';
      -}
      -else if(who=='d'){
      -str='';
      -p='d';
      -}
      -alert(str+'ı!\n$dp.cal.date.'+p+'='+c.date[p]+'\n$dp.cal.newdate.'+p+'='+c.newdate[p]);
      -}
      -</script>

      -
      - õ $dp.cal.date $dp.cal.newdate ,ܴ﷢ǵIJ֮ͬ?
      - йԵú -

      -
      -


      -

      -
    8. -
    -

    6. ѡ

    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp.htm deleted file mode 100644 index 1397e1d..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.5.asp.htm +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - -My97ڿؼ ʾ Զ¼ My97 Datepicker Demo - - - - - - -
    -
    - -

    . ܼʾ

    -

    5. Զ¼

    -
      -
    1. Զ¼ - -

      ҪһЩӵIJ,Ҳص,ڿؼԴԶ¼.,㻹Զ¼еṩAPIչ,ԿͨٵĴ㼰Ի.
      -
      - ע漸Ҫָ,ı̴ܶ
      - this: ָı
      - dp: ָ$dp
      - dp.cal: ָڿؼ

      - ע:ԭͱʹ function(dp){} ģʽ,,ںڲſʹdp

      -
    2. -
    3. onpicking onpicked ¼ - -
      -

      ʾ5-2-1 onpicking¼ʾ

      -

      - -
      - <input type="text" id="5421" onFocus="WdatePicker({onpicking:function(dp){if(!confirm('ڿԭֵΪ: '+dp.cal.getDateStr()+', Ҫѡֵ:' + dp.cal.getNewDateStr() + '?')) return true;}})" class="Wdate"/>
      -
      - ע:ע⵽dp.cal.getDateStrdp.cal.getNewDateStr÷? ú

      -
      -
      -

      ʾ5-2-2 ʹonpickedʵѡ

      -

      ѡһڵʱ,ڶѡԶ
      - ڴ: - - - -
      - ע:һؼд
      - <input id="d5221" class="Wdate" type="text" onFocus="var d5222=$dp.$('d5222');WdatePicker({onpicked:function(){d5222.focus();},maxDate:'#F{$dp.$D(\'d5222\')}'})"/>
      -
      -<input id="d5222" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d5221\')}'})"/>
      -
      - ע:$dp.$һú,൱document.getElementById

      -
      -
      -

      ʾ5-2-3 ѡֵֵı

      -

      - - - - - - - - ʱ - - - - - - - -
      - <input type="text" id="d523_y" size="5"/> -
      - <input type="text" id="d523_M" size="3"/> -
      - <input type="text" id="d523_d" size="3"/> -
      - <input type="text" id="d523_HH" size="3"/> - ʱ
      - <input type="text" id="d523_mm" size="3"/> -
      - <input type="text" id="d523_ss" size="3"/> -
      - <img onclick="WdatePicker({el:'d523',dateFmt:'yyyy-MM-dd HH:mm:ss',onpicked:pickedFunc})" src="../../../skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer"/>
      - <script>
      - function pickedFunc(){
      - $dp.$('d523_y').value=$dp.cal.getP('y');
      - $dp.$('d523_M').value=$dp.cal.getP('M');
      - $dp.$('d523_d').value=$dp.cal.getP('d');
      - $dp.$('d523_HH').value=$dp.cal.getP('H');
      - $dp.$('d523_mm').value=$dp.cal.getP('m');
      - $dp.$('d523_ss').value=$dp.cal.getP('s');
      - }
      - </script>
      -
      - ע:el:'d523',㲻Ҫd523,԰ijhidden,elԱָ
      - $dp.$$dp.cal.getPú

      -
      -
    4. -
    5. onclearing oncleared ¼ - -
      -

      ʾ5-3-1 ʹonclearing¼ȡղ

      -

      - -
      - <input type="text" class="Wdate" id="d531" onFocus="WdatePicker({onclearing:function(){if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?'))return true;}})"/>
      -
      - ע:onclearingtrueʱ,ϵͳ¼ȡ,
      - û$dp,ԺԭʡԲdp

      -
      -
      -

      ʾ5-3-2 ʹcalȡõǰѡ·(ʹ dp.cal)

      -

      - -
      - <input type="text" class="Wdate" id="d532" onFocus="WdatePicker({oncleared:function(dp){alert('ǰѡ·Ϊ:'+dp.cal.date.M);}})"/>

      -
      -
      -

      ʾ5-3-3 ۺʹ¼

      -

      - - -
      - <script>
      - function d533_focus(element){
      - var clearingFunc = function(){ - if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?')) return true; - }
      - var clearedFunc = function(){ - alert('ڿѱ'); - }
      - WdatePicker({el:element,onclearing:clearingFunc,oncleared:clearedFunc})
      - }
      - </script>
      - <input type="text" class="Wdate" id="d533" onFocus="d533_focus(this)"/>

      -
      -
    6. -
    7. ʱ changingchanged

      ʱ붼жӦchangingchanged¼,ֱ:
      - ychanging ychanged
      - Mchanging Mchanged
      - dchanging dchanged
      - Hchanging Hchanged
      - mchanging mchanged
      - schanging schanged
      -

      -
      -

      ʾ5-4-1 ոıʱϢ

      -

      - - -
      - <input type="text" class="Wdate" onFocus="WdatePicker({dchanging:cDayFunc, Mchanging:cMonthFunc, ychanging:cYearFunc, dchanged:cDayFunc, Mchanged:cMonthFunc, ychanged:cYearFunc})"/>
      - <script>
      - function cDayFunc(){
      -cFunc('d');
      -}
      -function cMonthFunc(){
      -cFunc('M');
      -}
      -function cYearFunc(){
      -cFunc('y');
      -}
      -function cFunc(who){
      -var str,p,c = $dp.cal;
      -if(who=='y'){
      -str='';
      -p='y';
      -}
      -else if(who=='M'){
      -str='·';
      -p='M';
      -}
      -else if(who=='d'){
      -str='';
      -p='d';
      -}
      -alert(str+'ı!\n$dp.cal.date.'+p+'='+c.date[p]+'\n$dp.cal.newdate.'+p+'='+c.newdate[p]);
      -}
      -</script>

      -
      - õ $dp.cal.date $dp.cal.newdate ,ܴ﷢ǵIJ֮ͬ?
      - йԵú -

      -
      -


      -

      -
    8. -
    -

    6. ѡ

    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.6.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.6.asp.htm deleted file mode 100644 index adf9a8b..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/2.6.asp.htm +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - -My97ڿؼ ʾ My97 Datepicker Demo - - - - - - -
    -
    - -

    . ܼʾ

    -

    6. ѡ

    -

    ˹ָ5õ,Էûѡ,ָ,ϵͳԶ
    - :
    - qsEnabled Ƿÿѡ, ע:ڸʽﲻ d() Ԫʱ,ѡһֱʾ,մԿ
    - quickSel ѡ,Դ5ѡ,ڸʽͬmin/maxDate
    -
    - ע:
    -
    ڸʽ realDateFmt realTimeFmt ƥ
    - ʹþֵ̬,ʹö̬(:%y,%Mֱʾǰ)
    -

    -
    -

    ʾ6-1 2̬

    -

    - -
    - <input class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyyMMdd',qsEnabled:true,quickSel:['2000-1-10','2000-2-20']})"/>
    -
    - ע:ݲ5ʱ,ϵͳԶȫ

    -
    -
    -

    ʾ6-2 2̬,1̬

    -

    - -
    - <input type="text" class="Wdate" onFocus="WdatePicker({dateFmt:'yyyyMMdd',qsEnabled:true,quickSel:['2000-10-01','%y-%M-01','%y-%M-%ld']})"/>
    -
    - ע:ݲ5ʱ,ϵͳԶȫ

    -
    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/3.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/3.asp.htm deleted file mode 100644 index 1abde53..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/3.asp.htm +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - -My97ڿؼ ʾ ˵ My97 Datepicker Demo - - - - - - -
    -
    - -

    . ˵

    -

    1.

    -
      -
    1. Ա - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Ĭֵ˵
      ̬:ֻWdatePicker.js,һ,޸ľ̬Եֵ
      $wdatebooltrueǷԶWdate Ϊtrueʱ,ֱWdatePicker.jsҳʹ class="Wdate"
      - WdateskinĿ¼µWdatePicker.cssļж
      - ʹĬֵ
      $dpPathstring''Ƿʾָľλ,һΪռ(Զ),Ϊֹ³򴴽õ
      - ÷:
      - ,httpеĵַΪ http://localhost/proName/My97DatePicker/
      - $dpPath = '/proName/My97DatePicker/';
      - ʹĬֵ
      $crossFramebooltrueǷ,һΪtrue,ʱԽ˹ܹر
      :WdatePicker
      elElement StringnullָһؼؼID,valueinnerHTML(input,textarea,span,div,pȱǩ),û洢ʾֵ(ҲdateFmtʽֵ)
      velElement StringnullָһؼؼID,value(input),ڴ洢ʵֵ(ҲrealDateFmtrealTimeFmtʽֵ)
      doubleCalendarboolfalseǷ˫ģʽ,Ϊtrue,򵯳ͬʱʾ2µڿ
      enableKeyboardbooltrue̿ƿ
      enableInputMaskbooltrueı뿪
      autoUpdateOnChangedboolnull޸ʱԪʱ,Զµel,Ĭǹرյ(:ҪȷڲŸ)
      - Ϊfalseʱ Զ
      -Ϊtrueʱ Զ
      -Ϊnullʱ(Ĭֵ) ԪҲȷťʱ Ϊfalse,Ϊtrue
      weekMethodstringISO8601㷨ͬĵطһЩ
      -㷨
      -1. ISO8601:涨һΪһ,Ĭֵ
      -2. MSExcel:11ڵ
      -
      -:http://en.wikipedia.org/wiki/ISO_week_date
      positionobject{} ѡʾλ
      - ע:굥λpx,Եǰ(ܹӰ),ĬϵͳҳСԶѡ
      - :
      - {left:100,top:50}ʾ̶[100,50]
      - {top:50}ʾԶ,ָΪ 50
      - {left:100}ʾԶ,ָΪ 100
      - οʾ
      langstring'auto'ֵΪ'auto'ʱ ԶݿͻԶѡ
      - ֵΪ ʱ langListѡӦ
      - Բο
      skinstring'default'Ƥ ĬԴ defaultwhyGreenƤ
      - cssǿĻ,ԼƤ
      - ԲοƤ
      dateFmtstring'yyyy-MM-dd'ʾʽ
      - ԲοԶʽ
      realDateFmtstring'yyyy-MM-dd'ʶ,ڸʽ
      - Ч(disabledDates),(maxDate),С(minDate)Լڶƥ
      - ʹĬֵ
      realTimeFmtstring'HH:mm:ss'
      realFullFmtstring'%Date %Time'
      minDatestring'1900-01-01 00:00:00'С(עҪrealƥ)
      maxDatestring'2099-12-31 23:59:59'(עҪrealƥ)
      startDatestring'' ʼ,ȵڿʱʾʼ
      - Ϊʱ,ʹýΪʼ(Ĭֵ)
      - ʹôΪʼ(עҪrealƥ)
      - Բοʼʾ
      firstDayOfWeekint0ܵĵһ 0ʾ 1ʾһ
      isShowWeekboolfalseǷʾ
      - Բοʾʾ
      highLineWeekDaybooltrueǷʾ
      isShowClearbooltrueǷʾհť
      isShowTodaybooltrueǷʾ찴ť
      isShowOthersbooltrueΪtrueʱ,һпհ״ʾµڣĩпհ״ʾµ,ʾ
      readOnlyboolfalseǷֻ
      errDealModeint0ģʽ 3ģʽ 0 - ʾ 1 - Զ 2 -
      autoPickDateboolnullΪfalseʱ ڵʱԶ,Ҫͨȷ
      - Ϊtrueʱ ڼɷֵ
      - Ϊnullʱ(Ƽʹ) ʱΪfalse Ϊtrue
      qsEnabledbooltrueǷÿѡ
      autoShowQSboolfalseǷĬʾѡ
      quickSelArraynullѡ,Դ5ѡ
      - ע:ڸʽ realDateFmt realTimeFmt realFullFmt ƥ
      - Բοѡʾ
      disabledDaysArraynullʹô˹ܽӦ
      - 06 ֱ
      - ԲοЧʾ
      disabledDatesArraynullʹô˹ָܽһ
      - ԲοЧʾ
      oppositeboolfalseĬΪfalse, Ϊtrueʱ,ЧڱЧ
      - ע:ԶЧ첻
      - ԲοЧʾ
      specialDatesArraynull,ָڽиʾ
      - Բοʾ
      specialDaysArraynull,ʹô˹ܽӦڽиʾ
      - 06 ֱ
      - Բοʾ
      onpickingfunctionnullĸΪ¼
      - ԲοԶ¼ʾ
      onpickedfunctionnull
      onclearingfunctionnull
      onclearedfunctionnull
      ychanging ychanged
      -Mchanging Mchanged
      -dchanging dchanged
      -Hchanging Hchanged
      -mchanging mchanged
      -schanging schanged
      functionnull(4.6Beta3)
      -
      - y M d H m s ֱʾʱ
      - changing ¼Ըı֮ǰ
      - changed ¼Ըı֮
      -
      - Բοʾ5-4-1
      -
    2. -
    3. ȫĬֵ -

      ͨWdatePicker.jsԿԱÿεöֵ,Ϊɴܶ෽.
      - ĬMy97ΪÿԶĬֵ,ЩĬֵWdatePicker.js޸ĵ
      - Ը˵ϲøЩֵ
      -
      - ȽϲϲĬϵƤdefault ϲ whyGreen Ƥ,
      - ֱWdatePicker.jsskinֵΪ whyGreen
      - ,ÿεÿؼʱ򶼴 skin:'whyGreen'
      - ѧ?

      -
    4. -
    5. õؼ -

      ڿؼʹ onfocus onclick ¼WdatePickerڿؼ
      - WdatePicker({}){}еݶֻԵǰʵЧ,Աе
      - Щ,ﵽ
      - My97ڿؼⷽ÷dz.

      -
    6. -
    7. ÿл -

      öWdatePicker.jsļ, -cn_WdatePicker.js,en_WdatePicker.js,simple_WdatePicker.js
      - ڲͬҳ벻ͬ WdatePicker.js ﵽÿлĿ.
      - ע:ļ _WdatePicker.js(Сд) Ϊ׺, <yourname>_WdatePicker.js

      -
    8. -
    -

    2.

    -
      -
    1. б

      My97DatePickerĿ¼иconfig.js(4.8ԺWdatePicker.js),жδ:
      - var langList =
      - [
      -{name:'en', charset:'UTF-8'},
      -{name:'zh-cn', charset:'gb2312'},
      -{name:'zh-tw', charset:'GBK'}
      -];
      -
      -б,ÿnamecharset.
      -name ʾԵ(ַͬ),õʱ,langֻбе,Զصһ
      -charset ʾӦĿ¼µjsļӦıʽ

      -
    2. -
    3. ԰װ˵ -

      ʵ:
      - 1 ļ lang Ŀ¼
      - 2 config.js б

      -
    4. -
    -

    3. Ƥ

    -
      -
    1. Ƥб -

      My97DatePickerĿ¼иconfig.js(4.8ԺWdatePicker.js),жδ: -
      - var skinList =
      - [
      -{name:'default', charset:'gb2312'},
      -{name:'whyGreen', charset:'gb2312'},
      -{name:'blue', charset:'gb2312'},
      -{name:'simple', charset:'gb2312'}
      -];
      -
      - Ƥб,ÿnamecharset.
      - name ʾƤ,õʱ,skinֻбе,Զصһ
      - charset ʾӦƤĿ¼µcssļ:datepicker.cssӦıʽ

      -
    2. -
    3. Ƥװ˵

      ʵ:
      -1 Ƥļ skin Ŀ¼
      -2 config.js Ƥб -
      -
      - ע:װƤӰ,һֻװԼʹõƤ,3±Ƚ

      -
    4. -
    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp-.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp-.htm deleted file mode 100644 index de570c0..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp-.htm +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - -My97ڿؼ ʾ 湦 My97 Datepicker Demo - - - - - - -
    -
    - -

    һ.

    -

    . ܼʾ

    -

    . ˵

    -

    . ʹ

    -

    1. ʹøڿؼļмJS(һļ,ļԶ,ɾ), <script language="javascript" type="text/javascript" src="datepicker/WdatePicker.js"></script>
    - ע:src="datepicker/WdatePicker.js" ʵı·
    -
    - 2. WdatePicker
    - WdatePicker ÷:
    -
    - ,jsǺ˽Ļ
    һҪ࿴ĵ
    - ÿһʾʾ涼ش, ؼֱ,ؼֵúֱ Ӧú׿
    -
    - һˮ׼
    -
    ϣܴͷβѹܽܺúÿһ,󲿷ֹ㶼
    -
    - Ǹ
    - ͨ˵ú

    -

    . ú

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ֵ
    $dp.showvoidȫʾѡ
    $dp.hidevoidȫѡ
    $dp.$DStringȫid [string]: ID
    - arg [object]: ڲ,ó
    - {y:[ֵ],M:[ֵ],d:[ֵ],H:[ֵ],m:[ֵ],s:[ֵ]}
    - y,M,d,H,m,s ֱ ʱ
    - {M:3,d:7} ʾ 37
    - {d:1,H:1} ʾ11Сʱ
    idӦڿеַ,϶ڲ,ʹrealʽڴ
    - ο ʾ 4-3-2
    $dp.$DVStringȫv [string]: ַ
    - arg [object]: ͬarg
    ַ,϶ڲ,ʹrealʽڴ
    - ο ʾ 4-3-3
    ºֻ¼Զ庯Ч
    $dp.cal.getPString¼functionp [string]: yMdHmswWDֱ,,,ʱ,,,(0-6),(1-52),(һ-)
    - f [string]: format ʽַ
    - ÷ο 1.4 Զʽ
    ָԱʽַʽֵ[],changing,picking,clearing¼зѡǰֵ
    - ο ʾ 1-2-2
    $dp.cal.getDateStrString ¼functionf [string]: ʽַ,ΪʱʹdateFmt
    ָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡǰֵ
    $dp.cal.getNewPString¼function÷ͬ$dp.cal.getPָԱʽַʽֵ[],changing,picking,clearing¼зѡֵ
    $dp.cal.getNewDateStrString¼function÷ͬ$dp.cal.getDateStrָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡֵ
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    ֵ
    $dp.cal.dateobject¼function$dp.cal.date.y:
    - $dp.cal.date.M:
    - $dp.cal.date.d:
    - $dp.cal.date.H: ʱ
    - $dp.cal.date.m:
    - $dp.cal.date.s:
    changing,picking,clearing¼зѡǰڶ
    $dp.cal.newdateobject¼function÷ͬ$dp.cal.datechanging,picking,clearing¼зѡڶ
    -

    . ѽ

    -

    κ,Ȳο ֧
    - Ҳ,ֱblog,ͨϵʽϵ

    -

    . ϵMy97

    -

    * ʹù,иõĽ
    - * ӭ
    - * BLOG: http://my97.cnblogs.com
    - * MAIL: support$my97.net($@)
    - * blogԻEmail,ϸ˵,ܶⶼΪûϸ˵µ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp.htm deleted file mode 100644 index de570c0..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/999.asp.htm +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - -My97ڿؼ ʾ 湦 My97 Datepicker Demo - - - - - - -
    -
    - -

    һ.

    -

    . ܼʾ

    -

    . ˵

    -

    . ʹ

    -

    1. ʹøڿؼļмJS(һļ,ļԶ,ɾ), <script language="javascript" type="text/javascript" src="datepicker/WdatePicker.js"></script>
    - ע:src="datepicker/WdatePicker.js" ʵı·
    -
    - 2. WdatePicker
    - WdatePicker ÷:
    -
    - ,jsǺ˽Ļ
    һҪ࿴ĵ
    - ÿһʾʾ涼ش, ؼֱ,ؼֵúֱ Ӧú׿
    -
    - һˮ׼
    -
    ϣܴͷβѹܽܺúÿһ,󲿷ֹ㶼
    -
    - Ǹ
    - ͨ˵ú

    -

    . ú

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ֵ
    $dp.showvoidȫʾѡ
    $dp.hidevoidȫѡ
    $dp.$DStringȫid [string]: ID
    - arg [object]: ڲ,ó
    - {y:[ֵ],M:[ֵ],d:[ֵ],H:[ֵ],m:[ֵ],s:[ֵ]}
    - y,M,d,H,m,s ֱ ʱ
    - {M:3,d:7} ʾ 37
    - {d:1,H:1} ʾ11Сʱ
    idӦڿеַ,϶ڲ,ʹrealʽڴ
    - ο ʾ 4-3-2
    $dp.$DVStringȫv [string]: ַ
    - arg [object]: ͬarg
    ַ,϶ڲ,ʹrealʽڴ
    - ο ʾ 4-3-3
    ºֻ¼Զ庯Ч
    $dp.cal.getPString¼functionp [string]: yMdHmswWDֱ,,,ʱ,,,(0-6),(1-52),(һ-)
    - f [string]: format ʽַ
    - ÷ο 1.4 Զʽ
    ָԱʽַʽֵ[],changing,picking,clearing¼зѡǰֵ
    - ο ʾ 1-2-2
    $dp.cal.getDateStrString ¼functionf [string]: ʽַ,ΪʱʹdateFmt
    ָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡǰֵ
    $dp.cal.getNewPString¼function÷ͬ$dp.cal.getPָԱʽַʽֵ[],changing,picking,clearing¼зѡֵ
    $dp.cal.getNewDateStrString¼function÷ͬ$dp.cal.getDateStrָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡֵ
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    ֵ
    $dp.cal.dateobject¼function$dp.cal.date.y:
    - $dp.cal.date.M:
    - $dp.cal.date.d:
    - $dp.cal.date.H: ʱ
    - $dp.cal.date.m:
    - $dp.cal.date.s:
    changing,picking,clearing¼зѡǰڶ
    $dp.cal.newdateobject¼function÷ͬ$dp.cal.datechanging,picking,clearing¼зѡڶ
    -

    . ѽ

    -

    κ,Ȳο ֧
    - Ҳ,ֱblog,ͨϵʽϵ

    -

    . ϵMy97

    -

    * ʹù,иõĽ
    - * ӭ
    - * BLOG: http://my97.cnblogs.com
    - * MAIL: support$my97.net($@)
    - * blogԻEmail,ϸ˵,ܶⶼΪûϸ˵µ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo.css b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo.css deleted file mode 100644 index 3e94f73..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo.css +++ /dev/null @@ -1,61 +0,0 @@ - -p,table { - font-weight:normal; -} -td { - padding:3px; - background-color:#ffffff; -} -th { - text-align:center; - padding:3px; - background-color:#ccc; -} -#content { - padding-left:50px; - padding-right:40px; -} -#content h2 { - font-size: 18px; - color: #1E9300; - padding-top:30px; - margin-bottom: 8px; -} -#content h2 a { - color: #1E9300; -} -#content h3 { - margin-top:24px;margin-bottom: 8px; FONT: bold 14px 宋体,tahoma,arial,sans-serif; COLOR:#0033CC; -} -#content h3 a { - color: #0033CC; -} -#content ul { - margin-left: 20px; -} -#content ol { - margin:16px 0px 8px 36px; FONT: bold 9pt 宋体,tahoma,arial,sans-serif; -} -#content ol li{ - margin-top:16px; -} -#content div { - margin-top:20px; - margin-bottom:10px; - border:#333 solid 1px; -} - -#content div h4 { - font-size:9pt; - padding:3px; - background:#EEE; - margin-bottom:5px; -} -#content div p { - padding:5px; -} - -.STYLE1 { - color: #FF0000; -} -.STYLE2 {color: #0000FF} \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe.htm deleted file mode 100644 index bc25181..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe.htm +++ /dev/null @@ -1,45 +0,0 @@ - - - - -My97 DatePicker 4.0 ʾ-1 - - - - -

    Ƕ1:

    -

    ʽΪ:yyyy-MM-dd HH:mm
    - -

    -

    - -

    -

     

    -

     

    -
    - -
    - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe2.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe2.htm deleted file mode 100644 index 5518778..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/demo_iframe2.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - -My97 DatePicker 4.0 ʾ-2 - - - - -

    Ƕ2:

    -

    - -

    -

    Ƕ2:

    - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/left.htm b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/left.htm deleted file mode 100644 index 5d0737c..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/left.htm +++ /dev/null @@ -1,120 +0,0 @@ - - - - - -My97 DatePicker ʾ - Ŀ¼ - - - - - -
    -
    -

    My97DatePicker ʾĵ

    -

    һ.

    - -

    . ܼʾ

    - -

    . ˵

    - -

    . ʹ

    -

    . ú

    -

    . ѽ

    -

    . ϵMy97

    -
    - - -
    -
    -
    - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/main.asp b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/main.asp deleted file mode 100644 index 60d79ca..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/main.asp +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -My97ڿؼ ʾ My97 Datepicker Demo - - - - - - -
    -
    -

    һ.

    -

    1.

    -

    Ŀǰİ汾:4.8

    -

    2. ע

    -
      -
    • My97DatePickerĿ¼һ,ƻĿ¼ṹ,Ҳɶļ,ԸĿ¼
    • -
    • My97DatePicker.htmDZļ,ɾ(4.8Ժ󲻴ڴļ)
    • -
    • Ŀ¼ļ;:
      - WdatePicker.js ļ,ڵõĵطʹøļ,ɶ,xx_WdatePicker.jsʽ
      - config.js ԺƤļ,(4.8ԺϲWdatePicker.js)
      - calendar.js ڿļ,
      - My97DatePicker.htm ʱҳļ,ɾ(4.8Ժ󲻴ڴļ)
      - Ŀ¼lang ļ,ԸҪļ
      - Ŀ¼skin Ƥļ,ԸҪƤļ
    • -
    • WdatePicker.js:$wdate=trueʱ,inputclass="Wdate"ͻѡұ߳ͼ,ϲʽ,԰class="Wdate"ȥ,Ҳͨ޸skinĿ¼µWdatePicker.cssļ޸ʽ
    • -
    -

    3. ֵ֧

    -

    IE 6.0+ , Firefox 2.0+ , Chrome, Opera 9.5+ , Safari 3.0+
    -

    -

     

    -

    ע:IE 8.0ֵ֧,IE8ʹ,ȡϵ,ظHTML

    -

    . ܼʾ

    -

    . ˵

    -

    . ʹ

    -
    -
    -
    -
    -
    -
    - - -
    - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic1.jpg b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic1.jpg deleted file mode 100644 index 53b61136a1f397d4a032eb81ba7e6e023af95ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10075 zcmdUVWmH_vvgjV%-7Pr5VQ>o}xHG_@!7V^=4?z=1aMu6{?(V_eA=qGpTd?2+3Gn!i zy?55Rcir{gzgPRu?y4^7+TB&v-TQI=aSgyzl2eoeKp+sH@bmzWOMo7Bbb+$7tHrB_)7=~8w(2$ z504ZdpOoy0kBo+bl9GakiRLe0Vq>6v0tPk~RwgDURu)c9Ha1Sqf3g4l<*^gMM+5qR zIz$jYfPfD|#0Ne00+axN_+;#px&HzrWJClM5b6_A6%RlFAs`_jp`)Q9Bcng{03jeE z;RDD7bcDP_^k6As28gDXTTpx#3g0U;mxSySM)SDp?#T^H*P5Aierc#h4vB!EyGL+s z-RYA!^1mtiKUMur9`X}O^vR?r*@);UNT~nl@YKX7pyMT!f*{drnz;nUO`Z^eUuk7` z@wvrMG4NN{)UKbJyFM-gScssf@gU*@lE9U_wz}T=_3scm?@eg5Fb*6oPizP?%hC5V za>=LOX12?Nrhjj`Q2AQpO9s`KgcK#nwPo^Ww@#BK=DQM;vuiUymWwmqBccacZi=t1 z;>hufKy>r$VCH1) zaN%6!%=za~NHb#wP)=iZ7QmD8K^7tpeNGYn>U3~X-UmZ%9`q|r^{3V{8Spc4B}8H} z5a<7)i6Cg0Jfth7s>Sp=XeWfxl)j*f>)Vm{i&nR&t%TllBV+lNM71Q*+Jd6#I+o`L z664Esm7svPUw#z_jBKp`O z9}ChS-&{?YIcSUyC)k6bBE_=8TAq)7oI~O*Y>ZM^x*}`V%t&ERk z00To=i~r!<^FN}`5+8vfu+Y$A>+tIyHl_Gwyo*mC&o>0}VTX>6bCO@+hvziE0iVc< zTyV;^#H+bznsBc*IiZ&!o6GMTk6(-*m}25R0;>WhH+D{^Gn>yS4^7;rxwmZ}988W1 zB%`t{MtAt9b#<-dHMxoRw78~HFnfz~(v=>N7h$j(dDxbK*L)GU;m((NbueF$pN^}Lq*a9@YN|kU6ra4xga%8|=K)=jA_8eG?Iica%E{s3 zBbAT>4<>vJ<8@400O$N|4}bRH`E&f;u)P(_c)dk~S~X;f@y|(ESObPl%!+tO$bEge zjJWnhIeN*mO}Z3;R?nAipn(j4eIOPHNAeGC$L*U(V6C6kH||irFeO01@Z9Ep^zKYE z7hE(FS2|D}d$pyuu{zQ573S#^@uT>9>TV~O18OeV@r=iyMu3Ab7w1ovmE>&iJ9+VCNT==#_3#&}O1q?Fw z&fd8clcLrYmo)rzVYje}?M_Z+Q%FW5RZ;f8i&r}w9dPZ1$Eyy(*RWbi~SrcpwuEm$r8uIg1W-0Iq3jhR+lyl`$?xE?VSrV|-U58cpha)^Ku1igNP# zA=ABymf&;`S$tc^A3spOP#$l0Qc7cK$W+VZ2ycQQMEX#*B^Btz181zVoJcT< zU%GeCOfput7ViMiAmMHFK3TVZ+grQ|bG054RVH1?lD_)YkxcLZb7V?}VDaQ91~SR8 zUQw*9UYcUwrk~E`CA2mfa%0c4*JstqgY(lV6vsrq*Gpu^P=L%z;CDBsqw;d(&+y%p z=Dj^MCtiGdr|N(LB32)E1A0&akNJ#=RjBevV<4Z zm_|ZEXdJLDkFZ>{nG@%F)3fw6e#r(U>AIXQ-Yqz9n!z*Tfm7O2Sf0yPLHRMsgk4NCq25T8Qr`BDd!E zuejhG7O&*gF{9t>&w5Q~)lNiRlA_;AN8fDa27B*q7Da8Ow#sQrM@c9vQa5y@;3sp9 z?=WzVjlCz1hiNq;)6hpK9k?gu+Q4V(W5P+!d~nE<_hF5d2o0=pcDHJoYPM;0UEDg~ z+_>?ZEK%-_j7^x1EX*0u=h@%fs)Lg1l-1c(DbE`PTh(N=?Lp>p%gv=OQ0#ya^zUU0iLkQ0wL2ihU71)-mtGHB|e#-j&0E-@$iNV{}vh`C_-L8ogY+E;Fw}a=f4Ib__r~2AHLn}6yv*G$e;m~uf{QXLel|UJstZ!_?}904aV|* zB+rCSg^dzyXpsJ~Iv51Q>x@2L^8RsVKGo$-ZwQN*RihX4ZYEP?(UO9p#FplHo$s3Y zUg>s)3HS<>L6f~kbXF@$tWx^Gv-HQEdEpAA+Hzpg$&dp=n9hGaR2A^>*^LDi%XeEbYUQs)Uj%NFamKgOX;Z8%)Z<{-pDTtnBdZF zqh;H-wT%StYc{xb&l8|jbRBL&^O|oe{8W@B;K$frvE?x$iuIYc$^7!TeNppBr>=V0 zuyOIu7LQL{GI}&KXSxoCm`3)m;|~r`Q1zW55^uDhW8HqzE)tSKiio=H+<^YJ-Su~< zZ~uLT3ZJ-NZ6puc*%pftJ4>e%lr-ll zbPX5!Zaa&wLP^OA^nMwh58QR&N2*IVvixp|X+FsF@m0Dw*6s1mQ((YR$7hm@YSplr zibfPjJj5A@+j%z*enBY3F>GbKn_{G$AjQP$<4*5EpUR3x4AuS0Ib{56u%8dEC=wDTjX%R|s&K6prMNKjEL<+O@ae3gq zUNYr+s%B(I){8&z6%jIBSF@A%SG1rrzA#0!KHL{1q5SO@HSHx)zl*LBO8RT4OvJLB zroG(ZOM6I}ySNP1-$Nx9eL1O_gh~JvdaDgW=wC4o>#rJ#3?%x~GDR-P*MuUXy1S05 z+{`!xvh%=jv*{hzWAy^`qeOhQH$a@1uI4K!T-3)rHicw~JVE71jv!*xmrUZHQh?5< zu!;1ass_MCMTH8H&lE3OoU$WVjzgi{UU&A_ndr}KcKC<*nAmiGQ zR&JjnuQ(dVu|IKxnDMUJTVPyQd)A#t7JAFU4GUn8m%?O;nITGNp<$MWxy)v#y15k2$t zF}^$R#92f4*)fyA!gqd4W9$8H)Ja3DJzDgKIY57hq zhS=j7qw~S_<6g7evKWiAGvYM}Yo|tujkG8d`(;kD{m&?)SqhtKYK0)!QdAJ!t&{Bi z*Rek=#Ol$(r8yIwd)gg*+!4|CMRT0xy;JXYUHmFdk>7&EL@SE3gUL;`{XDd*hRWjJ z?55F~e{*weU%K}_qh->{fDP!1v0!FT>1b&T;md&sXT@>Jm~aq6_83aPt*Z0-1-1ne zj+QVL+M9J{Q5;j3fiBW4)}d&b;!4&T>=SBSU-~T4n@#iCJ4MhUtS`g{TL5+Z`_69hwua zDFcOwbLpn)6BReU*bF3pnv&`~Bd~gl(-@>GNdolT=?bB#K?MT#?C)aObElou8j}Ok zKrqP!J^gZOjPfdBMTVL}ZaABP;E}V- z9DQ+%36A65bX)#|xQh~mS8TL3^ie6Noj9gQeD52(-48%n1`gl>9&dNMS&| zVO*|bW?=YjIJ(`UKSwE1%>YE=`DAze8+Yd|A!%BMk6+k>W=Sc(1Ze@B`bunjd4<-` zYl?N)?dQ*Ta2RxT1e6NK?QEGhj=$1uhCLsxRO`2C5NDJl=%LfBbqnhf zOHUG!WqDqgpATyby(R~5^fTgLjfupG81LV@uwJUOMwdd2(n=>~2E?oqSp zg4;GgCiB{PC)OHPQ*{`UY+zE5hw^23`3FiLl%h>?F-=3dPaXOsRH3=hqt8~l17~L|NtY_}2NubvRIav$KjYD$r@Z_dF5Sij` zUtZqYp{W-d)=oN)tX4XUPc&w=$xIls{_Xiosa=%j74=Km8>l>O&?N<1YF?4v>w>eF zrwl5jFK?RBkRDE*!6PXV8S;!g6T|`%{IO&ofvTm_`BS3zr+TrACrOt62c&=9NIkfmWf0ce}oKv>IepHuIKUgpAHZV zV;sy3zkbWH^kh&f0<&ik-|Ki|#34oxP4AhIt@ZwkvwjazRWDVunoU?rv zgxzvmf+(6vA_X7D?@X~vSe>#UNfEtB#l>;6Z$&lmre#KZ_MDAnNq^lT2bMo22;1J_ z{RDZuy0^p#`z=eQRj7LwgunHFZaHDUbG&w7^76Inc+sUY#F&)#qh>KDQ&T{jCGy<^ zmwhpBbk%C{=yAhBme+x?M4`XxoAut!KcZ1BLvFf4nOHXy-1l#4Hr=SzL8#!PzWtQV z4``*b^Xgj91`wRcJG1|hlK+-W|1Gorqaiig;_@#4daavn(vxsz;I#A0IE9Z+yQnV? zX78EFo}HZ3AMdgAM#zGcD3{NMR``Cc`k)r~7`Ds-A-~lMA8VMHGx6lc_JP2J$zW^r ziX!>)($v0<-Ji5qT#8DQ@zE@K$NuiF`c`wrCY0hI?MnWPi}x`=BZAM$T&4}qRf%KA zG#LpD_#=$h6I_9|t=FJr)r>hEMcFA~Iq|8e(lu>4ogm$yjpc}@*oRnAnA+>cdCYkP z0jR$Xjd@&2Uzd-L@Lsu3LHM9`F#$R!g>0qsP%~hB#sye#R1}vKjnZf0i&E<%a3X!_ zHw(4mP@s0AJlyU8BU6DWN;>#rcok;N*IG-d++nTLvX*?>VMxhQ^m9#?@IY=KQh@wP zjQ}LP-2A4RaR`rga(Gc`TH%kp{#WIdy#g3gghCU-I1rUFXPsEHl4QOf*!mn!`flip z$h;N%Th9v9%T7vo3Bk+S zK&D**kGd{ZF?l3G>*NAU+fMr&c?@Z)I5F}3+Xj}TGG#2F@Y8;@SqkLBj69=cht%&q zx^cQ)5CZt^cq>;UXLu}5OCa|eGCPfBB-t?YZW#NOg$6o@EbLGD#6ho@s3ycI)2o|Z zUxFj^tK-M3QTuujbGr8h%7%n^MPb>-)+b}UsS=pK?rO5ghF|8yl!S7^RHNV}4ZFT} z_&biI>Ao*^2ZkQWr!yz9Zd`EVVt-+te{BWM6BJ7-M6(!-1uWMu-D9tq?@WG1|53Ja zD=D>e%uEp}e1Dwc*Vs0|GwHmuNlqho@N>@bTUdYdaeLTL_^5NLjNck4)M#f;=P71-}$V0as%pwRBG*?Yw=K#;BJ8 zDn~K=vCq!DIU=N*61m5MtHdKkHkplg1(Dl2yK_XmMlcCVwFc|vd&s=EjvNBk$cB44 z2#zro2-B+kE#u6cL5Y?VNzr5#Ma3Tx-|XUfhRwXL)963kTG>ur*~&b5D$ltZnct;P z8WMZRG6r*D=iq@uW{Z|$uo^fUO5LhDI6(8mqy^>5GpcMdNBl%n#JqhBr3|8(;>Kzl zqua8FKvflyGt%J*tKDAlu2S=!W&T{x+DWR>Att`KYt+lPXe+(Ze?U=AL&IzfKkZ6T zzAvIiO;yS;>kE7BH}hU8n!^nBesRbFm4QU1`Fm`oz20?A&RXic!|OdbzV{8icDqVY zXQB9{+1mDp{q7%siBSZHiJy88WT{SVH|bIDxlTWF`wke}Z`4k- zZ(dLKen|7&xKuvv`UuTAWGRl>3=+zuDDg;rX(`2rS!NZQ^J3iFM9fLBcxZrzG{mXF zn2s7MKDtL0euQ6JQa}6^)_@LI%E(DbG|-$nFz$Je72a+pOKmVIA!DykJ4-F%K~Qtt zqzsQP{?$ni`R{T!#(&H6%(fPTt=TF(D~C0|P}D|YSwGiN#~FRf5my`-2cYK|&-YYl)zYAOUe!l8YMugWPhEh@J^M(J7`sFvXDvxee~Fe?&5 z%vdc8fe?XbsCgKpOQwX_X&LQ=7?OeOv=E{s2bm=Nr&D3=#Pyls(uQqrXVIP(Kp>E$ zeDt~Nb#Hw=zGlB#?73)ve)Hm?+*8gF{?Cd=;Hkdc60N4Co>^$mo%l@!f&u^O=`b;w z*>X&Iw(KNEbNaZCHG%0kRTyksNyn5?huo#OCU?b$(VX$|E>2kSyRv4{UOH{?%vH~{ zy<}yolamccx=FR_iQX8wPtjcjf@t68yw2N~e~Aml*E+jVn!ikeHR$CUmDA9xvj~?D zXKoW?WX`QgsT&YuAil_+Wy78X(Qo=!2_NV#7iQix!0uM( ziFgO`{v#ZpW?+#0w+a96l>cI1&9!~ zE%-5x7Mm&ki|Ma^wY9Lg46X|=EX~~=Aqoc?7dT?TvDJDxY_}~=s3u|&oFg5t4Fz!% z`S>ql)nIcRZ+76{yRT>U)-!VIR4W0#$RLhxpLM-!NyUri^}6r6%9MN21F4AAtgpaM zB-<$>@?xi^uw-dQw(Sp@x5N3U-xV3CcFK;N${)U20IVh&w#B0#GADgVj+&JBD8HB_ z3#gIhJI<|D7GaR5>p5|)ONKpx3cnw@`0b_d4p34N$#cLJ zu}9>nHquS^ji`$}YD<-i2wB9TJP~fqj9He|90OMwOzbVUHG`C)+Mq{j?h zf*q`DOozjhp6_iIM&B~b6FRK}7EtD07M9Y>R;*3h{x^}Od17)>3qO8II&@t{5;h!M z1r~;wMbg86DYB$-DD&PIqAUG+D62u4N2K_y^JZ9}e=S%fI1l`Fktee3cz=S{O4&u|aBos!({JWw^YJ`e8*7l7NwS(g6!o5yT11VwOan~Wso?uLGK{@-T=4f;F&S- z<7iw{Vs$&D>$mbdxksSz##HTmGYYdf&)!!u8Q6@>O1hu;+0%qdF2R2Hb@G!l4)~q! zZ^>MoH7d)C%3lF;)SbdZdnWLQNU@+P@A1*f#u?O;H5{ywy=U-;46$&(O_uxsw_BcH zv@Qu#9nJS-Ucf&wpni3whusS^ILK1RfnL7(-q8QDlUe~TkuJZwkNTSn*!{mz<M3 z7rs=9?r`;b4YFV_%Sj}k5i0OQ;saHwj`pUfYq=KEyTN<<*uH@*V@5a>+pl}Ig?wvF z(R?ZKvk3bY&w$&MX30&$RpoUkGHE9byZ8-MKcxpj+6b)}mqJ@w z+?i9wUl^C7QWtL-mtU2|6YH}SAo6UOs{84dyr4KcImedK2t#1l9rPwA7^4`n>O2Z} z##f#20r;(Nq+}sjP-6abDaNpOq4~UpkqJ8<1KWbk>-%6w*J{uyyt#J~#>bjLfxTWf~?ON&um`SHEl3l|MQmtZQlnsfv z;BVXy4$5q2;+J6u4&PoUYS6b^@r=?1TKhDD*3;$NjfKrl8w38dJ@_Ng z7NKb7q*u`q3jEoAp}pHL!sb2u9w{%pQZCN<*=Mf+q&HiwS8ASaZGp|1yZSJrR9Qu& z{Eb$n3fG$*aF!OTcO8R1`j_6Ic{T^fDk4{v0Lj zLA&t=1t-{u_BA#h}WmT!Jn8q6K^)+vVJ{y-$C3J#X(E_##X}g;c z2PI3#!>m+ihR=ScZKZ@ku<{h>lC_wFZrR|pRfrl}B3__99+a7kyoX2NB$ABhyrcaQ z*bqjf7{(C&c@2$~*TNGGRtoAAiwNuiSQ4#_(X*3i!--l{uP83J1P_CMCp%k9GmPqPUk^Um zq5C?|Z?!Z~AZ9oBF5u%DHe0*Pi~a{HpkAs-Pj8xD@x`K!Ja6UP96F2F{u(YX>EN|3 zdA>?1M~Ut21W}u8;J)=Fp|dqi^ug}#yCx6T!IoEuJ;8Sc*2v@h!W9@#7kzJbBzJFX zjYrxH_Vd7guO{M}jC7Uu3ZKYe*)0C%?aii3D4~aM{3W%~LykHa`87xkd?dZEwHYYz zNo119wtMTFXM1HW;I)2yBYF7<6aaVY6Hjje1;CEVo}TR+F3FCERKysxzMr@&4S+ZU z={L!D^G|*>4!l1wMeOE%hxofZ5cePCJDR7P;VQS)#(+>@yH>bD9XNJ7|8!%D+m0Xc z<5}BVz*~;{rT=9WXq~JLbO-B1{b+uHdTa<_ruP?W1i}MGSy~P|sTIF4CUfGl--9Kc hJE^Y!YYv)!7l=@w6s)V2s{qA7J|2GhEdzL5_+R;Sytn`W diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic2.jpg b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic2.jpg deleted file mode 100644 index dac6df55aa4bc0e3e98e3309cb2c608a822482f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10375 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 diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic3.jpg b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/demo/resource/pic3.jpg deleted file mode 100644 index 0ed0349226e9fb17bbfacc3a5986f6d1112f1dca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10085 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 H?d<;oiQ7T7 diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/block/block-body.gif b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/block/block-body.gif deleted file mode 100644 index 634e86ebe1fdf51c4eafb3d4fefe7521cd4bf323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61 zcmZ?wbhEHbyu`rBFp+`b)~#Fr|NsB`^(zAdgW^vX26l%33_3tI14y2MiO;2F<>|Nl Pi|1^))%}^3mBAVS#(x%a diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/block/block-bottom.gif b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/block/block-bottom.gif deleted file mode 100644 index 5f9eb3dd459b74c5f3aaa85f9d118130e44cf0e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmZ?wbhEHbyu`rDu!w=-|Ns9#e*F0Q_3N!$w}5O07*PDl!pP3R!k_~Z0I6kQ_OVdB z^UvUv=jy!{ug~u0V>V=n%bb_7YMqoo7t_geCAs%yes(E8_%)+G;_&%ZCP=CCL;^mjLa=7FE0;R>@`#!?SfYY$^dEQ7Lz=KdxP&wFAuvGP#pQU3R%Xxi!I?Z~K9~h0OnN F0s!v>Eh_*3 diff --git a/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/footer.jpg b/icec-admin/src/main/resources/static/ace/plugins/My97DatePicker/docs/images/footer.jpg deleted file mode 100644 index b4b04658b375549ed33184d2ab7b3c1fe6a11d66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2537 zcmex=4Q zu8RyEoe~R+nin2^C?cw8oV2m2WfD-o2(qyd{UA|6B+HAAiY|`PSc`_v0^yi?-`tKCC(KAnc#BtHR&>0?Xywb@RB- zeqmfxU3vMy&wUMQ^FCNr@LTtAF5eS3@BQZ;2WC~Ddin0Xbq}xby>kDupMM;DZC`%* zp0>DyH#eI5N+ILg)eo!s6b!R1;ud%CL|qeI@rYS$XKR*4L)0_T6%QG+XM`kEf#{wbKdSJu|veO}1uQr>_4 z?!R&g>BW2W_A#G(%+&Grdpz^AUkr<^i?1K7+}B|4o@@2P-uwcq;BCHr!e_oPx|FS7 z-}>V(L!j*P*AM^Mdx*Ga?E1~$e~Ily-`8*Q;!C)c46on#6Td-vk>>TAKw8Ab`H#JU zx%2ZMbqRUx{VRAcTz|z}qQcYo`QDe>oBtV-zchTvYD{6AfSl;ou!u8pH?kgRI#9fh zMT~iFg2E1&*Nm(U&to|BKvE!P1cwfg>B$_@XkftBkN`=^1j!T93S0_Y3xHUQ^(yni z0KFCBA>1oiuYj4dT#cm;yBcC0tVEbzHKsajS`ZnavqG8??9?Cs8J4g&hj1(KG`2Lp zvEE+c)c@Y^KZA8x*4qCJEx#ImSsidJP}m_5!=b}&^}sQ~@*2d=5sC5{*cdMG z5a|y|<`hO3#tq?!;dLdDl?YEKK%SbXS-W{Y5W8}Rfkm!CnT6%8edoI-u8cbO7WQD)%2A5+~ub> z?GL}fzBBb!1b1lKKij+U`>whM|2weMk#W!5;+yXn103?zW4={4ga}BVylgw~fhY^x zr;_vOJ6J&qjG+pAMiqbqYBU@m31&!y11MF`j=OXqQrrCFyVoT@r(`WU`JW-7!tPqx z?VsJIa}@7}mim8}`qQodwYH(+YXIv6wg)K;QYySc4Qf*umpd40a5{J~1qd}vVOgNc WI0!hBFW6o diff --git a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/css/font-awesome.min.css b/icec-admin/src/main/resources/static/ace/plugins/font-awesome/css/font-awesome.min.css deleted file mode 100644 index 540440c..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/FontAwesome.otf b/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f36e4f73b8efa40bd6f604fe80d286db70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134808 zcmbTed0Z368#p`*x!BDCB%zS7iCT}g-at@1S{090>rJgUas+}vf=M{#z9E1d;RZp( zTk)*csx3XW+FN?rySCrfT6=x96PQ4M&nDV$`+NU*-_Pr^*_qjA=9!u2oM&cT84zXq}B5k!$BD4Vu&?bM+1pscNs?|}TanB=Gw z>T*v6IVvN? z<7If|L2rZi0%KIN{&DZI4@2I75Kod~vRI*C@Lrk$zoRI`^F$Oyi5HuU*7@mriz!*p z<-;A`Xy{#P=sl02_dFc|Je%0lCgxR=#y~GBP(blD-RPP8(7$Z9zY}6%V9+^PV9-}S zeJrBBmiT&{^*|I7AO`uM0Hi@<&?Gbsg`hd;akL06LCaAD+KeKR9vM(F+JQ1r4k|#^ zs1dcJZgd2lM9-ss^cuQ?K0u$NAJA{;Pc%#+ibshkZ%Rq2DJ}Id^(YlWJx)DIMNpAc z5|u*jq{^s9s)OpGj#8(nv(yXJOVn%B73xFkTk0q37wW$hrbawy4?hpJ#{`cMkGUR8 zJl1$@@QCv;d1QK&dhGIO_1Npt2c7Ttc++FR<7`t1o^76cJ&$`{^t|GE>K)k3GNh{I92zC*(@N#&?yeeKjuZ6dlx1V>2carxUub+37cb#{GcawLQFW@Wryy^!4biE!Rvyz z1Ro2&68s>zBluk~A`}Rv!iR*c@Dbr8VURFXxJ0-?Xb@%!i-a}8CSkYmfbf{`wD2Y2 zHQ|TCuZ2Gd?+E`8Iz?iUS~N~HT@)&sEqYwENVHt^j3`EwC^CsML}j8zQLCs&bWn6u zbWZe&=$hzV(PyIXMgJ8IdI`P!y)<59y>wnnyw-WednI|Lc%^yedzE{&dmZ&U;dS2Y zC9k)=KJoh6>nE?fUc)p+Gqf+QqQ}#Z(Ua+EbTA!ChtYHBC+G$AVtOSVNypHsw2f|| z57Ecylk_F}HTnwuKK%v#9sN5!#306#5i&|f&5UPs%mQXL6UD?a$&8iBWb&C3W*5`Q zv@>1IKIR~ElsV0uWu9j)F|RV0nGcyynO~Sc#7N8&dy5s~(c*F9N5zxH)5SV*n0T&u zzW7P;)8bX)2=RLHX7M(0tk@t<5~ql*;tX-NIA2^QwuyI%8^q1xc5#<@ulRuYi1@hp zwD_F(g7_uz8{)Uc?~6Yae=7b${Ehf~@h$Nk@$ce$;z9ASgp!CPGKrr=CDBO6NhV2x zB{L+mB~M7gB}*jBBr7HBBpW4LCDD>N$##iRVwR*yvLv~ZLP@ElQc@#nl(b4ZC3__M zB!?u&Bqt@$NzO|yNnVz`E_qY(w&Z=uhmubvUr4@@d@s2rxg+^qa!)cS8J1E~zSK)9 zk@`rL(f}zd9W5OveN;MGI$f%hhDqm2=Svq!mr7Si*GSh%H%hlkqor}u?NX!EEKQSU zNpq!z(o$)qv_@JlZIZT0cT0Pu`=y7aebQ6Xv(gu&FG^pLz9GFTeMkC%^dspF>6g-P zrT>xsB>hGDhxAYBkaR@mArr`GnN;R0^OLD$8rc}xc-dpJDY770sBD((aoGadV%bvJ z3fUUjI@w0qR#~(xPPScUl$m8|vMgDytWZ`etCZEq>Sax`HrZ}jk8Ho}u&ht^oa~~k zU-p{pitJt4N3t8TFJ<4#{v-QI_KWNf*`Kl@*@(A?x4@hBmU{bo`+2LpHQr;q$9q5K zJ;gi7JIs5Y_Y&_F-p_b%_Kxx1?!Ci1!#mHr)Vtc-?%nR)<9*2cg!eh`7rkHie#`s1 z_YLoFynpom)%#EHVIQ6kPx>cKQ_h zRQS~TH2duK+2?cA=d{lYJ}>)R@p;$hBcCsPzVo^5^M}u%FY*=oN_~BO1AIsMPVk-L ztMi@Xo9LSspA==WB&S*uVl4V7bBsZ6Ow%WsQuJUl%vOsv%FNx7`s5UAW~xPRj!Q^N zwi+UnqRjDntAR@;SgfW*vp(6Brq42&k|Pt0u7@erYKn`qB*Yt|l44BpR&$iaU;sM- z4d^4IlC0K*WWCuG6&q_xHzvW8D|?VmP2oxsjM1iyl%%N4$e09kOp@NLPtiwN&H6aA z-eTa;a#fN{F^O?WQSqF~OEH*?dP|xqDK%Li3CQoKxK{5cQ&V=BV@$F7Xc#FxtWojs zXNfkM61h7$%AA;DPB2qoM4Ov7+011Nf%sPRE(aRk;t@!SiLC) z(4}(2HO9bnN2Nq^J%e^*xrU$#s~$RKF+`d5K(ClYZt5*oeM)3>R7_%elsPso3MS`4 z=E0Mj$&@IdAbalxm6OD4U#Myq|K@ z-&JTzbUk*Y0-^+{&H*ME<4mrECC04R8!ZMC(2?u*ebPc5H;tpCU=m%_jxw7~>F%j@ zrQFl$N~Wf`Uvh+X%>u^=z!V8t`pCG{q@?>vOLA0Fl0G9QDJnVY@1Ddb#95Q{QE_nz z(2-1F6PRS~8IxqP=wV8rtMRU$!gLw+F;Pi+V=Q2cGRB&cV@%1(K)mFrc%%OB*-1@# zFgILx%zA6OUJtY}rKE5z#efjS0T1cTZVdO+9M=22Ow*gK34rH*)?hLxWC7zvB>|5{ z#sH12*7O8mIkT%*9G`Hk>dLs;G!k%{O^NzUkTT2tE?TUH)Z}POWNL~_)Z7`ae_Ylj z(7?KJE)jQ&Hb*3o*rWtwBJh@*Xep@{0}KNAUT+2=21z$2x`_$+QVf~#34kTq)f2bC zy5teaYIF&ri#6S?KM*c=&h^$+?f%Ff49eYLDyV~)MBo$Pac=%%%@&IxHZ~dv3zK7v z)+Z&!aB~(1vu4#BfHILT-f*QjQFJ9zQ(O;j%x->){2xR8tH4$FUnM|M7YE+2!8H+| zWQx|On?W8yq%DaSP+~AC(dGnwTuhWj&oP~wvyCRJen%=uy)iDqm|)FJ(pxO9f_SqD zCJAN`7%eq6S|0`S9FuB|F{OY|rnuN6A;l5}g3RfWXkb3jsU|ZpPHK`V$znApB!a$$ zM&b>rphC>h6sWK0Bt38=XbW>{Od`+XNK_^W~`uM1%SkU{?CLrT| z*5rU5a4DAt4QsU|SYaF~z_MnbZd3}WFFoi`11Pc7q-YRfpk=(?HFGY!oON*L+>FN= zrpV-2sAV;nKn7Cumed63yhYD(iyLEHoL(PiGR3;=k4uAd$Ws$QzZ>JBRtl%)qmlt( zlrcu1tdC7hu*PwHfTp+Wtez}SISAlE3{#BBi@~MV=s9VU~oa*A29jU;4uHLv)t`=cj zMkBD=0}Gn;Kx|?3|5QxeB>h7H-63>M1rORUPw)_81!IgVnE33zbVFL~|4d{TmH>B{(ST?=mZBvFKDQ zs6e71u%5ZNZgM&lh)@6d3N{!aL268{00aWAef0lv1i^_}z`hyP% zyasc1UyCFdAscUwN{$1kE)jexW8Cx^)1woB65NEk+OUEqN;12DT?I)dX#Iaq$3L>1 z0{Z(M#~c61xyK|v7Q!EnR;&(y&k3ik}S zXTlwpYD`!>eg3q#=~2@ogTnwcEEv)N8U~)gNue|5Zu9Vhq$UQ zm=4KMxM#pU6K(*VJ`HXtpAMkY0d#r@+&Z`cZaTnC2e|2O?BUZ~t%L(~5I_e3bPzxX z0dx>R2LW^tKnFpq!O&_jzy$+bFu(=7JFw8*!oumUh8A)!p+c~``Gq=nX{h@Ft%X3% z5Wo-u7(xI;2v-IbLfjP=0TLY`(Lp;p0M!Ag4nTDPssm6Rfa;(#p#T>OaG?Mf3UHzB z&MfAN0W@?*-1IoE7(i!0*$e=k0iZLWYz8zr1Dc!>3NSJ7geGSI+)RL*32;EO5TIEI z&@2RK76LR20h)yX%|d1ZTo}NG0UQu4Bn;rfLgIqB84nAECszh=Krr33X>d=6I|%Mz zxI^I9!5s?s47g{)9hRo&)&V*omkuiHfLuBtmk!9K19ItrTsk0^ZaOp=1PulO91uze zgwg?_bU-K_5K0Gx(gC4#Kqws$N(Y3}0ikq2C>;pDE*Ri~0WKKefIhllfC~Y*5P%B- zI3SA-$f5(X=zuIbAd3#jq6+~y9l!xibU+gw&_o9`(E&|#KocF%L`hz;)DWmLP3;5fv}-Kn^2%lD9|PpXcG#w z2?g4O0&PNpHlaY9P@qjH&?XdU6AH8m1=@rHZ9;)Ip+K8ZpiO9yi^YTHyZbQTB``tr zgIpb(AMAd(*f?muyEF4$ViPofhWp)2_v3ym^WC`x?nk)$vC#ck*h}=pfDBO)G+>I#QjVRoW zDBO)G+>I#QjVRoWDBO)G+>I#QjVRoWDBO)G+>OYsYl7UmCTO7>(Ly((g>FP{jT5xc zjcB18(Ly((g>FO(-G~;t5iN8hTIfc!(2Z!3d+HXsN3_U|XptMyA~&K%?h!3=BU%JB z4s&B!kI%_aQR>IrR=x#+$+m z;mzdD<1ON?aK+rWLd3m{XXDlKF7tlj5kBJc_#(bPKaf9_AIz`iH}m)K`}oiCFYx>M zm-%n=-{;@vV?KeH`Llwpf*3)(AW4u1G4l#RpWvL}qTr5jrf`mMv2dxdS=b@mD?BVb zC463ZN%*qxvhY3O_rhO=4pE>e9OBP801EGXWnOSFyAwG zTv6*$;wj=_@l5eN@nZ2Zh*qaSY`R=r4N>V1@qY0M@g?y!@q6OWAO?L){EI{=882BR ziIpTnM7d02lhi{L`JCic$vcvdC7(mg_&<_gB)>zHn1$%@bchNskS>9k@H5g)QoS@! z+A2K_vEG-ZuS?&8IPWLY-yx#=u>zUPB{q&{POCP9RCmd^r+u&(rp@QL@y@~QS|_v!Z8?{m!OIiHIVSH0@lOL9!ke`vC zm%k`~TmGs1M>&>{C?twN#iNRuig}8ainWUMip`2>g+Y;`$W@dm8Wf$1Ud1uRDa8fF z%Zkg2w-oOyK2dzBxT(0M_(gG7NhzgDwQ`Jdsxm}5Tls`?vGQr%R{`icA`e!hMW`33q-@SEfp919`B@V$_Hqg<(g&v8BX9I=vHqtmmC?CQiTI)~<@i|)VblQ3H8$=5wV+lKpUN(tkX3=CokeSoksl^f7X+{TA zIF)6dh2AY2%Q6!H89e$99_(Y*(NEJ_CXL1~&@gHZ!{tKhI3Nu-(Ha=IyBUSBv$eHT zgB60#)|^Z&R`8NoCM!ETi&2iFnc+MaF`j>W($I9M|{Fdn9I0?i2Fo&$U{Z$8c3Z@s||tuw%~3Wi@-Qn;%~T~t_BQle$H z(%4@xz~aD7*k|q?4X(!xeC$IzBLc~&skAbfW@1}K{oBs2(=e?$os8k2kr~4h zJ2O0>T)++~{L*NRd_Vq^9U6!SiC8JPP*C~V5;d_4fTOkv@S@>s{2b%v$CGe8J!BW$ zWJe|m8oOG%dsIDzy=8keLkF>xe{|R014mR+Y`{OWCs<;@^T<4GVD_^hV!}nQuYO;{ z5XCB*xT4s7O{^guzsd)gfXJQqzy2L25&H1IC#;IT7k4stQAl`4B!EN5{B z%pdSc|Jk$sj4=3m_)QJ7aLt;9j9?+l;Lq7qmdS+Ivq3g^vuWr9Ori3g?wip|f$O8$ zKoRc7K@j_H<&QM^hJ3>(Z90(msVr_2V938oGun{|A+`@ijA8@%`OHKb zX4RUNno+1Fsm@K#$_0FLSyEoIDzhc4IalLA zb%1SMvT*GQkdEyv6C56npQmv*NZ^3*=Jo3^6G|OS!ffJ!A0cyp)U<7ESpTewESXBe z$ZR6j5FVLIBA1gywK2K6+Nce~K6us!{FM628+DDZYQJ1{Yuj%-_7@*4Jyh0S(blr7 zQ-nqAuHCuK`7N>MB2OiJDPqjMF*dWAQ9BcC&ID(IiorKn=&gOoj_sZd&SY^p4GIN6 z$ujr8`Q{!onZ=4VG(+JDv?mkDM~vf;4L=7e7Nj%+!^8^nu>vGj-o{J^t(iXu^z1a6 z0mZ>6lSYiTBz1Onc}b2oGRqXbRTVgdgMEsSh7)?(We#mOJJ+mOJP0 z(|Qi(A6B=uRoAs@&vhI)^SmmM?4jyV%qZQ#(?JiOp< zO{!&p^j-9@LQu~-JXr0BLP+N0wPX}7F42$#vX!5n)@nGY9y%j9*xJ{XrX>k@D<2ov z;k9@ap064LgRzKg!4DG~FhVD&S$f$cv~yq~%`67qSK?$420t)W6Gjt0(Gb6%U_j&E zc%%E!0Zp~w;f&=Ih*)jhQCFX?&9BMdRk$mb@co-hTT9zZMTPrL6hE)Vh1dg|@K!K* zTZoNO{z3a$X(ofl(}7b#UtVCzXvSV&Z`U&KzyA9B4F4p{ELy#Kk(SYcNpULjSf-&I zC$NOGes#q~y9(8uDPS^NbFd%F(Htv)nK+TfCuw38tlM_BUwZ`qLE~4!4&lS}a0Gsy z)i@LaJOb1^3B(c{rnOE5SBkCp2Rcz0O>36T0c(Z(aF&Ay)hz3moP-^ynaT#zZENX=Dem$rBj#FkIX-f$24$w)OS~yvH)( z;A7l3ngKsZp>)h9ckmtOY_fr@okIf1XkZJh%-n6NwH5?e3U*p|sN8HWU{vQg zCL+RkEEHe`i*@)@mf6%Uu+exiEpRDX8aihIL)OnReaLhgw+fiIp;iYz59ArZ1N^$W z8he9^5ti4N)s@r@Zyem{Z|+Sm1c_1NM_Js=uBDk{aG(Y}0$W-k%aA^j1y>(PYAw(T z+zKnO1%98!@D$>A;fbvRM)^KWHGP|@VZn;bpoa!(Sl4WS1|n(q!%|jb6E0=7PP@Zy zghoFgO>licKEUwAAHdZF*9VMpB6Jp?IRcHAdma(6LTQ!$uG!tPgz^r867LH@VA>{RgLukD%WQ6OsZCj^x4qz~8LrOebNhkr? zhA-l$aTnNsJcl$2$S9Iwjw&rKE3POGC>Jna&>Jp23*GpIQ^=f)f@R}>BQhZ34VuY? zuC(OB3vdOMU^W>c_GFn)xdG!Q_8Z-3M%jIh-&wc2wL|T=E9h*@$t=;PE#qgFWaMP2 zop%M91+ATRTE++?hk@I073jMNb_UCs&9<0cGt&Zt&uwAA!5GR1s|QvN61bM;yqFCe zz`4P-q;?feYH=;olG|l#X$fGIj>qtqNu8Y&vpO-(hm zc5O#vb9>EhY+ptD@9Hhso7N_RG2mP_3t9*N6mMs3^hANHvM2Ut83!nEPIqgioI}Ap z1!jzd;1ZSz)l6Zhy;JQJHyHgbL5aKZA zb(hGdvC@4#?Ry)wjXk9YGCG;OyqzUk>a3l0&3WL4tcPibPCGDuVP>#WUrwqV58>0~87#&v_za1|68Z4FK;8kSI~i6PbuJ&@4!#2{Vqkt@6*CBW zq^@pPT}^!eGrVzlV@XL_NqKPqQ_g}FCW-|#)7xu1ZSDo{#df;4m&vN%*__AV_vnc< ztWQ9f&-r{KOo>#5r5CZsjn6eVW?h8olB$@4yBkiYA0i8Ii+|h6)AqA!ybzBiW646s z&sK&@$s>5K20Z3KVyGY+Z7N$isbziwvcf!l0qZni2*D?ux8bmZ{_kk7Z*FE>ejwv4 zbdHCs&{^n!r=t+A@o*I~+Qz*6`kiWWejWLhq>&kaPQ)SF!4UxyB<#v;-jSl>Gy!K9 z_c!nB>ePHEWR}vf9AoeXS}I(AX~Ua%53qTT!;@|Wis8qh2iyWg3#%=of#GLn7MRT{ zbECO46BI#;)taIiFG#WW?AHQuh+RiB*5cfVZ=^pjXXMwjsOc zkew0cLXVfj0@@R=uF#&k)P3!ms3YH}Sa6as z-+zA+GXolCB%%>8a~>xQfqOv4<#Gf8qw+ZQUkE=Sl(6)xtKZdNR{`&U2{nTY%Z=Gy zQU@?kaW+rLjjCYpK2>ky-cG170gvZ*bTZ5S3j(38Pj8ECkL-!*sp+ZT(;%wrtK`(y z01g4q*A56nU{!-dJel_Py5?r>pr_+!zTJ*f@D^OGV%D(a3?88IT_J;)u-qaoyN@E#8N z^ERHLWduYvems$BhX*iN))}m0fC1Zjm{SewU=_fC!sS8&%w(Ed<}e?+tO*DVTnibc zjb?5OCxLy>IcnXjVQj0odcrtYOZ@ACHWTkB^Kz9)IrK@#E)UG?-_@ zyb8?I6c$t!s-r5ImuYEjb4^RDid!giOzq+bATcBw*$R$JIHO+5-eYcF4-aNs#yc&Z9}$OTab3Op!K zsi#?r5kN3(ctA*k8KJ|2W*Y1@b#+WBhy@XXJaSCQxr>XI5JASqMq`;Kld-bAz#$00 ztpcFt_QsBe-J-5)tZZ$AWh9Fys_?{Bn4R>8<~U#wLVSWzwKg=i)@Xj{dgtn?uS85y zNkc=G_ASRGep6Lr12>{F&gJADOr+tAHu+dj#*69~_v}8z2!d$r2jgt0YpT~ab=W(b zJ47G74Bb=05~M-RRIo}0>@4_3J@h$l%(1K^1eme4Lj_D}-_=l8r>SE?z=CZ86S8e& zIUj#3z}tqF^W95v5&=;zj_qMSouCH^rw1L}n$iK99dvpj=Sq}-Dj0CFsFSua$FYND zPO;olnE~&00?SOH$8oJ(gUJSmPspUu-~}@~tUIj*+5$_hX?G^01!GoJsIuU3WGsOG zeQ|v1iw{E-Ah;}8oko^b*A#PdasuQbgi|n#U^C0)=GoF(@|bS?1w>+UwkN0(S{Y$D zjA$O7#}Jli^7AV*8gm0cg@;4M8|<=lUq&}-bjUY<-uw33dw(+NiCU5+%q}j@)-ak$ zV^=|)i7GM?C@UchsS@NB+89kuQDJqV8u;ga?>H6f4(GwZl=v*SS`x%#fq>y#dXDBC zQ-e)v&&jOPGW^b}cJMHP-VQ#;_zG|&m|oztI3heD0H^c?uuv@gfh7oFhvfqi-60R*koEXQCOtVrdnj{zmqE>_i9bPb`GX62 z%G49LQ6IZ8mJvQn#{n`8INIQ-m3v0MgE_nfH^4OB@{rAN`_R8NF9v=C!@fh5W57ik%-Mi>^{T} zAofqh{)IFXkmhluc?M}pk>(20Qb_wa(#9a|5E``xjrtsoo`yz$h{jApW459(SJ1=L z(8JwmtQd{mfyRE0#@D3Q85wBC1vJxu!iLbSwP*{{<~*LE-IaVGUYz04?rEOYWd2m!c<6qo?@jsR*<}jaD?G6O-_{*1Urv_MvB%pml+0-2t@jI9m56dX`1&r=tz)(Z<)&rip0N z%V={r+TxA2^rJ0KwAGFxC!)wO6uAUNnowi|iu?dYeupA|N0EP_ZFMNhA4M%e(V-~% zB^3P~idltXE~D59DE0=@uRw82P+SL!yMy8%NAaH_Lpd_MixMWIgnX3n9ojw$ZNGsM z(^1kml+=onXQ1RRl>7!t{uLR=BI9giT#1Y^$XJYwmyq!-Wc&=7#voHYGQEaUSd=mz zr96&O)}tL1+CifoImrAJGS?%^Ok|mbEOU^h8d<(XmLX)VM5&c1Z4OF*3Z)xR`T)vU zf->GgnWIo<5y~2mc7~#zsc7f(C|irN3sLq*DCb3#%SX9wDEBv%>qL3aq5N=^-+}T! zK?OdjU^yx%K?S!^VHhg%Mn&PMC>s^EqoT8@I0zNjppu!WWF0Emg-U)!rK?bBIV$r) zWihDiYgDd4V8{4#1uMy)hzZ9r`lYF~xgO{l#ab@ZdokJ0YwXm=&r zeFJqphPpCP*Bhw27InXa_PmAmhoA#-=-?D|$P*oU5*_*o9af{m&!8il(UITK(dp>u zPw3bW==d&l!UvtWicU^IC&SUnbae7CI{7?0wF#XXM5mucr@PUa{ph)JbXJ7UJ%Y}) zq32oj{2g>Y8l8U^z3?`=a2#EnjV^wUE-BEZqv*w@sDCGV`8;}c3VPiez21r5SdHE| zhAzjU%YEp|W9Z5!=*=tWYCF2tjNYn1Z&#tWucCJX&^y`a-EHXIBj|&T=z~r)@CX`s z1%0>_efSdkh(aIzfK(Dxss|NMo1u%aJ6M?c1+A06nYN$97~(e0z?XMgl_8M?Cr z-T4;%`ULv*F8b{&^t%cDu?78CgYHg8gHebqrBFBpTm7Eh6pu&oj!^t*6#son@FgXT zr-U~tQ3WOHr9@v*USlbUQ`6s4%nFKWqQotfWHBY3LU{*JJ_5=olk(j``F=<#Kc)Oa zD8KKhhlVKsbCjxyQct7;HB{hoDzJ@W=TMpwO1q01b(R|aI5qkkYRqhEjDZ^SCH1hJ zdbo-j8%>Rir^YX&#@A631k{9TYQkx1!e`WkFQ^G$QI7;tk6fZ2y+l1WhI(u-HL;PJ z_$4*z32IUbHR&uhc`-Hl87ky)D&!!g%cXR`QK3RAl%+z0snEx%&{}GS7d3MX71lz9 zy-m%UOwC?Q&Hj;^6GqJ;)Z7Ww+|AV7R%-4`)Z>2C6C0>`YpD6}Q420m3l-F&`PAYo z)RIc-$w#Osd#I=Q)KkgSvL)2hfz;EVP|LScD>hOqFHx&9sMYhRHBxHrIBIPYwe~M+ z-4W{9)71J|)cQ5l`hC>;@2CwTYQq+4!w1yHd}`y%)TW8lCL^`!3bi?w+FVC%iKn)1 zptk-%MFvrkH>qtpYTGp`Y7Z6l3l+0~iuI&oXH&7yQn6`NY&)eNO~v_BaX(P;CMy1I z%CLemyh0@;QrqWI+drieuTx21P|1aqv5PWwQz=erhk-KJQr7cSY9f`kfl7~~GJdAA z)=@jnRCXbiGnL8}P`S@jc|}ydlPWkt6+c52S5w6!RB0+zrlraiRK=TAivl7{e^0k;pVIJl=A~4Sr zmb^S=Ab*r20=5#I5klDC;VB10R?)*D;Aab@fkPikN5!xh;yZTFK>k%nmXhqoQ!w0D z`nqozt^_Q@9)>G(x>pzi$Zj&3k1q>vKz!ymnp_qFm9B;FD#iR^J1oBn=phB{wUU8ByI>H$ zx8!$q^&C71XwoQrfyNoM=PID%C?&UCEhwxkFVqYV5Ia96*Ay3}8rg(L(}Np?fUSV< zJO&x*C>!j`DNaJG(1B7|a?Yb+Ls8lddmB)K6#yE|o@S4?6&lz_NK%B zkq5-McvwqBqNhLl@$vtvtKdW3|Ni*N)sM7Ti$$=S=i!I3M{ifpp6J)(lYyQ1kItoa2CREud1?qW}t zM4Dkg^u(WZ_eR(ZM4m(7XDhLZ?W2K;DP&7Sv38K>`~~8??IrDMDYinNha}2FiOrT> z8fWDINp)=E?=H;RV^ycIj%P?dzqq-zv{ikudG9{VMbCj6I~)g<*PUTb3Et$Cl1&4S zF!BbzGapVPj0g@yT%AR8J2pNGeYam|7_VzY*!nqQF95f6X_??}N zy}c^XE;S%19?&dkI$yl~L4z+~*L5H4Us%Ws+y(Fdhs9L_Wq|Ns$Xsne`9HBgz|0BS zI@STA#{FWu!U-$<>onnZrtTk~;dZTr?qf9E#+Bd{t+{3f-o#en+%_)cTwCLKgmtMA7k=EzdSd(S4Zx%j-keF30X!bM3MnU- z8j66_NCc!Hx&=wlHNVnQJ)A2URP3aIH7R9BUVB!JhAcZ!a5U#=){%f?FPu1c?7XP9 zzNX%;g3X%JI!)9Yi{4y!QB+r42wTR5h2^k^M8=FVwk0x#IF2}DiCZ?|Z$P`9YMsJ2-1-0Jt2 z_iqvv*W1hNYCD9#;9S?}KM!Uf$~#;TaDY6`&#G?E?Nnnk?C&(U@6xtku6wKg%HhVt zEeG4Mh9EFTT+L%xjVB!0tF3bl7)na&HF3|!pG&ydez5sa(-FM{#m`cG+2uf29T+j|ZIiwhQQaBtkbmc4h zV*1L{>(re1uZ-E4u3bcC^U0g_kh{yHmH{o!S;O6yP*aK?eR8GlIrLf!WX=NQ} zl-0KC%4&`Cy2I$a?lkf%Dk~~fPAeR#xB?(fU;`Fg9OsoyEfw9lO~izk`a33NvE*4H zDaYHQ`j*(D3<1M2&fB^96=_Ym0dLN)Eomrgs0^@IHq_MD4nFDl(0}kr=ZE~#y84O+ z*T#55Rl}~@x;H=cmzD$PU^(bJoKBC1kexsZf?x%YLg6^$J~snT1>~(@NrtTWEt=dV zRujbWz^k~ed>8_3pfCq;1O%)v1quT_hi*GgD0fz6=Vhx&xga~cxxGreOSl(62#Z(X zA$BiBT+4)mHfOx@bpGk=;~J-K=pethAZ1UAn*0C&Z6t!9S(Tdu{5MOGncLb~rEP=Q zA4JN25TvA}nhUf}-N-?Hc6@$JjLO&$c~UbNA;^NWaaGzbFvNhS7h358Tb@~!1DmVx z_GH7kgD!P2M1wlDgH!Yx?Ti(0x{x0qw<&$Sdi|!Z<8fM|#({jN9*5Fk5_<})?K|KU zmm@-em$A+WVi)4C;e?7a!XImBM}#9{cW3Q^g1rIK4463J7MLW(%%QuEyEkF00SI&# ztib=vkwqK_V2*(>_Fql>G5CnGwz<5euo0wxz#mR_)WCtYqVkerExAsv^Gk}k5axK; zxQifne+6VXLfF#W&|Iq}e>l3s*zU9;pvZUhPy=xAB$!U%%Sjj>?+L1FtLmz2vB6R7 zKe%3i4bI}~(yEf`(g3_6S$RCaKj)Z+6gn>QkLJYeGpK>p4KX{m=V(cx^CCYdA%9)G z%9#ec&S$|3=!WwSJ$c>fO&aGJJdn|Bwx#C>r03)dc5? zAQ0>a{PHX8IojnXR?+w>n0uP|5v4zdlM-a@4YEOv+h{nRk@Oqv3y#+|w%B&(H3302 zFb9P-psFeh%SwwyME)q55Ke;Ccr1+{!rmJ~ZfWK3!4VwLFF=?C4hb%2TVh3I(i9Rll`K}nIa8lYHz#W$V$QxpPX|K7v9$=H{JrZm zcO;b$JTV5ZejGomcJT4@usihU*V?LTTTQj97t{otb%O!$v5Jf#YdC#@z-MFdPg<_)c3024Z7yxZ zX{0cYR~4RM2kwqx@c?f$?fNN&-YH+?3Lg9@h7}K-&Vd2f-t!U`HWFZyYv51X39AI~ zBX9(T6FB=2;R#CsyAn7C`_jOmcwiy~)DvNo8CR06cq{ZBo^VydlqG%zmI)R-aLjT5 z$dyKK>5V>R)dUhLoL@E5fxJJ2r+RwNoQHE^{mbI%NHP~hYPvefSlepSzD2Y|_7Y@a zY9_B;Mtrq9a*a8bouZ7Kyex}qI7>K%ZEmcoYtnoOJ5IB&!x3QPO*ozPv>IsY^U4*> z*B)%^X+5Emg1U4M0T>=S!tD|Oe|w&02Q^B^RHqOA)%h%3KIB*DR6=!)KK+QMYa?F1 zolmHPzs$mnI&mQlCiH1I%`|c5y19|sCC&VdHw&)4qr$J?mv9HZ1=mZYgS_%&!Lp3y znk9MsPa|jcPgEZfcCbf;nEB;%OdZtXwv~GsC3X${ug9SJyOXFjR#4I8w#6b(t)~he;onKx4+XoqKb%twrsn zZAAyN4`l6wgH|(%)(tK@K4CK-GAA#%E)mvA&e}}LB zbPKXq<#~VgU-fe&x{oiW!Qm^{3D50t!n3=}wnu%nO4-cj7ufO(*=D<~Nqwt`5sRB&PuCXhsj@dTi<<52H7)AFK>?QUJBFvcpvC)#G_5a`ys+bV zK%Y6Pd$W4DT9B1hT9&1)sv+{@MTCu79+c&8kM9}+SLzF>e;nb^MU4(oR}p)R0Md691%r!J&2P;SdP_oLMFu6B05;>kLWc4)lfKS#W5?wI%|hoq`hu zfx>*xp@_k|@M(qn0}BG5U2uozAAEj+p&UwrwSy6k5G4?GJvc;fo9Di~NbR%>7R`O; zDYJGxI8E>dA7Mun!eUxuWd+Mv?U2Gj!*NnrXHTVJbU#n}+OZll+_5Y9iNS;+y;7d? z0U39NOnr$=5>;koRA#6jd8DT55v}v3;fIx1->hl6s;zGAs%wRSh*vrmsjKW&cDt&} zw!3n-W=#W`Q1glEkfXx}Qs8t(5j3uAvN51y4j&X3@w_#tyW_a0#W72@XmpdFU zwJ9yH+wscx?pEEqr)oTK)^?2gpr4CX53 zcPo2r+|^&z-!C2~cl=iL+i$A+vuEqhsqt()|4CRs?j#ddlj!)ks=9cs^W=y`S&tXv zr`qw7n>R~ts_}XJHWt7kx;Qcy=3~uSSTJ3~f$!iYD%?V7I(K0-txXmcqySZXyRjTUA+J_CRG|P7^tz5RVVzNI33P*p{0cvi@F5gCc zd9^pcZTn6w?|%2a%F6e&m9M>#@!Fp5nmy`T)iJ zi=lMC;hb$h#99HCFYoKypK~Bm9XMDJ$omVwLyP3QFYmJ9%@>Y}x)1)@aYEgJAF9c2 z)i&ppg=eaWmym3&;~XW`(=}vo>PGl*;8;06R*8>kPqf&4t^!sXg3 zyyb<%qV~NwZ_jfNI?$F?O!A_$YqN7y!S&8$^IAY1T7g3=@eIwg!b&{JjXj_hEbf?M zEK@gLs48#JHgOB#!m5g1=*G$8(2d;8w4Btc06Xa<-6fg9;ABVdud~@CVJga}S!k|L*VRApay+;r@@byUz821q4~J zRS758;d>ePZy(nsI9jUgbCvnt|COeLwHvZ3H`A^ILubet?!ZuCk*cVsu&zYI9sA)v zGJ-=ekJDBN!^g7eup%3bP`Z!i!?_^tiz8UTLA=U2kV(7FZo5idXSW0S-A-#P3w{Nj z#x1Ip`*!wN8(l|0ir~;uNp7CjIl(!ekHdtIfqrddhhbmhzSf3??|2r^5;`V0C-8G2 zp!+swo#B{R1cZqcz)f(j2>j7O#ZZKi9kN3h(-{K00(PezY(t3a>=TKwvclWo?6?j! zLbP4j$>Kxc+4nnyU_25bKx%^sscYZxnb-e+vHdADl<>_>P5x zpDIf#N=i#L&Qs1){L)g$sB;VLEp^p(wY6HuDaR>(Z7pQfE%w4(?KAKd+3>*d0H5oW zaByI7fRDQ{d__>kl02Nt-)q_4nxIbDo@23U$t)7a?PuUwaDneIoL36}2_&4tfiFUa zAn?UGti?3u(<|zq-WQ>9P{VEf$gcA#7t|Nd??2bAb)dmE{=Qf0uU=8XY8@)wR>FsN zBLfiN2Ty$z&FzfXNgk*?ya#4VzDi!pZ9pg?WGC|4Kv;H%(9q*lmdqijRqPr8-i7{#0a<#Ka z5A34sT|ZkS-?m|P(&X__ha89P75E+j!zU9`_u}vNP>7p&4*P8`_~JPv#&?x#Z%=$x z0Jaepk7N=bf8zK}X)mnIE-WN}kU#tj3$rT=?S=NLHaPY82mZs~Zf~oy7m7Y}{zutT z)Rb4N$*aw+C@5IA%paJys7M9+aXkw`skXL?vNq5S%{6xW#f$#%HDzN(Q$=I3y>OSP zBQB;P24VoK*@;6T%HfdV5IzCM6%K|BhVbz;JWYAxgze3^6Pz33A9rH8EiP{ARDVt& ze)xgU1z#1V^kEjq555e8fJoOlWlN#ED>-F_g*&q|bJGh&`6b2qc`BH$^(^KI>T0X2 zYqckPp6|K@8%Z@yE$yn#?AHIo*qgvNRqXBKAkAX*;*td0q&cU`A_^i%0XJ5GB4sD+ zTiIy~rL^h3rEQvKY11T4_kE*4Tb5E4WZwiS2x8q)@hYHl-79m_N%8kgTD;!(zVGM% zH_{|0=ggTi=giD^d7ftyIjhwQxcS3R(fs)ulJ3q{k{2{UIQbT(B{>tpbN^YU_X^7vwhtHfNgl_b`YXRm)J{q|E5@CJ!g zqd#cHJIZvm>6|Iw1xR~&nWMOfhfi_;Qix(^97Aj)aHo)eB0q#H`mMKdbF;H^vRQ=2 zVBmv;+4#Vk*eU5@l*vE&JE!cgMz`2(7MnVsF%yp-?P++w|7v-X+Z(?wB z-|(ho*6{Fdb+_7=mXWfauYL@R9v*I8))ek1Oz})<3O{CTYVvcRcApmYC*Nz_E(~^$ zU|>Zo0g)MC>L1gzAaWu@9)-GGxE>E)aEz{EsPn)r19p)FYIyX81`QdH4=8}eMqssG zKt5B9(1>>n`XOm!@tl5Ln;C+#%^Q^l^1Zruv%mNQQm=6@C$X9~_U5k%z%Qh~zgP@= zf8qV#7|8q=jh`EDqWY*R*It!(U)Wpz{^Cbrw~Eq`h1eqeq1;n$ZQNS!-*wd;>$|l) zDtU{Fe5u(|pS-7>Llm54^d@bVd0by(#215ydrtv#`~HSdS??add23-sB}j>^dpU_i z)o{WWG=7XhBkEz$V7tGJT?ZmnuKWA7vEBVKTwptE)qaPlMA^oo@F=7|O%asHB0bQr zL^!34igLy6RU;+0*Hu*?#j}#raf#{v^dHJka0F;f@C*j~i)ZyEBf6^L8sz)?e83)T zib2jdUDKV|o#^|E#?9V(Xh&@H^TiIHMxoJHz#q~55^kb^uG{XX+2P%Z?nE4pA@gM% zE;M=?eLeVt_9fWVAamn)*s==J0r#r|L%H`I=RZmGGWI}-BQ?155^{-Q_FUpE>~WER zfyj83q@x|f<#GgI*ulLAbz`R<9ws@3$D?FhQzcqZqz7IT3RC6rJ=8r z*C}53n#6Fmi40de>LwDBhH?;3oQ!xvy!#OBQ)FOl6lXa$-n`ectPr*v zko3-Sb$L14c5{@dD9xFes7f>>;gswwY&W(sDNzLyL@esgShSB@J2moZf02*-O+qxD zgPwz|a;Qy`w>C(P-NUJSh%oHbw{DWzG7?K;h2g?5e7wa@XvpnGEm>>I`mp3k^LRWDvH1T?jtan@DV9 z6B+cTl=jWjkiHT!D1_j!H|Zd3c@Rl)q{aGS>LAfbOpv zKRSdAA!3;yTFATI`*{c*atr;zyNPPpM{M~62e22_;1iA#k#G`>6bB1-=eswvzBTw) z*0UOEqc44$JdOT5crfc%NOLyGgqMYvMdZmBaRfS-uIp2wzYL>Rfcpt0Jq_p242pl> z!OdsJaBibJOLTf{(-7KMbuWpYP%ivB>{rrHMNWZcWd?(%-)~{_zvhH3o)t=AJSeU| zGO{a3uRnUmdnSPN`XeK~{wPe~py3c4*S8(vSD+aXGq|$){A*k{V!4OOVNqRONpp(| z^nmC(ZqkRar^0*fsc62N@8(205-SU<)p2gVJAho4ee|)YuJ-;BwH!T6-WDNu^1-3= zSNNXuU>rV)D>{j+LQ86MbS>A-yZQTeT6juyG(TyQC|XB;(1g|LIC7Z2Eka#hTRk_3 z4IM#;=6=9ZHS{n&EQ)65u8ZbAnk3TIHG!*zz>wQpT3syr-n-TJnUZu9im%`Y_HcdF}k_D~uF=<@})!5YYhonVs3Y zQyu@&N21!gk|uVpN&cetzs?2A9p{>aU+>$WI@q7M!)T0NG!HYuk--+#>Uu3yT{J%# zSMI&0p7s>!*lBt$Du7w6z=;4~fYCOrUlNOZ?b9&!&kH?^7D+El_0vhPdbHBfaiYJY$^ zPrx*ddC;9L=n6IN8h2-ztUs0bi*EHT#vj~fim4&Iq$)n`ar+=o8&X~P@`35|dVDcl=B09QZcH;~+ee~(4 z5nb2_2K20<$h;5I++h%^t_}vFLfRHi8t&XzCWgrnWXO{|Ka-B5uX8I_uUWBtjWjJa z#gKqd|E|3i&XS^Hp5&7x5>JMbyJ|Lj3NEr-d1Dj0g=k#l%B5Nk`4L~wjL+!WASvDd z9Cgq*dQG*(w#5<3<;68D&X`Y^zdTSC>&$W`a;tV$ZoT-=^CaY$`rw^eNk{mtw|+{x zqb9@2u!C2Knnz@vBP+@3cG4~_Zg*a4XJK||cz9_&G!VKYj5^r^nLyWy!bIQIsU)`m zi+PRiB62RrV#*QinX`AqG@9?xhI-^GdW-1kYh)LdbC#SuizxiUmhavt`GU4ZkOM}A zd)Vbe2K5!RWDrs@7!!~{nMilhS@c6S{SbxDBG|zH03z1_gjhy?E?plKJN{Mhp2<#G z?5FF|HAlVz0{!DZ(5I!{8{lp2h>6)j#m_y5nPipB{Vn{}`b=aPIdU3>-Xv=&QBy*1 z(zO^*XYpyVnL1GK@FSGC`>P}yi|G&XXy*<%rr$(M-)Cg2>Eprs0B zgP}ULhGSvB$H-&!(JyCFA73IG|HF_EF@TJuMo2JBqi;n`roO(IS86e_#gL_Z>!H@8 zdyY$sYn;^$Xc;yJ5QPaYFB!wScmle3N^ci0DTRmtx;I@QF$*$fswFwSw}%%L^NGSL zk;7Ktw6h-W=rA2rxJ}JsEo2(`^;xzoQXOSe&z+O2(s^lACr_J|8YRvA) z%+D^c_~lq34}eGvf9DQ(R-k73G1^!WUQHf5JHTc3v)BO4P&=Kud3GS`?iA$Pi%ms- zG|)W@f!#58?zEG@;C8?M0VWw~YlmG73RocNJRxgpZ-V6&h@XKj@_t5Wzb_I|&6@TB zWWTH%dnqyEwE?7v4INC$2q+Rf|JXy&cI%XEC#~E2-t)a#bN`^8eKD?Ug7r9WhpZip zMi9^3y6(RU?I~-&423siei3y4bLanCkf|CqXB26Z#yz6zpprZ_gg)^lOOorrLq^Ph zSUXE#p5qUG-}c>^uccjG-3OI0>0J^!EEwU&f6V9CKeuj#c8ru3gN_=!mmE`L;D$iW zIm~%JJ$rtN@NYH9eEs<71yS=O7D{QKg|kLdzrRlMDaMOx2nh7!>(17n+jT}t`kc9V zi}frZ-*&i-+9x3?{8imB}-hQDf;E;tR8X9et2nNnd$w?yRZF35m(} zC@De+7L`4^I;keN)!ypdS3oAeMMi#sRDo1#eEX>BsG12nkydh-_j;1d4j2rpnucbC zgwRkI35F>l!6wgeME#En^O4{9m>d;`bN5_s@N~h%_Nv`g*#t*Jyg4e%GfZP8J@j4Q0){MqSXa@p0GkwiYhWH)s^sI;KZ@h78Ke` zfyH86edNLZBI?T{-HHMCp>j+B2{1WmE&Y89C*K7KF2gz8*IhDyj#>Qgx=Tr0S5NwH z-KDzBT4QaG?vi{QPAALhcANgend4zG<$b1djlMPRjCH?SE zxUM|3v~V+buR}bV$`%F9=jpee08vsxGU&dmkL&kwU4VNL*{Lh%c=D|fAS$aUt*cYf zJIK_e$vkau$TD*fK(;%`P5gN0I(hyYc}(r@5Cc>|cyDY4;B0o{eVYFY)!cJI9_Igu z&R`fve7qW#2C#(wl0FFfV0VS&Dttg#;D3c}$nKsPE^(zGf~r6_qAm{(f~Z@U3!ib2 zOUw>Y`U`plwG}KfF6|@k?)e$nakeX>#?-}twJtAejD-@~@U(Tkpxhp^dDFTGX-N;Znm8HfPX%B!iC5$rRL&dbFsRz#AdJHhgD9v z@v92*Emp26xjB8WMY`ZXXnTk1K;iz1J>2gw*Pefoyp|!&F13`GsfhIZ?}_yM>8N!F zxFfDZ6>W7%%fr^L+3}|1VBvvsDQ36D0UGyQ2p?=C$$kArkC9CButwN*Mn>k5*EH21 zYTgyz{GKQ-lP@&wEUb;7E1m#miedm5tYJnax$ad{m<52fjtf| zT~nr^mE8ld2@W_mx!{Gv!1a~16NShPT#}f|fW{#%B?RculHx7UDuNcpL4=kN(gjep znsr8`gSDuE_r0IH12xC zmAhyYDT7*HkF=TY`R8>zzJIwomdEr7b4c`Q=SiI2S4AS|F!C(jMz8n2w&B|_5&<0? z#mP@QIrr%9(SYQhX>UK{1@`hZl0@FQBZ{rQ{#=8)_V(>s9{pgOCOh_UEL!#!dr}pT zGa#dULKmK*BsdZtmvY*I`BSIOKYNX=$7AR7*SC8bx%2&VP%lET@g-$RdT|O+s>5qD z8q;>B?(}PH-Mw#Ds}!OW4yURSLqVS%b(}p5BMJf^W+MQqvKOL@q6&B9`{_W9C@~|E ztEO|rDQW2`*?j79qt>`AG9xNIDwRrZ`sR5Li~#udACYl95)tq^3^qev7T2_K_ol}6 zsZsi<%pLUkXkSFdlT%f6wj`w>wZzPk;nA+`MUf?uei0kCZHm|^h4KaD$0CRz+bt9ZLT*XdN{n;aOE!w+oRzx`lwePMlm19`sAw>Y<;v{;4A|1U~%Oco*| z-^k<>D%Sp-QN@uH2t?%gV6%Kmh)kY=pL%|f&%sX&P!0w^9K&uISa(RK(GL;7O1y1+V&ot2&<_2$EwcT0N3d7Hq*F&H4SI1QWS1z&0=&prF=_Fd6?qV`D7tp=xI;;ZU#v3%}Hw36h^ z?R}M}_yf>Q5$`23HNqD1xz(iKhs)4H^11eSGjJ>18@k#Bt5i61bXIg)EY}iVxqhW8 zJY{8UG>3iOwlt2~1em2oi9^pNo((_3IcjWmwJMzASn9E;x47JroYE3idu;oLW1L+g zf9oWfn*(+?XnktxBc>yuUa^c0;?pBu-nLy$(R6c9{?(8>#jQK8jM}}SWzF7@1MAp|nb3H6p8|Kf2UJp_-Dkw z^nUo-U+JDnlDcO~O1lD-uPYdJVIj&?m%7sCx(hY_9TdsY{mLAHD+IHS#fb$E_Ymr6A6=HRA6qzDZfUJTj*pk@D7$h z)P`!hwex{oLgt#KS*G;lji%D6-2vSJK{6KZU8HdbxC02bk@En1!Gu71Q^yk1ILNJN zX87e!$kGC&yt+7O`=(YqfK<3OMd-m=NhA~L@cz&WaUn>2_78y5+M`n;bTEuQQ7B#% zR=b~6(q(M`9QgmJx{H=gIZE|Ny&Ge9x;(`D=~3N-mX>M6!vI+DOgC@5vdnIW<*h42wveq+9)&bonRy7rn^5h8L%v`Y@9B zOl0u?mC7F3E{|5w`WB}pI+BnZ@`5q69xYJjAZ8$)0(TvcT93>Z8x|Orj-!3a6aGH? z;qnu16y^}bXB1B&i0X5gC;&5+I|Jk|AiSOCUamy6Y&m1Njo>0)q&|ihkW%Tlhl-c2 zj9IRh&kxv^RNKhERrAJSmE2x^J?gXTDw6d+X(p@5bKE;`ebjVir?lnkn|r@g%Z&k; zU_~p)L#?f@R&}1;YRTi}&PlGMoVfVa>8n?%78OQTuHeenyXYe;F+=1k+x5gxcaB4C z(wZ_#_8lrXd`R{Cy6aTTZP=K;kv>R8N9aRpxn&aVH)zwk!6+@@)vaSU1uc?nerdP!rjde;9Q??q^o2Mluhw;l}!xu)amWI!Z zpF2Y};=s5)W4W3+JLk1%JLv>O5Z96kPn`~ZC-Op!bnA_;Hh!mm?|fy`JN%*gGfmY; zrKQbf@9$%g)BA&6S0`gBu#w0++;xZ%wF$&nW$o^e4E-P4!^p)FWYxXn8wjE}(4P*G zcwP~nec{FnV?D2Uo)!7~eAeZX0JD~>$z(y~JIWntOVgvd*SFEfS4>yWn6tBXHcz*I zPBTcxD`dM=_ip5c_f%JpkjF3Y<_hYL7d5Eu4y)PDS7d!ihm>uX7RJ};bZh7nGdHN> zDxwM!xDToCt&zlcvNXM-KB21h5_#e+b!}~ozLIZDB10xS5~R5pS&SF}-4*By;32)` zFCK~Jpj> z9NuWMRJwgdl6J0&`kWp5&-vWq+-0R9byADfY*Eosq#v{|hi>BxkrCMu>e#qkTO8kp zPV&$Q@{~y$Nc&MhNr$N;qjGFJ_~*fZov@e$tA$(SQ$a6GEU}hYO8AS1PoI6OT?(9m z`yr?^eoc1u1-#{*eq9UwMV-pL$PxLpj~au|^I%Xocp5?T=~0s3Z6)uxt;8v5B}YZb zW6c-esC@^nJQ*eKKgwV9nSa;QWHO)}dx*Z>{VLfbKZI<=zY`$5JRU@(NZLlu4dz-6 zC3RJmmheKR8mGfv-OHGxOPOPLs zm&x0zuXbNKdWy@e+VSZde@NS_$kRius`3k$U6<6CE@vcO;H~88pW5TNH=f)vJ~K{w zbkXjhaVoG!X3V4$c_Yvb-3jiYtk3b#mm~uh27VBezxZL(tXq?6~(0hH^F} zXW2}4%ndeBd&~}#&1lY+?g_<^4Qh|w=&(5RY;A2*9Ms~LJY?RWRm4PEOaXJV?eI2{gG zE`GvPC;d0C1I@2R&_atmLYG!a25FH0=??q~Nd?JD%`nDI0awNKyrv!0o@ej~;RQ)H zyt%v-8GkX8iv&zJAsKpiKPDH$liXG*a3aQ{SD-+0X zn54b{OgD$-kX-r&d7A!KA+=bn7FKFn8lReGNJ6OtC1DNQTg;sBX{fN?v%cB$sWddV zaYu_9Iq`}zCs0botkiNT%d26i4a7eH%kjl+Ac1$h-x1KLXV^NV%>k9eUmqF>(hvnx zoiNf6S`4k!A@Qd#2s$MhCB%x#?Ult9YIm);qB1oR{_ZGGtcXm<@V7IwHnX0i%Y@%V z@9Sn9oviMz6;GbAd>YcE%RIk{GNUqekt*8Z)myzNtL{>hfAl3Uu+SPv7z&m{4TP=G zL3JL5+M`>AIO1kNg2dBk%-3}KIXeCJSW=k#F6sZ|m!qz~PbA|%Zv##Kp@Zb-2&f;f zK^2Bd5%xn#h@D(paCR!vc%EOBw1ljr4y^FuY?P8(32`xxa)na6~2q< z9D{ckzl!*shI%KNbJF(+o#%+EjB7CX)o1N=R#YPS#`z*g$B9ykD>EzA4rfk|gRgg1 zRXOU9ka@mj&SF#_JNmIpGt@68b9~9XBlV7|Drdc)!+UAc{$#kby;(tD>j^{r zaqVVDJKuKrz~SbT#nnYMMK#je!sA5Rs78S|J_;X(=V;i>St_C9-*Je)f)E~=xU|jr z=36QtP?Z0qqdC-sszT_*5%c+ND?`_9UMCHU2pY43InD5xQIqc8=)=XIHpN`vH~#*| zR^p>Z#G!hB@j=@gQZil)m2q$#NC1Lrxa4C*jsQ#$QLab7#kI4SJmN(>4j7;0dzaGJ z=mg}eafW_VjuII!k2qABQ)#Q<*4FCI9#+*k>WZp4`Suq>o8k|?t!gTHySk1w&h&Zj zT)lGP{ChkuOCI~;#bK9-LUre(rW-qtQIW2QE7BF|N@AK9A6V74N;;+e+NeL&O>h!{ zW%`k|FWL{a`2b!|#Jhif^o zxH+~srYNRJswi(81B157>**V` z-|{Jx#qV~-$LH7*__ewPx>f4vXh%^j9~!VfdiO}}z67dHKLQH3jE&s5PaJY?u7xY8A4g2Ey=^q|m{ z+oU7r(}^KerJ|$1fiLyy8*e+xT3NG!+KVQ{s2G4ABP9VG&Wsjr%{yGuQYl4k%q69k z5_Nlf^}%Dj-6E3j+fNo+ekUq23--LCQv-7^ud4)+>KQN@^fHe{jCAmPk^B&Vd;kZ^ zXFyhQtH~t|N~HMKbJ{sxd5&8n8ORWI zBY6YlhZwAnox=-Vv@__U(t92TqhzSco}wg?C`m$5M^Yz4VeATU9m8cz@8f=Pb_*bj z-vP1+OUm0O-ZJO0GUX_f)f_ER=WU6e3IY7sbJ;sI9*YFkoZr(d-rCu7{#_hLOsAoy zFE_i0rj$HhT2WbE3j3P|lD;EKtPOX|b81@15ZsF+WLooQUu4w0-PqtdQk8!qwu(qy z@-Lol(f@}j{y&#^kbi|e$WBj%ve1bPVs@d)m7SU)mH&v%S=mtUHoMHl+1VKl$)O2} zxzc<~RC10g!vYDv4&Z4_}n!6me}HSdsd^V&{SlxW)`I;n+x?$ski2O zN0K?qk*wF-Oy${``DqrDF+C$U(~(-RJu%rS&B@C)+jvu&!I_oaQ)7b>_z`1qR7!MC zq%^L0OQoK38F!mqc_j{Wp}ojn>~NIkyqO!e#h73M{KA|jHQVhuc6FZ3Zc{nZt4xj} zXIe={Zi+M|w>UXool>^ln9CQ&Rb*BbNHa|_dNY@9j<3!uv}Bu1CUbgGq9dcoY>RAj zP9dzilg$TFurRRbG+d-Lf3L#kA7~7p62h$Bg_>K4h8m_3%4P zx$7G&mOQ7$nPr#8Cl~BWw;||-Xx6#g*FU*)Qkvt)x8|!W%mvBC8M*fCe3RXlUzF>F ze^H#9pPl70)wa)zd?0h528FpM> zm{p`tPIp?GGmNQH2gLC6)hQ`{U0V&7YFoLr%Ft6niLn|_ zTb`rRuj2@_buvO+lsu`#iB%pXtn~$S=q*thCunr1`bsrgBw5vCUG% z6(m;`Ik^JIk#tv1a$@piC$gEKiL+m+jpo{)uWF+1{{@E~2rTuWh%!-DHd z&CANmC^Y3|NS%qMq}nW}xw6obEX{)xnxo1|aU_-J0&fv-HgQ=Q$+;OulO;OVW=buM zwIeIO4Izs;eD(9 z#i0;iXpfM&eT5g5^obKsbuJ-KbdT>I?|UEV`3JJNmu2n=?g=7ye<4U&l~x)TN0aH0 z_%Mzxx+?a-}=DwmHLVrl?oQ0E3%PCPMaq`bEC5si>{F2UFK$ z`2F?Q1GkA~qg~8NMT!;q<$Er;${7Hg0Epe2awdxI4&`Aa|9pD?AcRE~2(+~VQI+KH z^J%Y`37lUs(=bW*r2BdjB|s5yK>GJm$J~h$AzetnFKWUNHb_}2KutSA9;2P4uZDJlKju*+X(T|_ z_>1~=#lgp?gD@AC87|8NZM@6_?u{-f8Y;~?rqaxQ^##-qFZ>6+b8n?;{p!4uEIkSx zBvQtHA>O^P-(lJRw#*9Au;qk&Sux%{QLtAdWF$^2Ve%tAXF`&^SA7l%CLWYG5T%8i z@WYmT6mj#GswTI_R>LKStjSzO)dO$Ds;S&Y>t6;Nc*V~=QHkIC{QE<{+oWA*x*t=L z*u~^$dYB7EW`(CK@p_c-p?@tvF!t`VJqr*(1pZ%SEO?gwKHVFUNdel?D`+M_f=zkd zM(TmPj2$?Zs@1F31-WkjjLSE&Hl zZyj0BWcVQgw!5gdx{3>HZrpHOJzFM!tk3ZcjbY7PbyaQQE_HorypyftR*!Zw}*Q<8B_ zDZ3}A<^KAKQz8~E;+fpEXwl-WlP9Vs?0W6Amh;we(Wwu&eXRcM!=^K*`EN#x7HY#M zy{eMe^qIJ8%Be*h&|>RF+EX3dK2f8mdJA2@Y#&xao)iPMAq(F6OVXE42) zRE{9fgo9ke!P2*nlSWzaeBFjM9GN?T29qafm>NXHl$_)o=;jQc`XqvrK_@jp1pQMM zz`|91?=V^b`9|rnx?4oTz;?+uz=C6~xOUG#vB%ooBBBpXI{7SlQf&l07pAy zZTnt*=6GS%Tf74+M!K>{|0%xm%s#aLl#DEcAuGeLYR%HZh3e;qZd){#r+ueQADS`P zFn-s>vx}um&wLztQ!Ss{=ldUbpSr=52j0K>qw6(C3P@^}_pA z7u1K_(xMyq3kx?6p?!j+WV+y1LewNTH^*l4%Xd2R^Ya@Td_P;6k|~NyONIK89$+8( zvXTZ4+tHAjpOv4P?`O(2=a_97`M!w9VHH|NJB8a6+^zF;h=fjbea~m)b34SDY+V3x}2Jp%gDBiFvQMZ97*WtL%Tgf&op1gI_ zCf+j~hi=-mb@F0WH`F6=gwTdi_RGMIoJ2I$(?&y;@}I8K6ZC|He(#>B^nMaD0XXS7 zib25`zz>R{LLm5nSU~e9ID7Xxl}wfbkUu#Y+4GZxO*4-Yc^B5WA~y19-#paTf@!LV z$nl6LlVQqlHr<%@E{9b9r=o)!7S%3P(+9?kp$}+lwFfuw!U)d@aHk^y(T_>#oKFH8mN@We9wFK84Oj{SvKe?5tU17cH(ou#xL7cUOp39NB*9 zii$i5)P#gQb>-5wl}9+?H_z|hQeEomGiQ2A{S~pw52ifRHdqZT+AH7{Z5i^$GuK|@ z-4)&CqS^1>*a$6!kw~FEL`L!~k*7d=vxdj}2^pqah{7ob2yk$rGy{YI8fT@ZyMrmN zQU&YN9<;RJr3px?T9Z;rc+x^!M8&D)>*7`S7$mF<(N>BzELpG>VMlMQ6%MqrSIDE8 zH1`U5+{1mu$cfdRunemgh}zW|ps`{_tRXVR4R8^)puST$T8$ z`04ScKPtiJ2W0<2A|KQ#pQ#rf8>hUw=ERIL?gt_feS>8mhyNjwp9(lBk=Fz?HRm>| zEs~H8VM{l!YFOyoW@|SsRIT5XxMkzIs`^N7!Dtb7U45uM_M-atuiu3>UaniBd`c{T zAYd+)OKhK#ZOvq;>ZeyukC+&=VR{&MW1gt7eAn*1>gMW%P<|YZ-A-q#5^Q*Je2d^3CNzyBE}~D4|cajd*j-A?cb!F^7+;&ea?})XKFUx={78`txhs=DfqV zY~CBxGNi=p`&CwvO=K&}1v2MN@B&=xV&NJC7G&Ji9XMe zm(3Mq)@HQoNx*vF*bgt8PpiLt&slPkKUsXN_So*Dd-mKgXNwRaBEhKNAue_m@#ugiCkZPb|V#;zZ zeM{no9qZHLVq&-Iwnm2~ZP82P=LKg3sprotZJNuks|nwuYu$P(>AmdhDWuugLJ~x! zmdZNSr+II=3b^v(hWvx-H`{EEgS<;(ZqF$ZS&}0xYtp0Zsl33fU1(XLPFk32 ze~!0p*qF0Losw#`r1Ca&jzvYLQfq}p>My$L-<1XiCuqiEd2XOAhKal_@JbRZNQgJn zgYoKDHc$noVWjeDgh7E|Tn`1c<30tocg5e1o)v%bh_f{$cLKHJcI`y6%V!J*GMI#r z#O-1$D6<5Ph$-R@@fUCGyAyu^*xA`NR~c}Z(F^Yeh{%Wm@`70YGdKzm@^!s~><@#B-^0>eNJ0flHm`__ibB{HK#b)g zt+wFRsVcHpGx^hkV|=^#Z@C%8-@Y9CH2p*GG|}!JMP31efZ@P$;W<1*>$O_c)w-wtZA#C(ml() z6o3Bp&(&nek7O>{frJCnpL88fK?Z&bT|A>|<(^G^Nn&o6F)lkLGc-HZ7zZM?QyTEr zGJx$E$`@RyQlSr6kc+T>WgN&-uhJN5eR2Gu<2$(3bXrEJRh2X^Y+l4FY3%zS=s!kO zn}q^DaX*8lFb4ptG!(BK96kp#;KLdcEY3Qeaku6+tMiwnlZ!rT{Q!0Lx%AcbtIbPh zPhT@oH;j83b;e3#gZ>5H$9624>q8!eV0a?@tBF)QqiWS|)Hx~FV2o#VHl-Tly>)&P zb%va-ifkn_LB8oGZ(@PgO{nd0&>Ett>7@y89gpPJ(AQX{$So?#VJJLdX;MB0~bq;IOJ z4U0ssN2|DiOA|m!^iNcF#LqK3AWFk^g`X*>Xq|%vmCe|oS#ThoiL`o$y0R_Zl z0qri}_QkbW`qd?Yco!TE2zdbyi203iDcpU=AW^P=9_#&uGO>dWp@S>|;w^(IuXr(c zOP~OtOqJdHli^+ZwhKUYD!Mu#hw0IJwCMK+7Pm%tfyt!;_Sd_g75fPt=(b?LY6a~D z4QwOOR`C(ERp`O7+^jcmtpGw9V5z_Xb+WEbHwdVDn9Pt?_jE#eU2(4y;5|&uJwp|e z{%n})PQzOqswrqQ*l3oDEy3P;vkjlZ#Ybdj*Qf}-&1Z23ys(u1*1@eZXyPs zQzo4~Zs0`P*DJP8`wsm0-Elk}M;@ZDBDwrB5pAju-LYULk`XuOwf(ejGn3GwMzGj~;E z%eMu2238FJh5jPSKx98vg)F-(gWJ6=rg4>ehYs?6{N~UVn-}#i$|%4c z0;l2Bz9aiu_=?Jc+6L9(?KRtWa~ZB8W3jrp$nJs@iTbfXSY%|<){R)x%S&JX)6?fK z7WZA;Ek@$@KBDWGGIJ1AmIQ5(MwsM@QC?cz@>1-}k%OO_J!t3PowGZ4{#JAS>gmrM zzX*@}x?1*Dw`2e)*^*JUB{NhioT0x$pH<;j;9xC95uinBmE=Rs{WUD_VvYSfSD*Jo^h> z)_v3%TO3#<5k%ms%5K^Q|&OxjhJF!6tXXJZl+9IyZ!>?R9DwnsvjN%!w9VJBNzeM zy+`9foyTh&x?R9FfyJTl`l^9QzhXH8QFR#r+Ds zS3mm1(Gk-%t+JDMBd52@*kTod1A=$VSi78ykBLEqaO&8(Pp4Cnl*WtGiD>T6Q*Xr8 z##G1GNY@_S@m{+M-1aqCm-KaH@Ih5sLm#Fq5&9W`C}|Opgjn`~Yc0VnTSBD%zzhOXQLgGj!3au<~t<30!81F)>Lczcust)^ptahI1P)sxO{9 zaIS$rcYMz!Bn&c3_{NIz-OZ}HjM}7fuB_ZuTc>JHXo@K3^6%cdd-Y@K)sI`g{SEyP zP5hk<6A2LPUZE=gu4+7b_(Mu zjzI?o4Qp6$c%c(t@4!N)x*TBU@DSWD&>g5u1ksxV5UEpK(G!&Dq&i6g6x7)|jS$`c zo&1iK#R2bAyYfw04xV(s=6piTX1^)ef&(7jgXnHV<3tRDP_F{GQ$nGX_ekBuz8!IS)^gU^Pp~ww*BL z5jI!BBpR*BGFmJ~t~F-u&K2q`+1UlxYHOT@mAq#N_7;Xn^p!P+TF3-=@nVWmuY_&^cyLm?hAkz}3A_aL_-NCxL3E> z@)d2cqS!dC@FrQhI|l@l6ivIhi=mLw;>e`H6zbFEl7Oe#1}bSVzO^%UYW3eBZ0@sw zu>D`yw7-C9+`oZo{|hYbZ;lT@X-qtp-BnK%bWASS9ZIU zup-S~IoNi%pK$*FrJ-9O7p@;8>(*h7TZ}RDHBIf3f8q&ZX%=W*!?+WjWTP13jO4N= zV%L@}SlpcZ&u`rd$;&6Ed>qMjS7AjYca`MhohLf3tC%t~Xvi)xStR4T+nDGrQ>g{F z1#{L%8bq;PVlM69mp8cQ0@M%W4KHzJD0(2(DZ90!P_t0%?{ohn3vBit%^vfYyf7qu zU~xdAyD!J?YM&!RNKmURPcBX5g2jo+SQt8((cR0rb}SQ(u8vYVUf2Bp*y;bHjIo;O zOsx&;Qjyi5jT#w`6xKS>t&IB2%yl=+bu-L$Z_U}@Z)SayQP_TBji8W|MgLj%u^PE_ z>I5`jcN@xNrgu1knA*uQxk1!K7_k@ZR#0@j>H&9vjRRVii4Guw$wUW+!Aa?m$z@uv z0zrpFo;^))HQ{zZ*+49h+=EcF7E^8;ylKXE?Wr6*WUt%K>h}$*)#}xsU}FeID7m{D zeteLo*N@L}*s-cS^W%NxcTd{$3c)&&VrgG6lNBBp%qE39@DfC%WK`!J>k!buRM)0N zF-#m3&m8T5gTH0D*TKJg((BmeB!7>7n z$AIyK%ArF(DuZVRkIc#twWulv5&@@|-_`%S2H1*9U=yr69m~yP%9UW_J;i`GbyGaC~d(;h9^TFqXQ)@jnocO^>r&q`Vn_fX1_0n`m1*M?0IS zu3Z!iDJ4t+SA~DbhJl_h4i0Ze7C?R-AE}n;M8m}4;UcPS3MYz83Dri!vV)XPv?!A* z!oyL~rf`wG`HmQ8(}^H59f;#W=NI2WdDEGKRHq2vb?v0HNd$!pYm?PWlE*{z9dg3B zgFVdgZuFPUgM$Bh?WAi0QhOBjcSz`va}+1o1`68(2DM9#o<&T^61!GdoUKI zVB_K>#9Oy;g?~T<9sV=csL+zPHT}Kp2(1!AbR8ZSc8tV$vjc-Xth|mL%xgpxCorIg zL;=yd4%)#)>+t4Pt?K|`Zwq@6@zp64+5$A)X;_!J@1d^c{oKfUE5DF=G=le4Aj7O2 z4y$Oue{F+R!wxFOLBee`zMbu5hiKoQ=X<0#oTFPa;+t~U# zS=_N@ySz215k6xz=tK?J$xnH|y4!Gam=9z_4{9JuBeazuhnc^HDLWZgh;hr2tKus*svFgAdV_^LL1oe9v4<)!|`}_yfvd*_qPn~&EdoVR+inw z9>2)$xx8yJAt3UR=1p{abk&y_KZfbdGT}Se@*Pch3I#QU z+l+}A&#!A4+RBKr=vLh0?Qkm(!p38vG`0!9%5{B&TJn^VLD#3vUoe%;SJ%#-d!G}G zbe(bv8qcl8o4-%1$EdtE|Ln9anrUa}UxWO`y`^38%5Pr#V05Hx^arnf!y%cz9_bw? z_QPSQfRfw*=5u!+a!)4gL}BESA-~W^AZvwH<{@i^pn#q{@(V<;dL>R2z%TX+llhCE z^-7Zofl7ik(qNJ)4r?bGxl~xxv71l}-%6cD5Km=eEp^6{im*_B{!gvnE+Cpvx!bxNe z>{Tpc0d{-=Ei64bt;poUAGe*#d_?nT!3!YOC9H@^T z!hcU69&(kwpbia6oHR+bz%{=@%MGJG>w(xEqN4o@=|jhda0uLL1f`CYt05!tX9Glv zefeX*79!Z%57&Z0uM5mSB;UOK1d(5i3(U;okbPr9Wqg;GtY&@XHu?$cecJy+U<4(3 z3vu<7HeCZPK#*j`e+a)SlQU8?^c-a9{uHeZoffuO4egPbt6l|+xbz|8)zEBw8Ud9t$9PYM z5cHyKn+E+NROT&^oL7=D%Rr3jL&pOq4LC<1I%XNK53StNqHoskt1N7h-fjNr0|ut| z`RTQQX1*|VUwlhpb7AFPeTx(Ye*K~hHN2+z1U8MJ-7JHrn+`J*LgVOuFM6FJZ7^xW zD5gc=7p~Yz^vOdQBDF}dASa*|%j4lb;DaPk2AHp61uR}TbqH4cHZ9y zGjAaFkw4j|Pj~0v_H%dMLR0*EzkeS?9?{67CiQv!Z^f`pBkj$St(@22Vv;fqjyxpSR25^PuzM2`o8C-Mqr~?`-IdH1t^iw zGF0S4P6XHZ1;Z+^nFg|QY09wK^x=85pL#=RK2{alULraf@bqyyLM{IitnOEr%)uJ; z!X0R>z&5-{lwiIP>C(k_`ItA4rk^Cg$UGhi@>%ZPO8M$o+?CXo4eJiXuqBM9%H&_N z6^w{VM$XFQt4X3p{$)JYuZmG&Z6bLpRt%7myic8 zkfHC8#~o6N;Jmm&~1*wNS@4-q~@jCQytQ?&~$( zu05n>#}1^kJYouvk4-s0^a`6 z96KfwzUexlw3nw>B-&?}`zF~F(v69p2mQPL@Wrw$3FXFj6Mf5!6$SQk;X!}VL%#08 z-TYy1iXO%Vn^^osGclO~tg>9`c~W?ij7Hf{3QviyUV`V;1n^-3*#sir^BnlakPYad zyDFum^pcF^K~gr6a7%9t|AqRr&>0c5!IJDsDK$!=)@`+^iwYfucHUWx@clbv1CU{C zIn-L=W99OdMX#R+Uhx`vb>1FP*AfYo$3NOV_i{QBmWarbBIR3ero1uNg#}i9y(_Hl zOi3(BP+KJl2`Q1OJdN?J@K~nI%}81MW{98Ahu$6IF^Sd~%69Bg7nbDZm-50QqW7-G znpq0eyLwMq!&?S^j9?;vlDpo8N$#UP6a0PZl*RSN-Eo!DVsAz^J>3jM7yOHE#g5dJ zZO#b42xooVZl=xEA>LLMwadV<_^Mr9S5sV5h^0!+8c3c)J&aj5!YPb#Fi&rbJhvs? zibLMd65&*L-~tRo?%QHwC6=OMYgJmYUusdDH8l;gm{#BJ+fa+s$`E7HNhZQj?(QTo zsyZ=n?Z&tNN7#FSH*sxU!#1|0xeg%-@(^3HM)ZUddJQEeK!DJ}1TdJ6ZQOA0MY83h z<|?^Y+%edI4Vd10CqPJmgc2YLNeBt#jC5q)e~q1c-}`+3^L(F+Mw*#(&dg}$oU`{{ zdo4^D#t9J_>ihx^`irI)J@qfp6YF7Ey@1D7`U2(#TZ*sBu@oIQdeqM0R7!-=^!Pr$ zrxWloh&A*;rrnF}PBZq*KkcW~(#?I=(glk=p~sSe+765LFmm8taP6$z%HDA6(+yum1x| zJb9w=>$@^rhsBqbcDGBaNGy*nrH{!Imo6ma)an0$L3%6;oIX`HwQ>3hz#xC5KbFRp zCsrg0HJ1?$@)+v?!>l&f%4@4T!JM^Nl~N|MygMF;Z)<}o{hxE#B zpbfV;3$r$iuL!bE_7%aCS3W$93-}pri znC75zY!Fl~dpRi^VHGzUwl??*3YxxKgM1Cj`VN!G*U%UQ3iV%|8XKCi#$plyUowdg zBt3n=`tkyaByOUmc+e0Zm!6i^JXADgS9CU<(@AQMRY65i}8Fi087pn&=$&yPUEx zc-Rh;7*uiK3xitqM9UoZK%`g0N;%eg`^Iez!;tyb&3rP2}h+KgTIjb22@ptD}%PD z?%ykWkpH0YK4&!Np3Tf+j1uXtRD?gpAygutF|Gaq0GPx9WGOOYKlbc^K7%0~hdO@s z_(J9z5fB#61qG~4T`!+FF~9IrrP{a%#J-F)7)F#%h<9*>+Omvt{JSRJf1r9G-@8Aj zVY{+=Th;dF>w`}csf4CY`Y$EVt@A0pGw$@0)O2u#Cs49hT-5K%*j?ck)^=1JO3(P8*=d8T+U(WNl4LSI-&a!Ibsjdk~e9wsy2W0KZc zc$L$%ndMCjIPj+>?cAl=Ek~0GSx86+=@8l8CoV`WUPGOJq?}xEUn2N!u?KB3SR{nW zkB7bW7W}N%TW~x8_u))G>^+{FG;iYS6~T-k!0pk2nmh#F$xcsKhe=|a$UmaxH7X7c z4Xp_P)x7TgYx4O=q@14!Ger=3)uBsw>W2ueV8_FK*ORopfL9CMuyhx1LVP^P$?Dw1 zg19jyN8nyFYUEn2UYDV?c?=OHWT+CMp_zXO|i3Zw@LB<)lARuP;BMU!|$z z{0ld4k7LqIW~~{#6T*06G=KwsEAf@%8x+%C8$ZDp-cQ!ih7JO*A%w`gVF(`B$h`uS zN_>7|Q3fyrLqz`}U(L=z1UoM$%VZYp#&E#c?Sa);2Y6{E@CK!wUURlAt|$f(;iZ$P zk!EsB7B8B!aE9%@C>OO(jfe>iw>i6Ll8kX?)up*EU0OXD%?+7K((q6KYL24~8LG^r zyku9nrHELO0~{{&YMe>9DJRElFuPXp@7+9i_t{^~5EJxK8?w`E4?N?-cO+ZlKm8pU`{cIubI(!s`@qOJh=Gsj@6G z+dsvZe$jEug*+A`#6H22)hW%8i7-+o_&fWMJ}mKevU&2JE||seol76Zs{t-#rV~9! z&$&RS@f_Z}@>P7F&TK^TPg%?QuCk!4M@e#yoO8jR=Y+Y?t5?JaGa^r$XJ<+Kb`*r9 zLuWx?yo{&`jS73C2o~N>t^;0mPNLBMe-|ZHXyd=iLg_{Q-^cq3ZTq0@&f`SeX!X?q zp-ob?LO9s};Z;urJu@;L7A*1`-&#LoJI0BNq1j+@5wEnhQTnk+moA}iUq+DaA~IcE zh}7a0Uy+r^t4OrS#*0_;m~Am)H=0Hc!sF^@-N4_Zw03>TEIbvVn zCjQBR)PpHv5j_GbmUi)Gx>V#wXNed8^LZA1Zi}U3ZJ&~{4df#cJtCe#dCLM?VQGia zU+yLvi~2Atg0(7`jvwUMXu|SBK)r|H$w!RDiG1gT{3MI>X2HlyLeKJ#6w`kUUq~Ba<$5QwOz55w zC;uPbgojIrDZyj8R&dOD{O_WNo7D`eRo+=pz7;k@?*5+_P}W<+$X+3&Ei4`2frAzP z*C(tYIXyX*TyrWc)hXk_@-vZ4r0a{BSVJPYs>m^AnRMi0Ec9)4rSu}hgCEa;FscRx zii86EXi%L$vyB!CB%nZUZl+nsm&WoFZ4*mvAQ9bbUD_MW3^?2WC5ibzGgEozj!P_V zSOj|2stgtKC^ECv%BX@Q^pzH8$+m*ZiUO`8zXpoNh??JWsZbRlRUkYmGD-#EC%V>6 zY^Hn3-kv7}{iJ_BNVBab>vh(4-FBT^r`LJ>ifq*#aG7$*(nW5sVAs6m-&R-e)mMkP z3OT-=4_9?Ld-$;af#(sJHy^mTyVD+e_dD))^rXj~J5baU2*Xz%nW*<%=_>Vot9;9? zT&bUU#M2dQ7CrCWAwBeW++FXu>uC>ncK{E2x*Ya=pg(fhs49#-WQE@YJg>;2 z7Cao6;rbN+<7P)xFT4|uDhx2r4>350L$>V}!fUt4O(&Z(o2am0ve?O|)a8eUrWy35 zU<>@?QFX9pS|_skRq1tc<#6{qyM#5Y)Q1JpTj;{$qBDZc5y;g>zG{48g+`vOtQ&qGrAMArk!a)lzTg+)LDw2{?RB6gIl_4Q7 zSzs%6>C&7hw@{~tI5Z+YLWNAU%;1t}fwI`8i)&CID|RU<&#F^xW2#gU#i4MTS^g52 z3F^|qbqPXjF37<$t*Z;9R$>)8-haA4AL`@6`|v*h)di|a70AJy5#%|AJFC=Q|L=DW z{KvdIyL`Dw(EO4d0}P{>-@|J160}hJ+E4dG?Ms`09Lqsc_}ll@TpG8U!eg7&iG z3zoJa{>Hb#2EmOax^$^?#q;O8c3sf#@^%%}!*+S==X>LAJ82gVfHYfUJ7IU7OMJ0# z_k_fSheHSp!dij|T~1+=5|b#~cH8#<8Vj}q4u8NYx-6~UT8ZgCcOS=?YuDG-WVZy~3k zQe7Tf00u`WsuzVABUP>us>BGWWjjm43L~miT&1ekSYCt?=$1=qfw{aA)HAklI4<9M z3{_Y?R^h)B-W`UJmmWZzTr%@DMpzArwEvxCIaoK57*?B?mY0&9f+X&g3`RF2Y>XWI z4gG&3BcLGkp}4p(zc^D_O&pCTtvNN%H8&NB-g4Vov38GcXJ!+_$BRq;*+pzLWtdZQ zUGq|tv#^V=m<+l~`aC0(Z(fTv$V<~o%~_@U$Y>X1p3amGx+zUgijgs-kFDw_N79jr zE}%O`DF;DmL)>3+Rjl>ZZ#MWdbA%yh$2LkLjmK_h;B_D$E>+Mo z#9#dCn`=b$$D>&~1DBHq^+w3e3NWlciPXhhsDtc0lbs3%3gC?7G#By{6KS-Ph7FaV z!Vmi^ez8dh3&%OQzrwl*ZZ4o=l}^`4?(byPYv^}cy~$rJNu`_a(|I>J+V>>waqx}o z*^`R^M-3+L_C}+5sknAVvmq}h+jO4{bjdByf`~mm3l8#bbnP~V%)o)l0Vzm8Qs!(4 z-MkS{>Y;R=jAoJWk!1D^5CknFPOFE=sHo5KLC|{WO=Jcw2aV6nWF3Cf(=`1-=98Rc zh&3l=ry?b-H%atk=yVAf^h;5Cyn;-Z5Z`84xMRsWS&xnmOlT(nU)Y~~3LsxE2Wv0u zQC!B)#Hy2#hy2?Zk}zKJYAO12d}FR%Ul17p7MrJ=-FGW(BR_T;&|krSCZ_g5wA&&I zO=w5q5=kZhfS?vrFY+;+NygG;OiGR^-7F`|#fAB~aH!?vYl~7$@W{;vjgki)1UcfU zI>ZP**iJkcnEJTD@c=WvC6gYK$@a*AM0W1WUZuqb1^J%r!`J#JF4n$>WZ!tjUy@Rx zL#F;>a)tjU+pI^{wW~Q*ouiV|rD6b+lYlu~YMT(fHe!A3I@h?}ajjtosXsr(B|lY_ znmt=Ry@`7)%gw>yhz7FuNQKg~Pz^HB36!%`waB%*JBd$n(?_6TWOZOd?%M zwUUh+bh-^nq8C2TrP&glpPxPeZd>YW5J~6L2@)bQ!bFx`tnl#%|6nVUPxQJR5RU89 zhAll(=#1B0k?1|Q5KL9C`? z3`fpM9+R3nItTeFCfpB#`kNIV+yHTMQF4LWEWkKj)aE2pf{6ibnt|opI{sn3MU>t{ zVQsSs9}%_e(K&c_-d18e=ZBDJx3;rF@vhRYwg5gr(p4#A3#Jp`q(!O!Uvvad z#&UBQAbw^;SsiYpvKOM{`2WpXZ?dwmS==mx|rV* zMM9h)FYbrFv#XZm>*b0-%lbQ@p2iN=zQUd%X!8f`<3`n8J8h!LcbppCM78AtK4Ck8 z=nev7norPHU!Se@EzR`}Eg)sWv{iGj98^w7|W^;ZO zQ+KT4%mdk7J*e)&p%cojTc0#vwJ2$^YT>3$0Rdaq`FO2eJcPdEox%8JY~AW7>tH3m zjazr>xMtnC$cqt-H^RH})uf-iRQwI*Bl;})6T_9-eMfhZ&mM#-Vs`zb0_xv=Js_*=hTiiFzE^U z82M-7STXHK<*U7^opN5p!bo2ovqcxU)mJzXzxu79aNL#gg1)nVaf{c^b=w2>Y|39) zusDBF!Tf#ence83abfO02s{&VOsT3;n^T$?(kTAx@sqy{%Hxq|w(N#$(U~}q-scH( z^5MCoH;D69KJ^#441&m*+fT2oc~)>W=~DL9w37u_RA;lUT)Fyy1W8+N?XnIb39O$w zE?T9^&Q~F{i`zawJ6~RIj`dU0k-*sX%|>!p4|b};F*YKtVeYFolKd0kmieV#JA*jTdztW>4! zEOCe~K3x`@u1=1VhpS3=DlZe)ZzOv(^$F!%O-yj1pL|PjVraB7Av$&ICK+WVn{tDS zVz|)qy2NJr&icZ-GG!ikj*P{OA=gk;C9^HJ+-7&G$|57wFR#oPg?&SDJ z+X+P0Z?7At9}zX4OI*Ba-4YEGPZbo&1PY8ISQb--a!Ky0eTiq7s2}vt9ztC6k>OeS z_gvxGL;KF;FvU=sLjsHfG=*5k6F24Q)I;lv7BS@$^drV%?~ZhflBHhLh?hju5`Qf0 zM*M-;1Mvr#Z^g&y@}o#7ydx&7Z11w0G=T{?i|CL{O^h<3T+;x*aW9Z%Hx%LA z%W4aE%6HTzhL$UfqH}|A?!6??BJIw$N&QYWC{6+e9U@j{WOuB zk190USMDEBwkuG%YLsQjj}obPupJGQv@~ol+aYhRiT2J{=0+L)ykv-klV@f&NFSw5 z=Cn~MF{(JmH_ST*YGS^nJ42Mw)#^RR0VJ0kH|;L3;da(GmmZL}H^*+NRhEUCHh(4S z4~A-qS8@3Es=|WmY|fBvsA!QrOBCB)TL-XSiD7|33DpNU;w?E)w5_4BFx-oy-V)2k zjue(K@REcOM=s{OFV9RhF%_8lFVNHZkT%3J3L>jhlIJdtp3H<&M;$!b4DK2#(bM;8 z!8chp`SRksDNH0D(FJ-kUyfAB1^P+|(cR6vbf)|}riM5gFw{w8Z)4pYZR{*sGJ}+e z`iLv%SIw)M-!!aZrU}xf)h|i4guKi56Ol^#h&`UXCmQD%>Rak1U*j9QB~%$5n!M>N z87A^ynKqS&a9e7cW838inoD=qD9dY1t++Bz$WwNN?E`U8RCEGl>NI&pTA>FhsFd*z zBW#?+Co?QNo(nZqCN;=+?5x<^q6BPJWLNnNkuN~|-NccCckXA4h1Kf}$bH+*RVKw$ z`^aeu^j6X^Io7BR3Au@w$~U>_AQhmK(;SSdOLkjOEosq9}%9YwB^6;9~-Ebp$782!=8)GFAr-GiWcQ(n{$;pW_^*S zkp9S17oFZ#8L5EV6lAQ+^ zPoB=4W5!eSy9*9e&%yN-kY?89XTz?|Hf0sa$vkm=QA`|A9zAJ@UWdbU}g9=81z6%1e-kR?LS(EJ3C(+{X8{e8rWS3rg$c zWT7}eFFggMxl#1v-ik`Io8zyLR9nRlWqG}XkH*!CrkNr#-|{DPFl_JA%ox4WH+`yp z)^tYiu`G_h&qdP#20B15qizztjt(fN1Gp0U-boL=?AnZ{##RmP(|!rOx4_R2;lRvt zy|Ov$uKwChMt|~T3AnDy$p9Ted4lo=G9a1^;Nr;p9w+p&Szk}p`(`nEnptLhSMWXJ z`*yOw)QVvLKntk+pV4YQk$z2nA-hGqie|F(qapMK*@a1%PNy@7v=aIY-9g+%Po}3?TQUsq7j!qDK)x2)5-gzX z6+U4Tx}a^M9+$~zd(7-cBee6cAuJDcAQF_U8!*g|5qwHB_)6ANO(*OiBRZ;~jCO+r zvX(9M*;O*2V+(mM0@b58%Uf;cSL8jLl{bq3Tgw9kc?ciUfylrMc>0%h++;0C59?^_ z6s*b=NFg&7(wFXn`(N#`(5P2vt;ZiWwb9tQs7XXKYw`21U3CQnhrJ4kIN^T zN0{cG+jHth{sl8xxPy4;$il!Ysypiai<#4JD_FzM=F_W-;I~?78>^>B$;y~ym(;kD zK_!D~hPa*{M0)uB6-`$9lE8d2>-WD-#}SwM-xxB-x{S?k&f62V{j00vo2G1|TQAYL zJQ^9%N8LO2BX9Su12-j&tf3oQ>H22yQY_NXJidV;qA{eeHxWV^5hSRDEd2Rc-G!F? zOS?(X9ul+@!T`ejat=v*M#T5X_b;b_JJq2Z!Z1w&z#){54yL&OMy7bJ z4cQz;<+JEW75%v6qx}ALpI+G9s6UdjHM>Q7WMU)SC(yqinLm5@oP zWR%zG*mL2#SCvMj1*L~Er1YhL^SAs#vhA-~7dcpGkd16W{G!CQI)=(JLVmp=8q~ z*daO^e1{F+(s$D*T81{I^#u<=KN&v`N(U1q=h?iX>xVo|+IuBoM?#G9mGGGUa9E;4uH>o%75_!~|U-Aqd0&-}PDR+3W&s zVTzd&1TO@6xMZPJGRPNGIr^u~IYq4%q9#e%`Ii+xhWB!!y*q^`cq_XP7q5M{P+fjAIS!Lw81FD_!hmRn#@kn{* zaqAB?-!ZoCZjNR)R|gS0U5++aYobi>c+Zv7S56NZtNr+3*3O)5xh(}P)h#W1_ijH> zafB&9Y(CHilQ&gRpR`Qn>sWoqRND!OW$Gs)H&Li#2bQ)AmZ=h}-+1<|vSX0gs-z!? zS{06Og=NP`t5TrhvO1ATc>dR;uUrr7W&>Q3>m7KtbvGLsTUJ?FT2@(A8WR~A8xx`A zKkXIKwXUkNYh9$W<2aqiF7fhOsA!7R)N1E}uRtK6rt0I&n$QO*U#WTs7%h@b})NAG**!(}x0pKU!uTDJG+bqWa!n zb9{&`o;~f=zGSJ_nk8J5HP-)?T(vitI*x??*_n$NUUp%)#WTueTwl$L*a;aAHLtA+J9YQxP2 zCSOx#tWfGDj}usPmbxM+5h?s-*@kFyCPV+Sea7a2Coe5FH31W112!cX%gnijrXp>b zDTA@Rpp@OP1EX%nBqkzG8<(h*er#tqV&$R()G2K)Bkg5(-Y$JL;(R>F(-|v{Q%nup=QSzxj4|RepVe)+{vW z=$_m@Y~c8e&AJ3re9_u{hkdRTG-R8zw-+`QG?zDHpA5!+M@^2lT%8RSXuU=iA2K68 zLKBo6kh0!5*I3->RhyWbRZ&`IHr3=5Rx-xSlF~v`R;K>jO<=|CX4m`uEe3UnA%qDr z7DXUe+7KJ1&WKNox|rE$Y$`d`s%z2JuF*|l63>)ZL~=z5^C64I<+o^>lZwWtr4%iW z&;%#PnoDZUwdyM#=}R;6J}%Z4Yj+3Nr7@3V=dR3Oz)0V>%eE_=)n3*{zsytZRPUg@ z8|VichTq65F;r)pTWX(gBn}(zgzt}NNHQM?K0BspE>kwHz$bVlQ=-`eiH{D(a*fRZ zD2kK1J7(A=>p(cHG#S%!(%}_O)oRNM1UBB7^iYN$Pgk;;(4$H+MrEx&RJo0jGWK?M z_?nn*c6PbBSyAOlCF-KwtZ0UQLAJ0N>U5(_Tbxpa7#XTErsovGZmmqxg)t}K6-rZu zL)j%-lNytptIjJnW#wb9OtZSO0yNionv^`HNmB?l7>2*#hUac;*{t$Z(kmo9lfL_P z*uCH*Yv`aAIDH(!pe?cLDPK;WL!D|XartiLoQ=7d+?d{)Q9&nP1N4OBsxG zk)xg6%k+vrnzAc1tIo&$7V~;OnK=0eMyj&2bDVQy!}*ZM5x0|WW?j#D;z{0{a>lb| zYQ+~iW|Mbn{8lAp=EaRP_BRg6q}}rSC9aw^V%^fkOM?=bfS7;`-Os<$w`g#7w{Loyr5QVI3*==YtHYJv-YE`uv6{dV9 z$5fQLP1}&soKs$~y}Wo&!XajLT-H<3WCVJh4muqA*j!mrU-!+W(+#-iRd(*T zc9AI;>3iRF&bb`B(Ouzr)rMvo8#5eA(8iHenaQ)*5c z2M}o;4@o+xlYtLg{+w!d)79q144u#a#inFH6$f%}^l#uUXVI@YjE4OPBLo4!P5Lnu zvJAOgKDnFn2YIF}_b&4;@n(7xfPU{!px0zEnRP z5xWf_bR4fPWD1TP%RMfaA{I!7&L4mT0}^J7VN(n=>@bZCVx%k5^3w~_@)Mfko8q^V zf;X?pP^0lVbv#M?8R>9_IBGD9pG!2>DMDx#jCodfa@n$*90N?w(aZ<3bS+)+30(xP zr$sNxdndOaxxxKyro-Sid2)Ks(MulYQB_JhutkIb2z5M%OM;X2x;x{qMzrsYMuRocxkbW*B|3d@WCxQ1@Ugpe)a*iIA@vflZ zx@L1-u_9HyiaYY1-gEijzn2k&ijtG1v^;`Fl@_Kk1 z>goc65Z4OYN(W}dF>x8uTm9tvU_JF+o0RGs$mxT;X)(RVft%fsDYHHTSf!!KGObQ1 zSsm)HQIaL~fcn(?-lo0e9k9wUW2HTOhA&2@?P51;yKGK#SVam~k#a(_V>kL6J~lT` zFUvO@borHJoF0^x;<5(^3zX(I;=o_oMP@U4M{hctI@qqLH+0_4ZPr`lnF3G|XZ(+G zo?rp64OjwOIIsk!RSG_Qi4!2bLKNelwH72p32WhUCu1z8KM`I7cEx0`*D3_yNH|-b zTCOhU5X^8Eo!vP9&@{QtSv+n2szn=-geEA8$EQLrcDYkiV@X|^Fm?D@)J|Q*RBsy& z+*F1tsZ(v7)`;gHU3ng{3NfjI9bN+f-|WT_i?;)1JBEK3S+kek0s^eyH(j!A!qVFR5`B&J zw9WDwmB3alB8e=0#RmrO@+a^7an<$lsR!%!tz=?K>LQNGkJVR|l_>Wed9d%%(pR(n z={v#R3_o%evhwvlIZ7YPS2&g+(gIWTA(+fcb|_}EFo-v6Tkmi3hO!2 zKpR=0&Jaqavx&h4aa}`>$zaYfyJna{;+{#{U$~I75_1};-8r!C8`bHw{Sy~q=cJOY z`lL8le6a@F{X${fk(dApSLsiU{&p(TuET_k528tag z!!8P$`hO`QCDfp*QCEkTY}GNgQStO!`qVaBM!r^%qsVZWj%2M5;N`-N;nC^j0?Njt zGlXP9szO6EP?)A-Auke{44@7j3n0yKkfe@qy5uHO39IZfofbK5aY8CEZ~7KF<^ufK z9rnvQ{uam%!oftQe|ZJYX#9>+xT+Nh#7=YRcqpb=qgJ^7p&-JFIr@*NGprhRz>mGzrS)dr&*TG`SIBM*2UMKQ1(`|v@!cQ}4k0r#s4CK`Z%E1Q=_c7) zEWPd~Nw6ANeM0LPQ5 zlcC$VfZXuxPYwMIV|1P%!VL8()|O}NOWqd1=xa7)jpXvFaYcY$wkdK}^G9R@qhI`L z4czD{m2vr~J*FrmivxRDomR9yK3cDjk1O(1f(}Wb3(dxM5=Ik9P6>iD5=k?pcCf0X zOt*v6l3`zO)5~sDJ*A($n8WCAtvs0z9nUNgksIa`N4+e~ezU)@50c^1g}26QsAO(P9N(Ub4}D_N0$n=IkIiPIaxNy$UYc#_Qq zdCiaVs$5fglT4Tj1`yJ?>mI(p`O`u=<>JqLb?eqNaO0Uf-Ge17{Jaf3E2_y@}Aa->Gh zp+^E4X|_8(5`@T(ESfCGA0C}KaDZZ`SVn_;*?|0D_2-$bfo?^w}wcFtr#iqeuAn>1>|i zU3o-YP2ThU zVb~ADtEkk6I$*QPr($zUQcKeAih>qU#43)E5djc$b0WQjvB*vI=Z}a*2X0{j5ptyc z$dpyYb2T_S`r#~QQb%SXNb^3}LR{r=^nS4O9I;p0Qrtu)mcCs88P#jH_hoePHIPY& zsEi|(NZwhD@%k5;wHK{saq#?NHwx1^Y!qEGa)rYAMOl)Pm0ynbLYpTN;an0!p6-|A(?X8nC_ z4m|R4{A}AQGLl0Y!eicrR_SFKsr19t1-SJAr{!1KX3^NXfhL z-JSS*!i&<8IF5cs?YNG|Vrn;f1a(x-Mm?Yd9E&hJ3wfc};HUz`@*j#SBOrj#eZlrl+U?a|B*G zHc1^7C5tpimnI?g11nPU3)2hbLdQ(UECd-t7q}dAiZ(DZfZdE26677MdE^yK&1E37 z3#P!5Eme>&05T=xzgEVQ4@ER;0^o81G)+ctkOHuT-2h!@C>c+Z?{fT-zgX(|F^%R| zi7M6MMPYK=DsdcOO-OTdwoMXylf9zn>U-Zl>&$YQF?Y=u(HzXP2!r}XM}>=jR()ub z9Eci{Vha&PnztoXV|47~q6gfxGkv4Y>OtBt0M51kOfuk{>Td1Drc=AmApJLxE@D7# zJA^t9>L>ql**Wsg8f75q7D(*z%8+;be9mo_rv$}pS*cup_2i-Bhff@I{rb|Wrk1S7 zdB+!3(4JLPQ9M2m>GY!7+NF*1ZOtvW4=NAbsyUUpo4J%5+O$+29IQ#&sysnv{q>j( zOC#d+6Q67700uWts307!ClPdAqyT{m2aY9N8Z6xfpf->xbc}d_0$@i^T++-~CHjhg zIsJrxG6(3oF+ikclI~8#|B7fBmf)wvI~yS$3Nh~jHr4CA3ou8W0C0f7oo!vZQ z$$Z>D^z~NZ26`<{>D2q~gtGl#0O6Q#-?~=BdO`;5`L#tpW!$B?-~xL6b9L)=rS&fi1NR$6Z9#QwJ!PK3Yc~XO zpEin`sw#KvlI@Dz;a|l`3*Y`uE7=Xx28R!j2Z?{OZ4&Lch^hI-%S}y9%BCjVgJWL2 zVDw0>a^^_NUJ|%l4}xPJNB-*9@C~<>R=rqH19#Juy&S?*FZ9YGFEDnE@o!?9{6Xt2 z*MF%G;D({v9=%C3m|SoJy|ftE__&O;cqN^%v@fpq$P=Pd<%f=4klmYoW=ed5HXZ%Z zIFGN$Skc+2rLFVilfRrZIW99UJ6?GL;P{Jumm%14F3MxiJo%)#|K4&O*6PTwM2n&} zE}bu%bYa20l9J5q5{`^G@tR(tBmTYR)AI}OmzHJ;TRu5{l8zTGtT?&pqWs>atKXJn zl%y3aJ;(%d@y$s(5nE1S%XgQqd{?3swk$;krTbaYxyl{wmt+s-otwyYG}B_XFS$Z4 z{{0%H6g~LxOL$I90y^Iz%&F;ZTUV}c$1Skn3vja8l5MeN5!>Q_n)}<5pXM@t2haGN zm6LCs&Yo%6aZvfwrC-nde4)Cyvb?;KAqvNpixzGQ;YKYQwPe&{CUo;WFE6>*yaP3x zm7~v$I63+(v%Y@m*%LBvOpI=cPqnUDCJ>mK+K4YwUtZ#QZR0ckK& zwEms}aWCw+z2oXP#3X9^yY8DSGFv7D?qfSfi6XDxQr(e1eOOX|PpQq+BG-rECtI(v zS)s;|t+FXmV>b!Pmq{I;ibxD`g)>1HeOKfw#qTkbGx(AaE@;BA;>oy=p4I2)*ts|`qSlW9s?e!h~^c0<6P^2oE7D+Y-AoqA~tKyQRIiO)Px5xsJe}_pBCj38_;2xj!)&ukuPU6l& zn1D!BM5_>r_23&l6>k4Rut)s6Wf5z;iFCBIICya(%WKSzQ`&BlIWhFQi1tY#hY&J; zBPVajp>n4bB`?I0fwN4^=H8;?6Qvt6^sw&r>D~LkMc*e%OiNBmkR_Os3gH`i)NlS6 z=zgctf4Ods2;Q(twr1O==5TJYZKe(o?i`J)rYp$fAvT$^a&we9xtS)NX)!<3rFq-7 zJ?*lCp{<*%xI7|nCEZT9TYA$CE?LOF%|vQrR`>o^q5Z;aQ$Z0}3ic{2Bgjez%S$j7 zfSGh1{@0Rs$lB}VUsp)?dl-21_(GGtH>GWs`}ky=kiabi*Y!x6iV-UfWGoqwK2AmG z$H1icY}RQJLmbWygrS8N~0G4O+11aU-AuV{s z+rgk@NoHv&9%(9yfy*n1o|eP^;YR{7U8^L*vX~5dIoIQ~l58ekB0Nem`uR6>que$H zNP!o&DYhxV54_-~@Cz}uyUc%iG;OzLkFsM61aL^heyD)V0{7Ksd;SgH1dv${)_c5& zP035pr=&36-cyr2irFWYWExPV9Z|FLkY|YAo6*zjETMIZ9#;WV4(`Adi{c z--X0JsK?^GfpNywK8I-QFu;(8VR_EM`WZh2`9n}aOkn~7W~+dsnw`HrK-slQqtPej zY8cPMKd0Br>wnHVd{~*At1r+XpQwb4fUt`bdDcsK_5YLI81CyA%VotGLGKM`?L6ut z*czC?x{&cD#?s7UZcAxcbDQiGB0&wcNm1q8^+P{x|1;|xsdPcIQm#3JEMD(YTUcA# zDBs)cyMDbd{Fu$WsT)-va2uF8FdXF00o7#_lOzb&0H_5v)2zGZDhg3w? z)>c;5a->D_=IIY_-aH-GhXXH5It^v9_ZUzN*^PSqH%H!+oZI@eRz%;Egj7b>bQS4I z221F>ohYEEgoBrd3>xMpI*5yW9}m)Z|NP%~upYErX32*O$nrBHfNn?}U5<2y1gOES zz;%k@I_xA%yw)sT>eY^zSuyyJX^B1qh$OYZGz1525-iunB$4BJ39jC$Q#g4JBwjzU zv|fUkmr(E&2VrZvd@=p-yogpxXc7qimk<>Sd*D}%Q_dtMFlC%Cg)1mHrA5y4*;DPkqP<-@NcgNSZy6X z3Cr~laHd#DUmlmPu_O209G|gt553I%2Arn}#zGFUJFShzS zlJ#Qga%`jPC8TvC+c94veR7=KpGfc1@qDB8b1_|SYZQvLqF4v=sVCBV*wSGAT=LHr zoX?Mz_se;n%*I7OKzwks`H)q}DX(_0Zs!ZxM`X3)p%NW~JNpoCA1V2>w&^VFUOAjj zpRU`KQ|Jq|FbVb9AhNtKxtDdP<<$9Iduk69A7zY%g$BgEKSc`G06I&k1A0hZ1t+cF zlw0t>1@Dsul5P7A7ao>lPSdqFZzZ#F)hco$_mzOty%$N?pLr1(SG{`j2VrRZ(V`(A zN^jV?Ii7{LUssuakT@;QBk#Db3>A^lU+igwRKSY$sp=KV%xIzGSevvVz@NJoElO3T ztCD2W_f?;hK^J?==E5B_VBS__#(dsv;0z_?%T`fERzYbwsI*HW5~;#JErKi4L~oBk z(kW6;mD0f~|K!hfI~Lkv`?y4>C&fg|BFked>-lNF7oOrws$5lm3bXPC+!e+%@*jxP zx7Q9R^O5#dt~IWrjx*BynDjt{Z-6XbkLR4zY^%wzEyQAv(mEDvvaas%tjG8PaQj?g6JFwn2r%eJF&Yu@W+WaW`a5234W{oNY^SR@^D#$9$%Vly+phT6MwfgjIWysE>;lxf( z?7rDvvr{R(RZ;+_u!h-0By4W1MxCHZO4Vg1RWVgb>Z(QZMbVMrLCURRsuYBFq&4cI z%);{0^3uk-24s;p6l?3`bq(6Y3Z?XLMM6PfZY%?}#GUL{v7c;Q$Zc2@8nG&CK^Bt8 zmrluKG6z9aWD}h%9~e-yZHrP`v!Xfdq~W#^Pvv`<;Epg5Pb1(np1&j2?;&P|pWc&8 zcRbuSdbv{Qh`?d=kgQ#{gBx{fT-CT!%bP!cxZoC!NJanUyK24PxLM00-8VAx{OC_~ zjcvBfHivhhxA~zk%>O2bc@M5f74fq)6MuWSLHsN`!SZB1iEK`!jt!+_Vd)H^Ljwan zJtyfs54(CE(cL?8I6vP-*qW3ydUPOtzk!NeM?}t^I9Nu-&xaGyZx60LujGg$aBhuH z9yd0+5bP^ha3W}5siT^ znBJmYpkc=dr3G6KpN0lCcplc@KYZBr@Zo#*j&3B zO2Q$cg@S@-&l(8pM=WpzBu=M5Eu*N*qfmCCv zk-l>zHZLJ}OHo{I`;GeJS$Vm|hki!%I>%52E!XT=byx}$ma--=CL=a|X=IQ(NWCmB zA~hm4N|%(*7-F+h^|H*gg2cj%qV#PBb7sD=405~1tc-%JtgOtFg%vrKx!={9bs0(X zXwS&aOw?w;`#uc~iVF8y5|@;vZGax~j>;3)$|{eYKXAF_BxbX@8K+kltBciV{RCpP z!{J8EX4dnuY+(lSUgc_CU`l*iLV7@QVn$*{P*ysAO}+(*RS{(wCLL2z1L0+5aZXL4 zx!jnQotsh0fCYkOKcn-Bay@{gfwmj0wM1h1k|c=UmP+{j4_R*v3O<+D&~5{^lK_6l z%K$Q`V}Qu^${NA)H^>SwzDQ`X8#S`~J`acuiuQ|l^`zo)ar6WEK-#mdeWWrcadkto zT%D4l(jfMqrd;p?SvK#D{0DKvj+~qZB|ML<_m8#CaXEo|lkBtJ1uXZVh#w~@OwLm! zcXXrvS`BAA2^}Vzvt(S*f~X8#Dzt-BHCnAMO_#yEy(rNcbUJwGa?|qUX0U^#<(4P` zUA7caoqz&{J4i6Qgg?AH)G7N49xh=;8=^RPIj^A3UF@sG+0zN3LnXu!)`3WpjF%h_ zxb3}*6YgTsF7IjEzmj*1xg-Qnd=!?~Vkpd5Op>3MfB)Hjt|R^-YplWSuHE``-n%#NTBzUb4Txd1 zi_K9?qe*nv8dvYl`h~kTlXlwf(s5acNIHW;3rovogw#m8h~6a=5RvTd2@Y8YOQrQN zOL`9`xa5>w4Dv%q+WR*M5{)D58Cd$T`hT%Sv19-=C|05?v|m18FdYC%iWPX+yB+=G zSB~fESgNHzz#9jtg-3qBDiIYC{|JY=GqD>`Y*bY4j6oNAR;YeU|Oyq1AblpirOoIMMPTk zC4ni-!>U34J>2>=UC}A{5lnRTWBMWKv5H&MaY5v(trNJuJjBg)4b58R8p{O{>2c^W z!d|OEwbLaoLg0Cc71WTOhp`q7M2PYDb-XXZjJA;NSU_?uo&Pi!UVSZlV#}eGWn6~` zJSf=-@tN`R`1p*p1Z9T@^8Q!GY+1ET2GXR}wd>jTw)%b)NyC^p<7ATI`*bEJv3a|o1t0M!vfI{dm zv3)@o{QJ`w$*Q_F`y&P4c({lZI%NV&Vl=uMwMJd0PFU%Jm7@KXb?t{>>Njf1B7_qB zfC(OzOO|NK;=hSMrWuX=R|M!|()fU6Nt^B5Boo{mcfu~P<&pO#q`)?nB|R@rqwnT} z@>fi{=iR$Qy30#!575m_eMAN-Ed#}dVnay@a>$?|9D%9-cDfketvb33NrKDKJp_?H zzmd)0*$oj-2^+NGGr61f!Vy;bm5RJ1CnYcfNRPWKa0^L?Z=@n6JwWaV7zuiPcX_IH}UZON+LRO_5sMlq&wZg39#@y4S=i0 zg#^;+H-9HR3}jx`U7V;h0pulM#IvH6bIWI^HkGqe$=7!!LPEw!GMN9H4DRVB z_9KI(?QY^>aGqh1=|=3~7m-7e%pR{`M8j-Vh>2l6k;AXuk>3%^LV4N&zseyKPJFi> zRJ3hzZLw`}uhtXhNZYHnS1XBRKwH1PE?H$|#xj91wR2~sxBXYAz zuY(X&1i2$3D~(`87(-Udp*k}b(B9-)}y#>O0yJzIx5G8eo zH}De)Of(jp5u-V)$3O+u3+g;F@Hq&wbgqJrL0ICG9Xe|n5@fN&z^jei4fpeksGcQm z;)l{;%U#}qwaqA*TA-H&j#^H;wGJy^yU+7jIzJ)E#aLC$JBn-{^53(znWd!nSkYwq zf$u!{jD6?rSso-bc$e}da)T}ufobDk2QMH&svkYa zMyn7Z0I_MD&3@+$z3gcX>0WW-huXa*7lXk&OZZ2uH2d@akFocFi{fhAhgZYQZZ^gk zmm#pj&Zw~)V=S>p(b!F5Lu1E=Ac7#hvvgP%SlFfa-ocK&ml!ogi6$l*O;6OACzdnI zS$zK2pn2Z+`G4Q{`+ctLPC4hynRd#3U-xwpZp$Yq-~GbuM8P%;0rP%o;85%dPK|2< z9r3O-A%yrzFUuBRytGiSmEBQc>NZ$12w>1^sjY3k9RFF$B~jY6O%1Xz@G=o4tQoPLH-Xdc zq~s>&8x-On9iN#UBYY;mxova^KXH;i;yp1XCL$@0_X(}4ZYnLTG>PSZ{GR`Smsv5~ zr=br9Rf*nLdyj1AymtC+i_m9h>4mT8>vYC3x|AP2Au4pXm>e0O9L0P2)iyU5RWw<| zs=Ggy$V|!W$ck0(kdb0_WKO7`{6reLjoWN1R7Jk5hSij+7iashS zlHcUrv~Pb+6@q}9(A@Mcl-=>cBzEm!GDED2Dhl1Ig-v)EjASyot23*I9G|n@mmE2R znA6l$KVJk24xlw|K8!8XHkLH8RX+5L?OTSPA*Yn->9uu69-y9@_67zDCJ9MN2>5_}Qf79dn2ecxmbN=8P)}my7``0ohB1rDFs8fU}aav$ITQqfkjw zn5)38nGIlu;^Pw%;>8deT}BNIXu{3r>}-osC?^I6EMbYykGkL5gUg9G$HgXqI}66c zv@lyAp#&LXjoI-z(0(%K0RJxM>5#T^xpC%LJ!U7}DI;v22uDm|^hR?$ED{!TE>f1F z1~(-WmuHB}iQ)CJu`yzVEu)AgF)>C~(OiK( zH!4c6j}oG6*#$J7i8AKs3;2TE+yZ1NB=OAmxJX3?eI7<~F)w@XYwkcuHrm7XSuZ&Vsio+*lA* z%oi6F6eF{oJ%Z`HU&;Y0q#+vm&X%q5QQHJ!4umOxEiK>|ei#$vDh9Y{ftKUK7zlE4}-D2Hvcv!eBv|4sqXm#)fLSvgO2&<(1!H|n@f@QKt z4e1$~7_>jVPn5Q)f;|7RKjjrns!!H^Dh2+omWnTA9r0;Hb7xPy_sTz-HcNkP%FMngI{ijvH+8SzQ9&w}OCV%MdFWa>>x z-8%M$su;&43xL`Dg`0QDtiQ#lyU5^1A{MILzQ4cY5`VI=tRw>-S$bob5n6dhLu!fv)HW)Ool9y=N>pliYIJHOkhLfz{!H4DoH}5cRJ2dmFs`t+ zu&xlReN=5%>n@jm(lWDs(a{aqZD)zkNyv$p6AlX-<~!C?Wz`mO#_p-H0q-gr+Vwdl zt3}eICNv2H5}7s?0#efCZ1O7!QTNy3iaWyqhQ8)xztQZUwgqs8fM?JtJ($U4Gs`pb zjm4QoPGq38A55Yw8ED%tC&-9)GA5+QCu%d<^m1c8!z0m{%(NO~x`a zo|2}1^H_k=TH%bSVLtEAYA9`ga)a$h-c86!%t|&p!PT4rS926QiC=cI=@;$&tIo+n%Q;&>mXaW7*rI zy@hBz4;y6uhAF@Gry#F*A~|qifN88T<&=y2%gYX&(Vh(1=TR=?1^Z=zAi5VV?>;D$ zuBHcf+W)SGI1SGJMEB8fkvcex96IE#*+<7{zDHEJD@27lEy}JA$-+Ikd-n-MQsf)k z{W^uJP4TX;bgXqT$>->0a`}a| zePdUl7W=h7Xs}RqM}SWF`{op z^4`ii)#YznA3V}N@_ex1TOqJ6b8lT`ZNEmNKK2ME*e_C1_AzoM6X`6O zm4_Z>-M7n#;twq`Bc63AFdV5sUoHli z(Ey~Q2U#*gm`cYEqW$~#r^`qrok>2OCH$65sB`tfr|UBp4j_|y3-z3)^~K7cu%1F>p))fT1pfmLYP-DB`aKW7V}G%#fGiG2C{-V zi#fw<%>>aYlb>~QNaqC~kOShoo5^d~ClEPT*os)!#o8q~%Su)VQmE|#htq$p`7D^1 z&`DwU$uqI%`17Z8N={+}(l5nC`86+uykN`(fw=oR;#q>p>L=wxkYV+3}*Up#a&S9Y_LuG?BnmL?Zyna|hEyX%4yuY8!V^prJ6Z zE+&3ZjlHOq0}}9g@=svGMdAl7`h({M5~{R~`;c}}YMZ0A?UdfY%zGz3Z{V{Nhj3=* zhg5|0EhWLALXE^Tq8R1;pMgv9PA9gvB&PTa}!0kDY%!Pa``Iq#% zw7k4bWy(lQ#YC)x&IB5@IF{}KPM%uY+W`fFC1Pzz^Og4YzG>|T$VfT9ZRCM=4LNCj zHi+9~++^C4U3}M(4z8#6H%2~Pu+-77(Z4yk6%Lmr+X!S#z?AnEX^nTX{UQCv1zw51 z_LcUlyla(Lgh_Szdy03LwmL0sW2Y@4@R-WZLUZkvWwmGydVpr52r`vTP=KhJ! z=7K%_z5KivoOK)tv9RfMFe1)gRusRxC1F$2CW8}P$Mcn>)eLOgTd-aQsi?bjhYR|2 z+u03ALDVze5s>?>2Ua#N&O1U99J9T>GPd#CyiyXp#UnIfam-5Zts9)+%Nf66^|qx! zA2^YyDNLMSlCO`}$K-2)Vr%4-@()^;9sngW67AY>+~<6Z(;Aw{BsMlDOE0N2vl_)U zB=LOS@rGRokcN&waJ1!Y`KL}a@>|AIYpQF|HYC->L8&(CTgH}#KzGdXTH~n!{yUKd zpY?LAXsv3lZMeM5@%N|1{stLb7k<}qk9l9_KBLNd4fZ=C0_E@_VTGk$rJlv^`CFVO z`7)LB^WLAKoe}+h;C$h>Z`78Et)U)HXT6wHd|8Ww0pk z65Aaz)mVQAitn(mEPRT&P6wI!_z$$-sj`2jFJ?!J;QO3>kvLu;pFvNn>kbqNL%CCn zvNyUdk8@piDdB)DSJ!?t@093)+2rBC{VSJ-xPSa{#rD$}!YEFawH_16`~LLRHlq3J;DOI8gbd}5 z;+WcIZBy2srUI;eSib4*MGzAF{5@g!?2Zj>77iWCFFJsbdF6TA1TLdG4UM_vtgK9{ zPN@{2UKU){jlvmcDJ9_Az~#4GT{X<39$~=2r9igH=`81!V$#RS6pT72GT?9-Kp0!jKrqyLDFHaT>12N2&tX+v4zxs1peo-)K;{s#9__3b z{Bk~;-|k4iR&e9q3!6D-VD8U9{ZM%I^ZPMlfpkpfCU0LhZmh?N+ut{R^6Txkxh?|w z*RMIhIWt0B_{QZQ7Ikx24Z=Ws(cmjo{A-(-to%4o|G`S_@^ZIBz5-bGdw9&8LwjlI zCi3x8n6bBzQP)YBpt0AJR@=}w$w=*~`toBiEKY8GL^$%Ewmz{gwpOUks>!agsL0i> zDO~cwwDyBq$%^N0ziFR9{aMpS!-fr7+Y{ybG`HmS&|GAt2k4%Iw!7=M@H3*XofkE6 z3aQ5(WnF!8Jr4`!bfqRme>(NF8JamEtZ9eQ$49Ffpr1ZM3FA3ks>~=Y%P7kOsRfU8 z$*J^_QnP#momoxaBVHFi$*Dgn*gBl;Lb&V8u1%e?WcIY_=jYrMG#mPTeeTQaV(-K1 zpMZgnk(7UTE`8MZ?4y;BI(3gUUu%A|-tJtOXuq{%BxfBeaJUoko~~=r0zMl_h{Q5RZ!FJ=zRzoee%N( zPekc;Jx8w70#ZP))2{$^#P6tzQTrzg`8yk9Yx3b@6(xIL|`(=q!`i+2EmY& zY)IlgQUk-i6IEM0Vj`BIFC~YQZrmlqNS<##e zijUmzKSm`jJ$?CN>o-leO_`2}D>fL#odpNp+QXkICB0k8nD>bAF42I3EYX}^RZ?54 zJ+<@1j&{gSts*fi$Okm$Pp6hiBg)4DU_lk(s|Sj7$`lMeqv(g)kZ}D9Fam@JhpqS3 zh8e@N!-02fFb7-vlLOC(VA9u}7r5mf9+fJQ6jlVVzSHT)#%jC9VtA|J1t~UI` zRu6&drA#^Pa@XZZcd8Bl<+QKKX}5Y{$MdwOcFAc=WgU!zAJQvuF`+kqlis9NZ~&}< z%Vi>ZV2$`b=%BKQh6(%STG%gqWrZ=lQj9zje;f>KUtp-3L+)2q8qmB*KiST4pU2K7-MD54`My$OH^E7lCr--x$06?Z9 z&37l@P|~S1_u*g?n9tSZfll)sc(w);@4+ODCyRArmrUD!Sxp~<6j^hB8uk-ckjH@Y z4eDfY1X(R$@rRzoMm3NHUG~>>P$5&3SJ9Z-BOt90>4QIw^eq`H)so(QaVIjYuv<*>vJ%o4PO?Y?g z*zB>qN7QDY@elVN^ATHv(*|wT8W5$VhhtAKq(n!j#qeE=SWPLGGNMI8Zdy*RR_mX~*cNM~-=m2mKQ0+iSF4r#~-tQ{OPBJA9H2Jr6`U z1e@UU2<+@2f%bRg&|nTg1bgzB#j<5TkROsg*M%)Wj6lp5djqjI5J>%g&#(h4)CznoZp1{9|r$uDqn}9IP{{HLclK`p9`weAo^( z8IPTRAbwSS?+^0wnd3p8yG0`JG~hipYst$9DpKS7d47B^TUpWOj{LM2W5nPjEj}&Y zkPwe^l()3)K3;JKPH!ZarAe)27;SW7UJ03HL@B}IHOblT2pMI%WP%J6Jg=G#>GRIH zT!B}_R<9^(w|?~K^$5K5*9S)KiQdy$uy{Uu(y zR9&66&%fG9<39Iu#Hl4S?*HQQ^U}(r^G5&T7~QQa7!#cqk{A8UXmDRa;fgn#$y_K@ z(s1s%`rtc1JI3S(r^Q5*-*i8};#Ch-^^bIGf z&HI4ffQnz>zkXum9$ZVOxzcw=QhUrx5m1G?%6}`!NOA}x^o6oY(f`YTO=mrvu7Rt7 zo02+Ksih9;x(d|mI!%INyc%&Xk2y)hw$<0SiG;J|g1^_Je#b5Wh*jIZRcg&e#s8h{ z2bb|^Ynu~M$mCfd2;&`Qlo zQ-e-AU?(4f#Ua`R$)45t4edTMT;#xu$-t_POT==CblCe@UGaud8i zvyKDk%}>|+0J_|75lyw~*yOZTt89a81050M6fF&u1|2(^c5Br!r&UL>XSHphZIB}! zPKEp6vO zhgbd$x}}0LrimHep2@Bug&{@3Wyu*S_=J`ESk@ZoOUcwN2=N7dRMvOl2yfhtyq)*i zC%e{DrPwt}NhX-MrX!xmS8Pp4l0Pcz0_DB;zZnB@+&9=U@4q)f>{_5qFvXh^Oe=PI zu54O!X)5VGoP0E$uId_Vo!n1P?yC}w@FKsdElDm+E=*C;0YFW<&fhGMesSru8J#emS8!Tlt>8&d3XY?4CSrcC#R-m_l*rVb{6;`J@&i1$}=l%XU4YY7i1Qi+VhhhsjS1Pg6nQ);;#dA z_wjtQDhRLvL+P9SYqfWfQOr_`qq{`JUG}UGw%_Zl)%FE0% zm*!i_Q>(#-2+)N+KB;h-OosafLpu%qt6OS7_PijN5b{o4=(X+9YumG(_I7DqShv~( zv?rVCE%0<%SQz;Jzm`}HqeluLNV_^XvIVj>@Q~sV&s>#zbq-*Fm+yaeS!P9rwzFfg z`dJ5#C$|aCRt2j`G|3(tr6zR4vkr1l2RZ;9d4}O*gJciiY>)lU%4YjJotAvA1}5r$ zwMVIat-Cw5_gn2p0PCp{NhPV`s_<|Qtg?_U^^<;d=6O1l$FyqZ;{N@}U0sz>`1B#X zFhfX>Aq70CA=O+Z`ow`%W+Vq3ZZ56-lV(EGfmRO1%3Klri1G2-00QmFN+B0xE>Cir zM~s>{9sTYkF&UA5F#J~Gu$BKgEbvuXwjQvmJ>}_BTMu+6*nopqn$4Lea6Y<`2$BxJ z8>DeAlXT3Sut7{h=V<18lT6$c^jMKH;ALs|DH649oN>@Lv5a!*utlQ+0)ETy5H6 zHweRXtNqX5deZ+TgMXjBS*hVNl#Z!YGF_i5LC38s|v z)R_47F>aA=UL#jem^pXy^kHsP5imJyV)FY&m2u@}!)87pB03;N45M~o^rh}^yKs5g zPUV|i5?IHROtz)2x+PmoFFZ~D%q(SEvargxvjl{x=&EmD77MOtd=Y&C#!Apcv~uLF z_dql;;IvRPZ)oWT-u4H(W!nySh>1lycg|pTBvozoRN`j6pJ37CQl1)s4nI0 zYr4!|xL`0|5bqlA20%Xx3Q{ENz!h>jvHmnD+2B~ zXXU?T%$>3wu9>uiCT}uQh&de}5b16-I(O(TVwPlvv`gkVGxt}FNm**E|7|mW}kx1xyubs3w(V2d|HFg?GXQ1chGgFHWi3EW*nVqRJqJ5 zD%m39^{db`{wLewKjROdC_PXYT)v=D{Gf5-apSLO!Hop6C=>ZhC!(U8Md`gF0Q2Mn zz0F2`l?0ZK0Qz29D4&)P?mJbWGg)Gg?lAj{8}jz@2roudYR49})POgYPcF!B_P#yw zu6I){fX-`ktVg;%$G3>`)A~;vY8t+)Yx!kQXl3Z(hHH&qHZ(L`PTliGedBj^d+IMY zd|TfhotsfuMs8^m?u}U9`N-L>iKC@-N2+ZU*hqG$Tqh3m8NzFNo>C}ii;NP-liQ4M z{EFRK9zO7Ky)8Bez)?osj5Yz@i}hf(SZ|aBklwhdnya|ew;wbhAf$x=Y)+eDTT?wR z3~Mbzhc=v^C|d=6lBIWO3E82thIMV_!c&S9AU*)Lzl`D(Wkonws7#6m_#iQ#iA*Uo zDYK%p@)=VI8)N%`>&A4T_cZV+DH&`xft>uMjk8NOF@~g+{47=z*V9Fj4nzfS#JKeN z$IxpKmQwl5Bt|o!r(WSqU;CU3C=9I;G4R+999_y!qWFRu!ZC zaJl?`ilGYs2)X=z;M*i)-sfP=Ga4aMi+?gB9)475SOazi2pA*kot`G6LvSvsMpgF@ z`pMK@17!+5gF%HK17wrr^8_g*&Jj7})B-Z&5*Xy-@q(Pl_l{Vv3ich~ILC?=;RCu;|@0jA=(QoIOAm|vJ> z$rTHNn5c-*q!78zihi4S)EyAzy?yrA)$b9=SOW$u_fOBf>|Ap(-!O~YSJ%)ECeI!{dzKX>=?lcD0LHA>!_KDB<9!GS z58t`7IJ`>ChhjjkS%wcO6a@h|0DfblqLNXe1Vtacn=kGHNuA5#8Y=X-H*wwf#;0N5 zzJ}*_#UkRapaS}adF)(ecc#CI$jO`fWLXR;S#rIfS2;8mRhA3tGkpi)>z~)S&+{5% zcp`Go%ManVJ}-Y)8Sc78yo&PsC=~UyHx6*Lj7x|17v4ZT#0D^S4pjisWdwpsB?GCt zAJtU(QN_cHhgj1CjGo<#1{Gw$(z^e84McK$y7%_Pa=NiwQcQj`($dp=4FWzZ-6(YD zmEWFpqYCQ)aN3;hetzCwUXp&iavXE?ATY@X4!%F*tG;PZE|USDHC*0Lww05dQtRM) z^1*@2mblww#3jvF|8^l)tZBH4ClyW6je%uCS@6#6jeI!uD`xlCnoAI$h%}Yu`Hf9l zXZEklNcobYDX4gp5Hh%w-Ct3HcG7O5i?emv0&aECTKDaOrk|t2Z~IpLDqi047PB}m16jnzzB8x&_UtU&QkeC;3 z786X-CVz|Sql)0FL)udZ_nmKRiSe%!wz)C5S^CoO2y+PU8xj#5mK(b#O8m;NB4CA< zG>+z?b_68(@+kIjC zt9x{1{T@0`WV&<#_S10>RkkW+*RR%8Zph@xL*zD7KVha+iFtl)f^9D3?*?X!6Q3CE4sSnm93W)M){^%gW{5 zXRjad_+X`<*Xmdi%(jZhv>(D#t?zMPExs^QaF$f;%*Bglh|aW^a>n^Z9fGq`Vmr=X zfcHUaAXRN1=bBHiJ-zPq$ET0LlD+!OsUOFZVF_oJ5fxP-U}P)VN?p#lo!~yjOAR@}bg8mmFZbL zUVa1750{CqvhuS<@QuyC{8@F#=jJO*KR^7`^|WU8EYWM_FXgE1A6z?89Ha_Hs<%~g zbnGcI;4~UReNQ`;st+A-6jIAyPGvNT1V=^B0p;HtxIdpV5THTW{b&v>$O<%33jZ*D zprBEt^hA@QnE1u_Y(+_2fJpXda(=;xv!2W%A>K2E;*(p-vWjGXkv77exwCuUgMDwoqB@E>v!VGP|qt$=_K9FeZHm~JY$MJE^xI$QUUCf}%>t00UeQ)wF_SlkBU{8qtPlnn9 zsUhWJ1#wr_wI-no zq?dIv+p+kQe;(wIW{Ngm`3-^E#CvQ7Uf}-yT}Gp%cARBT7nL5DXf=Ca_<{S3RmIlS zCWn=Y71*UxbnkKr!sY3yP`M}+CCz&>ckv{htwbT%FW*x--H0Tz8#L$h4!!aeZEKL!(xzu{}XVwvqYg=^1ebL~K>W zTWOnS4d&+4sw*sJC$DqFflht*ytbk=qgWuXoTU!zs*O7ljL(rN-!9Pxhb2b{wC@tq zmp#{BaS7pwh$h1Wjei?9oubU@Bif3R47lIbXJIv5wc$n1n@iy{OhV4rmyp-lrd`=} zr6QeVU5eu_W+_V+GefBbrX$1!4rfQvZOjh#V|~-1-!4XeZV=CZpd7Vn?K|W4uKP*6 z-u=#L*_!Tm&JCd_6nEK0FF#X@e`V#kgneXaA$b{wbbHC2yw&LqGzumJnn-JuRW0?> z)duf6x@Xr>0r2o)2#7i0p1w^8V-u2+6A(JkugS=qXv@1Gl1FqH64wRqIwB`_?yQIJ z{g{sSWb}sEcs<1G$Qd07?#2JWNOL~^*>%Tt2gMV-J@o)aPe)qxdmc(t9 zA~~m)hNp8WX{o6Q$1>aOm_%q?B=FPNgv6}uysN+E7K#bw?~!1WHajajTe!~VSQ6qg z#CAIT33-Rf%FNEp=D%jMvl0?Ssn1cl8Y(6sH8C-spTuhBp(42u;6z0hYCuV1h#`Me5I3~-OWy<2e!qF1r z;nGx5o;zjPmbIP_WnnMrzDCVProAQWxLI^ohD!PJs6vXli%_{S4}Lp@dfdaM*OEWJ zB+*An?k+O?Jg8wHLfi<`Oi$1O*=tTbc4ptRzRGk=oIqo?@i)Up!H;t}hx8+CF7nGaQEdo_5lfwfOw(zSwa?1S09aWKg z&T5J8hsxr=51C7FZd^G-`FnEUnlqOk3vUna;TInWY2x#AI7qzSQ06RS_U5-#?B^{O zLn`Q!MddDpFk;tm+jgboP13p1A#*pm3F|hx#%|?<12VG%MLI%Bhx;>DCnYWzab(SF zncZ!>OAhddcZGY_iVg0CA5GEPJjq|2o2Q2x#>@6@o^9>zt*!X;bQ3|bY31~WZH5Ga z8rckQOHfg?3MEAslqJ^lM-Jqc?GlRyGX7f^M=s=NFE81(Rn(NLHtr3+^u3n6b@O*( zfAMJ0#%7^uW6@$4#3Eb8Er{x(mT$?*;ELeBR?D~F5?4?uvkq1lPV+@qW7iCDZyCXM z&XWGTW*5TCC0Ag5U)HH?ja`3n57b1d>x>3XFE`0twr+XekJc81T@E@1t6w30`CezYOESE;Fuu!J)6s+O7x}Sju0ET4qV(z^mSEN zDocj};`%@Je^L9p&Ws=Tys~m#9kbQXtLX$z#XYdw!PFM7>q{oV6{0zz`ChVsOk=Xn z>beHd_e&t;h7;v`VsV&^RjccCdA)n>#jb5+cDz7eVG(~6C(c%WK%M>GN7$@0Or?l61Dq7vXt&6#J3bI* zD*=tiW$n@v^)G7DLy6eHyw;%rM{K~S3WTkjs5=Op`;(v(1hJldJI4ays}pgkjcVb4 zy#AtG!mBz|a1j`7dJ)b#2#~Igu0dQ^<+ZSa{5T#1mqe=wv^;IUhS%HGz)%b7_t;Q_6ue!g>4#Z3{prwWXP znWgXxNS#KL!JLxel$ny0oy1c$n~)F-MI!yO)KKQms*%U&%RH^5J7MU#MkC2<2p`>! zE2y~f%|$W8E7!L)NafjhH0)x5NoFxxng!_a%jA+AFK-XFYqCuZ@JOXIgR$`IU{iB5 z0*2g|2GAhKHy;sJ?F2aZ)?ai^j|bQu+8#0i0nyvHX{no1HlBkL6aGVnxUnrw`BhaS zfYuKm4|oD$T(b3FIw#~00yeuZ>0=;na^X(SbiH#YWJnR$&Pp9Xe7GX+;yKRb8EUZz zpyJi*g0_2#U43mgn8nMz-kYMOQ*p-zlK1XhYdH(HcZ5U|5bJ(JhN`L#mjgxf$Ar({ z5uWvbhGK(asnh21)L#`C7aZl!LvHHt>a8MZ+J?|dMCR-vt3f-kJ5exPr9JE4y7BQ} z@U6jAZRtTas_p$EfEnQ=R=0|Ls>aVseq~Uo&o<4U(-{Lq!{t((LK&!Ezk*ln|q z&?&91cBHpXSSY!IwH|-}{ku?Rl84vwcx7ori`csFc>ACHgA?SO4lDbQw?E+jJdTyt zfA$=A^V}!;v{r;3=V3JO+{fL}Nfw6}U%iPF4hd=vn?3EY;kwyeZ5@oQW3LW@;9&oh zwUS^A)pFJh8R4>xtoQ+MgeX!f?c${UwgZg3`U76AZCV6&T+?+~K(!&4iug-r1H^~t zvc8eqg3Cn+M7(O-V%q`?a+G}YZMST<eKbYMH`QJ@9{KFOM8x*_a20e2yEhDGl@)BCf%YTUmV{v&=Rc^J@1oBqU1|N5CPmtfZEF2p077vizC_p1O zgF1UA8sF6<;5$s2R(~zhgx?<81ah6n#hDC8&l<9lj`@jBIV`%Ae^BgqOO=`(UzgP_ zT{pm)Q9r_|ARoZaXEL(Ii`gEj<^x8()g|xr+k+lz6zXlQn>SQuU_Y$ah?K$A3 z2C7M`44I&$B z>{hfO5=$Oa!|gvur@5iGW&ju@v1&lX4yn=eBlPrZ^@fH<-ul0VMwZ>>bF{+vb8W+WtAI zKMo6U?Lww?;mk5{I^58&QMcUB~-ZgaMe$7Wvh^x0u{ zvrpUJZ1EaMOB%9jDjNCD;cR0~kWZF)4a6oiSdw782=)`8fuXVP3@Wd!tthV%;g_u~ z5B3wKfnD3UTS=dUeJc!*Rx@NA90&L4?>zmTHjkj=LdAi$)lArwgpVd^Z4YsKPRXN@ zQ)p4q%rv0Gbs?9?^zVtw_n5X^A}&2}Cexi6Co&x`RJ+xcJM6w^jnK7}UE{uG?b_X2 zj)>N!?2+Aj4uk*S0T`=8^dO})2B70UWD!*go&B(P_mRWyyVr=%yx7Ro@n_C!0oghP z*OZM!%K|mPnk$88{ZOL&nzg&#kBFUKY@w@p*;?7Q9p1La z#@JZf>LpoAb1}hml(Vi~BWEQ`Sh^eIlD%{_xywtdB}QVU)#nn=>Q9S^fg z3uM6=zQOG6KacV@#%Gd9U&bK*Lnwr`=vz}-6Ly9M1_t@ZHpJBH>s9n%r#)Ah*HnAr z99`g^FQ7es#H0uKWdy(+sR|EEjgJ!D{{pz?>c6y8yVAJY_QSQe{-B%Z)d-fL%B6wY zu<#%_8Tz`+1no~n2mB~{=m7o5ooKoJDHs;1$NF%;n5gBeF7MePgw_OChg7RVLZZWc z&>{odrXh+iFQ4py^iXQHkY8lT$P+W)szY!X8?Va9t}uSG_2fnEpEvG(eMYD&Z_01Z zYsqgbtf@&YOD>HrQsJBnV&Y7p{BU|B3IO4>(ma!xlUrqki<}|5eP?_xwr@6!0kU|k z8+_>s+Do8zgQ)!yidK9JM6g)$@l-LoIi|Hut7#ZVS5dc+$sr!KMVu6Xf{Y0x#yZq+*4I-YXVB1K0x(N@r(Xk*}?#FA!rO+NL zrwqoKyh?xEPhSzuK>^tT{G`EyCV3aTOqyWGTA8 z6_C{14w_B3v-r`2tYkECeaTuQRdZA0w=bFlGL{g4c9mqz!EdjBzJK-jY!Tl10RW`p zb@3<_rF4g>@m}5OLjRNQvjeNgLr`UdoUYgNbO39;g0Qw|`tk>pgqV<^`0!}e+7IZV zu;*{%h0;SGieUx8=BQHDN4KL;#|kYe&nGWmgu;1oMNUb+>d-}Up_u&6li$gq@O7Vx z#WCgj{BYI92?gjA%eBN6<6mb<0pC1=*I2YRft`SV;S2*YtpCs7OPzt8136NQ5H){V zE7-OSg*X4?LmlQw)k+MldqenoxM)jw2sA)vH*x$>^)oxnA+a5M1X^vifP+KkjDO}j z5IQ^XQ)6iAPikQ$C0oN2-wjHV{?Dmk5?ILBB z+si_l1hSrODlKagZP8T4MJ6Of39f8pLUy4@!j;__h9f=smu@*5nfPLB2#OiWdWB-E zD;w3FHbZ&!$l)&q;=mqk4)rP#n@gHY5Awu`y?S`oaRL2iB29 zFi+%X<>ZK@nYA595Z_X=mg&6VOlNV^+2Wg*=BB2A{4?39zk_Wv`@to06wJ&fgdNkK zHXkm@kerGDmb>JhqcojeKtE-kO>*NBvl24nGLo|#$&b>@vefod#v9`wvQvpxXEM1+ zzgjq-vHj{`$V|lt4b*H$x%jq@}WbFYjlI<-U0$Dx< zFYi%$fnEY(lY0gSiYN%w?@~(PHgFocG2>aOx8%%8J*C$ec+As;j3nyVWyd_RikwYh z>rFpJ#K3%Mvs`PF!HIa=0BQ!1KnoEnQ#{~AuA~p>|GPUp@~xr;k5 zhkq7_a0Q-x3TAUH85j3i*cHEvHXl0Lrn0H&+csZS=kX=ncJjJA>9d}^dg5;DgMx>k z(Hla8Fyk0ZYyK|$bJvfjNw4+fH6+>IZQrsd6C#PO(;b>ea=5a_&spj2Y!}LXhgr_d zLv#`d#Hi@|9{AY40f0=bqdX5uo0;n-(>F!PHH~tH`Pan$bgR7WJ5l3z7E^SG79z+b zJ#VZX{FnIGUj)ot19)6lhiyyA>&WB&{kNgN@fyD_f$Zim9)8txCRK?Y=zd;pr8*w$ z=ngAqQ5U2neLAz4<4{R=swJ=Sn4rDkHvDh#{@>({cG8bWyXE8u$#0Cgo@FstsS9;D z4niZ1-`*B(vynPxpvR`nY^N_#Z?1_t@`!hK+VUYCArcnwtpkrpuS#OaqqllxO~1$D zUw;$!C>fX`UzK;rCTF|fLVA#$ux70L<;DNy#Ef3(J2Hv$3k>uV-e&y*D{DpTPGwzX zWv%cVTU!|jS<78rJIMl_R7XBi(}T7;d3nb3>*LN9e&t1?P2>a z55gWM${NJ+Yl!kNVJDDv7-0b?g&{lEhlk)tSzrXSr|Mz_Fv;#R5^Ul#{e^ zlw~!`H?IByR|QB>OkQ;4^{L!05~}m~hNU57w+>|Y|Bo-*uTwY#X96UOZx_t^`{UMu zWCI@;=)3jD78f{|q}RD0{;K%m-2RZ@6N1kYCWUPY`XF~J?>#GVy*LAas~&Wc7A*52 z^FCai)3j1({FKRHH3cnaq4#PA3pI>>qV10x{!@Cm=lYg;$IFkM67kh@m5Mn*XonLcgkzjkDUA%hD zVv)Yvl|`MeJ}#%Bi&%I zG>SGr7_4=+pLxv*S_6OLdRj;8U?y4u>n#jFw=k}GLo6xU-&U}CQPM0 z>8PdDnWvlSIGE_YL`@7#MMJQ-UXV&3bnTUZ9NmImbQCJF8esiFbOlb?5wv9|VduK3 z1KS+n$5IcqvQn*C`753rKmrqWQ0^f^bWj_yb!^Zfd8!Vn!xJK6VjzAAhEXt7k$Ro< zx{is-ODHPVy6B3F5@PZM%}Q7-K}c~(DVK3biK+~i`s%Wac`{E9dqZIjm|p93GPwlt zL>L3P!IG0*BN?)!A2cbg`Hb}=w(Eu*JoP6__F>9T3R!8pGX+)aNh^}wz^fS}n?g3o z`)XOT0X6_K$bojR7b1^r6Og%(i(^79A+Sm6*^tn<@EDoS&Jr4s?pYq_)ai;5Xmnn2 zLWvykm!Btgx^`O1E7My;tDNLvrUj354>H6ZC)0!AamD}cC1|$5R3ZCO@be9#^6WK+ zvzqL)&H!U`ngM4gPMmlfqKN-LevnB{HF`8IeYO8ygljt;2A|J@v$w%qD5$af_U+pf zfBxA=hw?OOvz)CrcXNkz&-ebXT@xowyoD5@Ve&Ocd;eKwYs8VwplX>7puq{HCT$+> zu*PtZ*rx!+{2Vu)HW2Jwn#5UHJHgV~OEyPEtf};L0*K`^2KQ{?!tNq*W^&=(HDpkO z=e1NxL!e^EY0?JbInfyE;Ti@KT|NrFXW?X6n0sL}g7FAKnLS9y1L^ATFG(E^c%Y`K z7v95mG7cuH5t8dY`B}TfG)XLH0C5>)J>!!yl4De}cE-4lrd%6&Wg{QMZft`YiQ`Ad zoW8nKgd}fDqB#{hF$POFO>8TbGjAx^ zB%suvsUJf>8oeDf74u1??z!Pl=3Kj{-h)>T&YS1PzdF5UyWUyVC8cmdm?sQFOvJL* zA*CZDCT{^fjEf_{#b?xm+3@g$m>5hL!RV%`)6ahVkEJe)_4Wz!P7*gKG@2$1J*OeYgXp0;Q!lv_XR9*Y+GGJ8=3Vj z2I74mi&y(G8V~)TQH!Xqh`yylMJqrPHwU9{uP7C&L7Kuq9I4+u%0@!38Qo}C-r$u^)Df^ zYJ}ASLh5qpBPkWK;;)4Z2r4MoL+Q(o4z`6ce)0aHzC7_%@9;0Jg(q;Sb<}Ly!uTfa z3;{ZbVRK{53F!u_o$XJ@n7pFIBEG07D=$y9z9ijGPd8`h%P#x-L7RkykaEnSavui4fYcrgx(`%w~1L0lW=_oPm$#0K6CQ2<# zcDPV@i0ozV<`7Wtb-HroH#iom=wDj|TIqu>Bp`@Z`$HZu5>!HGyi@>51^Pms6)LR| zsS6~5%2_%ZNb=bZ-7|~BZ1oy7LTGwGd;H0*d;5q=Rc?-`2;x6tgZ1$-m^X_{ zsBSn#4E$KCyHCU=VqTKo9L>*RgCc^0&Eh_)x;5hQM=H8>B*;@%{vW#D10ag4Z5sw< zcGpcF+p-3B*%?jj-H2Ud?_IHCK|rNT?;REvmbS3;4uT4(s9?i_(ZqsX)WpQZ5>2AU z_!#4vIp@Bw`?_eLip-I3kt1B+3NJIXV%O7Ezp^y5 zWBn*ZYq3v3jx#qvJ_|_~kDh3#r{J963=*aYHOVrP8R#l)$`b>!z)F(WNQ4y>Cd@vul}YL+oiUJbO3=>=<{-#^Peo zH)uI<$lElEw>FZFwm7`CF|&oyx{Q~#S7YfBkeMEGD};5^-#RU9p)6TNVWWK;LfY$ zt>!DLdD)-cxoBqKR5gNgV(Jneh+ngx?7w&V-i9ZxzsAT~FmRnZv+N*HTyI~#{fabe zuHGfcpBO^3h(f&gI6d*xI|V7}mbfDyX3;eM*t|mC_U?&h^c~8apgj%N0hc{4IGsip zKg){rlD`I6;cPRNcHXyf!L-T)*t_5mS{+EgMZ(W+ax?4+O(h0coWnMi(YzGDNCRdue3FKaJw1HfAk!_Jn6lWe0D=F?q-M!N?R751x z$!9yr@Cu?mhz!` zQ_Tz9^2IZ7%R3*3A0D-dL8GZN$__5(UcCJpcev#q?(lgHh#*}>f~wEt7#+-*Htqjm z6ux}`&~`tvPm`OgFOABx#*m>e!nkh#x1rF%Nd0ZDOqOjum2ltLiYCaGOcJ$9{#(Ts zvKd_(^nf>$Jk8HPGq}IDFkH5xlKOc!C{C5{rnk!RfZ#1B6`nHk#u-fOmE;!{IYs>; z=GIWlF7C(xn}Qf`!!!9Ak!5<(#$!LC zTDDEw9U(?ElF-`z%SL*OmYV1h=aUOOOersI)qo+?PFzb*Efl zEjcL$d5|kAMbK%JsHh7+&Lq=+IwRjpO@EN^u5HsT=qG0}j`_?1tR`SK6tzVt3ccmM5co6Fow>ZLm$!5iE}PKW=Zd-zyK3&sed`_ZzFmT5Q)Ao6;XJ8@QIao7}12p%J~Mo zu|?qIe1xazpIP2$Q6zr}`-L=7^lt$43DbzlshzX``=>a{0SU=VVto11+#jebXjmYM zUM}CJ!C;7@i}a3Y(Y=z)({S)5zLQS)Aa8pZ&!e612aQ{@NZ!#({gnh@tPTzFleDaw zQ9E88799_2V?MMqCj*nOQoKbfL4bbB8#BEEQl-ID+;lzzW5j zcgC+WvTnbssjRB5mQ4>v^YYipP9HX8Gwr3Oy@s5)KMW^ZP>_NeJJ@-gg{k`C>e>+iu71e_ZvYbDd}Dw$lt*(9*W&@JD6>|t_2#} zD$2(68~6Cnml^AJGj;cR4g8RglZ-C`(MJFJ#K-1n})As11 z29J1yQfS~YI61>NNce`12C&n27Pj(6z7;Z;6yC*GIt~A8+waO05b~z5LKY4wGa@1@ zOzj=z?~4qL6sc$V&OH$TZ4us4-2vNQfDtT3Vcjib7pKtmu zT?IBR{$I$%7vqU5aFP&kP1}9?%=*jz#BEb^%^61oI|m(gKIYb#e&q1En@4uuBlbsr zJWrN<|HG5sPn+*I+=qAaUv;rHX%kqB>Qdkcg^+5_Szd;CTk+*%D|%szx^^^_LY|O8oN;Cu+nQ; z5xXUKPIJgXnN8caKIKPuerp#mTdAd;i@)-^RKy<7z13WNP-gOi+SZ?srwkrEZc4v? zf+0#Dkq})RUKC!KQIuSONRS~sDJ(8DH!wFaTUM;ikIP`A4FQQE zA%SUu`e1MuM8!wN%2F!zmAh3LnJFn5+|``hCyMT6>`tkQ-xqy)+g_(aUAb?Kx53*G z?57QqB_P929h&5o5D^B1xGq^2l!~fSvoo^|Iq9YQ_h*5C5HiMTDgf<~JaH%WN$HW} zC(mR)iMtlt;(gEVut)jE;Kc1oA-Yvzv9e?_b!fDi*{<+)poZN3bnQ0_F3=p}L;n*% z4=$HM6s513S!?Kn@S9#kV~4oeZe8uQZ2RV|n>Jg0nRPbj%Y>al?!KO2c5KG&lX)e3 zrH2^9jJmIqiV_cREcOVrbM~GQw+JNO;^NqaS+*zE%RW2;N47i*ZcUOQ*#;RG$%)X| zRUJvHjVp1>NzB$7q8J5jAI3#r@{?;G#! zsSDU1=HL|taY6H*$R^Qx>AelUg)?q%xf%tGSccx9_SO6OsiKULnUQJ18G-shT}W|Y zdX!ccmyi$Qp-}EKn`1W7EG#Q5HD0UL>ci7R!^0xNqJkqbBK3*dgm^

    zA)4ApBHI0o=#zcPGS z;Z&!ro%w+kGBS6KGCVvbHIxgznSHPNtSni2yrej@II|?(+Ig1ml-NnKwsp?RQ^}|F zO}gZTzErxxGax!XBe5dpTEex+YhsT70Ytaq)>Q!VItrMO57SX_GJ&RFEXQ;dM}pfG z%CwLi`bm)1A@Wn5V`+F!62yc`u*X{|xAnJ@ft#TAO8dxuN%m!a+1X@J=KkBMxAk|B z4J=Lf$f9FIV`YFDu2ddRJCS-E*~8M4S`u4+j2P+A0(Gu7q4udQ#fn z^u1|&(+vJuc&TN$IOfr2^-D&yG(}gH)xhW z1L^au(#*n~q+;2Gc9}9_;exFT(~!+7W-QG~8+dWkofw3VW)O=Xe8sm7IW}L0H4P~n zhbobRk`&9Pk?G3V@~Ena-FRLs@H!=()}Kx}4Jab)24o^C4V8IW1(^j=xuMx9kf2UU z!=~BkIq6v$I7M?iv$9Uv8}otWv+2}k8?{3C82S@sR zM>JQ-kfTR~8^ex8Wa;$!thDBWvn6LL$Vdmm&LlQdgI4yf z(Y|p3)=_SeTXfrGyp6wd)9iuE=jayd795MXCW9vxY;I+bPyKeT@W$=+QH0jvjq?*7N7BtP1uUhKU2ONN>MIOxt0$MRYHGsf88a>kP!SoAn0w;bdwSIKH&eZG5rSRI(%=iaN$FRYKKv!9f7%q7{0*GQM%&{vh!d@VV zfPI*uB6wDn;`W|UNT_mMf#qd-8TLXi>r&5rp$as=jAj*)>4}|Z^ry}IR|v<(n+<1OR4D61r~_$K1@K4claWM_vn`DTi;Z|G_zd%>R1miu|hQ@}*$BTX^tN3{Q*2+i8MoIJCn)-T9+yPTxUvsxvq{HDiA^NnC^nE~-7`%bt?wo1x zU9tnAP5RJ8DzA7 z&bYa>r;7G`JeTy(VILZ zF(rjSW!xvizH`Ir&!d8=|gyfYv4Y};Bl%7xBm^uJ|jQY@+M|JV$E zSU}!Ivmkmn5$P@@7QOW?CQuUMQAXp8Uy9$Ok+FlidCPV?2I&qRmL|J@W^61PVTkxB zS2Q4!d){-KC#WaPT|2{@6Qah*`6x-rnqynf1!Ls-r|=H`+y!!scE-yU6=pl+!aE!0 zBgwgvW5-I)$>_o`CHYalb>~hbU$%Bwh(cOka+0iJv3~&Q4m~7}a0Hn3!S+}n7NVj1 zP|kMmFGrT-dZlk{sGqmWyOSoEY?%&Tg;K#>1)I&A!<|`5w%li5$@?RXsLxiNgVvGl zh?Qs?bVrY=5Kn3|Lz^cd6cLAFV*edWLM6n03h)!fl&Y`;Y(xjTQRO;n&bGghtRv=b z@COc5wb{dyqwM$;bOUQ3f~XTMfbz(_ zHHg|su{o=_<1bbL#Yt(cC&NQp^RGHbcJBJ3KYBZGh+8aL>bGSRhqd!P+%jF^W$ZVE zD&n}5gao~o|44%r=!JV1pWGrI0l5SWCGGOm1eT`Pjj|DH>b1|19wd{O`U?nUwVHi@y z)32?C$v{5(skX1+JHB!ys{o1rKR-fd#h&l}P2?)mXkIQC21wdvP`b+7B!?FNAe{JF?#Q4#O=aIHBWfx#3o2xvRn$>*WhQ&2 zopiy;6;~rzc-TiW@eyIVF!j<6r!OC?I&!3#BNOg2{4N@=-0I`x6vD!LZObIYgn_nc z!RDrG_b*jmtmYs{V8vwS7p4`eJMR+>H^nP&N@&*sjF)$)vy+N$l+uWPj8H3?v+BZa z4yncBlV?KrRHy(3dSi)OQ?u&!R~K#-7U&Yd`t)Ns56FT{Ia&gQYd_{pMcvu+IE7QU z)?b>NgOuA-2dc{(kE@8YJ9U;W+hDhJ+4>WgS#nBRlee#;jD-?yZ-!iwkblX!_R-Q6 zPU~0U?0z24L~dBCU5Cd`#3Z4I@S^i^vpkD&2I7n8pGUy~+_75B*mRdJtXR|t8Vsu( z(scl_R-0x?wuw1h6SFn$B26TJR6-5|)lBDh&Y>IBAtx9Z_i-e>zW9R`Zko!OYxdI) zPga|Cq!}&2d%k?l(XXSq#FCWK5*6Int+nl~l5IP7IYx3WN0aNDQP#Fv(r_rq z9qG5X+RK@Xlj;Tz>;wsl0|gU$W%lCGi9w$dKu4rFBVif-@D0^zDPJ=t zk~fUvH8JxUcAs`tQ`yidl)=ETN92eB=t;n}pAn4B1Ro|NKp)_*+L^H<%Y}U-3}6&L z4BGwE+_!3z^%0Ho>WQ^WVnrVUM~4CpUL~SA0-4jf#}A%Wx13zNG$u)07UMvbLUo)9 zyeI(3hcZRw)y6&Qn_t<@bqH{D_2Hlv+JgxV@Q(FXw=a@x-M;T=G&hJJ5dKy6R}o)X zQyK5eBxNNVjjGFMPG3HI+<9Xz`&t-|y-_Rv7$d@=Ac*+-a?_cXGskys$Ysd@;Wa}P z62%Y5aQ&k5aL)W~x?o4`iRBbr(|4lrGS<3xS}$tXX~pbtou3sco_UxoVZvI!TsoT* zuGeDRE9;zL$JDm`W0JvocCDyZvP1J_gZ)|-L_>?>7KJTlM}d{&10JT`@h?-RxLX8k zruez&=J~I0H696c+s#72WedYwN_nGLw`jjetwuN|t#ICwyID*|l>k!RSF~7;lBeHX zd{oB$3~68-Sjk=E{d>qNED{-Udk%R=dk2Sz7W>OB3udS6=zWGBV_xqVcC8<* z9c&&Fu}ECIj1dM%<6%r-E9C$F4knU&M1E!pE@oZ1q9Sua1MC0CmIuR*vW0FtGIyvI z2#$JWDn&B|I~N~;#2osZxf-$J~mrP)e6d$QNriN=;t-RK>c|lZSSV9a( zZRtD4Da6TVYo~RDvCGUy;F=s|E>>4wx({fiAE8RIk!fyn+X!sKCZU3XoIM_5E5T;eMy=TI+iZUF7d+?3K36U!tN=n4u|ZS^*^ud;pg2Qx`7A!i8Tx{9)W zc{PZZOD>;Szig@9hGiUe#>GZV(OGi5vHUcRsGuYj#i1kh@@XT&03p70<3(Uzwvaze_H{=Wzhv$c~?fVDIX*X%;X0YF$Zf_<> zHDHe_%1_aln#mbyQ2_)`+mOo$LDh)7P&Mr*iHwem1_;SVD2fl$hQxx?l}L1tPrL%QHGrOTs8Svl9!W- z6hN|)pLRlc#Dt~fM;1b=Tw)Zt+YOm%cx5}Krx4?M3xxZAVBG!5b2OvqS2jaW0+iWZ z+p0}>m18!n8_U9rxu5iq+}sl%UCJE^D0N(^It$(_ok5qO%aFZly7UL>p&~YO0X$+F z*#hUy#!uDsxlxV+;Qp4om#D?aKd~oLBN6$pPFQKsFF-jotZ)#6zB)l&wvVJwC}QGdd|e zE=HD^`1v3@QEig<5!W4zb=PCvHRmT_-JB$&HbY$3@b|i72Z^Z|Kev7L9`U{pemb;h z?&#l|x4===)#PvTR}LFS8j*UvhOQC(p_Pr#o!Kv6feac{Xfm!AWEmXpNu6XkFh!g2tgVdrrJGvTcj2(+FaXXR4nBRz$VN#fg>o^*S z41V8E(sgAZDS7moEPwsz0txvH!Tl~TdS_rV=kX)piX@MKps>(me(|G65F=+Elf}eB zvHwA{iQ^9{&unX4zi!*M_3Ik9ojudocou09u_?;4+Zxub+vd1VEIlihcI-}uI{Y|j z_&k39=i?{u{}ff?kt~p+>^lyc@sBar(VVO#BY;Qh1v4=cAhcc>s*l86FESDzl#`Jk zYDbr{7o4>tv0T*e!`fJ@CrEG=UE!0$3|1b=DYVgM9qV;Ungxit6U_oUj#)Io?oRLx zWZ@%Dfjk1OFBWp>=G{`#%dtSO7-)-%+(JN`-b!I_lZnLPFxe*ZNzOnT+cM|bWD>{w z30OM|geBNk+<{mp2sCvw{;F8qLFYmgT9`qw=86*XC+lhHL;AHElt70jfh2xCCzwkv z&OJ6FXOV2)a7Q#7y;bO{WaG)ci8pTCL(=D6XQf9s+#ZGVBpXp^XEG{ z>K8UR0V>oRw$p&xjlC5oH=91-k$UH>FwK3S!i?pM_Idgr^n>A z^R|u%U8+61&I%cHtM+>7H+gwk$HsbjZPI(~wcgk?_txxIx|*)G`cM*UwDQ`kKe>1B zsis@E?%X+Z)@qqySkb&=lbd(e)V35KJX3RhtxW%XHaKerKEI=9uQ#9ZDBdaCNdBV) zjrah3L~ii`uqN~I`DZGYv-}D&v9D%5wOk?M3x1|Q+enT>iRULpnc}961Ux+$AxBBZ z&zUox6AGn*AFqJkn=kLpD}Y<|WBEeq<~*Q%XZ{Fb7r94x_y=&pV8MzB4DgKdRO5xWVQf#?pGMMI zH#3EU$o74&zfylnuV=|}emXf|>i>*5AAWl2+?%wNV^#`>EShfr-Enlq-oYvGT-$c`PZ?V>8S3s@SQX~#TVl&hhI~OhK_C+My3gU$y~t(Q%;uL zjC>asgcCs+=*A)D6hfNX7h8!^iZ4w;q`T?Upm#6L^)F4k@H^^d*S3Yw0X*PQ;qKz+ z;pST7S9hSIrj9LGsf-R577If*JHU_ija6@4YTU9iL#x%&I+^na$lsxA2ogRHfESw`@s>+sYLz zgpND{z7UO1%}V0JuhThBbX4B~bcl6sT(ftC3S#o{arSkF7QqK{ z6Bl-a$w*Gm&Qxa^l4HT0zJSbvm?SZKO@>-WWp1j>1Nj_|xY08qo4rB09>fLwMD?hT zu#C3RHes1KC2jmNei`{^DweY^Awwv(Cr9ONy+mA3Q8LY;a-?Fpk-frHtDERHY$9^9 zBgz!&Y&9M1R3E__j(JW$eMmKA2(-<(=_78_8v%k^HN7Ten(1;5S9R!n+NeB1(8( zmHaAxh89AhGr)ULMqj^yqiV=oni)j>x4)Tv;1_H2lB_wP9{VEv z-IotYFWE1#`RDX1MSae3*QRk9wi#O|)1HCUBAA-JIgZ>YZh=)eS&2bU#mTFB)xpzg zmqM~vq*IHOSrySgq0c+}LK7XTqsu3*q+LTR`U2OGL-t#Nhdh(^7VaPq9qq<_bVM(L zPNWaK9cVq^c>4~ZZMhCzqq{bY4IH~jiF1BTgAp4C7q(i6gMi8ad0GFI! z0MGzll^u_fNcK55_fy)#iGHF6kah*|#1O3IhLMjKkS`Jl457YJ&t{Od*U1+z$;UD@ zkyhv#fYwS4d7K_jbKh~~Z2M>>$pv>s1X3m@vW@emS4>uq8t1uoIv5yc0D_%Ozg8h> zc_@Btoyo4b|HSiW^@Drm4L3MYeoe$<8%gp-zO48wCR^fd>JjwpcQM1lMl$(W*DwwL zQb}xFh_!QG- zC0Ub6rXg~$0_1Gu3j`+CWOD65xphJyE#X#?i2@(^Z)pQ2t%gG6sL9*xFp4NBV!^UU zd^B)}h@sb=8k0YgrrwQ_n_7_!@D9Ex|10t`Cr$Y?8;R9#U6Cg|RK9rKy2XIt{vus` zc3lfgc1s|sHO7&6Z6qPf$$=&C^^YQP_2(N;pFApSOYGA+>(a0jR4%v-vReOo+7EPu z`-G6y_P*;p7l)&5eR+qzIJ*2CfUdWK9u+K4x9yAt<|DM)7MYfDcdo2WbknHu#qM8w%quG z)6XorI{(J{`)&{2AH-ZtER}Wg$g_zRfvFw|kx9yPg2wx1 zW6}~6Qxnv&F|qx$W}0;9P6_&H%YxK zD{6aUWcbF4n2aP@(bo{k?w#AX6lcHY%C=jcGLJjogg;O}_@v@P z^kINJoWx!aBALi}UJ72X@L5RCi-9^~c7 zYTv+;liti#w8F!o8$^c3&>r5Pf0NR6@j{TDFdXh)VG(~i1VjCUY-V&;RCbI^e|_#x z6Ik@2{K0^td_%gZ+HC`spikR!h^W&s=7+8febz*_!tZG-2jayNf41b^*?+QV;Hdjk z1Dx*_1ejk+d=STbDfK}FO6sWb*MuO%D}5lADM^)PfQHSJ=NE&93?b(KF`ocHv8X5o z@T0(XcO(Q~&=vA?&}0k&Ju|9%PvE4x`}z83yhMT_?-iUXo$T54j#_(pHEq z){0Jrx?JncC!#u)?5x2of)AD;Z)7EY;tz=&m|saSgG3Le!=2XtQ>6{_34im0PF?Qi z6ILH85mpE*tf)7n%27!JZODr%)#v3}11D?*eTHlMiqAAh#p_inCvkwmM~~9jNTNpr zG968d<$Mo(we<*=19t+JKsYyWzQ(TD*iO0CAtT$7YyT`=WBN=Q#*AQnyk%o?Ux~O%Kc+au zH``Y&7+WM`G-Qm1TP(C9+Qm`hC=KGAyLV?7BQAjz!7bUby<-^CtkRKOCI*Zid233&AOfa?zja72g$abf2%fH$yI-X2Bu zHj>xo`Zn<)BflwypWxU=Y?FT~6^sxG!kIN8ijDJb!hB~rZ)^jFiZ~-Y{qM?8EwIji zw-W{QW(1i(w2^GWyoO_@zxrec^fC4&ZL!gHgTLJMR?jYo`!)ejGD9vRCetll|k zJ~fk3vw7>+x~jK2|3D`1;G&xRNiPqw$&)Po0=X|yYZ4}J>NjHQys5LN%=u=B)tT1D z-MQ-X&9-!Q6S%U+b^f=N(b-qO8~Z{HU(ho2&yIkg1O4&6=r(v}lFwzLRC+g&i)Q&x za&kr^tn2t)NpH~$@V#6hKBkY5+IX5VAt%9yo@T_A{Y{pyhQbEq5`T=~8}RwpVbRu+ z2E|!a&@Q8`$`_L6mrSjsc^LCTlIu2OBBS`RhT^s8d!g?t-`zDtGUEpZo}xa=B}uN! zxhc}PsCWo=he@`JNe-)pPb5L{y5c0342fXI33g9G_}rSw6sKkwN>qGrX%@6&+3ARO z-;t0np5FqmLbrFj=m=;c1u`uuVFiwA{*QLJq~1N2+%jUbtaNN9k>(>&;Af`GHj>h=EHA+K!nD_wMvZZ`bEdsvYt zGnq-(7d-so`t=_kF1S8%<$70pKUQGA4@nP>N(@1WM<}M7;^~5AR6WA_@Q(GBtJJg$ z`Uzd8o|u2#jf?k8baz)Fo7Due*2Vl1V#0HJvo5hVu7P|CQe##{Rh@`h7#rQ;dF8Q8uc2wIP=ADF1$crQIMaXU!l*BkS)6i>Cc~`cdabD zbdmc|SP-rc2oIO($TsCf)PXwj*IDNzye+(z+=hL9(HmZuK$|vu(yDl*xOvkQ0=FY5 z&?<-*FVBgrmP|49F_8Yej?M~ z%J_dt6_3D`=+HhXEP;2HwVB8Y2^qVK44h8j{09ifrB}=ik{7Gf43v#KT*P(6mlc0wv_gU=$@bQU|oAHvEjuXaV8CLEFG- z#1Y?H(|*uX{`S^f{}u#~FY(5WCdo?pGW!9rGo03|g+-JQ0uRO_OfUuYNh-#}fn*Q| zn$}(n=|7N8d_-rf=^5x(YVmy3Iaqo`hJ&b0lo;zCgJuGeN*nqPB|ecH7vQR~eWNlT1*rDdJmYo5Noo`HEmC9y0tDk67f z1Y)ELF;GoA>c*I5p}ajFcE45n68s^prcOi>vZkIv?XMG!EPG?xrKD&vV-1lhFw ztu`h~1&rZqY3=FiuPe{Xh*{Gq()E`5y<|r9t+g01=4i$}?)L$R)K@}B%%fu{yOis@ z35n73)gVgi;x*_YV#9wU5XeWrW1O@X`p1$Rr)ZbHCppSqzKML`5o)C6A<$$eC#|cI z4mDUlY?yTJM%Y6$d(Q8?_t);HWv17F6h;|hvbC%(12k@G10?AYBEkVP*%=sxsB*M9 zF&W6>#7UOJvtSWvDp1~AesKoia0aBF8uZe87oj^t=Jx>?59Au@tPe}*f;LNjE5!*Xt{Cm+qo(^ZW15Mi)XCJGk=PTjOYWh8yTERBY^C?=t=YN2Ha57 zd^~4Uscs@iH+bP)nnt&&XaKwoi%B4hyj3&{BVj*4GnUqeNZd%5#lNzC2kf(5{9OEE zH&wdGPR^^GJW(~lZ_1{5te=a~{(!$MHV>k#@C5Fz%qcJ6T3*zN#D6N#!jrL^$%wI} z59@bulMyxe$JnEWTb~|+A07iS%k8x1+*eeX?J{~$0-yfkd`xuh7ui!kP5oEuTEDa@_1t-K;=$F5H z|9C@ny#+@!fYp=!`nnw~tszT`PM;x~BV-&I2VYW@FhQ7ri;@M-taQ?4AURH17GEHB zSOYb3Q2R(`(qXv!!}Ns@nBNQUTlalU&)C3*sHRf@ zBf>%0hYT-eyE`FcP~tEG%ZYnnNSfP_}v#m8>LmRL)-%27it2F}N z7ooL33@x%vJ6S74{EFlu5UVz(c@h^2bqYgBZiIDYZgE_(8sPZi;w&)pX&D+;KksH@u2-haq3f&MV1d{xfrXGd_AOk0y zI)c-<5aMsq_k;68XVr+~!{Oja#Z!hHWHfNiHjr7>$}gg_JU6=!J&-V5PWfC;<)NZ?~>U5ktZ>u{{U2`DK`aoKZcbZGB zU~84;;_cz0lkuZk$a*=@(YBb7cfus4n{JnnTj$0uY2Gzy2Wok&e4wTpyn z|4Fo)4>wT2Vk?+khG<;|{+WdHAeP&9KbHR{I37(Y{WvUqK&5~tmV>4pZphHwc z)KmQWP7)4LJ{`B3`s-rSVhnNC@djf8gj-rb%8jg3ERTwTS~ZrFJ(|CkOruvZlMTlV z36SLHW#^}J-;?jfef_-z75M+pCErO3uv!{-p7^I_>u@C2e;>(*qr~!Du^KE#uhNM8 za0wEr&EMNFL%W(D@<3mI2dptcI!+fLb14*7grPe&gF0cbQnc|KE9yjq3F=0_03OkUI8_fU_5g9>tB8ddl-Pwg;!D{f= zFj+YndHHZtpf|n^h+7-8C-O47)JEc~)BIt&jdRmW2hvNiyRtnhL#$1FyPTmvwCR=P zhYmf?04It$bT~lD9bL0kAMHUm3cQt`ca*lh?;|d6uj|m8c$2)cIJ+ixkM%%uNl7>I z{D+mT#kCpU5l<@r1*yS%`4S4hz!>AXwFRovG>JY^dd!;?0>XOdWIE+rYW_O;r4^Bl zA=9UjH7So%Zf8E;CmSUdz9o;ak;xJp@y1#uKNaJ)SAPv0k>*1c2kFOGK4n)gcAGj* z1tpG+^b3*%$9Dg3iS#~Ol3b!MDZ$^z{i*am=|7E3R%7u-P;_p8?Dk-F3wPz+L70Dq zN<`;tVLCp16nuY?=mB$Tl7USBUoo}p%IBIGC9J$9$&m003;a^xmnj+jQ~IkOyt?F9 zJ|#WnCtfnP-3?xT!`j5qj02TP)3Ar)z3@r^XcXv|@2K}d?ne+QWk-md9T z7c(;YS}cl<1~huGwEbn<3nhkNLm7Ukge1|SN^n$sn0XYWe7Nx1q|Q1gEnGOMbNxxz z7Cr%KxB+c}TxZ4;W&-K4 z6m7f(&Bxy=@Kp3B+M#6WM3AH`MASwP+Urk{54 zes}>UztKfxKRsmi2Qt{ncMMiupTw`QvG~)5PXd2k`>r7Rg0$1aptrO|=8&z)SPL5Y z7UBr+$daSJ$|HzJmjXM5oi|^&=XonK95R&nSR^a}u16lj`mmP?cxnjiEXBV-=%_V*I>?fabSQ41!Dx+`70EkGp;?DBc^ai;h zSVJ1+2JM^@OnGa-eo)R^BNUC626U>w(cgqA!W8CO$72sj8#C!Y?R0lVE?Y%(0 zp17LdAnQyk$XawtN=!SI0TrG(9!Y{U$O_1c@V)ypkHs9ej;{`{@+pu(vsDO#JJP9g zLxQUZjiats4$g@S4sSiY^?Ks5BXCuYvm!%mX%TIv<{?8id@&2Kb;>dqt~@;OTn%W= z81$Ccj&Yf|dMSqm8s_I$=W#>(s~!hEbh!iZh%6UjX5z}D>%LC3PEJE=r25MfjpsAC zV|-KEzUX~{<#?g_&C1u`J$U`wlWO>6m$L+8N| zML1^GNC!mX6e`*b9v2-shrmU*qpd%)oeQ_Gp6@?fExvL6(RR0h$NaCi4XoQD3Y+Z4 z%LefEPpdSDpi2kA=KT)4Xad>yEDU%0(220x=zT)BM+vWWL|SlO3^AKzl?cicLOU~|NTN_@VC!eYW z3%Kwg+_O#2{a3UHf<5#Q;T9zU9QYuvcG zbH|UnHTN;cH$fvB4R3-GNt?Q~#LPs4Hr-m7$``|?RtCEku2C=B8RI94Ye9sUibLxY z^emHd>@gC34$#{*9ota!t^SgXYTsO;M(wg2@PfY3qjt0lBi_* zd&KE6Nn?}AdkQvTCOR)OORv)B<`(*}d{y{fL=L7zCp+8iVeh^p8~F;nL!) zQ}mKT*RM9-X>4uW@Tb>ZnSLBuGYpU&(^cUorT$Ygn_lAeY+Q7#p4CUkYExNqMTi72 zce-9x=4x;$$<4_OsSKqiHX89dCs+80(fvv@0jv20=qfcmW8U9!a8O5@NNS(A=KH1cVlP zfcUahM8Fvh+?VKa99t?0E(kAXL2pr9P*B2|uJb*VNWif}fH9AyWs>0V@L;YTsX%pR zSh0i^IaewqP=B%m+h`$2Mkg!vi6jAR%hOoJ!Dt60Hd2=)x)B#o2a9e)$FpZ7P{=dM zk(M!0^LN1rv0$NCp#JX~5WS*C8_8R9laXwd^X+tm(sj%RuV_{q9-b7gc5^ctK@dOj zl=JV4NI%(JGAtBN`Xm*ZR7CpUBE#6Lq~GD+$;4AKV{M(WPF+xtq%Gj~MnBu&s`6V) zzle5XwZ2J?!6CA!$iSq~O`CEysUrfD!O9XA8Mg&I34RkJ$J?rG^Tt}ErfU>X<1a@3gQ}xvwsvF){?VH#b zjjwOAQEWFa^RYKZJ=9zZ&3JB$oGs&^ddk zfm+Ki#L`_XN6%mwv3w0=^?y8(bYpiAE(C(_R!8R{cF-+Ta`0g8sv56_ZD0`g7f_2XS>Rrv;n&UcNv`a1iqR6 z?SSL7o6N_!JAAhoC`ilX>hg-}BkN>j$M?#4@Y~7BXg~#}GKFd=woC~03fz_9v^S8b z2EL^>7wKr3Pj+Q^l{zakB`piv7S%};4S2@0scx2Z*#YXlYg>zdGXk=WH z-GahgWm^Ka?%JUC@X9F-;9{~Ezw#)M?O=>``q-{57v=NbPL1@Tc*q*4Capa`gD2hW&<%t_^Mt%M6Za z)yGro0d%E5kcxw8sTCvuKJp5U-cjHI1TSr60&*%ME6{wTW@K{;XMm+XW)yYgsCPkf zesVz)gp*RCD2?3zk3U7gow-B0HggqCffwv6WQM57v1cuZg;chdi>(u$Lyhk!s{d9;6?zd9y1Nd$Yx;Wao` zjnto%h*axjNs=goE$$Qe3}!a%x|Z{|FI&~*FVp7c>GIVPkveS@XYU`ls={7IyEYSM zHtAu=OfjgVJ>0Y|>P=g+%eHZwDpm&hZ}PJ*UDf0#bGvaj^uBt3U0P->w`td!pq24! zwL9!H*UA)j_J)R?O={$dAsbZT{5tp9!Ec-0H#s?M+3x77UB2H@=3i1BwMSi6o>_o6 z*mz?7Z?dw2IAT;*YNfCv+sQ|Ji*oA2YoKb@*6`At|Kt~w-RrJx4PwW?=fK}ZM8*n>^i^Sn&@V*ZFO+Z~q+-J?AWOQM-nSW)`xEy$ zhJr|R|ACwBiYDL zBf-(ck1r+Lde?)Ua|{gRy)v+ znUV3A0RtNL1D9V}ZLC(eWNco`nG)LjEBC-RxzHz@&4}6sW>7fmB`cRvGfwe9m&R0* z2^ZiagojZNGEjylu!^HQU36L(j()Y4E~EdZhgI}EnFGN1IYVuF92+a8-NRdG_ZpMwxMoLO!Xj1%zxX2dW$h}p3L#B9; zo}XsO&y<~qk5^hxdZ}+-42ikH8IqaoJcwd+@9Pd3LL25NS<}^Y$MlEN%PZ11gmc@P zv-E@qw8nZ_g;a+-dM1HHbx7m4}jfjo6`o>nq%9}vYmZy z@~)PzJbyG}e{EKy^&Ngp=Ar1rzI(0dK=Orq{f;`vYHR8X|3_{}kReb#mu^vdl?K&l z_iGPi9VpwImX?;9mIiV4K~^sHtFoOu9NglU*EoVAOP87izP19ZgWEHbh}RCrw35HC zJgeJwY@OOJ*XJ!{S><#G&$oLp7$a56c(nk5cT;I1D;hp_qZQ&-!_nLpFd*Bs_Ezve2TP@ z=|B@r10uLDT|QkVbTO?_R+X1m0jUR8JUZ1UAi&2bpuFnKfM(~z>|y7%<#uXup5wb* zRf6>+lK~w5Q_{c9$-;j>$~^>)0nNaVF=7Pdr-0Wc5K9;u_f3= zBVtzs6r_vvp*QJ6laAOGjbe$45@U+dSV_^um~Nsb0o1I4HR^rWz!=Z@<(~h2p8tKW z<7TbB_Ue6o>-*lXW5{{HaFAa2Ejk z-y}#pgn^%9GI%K>&Yn%&c8bqCS$3lOsI+F`+@iTE`aV3TL4Ql%CTjPnkA_;b5``xj zr~)a^{v0s}v)Gd+90&U#;#LSCWw?XRT8|v<*TvzH{>&FxR02$c!A#uovjt@?bUC@^*#`aq*U3=of zrb{ZTqf9RL8~y4ZGKzPf1scO$`E^uEk^)yJBj|X#j+g(6?ZXHxerxf=L`K%1IG!AP zOcNWF5Re`qE%o1&4?*UU;KOyIL$JdVgOoB#BfkzbCt!Dz;YU-BMjr;&!rqcy<}Gh-*8CG>gX*|zw> zU5^WNaNb}k`SFRuKXq|@06#b6owui{)_B+L-J+4Ve0YEidX)dQRQ~JwQT=BO4VT8$ zCGOs>{O!h(JGK0U9j8w0JSRQ8Y{%SrN^%#vL5irOY!QtsJbUeDK5#?-0u^0KmXH5u=wzx%GTA^XgZ{m`j?;lX>D zm5KP*d411lcKBy|`6|8By)(S|%v`83s;w-qQ|&w$6{K;ewz^fy#9SO=`FF=(pYuzE zv@E?aAyx^|k38IYIImal=p|lf(eV=)IH^|#9W-+cT_g=#o;GEP(miiZ?i@ZfL7So7 z;J?dX<-0OugJw8cRX$!BlM#aIg3mUd@q^bToX0* zgTp6woKn@)WTw?x@LRL$;P-wRdYCZiiPLBa=*(g*VZ&NtUjIx{e@chPVNxuncwz_wv=UzH6xS zA}sFF;3WmxNwhOf-{vRHitw8VY0g=|oGb<>9(bR%bcP|DR%&Rh2j$_EmXVPLrK*{k z$~yo1Lr8p%G#8Rv(LazQD(rpCV-nA3s?w@-x(duizdII|rB=iiO1Gz{XQ!z~mr&nY zIw6Sq`Ofg775$}Io*}(`dE!It?l*(&ZxQs41-?&$6VLwkF)=&7=foZ|?CSCFj^C>! zQ+J-MKd~S9$0rGp9`x6U#w_dOb1nK3qSlwTockE`y1`&(+LgI0t)8a|u_WwvT+_BQ z!6%%kUtg$T9^>EWb9nuJCmh^nwv$b3cCD!PEOmOFhL@29QAln`c5p~=MraS0QmUOo z!aU0Ys7q{tg$eM^1ah^^j+?6JliPA$dg0t|;4hiYe zk0g}QFxOJg>J{~?oyexgfKnU1f8F7YjR8&|#m#h~n@@ZJzQc*@*TRZsqA#siCs=E*ussXGaL6GKD@6H>LzgWxXGpdMD^*?b2#zPu-il% zE6T0kUcXDZ&jDa3JHSKn1)xvL0Cn;exlNe)CHVq?DCP7v-=dc*p7qnqpY=1yMb8Q( z9WXoaE`q}x#j|Dlk)n>vl8$Bi5gp46BSgCbw?XgbvtUuFUxAO0(kIzB&X4zY znLdwNL`vy95^}Z>9Q-*ylVm;MJFFZ@gyDjM^c@9Mg&8(CA_R?2y5K1K75_8Pwo0+N9&Fq=IMl9oi&Q}{(kG%2Q(bz0d*!% zcwc*T-=SkX3w3P2-v(fy0Ta(*Lx3*{l{$24M-GAs9i-vtBHBeliKt0Fcbb(o2dN9hj&RgZXDIy?Jvu_(t=&VY2l)P|(61$=>dKQ4lNzhs|6nwk_o(|rt2ucY~ z4(8X)n;PV%!h+fZoArf{_C0F;MiVtVZq`gC9dd018QpYNSJcGk>|m%4O|>DO8pFJf z0SfokZ_S*!`m@WQp8V|k^^vKsEhG!uR&_9m;FI$7V)GrKd;o2`g44 zdO`kt=~u+*$GS)L-)g?R`A73pmD~nZvl{9(-=+&RsGw$uj0PxvjUqj#UEy~I`P6Sz zg>H?HjM0RWzH^|H&HRxxzo4kFNLjhQDkhKD6&*fQs)TB|^c?=M&(fM@DvzaM>!3m? zV(a#;D$HNv28v%Q-(gakp_YY4tU4(`)N$z%Hc@WBdh9@Pi_ z((Em)uG`N5tsqfiKL(Vyaz=f_PiLgTfjox+rNC}Vp?8PyMl7S)8DHfm^M1Dq(*>JSz`0-nXF7O8 zY^5w+TjKolu&?^uad9GJ7AjKChn?|1w)|7CE1s7&o?Lgr`((|P@n=>p!(GW1#|3Zo z*}mwS&&jMyM^1ujlID2)@cZ>pBsE!l`O`qJ;~LD!vqka<{jUZcFrXb!8kDNVM@F%Q zbfgkj99N)Y?xY@^0dLQV@L8%kymU_W+c*k~>9onXhn7N@onhiQ*|V_{!~#ZxPBAnG zHxO$m-I_OvO#Id9r<9+LU%2sk`DbTNe0sn1&WDG8km_fOQR1=SshBS#>wAgTk@b)* z>J%$#Fp^hqu_JUgW!Rs3ESc<6Goyi}^7Nu7gm%V%5vAC={r%ZciArZKO7%7sj zxBX_{zT;RNn;sFHFnK;TbHxT*WV}UWT>{9~ z>;~~dhlN607LgOHowa0;8`Rc_q~4wbhtE*q_6*3KprOqe`0Kl#8XTg`hI~G&IkseL zx;AFxJC0i1AeCuzf}I6_O}2uy#zV?+JFp2h7t;)p z;jVsy;w@0jGU%E!^lMR_RZrnaED$GwSD^$vx z+g-D1lIU4uM~h-4SR@b7sn-nNqK<0AdIiMbrepxiC5lWCJu3lWcBbARSDoXlz?}jS z{tpzhPZtnwdrn4fdbSgFd64}Cw52{G^2RU)4z9{-TpG;+WI5epa8l%^Lse-GSxkmG zW^V@pLzz=|kc4LxWHNN`Y??t-j`AvO=(3=K6z4w2bZiOJmFd)c{0HgTsafe6PPFIL zRAMb+sX-yE-FHOxi3nmyxw*;+{d!SOIx@j9Z-$AmF$8CiVFp#DW~8TXPjPx^*q9Sf zq~puuo#ZvcR;8wAKs%??E!>kOd^5d7>m+ZUw=tc0O>@c%IZLzhQXxi?>IlH*tei|~ zcJ}t|*%~PPjuYi%Z%59P$++Jq6*O2y6S!gvl-+3_))$W zNDkzjV&L1;C-a6D@#ME}{y}D(09?aN&E^YVc-&Rp{o=v_==Yv^f_hSPh^hKt6wrui ziSgZ+nNY3V7lgPjvoB}}K+xkmYz#*hsc}>B5Lgl(i`7HKxQ4eUOEHB=Dr3tczg1V3 zLAb=q831uzO!AD+fvF&}=q&AoIu92XaaRH?LWsQ~Vk88UCCGcxAjO8aW_!7+TxXv- z`j#dYI_(2!EbTqMdE9;A$&2qde}9h*2p|!3v8Drv_)M`tMa+((?I(fo;E5EE=|LZNwH( zPq6f(wwlgShJ0|=8Cv$q7#p0sgp>*+qN5{t!xeEvba}Pr14(sxc{Q)UBCalvj?gTY zkUXJ$5(@#e*L&fnP&&e}`g(P^`GX(qp?E4&LiO+s6!?i`y^JxcVFAMx)(@y@R^v;7 z@d}Mk#?p`x-T>_#%?B=j%WIly+FNJ#EZ5M{-mC;;FV4NG0oMM_i9Dls%>AEm+P0mwR#{94FO*>n4HHDg4c zs~+-9_YlHFL+BI9PSy@+3^8jAG!Eu1IG73t=TE_FBm++mN}yw6wU3FX0(cG@8VNa@ z5*00h0FDBho-~?WWd4^}-KW$^hx|z7^N2Ikpeq05;g1?JCG1N&X&0R@rD+}W74b4X zq)EUg!Nf6)(zuCWpzaR_>SVo(etQ%ZoIwKNCx@F3Cg7Gk1R0kmU&=b<%4}+G_|Xf0j)13&!pSbR9Nkb!5MSjNAae zv{C%ZY-RXf&!1^>;qJgM%;4)LB z$oe(1Ki0fRHUv3;`0pK-<#i&v;?=QShA~?a>q}oj1I%WeBOUqm>peo}spfg?Jhom# z9XGSQO*^yTBaMEF_@gr)wHWic1<9`uUT87*XsBIwuhOAi-8JB)WB6AtUYf_7Z<2ckLy- z-;n^J{cx&UHGr3|0HJvBeY#jBccoTC*DqV3IXhS+uPCYCoeSL!eOhqKW_1Y+Ch_an zq~ZwF36oRrHqL<;D$Nw=iqj} zBKn=?5LHSV5U@jzEnlS!h}i1y760U53Li?Gx3p5tXVUUb>q>o8@mtcP5{i=x(=?UZ z-M+<<(klP_;Ee!ENdj~|M!hRmMkN`(7*&yxSC^Ql(&_Swixame=4gD&!Ya4!m-;m& zHGK>+zWYw%bZ+yGGNmpjOLy=+kDxMMw{3gM)-CA)Ta;_6Hl5ymwEO^HA5*tenUj^B zQ&zt@p@84Hv3U7v3b@XhTa<}A5({-jd3l9=^X{vk9y}{ObF&JFc^y7m6g8Q(nKgV2 z30VX+SV}TmdfIm=v3g4t5*!rb)3mBCRC9Cc>A9yyNL%QjY7nI-D5=*1pzqtzk^Gj8 z*iD%EDYw=K*Zcyp_hmPZ^S_WGr*Y1ku7va-E>B6MLc4rR{JJ^{g=_$o>??|oPe=$; zm6L5Ea$BY!qvtBi!*!w2PKF}Tg@Uhp?Z`a%QJquA6Y~AB9Sxyz^PKc6XhXM%!)$dY z#?f<4AK7em2W-!bHa%3-Yhj5jNGz43=}e!*U)L-&VTexRtAsH~SrqL>J+zcQ!QtEu@9w0{+~Tjum|ICc1# zx~Ry0$n-*655#}n)z>Zst$vT6N}WpRwB?6DI`r&Jv}@u?GqWyds-MU^*S7eI;SQpxR`O|6jnVA$%< zJ@ijv)p8qq!R5y?xfJvof0T_OwL5G=X#g6|-i1cPTq@{nG3XZIEauz=c*o0yW`aZe z+67o}yuXW5%Day*vCs)Z;$Nc=PqLlo##~oAh6S7iLpozy^ z5FYMvVybR#h|`%BZ|{3k1th~~3@cnH7&3}&hQ_O(+k>x&&Gu{^iY$w*WLs(8{qjpU zz;gnkTzg7AL^c$>K4!o{XSoK0o(yUgG5tDpFsxNOws3DHj}$;#F*}H3vV@v#qN=wF z-YR;V-_du6bA3PQw90EypQ%2(R?$+asc+ly*N(^1qALZTeWuhO)w?S6a|{ylmtj#L zZ+I<~UZFR(8D5K`zX8ANENPblG9VO)3o=%D=-vVwQ3u8kMmsJ?o*Yu+8#?JoNWZZ4zmrJ^ zdf?Pd_5s6;t^RD!%1#q^F|~l-OD6vd9i8b=kjOg?ED|&^4#yfCq2Txo1Q=b%6GZjg z12H`@Jdw!%T8tOA16q!azTUXIN228Wj!yDD69p?Fn-y_!5m|AikSB_D#L+0W>y_Q) z_m3;hsxB>cVyq|Zv*{IIN=q@&aQ@or-6D#N;FWC!&r%V*S{clY1SuFsnh08%;-)KWNT*e;ols z+-vV2yb?Yz*F20}Byqb&}{B9jteD6c~o(?x4hIgJ)d^~$}XwbpHgXcdv z;3G9S(@aHCQC3AlkyI`gXtl*rSqWNgLRM69LXoy2tGHN7CQbz-W7h8Ia_^&#QRP8d z(b2xXj?q!z0*ZoK;|{lXy(^-2XO&ktH8gv^w#aR_v#Fy&UoPhWc9pWp}7AI6> z6%|1r_V0?5_vV~k(>U|W%ssDa<+qgaYqp0Z3<#AT&8~^eQig6^wqjB6gbkrzooFg5DJm)|OesjyWul-` zb?9RZlzweTrCB)Zx!-Q!%gT0E=LxEM@pwzp*=q*G#(QeLnS#cSjS8d!*mHS8gBqI*|zDzUdc7g-Ns4 zEn4g^%_{YYU4_jRP|L!kS!)W`Zs8x*om+W!Y~`kJGZGg{ zsZfCPSbyWGElCd(r#6^+m>Mf^e_M87ym!1!EX^R;SY@H#(M$A}qCUHq`ws|wi_YO45sJh4b*p)LNpdPP`QTwCx&FPPI(K(ac^Mx=k3`*;T#TSvy7ApNhMsZGC_ay;q$ z#`LuTkW2ZVCK}$Z1{#3FCeng?U02Ylra+VDmhHQW?+wjGJT|95uY8Lyx>|O=rcsI! zq#q0)EhDA7CK#S-CYTJkoFN>!DL) z=8o$-m)ZnU^_ppGhbB@hX;!*Fxcq3}N;>J6Eai~}#P`ilFk}i0eISOW;#b~CDnU1; zP9&|4%m#;7W{!%IM@XeqZ>y@`xjlQQ=3>f)+;f$CbbBgxRYFC?802o+&!oEcO7We7 zYYbCoI{`n`Cl`Jyg|x;9vm?hIp6DeE23!GTUergQMSMD*Y@+6yr=(L!&~sHUAq6bi z;f^^{nxtQ%AcyHTkU0+Fw~a>8!vIu)368o$pxZ`42!$MjlxX@zFCtuf*-+9^->Wm% zkWGGh{yiPvd9Rn~9OUHn&(2Ec(g%ttdY{$;-fH(79e2wDdkJqoE8QhcTUU#-61hGW zTZZT;`U~jz_PE!9JkUS?wYzL2@!QMy9|5faf{sFHdvUIj$!nZ%%H%f8Hjvqb%qC+t zGiEcdflaUmHn$^ZqQ!{?$vWsL5qGv=(=$f)tmQJ>9k|LmTBfocbTUa%%e6Ka)ba&3 zJJsc9Bs;;0EzFY1otc~czq?79o9N%&%$b|nf`1Du$b*}}3 z2(g_IO+TIMNOyuN#hy>+ig23E%2jCJDH-?L96J{?`X{ zoX7@n0?^MSNN;36(j0V$TCLkN+35lhrsq8ksN9ec>F*R7P`rL$6q)DjNGER+#kdty z;g>4p2`s_n(@RjGJPPTJqMu%xP#!{Uzm0MtlQ+?M&H+){^_2lml>tY!`zp!2r;Z*_ z_6(Wkb-V9?OSl=O8)-}#IaoaB(Z4QSc0w=49l$1|NH6{(#~0imeYf~iC+M6^G?oYD zYNO4&T`}bbe(l5nmFD%{7kRX}a-UP>KJBr93OesEN5J@iEWNUqFqy2xn0R0R7`^T$ zz=4zKwJLhE3Reh~m87K-$gl^{%Gb7$8{2RdQW;5Gq~uoTI0gNFHT_{V{u+dyP}$NH zX0VK-A>UDdG6pPPf6_l4$@eF_{_8E805;Q9tCyCMka4(f83V4sHqvT@(DLYsn|9GTvEfuFu0$N@MRE~T8V7Pw zbj(B1k0z6(e(g}O(6~Y|3Bq`bCfy~AMCAR|3d3~z1bfiw%*57nI-9~wCUZysb|9at z$s0hQ1gfB}HHJ*kKPG{1>c~{$c$LWRkr80@9acheT!3)j=MP4dn?}X~H$+|?(+h%t z7Zhc~=&XkI)$Rv2w3Oc}eIKh^P~JglLvCb_Ru!{dn;a7!7lFIA^Kl{TTzi+6e4VrN zH?k@BP)>DPZA5WIQD}5>d_oj1lOM+hOG8$L#BRtKnL6vMeZQ6-|B+lj_4U5@ziqr2 zvM=uV){>Mxar+udiuUiWDm#%Z-J4bsQM{ zu+Wt_eo*|T^tn6rSEN-(lx$1emKGn8yDc}OD!vL>s5aW_+>$C_*y*q0kQ`IzpC1+- z9-ZR9Bdk1Ze@b0>ZF&Cw=sM}M3MfU`c{uTmZ@uqMuf$Lv;1Dct2yF;CquY5{YODv@ zvxy2s7ktFCXk)NXaN@H1jqF4H#-_w0^+$H;&V?M2LbDeU>RVaG5$PZ6$Rg@;vI+>o zDUf{8zD}2cqzFF7F;H_pH@H9b{ew<`jzJ-qH^+WYPm)OQ>_rue4tYL+K-@e(qJEH@ zo0o%oFk6h)m7g3Z6R&4nulnQ!3MFJaKjH;IQ|WVk$3R8o?v44ukwM#1HdY2z1|3P+ zRk^z=|41a%Bq1YXfM1YS7hV>g8lD;(o*SMQRvTNJSDRN>n_3GcgmuqnD^hm_R|Ka9 zr$hzk2jvCtirSUGE3aZ#%5Leip`Er0`Mee3M^=>hg!_cYd)02N@i`rTxb{eG@tLjA zB^w9c?zHM{sQ3t0@u>Q$xa!=hywa-FYAIbzQWO#U))j8q8n88aU3EZpKx6X0>b*4u zjS>5>l>L`q&~CsZ?S|?s5Og@U7WC+0{M!@iZh&$5P|+Yadt@#!6Z90Q1V;qTW=>{( z%?6kaF&kkv+RW9=&1{C*+h+64)|>g5Z8i%ui!zHhOEOC{%Qf3&_MzD&vm0ign>{f5 z!>rwWn)yugx6S97FEaNuUuEuZ9%-ItUTEH6e$4!&`8o3s%s)22W`4{3OY`r|e>MNz zyxm-H!C6>a*jqSRs4a$DOtfgW_|oD#i(f4Muy|_GVew2T6iS3v!v4bH!imDyg;Rwy zg>!`qh0BHOgd2qc!cbv^Fk09wyej-f_)ugaau6v+ylA3mn&@rOJkcVNr)ZTZT$Ccp z5`84PCi+5jPb?M>6Gw@Y#M$B^agBJFc)z$o+$g>+ejxrs{8-{DnJZZ$@sg~S_(%dJ zp_2C`7bG7`u1H!WMDjw~M><+MQR*h0A)O~(B@L2plg3F;OYd3QTPiJ`Etgs@w_I(R zZCPYlVR_B+Tgx`f=Q0bKrOZlZD|3{MkWG=zlm*JtW#zI%vPRi^vL@MYvUXVqXU0i5 zp6kyI<=i-LE|iPr;<*$qlgr@>xE)+Aw~sr_o#ejeTDeZ{c@Og*c0FF}q3Yq>V_1(# zJ=}XN>9M|tPY?ed;XPt{B=$(_vA4&^J?{2+-qWI|rss&B^LsAsxxD9^o|}3G_6+YC z-E&9J6Foog`K0GFE1A`6Rw}FhR@1H4S%q4~S>;;ktV*q_t?I4zTD@m=-s+mwEvwsB z_pE-ldT8~h)njXswcL7`^(gBJ)>Eu!Si4)#xAw3Ouuiouw%%=h$oiD^dFzj?FI!)? zZn3^&{j2pK)}1y|n;tf{HcA_3n?W|iZN}TU+Dx}uXya+K#U|7y!=~Eipv`+W=WQ<9 zT($Ya=AO+jHox1n+5BZgZEbA(*-o-`vt45AXB%ysZCho#)AoSvVcSOA)3)brKe7GV z_K|J7?O(WRd|@ZHSmU7TH>U8!A_-5$Gl?M~WV zu>08Viro#nAM7655jlpuTqAdp50np+kCso9&z3I$G_{X>vpifLEsvL{$TQ{n@?v?F ze7F3d{FwZ-{G9xv{IdLp{7d;a^6%xp$e-E^?R(hU+V`?|u^(zb+J3720{eIDm)ozl z-(VkNA7LMBpJrcVztjGJeWU$*_UG*{+F!B1VSn5HJNw`4+w40PW(u)_Q#dL#iXn;# ziW!ReiX{p!#X5zbVv8b75vhn%BrEb16^gxzgNmbyCdDPi=Zd?EpA`=kkFl7UIaoSa zJIEcJ95fCt4uc$qJB)Fd;P9ryJO@vQ)eajR0v)0pQXKLeN*yX4>Kyhs9CUd1hD;A_ zolH?DZ}q0ko$0D~->kkIBI6{l2YODMto%Qx^x~c!lwP-gqx1p{`@c|n-TphJm(h0r zru619N-uU?kZFcw^E7~$gbl)|Ss)`va4`g`9`2O}%O3hM-jJ(mu|W(5j~ZNrI`Ft2 zWwh!VgIGBP*H^KT8h27JyDS+lDV>i3UQ;Aer&z&At2L zO=6^bUKUrDp&Z0RI8V(1w3181{4GgSqt(>L{P3WaGbt_&u@469rG%S_WF%9OgqO^e z$r&=h2tI339Ev>{R>#waGKuxR3IGCwdP|X6F;|#gm7?6X-zE=E^wnFd4T3 zRU}E0ae3+zS+$yD$iJK@1&m2a%B0-H{1l!WgT)SAGiE%~gp>kJb8(hK+k=sO{KDZlhYmtwtU8QFFs&!_^!XDr1R3 zc<01#s<|K(wCh&TW1x(Kz*-8bXPEl3m|J>cO*8l7o43$*-S>vTr-;Sy8y z#eh;3N1sC92LKeANdQgs6bD2vHOC;T@axSn{ZbmPOC4jNdO0dzV8LBpjBYSW&E3aU z!VVcXQf7saV87r}@_Emuchm;d_AD8z^Cjx0rXm@)lF=-D)LewDmqdVDpxH7`u>>;& zdi9t$-yFj&lew>y4dKL7P~SEn&Js^pO4Q^Yn(8vL!w`Oa)m%-!IvqU}DNByZIL2?{ zfgQVth2EpHWtO`0yrD%w($vpZcdQbfTQ>OEbd_OjtIRM~GX2=#bDn(1>St?2VRhs+ zbse-_#p|`?9b^NLW4H#D0E^3xy}hDan0U*KY9efSj_B%sRu`!xh}tc65UZ5UWf$H3kd@)B1zOeOj}+vqk)aY!c4P z5}?&`Swu$VkEmO{loY6$j?~zkxV(7WJ8S^Q{6^}bG(>=H zCJg)@wtQ$ocu52hqBqJi1y1{8BFTJNn%$XriX#C2Hsh z{EoR@l5s41OV^xeZa$&6ldW0Gb5B#%=mMlS2dyHG09IK?Ej26Xl1fugpG`me3hF5oWJi0U@2NL;O=KMF zK5oPpvk~T9E-Ge61=`x46so!UkYic(^-i2(4@RCI%}?X#e*9n>#;#eNleb2*D1VLj z#5YGQ>c7@$*L(FBs&4Ln=s30s=tsW~z??fsN%rHs8K)o1ciJ0t3T_GJMEypL&7taW z8P|K6D%ZmNNX;D}u`;lcK=Qahwbnqs2~vD)3bEkG0QKGmj-RuUsx!Uk zNfRYe*^%3$_}13SRu!m-&f&SFkLJ*JQ8p$!ow6dmBBPvtyN}uh-?>gl1XZAKPFc$H8nFmRbvPPxK~0d6Gz0} zBvJ<9pPW2i9|pXkqPzmgI)c%Mq{uiQuyX-=lk5HcxJt}I`ukv1jlq528)Bd)SwZM` z#=Vx5^ctS7hg@!^XmI4J*&5JkBP9VeMnt^~_c^F|)j2G|RsdpxV=zJIB#+z-DJn|W~c$4yYy({+$-H>epg<|ZW zFacvWe;t)0d=t|>o!9}{d@&dU=H4B5>BG{}!lFEYot22Pqs0lCadAozYbH~%-cQ2a zm9gIPj+z^bySi-{By8Ho0(oQMhckF?m+aebzn$=(e>u_!od!Y~SC~fpFr_;J_$~pQ z5#k@!nBE=5Ef~yaiDeEjZ}PW0ksIQ?OkGM&+8Ju;s1Mt`NKG$^XOPJv<6NYnEw128 z!p>nFXrI8^=D>$$#XxpEIMQEc!HMgz1=*?Q&d7}S*W4I2mMIk09%}>}b~-X2f0+tx zR9C&OV&`tw1I-aij64IR2dNZiq6&uVT+fhwdy}?@zcD?gRS5TnS6(lFRUU~Zt zGr1{hC|3h`TLCB8hxv3jN`Nj2MR4}m5racd&4tPII_`2TR%=j9ImQ`vjzNH&Ll)WH z1-sOJ-hxYArrYwF?q~QWU^~}I*jAW0sIi;kx}m(gkhr;8ETps%TQQKcfeua&b8)4( zppD}ylFQ>uxSJO*-sB{DHR&lT%hQ#VL4UNQD77dlpHIryW+$dYafZ~9BVO36iev>k z4Yb^{Qt=PPtU$mR2R0eDb4;ThHYq5Hha{>jrc!T(T?UPvE{aV}jE@Ckr6eIQp)iF{ z%g+Z+5k$VBQX6S6n$F>DU^SH5`D^+Z#)|^Q)COv%Y%piKs2_4*!Ux;SVKwfrF`e3T zB}LmI|DK<_Jy(@3(I%#*CM6`rI~hcVU7}I?ZzLR5PM3WnI+yb|?%3$yB}Zp;JX1*%x5s>9go16*%wbicZy09WXv?wq&avK*{Qjt=w>Vlf#O4VlEB6Sz1D)u;%-Sgin zfpm!(^;yP{)rrqCuuYl~pL5VQi&c4J6i8<_bcG6{JucWTRN$WWHApM_lc|U|A}c=L zY30iJ_^gPMI46!WR?g35dWRkBiJBjMXR}4vL??ZY77FL zEW*?ZV?Wdp9Ep6@sIwL96F0Vwqt=I=~*i~WsL39t`4h`JK%HrzPH$Gg5=^T`Ru3S@_KL-#SE+k}qR!BXk94+Ip z$;)Dm=)ox#du(`n=*mxSeSY%djjykcoyZ&h;@0vZ5fNJ>L!OLqEG{i6D=n7R)N=!; zPwVH>GPRYz|LN83s)E9z+@egbpA0;)+)>)5f4=56U#$%Xj7%8l^I8qJ9)jxkA^z8J zl*xe^#r!x)aCz9y1U|h$mr? zudY3Zy}d81x>tT#aF+a!l^d8~SX(~75;$H%F3~FrZAM~}R>gT#dK_G>0c@*IH0R7$ z8@^U?CwvdBUF++&W^IG-@#75*$9Xo+**e6Hz$OyRZYU{Bj$`|NOyR7>?a7xiY%Cc# z75mGPN3y+~-WGot-Gxi2#4UuXx+=G*5=S)>##x-gWj{8ioCzL~+){I{lc@P}YNdjL zck{D%CKSJah1mbDoZQl zK1Cm3jQ(z17W7baObWydUGun__0LYQ3}Uz32<He($3v zuqxuBQljJIdE+6Q=f?2QTErZ6Auil>fbVj~t|Rf=9dw8%0`Z~UyANr&9Z(SzkJ*9C8)Y3j&GGH&Bs>flCYs!aj; zrNJ5wcs#W`R9}h<^OKS?LCiwm#ex5l%u0`q3x^e1%&C@zZ42dk4bWSYyVH{Qxw(&%*v3;EmJp|@{S?_V*Kjj!&D*JJ8Gxj72wQlWCta%X47wF!J{zWT09y_I4KB73FXiH*hq|3)A}L ztd~D-Jd(S2FN@lbS8=K=1}`o=bK+|acLWmw*i`w;824fmm8Y}X3`(=+;7+>`0~cCd zqG}U&?@@9fV+*7L0m}z!15*VXqZ`b zE(sg<6!^ua2gi}8+##S=abQ7cz{;AK%+dY<5H~TWBS3=cN87{bE@fOc2a(cYkRz=i zJvefcwGxy#^Bi4)?$`&wKpvd17adFsdkMb~bK-`**qd%C@I@7cp_aosTQFMb3n0}W zRdbNhVq+b3#E$Ts0f##d(olUl0sff@>;x9f^75ZlAYt|wF9foeHp`bb3$d?Ro$MVkC`!#y>{y&H`tn$#R3otWWp1 zUU-8qybH|4Mju^&SjfLazx?nIPA|XxzqH7DSc=3)CDLR6w-Xhbbt1}bs7sMxg1}j@ zPtYJ}6nrH3s&}70e4jO~R;_&Nl-7Bzt6Dd<`n7Ipjcd(mt!iy(J=%J;_1o4zTA#OB zwef8O+6J}_Z=2FKuWeP^mbSRIoVKdAhPHEUSKGdA`=jl7yHz{iKBawL`>OUW?Q!in z?N#j!?dRIBwtw6H$5Ylf1W0-Bf21sEwQ23$>ejlTbxo^J>!#MAR&8ruYfbBs*5=mh zt>3k_wh7v7+MJQ{ptg~1Zfy(N*0cq+Y1{JJYTAypHMd=F`>w6EUC?gR-n-qceL?%0 z_MmocdtQ4@`;qqM_UrB6v6NqYkG{F$#lja;UyS_r{Kj~{{ciop`l0m$>)&vJcHjCJ>z}QEvi{Nf z2kY;xzq7t)eb@RM>#uRScH8o2Xpu>KrZZMUp%a*f8Gw)MX><*NVk?f>5=v7iS= z04HD<#~5~Im%r>6^Vw=^*QWvt<3JT$p6@!6CDAg<_q`V{p1-g(6EmL{2+{QqZ(U=~ zlGPu+|L3?dZ?w<~g3OxXPb=6e(jpmwU^R>VpC0zT+kGV)kO*UXH`>`dCJ2E9=BwWj zCK6${FgN4F{NQ16usGqSG{(o=wSv(mKPId6qbu&7rf|&7RBmQBy_?cDg@L);_-MQGZTt>9>d%e&!BS@| zAB&g08y{_Vxw^kunBHMBe?pkdUw0n=&188pK7W57%KDbcFKZ7|U3I7DhQ9iu+ujwI zDeQlmT7iQ3GnM<_@(lOxwzlauH=5#vf1xq`?)bXht(j@c7wScYcjV>o`mpSdll1}i zm}>=Yc#Q3Da%1Mpc)IKZyW=;yTfo2Zd$(!w&+=%h3sZUE&&}k<^1#@d)7OmB(0afuINbCe(I) zV{T^McIFq~#xaw*v$T!r!+bTK|FoO@!5n6hh%l%amLHZ5%n2|3YXutQSp#?D19y$_ z(RP)k+n>rjrnO`s}--{Qf`0zdj-yKcw-Ql|Znfx0~w!zqd?@PM#J($IXcPY%i zEZ_h1z^@g1Ol|+4@tg8wGTC=#XOF2am>qfKn907Io>$+Q-Sqy_u7zJb-R}@W`8!UQ zcf@Io%VaV)??c4o52#O#V%#1nXgU+|F>@jCcpKZ_J&A z@3MF03-+%5t`!Vm@tMZ>tLZTRq8EaGtY0v9QyVgOxLGr^J1@q*V@d<={Y-i7cC%-3 zywbm3mfe^J;$ivj&b!(ametFDK5R`erNd12{AYbi%)83U;>Nr+5`MbsN-G#{3WIoD znEk*1TOcrh-{|8tGo`?++wTaNU3N3C@eIPM{E6?6zA8c)@KO^scH4!o_z?+Q%*wmn#jm(a1a)TTyWOP%NAtDac1wZ1xhWn_FxWi1+ucgwYJT#~ zK%Cb7e0;;4r?1`W?L2GkmJN~4qeqVV*Kp^l{{GI!Pod5s-l5(hTfH|7pBcC%Y-)se zXkdW%%=z;?=1iS7X}-tI8Os*TU*xgWJ0#REaEtTU;p2yoG{&*O-+OJSH$rdp4si|( zbPn_NcK$oTQ1A6&%>Twfe8iWHh}$_VWbFp;fVCl;o!5qih4`%tH+tC;80NR$I~2)> zggJMo|95_U!@`0ljTphgukFg)aKFHRbQ}R(I`1u^-XjEW3IYW|f=EG#z)#>K@D+p! zoCVVbYXw^c-muMrZHr(7zB>y>3q}e?3H~J*4*OJrKYq@ygbFpjc?&`jF2opm1ANXz z>{}4$R6zvXL-7^>a}gdNK{#Sq3%@f3^9Az+9)daWH4PnaKI}6EGX%>73t(S_x2487 zLyxYu^5reqXbk0y)C1uXhO)6Q|5RQUW<7kE;@^l6 zA+LmC@2nIomJp<|0saGwdEX4TwQyzbeu8x<)8DadK`8dN9==1n>mmd$toB~5jen|b s)(&B4mq{38BT$mA^w<7dxZ%e9{-66Cfg0+{%@$)VvB8fK@L&J^FN3;7EdT%j diff --git a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.eot b/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca953f93e35eab4108bd414bc02ddcf3928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165742 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

    5q!RY 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 - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.woff b/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a4b06eee3d0c0d54402a47ab2601b2862b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98024 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 SdSQM28?+M|D(2r_;{O0|uQ74} diff --git a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.woff2 b/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc60404b91e398a37200c4a77b645cfd9586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77160 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 diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/style/demo.css b/icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/style/demo.css deleted file mode 100644 index 3e38579..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/style/demo.css +++ /dev/null @@ -1,35 +0,0 @@ -@charset "utf-8"; -html { height:100% } -body { font:12px/1.5em "微软雅黑"; } -#bg { display:none; width:100%; height:100%; overflow:hidden; position:fixed; top:0; left:0;z-index:10; } -body.showBg { overflow:hidden; } -body.showBg #bg { display:block;} -a { color:#1E9300; } -ul.nav { padding:0; margin:0; } -ul.nav li { margin:5px 0; list-style:none; } -pre { border-left:2px solid #A9EA1E; padding-left:8px; background:#FCFCFC; } -pre code { padding:1px; color:#333; background:#EAEAEA; } -#page { width:760px; margin:auto; } -#page h1 { font-size:1.8em; color:#214FA3; font-weight:700; } -#page h1 em { font-size:9px; color:#CCC;} -#page fieldset { margin-top:10px; border:solid 1px #EBEBEB; } -#page fieldset legend { padding:3px 20px; color:#FFF; background:#214FA3; font-size:1.4em; } -#page li { line-height:1.8em; list-style: circle; margin:5px 0; color:#333; } -#page fieldset, #page fieldset legend { -moz-border-radius:4px; -webkit-border-radius: 4px; border-radius:4px; } -#page button { } -#page .content { margin:0 20px; } -#page .content h3 { color:#000; } -#page .content ol, #page .content ul{ padding-left:0; margin-left:20px; } -#page strong { color:#1E9300; margin-right:5px; } -#page .tips { color:#666; border-bottom:1px dashed #CCC; } -#page label { cursor:pointer; } -#page .api { background:#FCFCFC; } -#page .api strong { width:5em; display:inline-block; *zoom:1;*display:inline; } -#page .api li { border-bottom:1px dashed #CCC; padding:5px 3px; margin:0; } -#page .api li:hover { background:#EAEAEA; } -#page .runCode { margin-right:4px; } -#page .runCode textarea { width:100%; color:#214FA3; font-size:12px; } -#page .runCode textarea:focus { border-color:#CCC; border-style:solid; } -#page .runCode .btn { text-align:right; } -#page .runCode button { cursor:pointer; } -#page .about { margin-top:30px; border-top:1px solid #F8F8F8; color:#666; } diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/treeTable.html b/icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/treeTable.html deleted file mode 100644 index 19809b3..0000000 --- a/icec-admin/src/main/resources/static/ace/plugins/treeTable/demo/treeTable.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - 树表控件 - - - - - - - - - - - - -

    -

    treeTable v 1.4.2

    -
    - 简介 -
    -

    treeTable是跨浏览器、性能很高的jquery的树表组件,它使用非常简单,只需要引用jquery库和一个js文件,接口也很简单。

    -

    优点

    -
      -
    1. 兼容主流浏览器: 支持IE6和IE6+, Firefox, chrome, Opera, Safari
    2. -
    3. 接口简洁: 在普通表格的基础上增加父子关系的自定义标签就可以
    4. -
    5. 组件性能高: 内部实现了只绑定了table的事件、使用了css sprite合并图片等
    6. -
    7. 提供两种风格: 通过参数来设置风格
    8. -
    -
    - -
    -
    - 演示 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    标题内容
    1内容
    2内容
    3内容
    4内容
    4.1内容
    5注意这个节点是动态加载的
    8内容
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    标题内容
    1内容
    2内容
    3内容
    4内容
    4.1内容
    5注意这个节点是动态加载的
    8内容
    -
    -
    - 接口 -

    配置参数

    -
    -
      -
    • theme: string {主题,有两个选项:default、vsStyle. 默认:default}
    • -
    • expandLevel: int {树表的展开层次. 默认:1}
    • -
    • column: int {可控制列的序号. 默认:0,即第一列}
    • -
    • onSelect: function {拥有controller自定义属性的元素的点击事件,return false则中止展开. 默认值: -
      function($treeTable, id) {
      -      //$treeTable 当前树表的jquery对象.
      -      //id 当前行的id
      -    
      -      //返回false,则直接退出,不会激发后面的beforeExpand和子节点的展开
      -      return true;
      -}
      -
    • -
    • beforeExpand: {展开子节点前触发的事件, 默认值:
    • -
      function($treeTable, id) {
      -      //$treeTable 当前树表的jquery对象.
      -      //id 当前行的id
      -}
      -
    -
    -

    属性说明

    -
    -
      -
    • id: string 行的id
    • -
    • pId: string 父行的id
    • -
    • controller: bool 指定某一个元素是否可以控制行的展开
    • -
    • hasChild: bool 指定某一个tr元素是否有孩子(动态加载需用到)
    • -
    • isFirstOne: bool 指定某一个tr元素是否是第一个孩子(自动生成属性,只读)
    • -
    • isLastOne: bool 指定某一个tr元素是否是最后一个孩子(自动生成属性,只读)
    • -
    • prevId: string 前一个兄弟节点的id(自动生成属性,只读)
    • -
    • depth: string 当前行的深度(自动生成属性,只读)
    • -
    -
    -
    -
    - 使用方式 -

    $("#元素id").treeTable({}) 如:

    -

    引用的文件

    -
    <script src="/script/jquery.js" type="text/javascript"> </script>
    -<script src="/script/treeTable/jquery.treeTable.js" type="text/javascript"> </script>
    -

    js代码

    -
    $(function(){
    -    var option = {
    -        theme:'vsStyle',
    -        expandLevel : 2,
    -        beforeExpand : function($treeTable, id) {
    -            //判断id是否已经有了孩子节点,如果有了就不再加载,这样就可以起到缓存的作用
    -            if ($('.' + id, $treeTable).length) { return; }
    -            //这里的html可以是ajax请求
    -            var html = '<tr id="8" pId="6"><td>5.1</td><td>可以是ajax请求来的内容</td></tr>'
    -                     + '<tr id="9" pId="6"><td>5.2</td><td>动态的内容</td></tr>';
    -
    -            $treeTable.addChilds(html);
    -        },
    -        onSelect : function($treeTable, id) {
    -            window.console && console.log('onSelect:' + id);
    -        }
    -
    -    };
    -    $('#treeTable1').treeTable(option);
    -});
    -

    html结构

    -
    <table id="treeTable1" style="width:100%">
    -    <tr>
    -        <td style="width:200px;">标题</td>
    -        <td>内容</td>
    -    </tr>
    -    <tr id="1">
    -        <td><span controller="true">1</span></td>
    -        <td>内容</td></tr>
    -    <tr id="2" pId="1">
    -        <td><span controller="true">2</span></td>
    -        <td>内容</td></tr>
    -    <tr id="3" pId="2">
    -        <td>3</td>
    -        <td>内容</td>
    -    </tr>
    -    <tr id="4" pId="2">
    -        <td>4</td>
    -        <td>内容</td>
    -    </tr>
    -    <tr id="5" pId="4">
    -        <td>4.1</td>
    -        <td>内容</td>
    -    </tr>
    -    <tr id="6" pId="1" hasChild="true">
    -        <td>5</td>
    -        <td>注意这个节点是动态加载的</td>
    -    </tr>
    -    <tr id="7">
    -        <td>8</td>
    -        <td>内容</td>
    -    </tr>
    -</table>
    -
    -
    - 关于 -
    -

    作者: benzhan(詹潮江)

    -

    版本变更

    -

    1.0版本:创建基本功能。(2011-05-04)

    -

    1.1版本:(2011-05-08)

    -
    这个版本提高了性能,做了以下改进:
    - 
    -* 1、使用了Css Sprite Tools 合并了分散的图标
    -* 2、使用了.id的方式来代替原来[pId=id],这样选择孩子效率更高
    -* 3、把css剥离出来,增加动态添加css,每次家在前判断是否添加过
    - 
    -关于第二点,非常感谢onli同学的提醒。但我并没有直接修改我的接口,直接除去pId,而是在第一次遍历时将pId作为class名添加到节点中。这样有两个好处:
    -(1)接口可读性会比较好,pId比class更容易理解。
    -(2)第二点,如果直接使用class,那节点本来就有样式,这样获取到的className还要去分解空格得到pId,挺麻烦的。
    -
    -

    1.3版本:(2011-05-09)

    -
    这个版本扩展了事件,做了以下改进:
    - 
    -* 1、增加onSelect事件,onSelect: function($treeTable, id){}
    -* 2、增加beforeExpand事件,beforeExpand : function($treeTable, id){}
    - 
    -动态加载节点就靠beforeExpand 事件了。
    -

    1.4.2版本:(2011-09-03)

    -
    这个版本修复了bug,做了以下改进:
    -* 1、修复了多个tableTree不在同个页面的bug,并且可以让不同的tableTree使用不同的主题。
    -* 2、增加了controller的自定义标签来控制可点击的区域。
    -
    -
    -
    - - diff --git a/icec-sys/.classpath b/icec-sys/.classpath deleted file mode 100644 index 4e3e628..0000000 --- a/icec-sys/.classpath +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/icec-sys/.settings/org.eclipse.jdt.core.prefs b/icec-sys/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index d59e09c..0000000 --- a/icec-sys/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/icec-sys/.settings/org.eclipse.m2e.core.prefs b/icec-sys/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index 14b697b..0000000 --- a/icec-sys/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/icec-sys/src/main/java/org/icec/web/config/ShiroConfig.java b/icec-sys/src/main/java/org/icec/web/config/ShiroConfig.java deleted file mode 100644 index bda7ec2..0000000 --- a/icec-sys/src/main/java/org/icec/web/config/ShiroConfig.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.icec.web.config; - - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.Filter; - -import org.apache.shiro.authc.credential.HashedCredentialsMatcher; -import org.apache.shiro.authc.credential.PasswordMatcher; -import org.apache.shiro.cache.ehcache.EhCacheManager; -import org.apache.shiro.realm.Realm; -import org.apache.shiro.spring.LifecycleBeanPostProcessor; -import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; -import org.apache.shiro.spring.web.ShiroFilterFactoryBean; -import org.apache.shiro.web.mgt.DefaultWebSecurityManager; -import org.icec.web.shiro.credential.BCryptPasswordService; -import org.icec.web.shiro.filter.JWTOrFormAuthenticationFilter; -import org.icec.web.shiro.realm.MyFormRealm; -import org.icec.web.shiro.realm.MyJWTRealm; -import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -@Configuration -public class ShiroConfig { - private static Map filterChainDefinitionMap = new LinkedHashMap(); - - @Bean(name = "realms") - @Autowired - public List getRealms(MyJWTRealm jWTRealm,MyFormRealm formRealm) { - List realms=new ArrayList(); - realms.add(jWTRealm); - final PasswordMatcher passwordMatcher = new PasswordMatcher(); - /*HashedCredentialsMatcher matcher=new HashedCredentialsMatcher(); - matcher.setHashIterations(2); - matcher.setHashAlgorithmName("md5");*/ - passwordMatcher.setPasswordService(new BCryptPasswordService()); - formRealm.setCredentialsMatcher(passwordMatcher); - realms.add(formRealm); - return realms; - } - @Bean(name = "shiroEhcacheManager") - public EhCacheManager getEhCacheManager() { - EhCacheManager em = new EhCacheManager(); - em.setCacheManagerConfigFile("classpath:ehcache-shiro.xml"); - return em; - } - - @Bean(name = "lifecycleBeanPostProcessor") - public LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() { - return new LifecycleBeanPostProcessor(); - } - - @Bean - public DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator() { - DefaultAdvisorAutoProxyCreator daap = new DefaultAdvisorAutoProxyCreator(); - daap.setProxyTargetClass(true); - return daap; - } - - @Bean(name = "securityManager") - @Autowired - public DefaultWebSecurityManager getDefaultWebSecurityManager(List realms) { - DefaultWebSecurityManager dwsm = new DefaultWebSecurityManager(); - dwsm.setRealms(realms); - dwsm.setCacheManager(getEhCacheManager()); - return dwsm; - } - - @Bean - @Autowired - public AuthorizationAttributeSourceAdvisor getAuthorizationAttributeSourceAdvisor(DefaultWebSecurityManager defaultWebSecurityManager) { - AuthorizationAttributeSourceAdvisor aasa = new AuthorizationAttributeSourceAdvisor(); - aasa.setSecurityManager(defaultWebSecurityManager); - return new AuthorizationAttributeSourceAdvisor(); - } - - @Bean(name = "shiroFilter") - @Autowired - public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager defaultWebSecurityManager) { - ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); - shiroFilterFactoryBean - .setSecurityManager(defaultWebSecurityManager); - Map filters=new HashMap(); - JWTOrFormAuthenticationFilter filter= new JWTOrFormAuthenticationFilter(); - filter.setLoginUrl("/sys/login"); - filter.setSuccessUrl("/"); - filters.put("authc", filter); - //filterChainDefinitionMap.put("/*.html", "anon"); - //filterChainDefinitionMap.put("/html/*.html", "anon"); - filterChainDefinitionMap.put("/ace/**", "anon"); - filterChainDefinitionMap.put("/layui/**", "anon"); - filterChainDefinitionMap.put("/my/**", "anon"); - filterChainDefinitionMap.put("/favicon.ico", "anon"); - filterChainDefinitionMap.put("/kaptcha.jpg", "anon"); - // filterChainDefinitionMap.put("/third/**", "anon"); - // filterChainDefinitionMap.put("/upload/**", "anon"); - // filterChainDefinitionMap.put("/public/**", "anon"); - filterChainDefinitionMap.put("/**", "authc"); - - shiroFilterFactoryBean - .setFilterChainDefinitionMap(filterChainDefinitionMap); - shiroFilterFactoryBean.setFilters(filters); - return shiroFilterFactoryBean; - } -} diff --git a/icec-sys/src/main/resources/ehcache-shiro.xml b/icec-sys/src/main/resources/ehcache-shiro.xml deleted file mode 100644 index 359460c..0000000 --- a/icec-sys/src/main/resources/ehcache-shiro.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/icec-sys/src/main/resources/mykaptcha.xml b/icec-sys/src/main/resources/mykaptcha.xml deleted file mode 100644 index 7969d01..0000000 --- a/icec-sys/src/main/resources/mykaptcha.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - yes - 105,179,90 - blue - 100 - 50 - 27 - code - 4 - 宋体,楷体,微软雅黑 - - 0123456789 - com.google.code.kaptcha.impl.ShadowGimpy - black - com.google.code.kaptcha.impl.NoNoise - gray - white - 6 - - - - - - - - \ No newline at end of file diff --git a/icec-sys/src/main/resources/templates/common/commonJS.html b/icec-sys/src/main/resources/templates/common/commonJS.html deleted file mode 100644 index 79703b3..0000000 --- a/icec-sys/src/main/resources/templates/common/commonJS.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/icec-sys/src/test/resources/jdbc.properties b/icec-sys/src/test/resources/jdbc.properties deleted file mode 100644 index f478c07..0000000 --- a/icec-sys/src/test/resources/jdbc.properties +++ /dev/null @@ -1,4 +0,0 @@ -datasource.driver=com.mysql.jdbc.Driver -datasource.url=jdbc:mysql://127.0.0.1:3306/icec?useUnicode=true&characterEncoding=UTF8&useSSL=false&zeroDateTimeBehavior=convertToNull& -datasource.username=icec -datasource.password=icec \ No newline at end of file diff --git "a/icec-ireport/lib/msyh-1.0.jar_\346\224\271\345\220\215" "b/module/icec-ireport/lib/msyh-1.0.jar_\346\224\271\345\220\215" similarity index 100% rename from "icec-ireport/lib/msyh-1.0.jar_\346\224\271\345\220\215" rename to "module/icec-ireport/lib/msyh-1.0.jar_\346\224\271\345\220\215" diff --git a/icec-ireport/pom.xml b/module/icec-ireport/pom.xml similarity index 100% rename from icec-ireport/pom.xml rename to module/icec-ireport/pom.xml diff --git a/icec-ireport/src/main/java/org/icec/web/ireport/controller/IreportController.java b/module/icec-ireport/src/main/java/org/icec/web/ireport/controller/IreportController.java similarity index 100% rename from icec-ireport/src/main/java/org/icec/web/ireport/controller/IreportController.java rename to module/icec-ireport/src/main/java/org/icec/web/ireport/controller/IreportController.java diff --git a/icec-ireport/src/main/resources/jasperreports/test.jrxml b/module/icec-ireport/src/main/resources/jasperreports/test.jrxml similarity index 100% rename from icec-ireport/src/main/resources/jasperreports/test.jrxml rename to module/icec-ireport/src/main/resources/jasperreports/test.jrxml diff --git a/icec-ireport/src/test/java/org/icec/ireport/test/IreportDemo.java b/module/icec-ireport/src/test/java/org/icec/ireport/test/IreportDemo.java similarity index 100% rename from icec-ireport/src/test/java/org/icec/ireport/test/IreportDemo.java rename to module/icec-ireport/src/test/java/org/icec/ireport/test/IreportDemo.java diff --git a/icec-ireport/src/test/java/org/icec/ireport/test/User.java b/module/icec-ireport/src/test/java/org/icec/ireport/test/User.java similarity index 100% rename from icec-ireport/src/test/java/org/icec/ireport/test/User.java rename to module/icec-ireport/src/test/java/org/icec/ireport/test/User.java diff --git a/icec-ireport/src/test/resources/A_A4.jrxml b/module/icec-ireport/src/test/resources/A_A4.jrxml similarity index 100% rename from icec-ireport/src/test/resources/A_A4.jrxml rename to module/icec-ireport/src/test/resources/A_A4.jrxml diff --git a/icec-oa/pom.xml b/module/icec-oa/pom.xml similarity index 100% rename from icec-oa/pom.xml rename to module/icec-oa/pom.xml diff --git a/icec-oa/src/main/java/org/icec/web/oa/common/BaseFlowModel.java b/module/icec-oa/src/main/java/org/icec/web/oa/common/BaseFlowModel.java similarity index 100% rename from icec-oa/src/main/java/org/icec/web/oa/common/BaseFlowModel.java rename to module/icec-oa/src/main/java/org/icec/web/oa/common/BaseFlowModel.java diff --git a/icec-oa/src/main/java/org/icec/web/oa/controller/LeaveProcessCtrl.java b/module/icec-oa/src/main/java/org/icec/web/oa/controller/LeaveProcessCtrl.java similarity index 100% rename from icec-oa/src/main/java/org/icec/web/oa/controller/LeaveProcessCtrl.java rename to module/icec-oa/src/main/java/org/icec/web/oa/controller/LeaveProcessCtrl.java diff --git a/icec-oa/src/main/java/org/icec/web/oa/dao/OaLeaveDao.java b/module/icec-oa/src/main/java/org/icec/web/oa/dao/OaLeaveDao.java similarity index 100% rename from icec-oa/src/main/java/org/icec/web/oa/dao/OaLeaveDao.java rename to module/icec-oa/src/main/java/org/icec/web/oa/dao/OaLeaveDao.java diff --git a/icec-oa/src/main/java/org/icec/web/oa/model/OaLeave.java b/module/icec-oa/src/main/java/org/icec/web/oa/model/OaLeave.java similarity index 100% rename from icec-oa/src/main/java/org/icec/web/oa/model/OaLeave.java rename to module/icec-oa/src/main/java/org/icec/web/oa/model/OaLeave.java diff --git a/icec-oa/src/main/java/org/icec/web/oa/service/OaLeaveService.java b/module/icec-oa/src/main/java/org/icec/web/oa/service/OaLeaveService.java similarity index 100% rename from icec-oa/src/main/java/org/icec/web/oa/service/OaLeaveService.java rename to module/icec-oa/src/main/java/org/icec/web/oa/service/OaLeaveService.java diff --git a/icec-oa/src/main/resources/sql/oaLeave.md b/module/icec-oa/src/main/resources/sql/oaLeave.md similarity index 100% rename from icec-oa/src/main/resources/sql/oaLeave.md rename to module/icec-oa/src/main/resources/sql/oaLeave.md diff --git a/icec-oa/src/main/resources/templates/oa/leave/leaveEdit.html b/module/icec-oa/src/main/resources/templates/oa/leave/leaveEdit.html similarity index 100% rename from icec-oa/src/main/resources/templates/oa/leave/leaveEdit.html rename to module/icec-oa/src/main/resources/templates/oa/leave/leaveEdit.html diff --git a/icec-oa/src/main/resources/templates/oa/leave/leavemy.html b/module/icec-oa/src/main/resources/templates/oa/leave/leavemy.html similarity index 100% rename from icec-oa/src/main/resources/templates/oa/leave/leavemy.html rename to module/icec-oa/src/main/resources/templates/oa/leave/leavemy.html diff --git a/icec-schedule/.springBeans b/module/icec-schedule/.springBeans similarity index 100% rename from icec-schedule/.springBeans rename to module/icec-schedule/.springBeans diff --git a/icec-schedule/pom.xml b/module/icec-schedule/pom.xml similarity index 100% rename from icec-schedule/pom.xml rename to module/icec-schedule/pom.xml diff --git a/icec-schedule/src/main/java/org/icec/schedule/ScheduleApplication.java b/module/icec-schedule/src/main/java/org/icec/schedule/ScheduleApplication.java similarity index 100% rename from icec-schedule/src/main/java/org/icec/schedule/ScheduleApplication.java rename to module/icec-schedule/src/main/java/org/icec/schedule/ScheduleApplication.java diff --git a/icec-schedule/src/main/java/org/icec/schedule/core/QuartzConfigration.java b/module/icec-schedule/src/main/java/org/icec/schedule/core/QuartzConfigration.java similarity index 100% rename from icec-schedule/src/main/java/org/icec/schedule/core/QuartzConfigration.java rename to module/icec-schedule/src/main/java/org/icec/schedule/core/QuartzConfigration.java diff --git a/icec-schedule/src/main/java/org/icec/schedule/exception/ServiceException.java b/module/icec-schedule/src/main/java/org/icec/schedule/exception/ServiceException.java similarity index 100% rename from icec-schedule/src/main/java/org/icec/schedule/exception/ServiceException.java rename to module/icec-schedule/src/main/java/org/icec/schedule/exception/ServiceException.java diff --git a/icec-schedule/src/main/java/org/icec/schedule/job/DemoJob.java b/module/icec-schedule/src/main/java/org/icec/schedule/job/DemoJob.java similarity index 100% rename from icec-schedule/src/main/java/org/icec/schedule/job/DemoJob.java rename to module/icec-schedule/src/main/java/org/icec/schedule/job/DemoJob.java diff --git a/icec-schedule/src/main/java/org/icec/schedule/service/JobTaskService.java b/module/icec-schedule/src/main/java/org/icec/schedule/service/JobTaskService.java similarity index 100% rename from icec-schedule/src/main/java/org/icec/schedule/service/JobTaskService.java rename to module/icec-schedule/src/main/java/org/icec/schedule/service/JobTaskService.java diff --git a/icec-schedule/src/main/java/org/icec/schedule/service/TaskInfo.java b/module/icec-schedule/src/main/java/org/icec/schedule/service/TaskInfo.java similarity index 100% rename from icec-schedule/src/main/java/org/icec/schedule/service/TaskInfo.java rename to module/icec-schedule/src/main/java/org/icec/schedule/service/TaskInfo.java diff --git a/icec-schedule/src/main/java/org/icec/schedule/web/ScheduleCtrl.java b/module/icec-schedule/src/main/java/org/icec/schedule/web/ScheduleCtrl.java similarity index 100% rename from icec-schedule/src/main/java/org/icec/schedule/web/ScheduleCtrl.java rename to module/icec-schedule/src/main/java/org/icec/schedule/web/ScheduleCtrl.java diff --git a/icec-schedule/src/main/resources/quartz.properties b/module/icec-schedule/src/main/resources/quartz.properties similarity index 100% rename from icec-schedule/src/main/resources/quartz.properties rename to module/icec-schedule/src/main/resources/quartz.properties diff --git a/icec-workflow/pom.xml b/module/icec-workflow/pom.xml similarity index 100% rename from icec-workflow/pom.xml rename to module/icec-workflow/pom.xml diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/Status.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/Status.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/Status.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/Status.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/ToWeb.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/ToWeb.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/ToWeb.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/ToWeb.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/config/Cfg_Activiti.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/config/Cfg_Activiti.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/config/Cfg_Activiti.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/config/Cfg_Activiti.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/controller/ActTaskCtrl.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/controller/ActTaskCtrl.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/controller/ActTaskCtrl.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/controller/ActTaskCtrl.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/controller/ModelerController.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/controller/ModelerController.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/controller/ModelerController.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/controller/ModelerController.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/controller/ProcessController.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/controller/ProcessController.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/controller/ProcessController.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/controller/ProcessController.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/controller/RestServiceController.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/controller/RestServiceController.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/controller/RestServiceController.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/controller/RestServiceController.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/FilterServletOutputStream.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/FilterServletOutputStream.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/FilterServletOutputStream.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/FilterServletOutputStream.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/GenericResponseWrapper.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/GenericResponseWrapper.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/GenericResponseWrapper.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/GenericResponseWrapper.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/JsonpCallbackFilter.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/JsonpCallbackFilter.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/JsonpCallbackFilter.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/JsonpCallbackFilter.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/BaseProcessDefinitionDiagramLayoutResource.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/BaseProcessDefinitionDiagramLayoutResource.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/BaseProcessDefinitionDiagramLayoutResource.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/BaseProcessDefinitionDiagramLayoutResource.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessDefinitionDiagramLayoutResource.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessDefinitionDiagramLayoutResource.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessDefinitionDiagramLayoutResource.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessDefinitionDiagramLayoutResource.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceDiagramLayoutResource.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceDiagramLayoutResource.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceDiagramLayoutResource.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceDiagramLayoutResource.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceHighlightsResource.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceHighlightsResource.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceHighlightsResource.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/diagram/ProcessInstanceHighlightsResource.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelEditorJsonRestResource.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelEditorJsonRestResource.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelEditorJsonRestResource.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelEditorJsonRestResource.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelSaveRestResource.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelSaveRestResource.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelSaveRestResource.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/ModelSaveRestResource.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/StencilsetRestResource.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/StencilsetRestResource.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/core/editor/StencilsetRestResource.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/core/editor/StencilsetRestResource.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/service/ActTaskService.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/service/ActTaskService.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/service/ActTaskService.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/service/ActTaskService.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/service/ModelService.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/service/ModelService.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/service/ModelService.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/service/ModelService.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/service/ProcessService.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/service/ProcessService.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/service/ProcessService.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/service/ProcessService.java diff --git a/icec-workflow/src/main/java/org/icec/web/activiti/vo/Act.java b/module/icec-workflow/src/main/java/org/icec/web/activiti/vo/Act.java similarity index 100% rename from icec-workflow/src/main/java/org/icec/web/activiti/vo/Act.java rename to module/icec-workflow/src/main/java/org/icec/web/activiti/vo/Act.java diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/bg.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/bg.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/bg.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/bg.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/breadcrumbs.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/breadcrumbs.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/breadcrumbs.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/breadcrumbs.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/checker-bg.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/checker-bg.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/checker-bg.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/checker-bg.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/blue/message_catch.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/blue/message_catch.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/blue/message_catch.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/blue/message_catch.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/business_rule.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/business_rule.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/business_rule.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/business_rule.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_catch.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_catch.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_catch.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_catch.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_throw.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_throw.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_throw.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/error_throw.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/manual.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/manual.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/manual.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/manual.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_catch.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_catch.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_catch.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_catch.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_throw.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_throw.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_throw.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/message_throw.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/receive.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/receive.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/receive.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/receive.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/script.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/script.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/script.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/script.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/send.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/send.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/send.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/send.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/service.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/service.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/service.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/service.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_catch.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_catch.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_catch.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_catch.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_throw.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_throw.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_throw.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/signal_throw.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/timer.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/timer.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/timer.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/timer.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/user.png b/module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/user.png similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/user.png rename to module/icec-workflow/src/main/resources/static/diagram-viewer/images/deployer/user.png diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/index.html b/module/icec-workflow/src/main/resources/static/diagram-viewer/index.html similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/index.html rename to module/icec-workflow/src/main/resources/static/diagram-viewer/index.html diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/ActivitiRest.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/ActivitiRest.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/ActivitiRest.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/ActivitiRest.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/ActivityImpl.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/ActivityImpl.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/ActivityImpl.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/ActivityImpl.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/Color.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/Color.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/Color.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/Color.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/LineBreakMeasurer.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/LineBreakMeasurer.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/LineBreakMeasurer.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/LineBreakMeasurer.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/Polyline.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/Polyline.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/Polyline.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/Polyline.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramCanvas.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramCanvas.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramCanvas.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramCanvas.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramGenerator.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramGenerator.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramGenerator.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/ProcessDiagramGenerator.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.asyncqueue.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.asyncqueue.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.asyncqueue.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.asyncqueue.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.progressbar.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.progressbar.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.progressbar.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/jquery/jquery.progressbar.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/jstools.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/jstools.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/jstools.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/jstools.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.2.1.1.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.2.1.1.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.2.1.1.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.2.1.1.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael_uncompressed.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael_uncompressed.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/raphael_uncompressed.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/raphael_uncompressed.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/js/textlayout.js b/module/icec-workflow/src/main/resources/static/diagram-viewer/js/textlayout.js similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/js/textlayout.js rename to module/icec-workflow/src/main/resources/static/diagram-viewer/js/textlayout.js diff --git a/icec-workflow/src/main/resources/static/diagram-viewer/style.css b/module/icec-workflow/src/main/resources/static/diagram-viewer/style.css similarity index 100% rename from icec-workflow/src/main/resources/static/diagram-viewer/style.css rename to module/icec-workflow/src/main/resources/static/diagram-viewer/style.css diff --git a/icec-workflow/src/main/resources/static/editor-app/app-cfg.js b/module/icec-workflow/src/main/resources/static/editor-app/app-cfg.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/app-cfg.js rename to module/icec-workflow/src/main/resources/static/editor-app/app-cfg.js diff --git a/icec-workflow/src/main/resources/static/editor-app/app.js b/module/icec-workflow/src/main/resources/static/editor-app/app.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/app.js rename to module/icec-workflow/src/main/resources/static/editor-app/app.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-assignment-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-assignment-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-assignment-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-assignment-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-condition-expression-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-condition-expression-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-condition-expression-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-condition-expression-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-custom-controllers.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-custom-controllers.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-custom-controllers.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-custom-controllers.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-default-controllers.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-default-controllers.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-default-controllers.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-default-controllers.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-event-listeners-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-event-listeners-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-event-listeners-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-event-listeners-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-execution-listeners-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-execution-listeners-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-execution-listeners-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-execution-listeners-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-fields-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-fields-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-fields-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-fields-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-form-properties-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-form-properties-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-form-properties-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-form-properties-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-in-parameters-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-in-parameters-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-in-parameters-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-in-parameters-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-definitions-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-definitions-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-definitions-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-definitions-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-scope-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-scope-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-scope-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-message-scope-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-multiinstance-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-multiinstance-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-multiinstance-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-multiinstance-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-out-parameters-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-out-parameters-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-out-parameters-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-out-parameters-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-sequenceflow-order-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-sequenceflow-order-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-sequenceflow-order-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-sequenceflow-order-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-definitions-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-definitions-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-definitions-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-definitions-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-scope-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-scope-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-scope-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-signal-scope-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties-task-listeners-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-task-listeners-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties-task-listeners-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties-task-listeners-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/assignment-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/boolean-property-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/boolean-property-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/boolean-property-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/boolean-property-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/condition-expression-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/default-value-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/default-value-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/default-value-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/default-value-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/event-listeners-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/execution-listeners-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/feedback-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/feedback-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/feedback-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/feedback-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/fields-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/form-properties-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/in-parameters-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-definitions-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-property-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-property-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-property-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/message-property-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/multiinstance-property-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/multiinstance-property-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/multiinstance-property-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/multiinstance-property-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/out-parameters-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-definitions-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-property-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-property-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-property-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/signal-property-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/string-property-write-mode-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/string-property-write-mode-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/string-property-write-mode-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/string-property-write-mode-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-display-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-display-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-display-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-display-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/task-listeners-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-popup.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-popup.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-popup.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-popup.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-property-write-template.html b/module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-property-write-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-property-write-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/properties/text-property-write-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-custom-actions.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-custom-actions.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-custom-actions.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-custom-actions.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-default-actions.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-default-actions.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-default-actions.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar-default-actions.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/toolbar.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/toolbar.js diff --git a/icec-workflow/src/main/resources/static/editor-app/configuration/url-config.js b/module/icec-workflow/src/main/resources/static/editor-app/configuration/url-config.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/configuration/url-config.js rename to module/icec-workflow/src/main/resources/static/editor-app/configuration/url-config.js diff --git a/icec-workflow/src/main/resources/static/editor-app/css/style-common.css b/module/icec-workflow/src/main/resources/static/editor-app/css/style-common.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/css/style-common.css rename to module/icec-workflow/src/main/resources/static/editor-app/css/style-common.css diff --git a/icec-workflow/src/main/resources/static/editor-app/css/style-editor.css b/module/icec-workflow/src/main/resources/static/editor-app/css/style-editor.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/css/style-editor.css rename to module/icec-workflow/src/main/resources/static/editor-app/css/style-editor.css diff --git a/icec-workflow/src/main/resources/static/editor-app/css/style.css b/module/icec-workflow/src/main/resources/static/editor-app/css/style.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/css/style.css rename to module/icec-workflow/src/main/resources/static/editor-app/css/style.css diff --git a/icec-workflow/src/main/resources/static/editor-app/editor-config.js b/module/icec-workflow/src/main/resources/static/editor-app/editor-config.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor-config.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor-config.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/editor-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor-utils.js b/module/icec-workflow/src/main/resources/static/editor-app/editor-utils.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor-utils.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor-utils.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor.html b/module/icec-workflow/src/main/resources/static/editor-app/editor.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor.html rename to module/icec-workflow/src/main/resources/static/editor-app/editor.html diff --git a/icec-workflow/src/main/resources/static/editor-app/editor/css/editor.css b/module/icec-workflow/src/main/resources/static/editor-app/editor/css/editor.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor/css/editor.css rename to module/icec-workflow/src/main/resources/static/editor-app/editor/css/editor.css diff --git a/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_de.js b/module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_de.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_de.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_de.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_en_us.js b/module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_en_us.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_en_us.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_en_us.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_de.js b/module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_de.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_de.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_de.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_en_us.js b/module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_en_us.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_en_us.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor/i18n/translation_signavio_en_us.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor/oryx.debug.js b/module/icec-workflow/src/main/resources/static/editor-app/editor/oryx.debug.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor/oryx.debug.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor/oryx.debug.js diff --git a/icec-workflow/src/main/resources/static/editor-app/editor/oryx.js b/module/icec-workflow/src/main/resources/static/editor-app/editor/oryx.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/editor/oryx.js rename to module/icec-workflow/src/main/resources/static/editor-app/editor/oryx.js diff --git a/icec-workflow/src/main/resources/static/editor-app/eventbus.js b/module/icec-workflow/src/main/resources/static/editor-app/eventbus.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/eventbus.js rename to module/icec-workflow/src/main/resources/static/editor-app/eventbus.js diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.eot b/module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.eot similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.eot rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.eot diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.svg b/module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.svg similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.svg rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.svg diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.ttf b/module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.ttf similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.ttf rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.ttf diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.woff b/module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.woff similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.woff rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/activiti-admin-webfont.woff diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.eot b/module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.eot rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.eot diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.svg b/module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.svg rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.svg diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.ttf b/module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.ttf rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.ttf diff --git a/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.woff b/module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.woff rename to module/icec-workflow/src/main/resources/static/editor-app/fonts/glyphicons-halflings-regular.woff diff --git a/icec-workflow/src/main/resources/static/editor-app/header-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/header-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/header-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/header-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/i18n/en.json b/module/icec-workflow/src/main/resources/static/editor-app/i18n/en.json similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/i18n/en.json rename to module/icec-workflow/src/main/resources/static/editor-app/i18n/en.json diff --git a/icec-workflow/src/main/resources/static/editor-app/i18n/en.json_bak b/module/icec-workflow/src/main/resources/static/editor-app/i18n/en.json_bak similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/i18n/en.json_bak rename to module/icec-workflow/src/main/resources/static/editor-app/i18n/en.json_bak diff --git a/icec-workflow/src/main/resources/static/editor-app/images/bpmn-error.png b/module/icec-workflow/src/main/resources/static/editor-app/images/bpmn-error.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/bpmn-error.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/bpmn-error.png diff --git a/icec-workflow/src/main/resources/static/editor-app/images/bpmn-warning.png b/module/icec-workflow/src/main/resources/static/editor-app/images/bpmn-warning.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/bpmn-warning.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/bpmn-warning.png diff --git a/icec-workflow/src/main/resources/static/editor-app/images/datadefinition.png b/module/icec-workflow/src/main/resources/static/editor-app/images/datadefinition.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/datadefinition.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/datadefinition.png diff --git a/icec-workflow/src/main/resources/static/editor-app/images/delete.png b/module/icec-workflow/src/main/resources/static/editor-app/images/delete.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/delete.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/delete.png diff --git a/icec-workflow/src/main/resources/static/editor-app/images/loading.gif b/module/icec-workflow/src/main/resources/static/editor-app/images/loading.gif similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/loading.gif rename to module/icec-workflow/src/main/resources/static/editor-app/images/loading.gif diff --git a/icec-workflow/src/main/resources/static/editor-app/images/logo-2x.png b/module/icec-workflow/src/main/resources/static/editor-app/images/logo-2x.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/logo-2x.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/logo-2x.png diff --git a/icec-workflow/src/main/resources/static/editor-app/images/logo.png b/module/icec-workflow/src/main/resources/static/editor-app/images/logo.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/logo.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/logo.png diff --git a/icec-workflow/src/main/resources/static/editor-app/images/nw-handle-dark.gif b/module/icec-workflow/src/main/resources/static/editor-app/images/nw-handle-dark.gif similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/nw-handle-dark.gif rename to module/icec-workflow/src/main/resources/static/editor-app/images/nw-handle-dark.gif diff --git a/icec-workflow/src/main/resources/static/editor-app/images/se-handle-dark.gif b/module/icec-workflow/src/main/resources/static/editor-app/images/se-handle-dark.gif similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/se-handle-dark.gif rename to module/icec-workflow/src/main/resources/static/editor-app/images/se-handle-dark.gif diff --git a/icec-workflow/src/main/resources/static/editor-app/images/shapemenu_highlight.png b/module/icec-workflow/src/main/resources/static/editor-app/images/shapemenu_highlight.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/shapemenu_highlight.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/shapemenu_highlight.png diff --git a/icec-workflow/src/main/resources/static/editor-app/images/wrench.png b/module/icec-workflow/src/main/resources/static/editor-app/images/wrench.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/images/wrench.png rename to module/icec-workflow/src/main/resources/static/editor-app/images/wrench.png diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop.min-1.0.3.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop.min-1.0.3.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop.min-1.0.3.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop.min-1.0.3.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/.bower.json b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/.bower.json similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/.bower.json rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/.bower.json diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/.bower.json b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/.bower.json similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/.bower.json rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/.bower.json diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular-animate.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular-animate.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular-animate.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular-animate.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/angular_1.2.13/angular.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.bower.json b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.bower.json similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.bower.json rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.bower.json diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.gitignore b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.gitignore similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.gitignore rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/.gitignore diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CHANGES b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CHANGES similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CHANGES rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CHANGES diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/LICENSE b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/LICENSE similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/LICENSE rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/LICENSE diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/README.md b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/README.md similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/README.md rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/README.md diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/package.json b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/package.json similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/package.json rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/package.json diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.html b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.html rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.html diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/jquery-ui-1.10.3.custom.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/jquery-ui-1.10.3.custom.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/jquery-ui-1.10.3.custom.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/jquery-ui-1.10.3.custom.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/jquery.autogrow-textarea.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/jquery.autogrow-textarea.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/jquery.autogrow-textarea.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/jquery.autogrow-textarea.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.map b/module/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.map similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.map rename to module/icec-workflow/src/main/resources/static/editor-app/libs/jquery_1.11.0/jquery.min.map diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/LICENSE b/module/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/LICENSE similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/LICENSE rename to module/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/LICENSE diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/json3_3.2.6/lib/json3.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/momentjs_2.5.1/momentjs.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/momentjs_2.5.1/momentjs.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/momentjs_2.5.1/momentjs.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/momentjs_2.5.1/momentjs.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/mousetrap-1.4.5.min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/mousetrap-1.4.5.min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/mousetrap-1.4.5.min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/mousetrap-1.4.5.min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7-min.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7-min.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7-min.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7-min.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7.min.css b/module/icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7.min.css similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7.min.css rename to module/icec-workflow/src/main/resources/static/editor-app/libs/ng-grid-2.0.7.min.css diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/path_parser.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/path_parser.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/path_parser.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/path_parser.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/prototype-1.5.1.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/prototype-1.5.1.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/prototype-1.5.1.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/prototype-1.5.1.js diff --git a/icec-workflow/src/main/resources/static/editor-app/libs/ui-utils.min-0.0.4.js b/module/icec-workflow/src/main/resources/static/editor-app/libs/ui-utils.min-0.0.4.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/libs/ui-utils.min-0.0.4.js rename to module/icec-workflow/src/main/resources/static/editor-app/libs/ui-utils.min-0.0.4.js diff --git a/icec-workflow/src/main/resources/static/editor-app/partials/root-stencil-item-template.html b/module/icec-workflow/src/main/resources/static/editor-app/partials/root-stencil-item-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/partials/root-stencil-item-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/partials/root-stencil-item-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/partials/stencil-item-template.html b/module/icec-workflow/src/main/resources/static/editor-app/partials/stencil-item-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/partials/stencil-item-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/partials/stencil-item-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/plugins.xml b/module/icec-workflow/src/main/resources/static/editor-app/plugins.xml similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/plugins.xml rename to module/icec-workflow/src/main/resources/static/editor-app/plugins.xml diff --git a/icec-workflow/src/main/resources/static/editor-app/popups/icon-template.html b/module/icec-workflow/src/main/resources/static/editor-app/popups/icon-template.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/popups/icon-template.html rename to module/icec-workflow/src/main/resources/static/editor-app/popups/icon-template.html diff --git a/icec-workflow/src/main/resources/static/editor-app/popups/save-model.html b/module/icec-workflow/src/main/resources/static/editor-app/popups/save-model.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/popups/save-model.html rename to module/icec-workflow/src/main/resources/static/editor-app/popups/save-model.html diff --git a/icec-workflow/src/main/resources/static/editor-app/popups/select-shape.html b/module/icec-workflow/src/main/resources/static/editor-app/popups/select-shape.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/popups/select-shape.html rename to module/icec-workflow/src/main/resources/static/editor-app/popups/select-shape.html diff --git a/icec-workflow/src/main/resources/static/editor-app/popups/unsaved-changes.html b/module/icec-workflow/src/main/resources/static/editor-app/popups/unsaved-changes.html similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/popups/unsaved-changes.html rename to module/icec-workflow/src/main/resources/static/editor-app/popups/unsaved-changes.html diff --git a/icec-workflow/src/main/resources/static/editor-app/select-shape-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/select-shape-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/select-shape-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/select-shape-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/stencil-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/stencil-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencil-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/stencil-controller.js diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/task.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/task.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/task.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/task.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/error.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/error.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/error.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/error.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/message.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/message.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/message.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/message.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/diagram.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/diagram.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/diagram.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/diagram.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png diff --git a/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png b/module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png rename to module/icec-workflow/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png diff --git a/icec-workflow/src/main/resources/static/editor-app/toolbar-controller.js b/module/icec-workflow/src/main/resources/static/editor-app/toolbar-controller.js similarity index 100% rename from icec-workflow/src/main/resources/static/editor-app/toolbar-controller.js rename to module/icec-workflow/src/main/resources/static/editor-app/toolbar-controller.js diff --git a/icec-workflow/src/main/resources/static/modeler.html b/module/icec-workflow/src/main/resources/static/modeler.html similarity index 100% rename from icec-workflow/src/main/resources/static/modeler.html rename to module/icec-workflow/src/main/resources/static/modeler.html diff --git a/icec-workflow/src/main/resources/stencilset.json b/module/icec-workflow/src/main/resources/stencilset.json similarity index 100% rename from icec-workflow/src/main/resources/stencilset.json rename to module/icec-workflow/src/main/resources/stencilset.json diff --git a/icec-workflow/src/main/resources/templates/workflow/modelAdd.html b/module/icec-workflow/src/main/resources/templates/workflow/modelAdd.html similarity index 100% rename from icec-workflow/src/main/resources/templates/workflow/modelAdd.html rename to module/icec-workflow/src/main/resources/templates/workflow/modelAdd.html diff --git a/icec-workflow/src/main/resources/templates/workflow/modelList.html b/module/icec-workflow/src/main/resources/templates/workflow/modelList.html similarity index 100% rename from icec-workflow/src/main/resources/templates/workflow/modelList.html rename to module/icec-workflow/src/main/resources/templates/workflow/modelList.html diff --git a/icec-workflow/src/main/resources/templates/workflow/processDefList.html b/module/icec-workflow/src/main/resources/templates/workflow/processDefList.html similarity index 100% rename from icec-workflow/src/main/resources/templates/workflow/processDefList.html rename to module/icec-workflow/src/main/resources/templates/workflow/processDefList.html diff --git a/icec-workflow/src/main/resources/templates/workflow/processEndList.html b/module/icec-workflow/src/main/resources/templates/workflow/processEndList.html similarity index 100% rename from icec-workflow/src/main/resources/templates/workflow/processEndList.html rename to module/icec-workflow/src/main/resources/templates/workflow/processEndList.html diff --git a/icec-workflow/src/main/resources/templates/workflow/processRunningList.html b/module/icec-workflow/src/main/resources/templates/workflow/processRunningList.html similarity index 100% rename from icec-workflow/src/main/resources/templates/workflow/processRunningList.html rename to module/icec-workflow/src/main/resources/templates/workflow/processRunningList.html diff --git a/icec-workflow/src/main/resources/templates/workflow/taskTodoList.html b/module/icec-workflow/src/main/resources/templates/workflow/taskTodoList.html similarity index 100% rename from icec-workflow/src/main/resources/templates/workflow/taskTodoList.html rename to module/icec-workflow/src/main/resources/templates/workflow/taskTodoList.html diff --git a/icec-workflow/src/test/resources/application.yml b/module/icec-workflow/src/test/resources/application.yml similarity index 100% rename from icec-workflow/src/test/resources/application.yml rename to module/icec-workflow/src/test/resources/application.yml diff --git a/icec-common/pom.xml b/platform/icec-common/pom.xml similarity index 55% rename from icec-common/pom.xml rename to platform/icec-common/pom.xml index f6f1a5d..3f07469 100644 --- a/icec-common/pom.xml +++ b/platform/icec-common/pom.xml @@ -1,13 +1,15 @@ - 4.0.0 - org.icec - icec-parent - 0.0.1-SNAPSHOT - ../icec-parent/pom.xml - + org.icec + icec-parent + 2.0 + ../icec-parent/pom.xml + icec-common + commons-codec @@ -16,13 +18,17 @@ commons-io commons-io - 2.6 + 2.4 org.mindrot jbcrypt 0.4 + + com.ibeetl + beetl + com.ibeetl beetlsql @@ -48,10 +54,27 @@ jackson-databind - org.apache.commons - commons-lang3 - 3.7 - + org.apache.commons + commons-lang3 + 3.7 + + + + com.alibaba + fastjson + 1.2.46 + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + diff --git a/icec-common/src/main/java/org/icec/common/base/tips/DataTip.java b/platform/icec-common/src/main/java/org/icec/common/base/tips/DataTip.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/base/tips/DataTip.java rename to platform/icec-common/src/main/java/org/icec/common/base/tips/DataTip.java diff --git a/icec-common/src/main/java/org/icec/common/base/tips/ErrorTip.java b/platform/icec-common/src/main/java/org/icec/common/base/tips/ErrorTip.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/base/tips/ErrorTip.java rename to platform/icec-common/src/main/java/org/icec/common/base/tips/ErrorTip.java diff --git a/icec-common/src/main/java/org/icec/common/base/tips/SuccessTip.java b/platform/icec-common/src/main/java/org/icec/common/base/tips/SuccessTip.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/base/tips/SuccessTip.java rename to platform/icec-common/src/main/java/org/icec/common/base/tips/SuccessTip.java diff --git a/icec-common/src/main/java/org/icec/common/base/tips/Tip.java b/platform/icec-common/src/main/java/org/icec/common/base/tips/Tip.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/base/tips/Tip.java rename to platform/icec-common/src/main/java/org/icec/common/base/tips/Tip.java diff --git a/icec-common/src/main/java/org/icec/common/constants/SessionConstants.java b/platform/icec-common/src/main/java/org/icec/common/constants/SessionConstants.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/constants/SessionConstants.java rename to platform/icec-common/src/main/java/org/icec/common/constants/SessionConstants.java diff --git a/icec-common/src/main/java/org/icec/common/exception/IcecException.java b/platform/icec-common/src/main/java/org/icec/common/exception/IcecException.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/exception/IcecException.java rename to platform/icec-common/src/main/java/org/icec/common/exception/IcecException.java diff --git a/icec-common/src/main/java/org/icec/common/model/BaseModel.java b/platform/icec-common/src/main/java/org/icec/common/model/BaseModel.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/model/BaseModel.java rename to platform/icec-common/src/main/java/org/icec/common/model/BaseModel.java diff --git a/icec-common/src/main/java/org/icec/common/model/JsTreeData.java b/platform/icec-common/src/main/java/org/icec/common/model/JsTreeData.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/model/JsTreeData.java rename to platform/icec-common/src/main/java/org/icec/common/model/JsTreeData.java diff --git a/icec-common/src/main/java/org/icec/common/model/TreeModel.java b/platform/icec-common/src/main/java/org/icec/common/model/TreeModel.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/model/TreeModel.java rename to platform/icec-common/src/main/java/org/icec/common/model/TreeModel.java diff --git a/icec-common/src/main/java/org/icec/common/page/Page.java b/platform/icec-common/src/main/java/org/icec/common/page/Page.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/page/Page.java rename to platform/icec-common/src/main/java/org/icec/common/page/Page.java diff --git a/icec-common/src/main/java/org/icec/common/utils/AjaxUtils.java b/platform/icec-common/src/main/java/org/icec/common/utils/AjaxUtils.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/AjaxUtils.java rename to platform/icec-common/src/main/java/org/icec/common/utils/AjaxUtils.java diff --git a/icec-common/src/main/java/org/icec/common/utils/CryptoUtils.java b/platform/icec-common/src/main/java/org/icec/common/utils/CryptoUtils.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/CryptoUtils.java rename to platform/icec-common/src/main/java/org/icec/common/utils/CryptoUtils.java diff --git a/icec-common/src/main/java/org/icec/common/utils/DateUtils.java b/platform/icec-common/src/main/java/org/icec/common/utils/DateUtils.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/DateUtils.java rename to platform/icec-common/src/main/java/org/icec/common/utils/DateUtils.java diff --git a/icec-common/src/main/java/org/icec/common/utils/FileUtil.java b/platform/icec-common/src/main/java/org/icec/common/utils/FileUtil.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/FileUtil.java rename to platform/icec-common/src/main/java/org/icec/common/utils/FileUtil.java diff --git a/icec-common/src/main/java/org/icec/common/utils/HttpKit.java b/platform/icec-common/src/main/java/org/icec/common/utils/HttpKit.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/HttpKit.java rename to platform/icec-common/src/main/java/org/icec/common/utils/HttpKit.java diff --git a/icec-common/src/main/java/org/icec/common/utils/SpringContextHolder.java b/platform/icec-common/src/main/java/org/icec/common/utils/SpringContextHolder.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/SpringContextHolder.java rename to platform/icec-common/src/main/java/org/icec/common/utils/SpringContextHolder.java diff --git a/icec-common/src/main/java/org/icec/common/utils/TreeBuild.java b/platform/icec-common/src/main/java/org/icec/common/utils/TreeBuild.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/TreeBuild.java rename to platform/icec-common/src/main/java/org/icec/common/utils/TreeBuild.java diff --git a/icec-common/src/main/java/org/icec/common/utils/WafKit.java b/platform/icec-common/src/main/java/org/icec/common/utils/WafKit.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/WafKit.java rename to platform/icec-common/src/main/java/org/icec/common/utils/WafKit.java diff --git a/icec-common/src/main/java/org/icec/common/utils/WafRequestWrapper.java b/platform/icec-common/src/main/java/org/icec/common/utils/WafRequestWrapper.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/utils/WafRequestWrapper.java rename to platform/icec-common/src/main/java/org/icec/common/utils/WafRequestWrapper.java diff --git a/icec-common/src/main/java/org/icec/common/web/BaseController.java b/platform/icec-common/src/main/java/org/icec/common/web/BaseController.java similarity index 100% rename from icec-common/src/main/java/org/icec/common/web/BaseController.java rename to platform/icec-common/src/main/java/org/icec/common/web/BaseController.java diff --git a/icec-parent/pom.xml b/platform/icec-parent/pom.xml similarity index 62% rename from icec-parent/pom.xml rename to platform/icec-parent/pom.xml index 5da2116..e18464a 100644 --- a/icec-parent/pom.xml +++ b/platform/icec-parent/pom.xml @@ -2,48 +2,67 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.icec - 0.0.1-SNAPSHOT + 2.0 icec-parent pom - 0.0.1-SNAPSHOT + 2.0 UTF-8 UTF-8 1.8 - 3.0.9.RELEASE - 2.3.0 - 3.0.9.RELEASE + 3.0.8.RELEASE + 2.2.2 + 3.0.8.RELEASE 1.4.0 2.6.11 2.3.2 1.2.39 - 5.22.0 - 0.9.1 + 1.5.16.RELEASE org.springframework.boot spring-boot-dependencies - 1.5.16.RELEASE + ${springboot.version} pom import com.ibeetl beetl - 2.8.5 + 2.7.22 com.ibeetl beetlsql - 2.10.30 + 2.9.11 com.alibaba druid - 1.1.10 + 1.1.3 + + + org.thymeleaf + thymeleaf-spring4 + 3.0.8.RELEASE + + + org.thymeleaf + thymeleaf + 3.0.8.RELEASE + + + nz.net.ultraq.thymeleaf + thymeleaf-layout-dialect + 2.2.2 + + + org.postgresql + postgresql + 42.2.2 @@ -65,7 +84,7 @@ org.springframework.boot spring-boot-maven-plugin - 1.5.8.RELEASE + ${springboot.version} diff --git a/platform/icec-static/pom.xml b/platform/icec-static/pom.xml new file mode 100644 index 0000000..7d97546 --- /dev/null +++ b/platform/icec-static/pom.xml @@ -0,0 +1,28 @@ + + 4.0.0 + + org.icec + icec-parent + 2.0 + ../icec-parent/pom.xml + + icec-static + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + + -parameters + + 1.8 + 1.8 + + + + + \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/avatars/avatar.png b/platform/icec-static/src/main/resources/static/resource/avatars/avatar.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/avatar.png rename to platform/icec-static/src/main/resources/static/resource/avatars/avatar.png diff --git a/icec-admin/src/main/resources/static/ace/avatars/avatar1.png b/platform/icec-static/src/main/resources/static/resource/avatars/avatar1.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/avatar1.png rename to platform/icec-static/src/main/resources/static/resource/avatars/avatar1.png diff --git a/icec-admin/src/main/resources/static/ace/avatars/avatar2.png b/platform/icec-static/src/main/resources/static/resource/avatars/avatar2.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/avatar2.png rename to platform/icec-static/src/main/resources/static/resource/avatars/avatar2.png diff --git a/icec-admin/src/main/resources/static/ace/avatars/avatar3.png b/platform/icec-static/src/main/resources/static/resource/avatars/avatar3.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/avatar3.png rename to platform/icec-static/src/main/resources/static/resource/avatars/avatar3.png diff --git a/icec-admin/src/main/resources/static/ace/avatars/avatar4.png b/platform/icec-static/src/main/resources/static/resource/avatars/avatar4.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/avatar4.png rename to platform/icec-static/src/main/resources/static/resource/avatars/avatar4.png diff --git a/icec-admin/src/main/resources/static/ace/avatars/avatar5.png b/platform/icec-static/src/main/resources/static/resource/avatars/avatar5.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/avatar5.png rename to platform/icec-static/src/main/resources/static/resource/avatars/avatar5.png diff --git a/icec-admin/src/main/resources/static/ace/avatars/profile-pic.jpg b/platform/icec-static/src/main/resources/static/resource/avatars/profile-pic.jpg similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/profile-pic.jpg rename to platform/icec-static/src/main/resources/static/resource/avatars/profile-pic.jpg diff --git a/icec-admin/src/main/resources/static/ace/avatars/user.jpg b/platform/icec-static/src/main/resources/static/resource/avatars/user.jpg similarity index 100% rename from icec-admin/src/main/resources/static/ace/avatars/user.jpg rename to platform/icec-static/src/main/resources/static/resource/avatars/user.jpg diff --git a/icec-admin/src/main/resources/static/ace/css/ace-fonts.css b/platform/icec-static/src/main/resources/static/resource/css/ace-fonts.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/ace-fonts.css rename to platform/icec-static/src/main/resources/static/resource/css/ace-fonts.css diff --git a/icec-admin/src/main/resources/static/ace/css/ace-ie.css b/platform/icec-static/src/main/resources/static/resource/css/ace-ie.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/ace-ie.css rename to platform/icec-static/src/main/resources/static/resource/css/ace-ie.css diff --git a/icec-admin/src/main/resources/static/ace/css/ace-part2.css b/platform/icec-static/src/main/resources/static/resource/css/ace-part2.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/ace-part2.css rename to platform/icec-static/src/main/resources/static/resource/css/ace-part2.css diff --git a/icec-admin/src/main/resources/static/ace/css/ace-rtl.css b/platform/icec-static/src/main/resources/static/resource/css/ace-rtl.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/ace-rtl.css rename to platform/icec-static/src/main/resources/static/resource/css/ace-rtl.css diff --git a/icec-admin/src/main/resources/static/ace/css/ace-skins.css b/platform/icec-static/src/main/resources/static/resource/css/ace-skins.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/ace-skins.css rename to platform/icec-static/src/main/resources/static/resource/css/ace-skins.css diff --git a/icec-admin/src/main/resources/static/ace/css/ace.css b/platform/icec-static/src/main/resources/static/resource/css/ace.css similarity index 99% rename from icec-admin/src/main/resources/static/ace/css/ace.css rename to platform/icec-static/src/main/resources/static/resource/css/ace.css index 02ef011..07800a9 100644 --- a/icec-admin/src/main/resources/static/ace/css/ace.css +++ b/platform/icec-static/src/main/resources/static/resource/css/ace.css @@ -3,7 +3,7 @@ html { position: relative; } body { - background-color: #E4E6E9; + /* background-color: #E4E6E9; */ min-height: 100%; padding-bottom: 0; font-family: 'Open Sans'; diff --git a/icec-admin/src/main/resources/static/ace/css/ace.onpage-help.css b/platform/icec-static/src/main/resources/static/resource/css/ace.onpage-help.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/ace.onpage-help.css rename to platform/icec-static/src/main/resources/static/resource/css/ace.onpage-help.css diff --git a/icec-admin/src/main/resources/static/ace/css/bootstrap.css b/platform/icec-static/src/main/resources/static/resource/css/bootstrap.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/bootstrap.css rename to platform/icec-static/src/main/resources/static/resource/css/bootstrap.css diff --git a/icec-admin/src/main/resources/static/ace/css/images/loading.gif b/platform/icec-static/src/main/resources/static/resource/css/images/loading.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/images/loading.gif rename to platform/icec-static/src/main/resources/static/resource/css/images/loading.gif diff --git a/icec-admin/src/main/resources/static/ace/css/images/meteorshower.jpg b/platform/icec-static/src/main/resources/static/resource/css/images/meteorshower.jpg similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/images/meteorshower.jpg rename to platform/icec-static/src/main/resources/static/resource/css/images/meteorshower.jpg diff --git a/icec-admin/src/main/resources/static/ace/css/images/meteorshower2.jpg b/platform/icec-static/src/main/resources/static/resource/css/images/meteorshower2.jpg similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/images/meteorshower2.jpg rename to platform/icec-static/src/main/resources/static/resource/css/images/meteorshower2.jpg diff --git a/icec-admin/src/main/resources/static/ace/css/images/pattern.jpg b/platform/icec-static/src/main/resources/static/resource/css/images/pattern.jpg similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/images/pattern.jpg rename to platform/icec-static/src/main/resources/static/resource/css/images/pattern.jpg diff --git a/icec-admin/src/main/resources/static/ace/css/images/pattern.png b/platform/icec-static/src/main/resources/static/resource/css/images/pattern.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/css/images/pattern.png rename to platform/icec-static/src/main/resources/static/resource/css/images/pattern.png diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/2v-icon-g.png b/platform/icec-static/src/main/resources/static/resource/css/login/image/2v-icon-g.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb764e42a0bc899f8a94fa0417d450649411524 GIT binary patch literal 649 zcmV;40(Sk0P)44|_ z4ih}`ao!%mZ#Dq{%#6F|Bg__WiTC3$Gj7L+C}JJnMQ4Qe=Bd#{HsJw4(CXGklqWva zMHDeJs}9o1k*x2>b4WH{*1TTk2nT5-T}*Qw@#Gr5U&-R)5y-QS#0U`)Ty?+12nm8# z7nlIAANNX=rajpzkmitU?w89HToRSJ<)Q?wE)cGjxt2o6EeHUDohty}Iif<|b0rQD z;cWLI^?uSi{>M2agNU%Teyr?%d0Frr{g*whvDy)`)hM(gBoOCRI34`C9^d<_wVw$_ zf&ly6&sY%f>wdb3QmY7R=W;7SwxjjNDx=6Qj%qilln5>JeX7(gw~WKL^c<>MR4F+m zL)I%u%NZH9?E0((+0IgOs7z`Xp+c%{Q*V>s#k{OVDQT22-z=L7-SqO7* jiXy7?+6V%GVR(%%SdbP%mj>y!00000NkvXXu0mjf`%WMH literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/logo.png b/platform/icec-static/src/main/resources/static/resource/css/login/image/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5a328f1aeffa57d0af6a2c9b0b5ad2bd1d55f1cf GIT binary patch literal 16653 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
    &&$=dO}gjr{i=>-(hNXU>Q!9&%%79dZa}0m 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
    AwIdp+>V6$pWus?S3 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%0A&sas;HnM9|-+zgRs_Xwh7C~g>Y%nVT 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 Y8y4<;f5zhp=o{BV8?3L1QMZZw56yz^$p8QV literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/pic-j.png2 b/platform/icec-static/src/main/resources/static/resource/css/login/image/pic-j.png2 new file mode 100644 index 0000000000000000000000000000000000000000..601d6529671d87a19dba297f64538e69af592520 GIT binary patch literal 131170 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

    c3wHJ>BEgW;;N> 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 Ry#yeBs)||)&2l!8{|9>!0~Y`Q literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/qrcode.png b/platform/icec-static/src/main/resources/static/resource/css/login/image/qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..10ffc83293a5736ee9538a4ddc6dffd67a74245f GIT binary patch literal 1012 zcmeAS@N?(olHy`uVBq!ia0vp^J3*L(2}u4v&&kcez`Wbj#WAGf*4sOQeXk67SOdQ8 ze_5$5@v`^PYl-J~{8^Uf`l%+n*VMWE)0f}w5Fr@WBAVz5q+BqW-=co9e7gP7|J=j% z^XGnuo%?;JXjnvIt7ur<#-b2C({5JAaBLz4P(rLtNTxHUNq0wD!)M(aZ0y+Us{atsN}1 zX2Ye-rN#N*POs0uG5ai3-Q2KCD{oy6F+Du{!sXrjHJ}PV#fJG^d$Z*G)EC*M>pr&Z zO@N7aO`ZJp#h;we_}5Qnu8i7$&T1~y{%w&fckPegoBuQY*uJ$dH#Kki`gQ6&X^7j_=xi){q#4M){JU-Gx0^z?XI@rsjs%56L}F@G?(B7j{^xcUAFF)* z6C&0+HGECT*CVUWsHU~d{e8gNb|b`-r?kT^RnM|YFXfc)%=Wo{7wX1MXT5&?vd+GD zZr8tS#wVfPTpzvim1F5QhSfQ~1#>Fcz(EGIt$FG>TkFu;<*Oo-AAN0k+*un9b9aKO zE%%!@?n{3+sz1L|nGbUwP{X||C%=cS^}Q9gOD_!)`cuW%s@z%f`u@4EJ3_OkpBI5D ze%ie@WNmP0?(LhuU%gpgYPTKcz=K{u&Bv#{&|a24hjTqFXctZW@>Ts;&dbm1S9z{} zHVY=)HFecq*X?N)p|wZ9l-`}Sc@xz0X4;**Obg|O_X%&lbfj*D=2l&3;QFl2U46}N zuUV($b6x-2-;P2<%j=NWudl0qty{IsPey$r!l$0mp6YwkI^_~V?;8b*L(|Wx?y$V8 z@#@D{7EQjldg_Y5>gQ&{Lg3aLgTgsSX8rwoXVt5xnVTb^0d_M-HITpT+d-ky?=AP) zFMqd!Mbh?Y&pqme_5SA)r*J~mCO*CO|H++M@n!FlyZ(hGKm$=V%<6f4r)ARfQs39t zVY<__JF{2ZN-z2J@5|4UZ#=M&b=CfqfXH7hqVQaY#7qhP#~A;w)X7m*SRR<089ZJ6 KT-G@yGywoIPV$HV literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/sjtu.png b/platform/icec-static/src/main/resources/static/resource/css/login/image/sjtu.png new file mode 100644 index 0000000000000000000000000000000000000000..5bfe159e1d61cbb676adffc6416d01613d5fbd16 GIT binary patch literal 15726 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 D+QU?H literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/sjtu.png2 b/platform/icec-static/src/main/resources/static/resource/css/login/image/sjtu.png2 new file mode 100644 index 0000000000000000000000000000000000000000..0d4c19c0af7bf0b8e03a81bb2b834b0cef6107c9 GIT binary patch literal 42464 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

    vi|3Y)mHs|b*W|nX{E~yd(avk3;jw|2@XbK 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 ft(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null!=t.loop&&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 pt(t){return(t=Math.round(t))<0?0:t>255?255:t}function gt(t){return(t=Math.round(t))<0?0:t>360?360:t}function mt(t){return t<0?0:t>1?1:t}function vt(t){return pt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function yt(t){return mt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function xt(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function _t(t,e,n){return t+(e-t)*n}function wt(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function bt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function St(t,e){Bp&&bt(Bp,e),Bp=Rp.put(t,Bp||e.slice())}function Mt(t,e){if(t){e=e||[];var n=Rp.get(t);if(n)return bt(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Np)return bt(e,Np[i]),St(t,e),e;if("#"!==i.charAt(0)){var r=i.indexOf("("),o=i.indexOf(")");if(-1!==r&&o+1===i.length){var a=i.substr(0,r),s=i.substr(r+1,o-(r+1)).split(","),l=1;switch(a){case"rgba":if(4!==s.length)return void wt(e,0,0,0,1);l=yt(s.pop());case"rgb":return 3!==s.length?void wt(e,0,0,0,1):(wt(e,vt(s[0]),vt(s[1]),vt(s[2]),l),St(t,e),e);case"hsla":return 4!==s.length?void wt(e,0,0,0,1):(s[3]=yt(s[3]),It(s,e),St(t,e),e);case"hsl":return 3!==s.length?void wt(e,0,0,0,1):(It(s,e),St(t,e),e);default:return}}wt(e,0,0,0,1)}else{if(4===i.length)return(h=parseInt(i.substr(1),16))>=0&&h<=4095?(wt(e,(3840&h)>>4|(3840&h)>>8,240&h|(240&h)>>4,15&h|(15&h)<<4,1),St(t,e),e):void wt(e,0,0,0,1);if(7===i.length){var h=parseInt(i.substr(1),16);return h>=0&&h<=16777215?(wt(e,(16711680&h)>>16,(65280&h)>>8,255&h,1),St(t,e),e):void wt(e,0,0,0,1)}}}}function It(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=yt(t[1]),r=yt(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return e=e||[],wt(e,pt(255*xt(a,o,n+1/3)),pt(255*xt(a,o,n)),pt(255*xt(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Tt(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,h=(s+a)/2;if(0===l)e=0,n=0;else{n=h<.5?l/(s+a):l/(2-s-a);var u=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,d=((s-o)/6+l/2)/l;i===s?e=d-c:r===s?e=1/3+u-d:o===s&&(e=2/3+c-u),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,n,h];return null!=t[3]&&f.push(t[3]),f}}function Ct(t,e){var n=Mt(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:t[i]<0&&(n[i]=0);return Lt(n,4===n.length?"rgba":"rgb")}}function Dt(t){var e=Mt(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function At(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=pt(_t(a[0],s[0],l)),n[1]=pt(_t(a[1],s[1],l)),n[2]=pt(_t(a[2],s[2],l)),n[3]=mt(_t(a[3],s[3],l)),n}}function kt(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=Mt(e[r]),s=Mt(e[o]),l=i-r,h=Lt([pt(_t(a[0],s[0],l)),pt(_t(a[1],s[1],l)),pt(_t(a[2],s[2],l)),mt(_t(a[3],s[3],l))],"rgba");return n?{color:h,leftIndex:r,rightIndex:o,value:i}:h}}function Pt(t,e){if((t=Mt(t))&&null!=e)return t[3]=mt(e),Lt(t,"rgba")}function Lt(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function Ot(t,e){return t[e]}function zt(t,e,n){t[e]=n}function Et(t,e,n){return(e-t)*n+t}function Nt(t,e,n){return n>.5?e:t}function Rt(t,e,n,i,r){var o=t.length;if(1==r)for(s=0;sr)t.length=r;else for(a=i;a=0&&!(m[n]<=e);n--);n=Math.min(n,h-2)}else{for(n=k;ne);n++);n=Math.min(n-1,h-2)}k=n,P=e;var i=m[n+1]-m[n];if(0!==i)if(I=(e-m[n])/i,l)if(C=v[n],T=v[0===n?n:n-1],D=v[n>h-2?h-1:n+1],A=v[n>h-3?h-1:n+2],d)Ft(T,C,D,A,I,I*I,I*I*I,a(t,r),g);else{if(f)o=Ft(T,C,D,A,I,I*I,I*I*I,L,1),o=Wt(L);else{if(p)return Nt(C,D,I);o=Ht(T,C,D,A,I,I*I,I*I*I)}s(t,r,o)}else if(d)Rt(v[n],v[n+1],I,a(t,r),g);else{var o;if(f)Rt(v[n],v[n+1],I,L,1),o=Wt(L);else{if(p)return Nt(v[n],v[n+1],I);o=Et(v[n],v[n+1],I)}s(t,r,o)}},ondestroy:n});return e&&"spline"!==e&&(O.easing=e),O}}}function Xt(t,e,n,i){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}function jt(t){for(var e=0;t>=tg;)e|=1&t,t>>=1;return t+e}function Yt(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r=0;)r++;return r-e}function qt(t,e,n){for(n--;e>>1])<0?l=o:s=o+1;var h=i-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]=a}}function Kt(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;ls&&(l=s);var h=a;a=r-l,l=r-h}for(a++;a>>1);o(t,e[n+u])>0?a=u+1:l=u}return l}function Qt(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;ls&&(l=s);var h=a;a=r-l,l=r-h}else{for(s=i-r;l=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a>>1);o(t,e[n+u])<0?l=u:a=u+1}return l}function Jt(t,e){function n(n){var s=o[n],h=a[n],u=o[n+1],c=a[n+1];a[n]=h+c,n===l-3&&(o[n+1]=o[n+2],a[n+1]=a[n+2]),l--;var d=Qt(t[u],t,s,h,0,e);s+=d,0!==(h-=d)&&0!==(c=Kt(t[s+h-1],t,u,c,c-1,e))&&(h<=c?i(s,h,u,c):r(s,h,u,c))}function i(n,i,r,o){var a=0;for(a=0;a=eg||f>=eg);if(p)break;g<0&&(g=0),g+=2}if((s=g)<1&&(s=1),1===i){for(a=0;a=0;a--)t[f+a]=t[d+a];if(0===i){v=!0;break}}if(t[c--]=h[u--],1==--o){v=!0;break}if(0!=(m=o-Kt(t[l],h,0,o,o-1,e))){for(o-=m,f=(c-=m)+1,d=(u-=m)+1,a=0;a=eg||m>=eg);if(v)break;p<0&&(p=0),p+=2}if((s=p)<1&&(s=1),1===o){for(f=(c-=i)+1,d=(l-=i)+1,a=i-1;a>=0;a--)t[f+a]=t[d+a];t[c]=h[u]}else{if(0===o)throw new Error;for(d=c-(o-1),a=0;a=0;a--)t[f+a]=t[d+a];t[c]=h[u]}else for(d=c-(o-1),a=0;a1;){var t=l-2;if(t>=1&&a[t-1]<=a[t]+a[t+1]||t>=2&&a[t-2]<=a[t]+a[t-1])a[t-1]a[t+1])break;n(t)}},this.forceMergeRuns=function(){for(;l>1;){var t=l-2;t>0&&a[t-1]s&&(l=s),$t(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}function ee(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function ne(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}function ie(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}function re(){return!1}function oe(t,e,n){var i=lp(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left=0,a.top=0,a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}function ae(t){if("string"==typeof t){var e=fg.get(t);return e&&e.image}return t}function se(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=fg.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!he(e=o.image)&&o.pending.push(a):(!e&&(e=new Image),e.onload=le,fg.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function le(){var t=this.__cachedImgObj;this.onload=this.__cachedImgObj=null;for(var e=0;emg&&(gg=0,pg={}),gg++,pg[n]=r,r}function ce(t,e,n,i,r,o,a){return o?fe(t,e,n,i,r,o,a):de(t,e,n,i,r,a)}function de(t,e,n,i,r,o){var a=Se(t,e,r,o),s=ue(t,e);r&&(s+=r[1]+r[3]);var l=a.outerHeight,h=new Xt(pe(0,s,n),ge(0,l,i),s,l);return h.lineHeight=a.lineHeight,h}function fe(t,e,n,i,r,o,a){var s=Me(t,{rich:o,truncate:a,font:e,textAlign:n,textPadding:r}),l=s.outerWidth,h=s.outerHeight;return new Xt(pe(0,l,n),ge(0,h,i),l,h)}function pe(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function ge(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function me(t,e,n){var i=e.x,r=e.y,o=e.height,a=e.width,s=o/2,l="left",h="top";switch(t){case"left":i-=n,r+=s,l="right",h="middle";break;case"right":i+=n+a,r+=s,h="middle";break;case"top":i+=a/2,r-=n,l="center",h="bottom";break;case"bottom":i+=a/2,r+=o+n,l="center";break;case"inside":i+=a/2,r+=s,l="center",h="middle";break;case"insideLeft":i+=n,r+=s,h="middle";break;case"insideRight":i+=a-n,r+=s,l="right",h="middle";break;case"insideTop":i+=a/2,r+=n,l="center";break;case"insideBottom":i+=a/2,r+=o-n,l="center",h="bottom";break;case"insideTopLeft":i+=n,r+=n;break;case"insideTopRight":i+=a-n,r+=n,l="right";break;case"insideBottomLeft":i+=n,r+=o-n,h="bottom";break;case"insideBottomRight":i+=a-n,r+=o-n,l="right",h="bottom"}return{x:i,y:r,textAlign:l,textVerticalAlign:h}}function ve(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=ye(e,n,i,r);for(var a=0,s=o.length;a=a;l++)s-=a;var h=ue(n);return h>s&&(n="",h=0),s=t-h,i.ellipsis=n,i.ellipsisWidth=h,i.contentWidth=s,i.containerWidth=t,i}function xe(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=ue(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?_e(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=ue(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function _e(t,e,n,i){for(var r=0,o=0,a=t.length;ol)t="",o=[];else if(null!=h)for(var u=ye(h-(n?n[1]+n[3]:0),e,i.ellipsis,{minChar:i.minChar,placeholder:i.placeholder}),c=0,d=o.length;cr&&Ie(n,t.substring(r,o)),Ie(n,i[2],i[1]),r=vg.lastIndex}rf)return{lines:[],width:0,height:0};P.textWidth=ue(P.text,_);var b=y.textWidth,S=null==b||"auto"===b;if("string"==typeof b&&"%"===b.charAt(b.length-1))P.percentWidth=b,h.push(P),b=0;else{if(S){b=P.textWidth;var M=y.textBackgroundColor,I=M&&M.image;I&&he(I=ae(I))&&(b=Math.max(b,I.width*w/I.height))}var T=x?x[1]+x[3]:0;b+=T;var A=null!=d?d-m:null;null!=A&&Al&&(n*=l/(c=n+i),i*=l/c),r+o>l&&(r*=l/(c=r+o),o*=l/c),i+r>h&&(i*=h/(c=i+r),r*=h/c),n+o>h&&(n*=h/(c=n+o),o*=h/c),t.moveTo(a+n,s),t.lineTo(a+l-i,s),0!==i&&t.arc(a+l-i,s+i,i,-Math.PI/2,0),t.lineTo(a+l,s+h-r),0!==r&&t.arc(a+l-r,s+h-r,r,0,Math.PI/2),t.lineTo(a+o,s+h),0!==o&&t.arc(a+o,s+h-o,o,Math.PI/2,Math.PI),t.lineTo(a,s+n),0!==n&&t.arc(a+n,s+n,n,Math.PI,1.5*Math.PI)}function De(t){return Ae(t),d(t.rich,Ae),t}function Ae(t){if(t){t.font=Te(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||_g[e]?e:"left";var n=t.textVerticalAlign||t.textBaseline;"center"===n&&(n="middle"),t.textVerticalAlign=null==n||wg[n]?n:"top",t.textPadding&&(t.textPadding=k(t.textPadding))}}function ke(t,e,n,i,r){i.rich?Le(t,e,n,i,r):Pe(t,e,n,i,r)}function Pe(t,e,n,i,r){var o=Fe(e,"font",i.font||yg),a=i.textPadding,s=t.__textCotentBlock;s&&!t.__dirty||(s=t.__textCotentBlock=Se(n,o,a,i.truncate));var l=s.outerHeight,h=s.lines,u=s.lineHeight,c=Ve(l,i,r),d=c.baseX,f=c.baseY,p=c.textAlign,g=c.textVerticalAlign;ze(e,i,r,d,f);var m=ge(f,l,g),v=d,y=m,x=Ne(i);if(x||a){var _=ue(n,o);a&&(_+=a[1]+a[3]);var w=pe(d,_,p);x&&Re(t,e,i,w,m,_,l),a&&(v=Ze(d,p,a),y+=a[0])}Fe(e,"textAlign",p||"left"),Fe(e,"textBaseline","middle"),Fe(e,"shadowBlur",i.textShadowBlur||0),Fe(e,"shadowColor",i.textShadowColor||"transparent"),Fe(e,"shadowOffsetX",i.textShadowOffsetX||0),Fe(e,"shadowOffsetY",i.textShadowOffsetY||0),y+=u/2;var b=i.textStrokeWidth,S=He(i.textStroke,b),M=Ge(i.textFill);S&&(Fe(e,"lineWidth",b),Fe(e,"strokeStyle",S)),M&&Fe(e,"fillStyle",M);for(var I=0;I=0&&"right"===(_=b[A]).textAlign;)Ee(t,e,_,i,M,v,D,"right"),I-=_.width,D-=_.width,A--;for(C+=(o-(C-m)-(y-D)-I)/2;T<=A;)Ee(t,e,_=b[T],i,M,v,C+_.width/2,"center"),C+=_.width,T++;v+=M}}function ze(t,e,n,i,r){if(n&&e.textRotation){var o=e.textOrigin;"center"===o?(i=n.width/2+n.x,r=n.height/2+n.y):o&&(i=o[0]+n.x,r=o[1]+n.y),t.translate(i,r),t.rotate(-e.textRotation),t.translate(-i,-r)}}function Ee(t,e,n,i,r,o,a,s){var l=i.rich[n.styleName]||{},h=n.textVerticalAlign,u=o+r/2;"top"===h?u=o+n.height/2:"bottom"===h&&(u=o+r-n.height/2),!n.isLineHolder&&Ne(l)&&Re(t,e,l,"right"===s?a-n.width:"center"===s?a-n.width/2:a,u-n.height/2,n.width,n.height);var c=n.textPadding;c&&(a=Ze(a,s,c),u-=n.height/2-c[2]-n.textHeight/2),Fe(e,"shadowBlur",D(l.textShadowBlur,i.textShadowBlur,0)),Fe(e,"shadowColor",l.textShadowColor||i.textShadowColor||"transparent"),Fe(e,"shadowOffsetX",D(l.textShadowOffsetX,i.textShadowOffsetX,0)),Fe(e,"shadowOffsetY",D(l.textShadowOffsetY,i.textShadowOffsetY,0)),Fe(e,"textAlign",s),Fe(e,"textBaseline","middle"),Fe(e,"font",n.font||yg);var d=He(l.textStroke||i.textStroke,p),f=Ge(l.textFill||i.textFill),p=C(l.textStrokeWidth,i.textStrokeWidth);d&&(Fe(e,"lineWidth",p),Fe(e,"strokeStyle",d),e.strokeText(n.text,a,u)),f&&(Fe(e,"fillStyle",f),e.fillText(n.text,a,u))}function Ne(t){return t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor}function Re(t,e,n,i,r,o,a){var s=n.textBackgroundColor,l=n.textBorderWidth,h=n.textBorderColor,u=_(s);if(Fe(e,"shadowBlur",n.textBoxShadowBlur||0),Fe(e,"shadowColor",n.textBoxShadowColor||"transparent"),Fe(e,"shadowOffsetX",n.textBoxShadowOffsetX||0),Fe(e,"shadowOffsetY",n.textBoxShadowOffsetY||0),u||l&&h){e.beginPath();var c=n.textBorderRadius;c?Ce(e,{x:i,y:r,width:o,height:a,r:c}):e.rect(i,r,o,a),e.closePath()}if(u)Fe(e,"fillStyle",s),e.fill();else if(w(s)){var d=s.image;(d=se(d,null,t,Be,s))&&he(d)&&e.drawImage(d,i,r,o,a)}l&&h&&(Fe(e,"lineWidth",l),Fe(e,"strokeStyle",h),e.stroke())}function Be(t,e){e.image=t}function Ve(t,e,n){var i=e.x||0,r=e.y||0,o=e.textAlign,a=e.textVerticalAlign;if(n){var s=e.textPosition;if(s instanceof Array)i=n.x+We(s[0],n.width),r=n.y+We(s[1],n.height);else{var l=me(s,n,e.textDistance);i=l.x,r=l.y,o=o||l.textAlign,a=a||l.textVerticalAlign}var h=e.textOffset;h&&(i+=h[0],r+=h[1])}return{baseX:i,baseY:r,textAlign:o,textVerticalAlign:a}}function Fe(t,e,n){return t[e]=rg(t,e,n),t[e]}function He(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Ge(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function We(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Ze(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function Ue(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function Xe(t){t=t||{},qp.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new ag(t.style,this),this._rect=null,this.__clipPaths=[]}function je(t){Xe.call(this,t)}function Ye(t){return parseInt(t,10)}function qe(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}function $e(t,e,n){return Mg.copy(t.getBoundingRect()),t.transform&&Mg.applyTransform(t.transform),Ig.width=e,Ig.height=n,!Mg.intersect(Ig)}function Ke(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n=0){var r="touchend"!=i?e.targetTouches[0]:e.changedTouches[0];r&&en(t,r,e,n)}else en(t,e,e,n),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var o=e.button;return null==e.which&&void 0!==o&&Dg.test(e.type)&&(e.which=1&o?1:2&o?3:4&o?2:0),e}function on(t,e,n){Cg?t.addEventListener(e,n):t.attachEvent("on"+e,n)}function an(t,e,n){Cg?t.removeEventListener(e,n):t.detachEvent("on"+e,n)}function sn(t){return t.which>1}function ln(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}function hn(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}function un(t){return"mousewheel"===t&&Kf.browser.firefox?"DOMMouseScroll":t}function cn(t,e,n){var i=t._gestureMgr;"start"===n&&i.clear();var r=i.recognize(e,t.handler.findHover(e.zrX,e.zrY,null).target,t.dom);if("end"===n&&i.clear(),r){var o=r.type;e.gestureEvent=o,t.handler.dispatchToElement({target:r.target},o,r.event)}}function dn(t){t._touching=!0,clearTimeout(t._touchTimer),t._touchTimer=setTimeout(function(){t._touching=!1},700)}function fn(t){var e=t.pointerType;return"pen"===e||"touch"===e}function pn(t){function e(t,e){return function(){if(!e._touching)return t.apply(e,arguments)}}d(zg,function(e){t._handlers[e]=m(Rg[e],t)}),d(Ng,function(e){t._handlers[e]=m(Rg[e],t)}),d(Og,function(n){t._handlers[n]=e(Rg[n],t)})}function gn(t){function e(e,n){d(e,function(e){on(t,un(e),n._handlers[e])},n)}xp.call(this),this.dom=t,this._touching=!1,this._touchTimer,this._gestureMgr=new Pg,this._handlers={},pn(this),Kf.pointerEventsSupported?e(Ng,this):(Kf.touchEventsSupported&&e(zg,this),e(Og,this))}function mn(t,e){var n=new Gg(qf(),t,e);return Hg[n.id]=n,n}function vn(t,e){Fg[t]=e}function yn(t){delete Hg[t]}function xn(t){return t instanceof Array?t:null==t?[]:[t]}function _n(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i=n.length&&n.push({option:t})}}),n}function Mn(t){var e=N();Zg(t,function(t,n){var i=t.exist;i&&e.set(i.id,t)}),Zg(t,function(t,n){var i=t.option;P(!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={})}),Zg(t,function(t,n){var i=t.exist,r=t.option,o=t.keyInfo;if(Ug(r)){if(o.name=null!=r.name?r.name+"":i?i.name:jg+n,i)o.id=i.id;else if(null!=r.id)o.id=r.id+"";else{var a=0;do{o.id="\0"+o.name+"\0"+a++}while(e.get(o.id))}e.set(o.id,t)}})}function In(t){var e=t.name;return!(!e||!e.indexOf(jg))}function Tn(t){return Ug(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function Cn(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?y(e.dataIndex)?f(e.dataIndex,function(e){return t.indexOfRawIndex(e)}):t.indexOfRawIndex(e.dataIndex):null!=e.name?y(e.name)?f(e.name,function(e){return t.indexOfName(e)}):t.indexOfName(e.name):void 0}function Dn(){var t="__\0ec_inner_"+qg+++"_"+Math.random().toFixed(5);return function(e){return e[t]||(e[t]={})}}function An(t,e,n){if(_(e)){var i={};i[e+"Index"]=0,e=i}var r=n&&n.defaultMainType;!r||kn(e,r+"Index")||kn(e,r+"Id")||kn(e,r+"Name")||(e[r+"Index"]=0);var o={};return Zg(e,function(i,r){var i=e[r];if("dataIndex"!==r&&"dataIndexInside"!==r){var a=r.match(/^(\w+)(Index|Id|Name)$/)||[],s=a[1],h=(a[2]||"").toLowerCase();if(!(!s||!h||null==i||"index"===h&&"none"===i||n&&n.includeMainTypes&&l(n.includeMainTypes,s)<0)){var u={mainType:s};"index"===h&&"all"===i||(u[h]=i);var c=t.queryComponents(u);o[s+"Models"]=c,o[s+"Model"]=c[0]}}else o[r]=i}),o}function kn(t,e){return t&&t.hasOwnProperty(e)}function Pn(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function Ln(t,e){return t.getAttribute?t.getAttribute(e):t[e]}function On(t){var e={main:"",sub:""};return t&&(t=t.split($g),e.main=t[0]||"",e.sub=t[1]||""),e}function zn(t){P(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function En(t,e){t.$constructor=t,t.extend=function(t){var e=this,n=function(){t.$constructor?t.$constructor.apply(this,arguments):e.apply(this,arguments)};return o(n.prototype,t),n.extend=this.extend,n.superCall=Rn,n.superApply=Bn,h(n,this),n.superClass=e,n}}function Nn(t){var e=["__\0is_clz",Qg++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function Rn(t,e){var n=A(arguments,2);return this.superClass.prototype[e].apply(t,n)}function Bn(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Vn(t,e){function n(t){var e=i[t.main];return e&&e[Kg]||((e=i[t.main]={})[Kg]=!0),e}e=e||{};var i={};if(t.registerClass=function(t,e){return e&&(zn(e),(e=On(e)).sub?e.sub!==Kg&&(n(e)[e.sub]=t):i[e.main]=t),t},t.getClass=function(t,e,n){var r=i[t];if(r&&r[Kg]&&(r=e?r[e]:null),n&&!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=On(t);var e=[],n=i[t.main];return n&&n[Kg]?d(n,function(t,n){n!==Kg&&e.push(t)}):e.push(n),e},t.hasClass=function(t){return t=On(t),!!i[t.main]},t.getAllClassMainTypes=function(){var t=[];return d(i,function(e,n){t.push(n)}),t},t.hasSubTypes=function(t){t=On(t);var e=i[t.main];return e&&e[Kg]},t.parseClassType=On,e.registerWhenExtend){var r=t.extend;r&&(t.extend=function(e){var n=r.call(this,e);return t.registerClass(n,e.type)})}return t}function Fn(t){return t>-am&&tam||t<-am}function Gn(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function Wn(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Zn(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),h=t-r,u=s*s-3*a*l,c=s*l-9*a*h,d=l*l-3*s*h,f=0;if(Fn(u)&&Fn(c))Fn(s)?o[0]=0:(M=-l/s)>=0&&M<=1&&(o[f++]=M);else{var p=c*c-4*u*d;if(Fn(p)){var g=c/u,m=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[f++]=M),m>=0&&m<=1&&(o[f++]=m)}else if(p>0){var v=om(p),y=u*s+1.5*a*(-c+v),x=u*s+1.5*a*(-c-v);(M=(-s-((y=y<0?-rm(-y,hm):rm(y,hm))+(x=x<0?-rm(-x,hm):rm(x,hm))))/(3*a))>=0&&M<=1&&(o[f++]=M)}else{var _=(2*u*s-3*a*c)/(2*om(u*u*u)),w=Math.acos(_)/3,b=om(u),S=Math.cos(w),M=(-s-2*b*S)/(3*a),m=(-s+b*(S+lm*Math.sin(w)))/(3*a),I=(-s+b*(S-lm*Math.sin(w)))/(3*a);M>=0&&M<=1&&(o[f++]=M),m>=0&&m<=1&&(o[f++]=m),I>=0&&I<=1&&(o[f++]=I)}}return f}function Un(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(Fn(a))Hn(o)&&(c=-s/o)>=0&&c<=1&&(r[l++]=c);else{var h=o*o-4*a*s;if(Fn(h))r[0]=-o/(2*a);else if(h>0){var u=om(h),c=(-o+u)/(2*a),d=(-o-u)/(2*a);c>=0&&c<=1&&(r[l++]=c),d>=0&&d<=1&&(r[l++]=d)}}return l}function Xn(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,h=(s-a)*r+a,u=(l-s)*r+s,c=(u-h)*r+h;o[0]=t,o[1]=a,o[2]=h,o[3]=c,o[4]=c,o[5]=u,o[6]=l,o[7]=i}function jn(t,e,n,i,r,o,a,s,l,h,u){var c,d,f,p,g,m=.005,v=1/0;um[0]=l,um[1]=h;for(var y=0;y<1;y+=.05)cm[0]=Gn(t,n,r,a,y),cm[1]=Gn(e,i,o,s,y),(p=mp(um,cm))=0&&p=0&&c<=1&&(r[l++]=c);else{var h=a*a-4*o*s;if(Fn(h))(c=-a/(2*o))>=0&&c<=1&&(r[l++]=c);else if(h>0){var u=om(h),c=(-a+u)/(2*o),d=(-a-u)/(2*o);c>=0&&c<=1&&(r[l++]=c),d>=0&&d<=1&&(r[l++]=d)}}return l}function Kn(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Qn(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function Jn(t,e,n,i,r,o,a,s,l){var h,u=.005,c=1/0;um[0]=a,um[1]=s;for(var d=0;d<1;d+=.05)cm[0]=Yn(t,n,r,d),cm[1]=Yn(e,i,o,d),(m=mp(um,cm))=0&&m1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(ym[0]=mm(r)*n+t,ym[1]=gm(r)*i+e,xm[0]=mm(o)*n+t,xm[1]=gm(o)*i+e,h(s,ym,xm),u(l,ym,xm),(r%=vm)<0&&(r+=vm),(o%=vm)<0&&(o+=vm),r>o&&!a?o+=vm:rr&&(_m[0]=mm(f)*n+t,_m[1]=gm(f)*i+e,h(s,_m,s),u(l,_m,l))}function oi(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0,h=t;if(a>e+s&&a>i+s||at+s&&o>n+s||oe+c&&u>i+c&&u>o+c&&u>s+c||ut+c&&h>n+c&&h>r+c&&h>a+c||he+h&&l>i+h&&l>o+h||lt+h&&s>n+h&&s>r+h||sn||u+hr&&(r+=Rm);var d=Math.atan2(l,s);return d<0&&(d+=Rm),d>=i&&d<=r||d+Rm>=i&&d+Rm<=r}function ui(t,e,n,i,r,o){if(o>e&&o>i||or?a:0}function ci(t,e){return Math.abs(t-e)e&&h>i&&h>o&&h>s||h1&&di(),c=Gn(e,i,o,s,Gm[0]),p>1&&(d=Gn(e,i,o,s,Gm[1]))),2==p?me&&s>i&&s>o||s=0&&h<=1){for(var u=0,c=Yn(e,i,o,h),d=0;dn||s<-n)return 0;h=Math.sqrt(n*n-s*s);Hm[0]=-h,Hm[1]=h;var l=Math.abs(i-r);if(l<1e-4)return 0;if(l%Vm<1e-4){i=0,r=Vm;p=o?1:-1;return a>=Hm[0]+t&&a<=Hm[1]+t?p:0}if(o){var h=i;i=li(r),r=li(h)}else i=li(i),r=li(r);i>r&&(r+=Vm);for(var u=0,c=0;c<2;c++){var d=Hm[c];if(d+t>a){var f=Math.atan2(s,d),p=o?1:-1;f<0&&(f=Vm+f),(f>=i&&f<=r||f+Vm>=i&&f+Vm<=r)&&(f>Math.PI/2&&f<1.5*Math.PI&&(p=-p),u+=p)}}return u}function mi(t,e,n,i,r){for(var o=0,a=0,s=0,l=0,h=0,u=0;u1&&(n||(o+=ui(a,s,l,h,i,r))),1==u&&(l=a=t[u],h=s=t[u+1]),c){case Bm.M:a=l=t[u++],s=h=t[u++];break;case Bm.L:if(n){if(oi(a,s,t[u],t[u+1],e,i,r))return!0}else o+=ui(a,s,t[u],t[u+1],i,r)||0;a=t[u++],s=t[u++];break;case Bm.C:if(n){if(ai(a,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],e,i,r))return!0}else o+=fi(a,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],i,r)||0;a=t[u++],s=t[u++];break;case Bm.Q:if(n){if(si(a,s,t[u++],t[u++],t[u],t[u+1],e,i,r))return!0}else o+=pi(a,s,t[u++],t[u++],t[u],t[u+1],i,r)||0;a=t[u++],s=t[u++];break;case Bm.A:var d=t[u++],f=t[u++],p=t[u++],g=t[u++],m=t[u++],v=t[u++],y=(t[u++],1-t[u++]),x=Math.cos(m)*p+d,_=Math.sin(m)*g+f;u>1?o+=ui(a,s,x,_,i,r):(l=x,h=_);var w=(i-d)*g/p+d;if(n){if(hi(d,f,g,m,m+v,y,e,w,r))return!0}else o+=gi(d,f,g,m,m+v,y,w,r);a=Math.cos(m+v)*p+d,s=Math.sin(m+v)*g+f;break;case Bm.R:l=a=t[u++],h=s=t[u++];var x=l+t[u++],_=h+t[u++];if(n){if(oi(l,h,x,h,e,i,r)||oi(x,h,x,_,e,i,r)||oi(x,_,l,_,e,i,r)||oi(l,_,l,h,e,i,r))return!0}else o+=ui(x,h,x,_,i,r),o+=ui(l,_,l,h,i,r);break;case Bm.Z:if(n){if(oi(a,s,l,h,e,i,r))return!0}else o+=ui(a,s,l,h,i,r);a=l,s=h}}return n||ci(s,h)||(o+=ui(a,s,l,h,i,r)||0),0!==o}function vi(t,e,n){return mi(t,0,!1,e,n)}function yi(t,e,n,i){return mi(t,e,!0,n,i)}function xi(t){Xe.call(this,t),this.path=null}function _i(t,e,n,i,r,o,a,s,l,h,u){var c=l*(ev/180),d=tv(c)*(t-n)/2+Jm(c)*(e-i)/2,f=-1*Jm(c)*(t-n)/2+tv(c)*(e-i)/2,p=d*d/(a*a)+f*f/(s*s);p>1&&(a*=Qm(p),s*=Qm(p));var g=(r===o?-1:1)*Qm((a*a*(s*s)-a*a*(f*f)-s*s*(d*d))/(a*a*(f*f)+s*s*(d*d)))||0,m=g*a*f/s,v=g*-s*d/a,y=(t+n)/2+tv(c)*m-Jm(c)*v,x=(e+i)/2+Jm(c)*m+tv(c)*v,_=rv([1,0],[(d-m)/a,(f-v)/s]),w=[(d-m)/a,(f-v)/s],b=[(-1*d-m)/a,(-1*f-v)/s],S=rv(w,b);iv(w,b)<=-1&&(S=ev),iv(w,b)>=1&&(S=0),0===o&&S>0&&(S-=2*ev),1===o&&S<0&&(S+=2*ev),u.addData(h,y,x,a,s,_,S,c,o)}function wi(t){if(!t)return[];var e,n=t.replace(/-/g," -").replace(/ /g," ").replace(/ /g,",").replace(/,,/g,",");for(e=0;e0&&""===f[0]&&f.shift();for(var p=0;p=2){if(r&&"spline"!==r){var o=dv(i,r,n,e.smoothConstraint);t.moveTo(i[0][0],i[0][1]);for(var a=i.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],h=o[2*s+1],u=i[(s+1)%a];t.bezierCurveTo(l[0],l[1],h[0],h[1],u[0],u[1])}}else{"spline"===r&&(i=cv(i,n)),t.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;s=0)&&(i={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=n.autoColor,null==t.textStrokeWidth&&(t.textStrokeWidth=2))),i}function ir(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth)}function rr(t,e){var n=e||e.getModel("textStyle");return L([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "))}function or(t,e,n,i,r,o){if("function"==typeof r&&(o=r,r=null),i&&i.isAnimationEnabled()){var a=t?"Update":"",s=i.getShallow("animationDuration"+a),l=i.getShallow("animationEasing"+a),h=i.getShallow("animationDelay"+a);"function"==typeof h&&(h=h(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof s&&(s=s(r)),s>0?e.animateTo(n,s,h||0,l,o,!!o):(e.stopAnimation(),e.attr(n),o&&o())}else e.stopAnimation(),e.attr(n),o&&o()}function ar(t,e,n,i,r){or(!0,t,e,n,i,r)}function sr(t,e,n,i,r){or(!1,t,e,n,i,r)}function lr(t,e){for(var n=ot([]);t&&t!==e;)st(n,t.getLocalTransform(),n),t=t.parent;return n}function hr(t,e,n){return e&&!c(e)&&(e=Cp.getLocalTransform(e)),n&&(e=ct([],e)),$([],t,e)}function ur(t,e,n){var i=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]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=hr(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function cr(t,e,n,i){function r(t){var e={position:F(t.position),rotation:t.rotation};return t.shape&&(e.shape=o({},t.shape)),e}if(t&&e){var a=function(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var i=r(t);t.attr(r(e)),ar(t,i,n,t.dataIndex)}}})}}function dr(t,e){return f(t,function(t){var n=t[0];n=Tv(n,e.x),n=Cv(n,e.x+e.width);var i=t[1];return i=Tv(i,e.y),i=Cv(i,e.y+e.height),[n,i]})}function fr(t,e,n){var i=(e=o({rectHover:!0},e)).style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(i.image=t.slice(8),a(i,n),new je(e)):ki(t.replace("path://",""),e,n,"center")}function pr(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}function gr(t,e,n){for(var i=0;i0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function _r(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?yr(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function wr(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function br(t){return t.sort(function(t,e){return t-e}),t}function Sr(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Mr(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Ir(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Tr(t,e,n){if(!t[e])return 0;var i=p(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===i)return 0;for(var r=Math.pow(10,n),o=f(t,function(t){return(isNaN(t)?0:t)/i*r*100}),a=100*r,s=f(o,function(t){return Math.floor(t)}),l=p(s,function(t,e){return t+e},0),h=f(o,function(t,e){return t-s[e]});lu&&(u=h[d],c=d);++s[c],h[c]=0,++l}return s[e]/r}function Cr(t){var e=2*Math.PI;return(t%e+e)%e}function Dr(t){return t>-Rv&&t=-20?+t.toFixed(i<0?-i:0):t}function Or(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function zr(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 Er(t){return String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Nr(t,e,n){y(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o':'':""}function Br(t,e){return t+="","0000".substr(0,e-t.length)+t}function Vr(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Ar(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),h=i["get"+r+"Minutes"](),u=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",Br(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100).replace("dd",Br(s,2)).replace("d",s).replace("hh",Br(l,2)).replace("h",l).replace("mm",Br(h,2)).replace("m",h).replace("ss",Br(u,2)).replace("s",u).replace("SSS",Br(c,3))}function Fr(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function Hr(t,e,n,i,r){var o=0,a=0;null==i&&(i=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 m=f.width+(g?-g.x+f.x:0);(u=o+m)>i||l.newline?(o=0,u=m,a+=s+n,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(g?-g.y+f.y:0);(c=a+v)>r||l.newline?(o+=s+n,a=0,c=v,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=o,d[1]=a,"horizontal"===t?o=u+n:a=c+n)})}function Gr(t,e,n){n=Fv(n||0);var i=e.width,r=e.height,o=_r(t.left,i),a=_r(t.top,r),s=_r(t.right,i),l=_r(t.bottom,r),h=_r(t.width,i),u=_r(t.height,r),c=n[2]+n[0],d=n[1]+n[3],f=t.aspect;switch(isNaN(h)&&(h=i-s-d-o),isNaN(u)&&(u=r-l-c-a),null!=f&&(isNaN(h)&&isNaN(u)&&(f>i/r?h=.8*i:u=.8*r),isNaN(h)&&(h=f*u),isNaN(u)&&(u=h/f)),isNaN(o)&&(o=i-s-h-d),isNaN(a)&&(a=r-l-u-c),t.left||t.right){case"center":o=i/2-h/2-n[3];break;case"right":o=i-h-d}switch(t.top||t.bottom){case"middle":case"center":a=r/2-u/2-n[0];break;case"bottom":a=r-u-c}o=o||0,a=a||0,isNaN(h)&&(h=i-d-o-(s||0)),isNaN(u)&&(u=r-c-a-(l||0));var p=new Xt(o+n[3],a+n[0],h,u);return p.margin=n,p}function Wr(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],s=!r||!r.hv||r.hv[1],l=r&&r.boundingMode||"all";if(o||s){var h;if("raw"===l)h="group"===t.type?new Xt(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(h=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(h=h.clone()).applyTransform(u)}e=Gr(a({width:h.width,height:h.height},e),n,i);var c=t.position,d=o?e.x-h.x:0,f=s?e.y-h.y:0;t.attr("position","raw"===l?[d,f]:[c[0]+d,c[1]+f])}}function Zr(t,e,n){function i(n,i){var a={},l=0,h={},u=0;if(Xv(n,function(e){h[e]=t[e]}),Xv(n,function(t){r(e,t)&&(a[t]=h[t]=e[t]),o(a,t)&&l++,o(h,t)&&u++}),s[i])return o(e,n[1])?h[n[2]]=null:o(e,n[2])&&(h[n[1]]=null),h;if(2!==u&&l){if(l>=2)return a;for(var c=0;ce)return t[i];return t[n-1]}function Yr(t){var e=t.get("coordinateSystem"),n={coordSysName:e,coordSysDims:[],axisMap:N(),categoryAxisMap:N()},i=iy[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}function qr(t){return"category"===t.get("type")}function $r(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===sy?{}:[]),this.sourceFormat=t.sourceFormat||ly,this.seriesLayoutBy=t.seriesLayoutBy||uy,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&N(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function Kr(t){var e=t.option.source,n=ly;if(S(e))n=hy;else if(y(e))for(var i=0,r=e.length;i=e:"max"===n?t<=e:t===e}function So(t,e){return t.join(",")===e.join(",")}function Mo(t,e){vy(e=e||{},function(e,n){if(null!=e){var i=t[n];if(Qv.hasClass(n)){e=xn(e);var r=Sn(i=xn(i),e);t[n]=xy(r,function(t){return t.option&&t.exist?_y(t.exist,t.option,!0):t.exist||t.option})}else t[n]=_y(i,e,!0)}})}function Io(t){var e=t&&t.itemStyle;if(e)for(var n=0,r=My.length;n=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var m=g.data.getByRawIndex(g.stackResultDimension,d);if(u>=0&&m>0||u<=0&&m<0){u+=m,f=m;break}}}return i[0]=u,i[1]=f,i});a.hostModel.setData(l),e.data=l})}function Ro(t,e){$r.isInstance(t)||(t=$r.seriesDataToSource(t)),this._source=t;var n=this._data=t.data,i=t.sourceFormat;i===hy&&(this._offset=0,this._dimSize=e,this._data=n),o(this,ky[i===oy?i+"_"+t.seriesLayoutBy:i])}function Bo(){return this._data.length}function Vo(t){return this._data[t]}function Fo(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function ta(t,e){d(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,v(ea,e))})}function ea(t){var e=na(t);e&&e.setOutputEnd(this.count())}function na(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}function ia(){this.group=new Jp,this.uid=vr("viewChart"),this.renderTask=Xo({plan:aa,reset:sa}),this.renderTask.context={view:this}}function ra(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var n=0;n=0?i():c=setTimeout(i,-o),h=r};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function ha(t,e,n,i){var r=t[e];if(r){var o=r[Uy]||r,a=r[jy];if(r[Xy]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=la(o,n,"debounce"===i))[Uy]=o,r[jy]=i,r[Xy]=n}return r}}function ua(t,e){var n=t[e];n&&n[Uy]&&(t[e]=n[Uy])}function ca(t,e,n,i){this.ecInstance=t,this.api=e,this.unfinished,this._dataProcessorHandlers=n.slice(),this._visualHandlers=i.slice(),this._stageTaskMap=N()}function da(t,e,n,i,r){function o(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}r=r||{};var a;d(e,function(e,s){if(!r.visualType||r.visualType===e.visualType){var l=t._stageTaskMap.get(e.uid),h=l.seriesTaskMap,u=l.overallTask;if(u){var c,d=u.agentStubMap;d.each(function(t){o(r,t)&&(t.dirty(),c=!0)}),c&&u.dirty(),Jy(u,i);var f=t.getPerformArgs(u,r.block);d.each(function(t){t.perform(f)}),a|=u.perform(f)}else h&&h.each(function(s,l){o(r,s)&&s.dirty();var h=t.getPerformArgs(s,r.block);h.skip=!e.performRawSeries&&n.isSeriesFiltered(s.context.model),Jy(s,i),a|=s.perform(h)})}}),t.unfinished|=a}function fa(t,e,n,i,r){function o(n){var o=n.uid,s=a.get(o)||a.set(o,Xo({plan:xa,reset:_a,count:ba}));s.context={model:n,ecModel:i,api:r,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},Sa(t,n,s)}var a=n.seriesTaskMap||(n.seriesTaskMap=N()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?i.eachRawSeries(o):s?i.eachRawSeriesByType(s,o):l&&l(i,r).each(o);var h=t._pipelineMap;a.each(function(t,e){h.get(e)||(t.dispose(),a.removeKey(e))})}function pa(t,e,n,i,r){function o(e){var n=e.uid,i=s.get(n)||s.set(n,Xo({reset:ma,onDirty:ya}));i.context={model:e,overallProgress:u,isOverallFilter:c},i.agent=a,i.__block=u,Sa(t,e,i)}var a=n.overallTask=n.overallTask||Xo({reset:ga});a.context={ecModel:i,api:r,overallReset:e.overallReset,scheduler:t};var s=a.agentStubMap=a.agentStubMap||N(),l=e.seriesType,h=e.getTargetSeries,u=!0,c=e.isOverallFilter;l?i.eachRawSeriesByType(l,o):h?h(i,r).each(o):(u=!1,d(i.getSeries(),o));var f=t._pipelineMap;s.each(function(t,e){f.get(e)||(t.dispose(),s.removeKey(e))})}function ga(t){t.overallReset(t.ecModel,t.api,t.payload)}function ma(t,e){return t.overallProgress&&va}function va(){this.agent.dirty(),this.getDownstream().dirty()}function ya(){this.agent&&this.agent.dirty()}function xa(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function _a(t){if(t.useClearVisual&&t.data.clearAllVisual(),(t.resetDefines=xn(t.reset(t.model,t.ecModel,t.api,t.payload))).length)return wa}function wa(t,e){for(var n=e.data,i=e.resetDefines,r=0;re.get("hoverLayerThreshold")&&!Kf.node&&n.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function Za(t,e){var n=t.get("blendMode")||null;e.group.traverse(function(t){t.isGroup||t.style.blend!==n&&t.setStyle("blend",n),t.eachPendingDisplayable&&t.eachPendingDisplayable(function(t){t.setStyle("blend",n)})})}function Ua(t,e){var n=t.get("z"),i=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=i&&(t.zlevel=i))})}function Xa(t){var e=t._coordSysMgr;return o(new vo(t),{getCoordinateSystems:m(e.getCoordinateSystems,e),getComponentByElement:function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}}})}function ja(t){function e(t,e){for(var i=0;i65535?Ux:Xx}function gs(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function ms(t,e){d(jx.concat(e.__wrappedMethods||[]),function(n){e.hasOwnProperty(n)&&(t[n]=e[n])}),t.__wrappedMethods=e.__wrappedMethods}function vs(t){var e=t._invertedIndicesMap;d(e,function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new Ux(r.categories.length);for(o=0;o=0?this._indices[t]:-1}function _s(t,e){var n=t._idList[e];return null==n&&(n=t._getIdFromStore(e)),null==n&&(n=Wx+e),n}function ws(t){return y(t)||(t=[t]),t}function bs(t,e){var n=t.dimensions,i=new Yx(f(n,t.getDimensionInfo,t),t.hostModel);ms(i,t);for(var r=i._storage={},a=t._storage,s=o({},t._rawExtent),h=0;h=0?(r[u]=Ss(a[u]),s[u]=Ms()):r[u]=a[u])}return i}function Ss(t){for(var e=new Array(t.length),n=0;ni&&(a=r.interval=i);var s=r.intervalPrecision=Bs(a);return Fs(r.niceTickExtent=[e_(Math.ceil(t[0]/a)*a,s),e_(Math.floor(t[1]/a)*a,s)],t),r}function Bs(t){return Mr(t)+2}function Vs(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Fs(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Vs(t,0,e),Vs(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Hs(t,e,n,i){var r=[];if(!t)return r;e[0]1e4)return[];return e[1]>(r.length?r[r.length-1]:n[1])&&r.push(e[1]),r}function Gs(t){return t.get("stack")||r_+t.seriesIndex}function Ws(t){return t.dim+t.index}function Zs(t,e){return Us(f(t,function(t){var e=t.getData(),n=t.coordinateSystem.getBaseAxis(),i=n.getExtent(),r="category"===n.type?n.getBandWidth():Math.abs(i[1]-i[0])/e.count();return{bandWidth:r,barWidth:_r(t.get("barWidth"),r),barMaxWidth:_r(t.get("barMaxWidth"),r),barGap:t.get("barGap"),barCategoryGap:t.get("barCategoryGap"),axisKey:Ws(n),stackId:Gs(t)}}),e)}function Us(t,e){var n={};d(t,function(t,e){var i=t.axisKey,r=t.bandWidth,o=n[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},a=o.stacks;n[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var h=t.barMaxWidth;h&&(a[s].maxWidth=h);var u=t.barGap;null!=u&&(o.gap=u);var c=t.barCategoryGap;null!=c&&(o.categoryGap=c)});var i={};return d(n,function(t,e){i[e]={};var n=t.stacks,r=t.bandWidth,o=_r(t.categoryGap,r),a=_r(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,h=(s-o)/(l+(l-1)*a);h=Math.max(h,0),d(n,function(t,e){var n=t.maxWidth;n&&n0&&s>0&&!l&&(a=0),a<0&&s<0&&!h&&(s=0));var c=e.ecModel;if(c&&"time"===o){var d,f=[];if(c.eachSeriesByType("bar",function(t){t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type&&(f.push(t),d|=t.getBaseAxis()===e.axis)}),d){var p=Ys(a,s,e,f);a=p.min,s=p.max}}return[a,s]}function Ys(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=Zs(i)[n.axis.dim+n.axis.index];if(void 0===a)return{min:t,max:e};var s=1/0;d(a,function(t){s=Math.min(t.offset,s)});var l=-1/0;d(a,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=u/(1-(s+l)/o)-u;return e+=c*(l/h),t-=c*(s/h),{min:t,max:e}}function qs(t,e){var n=js(t,e),i=null!=e.getMin(),r=null!=e.getMax(),o=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var a=t.type;t.setExtent(n[0],n[1]),t.niceExtent({splitNumber:o,fixMin:i,fixMax:r,minInterval:"interval"===a||"time"===a?e.get("minInterval"):null,maxInterval:"interval"===a||"time"===a?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function $s(t,e){if(e=e||t.get("type"))switch(e){case"category":return new t_(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new i_;default:return(Os.getClass(e)||i_).create(t)}}function Ks(t,e,n,i,r){var o,a=0,s=0,l=(i-r)/180*Math.PI,h=1;e.length>40&&(h=Math.floor(e.length/40));for(var u=0;u1?h:(a+1)*h-1}function Qs(t,e){var n=t.scale,i=n.getTicksLabels(),r=n.getTicks();return"string"==typeof e?(e=function(t){return function(e){return t.replace("{value}",null!=e?e:"")}}(e),f(i,e)):"function"==typeof e?f(r,function(n,i){return e(Js(t,n),i)},this):i}function Js(t,e){return"category"===t.type?t.scale.getLabel(e):e}function tl(t,e){if("image"!==this.type){var n=this.style,i=this.shape;i&&"line"===i.symbolType?n.stroke=t:this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff"):(n.fill&&(n.fill=t),n.stroke&&(n.stroke=t)),this.dirty(!1)}}function el(t,e,n,i,r,o,a){var s=0===t.indexOf("empty");s&&(t=t.substr(5,1).toLowerCase()+t.substr(6));var l;return l=0===t.indexOf("image://")?Pi(t.slice(8),new Xt(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?ki(t.slice(7),{},new Xt(e,n,i,r),a?"center":"cover"):new C_({shape:{symbolType:t,x:e,y:n,width:i,height:r}}),l.__isEmptyBrush=s,l.setColor=tl,l.setColor(o),l}function nl(t,e){return Math.abs(t-e)>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function sl(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function ll(t,e){var n=t.mapDimension("defaultedLabel",!0),i=n.length;if(1===i)return Zo(t,e,n[0]);if(i){for(var r=[],o=0;o0?n=i[0]:i[1]<0&&(n=i[1]),n}function xl(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}function _l(t,e){var n=[];return e.diff(t).add(function(t){n.push({cmd:"+",idx:t})}).update(function(t,e){n.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){n.push({cmd:"-",idx:t})}).execute(),n}function wl(t){return isNaN(t[0])||isNaN(t[1])}function bl(t,e,n,i,r,o,a,s,l,h,u){return null==h?Sl(e,"x")?Ml(t,e,n,i,r,o,a,s,l,"x",u):Sl(e,"y")?Ml(t,e,n,i,r,o,a,s,l,"y",u):Il.apply(this,arguments):"none"!==h&&Sl(e,h)?Ml.apply(this,arguments):Il.apply(this,arguments)}function Sl(t,e){if(t.length<=1)return!0;for(var n="x"===e?0:1,i=t[0][n],r=0,o=1;o=0!=r>=0)return!1;isNaN(a)||0===a||(r=a,i=t[o][n])}return!0}function Ml(t,e,n,i,r,o,a,s,l,h,u){for(var c=0,d=n,f=0;f=r||d<0)break;if(wl(p)){if(u){d+=o;continue}break}if(d===n)t[o>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],m="y"===h?1:0,v=(p[m]-g[m])*l;j_(q_,g),q_[m]=g[m]+v,j_($_,p),$_[m]=p[m]-v,t.bezierCurveTo(q_[0],q_[1],$_[0],$_[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=o}return f}function Il(t,e,n,i,r,o,a,s,l,h,u){for(var c=0,d=n,f=0;f=r||d<0)break;if(wl(p)){if(u){d+=o;continue}break}if(d===n)t[o>0?"moveTo":"lineTo"](p[0],p[1]),j_(q_,p);else if(l>0){var g=d+o,m=e[g];if(u)for(;m&&wl(e[g]);)m=e[g+=o];var v=.5,y=e[c];if(!(m=e[g])||wl(m))j_($_,p);else{wl(m)&&!u&&(m=p),W(Y_,m,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]-m[w])}else x=gp(p,y),_=gp(p,m);X_($_,p,Y_,-l*(1-(v=_/(_+x))))}Z_(q_,q_,s),U_(q_,q_,a),Z_($_,$_,s),U_($_,$_,a),t.bezierCurveTo(q_[0],q_[1],$_[0],$_[1],p[0],p[1]),X_(q_,p,Y_,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=o}return f}function Tl(t,e){var n=[1/0,1/0],i=[-1/0,-1/0];if(e)for(var r=0;ri[0]&&(i[0]=o[0]),o[1]>i[1]&&(i[1]=o[1])}return{min:e?n:i,max:e?i:n}}function Cl(t,e){if(t.length===e.length){for(var n=0;ne[0]?1:-1;e[0]+=i*n,e[1]-=i*n}return e}function kl(t,e,n){if(!n.valueDim)return[];for(var i=[],r=0,o=e.count();r=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var h=e.getAxis(i),u=f(r.stops,function(t){return{coord:h.toGlobalCoord(h.dataToCoord(t.value)),color:t.color}}),c=u.length,p=r.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),p.reverse());var g=u[0].coord-10,m=u[c-1].coord+10,v=m-g;if(v<.001)return"transparent";d(u,function(t){t.offset=(t.coord-g)/v}),u.push({offset:c?u[c-1].offset:.5,color:p[1]||"transparent"}),u.unshift({offset:c?u[0].offset:.5,color:p[0]||"transparent"});var y=new bv(0,0,0,0,u,!0);return y[i]=g,y[i+"2"]=m,y}}}function Nl(t){return this._axes[t]}function Rl(t){iw.call(this,t)}function Bl(t,e){return e.type||(e.data?"category":"value")}function Vl(t,e,n){return t.getCoordSysModel()===e}function Fl(t,e){var n=e*Math.PI/180,i=t.plain(),r=i.width,o=i.height,a=r*Math.cos(n)+o*Math.sin(n),s=r*Math.sin(n)+o*Math.cos(n);return new Xt(i.x,i.y,a,s)}function Hl(t){var e,n=t.model,i=n.get("axisLabel.show")?n.getFormattedLabels():[],r=n.getModel("axisLabel"),o=1,a=i.length;a>40&&(o=Math.ceil(a/40));for(var s=0;si[1],l="start"===e&&!s||"start"!==e&&s;return Dr(a-mw/2)?(o=l?"bottom":"top",r="center"):Dr(a-1.5*mw)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*mw&&a>mw/2?l?"left":"right":l?"right":"left"),{rotation:a,textAlign:r,textVerticalAlign:o}}function $l(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function Kl(t,e,n){var i=t.get("axisLabel.showMinLabel"),r=t.get("axisLabel.showMaxLabel");e=e||[],n=n||[];var o=e[0],a=e[1],s=e[e.length-1],l=e[e.length-2],h=n[0],u=n[1],c=n[n.length-1],d=n[n.length-2];!1===i?(Ql(o),Ql(h)):Jl(o,a)&&(i?(Ql(a),Ql(u)):(Ql(o),Ql(h))),!1===r?(Ql(s),Ql(c)):Jl(l,s)&&(r?(Ql(l),Ql(d)):(Ql(s),Ql(c)))}function Ql(t){t&&(t.ignore=!0)}function Jl(t,e,n){var i=t&&t.getBoundingRect().clone(),r=e&&e.getBoundingRect().clone();if(i&&r){var o=ot([]);return ht(o,o,-t.rotation),i.applyTransform(st([],o,t.getLocalTransform())),r.applyTransform(st([],o,e.getLocalTransform())),i.intersect(r)}}function th(t){return"middle"===t||"center"===t}function eh(t,e,n){var i=e.axis;if(e.get("axisTick.show")&&!i.scale.isBlank()){for(var r=e.getModel("axisTick"),o=r.getModel("lineStyle"),s=r.get("length"),l=ww(r,n.labelInterval),h=i.getTicksCoords(r.get("alignWithLabel")),u=i.scale.getTicks(),c=e.get("axisLabel.showMinLabel"),d=e.get("axisLabel.showMaxLabel"),f=[],p=[],g=t._transform,m=[],v=h.length,y=0;y=0||t===e}function hh(t){var e=uh(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=dh(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a0?"bottom":"top":r.width>0?"left":"right";l||vh(t.style,d,i,h,o,n,p),qi(t,d)}function bh(t,e){var n=t.get(Ow)||0;return Math.min(n,Math.abs(e.width),Math.abs(e.height))}function Sh(t,e,n,i){var r=e.getData(),o=this.dataIndex,a=r.getName(o),s=e.get("selectedOffset");i.dispatchAction({type:"pieToggleSelect",from:t,name:a,seriesId:e.id}),r.each(function(t){Mh(r.getItemGraphicEl(t),r.getItemLayout(t),e.isSelected(r.getName(t)),s,n)})}function Mh(t,e,n,i,r){var o=(e.startAngle+e.endAngle)/2,a=Math.cos(o),s=Math.sin(o),l=n?i:0,h=[a*l,s*l];r?t.animate().when(200,{position:h}).start("bounceOut"):t.attr("position",h)}function Ih(t,e){function n(){o.ignore=o.hoverIgnore,a.ignore=a.hoverIgnore}function i(){o.ignore=o.normalIgnore,a.ignore=a.normalIgnore}Jp.call(this);var r=new hv({z2:2}),o=new pv,a=new ov;this.add(r),this.add(o),this.add(a),this.updateData(t,e,!0),this.on("emphasis",n).on("normal",i).on("mouseover",n).on("mouseout",i)}function Th(t,e,n,i,r,o,a){function s(e,n){for(var i=e;i>=0&&(t[i].y-=n,!(i>0&&t[i].y>t[i-1].y+t[i-1].height));i--);}function l(t,e,n,i,r,o){for(var a=e?Number.MAX_VALUE:0,s=0,l=t.length;s=a&&(d=a-10),!e&&d<=a&&(d=a+10),t[s].x=n+d*o,a=d}}t.sort(function(t,e){return t.y-e.y});for(var h,u=0,c=t.length,d=[],f=[],p=0;pe&&o+1t[o].y+t[o].height)return void s(o,i/2);s(n-1,i/2)}(p,c,-h),u=t[p].y+t[p].height;a-u<0&&s(c-1,u-a);for(p=0;p=n?f.push(t[p]):d.push(t[p]);l(d,!1,e,n,i,r),l(f,!0,e,n,i,r)}function Ch(t,e,n,i,r,o){for(var a=[],s=[],l=0;l=0&&s<0)&&(a=p,s=f,r=h,o.length=0),jw(u,function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:o,snapToValue:r}}function Bh(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function Vh(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,h=fh(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:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:r.slice()})}}function Fh(t,e,n){var i=n.axesInfo=[];jw(e,function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})})}function Hh(t,e,n,i){if(!Uh(e)&&t.list.length){var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}else i({type:"hideTip"})}function Gh(t,e,n){var i=n.getZr(),r=qw(i).axisPointerLastHighlights||{},o=qw(i).axisPointerLastHighlights={};jw(t,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&jw(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;o[e]=t})});var a=[],s=[];d(r,function(t,e){!o[e]&&s.push(t)}),d(o,function(t,e){!r[e]&&a.push(t)}),s.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,batch:s}),a.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,batch:a})}function Wh(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}function Zh(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function Uh(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function Xh(t,e,n){if(!Kf.node){var i=e.getZr();$w(i).records||($w(i).records={}),jh(i,e),($w(i).records[t]||($w(i).records[t]={})).handler=n}}function jh(t,e){function n(n,i){t.on(n,function(n){var r=Kh(e);Kw($w(t).records,function(t){t&&i(t,n,r.dispatchAction)}),Yh(r.pendings,e)})}$w(t).initialized||($w(t).initialized=!0,n("click",v($h,"click")),n("mousemove",v($h,"mousemove")),n("globalout",qh))}function Yh(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]),n&&(n.dispatchAction=null,e.dispatchAction(n))}function qh(t,e,n){t.handler("leave",null,n)}function $h(t,e,n,i){e.handler(t,n,i)}function Kh(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}function Qh(t,e){if(!Kf.node){var n=e.getZr();($w(n).records||{})[t]&&($w(n).records[t]=null)}}function Jh(){}function tu(t,e,n,i){eu(Jw(n).lastProp,i)||(Jw(n).lastProp=i,e?ar(n,i,t):(n.stopAnimation(),n.attr(i)))}function eu(t,e){if(w(t)&&w(e)){var n=!0;return d(e,function(e,i){n=n&&eu(t[i],e)}),!!n}return t===e}function nu(t,e){t[e.get("label.show")?"show":"hide"]()}function iu(t){return{position:t.position.slice(),rotation:t.rotation||0}}function ru(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)})}function ou(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function au(t,e,n,i,r){var o=lu(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get("label.precision"),formatter:n.get("label.formatter")}),a=n.getModel("label"),s=Fv(a.get("padding")||0),l=a.getFont(),h=ce(o,l),u=r.position,c=h.width+s[1]+s[3],d=h.height+s[0]+s[2],f=r.align;"right"===f&&(u[0]-=c),"center"===f&&(u[0]-=c/2);var p=r.verticalAlign;"bottom"===p&&(u[1]-=d),"middle"===p&&(u[1]-=d/2),su(u,c,d,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:c,height:d,r:a.get("borderRadius")},position:u.slice(),style:{text:o,textFont:l,textFill:a.getTextColor(),textPosition:"inside",fill:g,stroke:a.get("borderColor")||"transparent",lineWidth:a.get("borderWidth")||0,shadowBlur:a.get("shadowBlur"),shadowColor:a.get("shadowColor"),shadowOffsetX:a.get("shadowOffsetX"),shadowOffsetY:a.get("shadowOffsetY")},z2:10}}function su(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function lu(t,e,n,i,r){var o=e.scale.getLabel(t,{precision:r.precision}),a=r.formatter;if(a){var s={value:Js(e,t),seriesData:[]};d(i,function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)}),_(a)?o=a.replace("{value}",o):x(a)&&(o=a(s))}return o}function hu(t,e,n){var i=rt();return ht(i,i,n.rotation),lt(i,i,n.position),hr([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function uu(t,e,n,i,r,o){var a=vw.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get("label.margin"),au(e,i,r,o,{position:hu(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function cu(t,e,n){return n=n||0,{x1:t[n],y1:t[1-n],x2:e[n],y2:e[1-n]}}function du(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}}function fu(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}function pu(t){return"x"===t.dim?0:1}function gu(t){var e="left "+t+"s cubic-bezier(0.23, 1, 0.32, 1),top "+t+"s cubic-bezier(0.23, 1, 0.32, 1)";return f(ab,function(t){return t+"transition:"+e}).join(";")}function mu(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();return i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px"),rb(["decoration","align"],function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)}),e.join(";")}function vu(t){var e=[],n=t.get("transitionDuration"),i=t.get("backgroundColor"),r=t.getModel("textStyle"),o=t.get("padding");return n&&e.push(gu(n)),i&&(Kf.canvasSupported?e.push("background-Color:"+i):(e.push("background-Color:#"+Dt(i)),e.push("filter:alpha(opacity=70)"))),rb(["width","color","radius"],function(n){var i="border-"+n,r=ob(i),o=t.get(r);null!=o&&e.push(i+":"+o+("color"===n?"":"px"))}),e.push(mu(r)),null!=o&&e.push("padding:"+Fv(o).join("px ")+"px"),e.join(";")+";"}function yu(t,e){if(Kf.wxa)return null;var n=document.createElement("div"),i=this._zr=e.getZr();this.el=n,this._x=e.getWidth()/2,this._y=e.getHeight()/2,t.appendChild(n),this._container=t,this._show=!1,this._hideTimeout;var r=this;n.onmouseenter=function(){r._enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},n.onmousemove=function(e){if(e=e||window.event,!r._enterable){var n=i.handler;rn(t,e,!0),n.dispatch("mousemove",e)}},n.onmouseleave=function(){r._enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}function xu(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(pr.isInstance(n)&&(n=n.get("tooltip",!0)),"string"==typeof n&&(n={formatter:n}),e=new pr(n,e,e.ecModel))}return e}function _u(t,e){return t.dispatchAction||m(e.dispatchAction,e)}function wu(t,e,n,i,r,o,a){var s=Su(n),l=s.width,h=s.height;return null!=o&&(t+l+o>i?t-=l+o:t+=o),null!=a&&(e+h+a>r?e-=h+a:e+=a),[t,e]}function bu(t,e,n,i,r){var o=Su(n),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function Su(t){var e=t.clientWidth,n=t.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var i=document.defaultView.getComputedStyle(t);i&&(e+=parseInt(i.paddingLeft,10)+parseInt(i.paddingRight,10)+parseInt(i.borderLeftWidth,10)+parseInt(i.borderRightWidth,10),n+=parseInt(i.paddingTop,10)+parseInt(i.paddingBottom,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10))}return{width:e,height:n}}function Mu(t,e,n){var i=n[0],r=n[1],o=0,a=0,s=e.width,l=e.height;switch(t){case"inside":o=e.x+s/2-i/2,a=e.y+l/2-r/2;break;case"top":o=e.x+s/2-i/2,a=e.y-r-5;break;case"bottom":o=e.x+s/2-i/2,a=e.y+l+5;break;case"left":o=e.x-i-5,a=e.y+l/2-r/2;break;case"right":o=e.x+s+5,a=e.y+l/2-r/2}return[o,a]}function Iu(t){return"center"===t||"middle"===t}function Tu(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):(n[t](e.name),i=n.isSelected(e.name)),d(n.getData(),function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}})}),{name:e.name,selected:r}}function Cu(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=Gr(i,o,r);qv(e.get("orient"),t,e.get("itemGap"),a.width,a.height),Wr(t,i,o,r)}function Du(t,e){var n=Fv(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new gv({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}function Au(t,e){e.dispatchAction({type:"legendToggleSelect",name:t})}function ku(t,e,n){var i=n.getZr().storage.getDisplayList()[0];i&&i.useHoverLayer||t.get("legendHoverLink")&&n.dispatchAction({type:"highlight",seriesName:t.name,name:e})}function Pu(t,e,n){var i=n.getZr().storage.getDisplayList()[0];i&&i.useHoverLayer||t.get("legendHoverLink")&&n.dispatchAction({type:"downplay",seriesName:t.name,name:e})}function Lu(t,e,n){var i=[1,1];i[t.getOrient().index]=0,Zr(e,n,{type:"box",ignoreSize:i})}function Ou(t){_n(t,"label",["show"])}function zu(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function Eu(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function Nu(t,e,n,i,r,o){var a=[],s=As(e,i,n)?e.getCalculationInfo("stackResultDimension"):i,l=Gu(e,s,t),h=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,h),a[o]=e.get(i,h);var u=Sr(e.get(i,h));return(u=Math.min(u,20))>=0&&(a[o]=+a[o].toFixed(u)),a}function Ru(t,e){var i=t.getData(),r=t.coordinateSystem;if(e&&!Eu(e)&&!y(e.coord)&&r){var o=r.dimensions,a=Bu(e,i,r,t);if((e=n(e)).type&&Tb[e.type]&&a.baseAxis&&a.valueAxis){var s=Mb(o,a.baseAxis.dim),l=Mb(o,a.valueAxis.dim);e.coord=Tb[e.type](i,a.baseDataDim,a.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;u<2;u++)Tb[h[u]]&&(h[u]=Gu(i,i.mapDimension(o[u]),h[u]));e.coord=h}}return e}function Bu(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(Vu(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function Vu(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r=0}function pc(t,e,n){function i(t,e){return l(e.nodes,t)>=0}function r(t,i){var r=!1;return e(function(e){d(n(t,e)||[],function(t){i.records[e.name][t]&&(r=!0)})}),r}function o(t,i){i.nodes.push(t),e(function(e){d(n(t,e)||[],function(t){i.records[e.name][t]=!0})})}return function(n){var a={nodes:[],records:{}};if(e(function(t){a.records[t.name]={}}),!n)return a;o(n,a);var s;do{s=!1,t(function(t){!i(t,a)&&r(t,a)&&(o(t,a),s=!0)})}while(s);return a}}function gc(t,e,n){var i=[1/0,-1/0];return Vb(n,function(t){var n=t.getData();n&&Vb(n.mapDimension(e,!0),function(t){var e=n.getApproximateExtent(t);e[0]i[1]&&(i[1]=e[1])})}),i[1]0?0:NaN);var a=n.getMax(!0);return null!=a&&"dataMax"!==a&&"function"!=typeof a?e[1]=a:r&&(e[1]=o>0?o-1:NaN),n.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function vc(t,e){var n=t.getAxisModel(),i=t._percentWindow,r=t._valueWindow;if(i){var o=Ir(r,[0,500]);o=Math.min(o,20);var a=e||0===i[0]&&100===i[1];n.setRange(a?null:+r[0].toFixed(o),a?null:+r[1].toFixed(o))}}function yc(t){var e=t._minMaxSpan={},n=t._dataZoomModel;Vb(["min","max"],function(i){e[i+"Span"]=n.get(i+"Span");var r=n.get(i+"ValueSpan");if(null!=r&&(e[i+"ValueSpan"]=r,null!=(r=t.getAxisModel().axis.scale.parse(r)))){var o=t._dataExtent;e[i+"Span"]=xr(o[0]+r,o,[0,100],!0)}})}function xc(t){var e={};return Gb(["start","end","startValue","endValue","throttle"],function(n){t.hasOwnProperty(n)&&(e[n]=t[n])}),e}function _c(t,e){var n=t._rangePropMode,i=t.get("rangeMode");Gb([["start","startValue"],["end","endValue"]],function(t,r){var o=null!=e[t[0]],a=null!=e[t[1]];o&&!a?n[r]="percent":!o&&a?n[r]="value":i?n[r]=i[r]:o&&(n[r]="percent")})}function wc(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function bc(t,e){return Math.min(e[1],Math.max(e[0],t))}function Sc(t){return{x:"y",y:"x",radius:"angle",angle:"radius"}[t]}function Mc(t){return"vertical"===t?"ns-resize":"ew-resize"}function Ic(t,e,n){Dc(t)[e]=n}function Tc(t,e,n){var i=Dc(t);i[e]===n&&(i[e]=null)}function Cc(t,e){return!!Dc(t)[e]}function Dc(t){return t[nS]||(t[nS]={})}function Ac(t){this.pointerChecker,this._zr=t,this._opt={};var e=m,i=e(kc,this),r=e(Pc,this),o=e(Lc,this),s=e(Oc,this),l=e(zc,this);xp.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,h){this.disable(),this._opt=a(n(h)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}),null==e&&(e=!0),!0!==e&&"move"!==e&&"pan"!==e||(t.on("mousedown",i),t.on("mousemove",r),t.on("mouseup",o)),!0!==e&&"scale"!==e&&"zoom"!==e||(t.on("mousewheel",s),t.on("pinch",l))},this.disable=function(){t.off("mousedown",i),t.off("mousemove",r),t.off("mouseup",o),t.off("mousewheel",s),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function kc(t){if(!(sn(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}}function Pc(t){if(!sn(t)&&Nc(this,"moveOnMouseMove",t)&&this._dragging&&"pinch"!==t.gestureEvent&&!Cc(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&Ag(t.event),this.trigger("pan",o,a,i,r,e,n)}}function Lc(t){sn(t)||(this._dragging=!1)}function Oc(t){if(Nc(this,"zoomOnMouseWheel",t)&&0!==t.wheelDelta){var e=t.wheelDelta>0?1.1:1/1.1;Ec.call(this,t,e,t.offsetX,t.offsetY)}}function zc(t){if(!Cc(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;Ec.call(this,t,e,t.pinchX,t.pinchY)}}function Ec(t,e,n,i){this.pointerChecker&&this.pointerChecker(t,n,i)&&(Ag(t.event),this.trigger("zoom",e,n,i))}function Nc(t,e,n){var i=t._opt[e];return i&&(!_(i)||n.event[i+"Key"])}function Rc(t,e){var n=Hc(t),i=e.dataZoomId,r=e.coordId;d(n,function(t,n){var o=t.dataZoomInfos;o[i]&&l(e.allCoordIds,r)<0&&(delete o[i],t.count--)}),Wc(n);var o=n[r];o||((o=n[r]={coordId:r,dataZoomInfos:{},count:0}).controller=Gc(t,o),o.dispatchAction=v(jc,t)),!o.dataZoomInfos[i]&&o.count++,o.dataZoomInfos[i]=e;var a=Yc(o.dataZoomInfos);o.controller.enable(a.controlType,a.opt),o.controller.setPointerChecker(e.containsPoint),ha(o,"dispatchAction",e.throttleRate,"fixRate")}function Bc(t,e){var n=Hc(t);d(n,function(t){t.controller.dispose();var n=t.dataZoomInfos;n[e]&&(delete n[e],t.count--)}),Wc(n)}function Vc(t,e){if(t&&"dataZoom"===t.type&&t.batch)for(var n=0,i=t.batch.length;ni["type_"+e]&&(e=r),o(n,t.roamControllerOpt)}),{controlType:e,opt:n}}function qc(t,e){lS[t]=e}function $c(t){return lS[t]}function Kc(t){return 0===t.indexOf("my")}function Qc(t){this.model=t}function Jc(t){this.model=t}function td(t){var e={},n=[],i=[];return t.eachRawSeries(function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}}),{seriesGroupByCategoryAxis:e,other:n,meta:i}}function ed(t){var e=[];return d(t,function(t,n){var i=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(f(t.series,function(t){return t.name})),a=[i.model.getCategories()];d(t.series,function(t){a.push(t.getRawData().mapArray(r,function(t){return t}))});for(var s=[o.join(vS)],l=0;l=0)return!0}function ad(t){for(var e=t.split(/\n+/g),n=[],i=f(rd(e.shift()).split(yS),function(t){return{name:t,data:[]}}),r=0;rTS}function Id(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function Td(t,e,n,i){var r=new Jp;return r.add(new gv({name:"main",style:kd(n),silent:!0,draggable:!0,cursor:"move",drift:xS(t,e,r,"nswe"),ondragend:xS(Sd,e,{isEnd:!0})})),_S(i,function(n){r.add(new gv({name:n,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:xS(t,e,r,n),ondragend:xS(Sd,e,{isEnd:!0})}))}),r}function Cd(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=SS(r,CS),a=n[0][0],s=n[1][0],l=a-r/2,h=s-r/2,u=n[0][1],c=n[1][1],d=u-o+r/2,f=c-o+r/2,p=u-a,g=c-s,m=p+r,v=g+r;Ad(t,e,"main",a,s,p,g),i.transformable&&(Ad(t,e,"w",l,h,o,v),Ad(t,e,"e",d,h,o,v),Ad(t,e,"n",l,h,m,o),Ad(t,e,"s",l,f,m,o),Ad(t,e,"nw",l,h,o,o),Ad(t,e,"ne",d,h,o,o),Ad(t,e,"sw",l,f,o,o),Ad(t,e,"se",d,f,o,o))}function Dd(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(kd(n)),r.attr({silent:!i,cursor:i?"move":"default"}),_S(["w","e","n","s","se","sw","ne","nw"],function(n){var r=e.childOfName(n),o=Od(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?kS[o]+"-resize":null})})}function Ad(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(Bd(Rd(t,e,[[i,r],[i+o,r+a]])))}function kd(t){return a({strokeNoScale:!0},t.brushStyle)}function Pd(t,e,n,i){var r=[bS(t,n),bS(e,i)],o=[SS(t,n),SS(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function Ld(t){return lr(t.group)}function Od(t,e){if(e.length>1)return("e"===(i=[Od(t,(e=e.split(""))[0]),Od(t,e[1])])[0]||"w"===i[0])&&i.reverse(),i.join("");var n={left:"w",right:"e",top:"n",bottom:"s"},i=ur({w:"left",e:"right",n:"top",s:"bottom"}[e],Ld(t));return n[i]}function zd(t,e,n,i,r,o,a,s){var l=i.__brushOption,h=t(l.range),u=Nd(n,o,a);_S(r.split(""),function(t){var e=AS[t];h[e[0]][e[1]]+=u[e[0]]}),l.range=e(Pd(h[0][0],h[1][0],h[0][1],h[1][1])),yd(n,i),Sd(n,{isEnd:!1})}function Ed(t,e,n,i,r){var o=e.__brushOption.range,a=Nd(t,n,i);_S(o,function(t){t[0]+=a[0],t[1]+=a[1]}),yd(t,e),Sd(t,{isEnd:!1})}function Nd(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function Rd(t,e,i){var r=wd(t,e);return r&&!0!==r?r.clipPath(i,t._transform):n(i)}function Bd(t){var e=bS(t[0][0],t[1][0]),n=bS(t[0][1],t[1][1]);return{x:e,y:n,width:SS(t[0][0],t[1][0])-e,height:SS(t[0][1],t[1][1])-n}}function Vd(t,e,n){if(t._brushType){var i=t._zr,r=t._covers,o=_d(t,e,n);if(!t._dragging)for(var a=0;a=0)&&t(o,i,r)})}function Qd(t){return t[0]>t[1]&&t.reverse(),t}function Jd(t,e){return An(t,e,{includeMainTypes:FS})}function tf(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=Qd(f([0,1],function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))})),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}function ef(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function nf(t,e){var n=rf(t),i=rf(e),r=[n[0]/i[0],n[1]/i[1]];return isNaN(r[0])&&(r[0]=1),isNaN(r[1])&&(r[1]=1),r}function rf(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}function of(t,e){var n=hf(t);jS(e,function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}}),n.push(e)}function af(t){var e=hf(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return jS(n,function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}}),i}function sf(t){t[YS]=null}function lf(t){return hf(t).length}function hf(t){var e=t[YS];return e||(e=t[YS]=[{}]),e}function uf(t,e,n){(this._brushController=new cd(n.getZr())).on("brush",m(this._onBrush,this)).mount(),this._isZoomActive}function cf(t){var e={};return d(["xAxisIndex","yAxisIndex"],function(n){e[n]=t[n],null==e[n]&&(e[n]="all"),(!1===e[n]||"none"===e[n])&&(e[n]=[])}),e}function df(t,e){t.setIconStatus("back",lf(e)>1?"emphasis":"normal")}function ff(t,e,n,i,r){var o=n._isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n._isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new Kd(cf(t.option),e,{include:["grid"]});n._brushController.setPanels(a.makePanelOpts(r,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"})).enableBrush(!!o&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}function pf(t){this.model=t}function gf(t){return eM(t)}function mf(){if(!rM&&oM){rM=!0;var t=oM.styleSheets;t.length<31?oM.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function vf(t){return parseInt(t,10)}function yf(t,e){mf(),this.root=t,this.storage=e;var n=document.createElement("div"),i=document.createElement("div");n.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",i.style.cssText="position:absolute;left:0;top:0;",t.appendChild(n),this._vmlRoot=i,this._vmlViewport=n,this.resize();var r=e.delFromStorage,o=e.addToStorage;e.delFromStorage=function(t){r.call(e,t),t&&t.onRemove&&t.onRemove(i)},e.addToStorage=function(t){t.onAdd&&t.onAdd(i),o.call(e,t)},this._firstPaint=!0}function xf(t){return function(){jp('In IE8.0 VML mode painter not support method "'+t+'"')}}function _f(t){return document.createElementNS(VM,t)}function wf(t){return WM(1e4*t)/1e4}function bf(t){return t-qM}function Sf(t,e){var n=e?t.textFill:t.fill;return null!=n&&n!==GM}function Mf(t,e){var n=e?t.textStroke:t.stroke;return null!=n&&n!==GM}function If(t,e){e&&Tf(t,"transform","matrix("+HM.call(e,",")+")")}function Tf(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function Cf(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}function Df(t,e,n){if(Sf(e,n)){var i=n?e.textFill:e.fill;i="transparent"===i?GM:i,"none"!==t.getAttribute("clip-path")&&i===GM&&(i="rgba(0, 0, 0, 0.002)"),Tf(t,"fill",i),Tf(t,"fill-opacity",e.opacity)}else Tf(t,"fill",GM);if(Mf(e,n)){var r=n?e.textStroke:e.stroke;Tf(t,"stroke",r="transparent"===r?GM:r),Tf(t,"stroke-width",(n?e.textStrokeWidth:e.lineWidth)/(!n&&e.strokeNoScale?e.host.getLineScale():1)),Tf(t,"paint-order",n?"stroke":"fill"),Tf(t,"stroke-opacity",e.opacity),e.lineDash?(Tf(t,"stroke-dasharray",e.lineDash.join(",")),Tf(t,"stroke-dashoffset",WM(e.lineDashOffset||0))):Tf(t,"stroke-dasharray",""),e.lineCap&&Tf(t,"stroke-linecap",e.lineCap),e.lineJoin&&Tf(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&Tf(t,"stroke-miterlimit",e.miterLimit)}else Tf(t,"stroke",GM)}function Af(t){for(var e=[],n=t.data,i=t.len(),r=0;r=jM||!bf(g)&&(d>-XM&&d<0||d>XM)==!!p;var y=wf(s+h*UM(c)),x=wf(l+u*ZM(c));m&&(d=p?jM-1e-4:1e-4-jM,v=!0,9===r&&e.push("M",y,x));var _=wf(s+h*UM(c+d)),w=wf(l+u*ZM(c+d));e.push("A",wf(h),wf(u),WM(f*YM),+v,+p,_,w);break;case FM.Z:o="Z";break;case FM.R:var _=wf(n[r++]),w=wf(n[r++]),b=wf(n[r++]),S=wf(n[r++]);e.push("M",_,w,"L",_+b,w,"L",_+b,w+S,"L",_,w+S,"L",_,w)}o&&e.push(o);for(var M=0;M=11)}}(navigator.userAgent),Qf={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},Jf={"[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},tp=Object.prototype.toString,ep=Array.prototype,np=ep.forEach,ip=ep.filter,rp=ep.slice,op=ep.map,ap=ep.reduce,sp={},lp=function(){return sp.createCanvas()};sp.createCanvas=function(){return document.createElement("canvas")};var hp,up="__ec_primitive__";E.prototype={constructor:E,get:function(t){return this.hasOwnProperty(t)?this[t]:null},set:function(t,e){return this[t]=e},each:function(t,e){void 0!==e&&(t=m(t,e));for(var n in this)this.hasOwnProperty(n)&&t(this[n],n)},removeKey:function(t){delete this[t]}};var cp=(Object.freeze||Object)({$override:e,clone:n,merge:i,mergeAll:r,extend:o,defaults:a,createCanvas:lp,getContext:s,indexOf:l,inherits:h,mixin:u,isArrayLike:c,each:d,map:f,reduce:p,filter:g,find:function(t,e,n){if(t&&e)for(var i=0,r=t.length;i3&&(e=yp.call(e,1));for(var i=this._$handlers[t],r=i.length,o=0;o4&&(e=yp.call(e,1,e.length-1));for(var i=e[e.length-1],r=this._$handlers[t],o=r.length,a=0;a=0;o--){var a;if(i[o]!==n&&!i[o].ignore&&(a=it(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==_p)){r.target=i[o];break}}return r}},d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){bp.prototype[t]=function(e){var n=this.findHover(e.zrX,e.zrY),i=n.target;if("mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||gp(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}),u(bp,xp),u(bp,J);var Sp="undefined"==typeof Float32Array?Array:Float32Array,Mp=(Object.freeze||Object)({create:rt,identity:ot,copy:at,mul:st,translate:lt,rotate:ht,scale:ut,invert:ct,clone:function(t){var e=rt();return at(e,t),e}}),Ip=ot,Tp=5e-5,Cp=function(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},Dp=Cp.prototype;Dp.transform=null,Dp.needLocalTransform=function(){return dt(this.rotation)||dt(this.position[0])||dt(this.position[1])||dt(this.scale[0]-1)||dt(this.scale[1]-1)},Dp.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||rt(),n?this.getLocalTransform(i):Ip(i),e&&(n?st(i,t.transform,i):at(i,t.transform)),this.transform=i,this.invTransform=this.invTransform||rt(),ct(this.invTransform,i)):i&&Ip(i)},Dp.getLocalTransform=function(t){return Cp.getLocalTransform(this,t)},Dp.setTransform=function(t){var e=this.transform,n=t.dpr||1;e?t.setTransform(n*e[0],n*e[1],n*e[2],n*e[3],n*e[4],n*e[5]):t.setTransform(n,0,0,n,0,0)},Dp.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var Ap=[];Dp.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(st(Ap,t.invTransform,e),e=Ap);var n=e[0]*e[0]+e[1]*e[1],i=e[2]*e[2]+e[3]*e[3],r=this.position,o=this.scale;dt(n-1)&&(n=Math.sqrt(n)),dt(i-1)&&(i=Math.sqrt(i)),e[0]<0&&(n=-n),e[3]<0&&(i=-i),r[0]=e[4],r[1]=e[5],o[0]=n,o[1]=i,this.rotation=Math.atan2(-e[1]/i,e[0]/n)}},Dp.getGlobalScale=function(){var t=this.transform;if(!t)return[1,1];var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]),n=Math.sqrt(t[2]*t[2]+t[3]*t[3]);return t[0]<0&&(e=-e),t[3]<0&&(n=-n),[e,n]},Dp.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&$(n,n,i),n},Dp.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&$(n,n,i),n},Cp.getLocalTransform=function(t,e){Ip(e=e||[]);var n=t.origin,i=t.scale||[1,1],r=t.rotation||0,o=t.position||[0,0];return n&&(e[4]-=n[0],e[5]-=n[1]),ut(e,e,i),r&&ht(e,e,r),n&&(e[4]+=n[0],e[5]+=n[1]),e[4]+=o[0],e[5]+=o[1],e};var kp={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*(2-Math.pow(2,-10*(t-1)))},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,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*.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?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-kp.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*kp.bounceIn(2*t):.5*kp.bounceOut(2*t-1)+.5}};ft.prototype={constructor:ft,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)this._pausedTime+=e;else{var n=(t-this._startTime-this._pausedTime)/this._life;if(!(n<0)){n=Math.min(n,1);var i=this.easing,r="string"==typeof i?kp[i]:i,o="function"==typeof r?r(n):n;return this.fire("frame",o),1==n?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){this[t="on"+t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var Pp=function(){this.head=null,this.tail=null,this._len=0},Lp=Pp.prototype;Lp.insert=function(t){var e=new Op(t);return this.insertEntry(e),e},Lp.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++},Lp.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},Lp.len=function(){return this._len},Lp.clear=function(){this.head=this.tail=null,this._len=0};var Op=function(t){this.value=t,this.next,this.prev},zp=function(t){this._list=new Pp,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},Ep=zp.prototype;Ep.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Op(e),a.key=t,n.insertEntry(a),i[t]=a}return r},Ep.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},Ep.clear=function(){this._list.clear(),this._map={}};var Np={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]},Rp=new zp(20),Bp=null,Vp=At,Fp=kt,Hp=(Object.freeze||Object)({parse:Mt,lift:Ct,toHex:Dt,fastLerp:At,fastMapToColor:Vp,lerp:kt,mapToColor:Fp,modifyHSL:function(t,e,n,i){if(t=Mt(t))return t=Tt(t),null!=e&&(t[0]=gt(e)),null!=n&&(t[1]=yt(n)),null!=i&&(t[2]=yt(i)),Lt(It(t),"rgba")},modifyAlpha:Pt,stringify:Lt}),Gp=Array.prototype.slice,Wp=function(t,e,n,i){this._tracks={},this._target=t,this._loop=e||!1,this._getter=n||Ot,this._setter=i||zt,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};Wp.prototype={when:function(t,e){var n=this._tracks;for(var i in e)if(e.hasOwnProperty(i)){if(!n[i]){n[i]=[];var r=this._getter(this._target,i);if(null==r)continue;0!==t&&n[i].push({time:0,value:Gt(r)})}n[i].push({time:t,value:e[i]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;t0&&this.animate(t,!1).when(null==i?500:i,o).delay(r||0),this}};var qp=function(t){Cp.call(this,t),xp.call(this,t),Yp.call(this,t),this.id=t.id||qf()};qp.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 n=this.transform;n||(n=this.transform=[1,0,0,1,0,0]),n[4]+=t,n[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(t,e){},attrKV:function(t,e){if("position"===t||"scale"===t||"origin"===t){if(e){var n=this[t];n||(n=this[t]=[]),n[0]=e[0],n[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(w(t))for(var n in t)t.hasOwnProperty(n)&&this.attrKV(n,t[n]);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 n=0;n=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},clone:function(){return new Xt(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}}},Xt.create=function(t){return new Xt(t.x,t.y,t.width,t.height)};var Jp=function(t){t=t||{},qp.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};Jp.prototype={constructor:Jp,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,n=0;n=0&&(n.splice(i,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,n=this.__zr;e&&e!==t.__storage&&(e.addToStorage(t),t instanceof Jp&&t.addChildrenToStorage(e)),n&&n.refresh()},remove:function(t){var e=this.__zr,n=this.__storage,i=this._children,r=l(i,t);return r<0?this:(i.splice(r,1),t.parent=null,n&&(n.delFromStorage(t),t instanceof Jp&&t.delChildrenFromStorage(n)),e&&e.refresh(),this)},removeAll:function(){var t,e,n=this._children,i=this.__storage;for(e=0;e=0&&(this.delFromStorage(t),this._roots.splice(r,1),t instanceof Jp&&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:ee};var ig={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},rg=function(t,e,n){return ig.hasOwnProperty(e)?n*=t.dpr:n},og=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],ag=function(t,e){this.extendFrom(t,!1),this.host=e};ag.prototype={constructor:ag,host:null,fill:"#000",stroke:null,opacity:1,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,n){for(var i=this,r=n&&n.style,o=!r,a=0;a0},extendFrom:function(t,e){if(t)for(var n in t)!t.hasOwnProperty(n)||!0!==e&&(!1===e?this.hasOwnProperty(n):null==t[n])||(this[n]=t[n])},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,n){for(var i=("radial"===e.type?ie:ne)(t,e,n),r=e.colorStops,o=0;o=0&&n.splice(i,1),t.__hoverMir=null},clearHover:function(t){for(var e=this._hoverElements,n=0;n15)break}s.__drawIndex=m,s.__drawIndex0&&t>i[0]){for(a=0;at);a++);o=n[i[a]]}if(i.splice(a+1,0,t),n[t]=e,!e.virtual)if(o){var l=o.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)}else jp("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var n,i,r=this._zlevelList;for(i=0;i0?.01:0),this._needsManuallyCompositing),o.__builtin__||jp("ZLevel "+s+" has been used by unkown layer "+o.id),o!==n&&(o.__used=!0,o.__startIndex!==r&&(o.__dirty=!0),o.__startIndex=r,o.incremental?o.__drawIndex=-1:o.__drawIndex=r,e(r),n=o),a.__dirty&&(o.__dirty=!0,o.incremental&&o.__drawIndex<0&&(o.__drawIndex=r))}e(r),this.eachBuiltinLayer(function(t,e){!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 n=this._layerConfig;n[t]?i(n[t],e,!0):n[t]=e;for(var r=0;r=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),n=0;n1&&i&&i.length>1){var o=ln(i)/ln(r);!isFinite(o)&&(o=1),e.pinchScale=o;var a=hn(i);return e.pinchX=a[0],e.pinchY=a[1],{type:"pinch",target:t[0].target,event:e}}}}},Og=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],zg=["touchstart","touchend","touchmove"],Eg={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},Ng=f(Og,function(t){var e=t.replace("mouse","pointer");return Eg[e]?e:t}),Rg={mousemove:function(t){t=rn(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){var e=(t=rn(this.dom,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=rn(this.dom,t)).zrByTouch=!0,this._lastTouchMoment=new Date,cn(this,t,"start"),Rg.mousemove.call(this,t),Rg.mousedown.call(this,t),dn(this)},touchmove:function(t){(t=rn(this.dom,t)).zrByTouch=!0,cn(this,t,"change"),Rg.mousemove.call(this,t),dn(this)},touchend:function(t){(t=rn(this.dom,t)).zrByTouch=!0,cn(this,t,"end"),Rg.mouseup.call(this,t),+new Date-this._lastTouchMoment<300&&Rg.click.call(this,t),dn(this)},pointerdown:function(t){Rg.mousedown.call(this,t)},pointermove:function(t){fn(t)||Rg.mousemove.call(this,t)},pointerup:function(t){Rg.mouseup.call(this,t)},pointerout:function(t){fn(t)||Rg.mouseout.call(this,t)}};d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){Rg[t]=function(e){e=rn(this.dom,e),this.trigger(t,e)}});var Bg=gn.prototype;Bg.dispose=function(){for(var t=Og.concat(zg),e=0;e=0||i&&l(i,a)<0)){var s=e.getShallow(a);null!=s&&(r[t[o][0]]=s)}}return r}},tm=Jg([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),em={getLineStyle:function(t){var e=tm(this,t),n=this.getLineDash(e.lineWidth);return n&&(e.lineDash=n),e},getLineDash:function(t){null==t&&(t=1);var e=this.get("type"),n=Math.max(t,2),i=4*t;return"solid"===e||null==e?null:"dashed"===e?[i,i]:[n,n]}},nm=Jg([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),im={getAreaStyle:function(t,e){return nm(this,t,e)}},rm=Math.pow,om=Math.sqrt,am=1e-8,sm=1e-4,lm=om(3),hm=1/3,um=B(),cm=B(),dm=B(),fm=Math.min,pm=Math.max,gm=Math.sin,mm=Math.cos,vm=2*Math.PI,ym=B(),xm=B(),_m=B(),wm=[],bm=[],Sm={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Mm=[],Im=[],Tm=[],Cm=[],Dm=Math.min,Am=Math.max,km=Math.cos,Pm=Math.sin,Lm=Math.sqrt,Om=Math.abs,zm="undefined"!=typeof Float32Array,Em=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};Em.prototype={constructor:Em,_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=Om(1/Up/t)||0,this._uy=Om(1/Up/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(Sm.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 n=Om(t-this._xi)>this._ux||Om(e-this._yi)>this._uy||this._len<5;return this.addData(Sm.L,t,e),this._ctx&&n&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,n,i,r,o){return this.addData(Sm.C,t,e,n,i,r,o),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},quadraticCurveTo:function(t,e,n,i){return this.addData(Sm.Q,t,e,n,i),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},arc:function(t,e,n,i,r,o){return this.addData(Sm.A,t,e,n,n,i,r-i,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=km(r)*n+t,this._yi=Pm(r)*n+t,this},arcTo:function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},rect:function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Sm.R,t,e,n,i),this},closePath:function(){this.addData(Sm.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,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,n=0;ne.length&&(this._expandData(),e=this.data);for(var n=0;n0&&f<=t||u<0&&f>=t||0==u&&(c>0&&p<=e||c<0&&p>=e);)f+=u*(n=a[i=this._dashIdx]),p+=c*n,this._dashIdx=(i+1)%g,u>0&&fl||c>0&&ph||s[i%2?"moveTo":"lineTo"](u>=0?Dm(f,t):Am(f,t),c>=0?Dm(p,e):Am(p,e));u=f-t,c=p-e,this._dashOffset=-Lm(u*u+c*c)},_dashedBezierTo:function(t,e,n,i,r,o){var a,s,l,h,u,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,m=this._yi,v=Gn,y=0,x=this._dashIdx,_=f.length,w=0;for(d<0&&(d=c+d),d%=c,a=0;a<1;a+=.1)s=v(g,t,n,r,a+.1)-v(g,t,n,r,a),l=v(m,e,i,o,a+.1)-v(m,e,i,o,a),y+=Lm(s*s+l*l);for(;x<_&&!((w+=f[x])>d);x++);for(a=(w-d)/y;a<=1;)h=v(g,t,n,r,a),u=v(m,e,i,o,a),x%2?p.moveTo(h,u):p.lineTo(h,u),a+=f[x]/y,x=(x+1)%_;x%2!=0&&p.lineTo(r,o),s=r-h,l=o-u,this._dashOffset=-Lm(s*s+l*l)},_dashedQuadraticTo:function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,zm&&(this.data=new Float32Array(t)))},getBoundingRect:function(){Mm[0]=Mm[1]=Tm[0]=Tm[1]=Number.MAX_VALUE,Im[0]=Im[1]=Cm[0]=Cm[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,n=0,i=0,r=0,o=0;ol||Om(a-r)>h||c===u-1)&&(t.lineTo(o,a),i=o,r=a);break;case Sm.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),i=s[c-2],r=s[c-1];break;case Sm.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),i=s[c-2],r=s[c-1];break;case Sm.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>m?g:m,b=g>m?1:g/m,S=g>m?m/g:1,M=v+y;Math.abs(g-m)>.001?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,v,M,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,v,M,1-_),1==c&&(e=km(v)*g+f,n=Pm(v)*m+p),i=km(M)*g+f,r=Pm(M)*m+p;break;case Sm.R:e=i=s[c],n=r=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case Sm.Z:t.closePath(),i=e,r=n}}}},Em.CMD=Sm;var Nm=2*Math.PI,Rm=2*Math.PI,Bm=Em.CMD,Vm=2*Math.PI,Fm=1e-4,Hm=[-1,-1,-1],Gm=[-1,-1],Wm=ug.prototype.getCanvasPattern,Zm=Math.abs,Um=new Em(!0);xi.prototype={constructor:xi,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var n=this.style,i=this.path||Um,r=n.hasStroke(),o=n.hasFill(),a=n.fill,s=n.stroke,l=o&&!!a.colorStops,h=r&&!!s.colorStops,u=o&&!!a.image,c=r&&!!s.image;if(n.bind(t,this,e),this.setTransform(t),this.__dirty){var d;l&&(d=d||this.getBoundingRect(),this._fillGradient=n.getGradient(t,a,d)),h&&(d=d||this.getBoundingRect(),this._strokeGradient=n.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:u&&(t.fillStyle=Wm.call(a,t)),h?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=Wm.call(s,t));var f=n.lineDash,p=n.lineDashOffset,g=!!t.setLineDash,m=this.getGlobalScale();i.setScale(m[0],m[1]),this.__dirtyPath||f&&!g&&r?(i.beginPath(t),f&&!g&&(i.setLineDash(f),i.setLineDashOffset(p)),this.buildPath(i,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),o&&i.fill(t),f&&g&&(t.setLineDash(f),t.lineDashOffset=p),r&&i.stroke(t),f&&g&&t.setLineDash([]),null!=n.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(t,e,n){},createPathProxy:function(){this.path=new Em},getBoundingRect:function(){var t=this._rect,e=this.style,n=!t;if(n){var i=this.path;i||(i=this.path=new Em),this.__dirtyPath&&(i.beginPath(),this.buildPath(i,this.shape,!1)),t=i.getBoundingRect()}if(this._rect=t,e.hasStroke()){var r=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||n){r.copy(t);var o=e.lineWidth,a=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(o=Math.max(o,this.strokeContainThreshold||4)),a>1e-10&&(r.width+=o/a,r.height+=o/a,r.x-=o/a/2,r.y-=o/a/2)}return r}return t},contain:function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path.data;if(r.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(r.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),yi(o,a/s,t,e)))return!0}if(r.hasFill())return vi(o,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=!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):Xe.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var n=this.shape;if(n){if(w(t))for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);else n[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&Zm(t[0]-1)>1e-10&&Zm(t[3]-1)>1e-10?Math.sqrt(Zm(t[0]*t[3]-t[2]*t[1])):1}},xi.extend=function(t){var e=function(e){xi.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var n=t.shape;if(n){this.shape=this.shape||{};var i=this.shape;for(var r in n)!i.hasOwnProperty(r)&&n.hasOwnProperty(r)&&(i[r]=n[r])}t.init&&t.init.call(this,e)};h(e,xi);for(var n in t)"style"!==n&&"shape"!==n&&(e.prototype[n]=t[n]);return e},h(xi,Xe);var Xm=Em.CMD,jm=[[],[],[]],Ym=Math.sqrt,qm=Math.atan2,$m=function(t,e){var n,i,r,o,a,s,l=t.data,h=Xm.M,u=Xm.C,c=Xm.L,d=Xm.R,f=Xm.A,p=Xm.Q;for(r=0,o=0;r=11?function(){var e,n=this.__clipPaths,i=this.style;if(n)for(var r=0;rn-2?n-1:c+1],h=t[c>n-3?n-1:c+2]);var p=d*d,g=d*p;i.push([Ii(s[0],f[0],l[0],h[0],d,p,g),Ii(s[1],f[1],l[1],h[1],d,p,g)])}return i},dv=function(t,e,n,i){var r,o,a,s,l=[],h=[],u=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;d=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}},createIcon:fr,Group:Jp,Image:je,Text:ov,Circle:av,Sector:hv,Ring:uv,Polygon:fv,Polyline:pv,Rect:gv,Line:mv,BezierCurve:yv,Arc:xv,IncrementalDisplayable:Di,CompoundPath:_v,LinearGradient:bv,RadialGradient:Sv,BoundingRect:Xt}),kv=["textStyle","color"],Pv={getTextColor:function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(kv):null)},getFont:function(){return rr({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},getTextRect:function(t){return ce(t,this.getFont(),this.getShallow("align"),this.getShallow("verticalAlign")||this.getShallow("baseline"),this.getShallow("padding"),this.getShallow("rich"),this.getShallow("truncateText"))}},Lv=Jg([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]),Ov={getItemStyle:function(t,e){var n=Lv(this,t,e),i=this.getBorderLineDash();return i&&(n.lineDash=i),n},getBorderLineDash:function(){var t=this.get("borderType");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}},zv=u,Ev=Dn();pr.prototype={constructor:pr,init:null,mergeOption:function(t){i(this.option,t,!0)},get:function(t,e){return null==t?this.option:gr(this.option,this.parsePath(t),!e&&mr(this,t))},getShallow:function(t,e){var n=this.option,i=null==n?n:n[t],r=!e&&mr(this,t);return null==i&&r&&(i=r.getShallow(t)),i},getModel:function(t,e){var n,i=null==t?this.option:gr(this.option,t=this.parsePath(t));return e=e||(n=mr(this,t))&&n.getModel(t),new pr(i,e,this.ecModel)},isEmpty:function(){return null==this.option},restoreData:function(){},clone:function(){return new(0,this.constructor)(n(this.option))},setReadOnly:function(t){},parsePath:function(t){return"string"==typeof t&&(t=t.split(".")),t},customizeGetParent:function(t){Ev(this).getParent=t},isAnimationEnabled:function(){if(!Kf.node){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}}},En(pr),Nn(pr),zv(pr,em),zv(pr,im),zv(pr,Pv),zv(pr,Ov);var Nv=0,Rv=1e-4,Bv=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,Vv=(Object.freeze||Object)({linearMap:xr,parsePercent:_r,round:wr,asc:br,getPrecision:Sr,getPrecisionSafe:Mr,getPixelPrecision:Ir,getPercentWithPrecision:Tr,MAX_SAFE_INTEGER:9007199254740991,remRadian:Cr,isRadianAroundZero:Dr,parseDate:Ar,quantity:kr,nice:Lr,reformIntervals:function(t){function e(t,n,i){return t.interval[i]=0}}),Fv=k,Hv=["a","b","c","d","e","f","g"],Gv=function(t,e){return"{"+t+(null==e?"":e)+"}"},Wv=ve,Zv=ce,Uv=(Object.freeze||Object)({addCommas:Or,toCamelCase:zr,normalizeCssArray:Fv,encodeHTML:Er,formatTpl:Nr,formatTplSimple:function(t,e,n){return d(e,function(e,i){t=t.replace("{"+i+"}",n?Er(e):e)}),t},getTooltipMarker:Rr,formatTime:Vr,capitalFirst:Fr,truncateText:Wv,getTextRect:Zv}),Xv=d,jv=["left","right","top","bottom","width","height"],Yv=[["width","left","right"],["height","top","bottom"]],qv=Hr,$v=(v(Hr,"vertical"),v(Hr,"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")}}}),Kv=Dn(),Qv=pr.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,n,i){pr.call(this,t,e,n,i),this.uid=vr("ec_cpt_model")},init:function(t,e,n,i){this.mergeDefaultAndTheme(t,n)},mergeDefaultAndTheme:function(t,e){var n=this.layoutMode,r=n?Ur(t):{};i(t,e.getTheme().get(this.mainType)),i(t,this.getDefaultOption()),n&&Zr(t,r,n)},mergeOption:function(t,e){i(this.option,t,!0);var n=this.layoutMode;n&&Zr(this.option,t,n)},optionUpdated:function(t,e){},getDefaultOption:function(){var t=Kv(this);if(!t.defaultOption){for(var e=[],n=this.constructor;n;){var r=n.prototype.defaultOption;r&&e.push(r),n=n.superClass}for(var o={},a=e.length-1;a>=0;a--)o=i(o,e[a],!0);t.defaultOption=o}return t.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});Vn(Qv,{registerWhenExtend:!0}),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){t=On(t),e[t.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=On(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(Qv),function(t,e){function n(t){var n={},o=[];return d(t,function(a){var s=i(n,a),h=r(s.originalDeps=e(a),t);s.entryCount=h.length,0===s.entryCount&&o.push(a),d(h,function(t){l(s.predecessor,t)<0&&s.predecessor.push(t);var e=i(n,t);l(e.successor,t)<0&&e.successor.push(a)})}),{graph:n,noEntryList:o}}function i(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}function r(t,e){var n=[];return d(t,function(t){l(e,t)>=0&&n.push(t)}),n}t.topologicalTravel=function(t,e,i,r){function o(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}if(t.length){var a=n(e),s=a.graph,l=a.noEntryList,h={};for(d(t,function(t){h[t]=!0});l.length;){var u=l.pop(),c=s[u],f=!!h[u];f&&(i.call(r,u,c.originalDeps.slice()),delete h[u]),d(c.successor,f?function(t){h[t]=!0,o(t)}:o)}d(h,function(){throw new Error("Circle dependency may exists")})}}}(Qv,function(t){var e=[];return d(Qv.getClassesByMainType(t),function(t){e=e.concat(t.prototype.dependencies||[])}),e=f(e,function(t){return On(t).main}),"dataset"!==t&&l(e,"dataset")<=0&&e.unshift("dataset"),e}),u(Qv,$v);var Jv="";"undefined"!=typeof navigator&&(Jv=navigator.platform||"");var ty={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:Jv.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},ey=Dn(),ny={clearColorPalette:function(){ey(this).colorIdx=0,ey(this).colorNameMap={}},getColorFromPalette:function(t,e,n){var i=ey(e=e||this),r=i.colorIdx||0,o=i.colorNameMap=i.colorNameMap||{};if(o.hasOwnProperty(t))return o[t];var a=xn(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=n&&s?jr(s,n):a;if((l=l||a)&&l.length){var h=l[r];return t&&(o[t]=h),i.colorIdx=(r+1)%l.length,h}}},iy={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis")[0],o=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),qr(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),qr(o)&&(i.set("y",o),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],n.set("single",r),qr(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar")[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),qr(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),qr(a)&&(i.set("angle",a),e.firstCategoryDimIndex=1)},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();d(o.parallelAxisIndex,function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),qr(s)&&null==e.firstCategoryDimIndex&&(i.set(l,s),e.firstCategoryDimIndex=o)})}},ry="original",oy="arrayRows",ay="objectRows",sy="keyedColumns",ly="unknown",hy="typedArray",uy="column",cy="row";$r.seriesDataToSource=function(t){return new $r({data:t,sourceFormat:S(t)?hy:ry,fromDataset:!1})},Nn($r);var dy=Dn(),fy="\0_ec_inner",py=pr.extend({constructor:py,init:function(t,e,n,i){n=n||{},this.option=null,this._theme=new pr(n),this._optionManager=i},setOption:function(t,e){P(!(fy in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null)},resetOption:function(t){var e=!1,n=this._optionManager;if(!t||"recreate"===t){var i=n.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this.mergeOption(i)):co.call(this,i),e=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var r=n.getTimelineOption(this);r&&(this.mergeOption(r),e=!0)}if(!t||"recreate"===t||"media"===t){var o=n.getMediaOption(this,this._api);o.length&&d(o,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){var e=this.option,r=this._componentsMap,a=[];Jr(this),d(t,function(t,r){null!=t&&(Qv.hasClass(r)?r&&a.push(r):e[r]=null==e[r]?n(t):i(e[r],t,!0))}),Qv.topologicalTravel(a,Qv.getAllClassMainTypes(),function(n,i){var a=xn(t[n]),s=Sn(r.get(n),a);Mn(s),d(s,function(t,e){var i=t.option;w(i)&&(t.keyInfo.mainType=n,t.keyInfo.subType=po(n,i,t.exist))});var l=fo(r,i);e[n]=[],r.set(n,[]),d(s,function(t,i){var a=t.exist,s=t.option;if(P(w(s)||a,"Empty component definition"),s){var h=Qv.getClass(n,t.keyInfo.subType,!0);if(a&&a instanceof h)a.name=t.keyInfo.name,a.mergeOption(s,this),a.optionUpdated(s,!1);else{var u=o({dependentModels:l,componentIndex:i},t.keyInfo);o(a=new h(s,this,this,u),u),a.init(s,this,this,u),a.optionUpdated(null,!0)}}else a.mergeOption({},this),a.optionUpdated({},!1);r.get(n)[i]=a,e[n][i]=a.option},this),"series"===n&&go(this,r.get("series"))},this),this._seriesIndicesMap=N(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=n(this.option);return d(t,function(e,n){if(Qv.hasClass(n)){for(var i=(e=xn(e)).length-1;i>=0;i--)Tn(e[i])&&e.splice(i,1);t[n]=e}}),delete t[fy],t},getTheme:function(){return this._theme},getComponent:function(t,e){var n=this._componentsMap.get(t);if(n)return n[e||0]},queryComponents:function(t){var e=t.mainType;if(!e)return[];var n=t.index,i=t.id,r=t.name,o=this._componentsMap.get(e);if(!o||!o.length)return[];var a;if(null!=n)y(n)||(n=[n]),a=g(f(n,function(t){return o[t]}),function(t){return!!t});else if(null!=i){var s=y(i);a=g(o,function(t){return s&&l(i,t.id)>=0||!s&&t.id===i})}else if(null!=r){var h=y(r);a=g(o,function(t){return h&&l(r,t.name)>=0||!h&&t.name===r})}else a=o.slice();return mo(a,t)},findComponents:function(t){var e=t.query,n=t.mainType,i=function(t){var e=n+"Index",i=n+"Id",r=n+"Name";return!t||null==t[e]&&null==t[i]&&null==t[r]?null:{mainType:n,index:t[e],id:t[i],name:t[r]}}(e);return function(e){return t.filter?g(e,t.filter):e}(mo(i?this.queryComponents(i):this._componentsMap.get(n),t))},eachComponent:function(t,e,n){var i=this._componentsMap;"function"==typeof t?(n=e,e=t,i.each(function(t,i){d(t,function(t,r){e.call(n,i,t,r)})})):_(t)?d(i.get(t),e,n):w(t)&&d(this.findComponents(t),e,n)},getSeriesByName:function(t){return g(this._componentsMap.get("series"),function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){return g(this._componentsMap.get("series"),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){d(this._seriesIndices,function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)},this)},eachRawSeries:function(t,e){d(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,n){d(this._seriesIndices,function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)},this)},eachRawSeriesByType:function(t,e,n){return d(this.getSeriesByType(t),e,n)},isSeriesFiltered:function(t){return null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){go(this,g(this._componentsMap.get("series"),t,e))},restoreData:function(t){var e=this._componentsMap;go(this,e.get("series"));var n=[];e.each(function(t,e){n.push(e)}),Qv.topologicalTravel(n,Qv.getAllClassMainTypes(),function(n,i){d(e.get(n),function(e){("series"!==n||!ho(e,t))&&e.restoreData()})})}});u(py,ny);var gy=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],my={};yo.prototype={constructor:yo,create:function(t,e){var n=[];d(my,function(i,r){var o=i.create(t,e);n=n.concat(o||[])}),this._coordinateSystems=n},update:function(t,e){d(this._coordinateSystems,function(n){n.update&&n.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},yo.register=function(t,e){my[t]=e},yo.get=function(t){return my[t]};var vy=d,yy=n,xy=f,_y=i,wy=/^(min|max)?(.+)$/;xo.prototype={constructor:xo,setOption:function(t,e){t&&d(xn(t.series),function(t){t&&t.data&&S(t.data)&&O(t.data)}),t=yy(t,!0);var n=this._optionBackup,i=_o.call(this,t,e,!n);this._newBaseOption=i.baseOption,n?(Mo(n.baseOption,i.baseOption),i.timelineOptions.length&&(n.timelineOptions=i.timelineOptions),i.mediaList.length&&(n.mediaList=i.mediaList),i.mediaDefault&&(n.mediaDefault=i.mediaDefault)):this._optionBackup=i},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=xy(e.timelineOptions,yy),this._mediaList=xy(e.mediaList,yy),this._mediaDefault=yy(e.mediaDefault),this._currentMediaIndices=[],yy(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=yy(n[i.getCurrentIndex()],!0))}return e},getMediaOption:function(t){var e=this._api.getWidth(),n=this._api.getHeight(),i=this._mediaList,r=this._mediaDefault,o=[],a=[];if(!i.length&&!r)return a;for(var s=0,l=i.length;s1||l&&!a?function(n){function i(t,n){var i=r.getDimensionInfo(n);if(i&&!1!==i.otherDims.tooltip){var o=i.type,l=Rr({color:h,type:"subItem"}),u=(a?l+Er(i.displayName||"-")+": ":"")+Er("ordinal"===o?t+"":"time"===o?e?"":Vr("yyyy/MM/dd hh:mm:ss",t):Or(t));u&&s.push(u)}}var a=p(n,function(t,e,n){var i=r.getDimensionInfo(n);return t|=i&&!1!==i.tooltip&&null!=i.displayName},0),s=[];return o.length?d(o,function(e){i(Zo(r,t,e),e)}):d(n,i),(a?"
    ":"")+s.join(a?"
    ":", ")}(s):i(a?Zo(r,t,o[0]):l?s[0]:s),c=Rr(h),f=r.getName(t),g=this.name;return In(this)||(g=""),g=g?Er(g)+(e?": ":"
    "):"",e?c+g+u:g+c+(f?Er(f)+": "+u:u)},isAnimationEnabled:function(){if(Kf.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,n){var i=this.ecModel,r=ny.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),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});u(Ry,zy),u(Ry,ny);var By=function(){this.group=new Jp,this.uid=vr("viewComponent")};By.prototype={constructor:By,init:function(t,e){},render:function(t,e,n,i){},dispose:function(){}};var Vy=By.prototype;Vy.updateView=Vy.updateLayout=Vy.updateVisual=function(t,e,n,i){},En(By),Vn(By,{registerWhenExtend:!0});var Fy=function(){var t=Dn();return function(e){var n=t(e),i=e.pipelineContext,r=n.large,o=n.canProgressiveRender,a=n.large=i.large,s=n.canProgressiveRender=i.canProgressiveRender;return!!(r^a||o^s)&&"reset"}},Hy=Dn(),Gy=Fy();ia.prototype={type:"chart",init:function(t,e){},render:function(t,e,n,i){},highlight:function(t,e,n,i){oa(t.getData(),i,"emphasis")},downplay:function(t,e,n,i){oa(t.getData(),i,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null};var Wy=ia.prototype;Wy.updateView=Wy.updateLayout=Wy.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},En(ia),Vn(ia,{registerWhenExtend:!0}),ia.markUpdateMethod=function(t,e){Hy(t).updateMethod=e};var Zy={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)}}},Uy="\0__throttleOriginMethod",Xy="\0__throttleRate",jy="\0__throttleType",Yy={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=(t.visualColorAccessPath||"itemStyle.color").split("."),r=t.get(i)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(n.setVisual("color",r),!e.isSeriesFiltered(t)){"function"!=typeof r||r instanceof wv||n.each(function(e){n.setItemVisual(e,"color",r(t.getDataParams(e)))});return{dataEach:n.hasItemOption?function(t,e){var n=t.getItemModel(e).get(i,!0);null!=n&&t.setItemVisual(e,"color",n)}:null}}}},qy={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:""}}}},$y=function(t,e){function n(t,e){if("string"!=typeof t)return t;var n=t;return d(e,function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),n}function i(t){var e=o.get(t);if(null==e){for(var n=t.split("."),i=qy.aria,r=0;r1?"series.multiple.prefix":"series.single.prefix"),{seriesCount:a}),e.eachSeries(function(t,e){if(e1?"multiple":"single")+".";o=n(o=i(s?h+"withName":h+"withoutName"),{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:r(t.subType)});var c=t.getData();window.data=c,c.count()>l?o+=n(i("data.partialData"),{displayCnt:l}):o+=i("data.allData");for(var d=[],p=0;pn.bockIndex?n.step:null}}},Qy.getPipeline=function(t){return this._pipelineMap.get(t)},Qy.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold");t.pipelineContext=n.context={canProgressiveRender:r,large:o}},Qy.restorePipelines=function(t){var e=this,n=e._pipelineMap=N();t.eachSeries(function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),bockIndex:-1,step:i||700,count:0}),Sa(e,t,t.dataTask)})},Qy.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),n=this.api;d([this._dataProcessorHandlers,this._visualHandlers],function(i){d(i,function(i){var r=t.get(i.uid)||t.set(i.uid,[]);i.reset&&fa(this,i,r,e,n),i.overallReset&&pa(this,i,r,e,n)},this)},this)},Qy.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,Sa(this,e,r)},Qy.performDataProcessorTasks=function(t,e){da(this,this._dataProcessorHandlers,t,e,{block:!0})},Qy.performVisualTasks=function(t,e,n){da(this,this._visualHandlers,t,e,n)},Qy.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},Qy.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.bockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var Jy=Qy.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)};ca.wrapStageHandler=function(t,e){return x(t)&&(t={overallReset:t,seriesType:Ma(t)}),t.uid=vr("stageHandler"),e&&(t.visualType=e),t};var tx,ex={},nx={};Ia(ex,py),Ia(nx,vo),ex.eachSeriesByType=ex.eachRawSeriesByType=function(t){tx=t},ex.eachComponent=function(t){"series"===t.mainType&&t.subType&&(tx=t.subType)};var ix=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],rx={color:ix,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],ix]},ox=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],ax={color:ox,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:"#eee"},crossStyle:{color:"#eee"}}},legend:{textStyle:{color:"#eee"}},textStyle:{color:"#eee"},title:{textStyle:{color:"#eee"}},toolbox:{iconStyle:{normal:{borderColor:"#eee"}}},dataZoom:{textStyle:{color:"#eee"}},visualMap:{textStyle:{color:"#eee"}},timeline:{lineStyle:{color:"#eee"},itemStyle:{normal:{color:ox[1]}},label:{normal:{textStyle:{color:"#eee"}}},controlStyle:{normal:{color:"#eee",borderColor:"#eee"}}},timeAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},logAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},valueAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},categoryAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},line:{symbol:"circle"},graph:{color:ox},gauge:{title:{textStyle:{color:"#eee"}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};ax.categoryAxis.splitLine.show=!1;var sx=P,lx=d,hx=x,ux=w,cx=Qv.parseClassType,dx={zrender:"4.0.3"},fx=1e3,px=1e3,gx=3e3,mx={PROCESSOR:{FILTER:fx,STATISTIC:5e3},VISUAL:{LAYOUT:px,GLOBAL:2e3,CHART:gx,COMPONENT:4e3,BRUSH:5e3}},vx="__flagInMainProcess",yx="__optionUpdated",xx=/^[a-zA-Z0-9_]+$/;Ca.prototype.on=Ta("on"),Ca.prototype.off=Ta("off"),Ca.prototype.one=Ta("one"),u(Ca,xp);var _x=Da.prototype;_x._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[yx]){var e=this[yx].silent;this[vx]=!0,ka(this),bx.update.call(this),this[vx]=!1,this[yx]=!1,za.call(this,e),Ea.call(this,e)}else if(t.unfinished){var n=1,i=this._model;this._api;t.unfinished=!1;do{var r=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),La(this,i),t.performVisualTasks(i),Ha(this,this._model,0,"remain"),n-=+new Date-r}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},_x.getDom=function(){return this._dom},_x.getZr=function(){return this._zr},_x.setOption=function(t,e,n){var i;if(ux(e)&&(n=e.lazyUpdate,i=e.silent,e=e.notMerge),this[vx]=!0,!this._model||e){var r=new xo(this._api),o=this._theme,a=this._model=new py(null,null,o,r);a.scheduler=this._scheduler,a.init(null,null,o,r)}this._model.setOption(t,Cx),n?(this[yx]={silent:i},this[vx]=!1):(ka(this),bx.update.call(this),this._zr.flush(),this[yx]=!1,this[vx]=!1,za.call(this,i),Ea.call(this,i))},_x.setTheme=function(){console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},_x.getModel=function(){return this._model},_x.getOption=function(){return this._model&&this._model.getOption()},_x.getWidth=function(){return this._zr.getWidth()},_x.getHeight=function(){return this._zr.getHeight()},_x.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},_x.getRenderedCanvas=function(t){if(Kf.canvasSupported)return(t=t||{}).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},_x.getSvgDataUrl=function(){if(Kf.svgSupported){var t=this._zr;return d(t.storage.getDisplayList(),function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},_x.getDataURL=function(t){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;lx(e,function(t){n.eachComponent({mainType:t},function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)})});var o="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return lx(i,function(t){t.group.ignore=!1}),o},_x.getConnectedDataURL=function(t){if(Kf.canvasSupported){var e=this.group,i=Math.min,r=Math.max;if(Ox[e]){var o=1/0,a=1/0,s=-1/0,l=-1/0,h=[],u=t&&t.pixelRatio||1;d(Lx,function(u,c){if(u.group===e){var d=u.getRenderedCanvas(n(t)),f=u.getDom().getBoundingClientRect();o=i(f.left,o),a=i(f.top,a),s=r(f.right,s),l=r(f.bottom,l),h.push({dom:d,left:f.left,top:f.top})}});var c=(s*=u)-(o*=u),f=(l*=u)-(a*=u),p=lp();p.width=c,p.height=f;var g=mn(p);return lx(h,function(t){var e=new je({style:{x:t.left*u-o,y:t.top*u-a,image:t.dom}});g.add(e)}),g.refreshImmediately(),p.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},_x.convertToPixel=v(Aa,"convertToPixel"),_x.convertFromPixel=v(Aa,"convertFromPixel"),_x.containPixel=function(t,e){var n;return t=An(this._model,t),d(t,function(t,i){i.indexOf("Models")>=0&&d(t,function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n|=!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n|=o.containPoint(e,t))}},this)},this),!!n},_x.getVisual=function(t,e){var n=(t=An(this._model,t,{defaultMainType:"series"})).seriesModel.getData(),i=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?n.indexOfRawIndex(t.dataIndex):null;return null!=i?n.getItemVisual(i,e):n.getVisual(e)},_x.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},_x.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var bx={prepareAndUpdate:function(t){ka(this),bx.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,o=this._scheduler;if(e){e.restoreData(t),o.performSeriesTasks(e),r.create(e,n),o.performDataProcessorTasks(e,t),La(this,e),r.update(e,n),Ba(e),o.performVisualTasks(e,t),Va(this,e,n,t);var a=e.get("backgroundColor")||"transparent";if(Kf.canvasSupported)i.setBackgroundColor(a);else{var s=Mt(a);a=Lt(s,"rgb"),0===s[3]&&(a="transparent")}Ga(e,n)}},updateTransform:function(t){var e=this._model,n=this,i=this._api;if(e){var r=[];e.eachComponent(function(o,a){var s=n.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,e,i,t);l&&l.update&&r.push(s)}else r.push(s)});var o=N();e.eachSeries(function(r){var a=n._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,e,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)}),Ba(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:o}),Ha(n,e,0,t,o),Ga(e,this._api)}},updateView:function(t){var e=this._model;e&&(ia.markUpdateMethod(t,"updateView"),Ba(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Va(this,this._model,this._api,t),Ga(e,this._api))},updateVisual:function(t){bx.update.call(this,t)},updateLayout:function(t){bx.update.call(this,t)}};_x.resize=function(t){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this[vx]=!0,n&&ka(this),bx.update.call(this),this[vx]=!1,za.call(this,i),Ea.call(this,i)}},_x.showLoading=function(t,e){if(ux(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Px[t]){var n=Px[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},_x.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},_x.makeActionFromEvent=function(t){var e=o({},t);return e.type=Ix[t.type],e},_x.dispatchAction=function(t,e){ux(e)||(e={silent:!!e}),Mx[t.type]&&this._model&&(this[vx]?this._pendingActions.push(t):(Oa.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&Kf.browser.weChat&&this._throttledZrFlush(),za.call(this,e.silent),Ea.call(this,e.silent)))},_x.appendData=function(t){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0},_x.on=Ta("on"),_x.off=Ta("off"),_x.one=Ta("one");var Sx=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];_x._initEvents=function(){lx(Sx,function(t){this._zr.on(t,function(e){var n,i=this.getModel(),r=e.target;if("globalout"===t)n={};else if(r&&null!=r.dataIndex){var a=r.dataModel||i.getSeriesByIndex(r.seriesIndex);n=a&&a.getDataParams(r.dataIndex,r.dataType)||{}}else r&&r.eventData&&(n=o({},r.eventData));n&&(n.event=e,n.type=t,this.trigger(t,n))},this)},this),lx(Ix,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},_x.isDisposed=function(){return this._disposed},_x.clear=function(){this.setOption({series:[]},!0)},_x.dispose=function(){if(!this._disposed){this._disposed=!0,Pn(this.getDom(),Nx,"");var t=this._api,e=this._model;lx(this._componentsViews,function(n){n.dispose(e,t)}),lx(this._chartsViews,function(n){n.dispose(e,t)}),this._zr.dispose(),delete Lx[this.id]}},u(Da,xp);var Mx={},Ix={},Tx=[],Cx=[],Dx=[],Ax=[],kx={},Px={},Lx={},Ox={},zx=new Date-0,Ex=new Date-0,Nx="_echarts_instance_",Rx={},Bx=Ya;es(2e3,Yy),Ka(Dy),Qa(5e3,function(t){var e=N();t.eachSeries(function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={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(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}}),e.each(No)}),is("default",function(t,e){a(e=e||{},{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var n=new gv({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),i=new xv({shape:{startAngle:-Ky/2,endAngle:-Ky/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),r=new gv({style:{fill:"none",text:e.text,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});i.animateShape(!0).when(1e3,{endAngle:3*Ky/2}).start("circularInOut"),i.animateShape(!0).when(1e3,{startAngle:3*Ky/2}).delay(300).start("circularInOut");var o=new Jp;return o.add(i),o.add(r),o.add(n),o.resize=function(){var e=t.getWidth()/2,o=t.getHeight()/2;i.setShape({cx:e,cy:o});var a=i.shape.r;r.setShape({x:e-a,y:o-a,width:2*a,height:2*a}),n.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},o.resize(),o}),Ja({type:"highlight",event:"highlight",update:"highlight"},R),Ja({type:"downplay",event:"downplay",update:"downplay"},R),$a("light",rx),$a("dark",ax);var Vx={};hs.prototype={constructor:hs,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=this._old,e=this._new,n={},i=[],r=[];for(us(t,{},i,"_oldKeyGetter",this),us(e,n,r,"_newKeyGetter",this),o=0;o=e)){for(var n,i=this._chunkSize,r=this._rawData,o=this._storage,a=this.dimensions,s=this._dimensionInfos,l=this._nameList,h=this._idList,u=this._rawExtent,c=this._nameRepeatCount={},d=this._chunkCount,f=d-1,p=0;pu[I][1]&&(u[I][1]=C)}if(!r.pure){var D=l[_];w&&!D&&(null!=n?D=this._getNameFromStore(_):null!=w.name&&(l[_]=D=w.name));var A=null==w?null:w.id;null==A&&null!=D&&(c[D]=c[D]||0,A=D,c[D]>0&&(A+="__ec__"+c[D]),c[D]++),null!=A&&(h[_]=A)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=e,this._extent={},vs(this)}},qx._getNameFromStore=function(t){var e=this._nameDimIdx;if(null!=e){var n=this._chunkSize,i=Math.floor(t/n),r=t%n,o=this.dimensions[e],a=this._dimensionInfos[o].ordinalMeta;if(a)return a.categories[t];var s=this._storage[o][i];return s&&s[r]}},qx._getIdFromStore=function(t){var e=this._idDimIdx;if(null!=e){var n=this._chunkSize,i=Math.floor(t/n),r=t%n,o=this.dimensions[e],a=this._dimensionInfos[o].ordinalMeta;if(a)return a.categories[t];var s=this._storage[o][i];return s&&s[r]}},qx.count=function(){return this._count},qx.getIndices=function(){if(this._indices)return new(t=this._indices.constructor)(this._indices.buffer,0,this._count);for(var t=ps(this),e=new t(this.count()),n=0;n=0&&e=0&&eo&&(o=s)}return n=[r,o],this._extent[t]=n,n},qx.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},qx.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},qx.getCalculationInfo=function(t){return this._calculationInfo[t]},qx.setCalculationInfo=function(t,e){Hx(t)?o(this._calculationInfo,t):this._calculationInfo[t]=e},qx.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n=this._rawCount||t<0)return-1;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},qx.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var r=Number.MAX_VALUE,o=-1,a=0,s=this.count();a=0&&o<0)&&(r=h,o=l,i.length=0),i.push(a))}return i},qx.getRawIndex=ys,qx.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n=l&&w<=h&&(o[a++]=c),c++;u=!0}else if(2===i){for(var d=this._storage[s],v=this._storage[e[1]],y=t[e[1]][0],x=t[e[1]][1],f=0;f=l&&w<=h&&b>=y&&b<=x&&(o[a++]=c),c++}u=!0}}if(!u)if(1===i)for(m=0;m=l&&w<=h&&(o[a++]=M)}else for(m=0;mt[I][1])&&(S=!1)}S&&(o[a++]=this.getRawIndex(m))}return ab[1]&&(b[1]=w)}}}return r},qx.downSample=function(t,e,n,i){for(var r=bs(this,[t]),o=r._storage,a=[],s=Math.floor(1/e),l=o[t],h=this.count(),u=this._chunkSize,c=r._rawExtent[t],d=new(ps(this))(h),f=0,p=0;ph-p&&(s=h-p,a.length=s);for(var g=0;gc[1]&&(c[1]=x),d[f++]=_}return r._count=f,r._indices=d,r.getRawIndex=xs,r},qx.getItemModel=function(t){var e=this.hostModel;return new pr(this.getRawDataItem(t),e,e&&e.ecModel)},qx.diff=function(t){var e=this;return new hs(t?t.getIndices():[],this.getIndices(),function(e){return _s(t,e)},function(t){return _s(e,t)})},qx.getVisual=function(t){var e=this._visual;return e&&e[t]},qx.setVisual=function(t,e){if(Hx(t))for(var n in t)t.hasOwnProperty(n)&&this.setVisual(n,t[n]);else this._visual=this._visual||{},this._visual[t]=e},qx.setLayout=function(t,e){if(Hx(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},qx.getLayout=function(t){return this._layout[t]},qx.getItemLayout=function(t){return this._itemLayouts[t]},qx.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?o(this._itemLayouts[t]||{},e):e},qx.clearItemLayouts=function(){this._itemLayouts.length=0},qx.getItemVisual=function(t,e,n){var i=this._itemVisuals[t],r=i&&i[e];return null!=r||n?r:this.getVisual(e)},qx.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{},r=this.hasItemVisual;if(this._itemVisuals[t]=i,Hx(e))for(var o in e)e.hasOwnProperty(o)&&(i[o]=e[o],r[o]=!0);else i[e]=n,r[e]=!0},qx.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var $x=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};qx.setItemGraphicEl=function(t,e){var n=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse($x,e)),this._graphicEls[t]=e},qx.getItemGraphicEl=function(t){return this._graphicEls[t]},qx.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(n,i){n&&t&&t.call(e,n,i)})},qx.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new Yx(e,this.hostModel)}if(t._storage=this._storage,ms(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?xs:ys,t._extent=n(this._extent),t._approximateExtent=n(this._approximateExtent),t},qx.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(A(arguments)))})},qx.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],qx.CHANGABLE_METHODS=["filterSelf","selectRange"];var Kx=function(t,e){return e=e||{},Is(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};Os.prototype.parse=function(t){return t},Os.prototype.getSetting=function(t){return this._setting[t]},Os.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},Os.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},Os.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},Os.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},Os.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Os.prototype.getExtent=function(){return this._extent.slice()},Os.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},Os.prototype.getTicksLabels=function(){for(var t=[],e=this.getTicks(),n=0;ne[1]&&(e[1]=t[1]),i_.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=Bs(t)},getTicks:function(){return Hs(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getTicksLabels:function(){for(var t=[],e=this.getTicks(),n=0;n>>1;t[r][1]n&&(o=n);var a=u_.length,s=l_(u_,o,0,a),l=u_[Math.min(s,a-1)],h=l[1];"year"===l[0]&&(h*=Lr(r/h/t,!0));var u=this.getSetting("useUTC")?0:60*new Date(+i[0]||+i[1]).getTimezoneOffset()*1e3,c=[Math.round(a_((i[0]-u)/h)*h+u),Math.round(s_((i[1]-u)/h)*h+u)];Fs(c,i),this._stepLvl=l,this._interval=h,this._niceExtent=c},parse:function(t){return+Ar(t)}});d(["contain","normalize"],function(t){h_.prototype[t]=function(e){return o_[t].call(this,this.parse(e))}});var u_=[["hh:mm:ss",1e3],["hh:mm:ss",5e3],["hh:mm:ss",1e4],["hh:mm:ss",15e3],["hh:mm:ss",3e4],["hh:mm\nMM-dd",6e4],["hh:mm\nMM-dd",3e5],["hh:mm\nMM-dd",6e5],["hh:mm\nMM-dd",9e5],["hh:mm\nMM-dd",18e5],["hh:mm\nMM-dd",36e5],["hh:mm\nMM-dd",72e5],["hh:mm\nMM-dd",216e5],["hh:mm\nMM-dd",432e5],["MM-dd\nyyyy",864e5],["MM-dd\nyyyy",1728e5],["MM-dd\nyyyy",2592e5],["MM-dd\nyyyy",3456e5],["MM-dd\nyyyy",432e6],["MM-dd\nyyyy",5184e5],["week",6048e5],["MM-dd\nyyyy",864e6],["week",12096e5],["week",18144e5],["month",26784e5],["week",36288e5],["month",53568e5],["week",36288e5],["quarter",8208e6],["month",107136e5],["month",13392e6],["half-year",16416e6],["month",214272e5],["month",26784e6],["year",32832e6]];h_.create=function(t){return new h_({useUTC:t.ecModel.get("useUTC")})};var c_=Os.prototype,d_=i_.prototype,f_=Mr,p_=wr,g_=Math.floor,m_=Math.ceil,v_=Math.pow,y_=Math.log,x_=Os.extend({type:"log",base:10,$constructor:function(){Os.apply(this,arguments),this._originalScale=new i_},getTicks:function(){var t=this._originalScale,e=this._extent,n=t.getExtent();return f(d_.getTicks.call(this),function(i){var r=wr(v_(this.base,i));return r=i===e[0]&&t.__fixMin?Xs(r,n[0]):r,r=i===e[1]&&t.__fixMax?Xs(r,n[1]):r},this)},getLabel:d_.getLabel,scale:function(t){return t=c_.scale.call(this,t),v_(this.base,t)},setExtent:function(t,e){var n=this.base;t=y_(t)/y_(n),e=y_(e)/y_(n),d_.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=c_.getExtent.call(this);e[0]=v_(t,e[0]),e[1]=v_(t,e[1]);var n=this._originalScale,i=n.getExtent();return n.__fixMin&&(e[0]=Xs(e[0],i[0])),n.__fixMax&&(e[1]=Xs(e[1],i[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=y_(t[0])/y_(e),t[1]=y_(t[1])/y_(e),c_.unionExtent.call(this,t)},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},niceTicks:function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=kr(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[wr(m_(e[0]/i)*i),wr(g_(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},niceExtent:function(t){d_.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});d(["contain","normalize"],function(t){x_.prototype[t]=function(e){return e=y_(e)/y_(this.base),c_[t].call(this,e)}}),x_.create=function(){return new x_};var __={getFormattedLabels:function(){return Qs(this.axis,this.get("axisLabel.formatter"))},getMin:function(t){var e=this.option,n=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=n&&"dataMin"!==n&&"function"!=typeof n&&!I(n)&&(n=this.axis.scale.parse(n)),n},getMax:function(t){var e=this.option,n=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=n&&"dataMax"!==n&&"function"!=typeof n&&!I(n)&&(n=this.axis.scale.parse(n)),n},getNeedCrossZero:function(){var t=this.option;return null==t.rangeStart&&null==t.rangeEnd&&!t.scale},getCoordSysModel:R,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},w_=Ai({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),b_=Ai({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),S_=Ai({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,h=Math.asin(s/a),u=Math.cos(h)*a,c=Math.sin(h),d=Math.cos(h),f=.6*a,p=.7*a;t.moveTo(n-u,l+s),t.arc(n,l,a,Math.PI-h,2*Math.PI+h),t.bezierCurveTo(n+u-c*f,l+s+d*f,n,i-p,n,i),t.bezierCurveTo(n,i-p,n-u+c*f,l+s+d*f,n-u,l+s),t.closePath()}}),M_=Ai({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),I_={line:function(t,e,n,i,r){r.x1=t,r.y1=e+i/2,r.x2=t+n,r.y2=e+i/2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},T_={};d({line:mv,rect:gv,roundRect:gv,square:gv,circle:av,diamond:b_,pin:S_,arrow:M_,triangle:w_},function(t,e){T_[e]=new t});var C_=Ai({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style;"pin"===this.shape.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,n){var i=e.symbolType,r=T_[i];"none"!==e.symbolType&&(r||(r=T_[i="rect"]),I_[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n))}}),D_={isDimensionStacked:As,enableDataStack:Ds},A_=(Object.freeze||Object)({createList:function(t){return ks(t.getSource(),t)},getLayoutRect:Gr,dataStack:D_,createScale:function(t,e){var n=e;pr.isInstance(e)||u(n=new pr(e),__);var i=$s(n);return i.setExtent(t[0],t[1]),qs(i,n),i},mixinAxisModelCommonMethods:function(t){u(t,__)},completeDimensions:Is,createDimensions:Kx,createSymbol:el}),k_=1e-8;rl.prototype={constructor:rl,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s0}),function(t){var e=t.properties,n=t.geometry,i=n.coordinates,r=[];"Polygon"===n.type&&r.push({type:"polygon",exterior:i[0],interiors:i.slice(1)}),"MultiPolygon"===n.type&&d(i,function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var o=new rl(e.name,r,e.cp);return o.properties=e,o})},L_=xr,O_=[0,1],z_=function(t,e,n){this.dim=t,this.scale=e,this._extent=n||[0,0],this.inverse=!1,this.onBand=!1,this._labelInterval};z_.prototype={constructor:z_,contain:function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return Ir(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var n=this._extent;n[0]=t,n[1]=e},dataToCoord:function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&sl(n=n.slice(),i.count()),L_(t,O_,n,e)},coordToData:function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&sl(n=n.slice(),i.count());var r=L_(t,n,O_,e);return this.scale.scale(r)},pointToData:function(t,e){},getTicksCoords:function(t){if(this.onBand&&!t){for(var e=this.getBands(),n=[],i=0;i0&&wl(n[r-1]);r--);for(;i0&&wl(n[o-1]);o--);for(;r=0){var a=r.getItemGraphicEl(o);if(!a){var s=r.getItemLayout(o);if(!s)return;(a=new cl(r,o)).position=s,a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,r.setItemGraphicEl(o,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else ia.prototype.highlight.call(this,t,e,n,i)},downplay:function(t,e,n,i){var r=t.getData(),o=Cn(r,i);if(null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else ia.prototype.downplay.call(this,t,e,n,i)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new K_({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new Q_({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(n),this._polygon=n,n},_getSymbolIgnoreFunc:function(t,e){var n=e.getAxesByScale("ordinal")[0];if(n&&n.isLabelIgnored)return m(n.isLabelIgnored,n)},_updateAnimation:function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,h=W_(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),u=h.current,c=h.stackedOnCurrent,d=h.next,f=h.stackedOnNext;r&&(u=zl(h.current,n,r),c=zl(h.stackedOnCurrent,n,r),d=zl(h.next,n,r),f=zl(h.stackedOnNext,n,r)),a.shape.__points=h.current,a.shape.points=u,ar(a,{shape:{points:d}},l),s&&(s.setShape({points:u,stackedOnPoints:c}),ar(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=h.status,m=0;me&&(e=t[n]);return e},min:function(t){for(var e=1/0,n=0;ne[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},isLabelIgnored:function(t){if("category"===this.type){var e=this.getLabelInterval();return"function"==typeof e&&!e(t,this.scale.getLabel(t))||t%(e+1)}},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},h(rw,z_);var ow={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)"]}}},aw={};aw.categoryAxis=i({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},ow),aw.valueAxis=i({boundaryGap:[0,0],splitNumber:5},ow),aw.timeAxis=a({scale:!0,min:"dataMin",max:"dataMax"},aw.valueAxis),aw.logAxis=a({scale:!0,logBase:10},aw.valueAxis);var sw=["value","category","time","log"],lw=function(t,e,n,o){d(sw,function(a){e.extend({type:t+"Axis."+a,mergeDefaultAndTheme:function(e,r){var o=this.layoutMode,s=o?Ur(e):{};i(e,r.getTheme().get(a+"Axis")),i(e,this.getDefaultOption()),e.type=n(t,e),o&&Zr(e,s,o)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=zs.createByAxisModel(this))},getCategories:function(){if("category"===this.option.type)return this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:r([{},aw[a+"Axis"],o],!0)})}),Qv.registerSubTypeDefaulter(t+"Axis",v(n,t))},hw=Qv.extend({type:"cartesian2dAxis",axis:null,init:function(){hw.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){hw.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){hw.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});i(hw.prototype,__);var uw={offset:0};lw("x",hw,Bl,uw),lw("y",hw,Bl,uw),Qv.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 cw=d,dw=function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)},fw=qs,pw=Gl.prototype;pw.type="grid",pw.axisPointerEnabled=!0,pw.getRect=function(){return this._rect},pw.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),cw(n.x,function(t){fw(t.scale,t.model)}),cw(n.y,function(t){fw(t.scale,t.model)}),cw(n.x,function(t){Wl(n,"y",t)}),cw(n.y,function(t){Wl(n,"x",t)}),this.resize(this.model,e)},pw.resize=function(t,e,n){function i(){cw(o,function(t){var e=t.isHorizontal(),n=e?[0,r.width]:[0,r.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),Ul(t,e?r.x:r.y)})}var r=Gr(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=r;var o=this._axesList;i(),!n&&t.get("containLabel")&&(cw(o,function(t){if(!t.model.get("axisLabel.inside")){var e=Hl(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get("axisLabel.margin");r[n]-=e[n]+i,"top"===t.position?r.y+=e.height+i:"left"===t.position&&(r.x+=e.width+i)}}}),i())},pw.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n){if(null==e)for(var i in n)if(n.hasOwnProperty(i))return n[i];return n[e]}},pw.getAxes=function(){return this._axesList.slice()},pw.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}w(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;ih[1]?-1:1,c=["start"===r?h[0]-u*l:"end"===r?h[1]+u*l:(h[0]+h[1])/2,th(r)?t.labelOffset+a*l:0],d=e.get("nameRotate");null!=d&&(d=d*mw/180);var f;th(r)?i=xw(t.rotation,null!=d?d:t.rotation,a):(i=ql(t,r,d||0,h),null!=(f=t.axisNameAvailableWidth)&&(f=Math.abs(f/Math.sin(i.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},m=g.ellipsis,v=T(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=m&&null!=v?Wv(n,v,p,m,{minChar:2,placeholder:g.placeholder}):n,x=e.get("tooltip",!0),_=e.mainType,w={componentType:_,name:n,$vars:["name"]};w[_+"Index"]=e.componentIndex;var b=new ov({anid:"name",__fullText:n,__truncatedText:y,position:c,rotation:i.rotation,silent:$l(e),z2:1,tooltip:x&&x.show?o({content:n,formatter:function(){return n},formatterParams:w},x):null});Ki(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:i.textAlign,textVerticalAlign:i.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=Yl(e),b.eventData.targetType="axisName",b.eventData.name=n),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},xw=vw.innerTextLayout=function(t,e,n){var i,r,o=Cr(e-t);return Dr(o)?(r=n>0?"top":"bottom",i="center"):Dr(o-mw)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},_w=vw.ifIgnoreOnTick=function(t,e,n,i,r,o){if(0===e&&r||e===i-1&&o)return!1;var a,s=t.scale;return"ordinal"===s.type&&("function"==typeof n?(a=s.getTicks()[e],!n(a,s.getLabel(a))):e%(n+1))},ww=vw.getInterval=function(t,e){var n=t.get("interval");return null!=n&&"auto"!=n||(n=e),n},bw=d,Sw=v,Mw=os({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,n,i){this.axisPointerClass&&hh(t),Mw.superApply(this,"render",arguments),ph(this,t,0,n,0,!0)},updateAxisPointer:function(t,e,n,i,r){ph(this,t,0,n,0,!1)},remove:function(t,e){var n=this._axisPointer;n&&n.remove(e),Mw.superApply(this,"remove",arguments)},dispose:function(t,e){gh(this,e),Mw.superApply(this,"dispose",arguments)}}),Iw=[];Mw.registerAxisPointerClass=function(t,e){Iw[t]=e},Mw.getAxisPointerClass=function(t){return t&&Iw[t]};var Tw=vw.ifIgnoreOnTick,Cw=vw.getInterval,Dw=["axisLine","axisTickLabel","axisName"],Aw=["splitArea","splitLine"],kw=Mw.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,n,i){this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new Jp,this.group.add(this._axisGroup),t.get("show")){var o=t.getCoordSysModel(),a=mh(o,t),s=new vw(t,a);d(Dw,s.add,s),this._axisGroup.add(s.getGroup()),d(Aw,function(e){t.get(e+".show")&&this["_"+e](t,o,a.labelInterval)},this),cr(r,this._axisGroup,t),kw.superCall(this,"render",t,e,n,i)}},_splitLine:function(t,e,n){var i=t.axis;if(!i.scale.isBlank()){var r=t.getModel("splitLine"),o=r.getModel("lineStyle"),s=o.get("color"),l=Cw(r,n);s=y(s)?s:[s];for(var h=e.coordinateSystem.getRect(),u=i.isHorizontal(),c=0,d=i.getTicksCoords(),f=i.scale.getTicks(),p=t.get("axisLabel.showMinLabel"),g=t.get("axisLabel.showMaxLabel"),m=[],v=[],x=o.getLineStyle(),_=0;_1){var c;"string"==typeof r?c=ew[r]:"function"==typeof r&&(c=r),c&&t.setData(i.downSample(s.dim,1/u,c,nw))}}}}}("line")),Ry.extend({type:"series.__base_bar__",getInitialData:function(t,e){return ks(this.getSource(),this)},getMarkerPosition:function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,itemStyle:{},emphasis:{}}}).extend({type:"series.bar",dependencies:["grid","polar"],brushSelector:"rect"});var Pw=Jg([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),Lw={getBarItemStyle:function(t){var e=Pw(this,t);if(this.getBorderLineDash){var n=this.getBorderLineDash();n&&(e.lineDash=n)}return e}},Ow=["itemStyle","barBorderWidth"];o(pr.prototype,Lw),ss({type:"bar",render:function(t,e,n){var i=t.get("coordinateSystem");return"cartesian2d"!==i&&"polar"!==i||this._render(t,e,n),this.group},dispose:R,_render:function(t,e,n){var i,r=this.group,o=t.getData(),a=this._data,s=t.coordinateSystem,l=s.getBaseAxis();"cartesian2d"===s.type?i=l.isHorizontal():"polar"===s.type&&(i="angle"===l.dim);var h=t.isAnimationEnabled()?t:null;o.diff(a).add(function(e){if(o.hasValue(e)){var n=o.getItemModel(e),a=Ew[s.type](o,e,n),l=zw[s.type](o,e,n,a,i,h);o.setItemGraphicEl(e,l),r.add(l),wh(l,o,e,n,a,t,i,"polar"===s.type)}}).update(function(e,n){var l=a.getItemGraphicEl(n);if(o.hasValue(e)){var u=o.getItemModel(e),c=Ew[s.type](o,e,u);l?ar(l,{shape:c},h,e):l=zw[s.type](o,e,u,c,i,h,!0),o.setItemGraphicEl(e,l),r.add(l),wh(l,o,e,u,c,t,i,"polar"===s.type)}else r.remove(l)}).remove(function(t){var e=a.getItemGraphicEl(t);"cartesian2d"===s.type?e&&xh(t,h,e):e&&_h(t,h,e)}).execute(),this._data=o},remove:function(t,e){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl(function(e){"sector"===e.type?_h(e.dataIndex,t,e):xh(e.dataIndex,t,e)}):n.removeAll()}});var zw={cartesian2d:function(t,e,n,i,r,a,s){var l=new gv({shape:o({},i)});if(a){var h=l.shape,u=r?"height":"width",c={};h[u]=0,c[u]=i[u],Av[s?"updateProps":"initProps"](l,{shape:c},a,e)}return l},polar:function(t,e,n,i,r,o,s){var l=i.startAngle0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};ts(v(function(t,e,n){var i=[];e.eachSeriesByType(t,function(t){t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type&&i.push(t)});var r=Zs(i),o={};d(i,function(t){var e=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=Gs(t),s=r[Ws(i)][a],l=s.offset,h=s.width,u=n.getOtherAxis(i),c=t.get("barMinHeight")||0;o[a]=o[a]||[],e.setLayout({offset:l,size:h});for(var d=e.mapDimension(u.dim),f=e.mapDimension(i.dim),p=As(e,d,f),g=u.isHorizontal(),m=i.onZero||p?u.toGlobalCoord(u.dataToCoord(0)):u.getGlobalExtent()[0],v=0,y=e.count();v=0?"p":"n",b=m;p&&(o[a][_]||(o[a][_]={p:m,n:m}),b=o[a][_][w]);var S,M,I,T;if(g)S=b,M=(C=n.dataToPoint([x,_]))[1]+l,I=C[0]-m,T=h,Math.abs(I)0&&"scale"!==h){var d=r.getItemLayout(0),f=Math.max(n.getWidth(),n.getHeight())/2,p=m(a.removeClipPath,a);a.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}this._data=r}},dispose:function(){},_createClipPath:function(t,e,n,i,r,o,a){var s=new hv({shape:{cx:t,cy:e,r0:0,r:n,startAngle:i,endAngle:i,clockwise:r}});return sr(s,{shape:{endAngle:i+(r?1:-1)*Math.PI*2}},a,o),s},containPoint:function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}}});var Fw=function(t,e,n,i){var r,o,a=t.getData(),s=[],l=!1;a.each(function(n){var i,h,u,c,d=a.getItemLayout(n),f=a.getItemModel(n),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),m=f.getModel("labelLine"),v=m.get("length"),y=m.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);r=d.cx,o=d.cy;var b="inside"===g||"inner"===g;if("center"===g)i=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)+o;if(i=S+3*_,h=M+3*w,!b){var I=S+_*(v+e-d.r),T=M+w*(v+e-d.r),C=I+(_<0?-1:1)*y,D=T;i=C+(_<0?-5:5),h=D,u=[[S,M],[I,T],[C,D]]}c=b?"center":_>0?"left":"right"}var A=p.getFont(),k=p.get("rotate")?_<0?-x+Math.PI:-x:0,P=ce(t.getFormattedLabel(n,"normal")||a.getName(n),A,c,"top");l=!!k,d.label={x:i,y:h,position:g,height:P.height,len:v,len2:y,linePoints:u,textAlign:c,verticalAlign:"middle",rotation:k,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&Ch(s,r,o,e,n,i)},Hw=2*Math.PI,Gw=Math.PI/180;!function(t,e){d(e,function(e){e.update="updateView",Ja(e,function(n,i){var r={};return i.eachComponent({mainType:"series",subType:t,query:n},function(t){t[e.method]&&t[e.method](n.name,n.dataIndex);var i=t.getData();i.each(function(e){var n=i.getName(e);r[n]=t.isSelected(n)||!1})}),{name:n.name,selected:r}})})}("pie",[{type:"pieToggleSelect",event:"pieselectchanged",method:"toggleSelected"},{type:"pieSelect",event:"pieselected",method:"select"},{type:"pieUnSelect",event:"pieunselected",method:"unSelect"}]),es(function(t){return{getTargetSeries:function(e){var n={},i=N();return e.eachSeriesByType(t,function(t){t.__paletteScope=n,i.set(t.uid,t)}),i},reset:function(t,e){var n=t.getRawData(),i={},r=t.getData();r.each(function(t){var e=r.getRawIndex(t);i[e]=t}),n.each(function(e){var o=i[e],a=null!=o&&r.getItemVisual(o,"color",!0);if(a)n.setItemVisual(e,"color",a);else{var s=n.getItemModel(e).get("itemStyle.color")||t.getColorFromPalette(n.getName(e)||e+"",t.__paletteScope,n.count());n.setItemVisual(e,"color",s),null!=o&&r.setItemVisual(o,"color",s)}})}}}("pie")),ts(v(function(t,e,n,i){e.eachSeriesByType(t,function(t){var e=t.getData(),i=e.mapDimension("value"),r=t.get("center"),o=t.get("radius");y(o)||(o=[0,o]),y(r)||(r=[r,r]);var a=n.getWidth(),s=n.getHeight(),l=Math.min(a,s),h=_r(r[0],a),u=_r(r[1],s),c=_r(o[0],l/2),d=_r(o[1],l/2),f=-t.get("startAngle")*Gw,p=t.get("minAngle")*Gw,g=0;e.each(i,function(t){!isNaN(t)&&g++});var m=e.getSum(i),v=Math.PI/(m||g)*2,x=t.get("clockwise"),_=t.get("roseType"),w=t.get("stillShowZeroSum"),b=e.getDataExtent(i);b[0]=0;var S=Hw,M=0,I=f,T=x?1:-1;if(e.each(i,function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:x,cx:h,cy:u,r0:c,r:_?NaN:d});else{(i="area"!==_?0===m&&w?v:t*v:Hw/g)=0;s--){var l=2*s,h=i[l]-o/2,u=i[l+1]-a/2;if(t>=h&&e>=u&&t<=h+o&&e<=u+a)return s}return-1}}),Zw=Dh.prototype;Zw.isPersistent=function(){return!this._incremental},Zw.updateData=function(t){this.group.removeAll();var e=new Ww({rectHover:!0,cursor:"default"});e.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},Zw.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("symbolPoints");this.group.eachChild(function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)})}},Zw.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new Di({silent:!0})),this.group.add(this._incremental)):this._incremental=null},Zw.incrementalUpdate=function(t,e){var n;this._incremental?(n=new Ww,this._incremental.addDisplayable(n,!0)):((n=new Ww({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(n)),n.setShape({points:e.getLayout("symbolPoints")}),this._setCommon(n,e,!!this._incremental)},Zw._setCommon=function(t,e,n){var i=e.hostModel,r=e.getVisual("symbolSize");t.setShape("size",r instanceof Array?r:[r,r]),t.symbolProxy=el(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var o=t.shape.size[0]<4;t.useStyle(i.getModel("itemStyle").getItemStyle(o?["color","shadowBlur","shadowColor"]:["color"]));var a=e.getVisual("color");a&&t.setColor(a),n||(t.seriesIndex=i.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(t.dataIndex=n+(t.startIndex||0))}))},Zw.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},Zw._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},ss({type:"scatter",render:function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i),this._finished=!0},incrementalPrepareRender:function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},incrementalRender:function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},updateTransform:function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=tw().reset(t);r.progress&&r.progress({start:0,end:i.count()},i),this._symbolDraw.updateLayout(i)},_updateSymbolDraw:function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new Dh:new fl,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},remove:function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},dispose:function(){}}),es(J_("scatter","circle")),ts(tw("scatter")),Ka(function(t){var e=t.graphic;y(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])});var Uw=rs({type:"graphic",defaultOption:{elements:[],parentId:null},_elOptionsToUpdate:null,mergeOption:function(t){var e=this.option.elements;this.option.elements=null,Uw.superApply(this,"mergeOption",arguments),this.option.elements=e},optionUpdated:function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o);var a=Sn(r,o);Mn(a);var s=this._elOptionsToUpdate=[];d(a,function(t,e){var n=t.option;n&&(s.push(n),Oh(t,n),zh(r,e,n),Eh(r[e],n))},this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},_flatten:function(t,e,n){d(t,function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}},this)},useElOptionsToUpdate:function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t}});os({type:"graphic",init:function(t,e){this._elMap=N(),this._lastGraphicModel},render:function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t,n),this._relocate(t,n)},_updateElements:function(t,e){var n=t.useElOptionsToUpdate();if(n){var i=this._elMap,r=this.group;d(n,function(t){var e=t.$action,n=t.id,o=i.get(n),a=t.parentId,s=null!=a?i.get(a):r;if("text"===t.type){var l=t.style;t.hv&&t.hv[1]&&(l.textVerticalAlign=l.textBaseline=null),!l.hasOwnProperty("textFill")&&l.fill&&(l.textFill=l.fill),!l.hasOwnProperty("textStroke")&&l.stroke&&(l.textStroke=l.stroke)}var h=Ph(t);e&&"merge"!==e?"replace"===e?(kh(o,i),Ah(n,s,h,i)):"remove"===e&&kh(o,i):o?o.attr(h):Ah(n,s,h,i);var u=i.get(n);u&&(u.__ecGraphicWidth=t.width,u.__ecGraphicHeight=t.height)})}},_relocate:function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=n.length-1;o>=0;o--){var a=n[o],s=r.get(a.id);if(s){var l=s.parent;Wr(s,a,l===i?{width:e.getWidth(),height:e.getHeight()}:{width:l.__ecGraphicWidth||0,height:l.__ecGraphicHeight||0},null,{hv:a.hv,boundingMode:a.bounding})}}},_clear:function(){var t=this._elMap;t.each(function(e){kh(e,t)}),this._elMap=N()},dispose:function(){this._clear()}});var Xw=function(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=Cn(o,t);if(null==a||a<0||y(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)i=l.dataToPoint(o.getValues(f(l.dimensions,function(t){return o.mapDimension(t)}),a,!0))||[];else if(s){var h=s.getBoundingRect().clone();h.applyTransform(s.transform),i=[h.x+h.width/2,h.y+h.height/2]}return{point:i,el:s}},jw=d,Yw=v,qw=Dn(),$w=(rs({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}}}),Dn()),Kw=d,Qw=os({type:"axisPointer",render:function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";Xh("axisPointer",n,function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){Qh(e.getZr(),"axisPointer"),Qw.superApply(this._model,"remove",arguments)},dispose:function(t,e){Qh("axisPointer",e),Qw.superApply(this._model,"dispose",arguments)}}),Jw=Dn(),tb=n,eb=m;(Jh.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var h=l.graphicKey;h!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=h;var u=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=v(tu,e,u);this.updatePointerEl(a,l,c,e),this.updateLabelEl(a,l,c,e)}else a=this._group=new Jp,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);ru(a,e,!0),this._renderHandle(r)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=uh(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},makeElOption:function(t,e,n,i,r){},createPointerEl:function(t,e,n,i){var r=e.pointer;if(r){var o=Jw(t).pointerEl=new Av[r.type](tb(e.pointer));t.add(o)}},createLabelEl:function(t,e,n,i){if(e.label){var r=Jw(t).labelEl=new gv(tb(e.label));t.add(r),nu(r,i)}},updatePointerEl:function(t,e,n){var i=Jw(t).pointerEl;i&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,n,i){var r=Jw(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{shape:e.label.shape,position:e.label.position}),nu(r,i))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,n=this._api.getZr(),i=this._handle,r=e.getModel("handle"),o=e.get("status");if(!r.get("show")||!o||"hide"===o)return i&&n.remove(i),void(this._handle=null);var a;this._handle||(a=!0,i=this._handle=fr(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Ag(t.event)},onmousedown:eb(this._onHandleDragMove,this,0,0),drift:eb(this._onHandleDragMove,this),ondragend:eb(this._onHandleDragEnd,this)}),n.add(i)),ru(i,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];i.setStyle(r.getItemStyle(null,s));var l=r.get("size");y(l)||(l=[l,l]),i.attr("scale",[l[0]/2,l[1]/2]),ha(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,a)}},_moveHandleToValue:function(t,e){tu(this._axisPointerModel,!e&&this._moveAnimation,this._handle,iu(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(iu(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(iu(i)),Jw(n).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){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(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}}}).constructor=Jh,En(Jh);var nb=Jh.extend({makeElOption:function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=fu(a,o).getOtherAxis(o).getGlobalExtent(),h=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var u=ou(i),c=ib[s](o,h,l,u);c.style=u,t.graphicKey=c.type,t.pointer=c}uu(e,t,mh(a.model,n),n,i,r)},getHandleTransform:function(t,e,n){var i=mh(e.axis.grid.model,e,{labelInside:!1});return i.labelMargin=n.get("handle.margin"),{position:hu(e.axis,t,i),rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=fu(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,h=t.position;h[l]+=e[l],h[l]=Math.min(a[1],h[l]),h[l]=Math.max(a[0],h[l]);var u=(s[1]+s[0])/2,c=[u,u];c[l]=h[l];var d=[{verticalAlign:"middle"},{align:"center"}];return{position:h,rotation:t.rotation,cursorPoint:c,tooltipOption:d[l]}}}),ib={line:function(t,e,n,i){var r=cu([e,n[0]],[e,n[1]],pu(t));return zi({shape:r,style:i}),{type:"Line",shape:r}},shadow:function(t,e,n,i){var r=t.getBandWidth(),o=n[1]-n[0];return{type:"Rect",shape:du([e-r/2,n[0]],[r,o],pu(t))}}};Mw.registerAxisPointerClass("CartesianAxisPointer",nb),Ka(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!y(e)&&(t.axisPointer.link=[e])}}),Qa(mx.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=ih(t,e)}),Ja({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||m(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Uh(r)&&(r=Xw({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=Uh(r),h=o.axesInfo,u=s.axesInfo,c="leave"===i||Uh(r),d={},f={},p={list:[],map:{}},g={showPointer:Yw(Bh,f),showTooltip:Yw(Vh,p)};jw(s.coordSysMap,function(t,e){var n=l||t.containPoint(r);jw(s.coordSysAxesInfo[e],function(t,e){var i=t.axis,o=Wh(h,t);if(!c&&n&&(!h||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&Nh(t,a,g,!1,d)}})});var v={};return jw(u,function(t,e){var n=t.linkGroup;n&&!f[e]&&jw(n.axesInfo,function(e,i){var r=f[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,Zh(e),Zh(t)))),v[t.key]=o}})}),jw(v,function(t,e){Nh(u[e],t,g,!0,d)}),Fh(f,u,d),Hh(p,r,t,a),Gh(u,0,n),d}}),rs({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",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 rb=d,ob=zr,ab=["","-webkit-","-moz-","-o-"];yu.prototype={constructor:yu,_enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),n=t.style;"absolute"!==n.position&&"absolute"!==e.position&&(n.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+vu(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"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 n,i=this._zr;i&&i.painter&&(n=i.painter.getViewportRootOffset())&&(t+=n.offsetLeft,e+=n.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(m(this.hide,this),t)):this.hide())},isShow:function(){return this._show}};var sb=m,lb=d,hb=_r,ub=new gv({shape:{x:-1,y:-1,width:2,height:2}});os({type:"tooltip",init:function(t,e){if(!Kf.node){var n=new yu(e.getDom(),e);this._tooltipContent=n}},render:function(t,e,n){if(!Kf.node&&!Kf.wxa){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel.get("triggerOn");Xh("itemTooltip",this._api,sb(function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY})})}},manuallyShowTip:function(t,e,n,i){if(i.from!==this.uid&&!Kf.node){var r=_u(i,n);this._ticket="";var o=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var a=ub;a.position=[i.x,i.y],a.update(),a.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:a},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,event:{},dataByCoordSys:i.dataByCoordSys,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var s=Xw(i,e),l=s.point[0],h=s.point[1];null!=l&&null!=h&&this._tryShow({offsetX:l,offsetY:h,position:i.position,target:s.el,event:{}},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target,event:{}},r))}},manuallyHideTip:function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,i.from!==this.uid&&this._hide(_u(i,n))},_manuallyAxisShowTip:function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s&&"axis"===(t=xu([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t])).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},_tryShow:function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&null!=n.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var n=t.get("showDelay");e=m(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},_showAxisTooltip:function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=[],a=[],s=xu([e.tooltipOption,i]);lb(t,function(t){lb(t.dataByAxis,function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value,r=[];if(e&&null!=i){var s=lu(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt);d(t.seriesDataIndices,function(o){var l=n.getSeriesByIndex(o.seriesIndex),h=o.dataIndexInside,u=l&&l.getDataParams(h);u.axisDim=t.axisDim,u.axisIndex=t.axisIndex,u.axisType=t.axisType,u.axisId=t.axisId,u.axisValue=Js(e.axis,i),u.axisValueLabel=s,u&&(a.push(u),r.push(l.formatTooltip(h,!0)))});var l=s;o.push((l?Er(l)+"
    ":"")+r.join("
    "))}})},this),o.reverse(),o=o.join("

    ");var l=e.position;this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(s,l,r[0],r[1],this._tooltipContent,a):this._showTooltipContent(s,o,a,Math.random(),r[0],r[1],l)})},_showSeriesItemTooltip:function(t,e,n){var i=this._ecModel,r=e.seriesIndex,o=i.getSeriesByIndex(r),a=e.dataModel||o,s=e.dataIndex,l=e.dataType,h=a.getData(),u=xu([h.getItemModel(s),a,o&&(o.coordinateSystem||{}).model,this._tooltipModel]),c=u.get("trigger");if(null==c||"item"===c){var d=a.getDataParams(s,l),f=a.formatTooltip(s,!1,l),p="item_"+a.name+"_"+s;this._showOrMove(u,function(){this._showTooltipContent(u,f,d,p,t.offsetX,t.offsetY,t.position,t.target)}),n({type:"showTip",dataIndexInside:s,dataIndex:h.getRawIndex(s),seriesIndex:r,from:this.uid})}},_showComponentItemTooltip:function(t,e,n){var i=e.tooltip;if("string"==typeof i){var r=i;i={content:r,formatter:r}}var o=new pr(i,this._tooltipModel,this._ecModel),a=o.get("content"),s=Math.random();this._showOrMove(o,function(){this._showTooltipContent(o,a,o.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),n({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,n,i,r,o,a,s){if(this._ticket="",t.get("showContent")&&t.get("show")){var l=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var u=e;if(h&&"string"==typeof h)u=Nr(h,n,!0);else if("function"==typeof h){var c=sb(function(e,i){e===this._ticket&&(l.setContent(i),this._updatePosition(t,a,r,o,l,n,s))},this);this._ticket=i,u=h(n,i,c)}l.setContent(u),l.show(t),this._updatePosition(t,a,r,o,l,n,s)}},_updatePosition:function(t,e,n,i,r,o,a){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=a&&a.getBoundingRect().clone();if(a&&d.applyTransform(a.transform),"function"==typeof e&&(e=e([n,i],o,r.el,d,{viewSize:[s,l],contentSize:h.slice()})),y(e))n=hb(e[0],s),i=hb(e[1],l);else if(w(e)){e.width=h[0],e.height=h[1];var f=Gr(e,{width:s,height:l});n=f.x,i=f.y,u=null,c=null}else"string"==typeof e&&a?(n=(p=Mu(e,d,h))[0],i=p[1]):(n=(p=wu(n,i,r.el,s,l,u?null:20,c?null:20))[0],i=p[1]);if(u&&(n-=Iu(u)?h[0]/2:"right"===u?h[0]:0),c&&(i-=Iu(c)?h[1]/2:"bottom"===c?h[1]:0),t.get("confine")){var p=bu(n,i,r.el,s,l);n=p[0],i=p[1]}r.moveTo(n,i)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&lb(e,function(e,i){var r=e.dataByAxis||{},o=(t[i]||{}).dataByAxis||[];(n&=r.length===o.length)&&lb(r,function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n&=t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&lb(r,function(t,e){var i=a[e];n&=t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex})})}),this._lastDataByCoordSys=t,!!n},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){Kf.node||(this._tooltipContent.hide(),Qh("itemTooltip",e))}}),Ja({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Ja({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){});var cb=rs({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{}},mergeOption:function(t){cb.superCall(this,"mergeOption",t)},optionUpdated:function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n=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}}});Ja("legendToggleSelect","legendselectchanged",v(Tu,"toggleSelected")),Ja("legendSelect","legendselected",v(Tu,"select")),Ja("legendUnSelect","legendunselected",v(Tu,"unSelect"));var db=v,fb=d,pb=Jp,gb=os({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new pb),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(t,e,n){if(this.resetInner(),t.get("show",!0)){var i=t.get("align");i&&"auto"!==i||(i="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left"),this.renderInner(i,t,e,n);var r=t.getBoxLayoutParams(),o={width:n.getWidth(),height:n.getHeight()},s=t.get("padding"),l=Gr(r,o,s),h=this.layoutInner(t,i,l),u=Gr(a({width:h.width,height:h.height},r),o,s);this.group.attr("position",[u.x-h.x,u.y-h.y]),this.group.add(this._backgroundEl=Du(h,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,n,i){var r=this.getContentGroup(),o=N(),a=e.get("selectedMode");fb(e.getData(),function(s,l){var h=s.get("name");if(this.newlineDisabled||""!==h&&"\n"!==h){var u=n.getSeriesByName(h)[0];if(!o.get(h))if(u){var c=u.getData(),d=c.getVisual("color");"function"==typeof d&&(d=d(u.getDataParams(0)));var f=c.getVisual("legendSymbol")||"roundRect",p=c.getVisual("symbol");this._createItem(h,l,s,e,f,p,t,d,a).on("click",db(Au,h,i)).on("mouseover",db(ku,u,null,i)).on("mouseout",db(Pu,u,null,i)),o.set(h,!0)}else n.eachRawSeries(function(n){if(!o.get(h)&&n.legendDataProvider){var r=n.legendDataProvider(),u=r.indexOfName(h);if(u<0)return;var c=r.getItemVisual(u,"color");this._createItem(h,l,s,e,"roundRect",null,t,c,a).on("click",db(Au,h,i)).on("mouseover",db(ku,n,h,i)).on("mouseout",db(Pu,n,h,i)),o.set(h,!0)}},this)}else r.add(new pb({newline:!0}))},this)},_createItem:function(t,e,n,i,r,a,s,l,h){var u=i.get("itemWidth"),c=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.isSelected(t),p=new pb,g=n.getModel("textStyle"),m=n.get("icon"),v=n.getModel("tooltip"),y=v.parentModel;if(r=m||r,p.add(el(r,0,0,u,c,f?l:d,!0)),!m&&a&&(a!==r||"none"==a)){var x=.8*c;"none"===a&&(a="circle"),p.add(el(a,(u-x)/2,(c-x)/2,x,x,f?l:d))}var _="left"===s?u+5:-5,w=s,b=i.get("formatter"),S=t;"string"==typeof b&&b?S=b.replace("{name}",null!=t?t:""):"function"==typeof b&&(S=b(t)),p.add(new ov({style:Ki({},g,{text:S,x:_,y:c/2,textFill:f?g.getTextColor():d,textAlign:w,textVerticalAlign:"middle"})}));var M=new gv({shape:p.getBoundingRect(),invisible:!0,tooltip:v.get("show")?o({content:t,formatter:y.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]}},v.option):null});return p.add(M),p.eachChild(function(t){t.silent=!0}),M.silent=!h,this.getContentGroup().add(p),qi(p),p.__legendDataIndex=e,p},layoutInner:function(t,e,n){var i=this.getContentGroup();qv(t.get("orient"),i,t.get("itemGap"),n.width,n.height);var r=i.getBoundingRect();return i.attr("position",[-r.x,-r.y]),this.group.getBoundingRect()}});Qa(function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var n=0;nn[s],f=[-u.x,-u.y];f[a]=i.position[a];var p=[0,0],g=[-c.x,-c.y],m=C(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?g[a]+=n[s]-c[s]:p[a]+=c[s]+m),g[1-a]+=u[l]/2-c[l]/2,i.attr("position",f),r.attr("position",p),o.attr("position",g);var v=this.group.getBoundingRect();if((v={x:0,y:0})[s]=d?n[s]:u[s],v[l]=Math.max(u[l],c[l]),v[h]=Math.min(0,c[h]+g[1-a]),r.__rectSize=n[s],d){var y={x:0,y:0};y[s]=Math.max(n[s]-c[s]-m,0),y[l]=v[l],r.setClipPath(new gv({shape:y})),r.__rectSize=y[s]}else o.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&ar(i,{position:x.contentPosition},!!d&&t),this._updatePageInfoView(t,x),v},_pageGo:function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},_updatePageInfoView:function(t,e){var n=this._controllerGroup;d(["pagePrev","pageNext"],function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")});var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",_(r)?r.replace("{current}",a).replace("{total}",s):r({current:a,total:s}))},_getPageInfo:function(t){function e(t){var e=t.getBoundingRect().clone();return e[f]+=t.position[u],e}var n,i,r,o,a=t.get("scrollDataIndex",!0),s=this.getContentGroup(),l=s.getBoundingRect(),h=this._containerGroup.__rectSize,u=t.getOrient().index,c=yb[u],d=yb[1-u],f=xb[u],p=s.position.slice();this._showController?s.eachChild(function(t){t.__legendDataIndex===a&&(o=t)}):o=s.childAt(0);var g=h?Math.ceil(l[c]/h):0;if(o){var m=o.getBoundingRect(),v=o.position[u]+m[f];p[u]=-v-l[f],n=Math.floor(g*(v+m[f]+h/2)/l[c]),n=l[c]&&g?Math.max(0,Math.min(g-1,n)):-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,n){var i=e(t);i.intersect(y)&&(null==x&&(x=n),r=t.__legendDataIndex),n===_.length-1&&i[f]+i[c]<=y[f]+y[c]&&(r=null)}),null!=x){var w=e(_[x]);if(y[f]=w[f]+w[c]-y[c],x<=0&&w[f]>=y[f])i=null;else{for(;x>0&&e(_[x-1]).intersect(y);)x--;i=_[x].__legendDataIndex}}}return{contentPosition:p,pageIndex:n,pageCount:g,pagePrevDataIndex:i,pageNextDataIndex:r}}});Ja("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})}),rs({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),os({type:"title",render:function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=t.get("textBaseline"),l=new ov({style:Ki({},r,{text:t.get("text"),textFill:r.getTextColor()},{disableBox:!0}),z2:10}),h=l.getBoundingRect(),u=t.get("subtext"),c=new ov({style:Ki({},o,{text:u,textFill:o.getTextColor(),y:h.height+t.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),d=t.get("link"),f=t.get("sublink");l.silent=!d,c.silent=!f,d&&l.on("click",function(){window.open(d,"_"+t.get("target"))}),f&&c.on("click",function(){window.open(f,"_"+t.get("subtarget"))}),i.add(l),u&&i.add(c);var p=i.getBoundingRect(),g=t.getBoxLayoutParams();g.width=p.width,g.height=p.height;var m=Gr(g,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?m.x+=m.width:"center"===a&&(m.x+=m.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?m.y+=m.height:"middle"===s&&(m.y+=m.height/2),s=s||"top"),i.attr("position",[m.x,m.y]);var v={textAlign:a,textVerticalAlign:s};l.setStyle(v),c.setStyle(v),p=i.getBoundingRect();var y=m.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var _=new gv({shape:{x:p.x-y[3],y:p.y-y[0],width:p.width+y[1]+y[3],height:p.height+y[0]+y[2],r:t.get("borderRadius")},style:x,silent:!0});Ei(_),i.add(_)}}});var wb=Or,bb=Er,Sb=rs({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,n,i){this.mergeDefaultAndTheme(t,n),this.mergeOption(t,n,i.createdBySelf,!0)},isAnimationEnabled:function(){if(Kf.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,n,i){var r=this.constructor,a=this.mainType+"Model";n||e.eachSeries(function(t){var n=t.get(this.mainType),s=t[a];n&&n.data?(s?s.mergeOption(n,e,!0):(i&&Ou(n),d(n.data,function(t){t instanceof Array?(Ou(t[0]),Ou(t[1])):Ou(t)}),o(s=new r(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),t[a]=s):t[a]=null},this)},formatTooltip:function(t){var e=this.getData(),n=this.getRawValue(t),i=y(n)?f(n,wb).join(", "):wb(n),r=e.getName(t),o=bb(this.name);return(null!=n||r)&&(o+="
    "),r&&(o+=bb(r),null!=n&&(o+=" : ")),null!=n&&(o+=bb(i)),o},getData:function(){return this._data},setData:function(t){this._data=t}});u(Sb,zy),Sb.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 Mb=l,Ib=v,Tb={min:Ib(Nu,"min"),max:Ib(Nu,"max"),average:Ib(Nu,"average")},Cb=os({type:"marker",init:function(){this.markerGroupMap=N()},render:function(t,e,n){var i=this.markerGroupMap;i.each(function(t){t.__keep=!1});var r=this.type+"Model";e.eachSeries(function(t){var i=t[r];i&&this.renderSeries(t,i,e,n)},this),i.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});Cb.extend({type:"markPoint",updateTransform:function(t,e,n){e.eachSeries(function(t){var e=t.markPointModel;e&&(Wu(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new fl),h=Zu(r,t,e);e.setData(h),Wu(e.getData(),t,i),h.each(function(t){var n=h.getItemModel(t),i=n.getShallow("symbolSize");"function"==typeof i&&(i=i(e.getRawValue(t),e.getDataParams(t))),h.setItemVisual(t,{symbolSize:i,color:n.get("itemStyle.color")||a.getVisual("color"),symbol:n.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")}}),Ka(function(t){t.markPoint=t.markPoint||{}}),Sb.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 Db=mv.prototype,Ab=yv.prototype,kb=Ai({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){(Uu(e)?Db:Ab).buildPath(t,e)},pointAt:function(t){return Uu(this.shape)?Db.pointAt.call(this,t):Ab.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,n=Uu(e)?[e.x2-e.x1,e.y2-e.y1]:Ab.tangentAt.call(this,t);return j(n,n)}}),Pb=["fromSymbol","toSymbol"],Lb=$u.prototype;Lb.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.childOfName("label");if(e||n||!i.ignore){for(var r=1,o=this.parent;o;)o.scale&&(r/=o.scale[0]),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),h=a.pointAt(s),u=W([],h,l);if(j(u,u),e&&(e.attr("position",l),c=a.tangentAt(0),e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[r*s,r*s])),n){n.attr("position",h);var c=a.tangentAt(1);n.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),n.attr("scale",[r*s,r*s])}if(!i.ignore){i.attr("position",h);var d,f,p,g=5*r;if("end"===i.__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"===i.__position){var m=s/2,v=[(c=a.tangentAt(m))[1],-c[0]],y=a.pointAt(m);v[1]>0&&(v[0]=-v[0],v[1]=-v[1]),d=[y[0]+v[0]*g,y[1]+v[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";i.attr({style:{textVerticalAlign:i.__verticalAlign||p,textAlign:i.__textAlign||f},position:d,scale:[r,r]})}}}},Lb._createLine=function(t,e,n){var i=t.hostModel,r=Yu(t.getItemLayout(e));r.shape.percent=0,sr(r,{shape:{percent:1}},i,e),this.add(r);var o=new ov({name:"label"});this.add(o),d(Pb,function(n){var i=ju(n,t,e);this.add(i),this[Xu(n)]=t.getItemVisual(e,n)},this),this._updateCommonStl(t,e,n)},Lb.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};qu(a.shape,o),ar(r,a,i,e),d(Pb,function(n){var i=t.getItemVisual(e,n),r=Xu(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=ju(n,t,e);this.add(o)}this[r]=i},this),this._updateCommonStl(t,e,n)},Lb._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.lineStyle,s=n&&n.hoverLineStyle,l=n&&n.labelModel,h=n&&n.hoverLabelModel;if(!n||t.hasItemOption){var u=t.getItemModel(e);o=u.getModel("lineStyle").getLineStyle(),s=u.getModel("emphasis.lineStyle").getLineStyle(),l=u.getModel("label"),h=u.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),f=D(t.getItemVisual(e,"opacity"),o.opacity,1);r.useStyle(a({strokeNoScale:!0,fill:"none",stroke:c,opacity:f},o)),r.hoverStyle=s,d(Pb,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:f}))},this);var p,g,m,v=l.getShallow("show"),y=h.getShallow("show"),x=this.childOfName("label");if(v||y){if(p=c||"#000",null==(g=i.getFormattedLabel(e,"normal",t.dataType))){var _=i.getRawValue(e);g=null==_?t.getName(e):isFinite(_)?wr(_):_}m=C(i.getFormattedLabel(e,"emphasis",t.dataType),g)}if(v){var w=Ki(x.style,l,{text:g},{autoColor:p});x.__textAlign=w.textAlign,x.__verticalAlign=w.textVerticalAlign,x.__position=l.get("position")||"middle"}else x.setStyle("text",null);x.hoverStyle=y?{text:m,textFill:h.getTextColor(!0),fontStyle:h.getShallow("fontStyle"),fontWeight:h.getShallow("fontWeight"),fontSize:h.getShallow("fontSize"),fontFamily:h.getShallow("fontFamily")}:{text:null},x.ignore=!v&&!y,qi(this)},Lb.highlight=function(){this.trigger("emphasis")},Lb.downplay=function(){this.trigger("normal")},Lb.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},Lb.setLinePoints=function(t){var e=this.childOfName("line");qu(e.shape,t),e.dirty()},h($u,Jp);var Ob=Ku.prototype;Ob.isPersistent=function(){return!0},Ob.updateData=function(t){var e=this,n=e.group,i=e._lineData;e._lineData=t,i||n.removeAll();var r=tc(t);t.diff(i).add(function(n){Qu(e,t,n,r)}).update(function(n,o){Ju(e,i,t,o,n,r)}).remove(function(t){n.remove(i.getItemGraphicEl(t))}).execute()},Ob.updateLayout=function(){var t=this._lineData;t.eachItemGraphicEl(function(e,n){e.updateLayout(t,n)},this)},Ob.incrementalPrepareUpdate=function(t){this._seriesScope=tc(t),this._lineData=null,this.group.removeAll()},Ob.incrementalUpdate=function(t,e){for(var n=t.start;n=0&&"number"==typeof u&&(u=+u.toFixed(Math.min(m,20))),p.coord[d]=g.coord[d]=u,a=[p,g,{type:l,valueIndex:a.valueIndex,value:u}]}return a=[Ru(t,a[0]),Ru(t,a[1]),o({},a[2])],a[2].type=a[2].type||"",i(a[2],a[0]),i(a[2],a[1]),a};Cb.extend({type:"markLine",updateTransform:function(t,e,n){e.eachSeries(function(t){var e=t.markLineModel;if(e){var i=e.getData(),r=e.__from,o=e.__to;r.each(function(e){ac(r,e,!0,t,n),ac(o,e,!1,t,n)}),i.each(function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,n,i){function r(e,n,r){var o=e.getItemModel(n);ac(e,n,r,t,i),e.setItemVisual(n,{symbolSize:o.get("symbolSize")||g[r?0:1],symbol:o.get("symbol",!0)||p[r?0:1],color:o.get("itemStyle.color")||s.getVisual("color")})}var o=t.coordinateSystem,a=t.id,s=t.getData(),l=this.markerGroupMap,h=l.get(a)||l.set(a,new Ku);this.group.add(h.group);var u=sc(o,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");y(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,n){t.traverse(function(t){t.dataModel=e})}),h.__keep=!0,h.group.silent=e.get("silent")||t.get("silent")}}),Ka(function(t){t.markLine=t.markLine||{}}),Sb.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 Eb=function(t,e,n,i){var o=Ru(t,i[0]),a=Ru(t,i[1]),s=T,l=o.coord,h=a.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=r([{},o,a]);return u.coord=[o.coord,a.coord],u.x0=o.x,u.y0=o.y,u.x1=a.x,u.y1=a.y,u},Nb=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];Cb.extend({type:"markArea",updateTransform:function(t,e,n){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var i=e.getData();i.each(function(e){var r=f(Nb,function(r){return cc(i,e,r,t,n)});i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)})}},this)},renderSeries:function(t,e,n,i){var r=t.coordinateSystem,o=t.name,s=t.getData(),l=this.markerGroupMap,h=l.get(o)||l.set(o,{group:new Jp});this.group.add(h.group),h.__keep=!0;var u=dc(r,t,e);e.setData(u),u.each(function(e){u.setItemLayout(e,f(Nb,function(n){return cc(u,e,n,t,i)})),u.setItemVisual(e,{color:s.getVisual("color")})}),u.diff(h.__data).add(function(t){var e=new fv({shape:{points:u.getItemLayout(t)}});u.setItemGraphicEl(t,e),h.group.add(e)}).update(function(t,n){var i=h.__data.getItemGraphicEl(n);ar(i,{shape:{points:u.getItemLayout(t)}},e,t),h.group.add(i),u.setItemGraphicEl(t,i)}).remove(function(t){var e=h.__data.getItemGraphicEl(t);h.group.remove(e)}).execute(),u.eachItemGraphicEl(function(t,n){var i=u.getItemModel(n),r=i.getModel("label"),o=i.getModel("emphasis.label"),s=u.getItemVisual(n,"color");t.useStyle(a(i.getModel("itemStyle").getItemStyle(),{fill:Pt(s,.4),stroke:s})),t.hoverStyle=i.getModel("emphasis.itemStyle").getItemStyle(),$i(t.style,t.hoverStyle,r,o,{labelFetcher:e,labelDataIndex:n,defaultText:u.getName(n)||"",isRectText:!0,autoColor:s}),qi(t,{}),t.dataModel=e}),h.__data=u,h.group.silent=e.get("silent")||t.get("silent")}}),Ka(function(t){t.markArea=t.markArea||{}}),Qv.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var Rb=["cartesian2d","polar","singleAxis"],Bb=function(t,e){var n=f(t=t.slice(),Fr),i=f(e=(e||[]).slice(),Fr);return function(r,o){d(t,function(t,a){for(var s={name:t,capital:n[a]},l=0;l=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,r=this.getTargetSeriesModels(),o=t.get("filterMode"),a=this._valueWindow;"none"!==o&&Vb(r,function(t){var e=t.getData(),r=e.mapDimension(i,!0);"weakFilter"===o?e.filterSelf(function(t){for(var n,i,o,s=0;sa[1];if(h&&!u&&!c)return!0;h&&(o=!0),u&&(n=!0),c&&(i=!0)}return o&&n&&i}):Vb(r,function(i){if("empty"===o)t.setData(e.map(i,function(t){return n(t)?t:NaN}));else{var r={};r[i]=a,e.selectRange(r)}}),Vb(r,function(t){e.setApproximateExtent(a,t)})})}}};var Gb=d,Wb=Bb,Zb=rs({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,n){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var i=xc(t);this.mergeDefaultAndTheme(t,n),this.doInit(i)},mergeOption:function(t){var e=xc(t);i(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;Kf.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),_c(this,t),Gb([["start","startValue"],["end","endValue"]],function(t,n){"value"===this._rangePropMode[n]&&(e[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,n,i,r){var o=this.dependentModels[e.axis][n],a=o.__dzAxisProxy||(o.__dzAxisProxy=new Hb(e.name,n,this,r));t[e.name+"_"+n]=a},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();Wb(function(e){var n=e.axisIndex;t[n]=xn(t[n])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;Wb(function(n){null!=t[n.axisIndex]&&(e=!0)},this);var n=t.orient;return null==n&&e?"orient":e?void 0:(null==n&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),n=this.option,i=this.dependentModels;if(t){var r="vertical"===e?"y":"x";i[r+"Axis"].length?(n[r+"AxisIndex"]=[0],t=!1):Gb(i.singleAxis,function(i){t&&i.get("orient",!0)===e&&(n.singleAxisIndex=[i.componentIndex],t=!1)})}t&&Wb(function(e){if(t){var i=[],r=this.dependentModels[e.axis];if(r.length&&!i.length)for(var o=0,a=r.length;o0?100:20}},getFirstTargetAxisModel:function(){var t;return Wb(function(e){if(null==t){var n=this.get(e.axisIndex);n.length&&(t=this.dependentModels[e.axis][n[0]])}},this),t},eachTargetAxis:function(t,e){var n=this.ecModel;Wb(function(i){Gb(this.get(i.axisIndex),function(r){t.call(e,i,r,this,n)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var n=this.getAxisProxy(t,e);return n&&n.getAxisModel()},setRawRange:function(t,e){var n=this.option;Gb([["start","startValue"],["end","endValue"]],function(e){null==t[e[0]]&&null==t[e[1]]||(n[e[0]]=t[e[0]],n[e[1]]=t[e[1]])},this),!e&&_c(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(t){if(t)return t.__dzAxisProxy;var e=this._axisProxies;for(var n in e)if(e.hasOwnProperty(n)&&e[n].hostedBy(this))return e[n];for(var n in e)if(e.hasOwnProperty(n)&&!e[n].hostedBy(this))return e[n]},getRangePropMode:function(){return this._rangePropMode.slice()}}),Ub=By.extend({type:"dataZoom",render:function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},getTargetCoordInfo:function(){function t(t,e,n,i){for(var r,o=0;oo&&(e[1-i]=e[i]+u.sign*o),e}),jb=gv,Yb=xr,qb=br,$b=m,Kb=d,Qb="horizontal",Jb=5,tS=["line","bar","candlestick","scatter"],eS=Ub.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,n,i){eS.superApply(this,"render",arguments),ha(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),!1!==this.dataZoomModel.get("show")?(i&&"dataZoom"===i.type&&i.from===this.uid||this._buildView(),this._updateView()):this.group.removeAll()},remove:function(){eS.superApply(this,"remove",arguments),ua(this,"_dispatchZoomAction")},dispose:function(){eS.superApply(this,"dispose",arguments),ua(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new Jp;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,n=this._findCoordRect(),i={width:e.getWidth(),height:e.getHeight()},r=this._orient===Qb?{right:i.width-n.x-n.width,top:i.height-30-7,width:n.width,height:30}:{right:7,top:n.y,width:30,height:n.height},o=Ur(t.option);d(["right","top","width","height"],function(t){"ph"===o[t]&&(o[t]=r[t])});var a=Gr(o,i,t.padding);this._location={x:a.x,y:a.y},this._size=[a.width,a.height],"vertical"===this._orient&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.barGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==Qb||r?n===Qb&&r?{scale:a?[-1,1]:[-1,-1]}:"vertical"!==n||r?{scale:a?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:a?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:a?[1,1]:[1,-1]});var s=t.getBoundingRect([o]);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,n=this._displayables.barGroup;n.add(new jb({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),n.add(new jb({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:m(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),s=.3*(o[1]-o[0]);o=[o[0]-s,o[1]+s];var l,h=[0,e[1]],u=[0,e[0]],c=[[e[0],0],[0,0]],d=[],f=u[1]/(i.count()-1),p=0,g=Math.round(i.count()/e[0]);i.each([r],function(t,e){if(g>0&&e%g)p+=f;else{var n=null==t||isNaN(t)||""===t,i=n?0:Yb(t,o,h,!0);n&&!l&&e?(c.push([c[c.length-1][0],0]),d.push([d[d.length-1][0],0])):!n&&l&&(c.push([p,0]),d.push([p,0])),c.push([p,i]),d.push([p,i]),p+=f,l=n}});var m=this.dataZoomModel;this._displayables.barGroup.add(new fv({shape:{points:c},style:a({fill:m.get("dataBackgroundColor")},m.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new pv({shape:{points:d},style:m.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis(function(r,o){d(t.getAxisProxy(r.name,o).getTargetSeriesModels(),function(t){if(!(n||!0!==e&&l(tS,t.get("type"))<0)){var a,s=i.getComponent(r.axis,o).axis,h=Sc(r.name),u=t.coordinateSystem;null!=h&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),h=t.getData().mapDimension(h),n={thisAxis:s,series:t,thisDim:r.name,otherDim:h,otherAxisInverse:a}}},this)},this),n}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],n=t.handleLabels=[],i=this._displayables.barGroup,r=this._size,o=this.dataZoomModel;i.add(t.filler=new jb({draggable:!0,cursor:Mc(this._orient),drift:$b(this._onDragMove,this,"all"),onmousemove:function(t){Ag(t.event)},ondragstart:$b(this._showDataInfo,this,!0),ondragend:$b(this._onDragEnd,this),onmouseover:$b(this._showDataInfo,this,!0),onmouseout:$b(this._showDataInfo,this,!1),style:{fill:o.get("fillerColor"),textPosition:"inside"}})),i.add(new jb(Ei({silent:!0,shape:{x:0,y:0,width:r[0],height:r[1]},style:{stroke:o.get("dataBackgroundColor")||o.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}}))),Kb([0,1],function(t){var r=fr(o.get("handleIcon"),{cursor:Mc(this._orient),draggable:!0,drift:$b(this._onDragMove,this,t),onmousemove:function(t){Ag(t.event)},ondragend:$b(this._onDragEnd,this),onmouseover:$b(this._showDataInfo,this,!0),onmouseout:$b(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),a=r.getBoundingRect();this._handleHeight=_r(o.get("handleSize"),this._size[1]),this._handleWidth=a.width/a.height*this._handleHeight,r.setStyle(o.getModel("handleStyle").getItemStyle());var s=o.get("handleColor");null!=s&&(r.style.fill=s),i.add(e[t]=r);var l=o.textStyleModel;this.group.add(n[t]=new ov({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=[Yb(t[0],[0,100],e,!0),Yb(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];Xb(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Yb(o.minSpan,a,r,!0):null,null!=o.maxSpan?Yb(o.maxSpan,a,r,!0):null),this._range=qb([Yb(i[0],r,a,!0),Yb(i[1],r,a,!0)])},_updateView:function(t){var e=this._displayables,n=this._handleEnds,i=qb(n.slice()),r=this._size;Kb([0,1],function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scale:[o/2,o/2],position:[n[t],r[1]/2-o/2]})},this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=lr(i.handles[t].parent,this.group),n=ur(0===t?"right":"left",e),s=this._handleWidth/2+Jb,l=hr([c[t]+(0===t?-s:s),this._size[1]/2],e);r[t].setStyle({x:l[0],y:l[1],textVerticalAlign:o===Qb?"middle":n,textAlign:o===Qb?n:"center",text:a[t]})}var n=this.dataZoomModel,i=this._displayables,r=i.handleLabels,o=this._orient,a=["",""];if(n.get("showDetail")){var s=n.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,h=this._range,u=t?s.calculateDataWindow({start:h[0],end:h[1]}).valueWindow:s.getDataValueWindow();a=[this._formatLabel(u[0],l),this._formatLabel(u[1],l)]}}var c=qb(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(r,20));return x(i)?i(t,o):_(i)?i.replace("{value}",o):o},_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,n){this._dragging=!0;var i=hr([e,n],this._displayables.barGroup.getLocalTransform(),!0);this._updateInterval(t,i[0]);var r=this.dataZoomModel.get("realtime");this._updateView(!r),r&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction()},_onClickPanelClick:function(t){var e=this._size,n=this._displayables.barGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2;this._updateInterval("all",n[0]-r),this._updateView(),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(Kb(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}}),!t){var e=this.api.getWidth(),n=this.api.getHeight();t={x:.2*e,y:.2*n,width:.6*e,height:.6*n}}return t}});Zb.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}});var nS="\0_ec_interaction_mutex";Ja({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),u(Ac,xp);var iS=v,rS="\0_ec_dataZoom_roams",oS=m,aS=Ub.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,n,i){aS.superApply(this,"render",arguments),Vc(i,t.id)&&(this._range=t.getPercentRange()),d(this.getTargetCoordInfo(),function(e,i){var r=f(e,function(t){return Fc(t.model)});d(e,function(e){var o=e.model,a=t.option;Rc(n,{coordId:Fc(o),allCoordIds:r,containsPoint:function(t,e,n){return o.coordinateSystem.containPoint([e,n])},dataZoomId:t.id,throttleRate:t.get("throttle",!0),panGetRange:oS(this._onPan,this,e,i),zoomGetRange:oS(this._onZoom,this,e,i),zoomLock:a.zoomLock,disabled:a.disabled,roamControllerOpt:{zoomOnMouseWheel:a.zoomOnMouseWheel,moveOnMouseMove:a.moveOnMouseMove,preventDefaultMouseMove:a.preventDefaultMouseMove}})},this)},this)},dispose:function(){Bc(this.api,this.dataZoomModel.id),aS.superApply(this,"dispose",arguments),this._range=null},_onPan:function(t,e,n,i,r,o,a,s,l){var h=this._range.slice(),u=t.axisModels[0];if(u){var c=sS[e]([o,a],[s,l],u,n,t),d=c.signal*(h[1]-h[0])*c.pixel/c.pixelLength;return Xb(d,h,[0,100],"all"),this._range=h}},_onZoom:function(t,e,n,i,r,o){var a=this._range.slice(),s=t.axisModels[0];if(s){var l=sS[e](null,[r,o],s,n,t),h=(l.signal>0?l.pixelStart+l.pixelLength-l.pixel:l.pixel-l.pixelStart)/l.pixelLength*(a[1]-a[0])+a[0];i=Math.max(1/i,0),a[0]=(a[0]-h)*i+h,a[1]=(a[1]-h)*i+h;var u=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return Xb(0,a,[0,100],0,u.minSpan,u.maxSpan),this._range=a}}}),sS={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},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"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=h[1]-h[0],a.pixelStart=h[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};Qa({getTargetSeries:function(t){var e=N();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,n,i){d(i.getAxisProxy(t.name,n).getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},isOverallFilter:!0,overallReset:function(t,e){t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,n,i){i.getAxisProxy(t.name,n).reset(i,e)}),t.eachTargetAxis(function(t,n,i){i.getAxisProxy(t.name,n).filterData(i,e)})}),t.eachComponent("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setRawRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]},!0)})}}),Ja("dataZoom",function(t,e){var n=pc(m(e.eachComponent,e,"dataZoom"),Bb,function(t,e){return t.get(e.axisIndex)}),i=[];e.eachComponent({mainType:"dataZoom",query:t},function(t,e){i.push.apply(i,n(t).nodes)}),d(i,function(e,n){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var lS={},hS=rs({type:"toolbox",layoutMode:{type:"box",ignoreSize:!0},mergeDefaultAndTheme:function(t){hS.superApply(this,"mergeDefaultAndTheme",arguments),d(this.option.feature,function(t,e){var n=$c(e);n&&i(t,n.defaultOption)})},defaultOption:{show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}}}});os({type:"toolbox",render:function(t,e,n,i){function r(r,a){var s,c=u[r],d=u[a],f=new pr(l[c],t,t.ecModel);if(c&&!d){if(Kc(c))s={model:f,onclick:f.option.onclick,featureName:c};else{var p=$c(c);if(!p)return;s=new p(f,e,n)}h[c]=s}else{if(!(s=h[d]))return;s.model=f,s.ecModel=e,s.api=n}c||!d?f.get("show")&&!s.unusable?(o(f,s,c),f.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&i[t].trigger(e)},s.render&&s.render(f,e,n,i)):s.remove&&s.remove(e,n):s.dispose&&s.dispose(e,n)}function o(i,r,o){var l=i.getModel("iconStyle"),h=i.getModel("emphasis.iconStyle"),u=r.getIcons?r.getIcons():i.get("icon"),c=i.get("title")||{};if("string"==typeof u){var f=u,p=c;c={},(u={})[o]=f,c[o]=p}var g=i.iconPaths={};d(u,function(o,u){var d=fr(o,{},{x:-s/2,y:-s/2,width:s,height:s});d.setStyle(l.getItemStyle()),d.hoverStyle=h.getItemStyle(),qi(d),t.get("showTitle")&&(d.__title=c[u],d.on("mouseover",function(){var t=h.getItemStyle();d.setStyle({text:c[u],textPosition:t.textPosition||"bottom",textFill:t.fill||t.stroke||"#000",textAlign:t.textAlign||"center"})}).on("mouseout",function(){d.setStyle({textFill:null})})),d.trigger(i.get("iconStatus."+u)||"normal"),a.add(d),d.on("click",m(r.onclick,r,e,n,u)),g[u]=d})}var a=this.group;if(a.removeAll(),t.get("show")){var s=+t.get("itemSize"),l=t.get("feature")||{},h=this._features||(this._features={}),u=[];d(l,function(t,e){u.push(e)}),new hs(this._featureNames||[],u).add(r).update(r).remove(v(r,null)).execute(),this._featureNames=u,Cu(a,t,n),a.add(Du(a.getBoundingRect(),t)),a.eachChild(function(t){var e=t.__title,i=t.hoverStyle;if(i&&e){var r=ce(e,Te(i)),o=t.position[0]+a.position[0],l=!1;t.position[1]+a.position[1]+s+r.height>n.getHeight()&&(i.textPosition="top",l=!0);var h=l?-5-r.height:s+8;o+r.width/2>n.getWidth()?(i.textPosition=["100%",h],i.textAlign="right"):o-r.width/2<0&&(i.textPosition=[0,h],i.textAlign="left")}})}},updateView:function(t,e,n,i){d(this._features,function(t){t.updateView&&t.updateView(t.model,e,n,i)})},remove:function(t,e){d(this._features,function(n){n.remove&&n.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){d(this._features,function(n){n.dispose&&n.dispose(t,e)})}});var uS=qy.toolbox.saveAsImage;Qc.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:uS.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:uS.lang.slice()},Qc.prototype.unusable=!Kf.canvasSupported,Qc.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r=document.createElement("a"),o=n.get("type",!0)||"png";r.download=i+"."+o,r.target="_blank";var a=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if(r.href=a,"function"!=typeof MouseEvent||Kf.browser.ie||Kf.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var s=atob(a.split(",")[1]),l=s.length,h=new Uint8Array(l);l--;)h[l]=s.charCodeAt(l);var u=new Blob([h]);window.navigator.msSaveOrOpenBlob(u,i+"."+o)}else{var c=n.get("lang"),d='';window.open().document.write(d)}else{var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});r.dispatchEvent(f)}},qc("saveAsImage",Qc);var cS=qy.toolbox.magicType;Jc.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:n(cS.title),option:{},seriesIndex:{}};var dS=Jc.prototype;dS.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return d(t.get("type"),function(t){e[t]&&(n[t]=e[t])}),n};var fS={line:function(t,e,n,r){if("bar"===t)return i({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get("option.line")||{},!0)},bar:function(t,e,n,r){if("line"===t)return i({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get("option.bar")||{},!0)},stack:function(t,e,n,r){if("line"===t||"bar"===t)return i({id:e,stack:"__ec_magicType_stack__"},r.get("option.stack")||{},!0)},tiled:function(t,e,n,r){if("line"===t||"bar"===t)return i({id:e,stack:""},r.get("option.tiled")||{},!0)}},pS=[["line","bar"],["stack","tiled"]];dS.onclick=function(t,e,n){var i=this.model,r=i.get("seriesIndex."+n);if(fS[n]){var o={series:[]};d(pS,function(t){l(t,n)>=0&&d(t,function(t){i.setIconStatus(t,"normal")})}),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},function(e){var r=e.subType,s=e.id,l=fS[n](r,s,e,i);l&&(a(l,e.option),o.series.push(l));var h=e.coordinateSystem;if(h&&"cartesian2d"===h.type&&("line"===n||"bar"===n)){var u=h.getAxesByScale("ordinal")[0];if(u){var c=u.dim+"Axis",d=t.queryComponents({mainType:c,index:e.get(name+"Index"),id:e.get(name+"Id")})[0].componentIndex;o[c]=o[c]||[];for(var f=0;f<=d;f++)o[c][d]=o[c][d]||{};o[c][d].boundaryGap="bar"===n}}}),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:o})}},Ja({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),qc("magicType",Jc);var gS=qy.toolbox.dataView,mS=new Array(60).join("-"),vS="\t",yS=new RegExp("["+vS+"]+","g");hd.defaultOption={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:n(gS.title),lang:n(gS.lang),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},hd.prototype.onclick=function(t,e){function n(){i.removeChild(o),x._dom=null}var i=e.getDom(),r=this.model;this._dom&&i.removeChild(this._dom);var o=document.createElement("div");o.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",o.style.backgroundColor=r.get("backgroundColor")||"#fff";var a=document.createElement("h4"),s=r.get("lang")||[];a.innerHTML=s[0]||r.get("title"),a.style.cssText="margin: 10px 20px;",a.style.color=r.get("textColor");var l=document.createElement("div"),h=document.createElement("textarea");l.style.cssText="display:block;width:100%;overflow:auto;";var u=r.get("optionToContent"),c=r.get("contentToOption"),d=id(t);if("function"==typeof u){var f=u(e.getOption());"string"==typeof f?l.innerHTML=f:M(f)&&l.appendChild(f)}else l.appendChild(h),h.readOnly=r.get("readOnly"),h.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",h.style.color=r.get("textColor"),h.style.borderColor=r.get("textareaBorderColor"),h.style.backgroundColor=r.get("textareaColor"),h.value=d.value;var p=d.meta,g=document.createElement("div");g.style.cssText="position:absolute;bottom:0;left:0;right:0;";var m="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",v=document.createElement("div"),y=document.createElement("div");m+=";background-color:"+r.get("buttonColor"),m+=";color:"+r.get("buttonTextColor");var x=this;on(v,"click",n),on(y,"click",function(){var t;try{t="function"==typeof c?c(l,e.getOption()):ld(h.value,p)}catch(t){throw n(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),n()}),v.innerHTML=s[1],y.innerHTML=s[2],y.style.cssText=m,v.style.cssText=m,!r.get("readOnly")&&g.appendChild(y),g.appendChild(v),on(h,"keydown",function(t){if(9===(t.keyCode||t.which)){var e=this.value,n=this.selectionStart,i=this.selectionEnd;this.value=e.substring(0,n)+vS+e.substring(i),this.selectionStart=this.selectionEnd=n+1,Ag(t)}}),o.appendChild(a),o.appendChild(l),o.appendChild(g),l.style.height=i.clientHeight-80+"px",i.appendChild(o),this._dom=o},hd.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},hd.prototype.dispose=function(t,e){this.remove(t,e)},qc("dataView",hd),Ja({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(t,e){var n=[];d(t.newOption.series,function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:ud(t.data,r)})}else n.push(o({type:"scatter"},t))}),e.mergeOption(a({series:n},t.newOption))});var xS=v,_S=d,wS=f,bS=Math.min,SS=Math.max,MS=Math.pow,IS=1e4,TS=6,CS=6,DS="globalPan",AS={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},kS={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},PS={brushStyle:{lineWidth:2,stroke:"rgba(0,0,0,0.3)",fill:"rgba(0,0,0,0.1)"},transformable:!0,brushMode:"single",removeOnClick:!1},LS=0;cd.prototype={constructor:cd,enableBrush:function(t){return this._brushType&&fd(this),t.brushType&&dd(this,t),this},setPanels:function(t){if(t&&t.length){var e=this._panels={};d(t,function(t){e[t.panelId]=n(t)})}else this._panels=null;return this},mount:function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({position:t.position||[0,0],rotation:t.rotation||0,scale:t.scale||[1,1]}),this._transform=e.getLocalTransform(),this},eachCover:function(t,e){_S(this._covers,t,e)},updateCovers:function(t){function e(t,e){return(null!=t.id?t.id:o+e)+"-"+t.brushType}function r(e,n){var i=t[e];if(null!=n&&a[n]===h)s[e]=a[n];else{var r=s[e]=null!=n?(a[n].__brushOption=i,a[n]):gd(l,pd(l,i));yd(l,r)}}t=f(t,function(t){return i(n(PS),t,!0)});var o="\0-brush-index-",a=this._covers,s=this._covers=[],l=this,h=this._creatingCover;return new hs(a,t,function(t,n){return e(t.__brushOption,n)},e).add(r).update(r).remove(function(t){a[t]!==h&&l.group.remove(a[t])}).execute(),this},unmount:function(){return this.enableBrush(!1),bd(this),this._zr.remove(this.group),this},dispose:function(){this.unmount(),this.off()}},u(cd,xp);var OS={mousedown:function(t){if(this._dragging)Zd.call(this,t);else if(!t.target||!t.target.draggable){Fd(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=_d(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);if(Vd(this,t,e),this._dragging){Fd(t);var n=Gd(this,t,e,!1);n&&Sd(this,n)}},mouseup:Zd},zS={lineX:Ud(0),lineY:Ud(1),rect:{createCover:function(t,e){return Td(xS(zd,function(t){return t},function(t){return t}),t,e,["w","e","n","s","se","sw","ne","nw"])},getCreatingRange:function(t){var e=Id(t);return Pd(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){Cd(t,e,n,i)},updateCommon:Dd,contain:Hd},polygon:{createCover:function(t,e){var n=new Jp;return n.add(new pv({name:"main",style:kd(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new fv({name:"main",draggable:!0,drift:xS(Ed,t,e),ondragend:xS(Sd,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:Rd(t,e,n)})},updateCommon:Dd,contain:Hd}},ES={axisPointer:1,tooltip:1,brush:1},NS=d,RS=l,BS=v,VS=["dataToPoint","pointToData"],FS=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],HS=Kd.prototype;HS.setOutputRanges=function(t,e){this.matchOutputRanges(t,e,function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=US[t.brushType](0,n,e);t.__rangeOffset={offset:XS[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})},HS.matchOutputRanges=function(t,e,n){NS(t,function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&d(i.coordSyses,function(i){var r=US[t.brushType](1,i,t.range);n(t,r.values,i,e)})},this)},HS.setInputRanges=function(t,e){NS(t,function(t){var n=this.findTargetInfo(t,e);if(t.range=t.range||[],n&&!0!==n){t.panelId=n.panelId;var i=US[t.brushType](0,n.coordSys,t.coordRange),r=t.__rangeOffset;t.range=r?XS[t.brushType](i.values,r.offset,nf(i.xyMinMax,r.xyMinMax)):i.values}},this)},HS.makePanelOpts=function(t,e){return f(this._targetInfoList,function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e&&e(n),clipPath:jd(i),isTargetByCursor:qd(i,t,n.coordSysModel),getLinearBrushOtherExtent:Yd(i)}})},HS.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&RS(i.coordSyses,e.coordinateSystem)>=0},HS.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=Jd(e,t),r=0;r=0||RS(i,t.getAxis("y").model)>=0)&&o.push(t)}),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:ZS.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){NS(t.geoModels,function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:ZS.geo})})}},WS=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],ZS={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(lr(t)),e}},US={lineX:BS(tf,0),lineY:BS(tf,1),rect:function(t,e,n){var i=e[VS[t]]([n[0][0],n[1][0]]),r=e[VS[t]]([n[0][1],n[1][1]]),o=[Qd([i[0],r[0]]),Qd([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:f(n,function(n){var r=e[VS[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r}),xyMinMax:i}}},XS={lineX:BS(ef,0),lineY:BS(ef,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return f(t,function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]})}},jS=d,YS="\0_ec_hist_store";Zb.extend({type:"dataZoom.select"}),Ub.extend({type:"dataZoom.select"});var qS=qy.toolbox.dataZoom,$S=d,KS="\0_ec_\0toolbox-dataZoom_";uf.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:n(qS.title)};var QS=uf.prototype;QS.render=function(t,e,n,i){this.model=t,this.ecModel=e,this.api=n,ff(t,e,this,i,n),df(t,e)},QS.onclick=function(t,e,n){JS[n].call(this)},QS.remove=function(t,e){this._brushController.unmount()},QS.dispose=function(t,e){this._brushController.dispose()};var JS={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(af(this.ecModel))}};QS._onBrush=function(t,e){function n(t,e,n){var a=e.getAxis(t),s=a.model,l=i(t,s,o),h=l.findRepresentativeAxisProxy(s).getMinMaxSpan();null==h.minValueSpan&&null==h.maxValueSpan||(n=Xb(0,n.slice(),a.scale.getExtent(),0,h.minValueSpan,h.maxValueSpan)),l&&(r[l.id]={dataZoomId:l.id,startValue:n[0],endValue:n[1]})}function i(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)}),i}if(e.isEnd&&t.length){var r={},o=this.ecModel;this._brushController.updateCovers([]),new Kd(cf(this.model.option),o,{include:["grid"]}).matchOutputRanges(t,o,function(t,e,i){if("cartesian2d"===i.type){var r=t.brushType;"rect"===r?(n("x",i,e[0]),n("y",i,e[1])):n({lineX:"x",lineY:"y"}[r],i,e)}}),of(o,r),this._dispatchZoomAction(r)}},QS._dispatchZoomAction=function(t){var e=[];$S(t,function(t,i){e.push(n(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},qc("dataZoom",uf),Ka(function(t){function e(t,e){if(e){var r=t+"Index",o=e[r];null==o||"all"==o||y(o)||(o=!1===o||"none"===o?[]:[o]),n(t,function(e,n){if(null==o||"all"==o||-1!==l(o,n)){var a={type:"select",$fromToolbox:!0,id:KS+t+n};a[r]=n,i.push(a)}})}}function n(e,n){var i=t[e];y(i)||(i=i?[i]:[]),$S(i,n)}if(t){var i=t.dataZoom||(t.dataZoom=[]);y(i)||(t.dataZoom=i=[i]);var r=t.toolbox;if(r&&(y(r)&&(r=r[0]),r&&r.feature)){var o=r.feature.dataZoom;e("xAxis",o),e("yAxis",o)}}});var tM=qy.toolbox.restore;pf.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:tM.title},pf.prototype.onclick=function(t,e,n){sf(t),e.dispatchAction({type:"restore",from:this.uid})},qc("restore",pf),Ja({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var eM,nM="urn:schemas-microsoft-com:vml",iM="undefined"==typeof window?null:window,rM=!1,oM=iM&&iM.document;if(oM&&!Kf.canvasSupported)try{!oM.namespaces.zrvml&&oM.namespaces.add("zrvml",nM),eM=function(t){return oM.createElement("')}}catch(t){eM=function(t){return oM.createElement("<"+t+' xmlns="'+nM+'" class="zrvml">')}}var aM=Em.CMD,sM=Math.round,lM=Math.sqrt,hM=Math.abs,uM=Math.cos,cM=Math.sin,dM=Math.max;if(!Kf.canvasSupported){var fM=21600,pM=fM/2,gM=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=fM+","+fM,t.coordorigin="0,0"},mM=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},vM=function(t,e,n){return"rgb("+[t,e,n].join(",")+")"},yM=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},xM=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},_M=function(t,e,n){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+n},wM=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},bM=function(t,e,n){var i=Mt(e);n=+n,isNaN(n)&&(n=1),i&&(t.color=vM(i[0],i[1],i[2]),t.opacity=n*i[3])},SM=function(t){var e=Mt(t);return[vM(e[0],e[1],e[2]),e[3]]},MM=function(t,e,n){var i=e.fill;if(null!=i)if(i instanceof wv){var r,o=0,a=[0,0],s=0,l=1,h=n.getBoundingRect(),u=h.width,c=h.height;if("linear"===i.type){r="gradient";var d=n.transform,f=[i.x*u,i.y*c],p=[i.x2*u,i.y2*c];d&&($(f,f,d),$(p,p,d));var g=p[0]-f[0],m=p[1]-f[1];(o=180*Math.atan2(g,m)/Math.PI)<0&&(o+=360),o<1e-6&&(o=0)}else{r="gradientradial";var f=[i.x*u,i.y*c],d=n.transform,v=n.scale,y=u,x=c;a=[(f[0]-h.x)/y,(f[1]-h.y)/x],d&&$(f,f,d),y/=v[0]*fM,x/=v[1]*fM;var _=dM(y,x);s=0/_,l=2*i.r/_-s}var w=i.colorStops.slice();w.sort(function(t,e){return t.offset-e.offset});for(var b=w.length,S=[],M=[],I=0;I=2){var D=S[0][0],A=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=o,t.color=D,t.color2=A,t.colors=M.join(","),t.opacity=P,t.opacity2=k}"radial"===r&&(t.focusposition=a.join(","))}else bM(t,i,e.opacity)},IM=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof wv||bM(t,e.stroke,e.opacity)},TM=function(t,e,n,i){var r="fill"==e,o=t.getElementsByTagName(e)[0];null!=n[e]&&"none"!==n[e]&&(r||!r&&n.lineWidth)?(t[r?"filled":"stroked"]="true",n[e]instanceof wv&&xM(t,o),o||(o=gf(e)),r?MM(o,n,i):IM(o,n),yM(t,o)):(t[r?"filled":"stroked"]="false",xM(t,o))},CM=[[],[],[]],DM=function(t,e){var n,i,r,o,a,s,l=aM.M,h=aM.C,u=aM.L,c=aM.A,d=aM.Q,f=[],p=t.data,g=t.len();for(o=0;o.01?O&&(z+=.0125):Math.abs(E-D)<1e-4?O&&zC?x-=.0125:x+=.0125:O&&ED?y+=.0125:y-=.0125),f.push(N,sM(((C-A)*M+b)*fM-pM),",",sM(((D-k)*I+S)*fM-pM),",",sM(((C+A)*M+b)*fM-pM),",",sM(((D+k)*I+S)*fM-pM),",",sM((z*M+b)*fM-pM),",",sM((E*I+S)*fM-pM),",",sM((y*M+b)*fM-pM),",",sM((x*I+S)*fM-pM)),a=y,s=x;break;case aM.R:var R=CM[0],B=CM[1];R[0]=p[o++],R[1]=p[o++],B[0]=R[0]+p[o++],B[1]=R[1]+p[o++],e&&($(R,R,e),$(B,B,e)),R[0]=sM(R[0]*fM-pM),B[0]=sM(B[0]*fM-pM),R[1]=sM(R[1]*fM-pM),B[1]=sM(B[1]*fM-pM),f.push(" m ",R[0],",",R[1]," l ",B[0],",",R[1]," l ",B[0],",",B[1]," l ",R[0],",",B[1]);break;case aM.Z:f.push(" x ")}if(n>0){f.push(i);for(var V=0;V100&&(LM=0,PM={});var n,i=OM.style;try{i.font=t,n=i.fontFamily.split(",")[0]}catch(t){}e={style:i.fontStyle||"normal",variant:i.fontVariant||"normal",weight:i.fontWeight||"normal",size:0|parseFloat(i.fontSize||12),family:n||"Microsoft YaHei"},PM[t]=e,LM++}return e};!function(t,e){xg[t]=e}("measureText",function(t,e){var n=oM;kM||((kM=n.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",oM.body.appendChild(kM));try{kM.style.font=e}catch(t){}return kM.innerHTML="",kM.appendChild(n.createTextNode(t)),{width:kM.offsetWidth}});for(var EM=new Xt,NM=[Sg,Xe,je,xi,ov],RM=0;RM=r&&h+1>=o){for(var u=[],c=0;c=r&&c+1>=o)return Lf(0,s.components);l[n]=s}else l[n]=void 0}a++}();if(d)return d}},pushComponent:function(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n}:t.push({count:1,added:e,removed:n})},extractCommon:function(t,e,n,i){for(var r=e.length,o=n.length,a=t.newPos,s=a-i,l=0;a+1=0;--i)if(e[i]===t)return!0;return!1}),n):null:n[0]},zf.prototype.update=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},zf.prototype.addDom=function(t){this.getDefs(!0).appendChild(t)},zf.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},zf.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return d(this._tagNames,function(n){var i=t.getElementsByTagName(n);e=e.concat([].slice.call(i))}),e},zf.prototype.markAllUnused=function(){var t=this;d(this.getDoms(),function(e){e[t._markLabel]="0"})},zf.prototype.markUsed=function(t){t&&(t[this._markLabel]="1")},zf.prototype.removeUnused=function(){var t=this.getDefs(!1);if(t){var e=this;d(this.getDoms(),function(n){"1"!==n[e._markLabel]&&t.removeChild(n)})}},zf.prototype.getSvgProxy=function(t){return t instanceof xi?$M:t instanceof je?KM:t instanceof ov?QM:$M},zf.prototype.getTextSvgElement=function(t){return t.__textSvgEl},zf.prototype.getSvgElement=function(t){return t.__svgEl},h(Ef,zf),Ef.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;d(["fill","stroke"],function(i){if(e.style[i]&&("linear"===e.style[i].type||"radial"===e.style[i].type)){var r,o=e.style[i],a=n.getDefs(!0);o._dom?(r=o._dom,a.contains(o._dom)||n.addDom(r)):r=n.add(o),n.markUsed(e);var s=r.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}})}},Ef.prototype.add=function(t){var e;if("linear"===t.type)e=this.createElement("linearGradient");else{if("radial"!==t.type)return jp("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},Ef.prototype.update=function(t){var e=this;zf.prototype.update.call(this,t,function(){var n=t.type,i=t._dom.tagName;"linear"===n&&"linearGradient"===i||"radial"===n&&"radialGradient"===i?e.updateDom(t,t._dom):(e.removeDom(t),e.add(t))})},Ef.prototype.updateDom=function(t,e){if("linear"===t.type)e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",t.x2),e.setAttribute("y2",t.y2);else{if("radial"!==t.type)return void jp("Illegal gradient type.");e.setAttribute("cx",t.x),e.setAttribute("cy",t.y),e.setAttribute("r",t.r)}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i0){var i,r,o=this.getDefs(!0),a=e[0],s=n?"_textDom":"_dom";a[s]?(r=a[s].getAttribute("id"),i=a[s],o.contains(i)||o.appendChild(i)):(r="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(i=this.createElement("clipPath")).setAttribute("id",r),o.appendChild(i),a[s]=i);var l=this.getSvgProxy(a);if(a.transform&&a.parent.invTransform&&!n){var h=Array.prototype.slice.call(a.transform);st(a.transform,a.parent.invTransform,a.transform),l.brush(a),a.transform=h}else l.brush(a);var u=this.getSvgElement(a);i.innerHTML="",i.appendChild(u.cloneNode()),t.setAttribute("clip-path","url(#"+r+")"),e.length>1&&this.updateDom(i,e.slice(1),n)}else t&&t.setAttribute("clip-path","none")},Nf.prototype.markUsed=function(t){var e=this;t.__clipPaths&&t.__clipPaths.length>0&&d(t.__clipPaths,function(t){t._dom&&zf.prototype.markUsed.call(e,t._dom),t._textDom&&zf.prototype.markUsed.call(e,t._textDom)})},h(Rf,zf),Rf.prototype.addWithoutUpdate=function(t,e){if(e&&Bf(e.style)){var n,i=e.style;i._shadowDom?(n=i._shadowDom,this.getDefs(!0).contains(i._shadowDom)||this.addDom(n)):n=this.add(e),this.markUsed(e);var r=n.getAttribute("id");t.style.filter="url(#"+r+")"}},Rf.prototype.add=function(t){var e=this.createElement("filter"),n=t.style;return n._shadowDomId=n._shadowDomId||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-shadow-"+n._shadowDomId),this.updateDom(t,e),this.addDom(e),e},Rf.prototype.update=function(t,e){var n=e.style;if(Bf(n)){var i=this;zf.prototype.update.call(this,e,function(t){i.updateDom(e,t._shadowDom)})}else this.remove(t,n)},Rf.prototype.remove=function(t,e){null!=e._shadowDomId&&(this.removeDom(e),t.style.filter="")},Rf.prototype.updateDom=function(t,e){var n=e.getElementsByTagName("feDropShadow");n=0===n.length?this.createElement("feDropShadow"):n[0];var i,r,o,a,s=t.style,l=t.scale?t.scale[0]||1:1,h=t.scale?t.scale[1]||1:1;if(s.shadowBlur||s.shadowOffsetX||s.shadowOffsetY)i=s.shadowOffsetX||0,r=s.shadowOffsetY||0,o=s.shadowBlur,a=s.shadowColor;else{if(!s.textShadowBlur)return void this.removeDom(e,s);i=s.textShadowOffsetX||0,r=s.textShadowOffsetY||0,o=s.textShadowBlur,a=s.textShadowColor}n.setAttribute("dx",i/l),n.setAttribute("dy",r/h),n.setAttribute("flood-color",a);var u=o/2/l+" "+o/2/h;n.setAttribute("stdDeviation",u),e.setAttribute("x","-100%"),e.setAttribute("y","-100%"),e.setAttribute("width",Math.ceil(o/2*200)+"%"),e.setAttribute("height",Math.ceil(o/2*200)+"%"),e.appendChild(n),s._shadowDom=e},Rf.prototype.markUsed=function(t){var e=t.style;e&&e._shadowDom&&zf.prototype.markUsed.call(this,e._shadowDom)};var iI=function(t,e,n,i){this.root=t,this.storage=e,this._opts=n=o({},n||{});var r=_f("svg");r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;",this.gradientManager=new Ef(i,r),this.clipPathManager=new Nf(i,r),this.shadowManager=new Rf(i,r);var a=document.createElement("div");a.style.cssText="overflow:hidden;position:relative",this._svgRoot=r,this._viewport=a,t.appendChild(a),a.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]};iI.prototype={constructor:iI,getType:function(){return"svg"},getViewportRoot:function(){return this._viewport},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},setBackgroundColor:function(t){this._viewport.style.background=t},_paintList:function(t){this.gradientManager.markAllUnused(),this.clipPathManager.markAllUnused(),this.shadowManager.markAllUnused();var e,n=this._svgRoot,i=this._visibleList,r=t.length,o=[];for(e=0;e=0;--i)if(e[i]===t)return!0;return!1}),n):null:n[0]},resize:function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgRoot;o.setAttribute("width",t),o.setAttribute("height",e)}},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Vf(s[n])||Vf(a.style[n]))-(Vf(s[r])||0)-(Vf(s[o])||0)|0},dispose:function(){this.root.innerHTML="",this._svgRoot=this._viewport=this.storage=null},clear:function(){this._viewport&&this.root.removeChild(this._viewport)},pathToDataUrl:function(){return this.refresh(),"data:image/svg+xml;charset=UTF-8,"+this._svgRoot.outerHTML}},d(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(t){iI.prototype[t]=jf(t)}),vn("svg",iI),t.version="4.0.4",t.dependencies=dx,t.PRIORITY=mx,t.init=function(t,e,n){var i=qa(t);if(i)return i;var r=new Da(t,e,n);return r.id="ec_"+zx++,Lx[r.id]=r,Pn(t,Nx,r.id),ja(r),r},t.connect=function(t){if(y(t)){var e=t;t=null,lx(e,function(e){null!=e.group&&(t=e.group)}),t=t||"g_"+Ex++,lx(e,function(e){e.group=t})}return Ox[t]=!0,t},t.disConnect=Ya,t.disconnect=Bx,t.dispose=function(t){"string"==typeof t?t=Lx[t]:t instanceof Da||(t=qa(t)),t instanceof Da&&!t.isDisposed()&&t.dispose()},t.getInstanceByDom=qa,t.getInstanceById=function(t){return Lx[t]},t.registerTheme=$a,t.registerPreprocessor=Ka,t.registerProcessor=Qa,t.registerPostUpdate=function(t){Dx.push(t)},t.registerAction=Ja,t.registerCoordinateSystem=function(t,e){yo.register(t,e)},t.getCoordinateSystemDimensions=function(t){var e=yo.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.registerLayout=ts,t.registerVisual=es,t.registerLoading=is,t.extendComponentModel=rs,t.extendComponentView=os,t.extendSeriesModel=as,t.extendChartView=ss,t.setCanvasCreator=function(t){e("createCanvas",t)},t.registerMap=function(t,e,n){e.geoJson&&!e.features&&(n=e.specialAreas,e=e.geoJson),"string"==typeof e&&(e="undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")()),Rx[t]={geoJson:e,specialAreas:n}},t.getMap=function(t){return Rx[t]},t.dataTool=Vx,t.zrender=Wg,t.graphic=Av,t.number=Vv,t.format=Uv,t.throttle=la,t.helper=A_,t.matrix=Mp,t.vector=vp,t.color=Hp,t.parseGeoJSON=P_,t.parseGeoJson=E_,t.util=N_,t.List=Yx,t.Model=pr,t.Axis=z_,t.env=Kf}); diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/echart/echarts.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/echart/echarts.min.js new file mode 100644 index 0000000..e5a6576 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/echart/echarts.min.js @@ -0,0 +1 @@ +!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,e){"createCanvas"===t&&(Gx=null),Bx[t]=e}function i(t){if(null==t||"object"!=typeof t)return t;var e=t,n=kx.call(t);if("[object Array]"===n){if(!O(t)){e=[];for(var o=0,a=t.length;on_||t<-n_}function vt(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null!=t.loop&&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 yt(t){return(t=Math.round(t))<0?0:t>255?255:t}function xt(t){return(t=Math.round(t))<0?0:t>360?360:t}function _t(t){return t<0?0:t>1?1:t}function wt(t){return yt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function bt(t){return _t(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function St(t,e,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}function Mt(t,e,i){return t+(e-t)*i}function It(t,e,i,n,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=o,t}function Dt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Tt(t,e){g_&&Dt(g_,e),g_=p_.put(t,g_||e.slice())}function At(t,e){if(t){e=e||[];var i=p_.get(t);if(i)return Dt(e,i);var n=(t+="").replace(/ /g,"").toLowerCase();if(n in f_)return Dt(e,f_[n]),Tt(t,e),e;if("#"!==n.charAt(0)){var o=n.indexOf("("),a=n.indexOf(")");if(-1!==o&&a+1===n.length){var r=n.substr(0,o),s=n.substr(o+1,a-(o+1)).split(","),l=1;switch(r){case"rgba":if(4!==s.length)return void It(e,0,0,0,1);l=bt(s.pop());case"rgb":return 3!==s.length?void It(e,0,0,0,1):(It(e,wt(s[0]),wt(s[1]),wt(s[2]),l),Tt(t,e),e);case"hsla":return 4!==s.length?void It(e,0,0,0,1):(s[3]=bt(s[3]),Ct(s,e),Tt(t,e),e);case"hsl":return 3!==s.length?void It(e,0,0,0,1):(Ct(s,e),Tt(t,e),e);default:return}}It(e,0,0,0,1)}else{if(4===n.length)return(u=parseInt(n.substr(1),16))>=0&&u<=4095?(It(e,(3840&u)>>4|(3840&u)>>8,240&u|(240&u)>>4,15&u|(15&u)<<4,1),Tt(t,e),e):void It(e,0,0,0,1);if(7===n.length){var u=parseInt(n.substr(1),16);return u>=0&&u<=16777215?(It(e,(16711680&u)>>16,(65280&u)>>8,255&u,1),Tt(t,e),e):void It(e,0,0,0,1)}}}}function Ct(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=bt(t[1]),o=bt(t[2]),a=o<=.5?o*(n+1):o+n-o*n,r=2*o-a;return e=e||[],It(e,yt(255*St(r,a,i+1/3)),yt(255*St(r,a,i)),yt(255*St(r,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Lt(t){if(t){var e,i,n=t[0]/255,o=t[1]/255,a=t[2]/255,r=Math.min(n,o,a),s=Math.max(n,o,a),l=s-r,u=(s+r)/2;if(0===l)e=0,i=0;else{i=u<.5?l/(s+r):l/(2-s-r);var h=((s-n)/6+l/2)/l,c=((s-o)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-c:o===s?e=1/3+h-d:a===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,u];return null!=t[3]&&f.push(t[3]),f}}function kt(t,e){var i=At(t);if(i){for(var n=0;n<3;n++)i[n]=e<0?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 Rt(i,4===i.length?"rgba":"rgb")}}function Pt(t){var e=At(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Nt(t,e,i){if(e&&e.length&&t>=0&&t<=1){i=i||[];var n=t*(e.length-1),o=Math.floor(n),a=Math.ceil(n),r=e[o],s=e[a],l=n-o;return i[0]=yt(Mt(r[0],s[0],l)),i[1]=yt(Mt(r[1],s[1],l)),i[2]=yt(Mt(r[2],s[2],l)),i[3]=_t(Mt(r[3],s[3],l)),i}}function Ot(t,e,i){if(e&&e.length&&t>=0&&t<=1){var n=t*(e.length-1),o=Math.floor(n),a=Math.ceil(n),r=At(e[o]),s=At(e[a]),l=n-o,u=Rt([yt(Mt(r[0],s[0],l)),yt(Mt(r[1],s[1],l)),yt(Mt(r[2],s[2],l)),_t(Mt(r[3],s[3],l))],"rgba");return i?{color:u,leftIndex:o,rightIndex:a,value:n}:u}}function Et(t,e,i,n){if(t=At(t))return t=Lt(t),null!=e&&(t[0]=xt(e)),null!=i&&(t[1]=bt(i)),null!=n&&(t[2]=bt(n)),Rt(Ct(t),"rgba")}function zt(t,e){if((t=At(t))&&null!=e)return t[3]=_t(e),Rt(t,"rgba")}function Rt(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 Bt(t,e){return t[e]}function Vt(t,e,i){t[e]=i}function Gt(t,e,i){return(e-t)*i+t}function Ft(t,e,i){return i>.5?e:t}function Wt(t,e,i,n,o){var a=t.length;if(1==o)for(s=0;so)t.length=o;else for(r=n;r=0&&!(m[i]<=e);i--);i=Math.min(i,u-2)}else{for(i=L;ie);i++);i=Math.min(i-1,u-2)}L=i,k=e;var n=m[i+1]-m[i];if(0!==n)if(I=(e-m[i])/n,l)if(T=v[i],D=v[0===i?i:i-1],A=v[i>u-2?u-1:i+1],C=v[i>u-3?u-1:i+2],d)Ut(D,T,A,C,I,I*I,I*I*I,r(t,o),g);else{if(f)a=Ut(D,T,A,C,I,I*I,I*I*I,P,1),a=Yt(P);else{if(p)return Ft(T,A,I);a=jt(D,T,A,C,I,I*I,I*I*I)}s(t,o,a)}else if(d)Wt(v[i],v[i+1],I,r(t,o),g);else{var a;if(f)Wt(v[i],v[i+1],I,P,1),a=Yt(P);else{if(p)return Ft(v[i],v[i+1],I);a=Gt(v[i],v[i+1],I)}s(t,o,a)}},ondestroy:i});return e&&"spline"!==e&&(N.easing=e),N}}}function Kt(t,e,i,n){i<0&&(t+=i,i=-i),n<0&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}function Jt(t){for(var e=0;t>=k_;)e|=1&t,t>>=1;return t+e}function Qt(t,e,i,n){var o=e+1;if(o===i)return 1;if(n(t[o++],t[e])<0){for(;o=0;)o++;return o-e}function te(t,e,i){for(i--;e>>1])<0?l=a:s=a+1;var u=n-s;switch(u){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(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=r}}function ie(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])>0){for(s=n-o;l0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}else{for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}for(r++;r>>1);a(t,e[i+h])>0?r=h+1:l=h}return l}function ne(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])<0){for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}else{for(s=n-o;l=0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}for(r++;r>>1);a(t,e[i+h])<0?l=h:r=h+1}return l}function oe(t,e){function i(i){var s=a[i],u=r[i],h=a[i+1],c=r[i+1];r[i]=u+c,i===l-3&&(a[i+1]=a[i+2],r[i+1]=r[i+2]),l--;var d=ne(t[h],t,s,u,0,e);s+=d,0!==(u-=d)&&0!==(c=ie(t[s+u-1],t,h,c,c-1,e))&&(u<=c?n(s,u,h,c):o(s,u,h,c))}function n(i,n,o,a){var r=0;for(r=0;r=P_||f>=P_);if(p)break;g<0&&(g=0),g+=2}if((s=g)<1&&(s=1),1===n){for(r=0;r=0;r--)t[f+r]=t[d+r];if(0===n){v=!0;break}}if(t[c--]=u[h--],1==--a){v=!0;break}if(0!=(m=a-ie(t[l],u,0,a,a-1,e))){for(a-=m,f=(c-=m)+1,d=(h-=m)+1,r=0;r=P_||m>=P_);if(v)break;p<0&&(p=0),p+=2}if((s=p)<1&&(s=1),1===a){for(f=(c-=n)+1,d=(l-=n)+1,r=n-1;r>=0;r--)t[f+r]=t[d+r];t[c]=u[h]}else{if(0===a)throw new Error;for(d=c-(a-1),r=0;r=0;r--)t[f+r]=t[d+r];t[c]=u[h]}else for(d=c-(a-1),r=0;r1;){var t=l-2;if(t>=1&&r[t-1]<=r[t]+r[t+1]||t>=2&&r[t-2]<=r[t]+r[t-1])r[t-1]r[t+1])break;i(t)}},this.forceMergeRuns=function(){for(;l>1;){var t=l-2;t>0&&r[t-1]s&&(l=s),ee(t,i,i+l,i+a,e),a=l}r.pushRun(i,a),r.mergeRuns(),o-=a,i+=a}while(0!==o);r.forceMergeRuns()}}function re(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function se(t,e,i){var n=null==e.x?0:e.x,o=null==e.x2?1:e.x2,a=null==e.y?0:e.y,r=null==e.y2?0:e.y2;return e.global||(n=n*i.width+i.x,o=o*i.width+i.x,a=a*i.height+i.y,r=r*i.height+i.y),n=isNaN(n)?0:n,o=isNaN(o)?1:o,a=isNaN(a)?0:a,r=isNaN(r)?0:r,t.createLinearGradient(n,a,o,r)}function le(t,e,i){var n=i.width,o=i.height,a=Math.min(n,o),r=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(r=r*n+i.x,s=s*o+i.y,l*=a),t.createRadialGradient(r,s,0,r,s,l)}function ue(){return!1}function he(t,e,i){var n=Vx(),o=e.getWidth(),a=e.getHeight(),r=n.style;return r&&(r.position="absolute",r.left=0,r.top=0,r.width=o+"px",r.height=a+"px",n.setAttribute("data-zr-dom-id",t)),n.width=o*i,n.height=a*i,n}function ce(t){if("string"==typeof t){var e=Z_.get(t);return e&&e.image}return t}function de(t,e,i,n,o){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!i)return e;var a=Z_.get(t),r={hostEl:i,cb:n,cbPayload:o};return a?!pe(e=a.image)&&a.pending.push(r):(!e&&(e=new Image),e.onload=fe,Z_.put(t,e.__cachedImgObj={image:e,pending:[r]}),e.src=e.__zrImageSrc=t),e}return t}return e}function fe(){var t=this.__cachedImgObj;this.onload=this.__cachedImgObj=null;for(var e=0;eX_&&(j_=0,U_={}),j_++,U_[i]=o,o}function me(t,e,i,n,o,a,r){return a?ye(t,e,i,n,o,a,r):ve(t,e,i,n,o,r)}function ve(t,e,i,n,o,a){var r=Ae(t,e,o,a),s=ge(t,e);o&&(s+=o[1]+o[3]);var l=r.outerHeight,u=new Kt(xe(0,s,i),_e(0,l,n),s,l);return u.lineHeight=r.lineHeight,u}function ye(t,e,i,n,o,a,r){var s=Ce(t,{rich:a,truncate:r,font:e,textAlign:i,textPadding:o}),l=s.outerWidth,u=s.outerHeight;return new Kt(xe(0,l,i),_e(0,u,n),l,u)}function xe(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function _e(t,e,i){return"middle"===i?t-=e/2:"bottom"===i&&(t-=e),t}function we(t,e,i){var n=e.x,o=e.y,a=e.height,r=e.width,s=a/2,l="left",u="top";switch(t){case"left":n-=i,o+=s,l="right",u="middle";break;case"right":n+=i+r,o+=s,u="middle";break;case"top":n+=r/2,o-=i,l="center",u="bottom";break;case"bottom":n+=r/2,o+=a+i,l="center";break;case"inside":n+=r/2,o+=s,l="center",u="middle";break;case"insideLeft":n+=i,o+=s,u="middle";break;case"insideRight":n+=r-i,o+=s,l="right",u="middle";break;case"insideTop":n+=r/2,o+=i,l="center";break;case"insideBottom":n+=r/2,o+=a-i,l="center",u="bottom";break;case"insideTopLeft":n+=i,o+=i;break;case"insideTopRight":n+=r-i,o+=i,l="right";break;case"insideBottomLeft":n+=i,o+=a-i,u="bottom";break;case"insideBottomRight":n+=r-i,o+=a-i,l="right",u="bottom"}return{x:n,y:o,textAlign:l,textVerticalAlign:u}}function be(t,e,i,n,o){if(!e)return"";var a=(t+"").split("\n");o=Se(e,i,n,o);for(var r=0,s=a.length;r=r;l++)s-=r;var u=ge(i);return u>s&&(i="",u=0),s=t-u,n.ellipsis=i,n.ellipsisWidth=u,n.contentWidth=s,n.containerWidth=t,n}function Me(t,e){var i=e.containerWidth,n=e.font,o=e.contentWidth;if(!i)return"";var a=ge(t,n);if(a<=i)return t;for(var r=0;;r++){if(a<=o||r>=e.maxIterations){t+=e.ellipsis;break}var s=0===r?Ie(t,o,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*o/a):0;a=ge(t=t.substr(0,s),n)}return""===t&&(t=e.placeholder),t}function Ie(t,e,i,n){for(var o=0,a=0,r=t.length;al)t="",a=[];else if(null!=u)for(var h=Se(u-(i?i[1]+i[3]:0),e,n.ellipsis,{minChar:n.minChar,placeholder:n.placeholder}),c=0,d=a.length;co&&Le(i,t.substring(o,a)),Le(i,n[2],n[1]),o=Y_.lastIndex}of)return{lines:[],width:0,height:0};k.textWidth=ge(k.text,_);var b=y.textWidth,S=null==b||"auto"===b;if("string"==typeof b&&"%"===b.charAt(b.length-1))k.percentWidth=b,u.push(k),b=0;else{if(S){b=k.textWidth;var M=y.textBackgroundColor,I=M&&M.image;I&&pe(I=ce(I))&&(b=Math.max(b,I.width*w/I.height))}var D=x?x[1]+x[3]:0;b+=D;var C=null!=d?d-m:null;null!=C&&Cl&&(i*=l/(c=i+n),n*=l/c),o+a>l&&(o*=l/(c=o+a),a*=l/c),n+o>u&&(n*=u/(c=n+o),o*=u/c),i+a>u&&(i*=u/(c=i+a),a*=u/c),t.moveTo(r+i,s),t.lineTo(r+l-n,s),0!==n&&t.arc(r+l-n,s+n,n,-Math.PI/2,0),t.lineTo(r+l,s+u-o),0!==o&&t.arc(r+l-o,s+u-o,o,0,Math.PI/2),t.lineTo(r+a,s+u),0!==a&&t.arc(r+a,s+u-a,a,Math.PI/2,Math.PI),t.lineTo(r,s+i),0!==i&&t.arc(r+i,s+i,i,Math.PI,1.5*Math.PI)}function Ne(t){return Oe(t),d(t.rich,Oe),t}function Oe(t){if(t){t.font=ke(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||K_[e]?e:"left";var i=t.textVerticalAlign||t.textBaseline;"center"===i&&(i="middle"),t.textVerticalAlign=null==i||J_[i]?i:"top",t.textPadding&&(t.textPadding=L(t.textPadding))}}function Ee(t,e,i,n,o){n.rich?Re(t,e,i,n,o):ze(t,e,i,n,o)}function ze(t,e,i,n,o){var a=Ue(e,"font",n.font||q_),r=n.textPadding,s=t.__textCotentBlock;s&&!t.__dirty||(s=t.__textCotentBlock=Ae(i,a,r,n.truncate));var l=s.outerHeight,u=s.lines,h=s.lineHeight,c=Ze(l,n,o),d=c.baseX,f=c.baseY,p=c.textAlign,g=c.textVerticalAlign;Ve(e,n,o,d,f);var m=_e(f,l,g),v=d,y=m,x=Fe(n);if(x||r){var _=ge(i,a);r&&(_+=r[1]+r[3]);var w=xe(d,_,p);x&&We(t,e,n,w,m,_,l),r&&(v=qe(d,p,r),y+=r[0])}Ue(e,"textAlign",p||"left"),Ue(e,"textBaseline","middle"),Ue(e,"shadowBlur",n.textShadowBlur||0),Ue(e,"shadowColor",n.textShadowColor||"transparent"),Ue(e,"shadowOffsetX",n.textShadowOffsetX||0),Ue(e,"shadowOffsetY",n.textShadowOffsetY||0),y+=h/2;var b=n.textStrokeWidth,S=je(n.textStroke,b),M=Xe(n.textFill);S&&(Ue(e,"lineWidth",b),Ue(e,"strokeStyle",S)),M&&Ue(e,"fillStyle",M);for(var I=0;I=0&&"right"===(_=b[C]).textAlign;)Ge(t,e,_,n,M,v,A,"right"),I-=_.width,A-=_.width,C--;for(T+=(a-(T-m)-(y-A)-I)/2;D<=C;)Ge(t,e,_=b[D],n,M,v,T+_.width/2,"center"),T+=_.width,D++;v+=M}}function Ve(t,e,i,n,o){if(i&&e.textRotation){var a=e.textOrigin;"center"===a?(n=i.width/2+i.x,o=i.height/2+i.y):a&&(n=a[0]+i.x,o=a[1]+i.y),t.translate(n,o),t.rotate(-e.textRotation),t.translate(-n,-o)}}function Ge(t,e,i,n,o,a,r,s){var l=n.rich[i.styleName]||{},u=i.textVerticalAlign,h=a+o/2;"top"===u?h=a+i.height/2:"bottom"===u&&(h=a+o-i.height/2),!i.isLineHolder&&Fe(l)&&We(t,e,l,"right"===s?r-i.width:"center"===s?r-i.width/2:r,h-i.height/2,i.width,i.height);var c=i.textPadding;c&&(r=qe(r,s,c),h-=i.height/2-c[2]-i.textHeight/2),Ue(e,"shadowBlur",A(l.textShadowBlur,n.textShadowBlur,0)),Ue(e,"shadowColor",l.textShadowColor||n.textShadowColor||"transparent"),Ue(e,"shadowOffsetX",A(l.textShadowOffsetX,n.textShadowOffsetX,0)),Ue(e,"shadowOffsetY",A(l.textShadowOffsetY,n.textShadowOffsetY,0)),Ue(e,"textAlign",s),Ue(e,"textBaseline","middle"),Ue(e,"font",i.font||q_);var d=je(l.textStroke||n.textStroke,p),f=Xe(l.textFill||n.textFill),p=T(l.textStrokeWidth,n.textStrokeWidth);d&&(Ue(e,"lineWidth",p),Ue(e,"strokeStyle",d),e.strokeText(i.text,r,h)),f&&(Ue(e,"fillStyle",f),e.fillText(i.text,r,h))}function Fe(t){return t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor}function We(t,e,i,n,o,a,r){var s=i.textBackgroundColor,l=i.textBorderWidth,u=i.textBorderColor,h=_(s);if(Ue(e,"shadowBlur",i.textBoxShadowBlur||0),Ue(e,"shadowColor",i.textBoxShadowColor||"transparent"),Ue(e,"shadowOffsetX",i.textBoxShadowOffsetX||0),Ue(e,"shadowOffsetY",i.textBoxShadowOffsetY||0),h||l&&u){e.beginPath();var c=i.textBorderRadius;c?Pe(e,{x:n,y:o,width:a,height:r,r:c}):e.rect(n,o,a,r),e.closePath()}if(h)Ue(e,"fillStyle",s),e.fill();else if(w(s)){var d=s.image;(d=de(d,null,t,He,s))&&pe(d)&&e.drawImage(d,n,o,a,r)}l&&u&&(Ue(e,"lineWidth",l),Ue(e,"strokeStyle",u),e.stroke())}function He(t,e){e.image=t}function Ze(t,e,i){var n=e.x||0,o=e.y||0,a=e.textAlign,r=e.textVerticalAlign;if(i){var s=e.textPosition;if(s instanceof Array)n=i.x+Ye(s[0],i.width),o=i.y+Ye(s[1],i.height);else{var l=we(s,i,e.textDistance);n=l.x,o=l.y,a=a||l.textAlign,r=r||l.textVerticalAlign}var u=e.textOffset;u&&(n+=u[0],o+=u[1])}return{baseX:n,baseY:o,textAlign:a,textVerticalAlign:r}}function Ue(t,e,i){return t[e]=E_(t,e,i),t[e]}function je(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Xe(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function Ye(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function qe(t,e,i){return"right"===e?t-i[1]:"center"===e?t+i[3]/2-i[1]/2:t+i[3]}function $e(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function Ke(t){t=t||{},D_.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new R_(t.style,this),this._rect=null,this.__clipPaths=[]}function Je(t){Ke.call(this,t)}function Qe(t){return parseInt(t,10)}function ti(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}function ei(t,e,i){return ew.copy(t.getBoundingRect()),t.transform&&ew.applyTransform(t.transform),iw.width=e,iw.height=i,!ew.intersect(iw)}function ii(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;i=0){var o="touchend"!=n?e.targetTouches[0]:e.changedTouches[0];o&&ri(t,o,e,i)}else ri(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var a=e.button;return null==e.which&&void 0!==a&&aw.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function ui(t,e,i){ow?t.addEventListener(e,i):t.attachEvent("on"+e,i)}function hi(t,e,i){ow?t.removeEventListener(e,i):t.detachEvent("on"+e,i)}function ci(t){return t.which>1}function di(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}function fi(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}function pi(t){return"mousewheel"===t&&Ax.browser.firefox?"DOMMouseScroll":t}function gi(t,e,i){var n=t._gestureMgr;"start"===i&&n.clear();var o=n.recognize(e,t.handler.findHover(e.zrX,e.zrY,null).target,t.dom);if("end"===i&&n.clear(),o){var a=o.type;e.gestureEvent=a,t.handler.dispatchToElement({target:o.target},a,o.event)}}function mi(t){t._touching=!0,clearTimeout(t._touchTimer),t._touchTimer=setTimeout(function(){t._touching=!1},700)}function vi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function yi(t){function e(t,e){return function(){if(!e._touching)return t.apply(e,arguments)}}d(cw,function(e){t._handlers[e]=m(pw[e],t)}),d(fw,function(e){t._handlers[e]=m(pw[e],t)}),d(hw,function(i){t._handlers[i]=e(pw[i],t)})}function xi(t){function e(e,i){d(e,function(e){ui(t,pi(e),i._handlers[e])},i)}$x.call(this),this.dom=t,this._touching=!1,this._touchTimer,this._gestureMgr=new lw,this._handlers={},yi(this),Ax.pointerEventsSupported?e(fw,this):(Ax.touchEventsSupported&&e(cw,this),e(hw,this))}function _i(t,e){var i=new xw(Dx(),t,e);return yw[i.id]=i,i}function wi(t,e){vw[t]=e}function bi(t){delete yw[t]}function Si(t){return t instanceof Array?t:null==t?[]:[t]}function Mi(t,e,i){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var n=0,o=i.length;n=i.length&&i.push({option:t})}}),i}function Ai(t){var e=z();ww(t,function(t,i){var n=t.exist;n&&e.set(n.id,t)}),ww(t,function(t,i){var n=t.option;k(!n||null==n.id||!e.get(n.id)||e.get(n.id)===t,"id duplicates: "+(n&&n.id)),n&&null!=n.id&&e.set(n.id,t),!t.keyInfo&&(t.keyInfo={})}),ww(t,function(t,i){var n=t.exist,o=t.option,a=t.keyInfo;if(bw(o)){if(a.name=null!=o.name?o.name+"":n?n.name:Mw+i,n)a.id=n.id;else if(null!=o.id)a.id=o.id+"";else{var r=0;do{a.id="\0"+a.name+"\0"+r++}while(e.get(a.id))}e.set(a.id,t)}})}function Ci(t){var e=t.name;return!(!e||!e.indexOf(Mw))}function Li(t){return bw(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function ki(t,e){function i(t,e,i){for(var n=0,o=t.length;n-Rw&&tRw||t<-Rw}function Xi(t,e,i,n,o){var a=1-o;return a*a*(a*t+3*o*e)+o*o*(o*n+3*a*i)}function Yi(t,e,i,n,o){var a=1-o;return 3*(((e-t)*a+2*(i-e)*o)*a+(n-i)*o*o)}function qi(t,e,i,n,o,a){var r=n+3*(e-i)-t,s=3*(i-2*e+t),l=3*(e-t),u=t-o,h=s*s-3*r*l,c=s*l-9*r*u,d=l*l-3*s*u,f=0;if(Ui(h)&&Ui(c))Ui(s)?a[0]=0:(M=-l/s)>=0&&M<=1&&(a[f++]=M);else{var p=c*c-4*h*d;if(Ui(p)){var g=c/h,m=-g/2;(M=-s/r+g)>=0&&M<=1&&(a[f++]=M),m>=0&&m<=1&&(a[f++]=m)}else if(p>0){var v=zw(p),y=h*s+1.5*r*(-c+v),x=h*s+1.5*r*(-c-v);(M=(-s-((y=y<0?-Ew(-y,Gw):Ew(y,Gw))+(x=x<0?-Ew(-x,Gw):Ew(x,Gw))))/(3*r))>=0&&M<=1&&(a[f++]=M)}else{var _=(2*h*s-3*r*c)/(2*zw(h*h*h)),w=Math.acos(_)/3,b=zw(h),S=Math.cos(w),M=(-s-2*b*S)/(3*r),m=(-s+b*(S+Vw*Math.sin(w)))/(3*r),I=(-s+b*(S-Vw*Math.sin(w)))/(3*r);M>=0&&M<=1&&(a[f++]=M),m>=0&&m<=1&&(a[f++]=m),I>=0&&I<=1&&(a[f++]=I)}}return f}function $i(t,e,i,n,o){var a=6*i-12*e+6*t,r=9*e+3*n-3*t-9*i,s=3*e-3*t,l=0;if(Ui(r))ji(a)&&(c=-s/a)>=0&&c<=1&&(o[l++]=c);else{var u=a*a-4*r*s;if(Ui(u))o[0]=-a/(2*r);else if(u>0){var h=zw(u),c=(-a+h)/(2*r),d=(-a-h)/(2*r);c>=0&&c<=1&&(o[l++]=c),d>=0&&d<=1&&(o[l++]=d)}}return l}function Ki(t,e,i,n,o,a){var r=(e-t)*o+t,s=(i-e)*o+e,l=(n-i)*o+i,u=(s-r)*o+r,h=(l-s)*o+s,c=(h-u)*o+u;a[0]=t,a[1]=r,a[2]=u,a[3]=c,a[4]=c,a[5]=h,a[6]=l,a[7]=n}function Ji(t,e,i,n,o,a,r,s,l,u,h){var c,d,f,p,g,m=.005,v=1/0;Fw[0]=l,Fw[1]=u;for(var y=0;y<1;y+=.05)Ww[0]=Xi(t,i,o,r,y),Ww[1]=Xi(e,n,a,s,y),(p=Xx(Fw,Ww))=0&&p=0&&c<=1&&(o[l++]=c);else{var u=r*r-4*a*s;if(Ui(u))(c=-r/(2*a))>=0&&c<=1&&(o[l++]=c);else if(u>0){var h=zw(u),c=(-r+h)/(2*a),d=(-r-h)/(2*a);c>=0&&c<=1&&(o[l++]=c),d>=0&&d<=1&&(o[l++]=d)}}return l}function nn(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function on(t,e,i,n,o){var a=(e-t)*n+t,r=(i-e)*n+e,s=(r-a)*n+a;o[0]=t,o[1]=a,o[2]=s,o[3]=s,o[4]=r,o[5]=i}function an(t,e,i,n,o,a,r,s,l){var u,h=.005,c=1/0;Fw[0]=r,Fw[1]=s;for(var d=0;d<1;d+=.05)Ww[0]=Qi(t,i,o,d),Ww[1]=Qi(e,n,a,d),(m=Xx(Fw,Ww))=0&&m1e-4)return s[0]=t-i,s[1]=e-n,l[0]=t+i,void(l[1]=e+n);if(qw[0]=Xw(o)*i+t,qw[1]=jw(o)*n+e,$w[0]=Xw(a)*i+t,$w[1]=jw(a)*n+e,u(s,qw,$w),h(l,qw,$w),(o%=Yw)<0&&(o+=Yw),(a%=Yw)<0&&(a+=Yw),o>a&&!r?a+=Yw:oo&&(Kw[0]=Xw(f)*i+t,Kw[1]=jw(f)*n+e,u(s,Kw,s),h(l,Kw,l))}function cn(t,e,i,n,o,a,r){if(0===o)return!1;var s=o,l=0,u=t;if(r>e+s&&r>n+s||rt+s&&a>i+s||ae+c&&h>n+c&&h>a+c&&h>s+c||ht+c&&u>i+c&&u>o+c&&u>r+c||ue+u&&l>n+u&&l>a+u||lt+u&&s>i+u&&s>o+u||si||h+uo&&(o+=pb);var d=Math.atan2(l,s);return d<0&&(d+=pb),d>=n&&d<=o||d+pb>=n&&d+pb<=o}function mn(t,e,i,n,o,a){if(a>e&&a>n||ao?r:0}function vn(t,e){return Math.abs(t-e)e&&u>n&&u>a&&u>s||u1&&yn(),c=Xi(e,n,a,s,xb[0]),p>1&&(d=Xi(e,n,a,s,xb[1]))),2==p?me&&s>n&&s>a||s=0&&u<=1){for(var h=0,c=Qi(e,n,a,u),d=0;di||s<-i)return 0;u=Math.sqrt(i*i-s*s);yb[0]=-u,yb[1]=u;var l=Math.abs(n-o);if(l<1e-4)return 0;if(l%mb<1e-4){n=0,o=mb;p=a?1:-1;return r>=yb[0]+t&&r<=yb[1]+t?p:0}if(a){var u=n;n=pn(o),o=pn(u)}else n=pn(n),o=pn(o);n>o&&(o+=mb);for(var h=0,c=0;c<2;c++){var d=yb[c];if(d+t>r){var f=Math.atan2(s,d),p=a?1:-1;f<0&&(f=mb+f),(f>=n&&f<=o||f+mb>=n&&f+mb<=o)&&(f>Math.PI/2&&f<1.5*Math.PI&&(p=-p),h+=p)}}return h}function bn(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;h1&&(i||(a+=mn(r,s,l,u,n,o))),1==h&&(l=r=t[h],u=s=t[h+1]),c){case gb.M:r=l=t[h++],s=u=t[h++];break;case gb.L:if(i){if(cn(r,s,t[h],t[h+1],e,n,o))return!0}else a+=mn(r,s,t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case gb.C:if(i){if(dn(r,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=xn(r,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case gb.Q:if(i){if(fn(r,s,t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=_n(r,s,t[h++],t[h++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case gb.A:var d=t[h++],f=t[h++],p=t[h++],g=t[h++],m=t[h++],v=t[h++],y=(t[h++],1-t[h++]),x=Math.cos(m)*p+d,_=Math.sin(m)*g+f;h>1?a+=mn(r,s,x,_,n,o):(l=x,u=_);var w=(n-d)*g/p+d;if(i){if(gn(d,f,g,m,m+v,y,e,w,o))return!0}else a+=wn(d,f,g,m,m+v,y,w,o);r=Math.cos(m+v)*p+d,s=Math.sin(m+v)*g+f;break;case gb.R:l=r=t[h++],u=s=t[h++];var x=l+t[h++],_=u+t[h++];if(i){if(cn(l,u,x,u,e,n,o)||cn(x,u,x,_,e,n,o)||cn(x,_,l,_,e,n,o)||cn(l,_,l,u,e,n,o))return!0}else a+=mn(x,u,x,_,n,o),a+=mn(l,_,l,u,n,o);break;case gb.Z:if(i){if(cn(r,s,l,u,e,n,o))return!0}else a+=mn(r,s,l,u,n,o);r=l,s=u}}return i||vn(s,u)||(a+=mn(r,s,l,u,n,o)||0),0!==a}function Sn(t,e,i){return bn(t,0,!1,e,i)}function Mn(t,e,i,n){return bn(t,e,!0,i,n)}function In(t){Ke.call(this,t),this.path=null}function Dn(t,e,i,n,o,a,r,s,l,u,h){var c=l*(Pb/180),d=kb(c)*(t-i)/2+Lb(c)*(e-n)/2,f=-1*Lb(c)*(t-i)/2+kb(c)*(e-n)/2,p=d*d/(r*r)+f*f/(s*s);p>1&&(r*=Cb(p),s*=Cb(p));var g=(o===a?-1:1)*Cb((r*r*(s*s)-r*r*(f*f)-s*s*(d*d))/(r*r*(f*f)+s*s*(d*d)))||0,m=g*r*f/s,v=g*-s*d/r,y=(t+i)/2+kb(c)*m-Lb(c)*v,x=(e+n)/2+Lb(c)*m+kb(c)*v,_=Eb([1,0],[(d-m)/r,(f-v)/s]),w=[(d-m)/r,(f-v)/s],b=[(-1*d-m)/r,(-1*f-v)/s],S=Eb(w,b);Ob(w,b)<=-1&&(S=Pb),Ob(w,b)>=1&&(S=0),0===a&&S>0&&(S-=2*Pb),1===a&&S<0&&(S+=2*Pb),h.addData(u,y,x,r,s,_,S,c,a)}function Tn(t){if(!t)return[];var e,i=t.replace(/-/g," -").replace(/ /g," ").replace(/ /g,",").replace(/,,/g,",");for(e=0;e0&&""===f[0]&&f.shift();for(var p=0;p=2){if(o&&"spline"!==o){var a=Hb(n,o,i,e.smoothConstraint);t.moveTo(n[0][0],n[0][1]);for(var r=n.length,s=0;s<(i?r:r-1);s++){var l=a[2*s],u=a[2*s+1],h=n[(s+1)%r];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===o&&(n=Wb(n,i)),t.moveTo(n[0][0],n[0][1]);for(var s=1,c=n.length;s=0)&&(n={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=i.autoColor,null==t.textStrokeWidth&&(t.textStrokeWidth=2))),n}function uo(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth)}function ho(t,e){var i=e||e.getModel("textStyle");return P([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 co(t,e,i,n,o,a){if("function"==typeof o&&(a=o,o=null),n&&n.isAnimationEnabled()){var r=t?"Update":"",s=n.getShallow("animationDuration"+r),l=n.getShallow("animationEasing"+r),u=n.getShallow("animationDelay"+r);"function"==typeof u&&(u=u(o,n.getAnimationDelayParams?n.getAnimationDelayParams(e,o):null)),"function"==typeof s&&(s=s(o)),s>0?e.animateTo(i,s,u||0,l,a,!!a):(e.stopAnimation(),e.attr(i),a&&a())}else e.stopAnimation(),e.attr(i),a&&a()}function fo(t,e,i,n,o){co(!0,t,e,i,n,o)}function po(t,e,i,n,o){co(!1,t,e,i,n,o)}function go(t,e){for(var i=lt([]);t&&t!==e;)ht(i,t.getLocalTransform(),i),t=t.parent;return i}function mo(t,e,i){return e&&!c(e)&&(e=o_.getLocalTransform(e)),i&&(e=pt([],e)),Q([],t,e)}function vo(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),o=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?-o:"bottom"===t?o:0];return a=mo(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function yo(t,e,i,n){function o(t){var e={position:F(t.position),rotation:t.rotation};return t.shape&&(e.shape=a({},t.shape)),e}if(t&&e){var r=function(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=r[t.anid];if(e){var n=o(t);t.attr(o(e)),fo(t,n,i,t.dataIndex)}}})}}function xo(t,e){return f(t,function(t){var i=t[0];i=nS(i,e.x),i=oS(i,e.x+e.width);var n=t[1];return n=nS(n,e.y),n=oS(n,e.y+e.height),[i,n]})}function _o(t,e,i){var n=(e=a({rectHover:!0},e)).style={strokeNoScale:!0};if(i=i||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(n.image=t.slice(8),r(n,i),new Je(e)):zn(t.replace("path://",""),e,i,"center")}function wo(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function bo(t,e,i){for(var n=0;n0){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])/o*a+i[0]}function To(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?Io(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Ao(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Co(t){return t.sort(function(t,e){return t-e}),t}function Lo(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 ko(t){var e=t.toString(),i=e.indexOf("e");if(i>0){var n=+e.slice(i+1);return n<0?-n:0}var o=e.indexOf(".");return o<0?0:e.length-1-o}function Po(t,e){var i=Math.log,n=Math.LN10,o=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n),r=Math.min(Math.max(-o+a,0),20);return isFinite(r)?r:20}function No(t,e,i){if(!t[e])return 0;var n=p(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return 0;for(var o=Math.pow(10,i),a=f(t,function(t){return(isNaN(t)?0:t)/n*o*100}),r=100*o,s=f(a,function(t){return Math.floor(t)}),l=p(s,function(t,e){return t+e},0),u=f(a,function(t,e){return t-s[e]});lh&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/o}function Oo(t){var e=2*Math.PI;return(t%e+e)%e}function Eo(t){return t>-gS&&t=-20?+t.toFixed(n<0?-n:0):t}function Go(t){function e(t,i,n){return t.interval[n]=0}function Wo(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function Ho(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 Zo(t){return String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Uo(t,e,i){y(e)||(e=[e]);var n=e.length;if(!n)return"";for(var o=e[0].$vars||[],a=0;a':'':""}function Yo(t,e){return t+="","0000".substr(0,e-t.length)+t}function qo(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=zo(e),o=i?"UTC":"",a=n["get"+o+"FullYear"](),r=n["get"+o+"Month"]()+1,s=n["get"+o+"Date"](),l=n["get"+o+"Hours"](),u=n["get"+o+"Minutes"](),h=n["get"+o+"Seconds"](),c=n["get"+o+"Milliseconds"]();return t=t.replace("MM",Yo(r,2)).replace("M",r).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(u,2)).replace("m",u).replace("ss",Yo(h,2)).replace("s",h).replace("SSS",Yo(c,3))}function $o(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function Ko(t,e,i,n,o){var a=0,r=0;null==n&&(n=1/0),null==o&&(o=1/0);var s=0;e.eachChild(function(l,u){var h,c,d=l.position,f=l.getBoundingRect(),p=e.childAt(u+1),g=p&&p.getBoundingRect();if("horizontal"===t){var m=f.width+(g?-g.x+f.x:0);(h=a+m)>n||l.newline?(a=0,h=m,r+=s+i,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(g?-g.y+f.y:0);(c=r+v)>o||l.newline?(a+=s+i,r=0,c=v,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=r,"horizontal"===t?a=h+i:r=c+i)})}function Jo(t,e,i){var n=e.width,o=e.height,a=To(t.x,n),r=To(t.y,o),s=To(t.x2,n),l=To(t.y2,o);return(isNaN(a)||isNaN(parseFloat(t.x)))&&(a=0),(isNaN(s)||isNaN(parseFloat(t.x2)))&&(s=n),(isNaN(r)||isNaN(parseFloat(t.y)))&&(r=0),(isNaN(l)||isNaN(parseFloat(t.y2)))&&(l=o),i=xS(i||0),{width:Math.max(s-a-i[1]-i[3],0),height:Math.max(l-r-i[0]-i[2],0)}}function Qo(t,e,i){i=xS(i||0);var n=e.width,o=e.height,a=To(t.left,n),r=To(t.top,o),s=To(t.right,n),l=To(t.bottom,o),u=To(t.width,n),h=To(t.height,o),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(h)&&(h=o-l-c-r),null!=f&&(isNaN(u)&&isNaN(h)&&(f>n/o?u=.8*n:h=.8*o),isNaN(u)&&(u=f*h),isNaN(h)&&(h=u/f)),isNaN(a)&&(a=n-s-u-d),isNaN(r)&&(r=o-l-h-c),t.left||t.right){case"center":a=n/2-u/2-i[3];break;case"right":a=n-u-d}switch(t.top||t.bottom){case"middle":case"center":r=o/2-h/2-i[0];break;case"bottom":r=o-h-c}a=a||0,r=r||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(h)&&(h=o-c-r-(l||0));var p=new Kt(a+i[3],r+i[0],u,h);return p.margin=i,p}function ta(t,e,i,n,o){var a=!o||!o.hv||o.hv[0],s=!o||!o.hv||o.hv[1],l=o&&o.boundingMode||"all";if(a||s){var u;if("raw"===l)u="group"===t.type?new Kt(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(u=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();(u=u.clone()).applyTransform(h)}e=Qo(r({width:u.width,height:u.height},e),i,n);var c=t.position,d=a?e.x-u.x:0,f=s?e.y-u.y:0;t.attr("position","raw"===l?[d,f]:[c[0]+d,c[1]+f])}}function ea(t,e){return null!=t[TS[e][0]]||null!=t[TS[e][1]]&&null!=t[TS[e][2]]}function ia(t,e,i){function n(i,n){var r={},l=0,u={},h=0;if(IS(i,function(e){u[e]=t[e]}),IS(i,function(t){o(e,t)&&(r[t]=u[t]=e[t]),a(r,t)&&l++,a(u,t)&&h++}),s[n])return a(e,i[1])?u[i[2]]=null:a(e,i[2])&&(u[i[1]]=null),u;if(2!==h&&l){if(l>=2)return r;for(var c=0;ce)return t[n];return t[i-1]}function ra(t){var e=t.get("coordinateSystem"),i={coordSysName:e,coordSysDims:[],axisMap:z(),categoryAxisMap:z()},n=zS[e];if(n)return n(t,i,i.axisMap,i.categoryAxisMap),i}function sa(t){return"category"===t.get("type")}function la(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===GS?{}:[]),this.sourceFormat=t.sourceFormat||FS,this.seriesLayoutBy=t.seriesLayoutBy||HS,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&z(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function ua(t){var e=t.option.source,i=FS;if(S(e))i=WS;else if(y(e))for(var n=0,o=e.length;n=e:"max"===i?t<=e:t===e}function Oa(t,e){return t.join(",")===e.join(",")}function Ea(t,e){$S(e=e||{},function(e,i){if(null!=e){var n=t[i];if(kS.hasClass(i)){e=Si(e);var o=Ti(n=Si(n),e);t[i]=JS(o,function(t){return t.option&&t.exist?QS(t.exist,t.option,!0):t.exist||t.option})}else t[i]=QS(n,e,!0)}})}function za(t){var e=t&&t.itemStyle;if(e)for(var i=0,o=nM.length;i=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var m=g.data.getByRawIndex(g.stackResultDimension,d);if(h>=0&&m>0||h<=0&&m<0){h+=m,f=m;break}}}return n[0]=h,n[1]=f,n});r.hostModel.setData(l),e.data=l})}function Ya(t,e){la.isInstance(t)||(t=la.seriesDataToSource(t)),this._source=t;var i=this._data=t.data,n=t.sourceFormat;n===WS&&(this._offset=0,this._dimSize=e,this._data=i),a(this,uM[n===BS?n+"_"+t.seriesLayoutBy:n])}function qa(){return this._data.length}function $a(t){return this._data[t]}function Ka(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function cr(t,e){d(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,v(dr,e))})}function dr(t){var e=fr(t);e&&e.setOutputEnd(this.count())}function fr(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var o=n.agentStubMap;o&&(n=o.get(t.uid))}return n}}function pr(){this.group=new L_,this.uid=Mo("viewChart"),this.renderTask=nr({plan:vr,reset:yr}),this.renderTask.context={view:this}}function gr(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var i=0;i=0?n():c=setTimeout(n,-a),u=o};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function _r(t,e,i,n){var o=t[e];if(o){var a=o[MM]||o,r=o[DM];if(o[IM]!==i||r!==n){if(null==i||!n)return t[e]=a;(o=t[e]=xr(a,i,"debounce"===n))[MM]=a,o[DM]=n,o[IM]=i}return o}}function wr(t,e){var i=t[e];i&&i[MM]&&(t[e]=i[MM])}function br(t,e,i,n){this.ecInstance=t,this.api=e,this.unfinished,this._dataProcessorHandlers=i.slice(),this._visualHandlers=n.slice(),this._stageTaskMap=z()}function Sr(t,e,i,n,o){function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}o=o||{};var r;d(e,function(e,s){if(!o.visualType||o.visualType===e.visualType){var l=t._stageTaskMap.get(e.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,d=h.agentStubMap;d.each(function(t){a(o,t)&&(t.dirty(),c=!0)}),c&&h.dirty(),PM(h,n);var f=t.getPerformArgs(h,o.block);d.each(function(t){t.perform(f)}),r|=h.perform(f)}else u&&u.each(function(s,l){a(o,s)&&s.dirty();var u=t.getPerformArgs(s,o.block);u.skip=!e.performRawSeries&&i.isSeriesFiltered(s.context.model),PM(s,n),r|=s.perform(u)})}}),t.unfinished|=r}function Mr(t,e,i,n,o){function a(i){var a=i.uid,s=r.get(a)||r.set(a,nr({plan:Lr,reset:kr,count:Nr}));s.context={model:i,ecModel:n,api:o,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},Or(t,i,s)}var r=i.seriesTaskMap||(i.seriesTaskMap=z()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(a):s?n.eachRawSeriesByType(s,a):l&&l(n,o).each(a);var u=t._pipelineMap;r.each(function(t,e){u.get(e)||(t.dispose(),r.removeKey(e))})}function Ir(t,e,i,n,o){function a(e){var i=e.uid,n=s.get(i)||s.set(i,nr({reset:Tr,onDirty:Cr}));n.context={model:e,overallProgress:h,isOverallFilter:c},n.agent=r,n.__block=h,Or(t,e,n)}var r=i.overallTask=i.overallTask||nr({reset:Dr});r.context={ecModel:n,api:o,overallReset:e.overallReset,scheduler:t};var s=r.agentStubMap=r.agentStubMap||z(),l=e.seriesType,u=e.getTargetSeries,h=!0,c=e.isOverallFilter;l?n.eachRawSeriesByType(l,a):u?u(n,o).each(a):(h=!1,d(n.getSeries(),a));var f=t._pipelineMap;s.each(function(t,e){f.get(e)||(t.dispose(),s.removeKey(e))})}function Dr(t){t.overallReset(t.ecModel,t.api,t.payload)}function Tr(t,e){return t.overallProgress&&Ar}function Ar(){this.agent.dirty(),this.getDownstream().dirty()}function Cr(){this.agent&&this.agent.dirty()}function Lr(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function kr(t){if(t.useClearVisual&&t.data.clearAllVisual(),(t.resetDefines=Si(t.reset(t.model,t.ecModel,t.api,t.payload))).length)return Pr}function Pr(t,e){for(var i=e.data,n=e.resetDefines,o=0;oe.get("hoverLayerThreshold")&&!Ax.node&&i.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function es(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 is(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 ns(t){var e=t._coordSysMgr;return a(new Aa(t),{getCoordinateSystems:m(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 os(t){function e(t,e){for(var n=0;n65535?SI:MI}function As(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function Cs(t,e){d(II.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods}function Ls(t){var e=t._invertedIndicesMap;d(e,function(i,n){var o=t._dimensionInfos[n].ordinalMeta;if(o){i=e[n]=new SI(o.categories.length);for(a=0;a=0?this._indices[t]:-1}function Ns(t,e){var i=t._idList[e];return null==i&&(i=t._getIdFromStore(e)),null==i&&(i=wI+e),i}function Os(t){return y(t)||(t=[t]),t}function Es(t,e){var i=t.dimensions,n=new DI(f(i,t.getDimensionInfo,t),t.hostModel);Cs(n,t);for(var o=n._storage={},r=t._storage,s=a({},t._rawExtent),u=0;u=0?(o[h]=zs(r[h]),s[h]=Rs()):o[h]=r[h])}return n}function zs(t){for(var e=new Array(t.length),i=0;in&&(r=o.interval=n);var s=o.intervalPrecision=Ks(r);return Qs(o.niceTickExtent=[NI(Math.ceil(t[0]/r)*r,s),NI(Math.floor(t[1]/r)*r,s)],t),o}function Ks(t){return ko(t)+2}function Js(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Qs(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Js(t,0,e),Js(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function tl(t,e,i,n){var o=[];if(!t)return o;e[0]1e4)return[];return e[1]>(o.length?o[o.length-1]:i[1])&&o.push(e[1]),o}function el(t){return t.get("stack")||zI+t.seriesIndex}function il(t){return t.dim+t.index}function nl(t,e){var i=[],n=t.axis;if("category"===n.type){for(var o=n.getBandWidth(),a=0;a=0?"p":"n",b=m;p&&(a[r][_]||(a[r][_]={p:m,n:m}),b=a[r][_][w]);var S,M,I,D;if(g)S=b,M=(T=i.dataToPoint([x,_]))[1]+l,I=T[0]-m,D=u,Math.abs(I)0&&s>0&&!l&&(r=0),r<0&&s<0&&!u&&(s=0));var c=e.ecModel;if(c&&"time"===a){var d,f=[];if(c.eachSeriesByType("bar",function(t){t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type&&(f.push(t),d|=t.getBaseAxis()===e.axis)}),d){var p=ul(r,s,e,f);r=p.min,s=p.max}}return[r,s]}function ul(t,e,i,n){var o=i.axis.getExtent(),a=o[1]-o[0],r=ol(n)[i.axis.dim+i.axis.index];if(void 0===r)return{min:t,max:e};var s=1/0;d(r,function(t){s=Math.min(t.offset,s)});var l=-1/0;d(r,function(t){l=Math.max(t.offset+t.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/a)-h;return e+=c*(l/u),t-=c*(s/u),{min:t,max:e}}function hl(t,e){var i=ll(t,e),n=null!=e.getMin(),o=null!=e.getMax(),a=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var r=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:a,fixMin:n,fixMax:o,minInterval:"interval"===r||"time"===r?e.get("minInterval"):null,maxInterval:"interval"===r||"time"===r?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function cl(t,e){if(e=e||t.get("type"))switch(e){case"category":return new PI(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new EI;default:return(js.getClass(e)||EI).create(t)}}function dl(t,e,i,n,o){var a,r=0,s=0,l=(n-o)/180*Math.PI,u=1;e.length>40&&(u=Math.floor(e.length/40));for(var h=0;h1?u:(r+1)*u-1}function fl(t,e){var i=t.scale,n=i.getTicksLabels(),o=i.getTicks();return"string"==typeof e?(e=function(t){return function(e){return t.replace("{value}",null!=e?e:"")}}(e),f(n,e)):"function"==typeof e?f(o,function(i,n){return e(pl(t,i),n)},this):n}function pl(t,e){return"category"===t.type?t.scale.getLabel(e):e}function gl(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 ml(t,e,i,n,o,a,r){var s=0===t.indexOf("empty");s&&(t=t.substr(5,1).toLowerCase()+t.substr(6));var l;return l=0===t.indexOf("image://")?Rn(t.slice(8),new Kt(e,i,n,o),r?"center":"cover"):0===t.indexOf("path://")?zn(t.slice(7),{},new Kt(e,i,n,o),r?"center":"cover"):new aD({shape:{symbolType:t,x:e,y:i,width:n,height:o}}),l.__isEmptyBrush=s,l.setColor=gl,l.setColor(a),l}function vl(t,e){return Math.abs(t-e)>1^-(1&s),l=l>>1^-(1&l),o=s+=o,a=l+=a,n.push([s/i,l/i])}return n}function bl(t,e){var i=(t[1]-t[0])/e/2;t[0]+=i,t[1]-=i}function Sl(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return er(t,e,i[0]);if(n){for(var o=[],a=0;a0?i=n[0]:n[1]<0&&(i=n[1]),i}function Ol(t,e,i,n){var o=NaN;t.stacked&&(o=i.get(i.getCalculationInfo("stackedOverDimension"),n)),isNaN(o)&&(o=t.valueStart);var a=t.baseDataOffset,r=[];return r[a]=i.get(t.baseDim,n),r[1-a]=o,e.dataToPoint(r)}function El(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 zl(t){return isNaN(t[0])||isNaN(t[1])}function Rl(t,e,i,n,o,a,r,s,l,u,h){return null==u?Bl(e,"x")?Vl(t,e,i,n,o,a,r,s,l,"x",h):Bl(e,"y")?Vl(t,e,i,n,o,a,r,s,l,"y",h):Gl.apply(this,arguments):"none"!==u&&Bl(e,u)?Vl.apply(this,arguments):Gl.apply(this,arguments)}function Bl(t,e){if(t.length<=1)return!0;for(var i="x"===e?0:1,n=t[0][i],o=0,a=1;a=0!=o>=0)return!1;isNaN(r)||0===r||(o=r,n=t[a][i])}return!0}function Vl(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;f=o||d<0)break;if(zl(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],m="y"===u?1:0,v=(p[m]-g[m])*l;ID(TD,g),TD[m]=g[m]+v,ID(AD,p),AD[m]=p[m]-v,t.bezierCurveTo(TD[0],TD[1],AD[0],AD[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Gl(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;f=o||d<0)break;if(zl(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),ID(TD,p);else if(l>0){var g=d+a,m=e[g];if(h)for(;m&&zl(e[g]);)m=e[g+=a];var v=.5,y=e[c];if(!(m=e[g])||zl(m))ID(AD,p);else{zl(m)&&!h&&(m=p),U(DD,m,y);var x,_;if("x"===u||"y"===u){var w="x"===u?0:1;x=Math.abs(p[w]-y[w]),_=Math.abs(p[w]-m[w])}else x=jx(p,y),_=jx(p,m);MD(AD,p,DD,-l*(1-(v=_/(_+x))))}bD(TD,TD,s),SD(TD,TD,r),bD(AD,AD,s),SD(AD,AD,r),t.bezierCurveTo(TD[0],TD[1],AD[0],AD[1],p[0],p[1]),MD(TD,p,DD,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Fl(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var o=0;on[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}function Wl(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 Ul(t,e,i){if(!i.valueDim)return[];for(var n=[],o=0,a=e.count();o=0;a--){var r=i[a].dimension,s=t.dimensions[r],l=t.getDimensionInfo(s);if("x"===(n=l&&l.coordDim)||"y"===n){o=i[a];break}}if(o){var u=e.getAxis(n),h=f(o.stops,function(t){return{coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}}),c=h.length,p=o.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var g=h[0].coord-10,m=h[c-1].coord+10,v=m-g;if(v<.001)return"transparent";d(h,function(t){t.offset=(t.coord-g)/v}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Qb(0,0,0,0,h,!0);return y[n]=g,y[n+"2"]=m,y}}}function Kl(t){return this._axes[t]}function Jl(t){ED.call(this,t)}function Ql(t,e){return e.type||(e.data?"category":"value")}function tu(t,e,i){return t.getCoordSysModel()===e}function eu(t,e){var i=e*Math.PI/180,n=t.plain(),o=n.width,a=n.height,r=o*Math.cos(i)+a*Math.sin(i),s=o*Math.sin(i)+a*Math.cos(i);return new Kt(n.x,n.y,r,s)}function iu(t){var e,i=t.model,n=i.get("axisLabel.show")?i.getFormattedLabels():[],o=i.getModel("axisLabel"),a=1,r=n.length;r>40&&(a=Math.ceil(r/40));for(var s=0;sn[1],l="start"===e&&!s||"start"!==e&&s;return Eo(r-YD/2)?(a=l?"bottom":"top",o="center"):Eo(r-1.5*YD)?(a=l?"top":"bottom",o="center"):(a="middle",o=r<1.5*YD&&r>YD/2?l?"left":"right":l?"right":"left"),{rotation:r,textAlign:o,textVerticalAlign:a}}function cu(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function du(t,e,i){var n=t.get("axisLabel.showMinLabel"),o=t.get("axisLabel.showMaxLabel");e=e||[],i=i||[];var a=e[0],r=e[1],s=e[e.length-1],l=e[e.length-2],u=i[0],h=i[1],c=i[i.length-1],d=i[i.length-2];!1===n?(fu(a),fu(u)):pu(a,r)&&(n?(fu(r),fu(h)):(fu(a),fu(u))),!1===o?(fu(s),fu(c)):pu(l,s)&&(o?(fu(l),fu(d)):(fu(s),fu(c)))}function fu(t){t&&(t.ignore=!0)}function pu(t,e,i){var n=t&&t.getBoundingRect().clone(),o=e&&e.getBoundingRect().clone();if(n&&o){var a=lt([]);return dt(a,a,-t.rotation),n.applyTransform(ht([],a,t.getLocalTransform())),o.applyTransform(ht([],a,e.getLocalTransform())),n.intersect(o)}}function gu(t){return"middle"===t||"center"===t}function mu(t,e,i){var n=e.axis;if(e.get("axisTick.show")&&!n.scale.isBlank()){for(var o=e.getModel("axisTick"),a=o.getModel("lineStyle"),s=o.get("length"),l=QD(o,i.labelInterval),u=n.getTicksCoords(o.get("alignWithLabel")),h=n.scale.getTicks(),c=e.get("axisLabel.showMinLabel"),d=e.get("axisLabel.showMaxLabel"),f=[],p=[],g=t._transform,m=[],v=u.length,y=0;y=0||t===e}function Mu(t){var e=Iu(t);if(e){var i=e.axisPointerModel,n=e.axis.scale,o=i.option,a=i.get("status"),r=i.get("value");null!=r&&(r=n.parse(r));var s=Tu(i);null==a&&(o.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==r||r>l[1])&&(r=l[1]),r0?"bottom":"top":o.width>0?"left":"right";l||Pu(t.style,d,n,u,a,i,p),eo(t,d)}function Ru(t,e){var i=t.get(dT)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function Bu(t,e,i,n){var o=e.getData(),a=this.dataIndex,r=o.getName(a),s=e.get("selectedOffset");n.dispatchAction({type:"pieToggleSelect",from:t,name:r,seriesId:e.id}),o.each(function(t){Vu(o.getItemGraphicEl(t),o.getItemLayout(t),e.isSelected(o.getName(t)),s,i)})}function Vu(t,e,i,n,o){var a=(e.startAngle+e.endAngle)/2,r=Math.cos(a),s=Math.sin(a),l=i?n:0,u=[r*l,s*l];o?t.animate().when(200,{position:u}).start("bounceOut"):t.attr("position",u)}function Gu(t,e){function i(){a.ignore=a.hoverIgnore,r.ignore=r.hoverIgnore}function n(){a.ignore=a.normalIgnore,r.ignore=r.normalIgnore}L_.call(this);var o=new Gb({z2:2}),a=new Ub,r=new zb;this.add(o),this.add(a),this.add(r),this.updateData(t,e,!0),this.on("emphasis",i).on("normal",n).on("mouseover",i).on("mouseout",n)}function Fu(t,e,i,n,o,a,r){function s(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 l(t,e,i,n,o,a){for(var r=e?Number.MAX_VALUE:0,s=0,l=t.length;s=r&&(d=r-10),!e&&d<=r&&(d=r+10),t[s].x=i+d*a,r=d}}t.sort(function(t,e){return t.y-e.y});for(var u,h=0,c=t.length,d=[],f=[],p=0;pe&&a+1t[a].y+t[a].height)return void s(a,n/2);s(i-1,n/2)}(p,c,-u),h=t[p].y+t[p].height;r-h<0&&s(c-1,h-r);for(p=0;p=i?f.push(t[p]):d.push(t[p]);l(d,!1,e,i,n,o),l(f,!0,e,i,n,o)}function Wu(t,e,i,n,o,a){for(var r=[],s=[],l=0;l1?(p.width=l,p.height=l/d):(p.height=l,p.width=l*d),p.y=s[1]-p.height/2,p.x=s[0]-p.width/2}else(a=t.getBoxLayoutParams()).aspect=d,p=Qo(a,{width:u,height:h});this.setViewRect(p.x,p.y,p.width,p.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}function th(t,e){d(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}function eh(t,e,i){oh(t)[e]=i}function ih(t,e,i){var n=oh(t);n[e]===i&&(n[e]=null)}function nh(t,e){return!!oh(t)[e]}function oh(t){return t[FT]||(t[FT]={})}function ah(t){this.pointerChecker,this._zr=t,this._opt={};var e=m,n=e(rh,this),o=e(sh,this),a=e(lh,this),s=e(uh,this),l=e(hh,this);$x.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,u){this.disable(),this._opt=r(i(u)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}),null==e&&(e=!0),!0!==e&&"move"!==e&&"pan"!==e||(t.on("mousedown",n),t.on("mousemove",o),t.on("mouseup",a)),!0!==e&&"scale"!==e&&"zoom"!==e||(t.on("mousewheel",s),t.on("pinch",l))},this.disable=function(){t.off("mousedown",n),t.off("mousemove",o),t.off("mouseup",a),t.off("mousewheel",s),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function rh(t){if(!(ci(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 sh(t){if(!ci(t)&&dh(this,"moveOnMouseMove",t)&&this._dragging&&"pinch"!==t.gestureEvent&&!nh(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,o=this._y,a=e-n,r=i-o;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&rw(t.event),this.trigger("pan",a,r,n,o,e,i)}}function lh(t){ci(t)||(this._dragging=!1)}function uh(t){if(dh(this,"zoomOnMouseWheel",t)&&0!==t.wheelDelta){var e=t.wheelDelta>0?1.1:1/1.1;ch.call(this,t,e,t.offsetX,t.offsetY)}}function hh(t){if(!nh(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;ch.call(this,t,e,t.pinchX,t.pinchY)}}function ch(t,e,i,n){this.pointerChecker&&this.pointerChecker(t,i,n)&&(rw(t.event),this.trigger("zoom",e,i,n))}function dh(t,e,i){var n=t._opt[e];return n&&(!_(n)||i.event[n+"Key"])}function fh(t,e,i){var n=t.target,o=n.position;o[0]+=e,o[1]+=i,n.dirty()}function ph(t,e,i,n){var o=t.target,a=t.zoomLimit,r=o.position,s=o.scale,l=t.zoom=t.zoom||1;if(l*=e,a){var u=a.min||0,h=a.max||1/0;l=Math.max(Math.min(h,l),u)}var c=l/t.zoom;t.zoom=l,r[0]-=(i-r[0])*(c-1),r[1]-=(n-r[1])*(c-1),s[0]*=c,s[1]*=c,o.dirty()}function gh(t,e,i){var n=e.getComponentByElement(t.topTarget),o=n&&n.coordinateSystem;return n&&n!==i&&!WT[n.mainType]&&o&&o.model!==i}function mh(t,e){var i=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(i.fill=n),i}function vh(t,e,i,n,o){i.off("click"),i.off("mousedown"),e.get("selectedMode")&&(i.on("mousedown",function(){t._mouseDownFlag=!0}),i.on("click",function(a){if(t._mouseDownFlag){t._mouseDownFlag=!1;for(var r=a.target;!r.__regions;)r=r.parent;if(r){var s={type:("geo"===e.mainType?"geo":"map")+"ToggleSelect",batch:f(r.__regions,function(t){return{name:t.name,from:o.uid}})};s[e.mainType+"Id"]=e.id,n.dispatchAction(s),yh(e,i)}}}))}function yh(t,e){e.eachChild(function(e){d(e.__regions,function(i){e.trigger(t.isSelected(i.name)?"emphasis":"normal")})})}function xh(t,e){var i=new L_;this._controller=new ah(t.getZr()),this._controllerHost={target:e?i:null},this.group=i,this._updateGroup=e,this._mouseDownFlag}function _h(t,e,i){var n=t.getZoom(),o=t.getCenter(),a=e.zoom,r=t.dataToPoint(o);if(null!=e.dx&&null!=e.dy){r[0]-=e.dx,r[1]-=e.dy;o=t.pointToData(r);t.setCenter(o)}if(null!=a){if(i){var s=i.min||0,l=i.max||1/0;a=Math.max(Math.min(n*a,l),s)/n}t.scale[0]*=a,t.scale[1]*=a;var u=t.position,h=(e.originX-u[0])*(a-1),c=(e.originY-u[1])*(a-1);u[0]-=h,u[1]-=c,t.updateTransform();o=t.pointToData(r);t.setCenter(o),t.setZoom(a*n)}return{center:t.getCenter(),zoom:t.getZoom()}}function wh(t,e){var i={};return d(t,function(t){t.each(t.mapDimension("value"),function(e,n){var o="ec-"+t.getName(n);i[o]=i[o]||[],isNaN(e)||i[o].push(e)})}),t[0].map(t[0].mapDimension("value"),function(n,o){for(var a="ec-"+t[0].getName(o),r=0,s=1/0,l=-1/0,u=i[a].length,h=0;h=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},n.push(a)}}function Nh(t,e){var i=t.isExpand?t.children:[],n=t.parentNode.children,o=t.hierNode.i?n[t.hierNode.i-1]:null;if(i.length){Bh(t);var a=(i[0].hierNode.prelim+i[i.length-1].hierNode.prelim)/2;o?(t.hierNode.prelim=o.hierNode.prelim+e(t,o),t.hierNode.modifier=t.hierNode.prelim-a):t.hierNode.prelim=a}else o&&(t.hierNode.prelim=o.hierNode.prelim+e(t,o));t.parentNode.hierNode.defaultAncestor=Vh(t,o,t.parentNode.hierNode.defaultAncestor||n[0],e)}function Oh(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function Eh(t){return arguments.length?t:Zh}function zh(t,e){var i={};return t-=Math.PI/2,i.x=e*Math.cos(t),i.y=e*Math.sin(t),i}function Rh(t,e){return Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function Bh(t){for(var e=t.children,i=e.length,n=0,o=0;--i>=0;){var a=e[i];a.hierNode.prelim+=n,a.hierNode.modifier+=n,o+=a.hierNode.change,n+=a.hierNode.shift+o}}function Vh(t,e,i,n){if(e){for(var o=t,a=t,r=a.parentNode.children[0],s=e,l=o.hierNode.modifier,u=a.hierNode.modifier,h=r.hierNode.modifier,c=s.hierNode.modifier;s=Gh(s),a=Fh(a),s&&a;){o=Gh(o),r=Fh(r),o.hierNode.ancestor=t;var d=s.hierNode.prelim+c-a.hierNode.prelim-u+n(s,a);d>0&&(Hh(Wh(s,t,i),t,d),u+=d,l+=d),c+=s.hierNode.modifier,u+=a.hierNode.modifier,l+=o.hierNode.modifier,h+=r.hierNode.modifier}s&&!Gh(o)&&(o.hierNode.thread=s,o.hierNode.modifier+=c-l),a&&!Fh(r)&&(r.hierNode.thread=a,r.hierNode.modifier+=u-h,i=t)}return i}function Gh(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function Fh(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function Wh(t,e,i){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:i}function Hh(t,e,i){var n=i/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=n,e.hierNode.shift+=i,e.hierNode.modifier+=i,e.hierNode.prelim+=i,t.hierNode.change+=n}function Zh(t,e){return t.parentNode===e.parentNode?1:2}function Uh(t,e){var i=t.getItemLayout(e);return i&&!isNaN(i.x)&&!isNaN(i.y)&&"none"!==t.getItemVisual(e,"symbol")}function jh(t,e,i){return i.itemModel=e,i.itemStyle=e.getModel("itemStyle").getItemStyle(),i.hoverItemStyle=e.getModel("emphasis.itemStyle").getItemStyle(),i.lineStyle=e.getModel("lineStyle").getLineStyle(),i.labelModel=e.getModel("label"),i.hoverLabelModel=e.getModel("emphasis.label"),!1===t.isExpand&&0!==t.children.length?i.symbolInnerColor=i.itemStyle.fill:i.symbolInnerColor="#fff",i}function Xh(t,e,i,n,o,a){var s=!i,l=t.tree.getNodeByDataIndex(e),a=jh(l,l.getModel(),a),u=t.tree.root,h=l.parentNode===u?l:l.parentNode||l,c=t.getItemGraphicEl(h.dataIndex),d=h.getLayout(),f=c?{x:c.position[0],y:c.position[1],rawX:c.__radialOldRawX,rawY:c.__radialOldRawY}:d,p=l.getLayout();s?(i=new Dl(t,e,a)).attr("position",[f.x,f.y]):i.updateData(t,e,a),i.__radialOldRawX=i.__radialRawX,i.__radialOldRawY=i.__radialRawY,i.__radialRawX=p.rawX,i.__radialRawY=p.rawY,n.add(i),t.setItemGraphicEl(e,i),fo(i,{position:[p.x,p.y]},o);var g=i.getSymbolPath();if("radial"===a.layout){var m,v,y=u.children[0],x=y.getLayout(),_=y.children.length;if(p.x===x.x&&!0===l.isExpand){var w={};w.x=(y.children[0].getLayout().x+y.children[_-1].getLayout().x)/2,w.y=(y.children[0].getLayout().y+y.children[_-1].getLayout().y)/2,(m=Math.atan2(w.y-x.y,w.x-x.x))<0&&(m=2*Math.PI+m),(v=w.xx.x)||(m-=Math.PI);var b=v?"left":"right";g.setStyle({textPosition:b,textRotation:-m,textOrigin:"center",verticalAlign:"middle"})}if(l.parentNode&&l.parentNode!==u){var S=i.__edge;S||(S=i.__edge=new qb({shape:qh(a,f,f),style:r({opacity:0},a.lineStyle)})),fo(S,{shape:qh(a,d,p),style:{opacity:1}},o),n.add(S)}}function Yh(t,e,i,n,o,a){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,a=jh(s,s.getModel(),a),u=s.parentNode===l?s:s.parentNode||s;null==(r=u.getLayout());)u=u.parentNode===l?u:u.parentNode||u;fo(i,{position:[r.x+1,r.y+1]},o,function(){n.remove(i),t.setItemGraphicEl(e,null)}),i.fadeOut(null,{keepLabel:!0});var h=i.__edge;h&&fo(h,{shape:qh(a,r,r),style:{opacity:0}},o,function(){n.remove(h)})}function qh(t,e,i){var n,o,a,r,s=t.orient;if("radial"===t.layout){var l=e.rawX,u=e.rawY,h=i.rawX,c=i.rawY,d=zh(l,u),f=zh(l,u+(c-u)*t.curvature),p=zh(h,c+(u-c)*t.curvature),g=zh(h,c);return{x1:d.x,y1:d.y,x2:g.x,y2:g.y,cpx1:f.x,cpy1:f.y,cpx2:p.x,cpy2:p.y}}var l=e.x,u=e.y,h=i.x,c=i.y;return"horizontal"===s&&(n=l+(h-l)*t.curvature,o=u,a=h+(l-h)*t.curvature,r=c),"vertical"===s&&(n=l,o=u+(c-u)*t.curvature,a=h,r=c+(u-c)*t.curvature),{x1:l,y1:u,x2:h,y2:c,cpx1:n,cpy1:o,cpx2:a,cpy2:r}}function $h(t,e,i){for(var n,o=[t],a=[];n=o.pop();)if(a.push(n),n.isExpand){var r=n.children;if(r.length)for(var s=0;s=0;a--)n.push(o[a])}}function Jh(t,e,i){if(t&&l(e,t.type)>=0){var n=i.getData().tree.root,o=t.targetNode;if(o&&n.contains(o))return{node:o};var a=t.targetNodeId;if(null!=a&&(o=n.getNodeById(a)))return{node:o}}}function Qh(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function tc(t,e){return l(Qh(t),e)>=0}function ec(t,e){for(var i=[];t;){var n=t.dataIndex;i.push({name:t.name,dataIndex:n,value:e.getRawValue(n)}),t=t.parentNode}return i.reverse(),i}function ic(t){var e=0;d(t.children,function(t){ic(t);var i=t.value;y(i)&&(i=i[0]),e+=i});var i=t.value;y(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),i<0&&(i=0),y(t.value)?t.value[0]=i:t.value=i}function nc(t,e){var i=e.get("color");if(i){var n;return d(t=t||[],function(t){var e=new wo(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),n||((t[0]||(t[0]={})).color=i.slice()),t}}function oc(t){this.group=new L_,t.add(this.group)}function ac(t,e,i,n,o,a){var r=[[o?t:t-YT,e],[t+i,e],[t+i,e+n],[o?t:t-YT,e+n]];return!a&&r.splice(2,0,[t+i+YT,e+n/2]),!o&&r.push([t,e+n/2]),r}function rc(t,e,i){t.eventData={componentType:"series",componentSubType:"treemap",seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:i&&i.dataIndex,name:i&&i.name},treePathInfo:i&&ec(i,e)}}function sc(){var t,e=[],i={};return{add:function(t,n,o,a,r){return _(a)&&(r=a,a=0),!i[t.id]&&(i[t.id]=1,e.push({el:t,target:n,time:o,delay:a,easing:r}),!0)},done:function(e){return t=e,this},start:function(){for(var n=e.length,o=0,a=e.length;o=0;a--)null==i[a]&&(delete n[e[a]],e.pop())}function dc(t,e){var i=t.visual,n=[];w(i)?hA(i,function(t){n.push(t)}):null!=i&&n.push(i);var o={color:1,symbol:1};e||1!==n.length||o.hasOwnProperty(t.type)||(n[1]=n[0]),_c(t,n)}function fc(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:yc([0,1])}}function pc(t){var e=this.option.visual;return e[Math.round(Do(t,[0,1],[0,e.length-1],!0))]||{}}function gc(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function mc(t){var e=this.option.visual;return e[this.option.loop&&t!==dA?t%e.length:t]}function vc(){return this.option.visual[0]}function yc(t){return{linear:function(e){return Do(e,t,this.option.visual,!0)},category:mc,piecewise:function(e,i){var n=xc.call(this,i);return null==n&&(n=Do(e,t,this.option.visual,!0)),n},fixed:vc}}function xc(t){var e=this.option,i=e.pieceList;if(e.hasSpecialVisual){var n=i[fA.findPieceIndex(t,i)];if(n&&n.visual)return n.visual[this.type]}}function _c(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=f(e,function(t){return At(t)})),e}function wc(t,e,i){return t?e<=i:e=o.length||t===o[t.depth])&&bc(t,Cc(r,h,t,e,g,a),i,n,o,a)})}else l=Mc(h),t.setVisual("color",l)}}function Sc(t,e,i,n){var o=a({},e);return d(["color","colorAlpha","colorSaturation"],function(a){var r=t.get(a,!0);null==r&&i&&(r=i[a]),null==r&&(r=e[a]),null==r&&(r=n.get(a)),null!=r&&(o[a]=r)}),o}function Mc(t){var e=Dc(t,"color");if(e){var i=Dc(t,"colorAlpha"),n=Dc(t,"colorSaturation");return n&&(e=Et(e,null,null,n)),i&&(e=zt(e,i)),e}}function Ic(t,e){return null!=e?Et(e,null,null,t):null}function Dc(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function Tc(t,e,i,n,o,a){if(a&&a.length){var r=Ac(e,"color")||null!=o.color&&"none"!==o.color&&(Ac(e,"colorAlpha")||Ac(e,"colorSaturation"));if(r){var s=e.get("visualMin"),l=e.get("visualMax"),u=i.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:r.name,dataExtent:u,visual:r.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var d=new fA(c);return d.__drColorMappingBy=h,d}}}function Ac(t,e){var i=t.get(e);return mA(i)&&i.length?{name:e,range:i}:null}function Cc(t,e,i,n,o,r){var s=a({},e);if(o){var l=o.type,u="color"===l&&o.__drColorMappingBy,h="index"===u?n:"id"===u?r.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));s[l]=o.mapValueToVisual(h)}return s}function Lc(t,e,i,n){var o,a;if(!t.isRemoved()){var r=t.getLayout();o=r.width,a=r.height;var s=(f=t.getModel()).get(SA),l=f.get(MA)/2,u=Gc(f),h=Math.max(s,u),c=s-l,d=h-l,f=t.getModel();t.setLayout({borderWidth:s,upperHeight:h,upperLabelHeight:u},!0);var p=(o=xA(o-2*c,0))*(a=xA(a-c-d,0)),g=kc(t,f,p,e,i,n);if(g.length){var m={x:c,y:d,width:o,height:a},v=_A(o,a),y=1/0,x=[];x.area=0;for(var _=0,w=g.length;_=0;l--){var u=o["asc"===n?r-l-1:l].getValue();u/i*es[1]&&(s[1]=e)})}else s=[NaN,NaN];return{sum:n,dataExtent:s}}function Ec(t,e,i){for(var n,o=0,a=1/0,r=0,s=t.length;ro&&(o=n));var l=t.area*t.area,u=e*e*i;return l?xA(u*o/l,l/(u*a)):1/0}function zc(t,e,i,n,o){var a=e===i.width?0:1,r=1-a,s=["x","y"],l=["width","height"],u=i[s[a]],h=e?t.area/e:0;(o||h>i[l[r]])&&(h=i[l[r]]);for(var c=0,d=t.length;cmS&&(u=mS),a=s}u=0?n+=u:n-=u:p>=0?n-=u:n+=u}return n}function nd(t,e){return t.getVisual("opacity")||t.getModel().get(e)}function od(t,e,i){var n=t.getGraphicEl(),o=nd(t,e);null!=i&&(null==o&&(o=1),o*=i),n.downplay&&n.downplay(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",o)})}function ad(t,e){var i=nd(t,e),n=t.getGraphicEl();n.highlight&&n.highlight(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",i)})}function rd(t){return t instanceof Array||(t=[t,t]),t}function sd(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var i=t.getGraph();i.eachNode(function(t){var e=t.getModel();t.setLayout([+e.get("x"),+e.get("y")])}),ld(i)}}function ld(t){t.eachEdge(function(t){var e=t.getModel().get("lineStyle.curveness")||0,i=F(t.node1.getLayout()),n=F(t.node2.getLayout()),o=[i,n];+e&&o.push([(i[0]+n[0])/2-(i[1]-n[1])*e,(i[1]+n[1])/2-(n[0]-i[0])*e]),t.setLayout(o)})}function ud(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var i=e.getBoundingRect(),n=t.getData(),o=n.graph,a=0,r=n.getSum("value"),s=2*Math.PI/(r||n.count()),l=i.width/2+i.x,u=i.height/2+i.y,h=Math.min(i.width,i.height)/2;o.eachNode(function(t){var e=t.getValue("value");a+=s*(r?e:1)/2,t.setLayout([h*Math.cos(a)+l,h*Math.sin(a)+u]),a+=s*(r?e:1)/2}),n.setLayout({cx:l,cy:u}),o.eachEdge(function(t){var e,i=t.getModel().get("lineStyle.curveness")||0,n=F(t.node1.getLayout()),o=F(t.node2.getLayout()),a=(n[0]+o[0])/2,r=(n[1]+o[1])/2;+i&&(e=[l*(i*=3)+a*(1-i),u*i+r*(1-i)]),t.setLayout([n,o,e])})}}function hd(t,e,i){for(var n=i.rect,o=n.width,a=n.height,r=[n.x+o/2,n.y+a/2],s=null==i.gravity?.1:i.gravity,l=0;l0?-1:i<0?1:e?-1:1}}function wd(t,e){return Math.min(e[1],Math.max(e[0],t))}function bd(t,e,i){this._axesMap=z(),this._axesLayout={},this.dimensions=t.dimensions,this._rect,this._model=t,this._init(t,e,i)}function Sd(t,e){return nC(oC(t,e[0]),e[1])}function Md(t,e){var i=e.layoutLength/(e.axisCount-1);return{position:i*t,axisNameAvailableWidth:i,axisLabelShow:!0}}function Id(t,e){var i,n,o=e.layoutLength,a=e.axisExpandWidth,r=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return tyC}function Gd(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function Fd(t,e,i,n){var o=new L_;return o.add(new jb({name:"main",style:Ud(i),silent:!0,draggable:!0,cursor:"move",drift:cC(t,e,o,"nswe"),ondragend:cC(Bd,e,{isEnd:!0})})),dC(n,function(i){o.add(new jb({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:cC(t,e,o,i),ondragend:cC(Bd,e,{isEnd:!0})}))}),o}function Wd(t,e,i,n){var o=n.brushStyle.lineWidth||0,a=gC(o,xC),r=i[0][0],s=i[1][0],l=r-o/2,u=s-o/2,h=i[0][1],c=i[1][1],d=h-a+o/2,f=c-a+o/2,p=h-r,g=c-s,m=p+o,v=g+o;Zd(t,e,"main",r,s,p,g),n.transformable&&(Zd(t,e,"w",l,u,a,v),Zd(t,e,"e",d,u,a,v),Zd(t,e,"n",l,u,m,a),Zd(t,e,"s",l,f,m,a),Zd(t,e,"nw",l,u,a,a),Zd(t,e,"ne",d,u,a,a),Zd(t,e,"sw",l,f,a,a),Zd(t,e,"se",d,f,a,a))}function Hd(t,e){var i=e.__brushOption,n=i.transformable,o=e.childAt(0);o.useStyle(Ud(i)),o.attr({silent:!n,cursor:n?"move":"default"}),dC(["w","e","n","s","se","sw","ne","nw"],function(i){var o=e.childOfName(i),a=Yd(t,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?bC[a]+"-resize":null})})}function Zd(t,e,i,n,o,a,r){var s=e.childOfName(i);s&&s.setShape(Qd(Jd(t,e,[[n,o],[n+a,o+r]])))}function Ud(t){return r({strokeNoScale:!0},t.brushStyle)}function jd(t,e,i,n){var o=[pC(t,i),pC(e,n)],a=[gC(t,i),gC(e,n)];return[[o[0],a[0]],[o[1],a[1]]]}function Xd(t){return go(t.group)}function Yd(t,e){if(e.length>1)return("e"===(n=[Yd(t,(e=e.split(""))[0]),Yd(t,e[1])])[0]||"w"===n[0])&&n.reverse(),n.join("");var i={left:"w",right:"e",top:"n",bottom:"s"},n=vo({w:"left",e:"right",n:"top",s:"bottom"}[e],Xd(t));return i[n]}function qd(t,e,i,n,o,a,r,s){var l=n.__brushOption,u=t(l.range),h=Kd(i,a,r);dC(o.split(""),function(t){var e=wC[t];u[e[0]][e[1]]+=h[e[0]]}),l.range=e(jd(u[0][0],u[1][0],u[0][1],u[1][1])),Nd(i,n),Bd(i,{isEnd:!1})}function $d(t,e,i,n,o){var a=e.__brushOption.range,r=Kd(t,i,n);dC(a,function(t){t[0]+=r[0],t[1]+=r[1]}),Nd(t,e),Bd(t,{isEnd:!1})}function Kd(t,e,i){var n=t.group,o=n.transformCoordToLocal(e,i),a=n.transformCoordToLocal(0,0);return[o[0]-a[0],o[1]-a[1]]}function Jd(t,e,n){var o=zd(t,e);return o&&!0!==o?o.clipPath(n,t._transform):i(n)}function Qd(t){var e=pC(t[0][0],t[1][0]),i=pC(t[0][1],t[1][1]);return{x:e,y:i,width:gC(t[0][0],t[1][0])-e,height:gC(t[0][1],t[1][1])-i}}function tf(t,e,i){if(t._brushType){var n=t._zr,o=t._covers,a=Ed(t,e,i);if(!t._dragging)for(var r=0;r=i.length)return e;for(var o=-1,a=e.length,r=i[n++],s={},l={};++o=i.length)return t;var a=[],r=n[o++];return d(t,function(t,i){a.push({key:i,values:e(t,o)})}),r?a.sort(function(t,e){return r(t.key,e.key)}):a}var i=[],n=[];return{key:function(t){return i.push(t),this},sortKeys:function(t){return n[i.length-1]=t,this},entries:function(i){return e(t(i,0),0)}}}function If(t,e){return Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function Df(t,e,i,n,o,a,r){Af(t,i,o),kf(t,e,a,n,r),Bf(t)}function Tf(t){d(t,function(t){var e=Ff(t.outEdges,Uf),i=Ff(t.inEdges,Uf),n=Math.max(e,i);t.setLayout({value:n},!0)})}function Af(t,e,i){for(var n=t,o=null,a=0;n.length;){o=[];for(var r=0,s=n.length;r0;o--)Of(a,r*=.99),Nf(a,n,i),zf(a,r),Nf(a,n,i)}function Pf(t,e,i,n,o){var a=[];d(e,function(t){var e=t.length,i=0;d(t,function(t){i+=t.getLayout().value});var r=(n-(e-1)*o)/i;a.push(r)}),a.sort(function(t,e){return t-e});var r=a[0];d(e,function(t){d(t,function(t,e){t.setLayout({y:e},!0);var i=t.getLayout().value*r;t.setLayout({dy:i},!0)})}),d(i,function(t){var e=+t.getValue()*r;t.setLayout({dy:e},!0)})}function Nf(t,e,i){d(t,function(t){var n,o,a,r=0,s=t.length;for(t.sort(Hf),a=0;a0){l=n.getLayout().y+o;n.setLayout({y:l},!0)}r=n.getLayout().y+n.getLayout().dy+e}if((o=r-e-i)>0){var l=n.getLayout().y-o;for(n.setLayout({y:l},!0),r=n.getLayout().y,a=s-2;a>=0;--a)(o=(n=t[a]).getLayout().y+n.getLayout().dy+e-r)>0&&(l=n.getLayout().y-o,n.setLayout({y:l},!0)),r=n.getLayout().y}})}function Of(t,e){d(t.slice().reverse(),function(t){d(t,function(t){if(t.outEdges.length){var i=Ff(t.outEdges,Ef)/Ff(t.outEdges,Uf),n=t.getLayout().y+(i-Wf(t))*e;t.setLayout({y:n},!0)}})})}function Ef(t){return Wf(t.node2)*t.getValue()}function zf(t,e){d(t,function(t){d(t,function(t){if(t.inEdges.length){var i=Ff(t.inEdges,Rf)/Ff(t.inEdges,Uf),n=t.getLayout().y+(i-Wf(t))*e;t.setLayout({y:n},!0)}})})}function Rf(t){return Wf(t.node1)*t.getValue()}function Bf(t){d(t,function(t){t.outEdges.sort(Vf),t.inEdges.sort(Gf)}),d(t,function(t){var e=0,i=0;d(t.outEdges,function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy}),d(t.inEdges,function(t){t.setLayout({ty:i},!0),i+=t.getLayout().dy})})}function Vf(t,e){return t.node2.getLayout().y-e.node2.getLayout().y}function Gf(t,e){return t.node1.getLayout().y-e.node1.getLayout().y}function Ff(t,e){for(var i=0,n=t.length,o=-1;++oe?1:t===e?0:NaN}function Uf(t){return t.getValue()}function jf(t,e,i,n){L_.call(this),this.bodyIndex,this.whiskerIndex,this.styleUpdater=i,this._createContent(t,e,n),this.updateData(t,e,n),this._seriesModel}function Xf(t,e,i){return f(t,function(t){return t=t.slice(),t[e]=i.initBaseline,t})}function Yf(t){var e={};return d(t,function(t,i){e["ends"+i]=t}),e}function qf(t){this.group=new L_,this.styleUpdater=t}function $f(t,e,i){var n=e.getItemModel(i),o=n.getModel(BC),a=e.getItemVisual(i,"color"),r=o.getItemStyle(["borderColor"]),s=t.childAt(t.whiskerIndex);s.style.set(r),s.style.stroke=a,s.dirty();var l=t.childAt(t.bodyIndex);l.style.set(r),l.style.stroke=a,l.dirty(),eo(t,n.getModel(VC).getItemStyle())}function Kf(t){var e=[],i=[];return t.eachSeriesByType("boxplot",function(t){var n=t.getBaseAxis(),o=l(i,n);o<0&&(o=i.length,i[o]=n,e[o]={axis:n,seriesModels:[]}),e[o].seriesModels.push(t)}),e}function Jf(t){var e,i,n=t.axis,o=t.seriesModels,a=o.length,r=t.boxWidthList=[],s=t.boxOffsetList=[],l=[];if("category"===n.type)i=n.getBandWidth();else{var u=0;FC(o,function(t){u=Math.max(u,t.getData().count())}),e=n.getExtent(),Math.abs(e[1]-e[0])}FC(o,function(t){var e=t.get("boxWidth");y(e)||(e=[e,e]),l.push([To(e[0],i)||0,To(e[1],i)||0])});var h=.8*i-2,c=h/a*.3,d=(h-c*(a-1))/a,f=d/2-h/2;FC(o,function(t,e){s.push(f),f+=c+d,r.push(Math.min(Math.max(d,l[e][0]),l[e][1]))})}function Qf(t,e,i){var n,o=t.coordinateSystem,a=t.getData(),r=i/2,s=t.get("layout"),l="horizontal"===s?0:1,u=1-l,h=["x","y"],c=[];d(a.dimensions,function(t){var e=a.getDimensionInfo(t).coordDim;e===h[u]?c.push(t):e===h[l]&&(n=t)}),null==n||c.length<5||a.each([n].concat(c),function(){function t(t){var i=[];i[l]=d,i[u]=t;var n;return isNaN(d)||isNaN(t)?n=[NaN,NaN]:(n=o.dataToPoint(i))[l]+=e,n}function i(t,e){var i=t.slice(),n=t.slice();i[l]+=r,n[l]-=r,e?y.push(i,n):y.push(n,i)}function n(t){var e=[t.slice(),t.slice()];e[0][l]-=r,e[1][l]+=r,v.push(e)}var h=arguments,d=h[0],f=h[c.length+1],p=t(h[3]),g=t(h[1]),m=t(h[5]),v=[[g,t(h[2])],[m,t(h[4])]];n(g),n(m),n(p);var y=[];i(v[0][1],0),i(v[1][1],1),a.setItemLayout(f,{chartLayout:s,initBaseline:p[u],median:p,bodyEnds:y,whiskerEnds:v})})}function tp(t,e,i){var n=e.getItemModel(i),o=n.getModel(WC),a=e.getItemVisual(i,"color"),r=e.getItemVisual(i,"borderColor")||a,s=o.getItemStyle(["color","color0","borderColor","borderColor0"]),l=t.childAt(t.whiskerIndex);l.useStyle(s),l.style.stroke=r;var u=t.childAt(t.bodyIndex);u.useStyle(s),u.style.fill=a,u.style.stroke=r,eo(t,n.getModel(HC).getItemStyle())}function ep(t,e){var i,n=t.getBaseAxis(),o="category"===n.type?n.getBandWidth():(i=n.getExtent(),Math.abs(i[1]-i[0])/e.count()),a=To(YC(t.get("barMaxWidth"),o),o),r=To(YC(t.get("barMinWidth"),1),o),s=t.get("barWidth");return null!=s?To(s,o):Math.max(Math.min(o/2,a),r)}function ip(t){return y(t)||(t=[+t,+t]),t}function np(t,e){t.eachChild(function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?e.color:null,fill:"fill"===e.brushType?e.color:null}})})}function op(t,e){L_.call(this);var i=new Dl(t,e),n=new L_;this.add(i),this.add(n),n.beforeUpdate=function(){this.attr(i.getScale())},this.updateData(t,e)}function ap(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=f(e,function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),o([e,t[0],t[1]])}))}function rp(t,e,i){L_.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}function sp(t,e,i){L_.call(this),this._createPolyline(t,e,i)}function lp(t,e,i){rp.call(this,t,e,i),this._lastFrame=0,this._lastFramePercent=0}function up(){this.group=new L_}function hp(t){return t instanceof Array||(t=[t,t]),t}function cp(){var t=Vx();this.canvas=t,this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={}}function dp(t,e,i){var n=t[1]-t[0],o=(e=f(e,function(e){return{interval:[(e.interval[0]-t[0])/n,(e.interval[1]-t[0])/n]}})).length,a=0;return function(t){for(n=a;n=0;n--){var r=e[n].interval;if(r[0]<=t&&t<=r[1]){a=n;break}}return n>=0&&n=e[0]&&t<=e[1]}}function pp(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}function gp(t,e,i,n){var o=t.getItemLayout(e),a=i.get("symbolRepeat"),r=i.get("symbolClip"),s=i.get("symbolPosition")||"start",l=(i.get("symbolRotate")||0)*Math.PI/180||0,u=i.get("symbolPatternSize")||2,h=i.isAnimationEnabled(),c={dataIndex:e,layout:o,itemModel:i,symbolType:t.getItemVisual(e,"symbol")||"circle",color:t.getItemVisual(e,"color"),symbolClip:r,symbolRepeat:a,symbolRepeatDirection:i.get("symbolRepeatDirection"),symbolPatternSize:u,rotation:l,animationModel:h?i:null,hoverAnimation:h&&i.get("hoverAnimation"),z2:i.getShallow("z",!0)||0};mp(i,a,o,n,c),yp(t,e,o,a,r,c.boundingLength,c.pxSign,u,n,c),xp(i,c.symbolScale,l,n,c);var d=c.symbolSize,f=i.get("symbolOffset");return y(f)&&(f=[To(f[0],d[0]),To(f[1],d[1])]),_p(i,d,o,a,r,f,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,n,c),c}function mp(t,e,i,n,o){var a,r=n.valueDim,s=t.get("symbolBoundingData"),l=n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),h=1-+(i[r.wh]<=0);if(y(s)){var c=[vp(l,s[0])-u,vp(l,s[1])-u];c[1]0?1:a<0?-1:0}function vp(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function yp(t,e,i,n,o,a,r,s,l,u){var h=l.valueDim,c=l.categoryDim,d=Math.abs(i[c.wh]),f=t.getItemVisual(e,"symbolSize");y(f)?f=f.slice():(null==f&&(f="100%"),f=[f,f]),f[c.index]=To(f[c.index],d),f[h.index]=To(f[h.index],n?d:Math.abs(a)),u.symbolSize=f,(u.symbolScale=[f[0]/s,f[1]/s])[h.index]*=(l.isHorizontal?-1:1)*r}function xp(t,e,i,n,o){var a=t.get(uL)||0;a&&(cL.attr({scale:e.slice(),rotation:i}),cL.updateTransform(),a/=cL.getLineScale(),a*=e[n.valueDim.index]),o.valueLineWidth=a}function _p(t,e,i,n,o,r,s,l,u,h,c,d){var f=c.categoryDim,p=c.valueDim,g=d.pxSign,m=Math.max(e[p.index]+l,0),v=m;if(n){var y=Math.abs(u),x=D(t.get("symbolMargin"),"15%")+"",_=!1;x.lastIndexOf("!")===x.length-1&&(_=!0,x=x.slice(0,x.length-1)),x=To(x,e[p.index]);var w=Math.max(m+2*x,0),b=_?0:2*x,S=Fo(n),M=S?n:Rp((y+b)/w);w=m+2*(x=(y-M*m)/2/(_?M:M-1)),b=_?0:2*x,S||"fixed"===n||(M=h?Rp((Math.abs(h)+b)/w):0),v=M*w-b,d.repeatTimes=M,d.symbolMargin=x}var I=g*(v/2),T=d.pathPosition=[];T[f.index]=i[f.wh]/2,T[p.index]="start"===s?I:"end"===s?u-I:u/2,r&&(T[0]+=r[0],T[1]+=r[1]);var A=d.bundlePosition=[];A[f.index]=i[f.xy],A[p.index]=i[p.xy];var C=d.barRectShape=a({},i);C[p.wh]=g*Math.max(Math.abs(i[p.wh]),Math.abs(T[p.index]+I)),C[f.wh]=i[f.wh];var L=d.clipShape={};L[f.xy]=-i[f.xy],L[f.wh]=c.ecSize[f.wh],L[p.xy]=0,L[p.wh]=i[p.wh]}function wp(t){var e=t.symbolPatternSize,i=ml(t.symbolType,-e/2,-e/2,e,e,t.color);return i.attr({culling:!0}),"image"!==i.type&&i.setStyle({strokeNoScale:!0}),i}function bp(t,e,i,n){function o(t){var e=l.slice(),n=i.pxSign,o=t;return("start"===i.symbolRepeatDirection?n>0:n<0)&&(o=h-1-t),e[u.index]=d*(o-h/2+.5)+l[u.index],{position:e,scale:i.symbolScale.slice(),rotation:i.rotation}}var a=t.__pictorialBundle,r=i.symbolSize,s=i.valueLineWidth,l=i.pathPosition,u=e.valueDim,h=i.repeatTimes||0,c=0,d=r[e.valueDim.index]+s+2*i.symbolMargin;for(Op(t,function(t){t.__pictorialAnimationIndex=c,t.__pictorialRepeatTimes=h,c0)],d=t.__pictorialBarRect;Pu(d.style,h,a,n,e.seriesModel,o,c),eo(d,h)}function Rp(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}function Bp(t,e,i){this.dimension="single",this.dimensions=["single"],this._axis=null,this._rect,this._init(t,e,i),this.model=t}function Vp(t,e){e=e||{};var i=t.coordinateSystem,n=t.axis,o={},a=n.position,r=n.orient,s=i.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};o.position=["vertical"===r?u.vertical[a]:l[0],"horizontal"===r?u.horizontal[a]:l[3]];var h={horizontal:0,vertical:1};o.rotation=Math.PI/2*h[r];var c={top:-1,bottom:1,right:1,left:-1};o.labelDirection=o.tickDirection=o.nameDirection=c[a],t.get("axisTick.inside")&&(o.tickDirection=-o.tickDirection),D(e.labelInside,t.get("axisLabel.inside"))&&(o.labelDirection=-o.labelDirection);var d=e.rotate;return null==d&&(d=t.get("axisLabel.rotate")),o.labelRotation="top"===a?-d:d,o.labelInterval=n.getLabelInterval(),o.z2=1,o}function Gp(t,e,i,n,o){var r=t.axis;if(!r.scale.isBlank()&&r.containData(e))if(t.involveSeries){var s=Fp(e,t),l=s.payloadBatch,u=s.snapToValue;l[0]&&null==o.seriesIndex&&a(o,l[0]),!n&&t.snap&&r.containData(u)&&null!=u&&(e=u),i.showPointer(t,e,l,o),i.showTooltip(t,s,u)}else i.showPointer(t,e)}function Fp(t,e){var i=e.axis,n=i.dim,o=t,a=[],r=Number.MAX_VALUE,s=-1;return _L(e.seriesModels,function(e,l){var u,h,c=e.getData().mapDimension(n,!0);if(e.getAxisTooltipData){var d=e.getAxisTooltipData(c,t,i);h=d.dataIndices,u=d.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===i.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var f=t-u,p=Math.abs(f);p<=r&&((p=0&&s<0)&&(r=p,s=f,o=u,a.length=0),_L(h,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:o}}function Wp(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function Hp(t,e,i,n){var o=i.payloadBatch,a=e.axis,r=a.model,s=e.axisPointerModel;if(e.triggerTooltip&&o.length){var l=e.coordSys.model,u=Au(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:a.dim,axisIndex:r.componentIndex,axisType:r.type,axisId:r.id,value:n,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:o.slice()})}}function Zp(t,e,i){var n=i.axesInfo=[];_L(e,function(e,i){var o=e.axisPointerModel.option,a=t[i];a?(!e.useHandle&&(o.status="show"),o.value=a.value,o.seriesDataIndices=(a.payloadBatch||[]).slice()):!e.useHandle&&(o.status="hide"),"show"===o.status&&n.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:o.value})})}function Up(t,e,i,n){if(!qp(e)&&t.list.length){var o=((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:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}else n({type:"hideTip"})}function jp(t,e,i){var n=i.getZr(),o=bL(n).axisPointerLastHighlights||{},a=bL(n).axisPointerLastHighlights={};_L(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&_L(i.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t})});var r=[],s=[];d(o,function(t,e){!a[e]&&s.push(t)}),d(a,function(t,e){!o[e]&&r.push(t)}),s.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:s}),r.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:r})}function Xp(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 Yp(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 qp(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function $p(t,e,i){if(!Ax.node){var n=e.getZr();SL(n).records||(SL(n).records={}),Kp(n,e),(SL(n).records[t]||(SL(n).records[t]={})).handler=i}}function Kp(t,e){function i(i,n){t.on(i,function(i){var o=eg(e);ML(SL(t).records,function(t){t&&n(t,i,o.dispatchAction)}),Jp(o.pendings,e)})}SL(t).initialized||(SL(t).initialized=!0,i("click",v(tg,"click")),i("mousemove",v(tg,"mousemove")),i("globalout",Qp))}function Jp(t,e){var i,n=t.showTip.length,o=t.hideTip.length;n?i=t.showTip[n-1]:o&&(i=t.hideTip[o-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function Qp(t,e,i){t.handler("leave",null,i)}function tg(t,e,i,n){e.handler(t,i,n)}function eg(t){var e={showTip:[],hideTip:[]},i=function(n){var o=e[n.type];o?o.push(n):(n.dispatchAction=i,t.dispatchAction(n))};return{dispatchAction:i,pendings:e}}function ig(t,e){if(!Ax.node){var i=e.getZr();(SL(i).records||{})[t]&&(SL(i).records[t]=null)}}function ng(){}function og(t,e,i,n){ag(DL(i).lastProp,n)||(DL(i).lastProp=n,e?fo(i,n,t):(i.stopAnimation(),i.attr(n)))}function ag(t,e){if(w(t)&&w(e)){var i=!0;return d(e,function(e,n){i=i&&ag(t[n],e)}),!!i}return t===e}function rg(t,e){t[e.get("label.show")?"show":"hide"]()}function sg(t){return{position:t.position.slice(),rotation:t.rotation||0}}function lg(t,e,i){var n=e.get("z"),o=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=o&&(t.zlevel=o),t.silent=i)})}function ug(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle()).fill=null:"shadow"===i&&((e=n.getAreaStyle()).stroke=null),e}function hg(t,e,i,n,o){var a=dg(i.get("value"),e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),r=i.getModel("label"),s=xS(r.get("padding")||0),l=r.getFont(),u=me(a,l),h=o.position,c=u.width+s[1]+s[3],d=u.height+s[0]+s[2],f=o.align;"right"===f&&(h[0]-=c),"center"===f&&(h[0]-=c/2);var p=o.verticalAlign;"bottom"===p&&(h[1]-=d),"middle"===p&&(h[1]-=d/2),cg(h,c,d,n);var g=r.get("backgroundColor");g&&"auto"!==g||(g=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:c,height:d,r:r.get("borderRadius")},position:h.slice(),style:{text:a,textFont:l,textFill:r.getTextColor(),textPosition:"inside",fill:g,stroke:r.get("borderColor")||"transparent",lineWidth:r.get("borderWidth")||0,shadowBlur:r.get("shadowBlur"),shadowColor:r.get("shadowColor"),shadowOffsetX:r.get("shadowOffsetX"),shadowOffsetY:r.get("shadowOffsetY")},z2:10}}function cg(t,e,i,n){var o=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,o)-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 dg(t,e,i,n,o){var a=e.scale.getLabel(t,{precision:o.precision}),r=o.formatter;if(r){var s={value:pl(e,t),seriesData:[]};d(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,o=e&&e.getDataParams(n);o&&s.seriesData.push(o)}),_(r)?a=r.replace("{value}",a):x(r)&&(a=r(s))}return a}function fg(t,e,i){var n=st();return dt(n,n,i.rotation),ct(n,n,i.position),mo([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function pg(t,e,i,n,o,a){var r=qD.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=o.get("label.margin"),hg(e,n,o,a,{position:fg(n.axis,t,i),align:r.textAlign,verticalAlign:r.textVerticalAlign})}function gg(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}}function mg(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}function vg(t,e,i,n,o,a){return{cx:t,cy:e,r0:i,r:n,startAngle:o,endAngle:a,clockwise:!0}}function yg(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function xg(t){return"x"===t.dim?0:1}function _g(t){return t.isHorizontal()?0:1}function wg(t,e){var i=t.getRect();return[i[kL[e]],i[kL[e]]+i[PL[e]]]}function bg(t,e,i){var n=new jb({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return po(n,{shape:{width:t.width+20,height:t.height+20}},e,i),n}function Sg(t,e,i){if(t.count())for(var n,o=e.coordinateSystem,a=e.getLayerSeries(),r=t.mapDimension("single"),s=t.mapDimension("value"),l=f(a,function(e){return f(e.indices,function(e){var i=o.dataToPoint(t.get(r,e));return i[1]=t.get(s,e),i})}),u=Mg(l),h=u.y0,c=i/u.max,d=a.length,p=a[0].indices.length,g=0;ga&&(a=u),n.push(u)}for(var h=0;ha&&(a=d)}return r.y0=o,r.max=a,r}function Ig(t){var e=0;d(t.children,function(t){Ig(t);var i=t.value;y(i)&&(i=i[0]),e+=i});var i=t.value;y(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),i<0&&(i=0),y(t.value)?t.value[0]=i:t.value=i}function Dg(t,e,i){function n(){r.ignore=r.hoverIgnore}function o(){r.ignore=r.normalIgnore}L_.call(this);var a=new Gb({z2:RL}),r=new zb({z2:BL,silent:t.getModel("label").get("silent")});this.add(a),this.add(r),this.updateData(!0,t,"normal",e,i),this.on("emphasis",n).on("normal",o).on("mouseover",n).on("mouseout",o)}function Tg(t,e,i){var n=t.getVisual("color"),o=t.getVisual("visualMeta");o&&0!==o.length||(n=null);var a=t.getModel("itemStyle").get("color");if(a)return a;if(n)return n;if(0===t.depth)return i.option.color[0];var r=i.option.color.length;return a=i.option.color[Ag(t)%r]}function Ag(t){for(var e=t;e.depth>1;)e=e.parentNode;return l(t.getAncestors()[0].children,e)}function Cg(t,e,i){return i!==zL.NONE&&(i===zL.SELF?t===e:i===zL.ANCESTOR?t===e||t.isAncestorOf(e):t===e||t.isDescendantOf(e))}function Lg(t,e){var i=t.children||[];t.children=kg(i,e),i.length&&d(t.children,function(t){Lg(t,e)})}function kg(t,e){if("function"==typeof e)return t.sort(e);var i="asc"===e;return t.sort(function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n})}function Pg(t,e){return e=e||[0,0],f(["x","y"],function(i,n){var o=this.getAxis(i),a=e[n],r=t[n]/2;return"category"===o.type?o.getBandWidth():Math.abs(o.dataToCoord(a-r)-o.dataToCoord(a+r))},this)}function Ng(t,e){return e=e||[0,0],f([0,1],function(i){var n=e[i],o=t[i]/2,a=[],r=[];return a[i]=n-o,r[i]=n+o,a[1-i]=r[1-i]=e[1-i],Math.abs(this.dataToPoint(a)[i]-this.dataToPoint(r)[i])},this)}function Og(t,e){var i=this.getAxis(),n=e instanceof Array?e[0]:e,o=(t instanceof Array?t[0]:t)/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(n-o)-i.dataToCoord(n+o))}function Eg(t,e){return f(["Radius","Angle"],function(i,n){var o=this["get"+i+"Axis"](),a=e[n],r=t[n]/2,s="dataTo"+i,l="category"===o.type?o.getBandWidth():Math.abs(o[s](a-r)-o[s](a+r));return"Angle"===i&&(l=l*Math.PI/180),l},this)}function zg(t){var e,i=t.type;if("path"===i){var n=t.shape;(e=zn(n.pathData,null,{x:n.x||0,y:n.y||0,width:n.width||0,height:n.height||0},"center")).__customPathData=t.pathData}else"image"===i?(e=new Je({})).__customImagePath=t.style.image:"text"===i?(e=new zb({})).__customText=t.style.text:e=new(0,sS[i.charAt(0).toUpperCase()+i.slice(1)]);return e.__customGraphicType=i,e.name=t.name,e}function Rg(t,e,n,o,a,r){var s={},l=n.style||{};if(n.shape&&(s.shape=i(n.shape)),n.position&&(s.position=n.position.slice()),n.scale&&(s.scale=n.scale.slice()),n.origin&&(s.origin=n.origin.slice()),n.rotation&&(s.rotation=n.rotation),"image"===t.type&&n.style){u=s.style={};d(["x","y","width","height"],function(e){Bg(e,u,l,t.style,r)})}if("text"===t.type&&n.style){var u=s.style={};d(["x","y"],function(e){Bg(e,u,l,t.style,r)}),!l.hasOwnProperty("textFill")&&l.fill&&(l.textFill=l.fill),!l.hasOwnProperty("textStroke")&&l.stroke&&(l.textStroke=l.stroke)}if("group"!==t.type&&(t.useStyle(l),r)){t.style.opacity=0;var h=l.opacity;null==h&&(h=1),po(t,{style:{opacity:h}},o,e)}r?t.attr(s):fo(t,s,o,e),t.attr({z2:n.z2||0,silent:n.silent}),!1!==n.styleEmphasis&&eo(t,n.styleEmphasis)}function Bg(t,e,i,n,o){null==i[t]||o||(e[t]=i[t],i[t]=n[t])}function Vg(t,e,i,n){function o(t){null==t&&(t=h),v&&(c=e.getItemModel(t),d=c.getModel(UL),f=c.getModel(jL),p=e.getItemVisual(t,"color"),v=!1)}var s=t.get("renderItem"),l=t.coordinateSystem,u={};l&&(u=l.prepareCustoms?l.prepareCustoms():YL[l.type](l));var h,c,d,f,p,g=r({getWidth:n.getWidth,getHeight:n.getHeight,getZr:n.getZr,getDevicePixelRatio:n.getDevicePixelRatio,value:function(t,i){return null==i&&(i=h),e.get(e.getDimension(t||0),i)},style:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(HL).getItemStyle();null!=p&&(r.fill=p);var s=e.getItemVisual(n,"opacity");return null!=s&&(r.opacity=s),no(r,d,null,{autoColor:p,isRectText:!0}),r.text=d.getShallow("show")?T(t.getFormattedLabel(n,"normal"),Sl(e,n)):null,i&&a(r,i),r},styleEmphasis:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(ZL).getItemStyle();return no(r,f,null,{isRectText:!0},!0),r.text=f.getShallow("show")?A(t.getFormattedLabel(n,"emphasis"),t.getFormattedLabel(n,"normal"),Sl(e,n)):null,i&&a(r,i),r},visual:function(t,i){return null==i&&(i=h),e.getItemVisual(i,t)},barLayout:function(t){if(l.getBaseAxis)return nl(r({axis:l.getBaseAxis()},t),n)},currentSeriesIndices:function(){return i.getCurrentSeriesIndices()},font:function(t){return ho(t,i)}},u.api||{}),m={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:u.coordSys,dataInsideLength:e.count(),encode:Gg(t.getData())},v=!0;return function(t){return h=t,v=!0,s&&s(r({dataIndexInside:t,dataIndex:e.getRawIndex(t)},m),g)||{}}}function Gg(t){var e={};return d(t.dimensions,function(i,n){var o=t.getDimensionInfo(i);if(!o.isExtraCoord){var a=o.coordDim;(e[a]=e[a]||[])[o.coordDimIndex]=n}}),e}function Fg(t,e,i,n,o,a){return(t=Wg(t,e,i,n,o,a))&&a.setItemGraphicEl(e,t),t}function Wg(t,e,i,n,o,a){var r=i.type;if(!t||r===t.__customGraphicType||"path"===r&&i.pathData===t.__customPathData||"image"===r&&i.style.image===t.__customImagePath||"text"===r&&i.style.text===t.__customText||(o.remove(t),t=null),null!=r){var s=!t;if(!t&&(t=zg(i)),Rg(t,e,i,n,a,s),"group"===r){var l=t.children()||[],u=i.children||[];if(i.diffChildrenByName)Hg({oldChildren:l,newChildren:u,dataIndex:e,animatableModel:n,group:t,data:a});else{for(var h=0;hn?t-=l+a:t+=a),null!=r&&(e+u+r>o?e-=u+r:e+=r),[t,e]}function pm(t,e,i,n,o){var a=gm(i),r=a.width,s=a.height;return t=Math.min(t+r,n)-r,e=Math.min(e+s,o)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function gm(t){var e=t.clientWidth,i=t.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(t);n&&(e+=parseInt(n.paddingLeft,10)+parseInt(n.paddingRight,10)+parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),i+=parseInt(n.paddingTop,10)+parseInt(n.paddingBottom,10)+parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:e,height:i}}function mm(t,e,i){var n=i[0],o=i[1],a=0,r=0,s=e.width,l=e.height;switch(t){case"inside":a=e.x+s/2-n/2,r=e.y+l/2-o/2;break;case"top":a=e.x+s/2-n/2,r=e.y-o-5;break;case"bottom":a=e.x+s/2-n/2,r=e.y+l+5;break;case"left":a=e.x-n-5,r=e.y+l/2-o/2;break;case"right":a=e.x+s+5,r=e.y+l/2-o/2}return[a,r]}function vm(t){return"center"===t||"middle"===t}function ym(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function xm(t){return t.dim}function _m(t,e){var i={};d(t,function(t,e){var n=t.getData(),o=t.coordinateSystem.getBaseAxis(),a=o.getExtent(),r="category"===o.type?o.getBandWidth():Math.abs(a[1]-a[0])/n.count(),s=i[xm(o)]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},l=s.stacks;i[xm(o)]=s;var u=ym(t);l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var h=To(t.get("barWidth"),r),c=To(t.get("barMaxWidth"),r),d=t.get("barGap"),f=t.get("barCategoryGap");h&&!l[u].width&&(h=Math.min(s.remainedWidth,h),l[u].width=h,s.remainedWidth-=h),c&&(l[u].maxWidth=c),null!=d&&(s.gap=d),null!=f&&(s.categoryGap=f)});var n={};return d(i,function(t,e){n[e]={};var i=t.stacks,o=t.bandWidth,a=To(t.categoryGap,o),r=To(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-a)/(l+(l-1)*r);u=Math.max(u,0),d(i,function(t,e){var i=t.maxWidth;i&&ie[0]&&(e=e.slice().reverse());var n=t.coordToPoint([e[0],i]),o=t.coordToPoint([e[1],i]);return{x1:n[0],y1:n[1],x2:o[0],y2:o[1]}}function Am(t){return t.getRadiusAxis().inverse?0:1}function Cm(t,e,i){return{position:[t.cx,t.cy],rotation:i/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:e.getModel("axisLabel").get("rotate"),z2:1}}function Lm(t,e,i,n,o){var a=e.axis,r=a.dataToCoord(t),s=n.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=n.getRadiusAxis().getExtent();if("radius"===a.dim){var d=st();dt(d,d,s),ct(d,d,[n.cx,n.cy]),l=mo([r,-o],d);var f=e.getModel("axisLabel").get("rotate")||0,p=qD.innerTextLayout(s,f*Math.PI/180,-1);u=p.textAlign,h=p.textVerticalAlign}else{var g=c[1];l=n.coordToPoint([g+o,r]);var m=n.cx,v=n.cy;u=Math.abs(l[0]-m)/g<.3?"center":l[0]>m?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}function km(t,e){e.update="updateView",hs(e,function(e,i){var n={};return i.eachComponent({mainType:"geo",query:e},function(i){i[t](e.name),d(i.coordinateSystem.regions,function(t){n[t.name]=i.isSelected(t.name)||!1})}),{selected:n,name:e.name}})}function Pm(t){var e={};d(t,function(t){e[t]=1}),t.length=0,d(e,function(e,i){t.push(i)})}function Nm(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function Om(t,e,n){function o(){var t=function(){};return t.prototype.__hidden=t.prototype,new t}var a={};return Sk(e,function(e){var r=a[e]=o();Sk(t[e],function(t,o){if(fA.isValidType(o)){var a={type:o,visual:t};n&&n(a,e),r[o]=new fA(a),"opacity"===o&&((a=i(a)).type="colorAlpha",r.__hidden.__alphaForOpacity=new fA(a))}})}),a}function Em(t,e,n){var o;d(n,function(t){e.hasOwnProperty(t)&&Nm(e[t])&&(o=!0)}),o&&d(n,function(n){e.hasOwnProperty(n)&&Nm(e[n])?t[n]=i(e[n]):delete t[n]})}function zm(t,e,i,n,o,a){function r(t){return i.getItemVisual(h,t)}function s(t,e){i.setItemVisual(h,t,e)}function l(t,l){h=null==a?t:l;var c=i.getRawDataItem(h);if(!c||!1!==c.visualMap)for(var d=n.call(o,t),f=e[d],p=u[d],g=0,m=p.length;g1)return!1;var h=Hm(i-t,o-t,n-e,a-e)/l;return!(h<0||h>1)}function Wm(t){return t<=1e-6&&t>=-1e-6}function Hm(t,e,i,n){return t*n-e*i}function Zm(t,e,i){var n=this._targetInfoList=[],o={},a=jm(e,t);Ik(kk,function(t,e){(!i||!i.include||Dk(i.include,e)>=0)&&t(a,n,o)})}function Um(t){return t[0]>t[1]&&t.reverse(),t}function jm(t,e){return Oi(t,e,{includeMainTypes:Ck})}function Xm(t,e,i,n){var o=i.getAxis(["x","y"][t]),a=Um(f([0,1],function(t){return e?o.coordToData(o.toLocalCoord(n[t])):o.toGlobalCoord(o.dataToCoord(n[t]))})),r=[];return r[t]=a,r[1-t]=[NaN,NaN],{values:a,xyMinMax:r}}function Ym(t,e,i,n){return[e[0]-n[t]*i[0],e[1]-n[t]*i[1]]}function qm(t,e){var i=$m(t),n=$m(e),o=[i[0]/n[0],i[1]/n[1]];return isNaN(o[0])&&(o[0]=1),isNaN(o[1])&&(o[1]=1),o}function $m(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}function Km(t,e,i,n,o){if(o){var a=t.getZr();a[Bk]||(a[Rk]||(a[Rk]=Jm),_r(a,Rk,i,e)(t,n))}}function Jm(t,e){if(!t.isDisposed()){var i=t.getZr();i[Bk]=!0,t.dispatchAction({type:"brushSelect",batch:e}),i[Bk]=!1}}function Qm(t,e,i,n){for(var o=0,a=e.length;o=0}function fv(t,e,i){function n(t,e){return l(e.nodes,t)>=0}function o(t,n){var o=!1;return e(function(e){d(i(t,e)||[],function(t){n.records[e.name][t]&&(o=!0)})}),o}function a(t,n){n.nodes.push(t),e(function(e){d(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){var r={nodes:[],records:{}};if(e(function(t){r.records[t.name]={}}),!i)return r;a(i,r);var s;do{s=!1,t(function(t){!n(t,r)&&o(t,r)&&(a(t,r),s=!0)})}while(s);return r}}function pv(t,e,i){var n=[1/0,-1/0];return $k(i,function(t){var i=t.getData();i&&$k(i.mapDimension(e,!0),function(t){var e=i.getApproximateExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:NaN);var r=i.getMax(!0);return null!=r&&"dataMax"!==r&&"function"!=typeof r?e[1]=r:o&&(e[1]=a>0?a-1:NaN),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function mv(t,e){var i=t.getAxisModel(),n=t._percentWindow,o=t._valueWindow;if(n){var a=Po(o,[0,500]);a=Math.min(a,20);var r=e||0===n[0]&&100===n[1];i.setRange(r?null:+o[0].toFixed(a),r?null:+o[1].toFixed(a))}}function vv(t){var e=t._minMaxSpan={},i=t._dataZoomModel;$k(["min","max"],function(n){e[n+"Span"]=i.get(n+"Span");var o=i.get(n+"ValueSpan");if(null!=o&&(e[n+"ValueSpan"]=o,null!=(o=t.getAxisModel().axis.scale.parse(o)))){var a=t._dataExtent;e[n+"Span"]=Do(a[0]+o,a,[0,100],!0)}})}function yv(t){var e={};return Qk(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function xv(t,e){var i=t._rangePropMode,n=t.get("rangeMode");Qk([["start","startValue"],["end","endValue"]],function(t,o){var a=null!=e[t[0]],r=null!=e[t[1]];a&&!r?i[o]="percent":!a&&r?i[o]="value":n?i[o]=n[o]:a&&(i[o]="percent")})}function _v(t){return{x:"y",y:"x",radius:"angle",angle:"radius"}[t]}function wv(t){return"vertical"===t?"ns-resize":"ew-resize"}function bv(t,e){var i=Dv(t),n=e.dataZoomId,o=e.coordId;d(i,function(t,i){var a=t.dataZoomInfos;a[n]&&l(e.allCoordIds,o)<0&&(delete a[n],t.count--)}),Av(i);var a=i[o];a||((a=i[o]={coordId:o,dataZoomInfos:{},count:0}).controller=Tv(t,a),a.dispatchAction=v(Pv,t)),!a.dataZoomInfos[n]&&a.count++,a.dataZoomInfos[n]=e;var r=Nv(a.dataZoomInfos);a.controller.enable(r.controlType,r.opt),a.controller.setPointerChecker(e.containsPoint),_r(a,"dispatchAction",e.throttleRate,"fixRate")}function Sv(t,e){var i=Dv(t);d(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),Av(i)}function Mv(t,e){if(t&&"dataZoom"===t.type&&t.batch)for(var i=0,n=t.batch.length;in["type_"+e]&&(e=o),a(i,t.roamControllerOpt)}),{controlType:e,opt:i}}function Ov(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}function Ev(t,e,i,n){for(var o=e.targetVisuals[n],a=fA.prepareVisualTypes(o),r={color:t.getData().getVisual("color")},s=0,l=a.length;s=0&&(r[a]=+r[a].toFixed(h)),r}function $v(t,e){var n=t.getData(),o=t.coordinateSystem;if(e&&!Yv(e)&&!y(e.coord)&&o){var a=o.dimensions,r=Kv(e,n,o,t);if((e=i(e)).type&&XP[e.type]&&r.baseAxis&&r.valueAxis){var s=UP(a,r.baseAxis.dim),l=UP(a,r.valueAxis.dim);e.coord=XP[e.type](n,r.baseDataDim,r.valueDataDim,s,l),e.value=e.coord[l]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)XP[u[h]]&&(u[h]=ey(n,n.mapDimension(a[h]),u[h]));e.coord=u}}return e}function Kv(t,e,i,n){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=i.getAxis(Jv(n,o.valueDataDim)),o.baseAxis=i.getOtherAxis(o.valueAxis),o.baseDataDim=e.mapDimension(o.baseAxis.dim)):(o.baseAxis=n.getBaseAxis(),o.valueAxis=i.getOtherAxis(o.baseAxis),o.baseDataDim=e.mapDimension(o.baseAxis.dim),o.valueDataDim=e.mapDimension(o.valueAxis.dim)),o}function Jv(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var o=0;o=0)return!0}function Ly(t){for(var e=t.split(/\n+/g),i=[],n=f(Ay(e.shift()).split(fN),function(t){return{name:t,data:[]}}),o=0;o=0&&!i[o][n];o--);if(o<0){var a=t.queryComponents({mainType:"dataZoom",subType:"select",id:n})[0];if(a){var r=a.getPercentRange();i[0][n]={dataZoomId:n,start:r[0],end:r[1]}}}}),i.push(e)}function zy(t){var e=Vy(t),i=e[e.length-1];e.length>1&&e.pop();var n={};return pN(i,function(t,i){for(var o=e.length-1;o>=0;o--)if(t=e[o][i]){n[i]=t;break}}),n}function Ry(t){t[gN]=null}function By(t){return Vy(t).length}function Vy(t){var e=t[gN];return e||(e=t[gN]=[{}]),e}function Gy(t,e,i){(this._brushController=new Dd(i.getZr())).on("brush",m(this._onBrush,this)).mount(),this._isZoomActive}function Fy(t){var e={};return d(["xAxisIndex","yAxisIndex"],function(i){e[i]=t[i],null==e[i]&&(e[i]="all"),(!1===e[i]||"none"===e[i])&&(e[i]=[])}),e}function Wy(t,e){t.setIconStatus("back",By(e)>1?"emphasis":"normal")}function Hy(t,e,i,n,o){var a=i._isZoomActive;n&&"takeGlobalCursor"===n.type&&(a="dataZoomSelect"===n.key&&n.dataZoomSelectActive),i._isZoomActive=a,t.setIconStatus("zoom",a?"emphasis":"normal");var r=new Zm(Fy(t.option),e,{include:["grid"]});i._brushController.setPanels(r.makePanelOpts(o,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"})).enableBrush(!!a&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}function Zy(t){this.model=t}function Uy(t){return bN(t)}function jy(){if(!IN&&DN){IN=!0;var t=DN.styleSheets;t.length<31?DN.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function Xy(t){return parseInt(t,10)}function Yy(t,e){jy(),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 o=e.delFromStorage,a=e.addToStorage;e.delFromStorage=function(t){o.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 qy(t){return function(){M_('In IE8.0 VML mode painter not support method "'+t+'"')}}function $y(t){return document.createElementNS(rO,t)}function Ky(t){return hO(1e4*t)/1e4}function Jy(t){return t-mO}function Qy(t,e){var i=e?t.textFill:t.fill;return null!=i&&i!==uO}function tx(t,e){var i=e?t.textStroke:t.stroke;return null!=i&&i!==uO}function ex(t,e){e&&ix(t,"transform","matrix("+lO.call(e,",")+")")}function ix(t,e,i){(!i||"linear"!==i.type&&"radial"!==i.type)&&t.setAttribute(e,i)}function nx(t,e,i){t.setAttributeNS("http://www.w3.org/1999/xlink",e,i)}function ox(t,e,i){if(Qy(e,i)){var n=i?e.textFill:e.fill;n="transparent"===n?uO:n,"none"!==t.getAttribute("clip-path")&&n===uO&&(n="rgba(0, 0, 0, 0.002)"),ix(t,"fill",n),ix(t,"fill-opacity",e.opacity)}else ix(t,"fill",uO);if(tx(e,i)){var o=i?e.textStroke:e.stroke;ix(t,"stroke",o="transparent"===o?uO:o),ix(t,"stroke-width",(i?e.textStrokeWidth:e.lineWidth)/(!i&&e.strokeNoScale?e.host.getLineScale():1)),ix(t,"paint-order",i?"stroke":"fill"),ix(t,"stroke-opacity",e.opacity),e.lineDash?(ix(t,"stroke-dasharray",e.lineDash.join(",")),ix(t,"stroke-dashoffset",hO(e.lineDashOffset||0))):ix(t,"stroke-dasharray",""),e.lineCap&&ix(t,"stroke-linecap",e.lineCap),e.lineJoin&&ix(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&ix(t,"stroke-miterlimit",e.miterLimit)}else ix(t,"stroke",uO)}function ax(t){for(var e=[],i=t.data,n=t.len(),o=0;o=pO||!Jy(g)&&(d>-fO&&d<0||d>fO)==!!p;var y=Ky(s+u*dO(c)),x=Ky(l+h*cO(c));m&&(d=p?pO-1e-4:1e-4-pO,v=!0,9===o&&e.push("M",y,x));var _=Ky(s+u*dO(c+d)),w=Ky(l+h*cO(c+d));e.push("A",Ky(u),Ky(h),hO(f*gO),+v,+p,_,w);break;case sO.Z:a="Z";break;case sO.R:var _=Ky(i[o++]),w=Ky(i[o++]),b=Ky(i[o++]),S=Ky(i[o++]);e.push("M",_,w,"L",_+b,w,"L",_+b,w+S,"L",_,w+S,"L",_,w)}a&&e.push(a);for(var M=0;M=11)}}(navigator.userAgent),Cx={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},Lx={"[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},kx=Object.prototype.toString,Px=Array.prototype,Nx=Px.forEach,Ox=Px.filter,Ex=Px.slice,zx=Px.map,Rx=Px.reduce,Bx={},Vx=function(){return Bx.createCanvas()};Bx.createCanvas=function(){return document.createElement("canvas")};var Gx,Fx="__ec_primitive__";E.prototype={constructor:E,get:function(t){return this.hasOwnProperty(t)?this[t]:null},set:function(t,e){return this[t]=e},each:function(t,e){void 0!==e&&(t=m(t,e));for(var i in this)this.hasOwnProperty(i)&&t(this[i],i)},removeKey:function(t){delete this[t]}};var Wx=(Object.freeze||Object)({$override:e,clone:i,merge:n,mergeAll:o,extend:a,defaults:r,createCanvas:Vx,getContext:s,indexOf:l,inherits:u,mixin:h,isArrayLike:c,each:d,map:f,reduce:p,filter:g,find:function(t,e,i){if(t&&e)for(var n=0,o=t.length;n3&&(e=qx.call(e,1));for(var n=this._$handlers[t],o=n.length,a=0;a4&&(e=qx.call(e,1,e.length-1));for(var n=e[e.length-1],o=this._$handlers[t],a=o.length,r=0;r=0;a--){var r;if(n[a]!==i&&!n[a].ignore&&(r=rt(n[a],t,e))&&(!o.topTarget&&(o.topTarget=n[a]),r!==Kx)){o.target=n[a];break}}return o}},d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){Qx.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||jx(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,t,e)}}),h(Qx,$x),h(Qx,it);var t_="undefined"==typeof Float32Array?Array:Float32Array,e_=(Object.freeze||Object)({create:st,identity:lt,copy:ut,mul:ht,translate:ct,rotate:dt,scale:ft,invert:pt,clone:gt}),i_=lt,n_=5e-5,o_=function(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},a_=o_.prototype;a_.transform=null,a_.needLocalTransform=function(){return mt(this.rotation)||mt(this.position[0])||mt(this.position[1])||mt(this.scale[0]-1)||mt(this.scale[1]-1)},a_.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;i||e?(n=n||st(),i?this.getLocalTransform(n):i_(n),e&&(i?ht(n,t.transform,n):ut(n,t.transform)),this.transform=n,this.invTransform=this.invTransform||st(),pt(this.invTransform,n)):n&&i_(n)},a_.getLocalTransform=function(t){return o_.getLocalTransform(this,t)},a_.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)},a_.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var r_=[];a_.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(ht(r_,t.invTransform,e),e=r_);var i=e[0]*e[0]+e[1]*e[1],n=e[2]*e[2]+e[3]*e[3],o=this.position,a=this.scale;mt(i-1)&&(i=Math.sqrt(i)),mt(n-1)&&(n=Math.sqrt(n)),e[0]<0&&(i=-i),e[3]<0&&(n=-n),o[0]=e[4],o[1]=e[5],a[0]=i,a[1]=n,this.rotation=Math.atan2(-e[1]/n,e[0]/i)}},a_.getGlobalScale=function(){var t=this.transform;if(!t)return[1,1];var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]),i=Math.sqrt(t[2]*t[2]+t[3]*t[3]);return t[0]<0&&(e=-e),t[3]<0&&(i=-i),[e,i]},a_.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&Q(i,i,n),i},a_.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&Q(i,i,n),i},o_.getLocalTransform=function(t,e){i_(e=e||[]);var i=t.origin,n=t.scale||[1,1],o=t.rotation||0,a=t.position||[0,0];return i&&(e[4]-=i[0],e[5]-=i[1]),ft(e,e,n),o&&dt(e,e,o),i&&(e[4]+=i[0],e[5]+=i[1]),e[4]+=a[0],e[5]+=a[1],e};var s_={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*(2-Math.pow(2,-10*(t-1)))},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;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*.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?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-s_.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*s_.bounceIn(2*t):.5*s_.bounceOut(2*t-1)+.5}};vt.prototype={constructor:vt,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)this._pausedTime+=e;else{var i=(t-this._startTime-this._pausedTime)/this._life;if(!(i<0)){i=Math.min(i,1);var n=this.easing,o="string"==typeof n?s_[n]:n,a="function"==typeof o?o(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){this[t="on"+t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var l_=function(){this.head=null,this.tail=null,this._len=0},u_=l_.prototype;u_.insert=function(t){var e=new h_(t);return this.insertEntry(e),e},u_.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++},u_.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--},u_.len=function(){return this._len},u_.clear=function(){this.head=this.tail=null,this._len=0};var h_=function(t){this.value=t,this.next,this.prev},c_=function(t){this._list=new l_,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},d_=c_.prototype;d_.put=function(t,e){var i=this._list,n=this._map,o=null;if(null==n[t]){var a=i.len(),r=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=i.head;i.remove(s),delete n[s.key],o=s.value,this._lastRemovedEntry=s}r?r.value=e:r=new h_(e),r.key=t,i.insertEntry(r),n[t]=r}return o},d_.get=function(t){var e=this._map[t],i=this._list;if(null!=e)return e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value},d_.clear=function(){this._list.clear(),this._map={}};var f_={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]},p_=new c_(20),g_=null,m_=Nt,v_=Ot,y_=(Object.freeze||Object)({parse:At,lift:kt,toHex:Pt,fastLerp:Nt,fastMapToColor:m_,lerp:Ot,mapToColor:v_,modifyHSL:Et,modifyAlpha:zt,stringify:Rt}),x_=Array.prototype.slice,__=function(t,e,i,n){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||Bt,this._setter=n||Vt,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};__.prototype={when:function(t,e){var i=this._tracks;for(var n in e)if(e.hasOwnProperty(n)){if(!i[n]){i[n]=[];var o=this._getter(this._target,n);if(null==o)continue;0!==t&&i[n].push({time:0,value:Xt(o)})}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;t0&&this.animate(t,!1).when(null==n?500:n,a).delay(o||0),this}};var D_=function(t){o_.call(this,t),$x.call(this,t),I_.call(this,t),this.id=t.id||Dx()};D_.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(t,e){},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(w(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;i=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new Kt(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}}},Kt.create=function(t){return new Kt(t.x,t.y,t.width,t.height)};var L_=function(t){t=t||{},D_.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};L_.prototype={constructor:L_,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 L_&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,n=this._children,o=l(n,t);return o<0?this:(n.splice(o,1),t.parent=null,i&&(i.delFromStorage(t),t instanceof L_&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;e=0&&(this.delFromStorage(t),this._roots.splice(o,1),t instanceof L_&&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:re};var O_={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},E_=function(t,e,i){return O_.hasOwnProperty(e)?i*=t.dpr:i},z_=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],R_=function(t,e){this.extendFrom(t,!1),this.host=e};R_.prototype={constructor:R_,host:null,fill:"#000",stroke:null,opacity:1,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,o=i&&i.style,a=!o,r=0;r0},extendFrom:function(t,e){if(t)for(var i in t)!t.hasOwnProperty(i)||!0!==e&&(!1===e?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?le:se)(t,e,i),o=e.colorStops,a=0;a=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(t){for(var e=this._hoverElements,i=0;i15)break}s.__drawIndex=m,s.__drawIndex0&&t>n[0]){for(r=0;rt);r++);a=i[n[r]]}if(n.splice(r+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)}else M_("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var i,n,o=this._zlevelList;for(n=0;n0?.01:0),this._needsManuallyCompositing),a.__builtin__||M_("ZLevel "+s+" has been used by unkown layer "+a.id),a!==i&&(a.__used=!0,a.__startIndex!==o&&(a.__dirty=!0),a.__startIndex=o,a.incremental?a.__drawIndex=-1:a.__drawIndex=o,e(o),i=a),r.__dirty&&(a.__dirty=!0,a.incremental&&a.__drawIndex<0&&(a.__drawIndex=o))}e(o),this.eachBuiltinLayer(function(t,e){!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]?n(i[t],e,!0):i[t]=e;for(var o=0;o=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;i1&&n&&n.length>1){var a=di(n)/di(o);!isFinite(a)&&(a=1),e.pinchScale=a;var r=fi(n);return e.pinchX=r[0],e.pinchY=r[1],{type:"pinch",target:t[0].target,event:e}}}}},hw=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],cw=["touchstart","touchend","touchmove"],dw={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},fw=f(hw,function(t){var e=t.replace("mouse","pointer");return dw[e]?e:t}),pw={mousemove:function(t){t=li(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){var e=(t=li(this.dom,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=li(this.dom,t)).zrByTouch=!0,this._lastTouchMoment=new Date,gi(this,t,"start"),pw.mousemove.call(this,t),pw.mousedown.call(this,t),mi(this)},touchmove:function(t){(t=li(this.dom,t)).zrByTouch=!0,gi(this,t,"change"),pw.mousemove.call(this,t),mi(this)},touchend:function(t){(t=li(this.dom,t)).zrByTouch=!0,gi(this,t,"end"),pw.mouseup.call(this,t),+new Date-this._lastTouchMoment<300&&pw.click.call(this,t),mi(this)},pointerdown:function(t){pw.mousedown.call(this,t)},pointermove:function(t){vi(t)||pw.mousemove.call(this,t)},pointerup:function(t){pw.mouseup.call(this,t)},pointerout:function(t){vi(t)||pw.mouseout.call(this,t)}};d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){pw[t]=function(e){e=li(this.dom,e),this.trigger(t,e)}});var gw=xi.prototype;gw.dispose=function(){for(var t=hw.concat(cw),e=0;e=0||n&&l(n,r)<0)){var s=e.getShallow(r);null!=s&&(o[t[a][0]]=s)}}return o}},kw=Lw([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),Pw={getLineStyle:function(t){var e=kw(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]}},Nw=Lw([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Ow={getAreaStyle:function(t,e){return Nw(this,t,e)}},Ew=Math.pow,zw=Math.sqrt,Rw=1e-8,Bw=1e-4,Vw=zw(3),Gw=1/3,Fw=V(),Ww=V(),Hw=V(),Zw=Math.min,Uw=Math.max,jw=Math.sin,Xw=Math.cos,Yw=2*Math.PI,qw=V(),$w=V(),Kw=V(),Jw=[],Qw=[],tb={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},eb=[],ib=[],nb=[],ob=[],ab=Math.min,rb=Math.max,sb=Math.cos,lb=Math.sin,ub=Math.sqrt,hb=Math.abs,cb="undefined"!=typeof Float32Array,db=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};db.prototype={constructor:db,_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=hb(1/b_/t)||0,this._uy=hb(1/b_/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(tb.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=hb(t-this._xi)>this._ux||hb(e-this._yi)>this._uy||this._len<5;return this.addData(tb.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,o,a){return this.addData(tb.C,t,e,i,n,o,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,o,a):this._ctx.bezierCurveTo(t,e,i,n,o,a)),this._xi=o,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(tb.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,o,a){return this.addData(tb.A,t,e,i,i,n,o-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,o,a),this._xi=sb(o)*i+t,this._yi=lb(o)*i+t,this},arcTo:function(t,e,i,n,o){return this._ctx&&this._ctx.arcTo(t,e,i,n,o),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(tb.R,t,e,i,n),this},closePath:function(){this.addData(tb.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;ie.length&&(this._expandData(),e=this.data);for(var i=0;i0&&f<=t||h<0&&f>=t||0==h&&(c>0&&p<=e||c<0&&p>=e);)f+=h*(i=r[n=this._dashIdx]),p+=c*i,this._dashIdx=(n+1)%g,h>0&&fl||c>0&&pu||s[n%2?"moveTo":"lineTo"](h>=0?ab(f,t):rb(f,t),c>=0?ab(p,e):rb(p,e));h=f-t,c=p-e,this._dashOffset=-ub(h*h+c*c)},_dashedBezierTo:function(t,e,i,n,o,a){var r,s,l,u,h,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,m=this._yi,v=Xi,y=0,x=this._dashIdx,_=f.length,w=0;for(d<0&&(d=c+d),d%=c,r=0;r<1;r+=.1)s=v(g,t,i,o,r+.1)-v(g,t,i,o,r),l=v(m,e,n,a,r+.1)-v(m,e,n,a,r),y+=ub(s*s+l*l);for(;x<_&&!((w+=f[x])>d);x++);for(r=(w-d)/y;r<=1;)u=v(g,t,i,o,r),h=v(m,e,n,a,r),x%2?p.moveTo(u,h):p.lineTo(u,h),r+=f[x]/y,x=(x+1)%_;x%2!=0&&p.lineTo(o,a),s=o-u,l=a-h,this._dashOffset=-ub(s*s+l*l)},_dashedQuadraticTo:function(t,e,i,n){var o=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,o,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,cb&&(this.data=new Float32Array(t)))},getBoundingRect:function(){eb[0]=eb[1]=nb[0]=nb[1]=Number.MAX_VALUE,ib[0]=ib[1]=ob[0]=ob[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,o=0,a=0;al||hb(r-o)>u||c===h-1)&&(t.lineTo(a,r),n=a,o=r);break;case tb.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case tb.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case tb.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>m?g:m,b=g>m?1:g/m,S=g>m?m/g:1,M=v+y;Math.abs(g-m)>.001?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,v,M,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,v,M,1-_),1==c&&(e=sb(v)*g+f,i=lb(v)*m+p),n=sb(M)*g+f,o=lb(M)*m+p;break;case tb.R:e=n=s[c],i=o=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case tb.Z:t.closePath(),n=e,o=i}}}},db.CMD=tb;var fb=2*Math.PI,pb=2*Math.PI,gb=db.CMD,mb=2*Math.PI,vb=1e-4,yb=[-1,-1,-1],xb=[-1,-1],_b=F_.prototype.getCanvasPattern,wb=Math.abs,bb=new db(!0);In.prototype={constructor:In,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var i=this.style,n=this.path||bb,o=i.hasStroke(),a=i.hasFill(),r=i.fill,s=i.stroke,l=a&&!!r.colorStops,u=o&&!!s.colorStops,h=a&&!!r.image,c=o&&!!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,r,d)),u&&(d=d||this.getBoundingRect(),this._strokeGradient=i.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:h&&(t.fillStyle=_b.call(r,t)),u?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=_b.call(s,t));var f=i.lineDash,p=i.lineDashOffset,g=!!t.setLineDash,m=this.getGlobalScale();n.setScale(m[0],m[1]),this.__dirtyPath||f&&!g&&o?(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&&n.fill(t),f&&g&&(t.setLineDash(f),t.lineDashOffset=p),o&&n.stroke(t),f&&g&&t.setLineDash([]),null!=i.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(t,e,i){},createPathProxy:function(){this.path=new db},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;n||(n=this.path=new db),this.__dirtyPath&&(n.beginPath(),this.buildPath(n,this.shape,!1)),t=n.getBoundingRect()}if(this._rect=t,e.hasStroke()){var o=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){o.copy(t);var a=e.lineWidth,r=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(a=Math.max(a,this.strokeContainThreshold||4)),r>1e-10&&(o.width+=a/r,o.height+=a/r,o.x-=a/r/2,o.y-=a/r/2)}return o}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this.getBoundingRect(),o=this.style;if(t=i[0],e=i[1],n.contain(t,e)){var a=this.path.data;if(o.hasStroke()){var r=o.lineWidth,s=o.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(o.hasFill()||(r=Math.max(r,this.strokeContainThreshold)),Mn(a,r/s,t,e)))return!0}if(o.hasFill())return Sn(a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=!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):Ke.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(w(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&&wb(t[0]-1)>1e-10&&wb(t[3]-1)>1e-10?Math.sqrt(wb(t[0]*t[3]-t[2]*t[1])):1}},In.extend=function(t){var e=function(e){In.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 o in i)!n.hasOwnProperty(o)&&i.hasOwnProperty(o)&&(n[o]=i[o])}t.init&&t.init.call(this,e)};u(e,In);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(In,Ke);var Sb=db.CMD,Mb=[[],[],[]],Ib=Math.sqrt,Db=Math.atan2,Tb=function(t,e){var i,n,o,a,r,s,l=t.data,u=Sb.M,h=Sb.C,c=Sb.L,d=Sb.R,f=Sb.A,p=Sb.Q;for(o=0,a=0;o=11?function(){var e,i=this.__clipPaths,n=this.style;if(i)for(var o=0;oi-2?i-1:c+1],u=t[c>i-3?i-1:c+2]);var p=d*d,g=d*p;n.push([kn(s[0],f[0],l[0],u[0],d,p,g),kn(s[1],f[1],l[1],u[1],d,p,g)])}return n},Hb=function(t,e,i,n){var o,a,r,s,l=[],u=[],h=[],c=[];if(n){r=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;d=i&&a>=o)return{x:i,y:o,width:n-i,height:a-o}},createIcon:_o,Group:L_,Image:Je,Text:zb,Circle:Rb,Sector:Gb,Ring:Fb,Polygon:Zb,Polyline:Ub,Rect:jb,Line:Xb,BezierCurve:qb,Arc:$b,IncrementalDisplayable:On,CompoundPath:Kb,LinearGradient:Qb,RadialGradient:tS,BoundingRect:Kt}),lS=["textStyle","color"],uS={getTextColor:function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(lS):null)},getFont:function(){return ho({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},getTextRect:function(t){return me(t,this.getFont(),this.getShallow("align"),this.getShallow("verticalAlign")||this.getShallow("baseline"),this.getShallow("padding"),this.getShallow("rich"),this.getShallow("truncateText"))}},hS=Lw([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]),cS={getItemStyle:function(t,e){var i=hS(this,t,e),n=this.getBorderLineDash();return n&&(i.lineDash=n),i},getBorderLineDash:function(){var t=this.get("borderType");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}},dS=h,fS=Ni();wo.prototype={constructor:wo,init:null,mergeOption:function(t){n(this.option,t,!0)},get:function(t,e){return null==t?this.option:bo(this.option,this.parsePath(t),!e&&So(this,t))},getShallow:function(t,e){var i=this.option,n=null==i?i:i[t],o=!e&&So(this,t);return null==n&&o&&(n=o.getShallow(t)),n},getModel:function(t,e){var i,n=null==t?this.option:bo(this.option,t=this.parsePath(t));return e=e||(i=So(this,t))&&i.getModel(t),new wo(n,e,this.ecModel)},isEmpty:function(){return null==this.option},restoreData:function(){},clone:function(){return new(0,this.constructor)(i(this.option))},setReadOnly:function(t){},parsePath:function(t){return"string"==typeof t&&(t=t.split(".")),t},customizeGetParent:function(t){fS(this).getParent=t},isAnimationEnabled:function(){if(!Ax.node){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}}},Gi(wo),Fi(wo),dS(wo,Pw),dS(wo,Ow),dS(wo,uS),dS(wo,cS);var pS=0,gS=1e-4,mS=9007199254740991,vS=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,yS=(Object.freeze||Object)({linearMap:Do,parsePercent:To,round:Ao,asc:Co,getPrecision:Lo,getPrecisionSafe:ko,getPixelPrecision:Po,getPercentWithPrecision:No,MAX_SAFE_INTEGER:mS,remRadian:Oo,isRadianAroundZero:Eo,parseDate:zo,quantity:Ro,nice:Vo,reformIntervals:Go,isNumeric:Fo}),xS=L,_S=["a","b","c","d","e","f","g"],wS=function(t,e){return"{"+t+(null==e?"":e)+"}"},bS=be,SS=me,MS=(Object.freeze||Object)({addCommas:Wo,toCamelCase:Ho,normalizeCssArray:xS,encodeHTML:Zo,formatTpl:Uo,formatTplSimple:jo,getTooltipMarker:Xo,formatTime:qo,capitalFirst:$o,truncateText:bS,getTextRect:SS}),IS=d,DS=["left","right","top","bottom","width","height"],TS=[["width","left","right"],["height","top","bottom"]],AS=Ko,CS=(v(Ko,"vertical"),v(Ko,"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")}}}),LS=Ni(),kS=wo.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){wo.call(this,t,e,i,n),this.uid=Mo("ec_cpt_model")},init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,o=i?na(t):{};n(t,e.getTheme().get(this.mainType)),n(t,this.getDefaultOption()),i&&ia(t,o,i)},mergeOption:function(t,e){n(this.option,t,!0);var i=this.layoutMode;i&&ia(this.option,t,i)},optionUpdated:function(t,e){},getDefaultOption:function(){var t=LS(this);if(!t.defaultOption){for(var e=[],i=this.constructor;i;){var o=i.prototype.defaultOption;o&&e.push(o),i=i.superClass}for(var a={},r=e.length-1;r>=0;r--)a=n(a,e[r],!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)})}});Zi(kS,{registerWhenExtend:!0}),function(t){var e={};t.registerSubTypeDefaulter=function(t,i){t=Bi(t),e[t.main]=i},t.determineSubType=function(i,n){var o=n.type;if(!o){var a=Bi(i).main;t.hasSubTypes(i)&&e[a]&&(o=e[a](n))}return o}}(kS),function(t,e){function i(t){var i={},a=[];return d(t,function(r){var s=n(i,r),u=o(s.originalDeps=e(r),t);s.entryCount=u.length,0===s.entryCount&&a.push(r),d(u,function(t){l(s.predecessor,t)<0&&s.predecessor.push(t);var e=n(i,t);l(e.successor,t)<0&&e.successor.push(r)})}),{graph:i,noEntryList:a}}function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}function o(t,e){var i=[];return d(t,function(t){l(e,t)>=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,n,o){function a(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}if(t.length){var r=i(e),s=r.graph,l=r.noEntryList,u={};for(d(t,function(t){u[t]=!0});l.length;){var h=l.pop(),c=s[h],f=!!u[h];f&&(n.call(o,h,c.originalDeps.slice()),delete u[h]),d(c.successor,f?function(t){u[t]=!0,a(t)}:a)}d(u,function(){throw new Error("Circle dependency may exists")})}}}(kS,function(t){var e=[];return d(kS.getClassesByMainType(t),function(t){e=e.concat(t.prototype.dependencies||[])}),e=f(e,function(t){return Bi(t).main}),"dataset"!==t&&l(e,"dataset")<=0&&e.unshift("dataset"),e}),h(kS,CS);var PS="";"undefined"!=typeof navigator&&(PS=navigator.platform||"");var NS={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:PS.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},OS=Ni(),ES={clearColorPalette:function(){OS(this).colorIdx=0,OS(this).colorNameMap={}},getColorFromPalette:function(t,e,i){var n=OS(e=e||this),o=n.colorIdx||0,a=n.colorNameMap=n.colorNameMap||{};if(a.hasOwnProperty(t))return a[t];var r=Si(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=i&&s?aa(s,i):r;if((l=l||r)&&l.length){var u=l[o];return t&&(a[t]=u),n.colorIdx=(o+1)%l.length,u}}},zS={cartesian2d:function(t,e,i,n){var o=t.getReferringComponents("xAxis")[0],a=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],i.set("x",o),i.set("y",a),sa(o)&&(n.set("x",o),e.firstCategoryDimIndex=0),sa(a)&&(n.set("y",a),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,i,n){var o=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],i.set("single",o),sa(o)&&(n.set("single",o),e.firstCategoryDimIndex=0)},polar:function(t,e,i,n){var o=t.getReferringComponents("polar")[0],a=o.findAxisModel("radiusAxis"),r=o.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],i.set("radius",a),i.set("angle",r),sa(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),sa(r)&&(n.set("angle",r),e.firstCategoryDimIndex=1)},geo:function(t,e,i,n){e.coordSysDims=["lng","lat"]},parallel:function(t,e,i,n){var o=t.ecModel,a=o.getComponent("parallel",t.get("parallelIndex")),r=e.coordSysDims=a.dimensions.slice();d(a.parallelAxisIndex,function(t,a){var s=o.getComponent("parallelAxis",t),l=r[a];i.set(l,s),sa(s)&&null==e.firstCategoryDimIndex&&(n.set(l,s),e.firstCategoryDimIndex=a)})}},RS="original",BS="arrayRows",VS="objectRows",GS="keyedColumns",FS="unknown",WS="typedArray",HS="column",ZS="row";la.seriesDataToSource=function(t){return new la({data:t,sourceFormat:S(t)?WS:RS,fromDataset:!1})},Fi(la);var US=Ni(),jS="\0_ec_inner",XS=wo.extend({constructor:XS,init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new wo(i),this._optionManager=n},setOption:function(t,e){k(!(jS 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)):Sa.call(this,n),e=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(this.mergeOption(o),e=!0)}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this,this._api);a.length&&d(a,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){var e=this.option,o=this._componentsMap,r=[];ca(this),d(t,function(t,o){null!=t&&(kS.hasClass(o)?o&&r.push(o):e[o]=null==e[o]?i(t):n(e[o],t,!0))}),kS.topologicalTravel(r,kS.getAllClassMainTypes(),function(i,n){var r=Si(t[i]),s=Ti(o.get(i),r);Ai(s),d(s,function(t,e){var n=t.option;w(n)&&(t.keyInfo.mainType=i,t.keyInfo.subType=Ia(i,n,t.exist))});var l=Ma(o,n);e[i]=[],o.set(i,[]),d(s,function(t,n){var r=t.exist,s=t.option;if(k(w(s)||r,"Empty component definition"),s){var u=kS.getClass(i,t.keyInfo.subType,!0);if(r&&r instanceof u)r.name=t.keyInfo.name,r.mergeOption(s,this),r.optionUpdated(s,!1);else{var h=a({dependentModels:l,componentIndex:n},t.keyInfo);a(r=new u(s,this,this,h),h),r.init(s,this,this,h),r.optionUpdated(null,!0)}}else r.mergeOption({},this),r.optionUpdated({},!1);o.get(i)[n]=r,e[i][n]=r.option},this),"series"===i&&Da(this,o.get("series"))},this),this._seriesIndicesMap=z(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=i(this.option);return d(t,function(e,i){if(kS.hasClass(i)){for(var n=(e=Si(e)).length-1;n>=0;n--)Li(e[n])&&e.splice(n,1);t[i]=e}}),delete t[jS],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap.get(t);if(i)return i[e||0]},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,o=t.name,a=this._componentsMap.get(e);if(!a||!a.length)return[];var r;if(null!=i)y(i)||(i=[i]),r=g(f(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=y(n);r=g(a,function(t){return s&&l(n,t.id)>=0||!s&&t.id===n})}else if(null!=o){var u=y(o);r=g(a,function(t){return u&&l(o,t.name)>=0||!u&&t.name===o})}else r=a.slice();return Ta(r,t)},findComponents:function(t){var e=t.query,i=t.mainType,n=function(t){var e=i+"Index",n=i+"Id",o=i+"Name";return!t||null==t[e]&&null==t[n]&&null==t[o]?null:{mainType:i,index:t[e],id:t[n],name:t[o]}}(e);return function(e){return t.filter?g(e,t.filter):e}(Ta(n?this.queryComponents(n):this._componentsMap.get(i),t))},eachComponent:function(t,e,i){var n=this._componentsMap;"function"==typeof t?(i=e,e=t,n.each(function(t,n){d(t,function(t,o){e.call(i,n,t,o)})})):_(t)?d(n.get(t),e,i):w(t)&&d(this.findComponents(t),e,i)},getSeriesByName:function(t){return g(this._componentsMap.get("series"),function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){return g(this._componentsMap.get("series"),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){d(this._seriesIndices,function(i){var n=this._componentsMap.get("series")[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){d(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,i){d(this._seriesIndices,function(n){var o=this._componentsMap.get("series")[n];o.subType===t&&e.call(i,o,n)},this)},eachRawSeriesByType:function(t,e,i){return d(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){Da(this,g(this._componentsMap.get("series"),t,e))},restoreData:function(t){var e=this._componentsMap;Da(this,e.get("series"));var i=[];e.each(function(t,e){i.push(e)}),kS.topologicalTravel(i,kS.getAllClassMainTypes(),function(i,n){d(e.get(i),function(e){("series"!==i||!wa(e,t))&&e.restoreData()})})}});h(XS,ES);var YS=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],qS={};Ca.prototype={constructor:Ca,create:function(t,e){var i=[];d(qS,function(n,o){var a=n.create(t,e);i=i.concat(a||[])}),this._coordinateSystems=i},update:function(t,e){d(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},Ca.register=function(t,e){qS[t]=e},Ca.get=function(t){return qS[t]};var $S=d,KS=i,JS=f,QS=n,tM=/^(min|max)?(.+)$/;La.prototype={constructor:La,setOption:function(t,e){t&&d(Si(t.series),function(t){t&&t.data&&S(t.data)&&N(t.data)}),t=KS(t,!0);var i=this._optionBackup,n=ka.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(Ea(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=JS(e.timelineOptions,KS),this._mediaList=JS(e.mediaList,KS),this._mediaDefault=KS(e.mediaDefault),this._currentMediaIndices=[],KS(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=KS(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(t){var e=this._api.getWidth(),i=this._api.getHeight(),n=this._mediaList,o=this._mediaDefault,a=[],r=[];if(!n.length&&!o)return r;for(var s=0,l=n.length;s1||l&&!r?function(i){function n(t,i){var n=o.getDimensionInfo(i);if(n&&!1!==n.otherDims.tooltip){var a=n.type,l=Xo({color:u,type:"subItem"}),h=(r?l+Zo(n.displayName||"-")+": ":"")+Zo("ordinal"===a?t+"":"time"===a?e?"":qo("yyyy/MM/dd hh:mm:ss",t):Wo(t));h&&s.push(h)}}var r=p(i,function(t,e,i){var n=o.getDimensionInfo(i);return t|=n&&!1!==n.tooltip&&null!=n.displayName},0),s=[];return a.length?d(a,function(e){n(er(o,t,e),e)}):d(i,n),(r?"
    ":"")+s.join(r?"
    ":", ")}(s):n(r?er(o,t,a[0]):l?s[0]:s),c=Xo(u),f=o.getName(t),g=this.name;return Ci(this)||(g=""),g=g?Zo(g)+(e?": ":"
    "):"",e?c+g+h:g+c+(f?Zo(f)+": "+h:h)},isAnimationEnabled:function(){if(Ax.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,o=ES.getColorFromPalette.call(this,t,e,i);return o||(o=n.getColorFromPalette(t,e,i)),o},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});h(mM,fM),h(mM,ES);var vM=function(){this.group=new L_,this.uid=Mo("viewComponent")};vM.prototype={constructor:vM,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){}};var yM=vM.prototype;yM.updateView=yM.updateLayout=yM.updateVisual=function(t,e,i,n){},Gi(vM),Zi(vM,{registerWhenExtend:!0});var xM=function(){var t=Ni();return function(e){var i=t(e),n=e.pipelineContext,o=i.large,a=i.canProgressiveRender,r=i.large=n.large,s=i.canProgressiveRender=n.canProgressiveRender;return!!(o^r||a^s)&&"reset"}},_M=Ni(),wM=xM();pr.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){mr(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){mr(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null};var bM=pr.prototype;bM.updateView=bM.updateLayout=bM.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},Gi(pr),Zi(pr,{registerWhenExtend:!0}),pr.markUpdateMethod=function(t,e){_M(t).updateMethod=e};var SM={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)}}},MM="\0__throttleOriginMethod",IM="\0__throttleRate",DM="\0__throttleType",TM={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),o=t.get(n)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(i.setVisual("color",o),!e.isSeriesFiltered(t)){"function"!=typeof o||o instanceof Jb||i.each(function(e){i.setItemVisual(e,"color",o(t.getDataParams(e)))});return{dataEach:i.hasItemOption?function(t,e){var i=t.getItemModel(e).get(n,!0);null!=i&&t.setItemVisual(e,"color",i)}:null}}}},AM={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:""}}}},CM=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return d(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=a.get(t);if(null==e){for(var i=t.split("."),n=AM.aria,o=0;o1?"series.multiple.prefix":"series.single.prefix"),{seriesCount:r}),e.eachSeries(function(t,e){if(e1?"multiple":"single")+".";a=i(a=n(s?u+"withName":u+"withoutName"),{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:o(t.subType)});var c=t.getData();window.data=c,c.count()>l?a+=i(n("data.partialData"),{displayCnt:l}):a+=n("data.allData");for(var d=[],p=0;pi.bockIndex?i.step:null}}},kM.getPipeline=function(t){return this._pipelineMap.get(t)},kM.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData().count(),o=i.progressiveEnabled&&e.incrementalPrepareRender&&n>=i.threshold,a=t.get("large")&&n>=t.get("largeThreshold");t.pipelineContext=i.context={canProgressiveRender:o,large:a}},kM.restorePipelines=function(t){var e=this,i=e._pipelineMap=z();t.eachSeries(function(t){var n=t.getProgressive(),o=t.uid;i.set(o,{id:o,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:n&&!(t.preventIncremental&&t.preventIncremental()),bockIndex:-1,step:n||700,count:0}),Or(e,t,t.dataTask)})},kM.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),i=this.api;d([this._dataProcessorHandlers,this._visualHandlers],function(n){d(n,function(n){var o=t.get(n.uid)||t.set(n.uid,[]);n.reset&&Mr(this,n,o,e,i),n.overallReset&&Ir(this,n,o,e,i)},this)},this)},kM.prepareView=function(t,e,i,n){var o=t.renderTask,a=o.context;a.model=e,a.ecModel=i,a.api=n,o.__block=!t.incrementalPrepareRender,Or(this,e,o)},kM.performDataProcessorTasks=function(t,e){Sr(this,this._dataProcessorHandlers,t,e,{block:!0})},kM.performVisualTasks=function(t,e,i){Sr(this,this._visualHandlers,t,e,i)},kM.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},kM.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.bockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var PM=kM.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)};br.wrapStageHandler=function(t,e){return x(t)&&(t={overallReset:t,seriesType:Er(t)}),t.uid=Mo("stageHandler"),e&&(t.visualType=e),t};var NM,OM={},EM={};zr(OM,XS),zr(EM,Aa),OM.eachSeriesByType=OM.eachRawSeriesByType=function(t){NM=t},OM.eachComponent=function(t){"series"===t.mainType&&t.subType&&(NM=t.subType)};var zM=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],RM={color:zM,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],zM]},BM=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],VM={color:BM,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:"#eee"},crossStyle:{color:"#eee"}}},legend:{textStyle:{color:"#eee"}},textStyle:{color:"#eee"},title:{textStyle:{color:"#eee"}},toolbox:{iconStyle:{normal:{borderColor:"#eee"}}},dataZoom:{textStyle:{color:"#eee"}},visualMap:{textStyle:{color:"#eee"}},timeline:{lineStyle:{color:"#eee"},itemStyle:{normal:{color:BM[1]}},label:{normal:{textStyle:{color:"#eee"}}},controlStyle:{normal:{color:"#eee",borderColor:"#eee"}}},timeAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},logAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},valueAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},categoryAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},line:{symbol:"circle"},graph:{color:BM},gauge:{title:{textStyle:{color:"#eee"}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};VM.categoryAxis.splitLine.show=!1;var GM=k,FM=d,WM=x,HM=w,ZM=kS.parseClassType,UM={zrender:"4.0.3"},jM=1e3,XM=1e3,YM=3e3,qM={PROCESSOR:{FILTER:jM,STATISTIC:5e3},VISUAL:{LAYOUT:XM,GLOBAL:2e3,CHART:YM,COMPONENT:4e3,BRUSH:5e3}},$M="__flagInMainProcess",KM="__optionUpdated",JM=/^[a-zA-Z0-9_]+$/;Br.prototype.on=Rr("on"),Br.prototype.off=Rr("off"),Br.prototype.one=Rr("one"),h(Br,$x);var QM=Vr.prototype;QM._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[KM]){var e=this[KM].silent;this[$M]=!0,Fr(this),tI.update.call(this),this[$M]=!1,this[KM]=!1,Ur.call(this,e),jr.call(this,e)}else if(t.unfinished){var i=1,n=this._model;this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(n),t.performDataProcessorTasks(n),Hr(this,n),t.performVisualTasks(n),Jr(this,this._model,0,"remain"),i-=+new Date-o}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},QM.getDom=function(){return this._dom},QM.getZr=function(){return this._zr},QM.setOption=function(t,e,i){var n;if(HM(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[$M]=!0,!this._model||e){var o=new La(this._api),a=this._theme,r=this._model=new XS(null,null,a,o);r.scheduler=this._scheduler,r.init(null,null,a,o)}this._model.setOption(t,aI),i?(this[KM]={silent:n},this[$M]=!1):(Fr(this),tI.update.call(this),this._zr.flush(),this[KM]=!1,this[$M]=!1,Ur.call(this,n),jr.call(this,n))},QM.setTheme=function(){console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},QM.getModel=function(){return this._model},QM.getOption=function(){return this._model&&this._model.getOption()},QM.getWidth=function(){return this._zr.getWidth()},QM.getHeight=function(){return this._zr.getHeight()},QM.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},QM.getRenderedCanvas=function(t){if(Ax.canvasSupported)return(t=t||{}).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},QM.getSvgDataUrl=function(){if(Ax.svgSupported){var t=this._zr;return d(t.storage.getDisplayList(),function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},QM.getDataURL=function(t){var e=(t=t||{}).excludeComponents,i=this._model,n=[],o=this;FM(e,function(t){i.eachComponent({mainType:t},function(t){var e=o._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 FM(n,function(t){t.group.ignore=!1}),a},QM.getConnectedDataURL=function(t){if(Ax.canvasSupported){var e=this.group,n=Math.min,o=Math.max;if(cI[e]){var a=1/0,r=1/0,s=-1/0,l=-1/0,u=[],h=t&&t.pixelRatio||1;d(hI,function(h,c){if(h.group===e){var d=h.getRenderedCanvas(i(t)),f=h.getDom().getBoundingClientRect();a=n(f.left,a),r=n(f.top,r),s=o(f.right,s),l=o(f.bottom,l),u.push({dom:d,left:f.left,top:f.top})}});var c=(s*=h)-(a*=h),f=(l*=h)-(r*=h),p=Vx();p.width=c,p.height=f;var g=_i(p);return FM(u,function(t){var e=new Je({style:{x:t.left*h-a,y:t.top*h-r,image:t.dom}});g.add(e)}),g.refreshImmediately(),p.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},QM.convertToPixel=v(Gr,"convertToPixel"),QM.convertFromPixel=v(Gr,"convertFromPixel"),QM.containPixel=function(t,e){var i;return t=Oi(this._model,t),d(t,function(t,n){n.indexOf("Models")>=0&&d(t,function(t){var o=t.coordinateSystem;if(o&&o.containPoint)i|=!!o.containPoint(e);else if("seriesModels"===n){var a=this._chartsMap[t.__viewId];a&&a.containPoint&&(i|=a.containPoint(e,t))}},this)},this),!!i},QM.getVisual=function(t,e){var i=(t=Oi(this._model,t,{defaultMainType:"series"})).seriesModel.getData(),n=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?i.indexOfRawIndex(t.dataIndex):null;return null!=n?i.getItemVisual(n,e):i.getVisual(e)},QM.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},QM.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var tI={prepareAndUpdate:function(t){Fr(this),tI.update.call(this,t)},update:function(t){var e=this._model,i=this._api,n=this._zr,o=this._coordSysMgr,a=this._scheduler;if(e){e.restoreData(t),a.performSeriesTasks(e),o.create(e,i),a.performDataProcessorTasks(e,t),Hr(this,e),o.update(e,i),qr(e),a.performVisualTasks(e,t),$r(this,e,i,t);var r=e.get("backgroundColor")||"transparent";if(Ax.canvasSupported)n.setBackgroundColor(r);else{var s=At(r);r=Rt(s,"rgb"),0===s[3]&&(r="transparent")}Qr(e,i)}},updateTransform:function(t){var e=this._model,i=this,n=this._api;if(e){var o=[];e.eachComponent(function(a,r){var s=i.getViewOfComponentModel(r);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(r,e,n,t);l&&l.update&&o.push(s)}else o.push(s)});var a=z();e.eachSeries(function(o){var r=i._chartsMap[o.__viewId];if(r.updateTransform){var s=r.updateTransform(o,e,n,t);s&&s.update&&a.set(o.uid,1)}else a.set(o.uid,1)}),qr(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),Jr(i,e,0,t,a),Qr(e,this._api)}},updateView:function(t){var e=this._model;e&&(pr.markUpdateMethod(t,"updateView"),qr(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),$r(this,this._model,this._api,t),Qr(e,this._api))},updateVisual:function(t){tI.update.call(this,t)},updateLayout:function(t){tI.update.call(this,t)}};QM.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[$M]=!0,i&&Fr(this),tI.update.call(this),this[$M]=!1,Ur.call(this,n),jr.call(this,n)}},QM.showLoading=function(t,e){if(HM(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),uI[t]){var i=uI[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},QM.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},QM.makeActionFromEvent=function(t){var e=a({},t);return e.type=nI[t.type],e},QM.dispatchAction=function(t,e){HM(e)||(e={silent:!!e}),iI[t.type]&&this._model&&(this[$M]?this._pendingActions.push(t):(Zr.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&Ax.browser.weChat&&this._throttledZrFlush(),Ur.call(this,e.silent),jr.call(this,e.silent)))},QM.appendData=function(t){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0},QM.on=Rr("on"),QM.off=Rr("off"),QM.one=Rr("one");var eI=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];QM._initEvents=function(){FM(eI,function(t){this._zr.on(t,function(e){var i,n=this.getModel(),o=e.target;if("globalout"===t)i={};else if(o&&null!=o.dataIndex){var r=o.dataModel||n.getSeriesByIndex(o.seriesIndex);i=r&&r.getDataParams(o.dataIndex,o.dataType)||{}}else o&&o.eventData&&(i=a({},o.eventData));i&&(i.event=e,i.type=t,this.trigger(t,i))},this)},this),FM(nI,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},QM.isDisposed=function(){return this._disposed},QM.clear=function(){this.setOption({series:[]},!0)},QM.dispose=function(){if(!this._disposed){this._disposed=!0,zi(this.getDom(),pI,"");var t=this._api,e=this._model;FM(this._componentsViews,function(i){i.dispose(e,t)}),FM(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete hI[this.id]}},h(Vr,$x);var iI={},nI={},oI=[],aI=[],rI=[],sI=[],lI={},uI={},hI={},cI={},dI=new Date-0,fI=new Date-0,pI="_echarts_instance_",gI={},mI=as;fs(2e3,TM),ls(sM),us(5e3,function(t){var e=z();t.eachSeries(function(t){var i=t.get("stack");if(i){var n=e.get(i)||e.set(i,[]),o=t.getData(),a={stackResultDimension:o.getCalculationInfo("stackResultDimension"),stackedOverDimension:o.getCalculationInfo("stackedOverDimension"),stackedDimension:o.getCalculationInfo("stackedDimension"),stackedByDimension:o.getCalculationInfo("stackedByDimension"),isStackedByIndex:o.getCalculationInfo("isStackedByIndex"),data:o,seriesModel:t};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;n.length&&o.setCalculationInfo("stackedOnSeries",n[n.length-1].seriesModel),n.push(a)}}),e.each(Xa)}),gs("default",function(t,e){r(e=e||{},{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var i=new jb({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),n=new $b({shape:{startAngle:-LM/2,endAngle:-LM/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),o=new jb({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*LM/2}).start("circularInOut"),n.animateShape(!0).when(1e3,{startAngle:3*LM/2}).delay(300).start("circularInOut");var a=new L_;return a.add(n),a.add(o),a.add(i),a.resize=function(){var e=t.getWidth()/2,a=t.getHeight()/2;n.setShape({cx:e,cy:a});var r=n.shape.r;o.setShape({x:e-r,y:a-r,width:2*r,height:2*r}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},a.resize(),a}),hs({type:"highlight",event:"highlight",update:"highlight"},B),hs({type:"downplay",event:"downplay",update:"downplay"},B),ss("light",RM),ss("dark",VM);var vI={};bs.prototype={constructor:bs,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=this._old,e=this._new,i={},n=[],o=[];for(Ss(t,{},n,"_oldKeyGetter",this),Ss(e,i,o,"_newKeyGetter",this),a=0;a=e)){for(var i,n=this._chunkSize,o=this._rawData,a=this._storage,r=this.dimensions,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=this._nameRepeatCount={},d=this._chunkCount,f=d-1,p=0;ph[I][1]&&(h[I][1]=T)}if(!o.pure){var A=l[_];w&&!A&&(null!=i?A=this._getNameFromStore(_):null!=w.name&&(l[_]=A=w.name));var C=null==w?null:w.id;null==C&&null!=A&&(c[A]=c[A]||0,C=A,c[A]>0&&(C+="__ec__"+c[A]),c[A]++),null!=C&&(u[_]=C)}}!o.persistent&&o.clean&&o.clean(),this._rawCount=this._count=e,this._extent={},Ls(this)}},TI._getNameFromStore=function(t){var e=this._nameDimIdx;if(null!=e){var i=this._chunkSize,n=Math.floor(t/i),o=t%i,a=this.dimensions[e],r=this._dimensionInfos[a].ordinalMeta;if(r)return r.categories[t];var s=this._storage[a][n];return s&&s[o]}},TI._getIdFromStore=function(t){var e=this._idDimIdx;if(null!=e){var i=this._chunkSize,n=Math.floor(t/i),o=t%i,a=this.dimensions[e],r=this._dimensionInfos[a].ordinalMeta;if(r)return r.categories[t];var s=this._storage[a][n];return s&&s[o]}},TI.count=function(){return this._count},TI.getIndices=function(){if(this._indices)return new(t=this._indices.constructor)(this._indices.buffer,0,this._count);for(var t=Ts(this),e=new t(this.count()),i=0;i=0&&e=0&&ea&&(a=s)}return i=[o,a],this._extent[t]=i,i},TI.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},TI.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},TI.getCalculationInfo=function(t){return this._calculationInfo[t]},TI.setCalculationInfo=function(t,e){xI(t)?a(this._calculationInfo,t):this._calculationInfo[t]=e},TI.getSum=function(t){var e=0;if(this._storage[t])for(var i=0,n=this.count();i=this._rawCount||t<0)return-1;var e=this._indices,i=e[t];if(null!=i&&it))return a;o=a-1}}return-1},TI.indicesOfNearest=function(t,e,i){var n=[];if(!this._storage[t])return n;null==i&&(i=1/0);for(var o=Number.MAX_VALUE,a=-1,r=0,s=this.count();r=0&&a<0)&&(o=u,a=l,n.length=0),n.push(r))}return n},TI.getRawIndex=ks,TI.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;i=l&&w<=u&&(a[r++]=c),c++;h=!0}else if(2===n){for(var d=this._storage[s],v=this._storage[e[1]],y=t[e[1]][0],x=t[e[1]][1],f=0;f=l&&w<=u&&b>=y&&b<=x&&(a[r++]=c),c++}h=!0}}if(!h)if(1===n)for(m=0;m=l&&w<=u&&(a[r++]=M)}else for(m=0;mt[I][1])&&(S=!1)}S&&(a[r++]=this.getRawIndex(m))}return rb[1]&&(b[1]=w)}}}return o},TI.downSample=function(t,e,i,n){for(var o=Es(this,[t]),a=o._storage,r=[],s=Math.floor(1/e),l=a[t],u=this.count(),h=this._chunkSize,c=o._rawExtent[t],d=new(Ts(this))(u),f=0,p=0;pu-p&&(s=u-p,r.length=s);for(var g=0;gc[1]&&(c[1]=x),d[f++]=_}return o._count=f,o._indices=d,o.getRawIndex=Ps,o},TI.getItemModel=function(t){var e=this.hostModel;return new wo(this.getRawDataItem(t),e,e&&e.ecModel)},TI.diff=function(t){var e=this;return new bs(t?t.getIndices():[],this.getIndices(),function(e){return Ns(t,e)},function(t){return Ns(e,t)})},TI.getVisual=function(t){var e=this._visual;return e&&e[t]},TI.setVisual=function(t,e){if(xI(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},TI.setLayout=function(t,e){if(xI(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},TI.getLayout=function(t){return this._layout[t]},TI.getItemLayout=function(t){return this._itemLayouts[t]},TI.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?a(this._itemLayouts[t]||{},e):e},TI.clearItemLayouts=function(){this._itemLayouts.length=0},TI.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},TI.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,xI(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},TI.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var AI=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};TI.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(AI,e)),this._graphicEls[t]=e},TI.getItemGraphicEl=function(t){return this._graphicEls[t]},TI.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},TI.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new DI(e,this.hostModel)}if(t._storage=this._storage,Cs(t,this),this._indices){var n=this._indices.constructor;t._indices=new n(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?Ps:ks,t._extent=i(this._extent),t._approximateExtent=i(this._approximateExtent),t},TI.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(C(arguments)))})},TI.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],TI.CHANGABLE_METHODS=["filterSelf","selectRange"];var CI=function(t,e){return e=e||{},Bs(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};js.prototype.parse=function(t){return t},js.prototype.getSetting=function(t){return this._setting[t]},js.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},js.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},js.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},js.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},js.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},js.prototype.getExtent=function(){return this._extent.slice()},js.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},js.prototype.getTicksLabels=function(){for(var t=[],e=this.getTicks(),i=0;ie[1]&&(e[1]=t[1]),EI.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=Ks(t)},getTicks:function(){return tl(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getTicksLabels:function(){for(var t=[],e=this.getTicks(),i=0;i>>1;t[o][1]i&&(a=i);var r=WI.length,s=GI(WI,a,0,r),l=WI[Math.min(s,r-1)],u=l[1];"year"===l[0]&&(u*=Vo(o/u/t,!0));var h=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,c=[Math.round(BI((n[0]-h)/u)*u+h),Math.round(VI((n[1]-h)/u)*u+h)];Qs(c,n),this._stepLvl=l,this._interval=u,this._niceExtent=c},parse:function(t){return+zo(t)}});d(["contain","normalize"],function(t){FI.prototype[t]=function(e){return RI[t].call(this,this.parse(e))}});var WI=[["hh:mm:ss",1e3],["hh:mm:ss",5e3],["hh:mm:ss",1e4],["hh:mm:ss",15e3],["hh:mm:ss",3e4],["hh:mm\nMM-dd",6e4],["hh:mm\nMM-dd",3e5],["hh:mm\nMM-dd",6e5],["hh:mm\nMM-dd",9e5],["hh:mm\nMM-dd",18e5],["hh:mm\nMM-dd",36e5],["hh:mm\nMM-dd",72e5],["hh:mm\nMM-dd",216e5],["hh:mm\nMM-dd",432e5],["MM-dd\nyyyy",864e5],["MM-dd\nyyyy",1728e5],["MM-dd\nyyyy",2592e5],["MM-dd\nyyyy",3456e5],["MM-dd\nyyyy",432e6],["MM-dd\nyyyy",5184e5],["week",6048e5],["MM-dd\nyyyy",864e6],["week",12096e5],["week",18144e5],["month",26784e5],["week",36288e5],["month",53568e5],["week",36288e5],["quarter",8208e6],["month",107136e5],["month",13392e6],["half-year",16416e6],["month",214272e5],["month",26784e6],["year",32832e6]];FI.create=function(t){return new FI({useUTC:t.ecModel.get("useUTC")})};var HI=js.prototype,ZI=EI.prototype,UI=ko,jI=Ao,XI=Math.floor,YI=Math.ceil,qI=Math.pow,$I=Math.log,KI=js.extend({type:"log",base:10,$constructor:function(){js.apply(this,arguments),this._originalScale=new EI},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return f(ZI.getTicks.call(this),function(n){var o=Ao(qI(this.base,n));return o=n===e[0]&&t.__fixMin?sl(o,i[0]):o,o=n===e[1]&&t.__fixMax?sl(o,i[1]):o},this)},getLabel:ZI.getLabel,scale:function(t){return t=HI.scale.call(this,t),qI(this.base,t)},setExtent:function(t,e){var i=this.base;t=$I(t)/$I(i),e=$I(e)/$I(i),ZI.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=HI.getExtent.call(this);e[0]=qI(t,e[0]),e[1]=qI(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=sl(e[0],n[0])),i.__fixMax&&(e[1]=sl(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=$I(t[0])/$I(e),t[1]=$I(t[1])/$I(e),HI.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(!(i===1/0||i<=0)){var n=Ro(i);for(t/i*n<=.5&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var o=[Ao(YI(e[0]/n)*n),Ao(XI(e[1]/n)*n)];this._interval=n,this._niceExtent=o}},niceExtent:function(t){ZI.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});d(["contain","normalize"],function(t){KI.prototype[t]=function(e){return e=$I(e)/$I(this.base),HI[t].call(this,e)}}),KI.create=function(){return new KI};var JI={getFormattedLabels:function(){return fl(this.axis,this.get("axisLabel.formatter"))},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&&!I(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&&!I(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null==t.rangeStart&&null==t.rangeEnd&&!t.scale},getCoordSysModel:B,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},QI=En({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,o=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+o,n+a),t.lineTo(i-o,n+a),t.closePath()}}),tD=En({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,o=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+o,n),t.lineTo(i,n+a),t.lineTo(i-o,n),t.closePath()}}),eD=En({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,o=e.width/5*3,a=Math.max(o,e.height),r=o/2,s=r*r/(a-r),l=n-a+r+s,u=Math.asin(s/r),h=Math.cos(u)*r,c=Math.sin(u),d=Math.cos(u),f=.6*r,p=.7*r;t.moveTo(i-h,l+s),t.arc(i,l,r,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(i+h-c*f,l+s+d*f,i,n-p,i,n),t.bezierCurveTo(i,n-p,i-h+c*f,l+s+d*f,i-h,l+s),t.closePath()}}),iD=En({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.height,n=e.width,o=e.x,a=e.y,r=n/3*2;t.moveTo(o,a),t.lineTo(o+r,a+i),t.lineTo(o,a+i/4*3),t.lineTo(o-r,a+i),t.lineTo(o,a),t.closePath()}}),nD={line:function(t,e,i,n,o){o.x1=t,o.y1=e+n/2,o.x2=t+i,o.y2=e+n/2},rect:function(t,e,i,n,o){o.x=t,o.y=e,o.width=i,o.height=n},roundRect:function(t,e,i,n,o){o.x=t,o.y=e,o.width=i,o.height=n,o.r=Math.min(i,n)/4},square:function(t,e,i,n,o){var a=Math.min(i,n);o.x=t,o.y=e,o.width=a,o.height=a},circle:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.r=Math.min(i,n)/2},diamond:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.width=i,o.height=n},pin:function(t,e,i,n,o){o.x=t+i/2,o.y=e+n/2,o.width=i,o.height=n},arrow:function(t,e,i,n,o){o.x=t+i/2,o.y=e+n/2,o.width=i,o.height=n},triangle:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.width=i,o.height=n}},oD={};d({line:Xb,rect:jb,roundRect:jb,square:jb,circle:Rb,diamond:tD,pin:eD,arrow:iD,triangle:QI},function(t,e){oD[e]=new t});var aD=En({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style;"pin"===this.shape.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,i){var n=e.symbolType,o=oD[n];"none"!==e.symbolType&&(o||(o=oD[n="rect"]),nD[n](e.x,e.y,e.width,e.height,o.shape),o.buildPath(t,o.shape,i))}}),rD={isDimensionStacked:Ws,enableDataStack:Fs},sD=(Object.freeze||Object)({createList:function(t){return Hs(t.getSource(),t)},getLayoutRect:Qo,dataStack:rD,createScale:function(t,e){var i=e;wo.isInstance(e)||h(i=new wo(e),JI);var n=cl(i);return n.setExtent(t[0],t[1]),hl(n,i),n},mixinAxisModelCommonMethods:function(t){h(t,JI)},completeDimensions:Bs,createDimensions:CI,createSymbol:ml}),lD=1e-8;xl.prototype={constructor:xl,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],o=[],a=[],r=this.geometries,s=0;s0}),function(t){var e=t.properties,i=t.geometry,n=i.coordinates,o=[];"Polygon"===i.type&&o.push({type:"polygon",exterior:n[0],interiors:n.slice(1)}),"MultiPolygon"===i.type&&d(n,function(t){t[0]&&o.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var a=new xl(e.name,o,e.cp);return a.properties=e,a})},hD=Do,cD=[0,1],dD=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1,this._labelInterval};dD.prototype={constructor:dD,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&t<=n},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return Po(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&&bl(i=i.slice(),n.count()),hD(t,cD,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&bl(i=i.slice(),n.count());var o=hD(t,i,cD,e);return this.scale.scale(o)},pointToData:function(t,e){},getTicksCoords:function(t){if(this.onBand&&!t){for(var e=this.getBands(),i=[],n=0;n0&&zl(i[o-1]);o--);for(;n0&&zl(i[a-1]);a--);for(;o=0){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;(r=new Dl(o,a)).position=s,r.setZ(t.get("zlevel"),t.get("z")),r.ignore=isNaN(s[0])||isNaN(s[1]),r.__temp=!0,o.setItemGraphicEl(a,r),r.stopSymbolAnimation(!0),this.group.add(r)}r.highlight()}else pr.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var o=t.getData(),a=Pi(o,n);if(null!=a&&a>=0){var r=o.getItemGraphicEl(a);r&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay())}else pr.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new CD({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 LD({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_getSymbolIgnoreFunc:function(t,e){var i=e.getAxesByScale("ordinal")[0];if(i&&i.isLabelIgnored)return m(i.isLabelIgnored,i)},_updateAnimation:function(t,e,i,n,o,a){var r=this._polyline,s=this._polygon,l=t.hostModel,u=wD(this._data,t,this._stackedOnPoints,e,this._coordSys,i,this._valueOrigin,a),h=u.current,c=u.stackedOnCurrent,d=u.next,f=u.stackedOnNext;o&&(h=ql(u.current,i,o),c=ql(u.stackedOnCurrent,i,o),d=ql(u.next,i,o),f=ql(u.stackedOnNext,i,o)),r.shape.__points=u.current,r.shape.points=h,fo(r,{shape:{points:d}},l),s&&(s.setShape({points:h,stackedOnPoints:c}),fo(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=u.status,m=0;me&&(e=t[i]);return e},min:function(t){for(var e=1/0,i=0;ie[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},isLabelIgnored:function(t){if("category"===this.type){var e=this.getLabelInterval();return"function"==typeof e&&!e(t,this.scale.getLabel(t))||t%(e+1)}},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},u(zD,dD);var RD={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)"]}}},BD={};BD.categoryAxis=n({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},RD),BD.valueAxis=n({boundaryGap:[0,0],splitNumber:5},RD),BD.timeAxis=r({scale:!0,min:"dataMin",max:"dataMax"},BD.valueAxis),BD.logAxis=r({scale:!0,logBase:10},BD.valueAxis);var VD=["value","category","time","log"],GD=function(t,e,i,a){d(VD,function(r){e.extend({type:t+"Axis."+r,mergeDefaultAndTheme:function(e,o){var a=this.layoutMode,s=a?na(e):{};n(e,o.getTheme().get(r+"Axis")),n(e,this.getDefaultOption()),e.type=i(t,e),a&&ia(e,s,a)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=Xs.createByAxisModel(this))},getCategories:function(){if("category"===this.option.type)return this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:o([{},BD[r+"Axis"],a],!0)})}),kS.registerSubTypeDefaulter(t+"Axis",v(i,t))},FD=kS.extend({type:"cartesian2dAxis",axis:null,init:function(){FD.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){FD.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){FD.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});n(FD.prototype,JI);var WD={offset:0};GD("x",FD,Ql,WD),GD("y",FD,Ql,WD),kS.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 HD=d,ZD=function(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||i<0&&n<0)},UD=hl,jD=nu.prototype;jD.type="grid",jD.axisPointerEnabled=!0,jD.getRect=function(){return this._rect},jD.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),HD(i.x,function(t){UD(t.scale,t.model)}),HD(i.y,function(t){UD(t.scale,t.model)}),HD(i.x,function(t){ou(i,"y",t)}),HD(i.y,function(t){ou(i,"x",t)}),this.resize(this.model,e)},jD.resize=function(t,e,i){function n(){HD(a,function(t){var e=t.isHorizontal(),i=e?[0,o.width]:[0,o.height],n=t.inverse?1:0;t.setExtent(i[n],i[1-n]),ru(t,e?o.x:o.y)})}var o=Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;n(),!i&&t.get("containLabel")&&(HD(a,function(t){if(!t.model.get("axisLabel.inside")){var e=iu(t);if(e){var i=t.isHorizontal()?"height":"width",n=t.model.get("axisLabel.margin");o[i]-=e[i]+n,"top"===t.position?o.y+=e.height+n:"left"===t.position&&(o.x+=e.width+n)}}}),n())},jD.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]}},jD.getAxes=function(){return this._axesList.slice()},jD.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}w(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var n=0,o=this._coordsList;nu[1]?-1:1,c=["start"===o?u[0]-h*l:"end"===o?u[1]+h*l:(u[0]+u[1])/2,gu(o)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*YD/180);var f;gu(o)?n=KD(t.rotation,null!=d?d:t.rotation,r):(n=hu(t,o,d||0,u),null!=(f=t.axisNameAvailableWidth)&&(f=Math.abs(f/Math.sin(n.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},m=g.ellipsis,v=D(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=m&&null!=v?bS(i,v,p,m,{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 zb({anid:"name",__fullText:i,__truncatedText:y,position:c,rotation:n.rotation,silent:cu(e),z2:1,tooltip:x&&x.show?a({content:i,formatter:function(){return i},formatterParams:w},x):null});no(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=uu(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},KD=qD.innerTextLayout=function(t,e,i){var n,o,a=Oo(e-t);return Eo(a)?(o=i>0?"top":"bottom",n="center"):Eo(a-YD)?(o=i>0?"bottom":"top",n="center"):(o="middle",n=a>0&&a0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:o}},JD=qD.ifIgnoreOnTick=function(t,e,i,n,o,a){if(0===e&&o||e===n-1&&a)return!1;var r,s=t.scale;return"ordinal"===s.type&&("function"==typeof i?(r=s.getTicks()[e],!i(r,s.getLabel(r))):e%(i+1))},QD=qD.getInterval=function(t,e){var i=t.get("interval");return null!=i&&"auto"!=i||(i=e),i},tT=d,eT=v,iT=vs({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&Mu(t),iT.superApply(this,"render",arguments),Cu(this,t,0,i,0,!0)},updateAxisPointer:function(t,e,i,n,o){Cu(this,t,0,i,0,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),iT.superApply(this,"remove",arguments)},dispose:function(t,e){Lu(this,e),iT.superApply(this,"dispose",arguments)}}),nT=[];iT.registerAxisPointerClass=function(t,e){nT[t]=e},iT.getAxisPointerClass=function(t){return t&&nT[t]};var oT=qD.ifIgnoreOnTick,aT=qD.getInterval,rT=["axisLine","axisTickLabel","axisName"],sT=["splitArea","splitLine"],lT=iT.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,n){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new L_,this.group.add(this._axisGroup),t.get("show")){var a=t.getCoordSysModel(),r=ku(a,t),s=new qD(t,r);d(rT,s.add,s),this._axisGroup.add(s.getGroup()),d(sT,function(e){t.get(e+".show")&&this["_"+e](t,a,r.labelInterval)},this),yo(o,this._axisGroup,t),lT.superCall(this,"render",t,e,i,n)}},_splitLine:function(t,e,i){var n=t.axis;if(!n.scale.isBlank()){var o=t.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color"),l=aT(o,i);s=y(s)?s:[s];for(var u=e.coordinateSystem.getRect(),h=n.isHorizontal(),c=0,d=n.getTicksCoords(),f=n.scale.getTicks(),p=t.get("axisLabel.showMinLabel"),g=t.get("axisLabel.showMaxLabel"),m=[],v=[],x=a.getLineStyle(),_=0;_1){var c;"string"==typeof o?c=ND[o]:"function"==typeof o&&(c=o),c&&t.setData(n.downSample(s.dim,1/h,c,OD))}}}}}("line"));var uT=mM.extend({type:"series.__base_bar__",getInitialData:function(t,e){return Hs(this.getSource(),this)},getMarkerPosition:function(t){var e=this.coordinateSystem;if(e){var i=e.dataToPoint(e.clampData(t)),n=this.getData(),o=n.getLayout("offset"),a=n.getLayout("size");return i[e.getBaseAxis().isHorizontal()?0:1]+=o+a/2,i}return[NaN,NaN]},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,itemStyle:{},emphasis:{}}});uT.extend({type:"series.bar",dependencies:["grid","polar"],brushSelector:"rect"});var hT=Lw([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),cT={getBarItemStyle:function(t){var e=hT(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},dT=["itemStyle","barBorderWidth"];a(wo.prototype,cT),xs({type:"bar",render:function(t,e,i){var n=t.get("coordinateSystem");return"cartesian2d"!==n&&"polar"!==n||this._render(t,e,i),this.group},dispose:B,_render:function(t,e,i){var n,o=this.group,a=t.getData(),r=this._data,s=t.coordinateSystem,l=s.getBaseAxis();"cartesian2d"===s.type?n=l.isHorizontal():"polar"===s.type&&(n="angle"===l.dim);var u=t.isAnimationEnabled()?t:null;a.diff(r).add(function(e){if(a.hasValue(e)){var i=a.getItemModel(e),r=pT[s.type](a,e,i),l=fT[s.type](a,e,i,r,n,u);a.setItemGraphicEl(e,l),o.add(l),zu(l,a,e,i,r,t,n,"polar"===s.type)}}).update(function(e,i){var l=r.getItemGraphicEl(i);if(a.hasValue(e)){var h=a.getItemModel(e),c=pT[s.type](a,e,h);l?fo(l,{shape:c},u,e):l=fT[s.type](a,e,h,c,n,u,!0),a.setItemGraphicEl(e,l),o.add(l),zu(l,a,e,h,c,t,n,"polar"===s.type)}else o.remove(l)}).remove(function(t){var e=r.getItemGraphicEl(t);"cartesian2d"===s.type?e&&Ou(t,u,e):e&&Eu(t,u,e)}).execute(),this._data=a},remove:function(t,e){var i=this.group,n=this._data;t.get("animation")?n&&n.eachItemGraphicEl(function(e){"sector"===e.type?Eu(e.dataIndex,t,e):Ou(e.dataIndex,t,e)}):i.removeAll()}});var fT={cartesian2d:function(t,e,i,n,o,r,s){var l=new jb({shape:a({},n)});if(r){var u=l.shape,h=o?"height":"width",c={};u[h]=0,c[h]=n[h],sS[s?"updateProps":"initProps"](l,{shape:c},r,e)}return l},polar:function(t,e,i,n,o,a,s){var l=n.startAngle0?1:-1,r=n.height>0?1:-1;return{x:n.x+a*o/2,y:n.y+r*o/2,width:n.width-a*o,height:n.height-r*o}},polar:function(t,e,i){var n=t.getItemLayout(e);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle}}};ds(v(rl,"bar")),fs(function(t){t.eachSeriesByType("bar",function(t){t.getData().setVisual("legendSymbol","roundRect")})});var gT=function(t,e,i){e=y(e)&&{coordDimensions:e}||a({},e);var n=t.getSource(),o=CI(n,e),r=new DI(o,t);return r.initData(n,i),r},mT={updateSelectedMap:function(t){this._targetList=y(t)?t.slice():[],this._selectTargetMap=p(t||[],function(t,e){return t.set(e.name,e),t},z())},select:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);"single"===this.get("selectedMode")&&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);if(null!=i)return this[i.selected?"unSelect":"select"](t,e),i.selected},isSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return i&&i.selected}},vT=ys({type:"series.pie",init:function(t){vT.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this.updateSelectedMap(this._createSelectableList()),this._defaultLabelLine(t)},mergeOption:function(t){vT.superCall(this,"mergeOption",t),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(t,e){return gT(this,["value"])},_createSelectableList:function(){for(var t=this.getRawData(),e=t.mapDimension("value"),i=[],n=0,o=t.count();n0&&"scale"!==u){var d=o.getItemLayout(0),f=Math.max(i.getWidth(),i.getHeight())/2,p=m(r.removeClipPath,r);r.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}this._data=o}},dispose:function(){},_createClipPath:function(t,e,i,n,o,a,r){var s=new Gb({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:o}});return po(s,{shape:{endAngle:n+(o?1:-1)*Math.PI*2}},r,a),s},containPoint:function(t,e){var i=e.getData().getItemLayout(0);if(i){var n=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(n*n+o*o);return a<=i.r&&a>=i.r0}}});var xT=function(t,e){d(e,function(e){e.update="updateView",hs(e,function(i,n){var o={};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);o[i]=t.isSelected(i)||!1})}),{name:i.name,selected:o}})})},_T=function(t){return{getTargetSeries:function(e){var i={},n=z();return e.eachSeriesByType(t,function(t){t.__paletteScope=i,n.set(t.uid,t)}),n},reset:function(t,e){var i=t.getRawData(),n={},o=t.getData();o.each(function(t){var e=o.getRawIndex(t);n[e]=t}),i.each(function(e){var a=n[e],r=null!=a&&o.getItemVisual(a,"color",!0);if(r)i.setItemVisual(e,"color",r);else{var s=i.getItemModel(e).get("itemStyle.color")||t.getColorFromPalette(i.getName(e)||e+"",t.__paletteScope,i.count());i.setItemVisual(e,"color",s),null!=a&&o.setItemVisual(a,"color",s)}})}}},wT=function(t,e,i,n){var o,a,r=t.getData(),s=[],l=!1;r.each(function(i){var n,u,h,c,d=r.getItemLayout(i),f=r.getItemModel(i),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),m=f.getModel("labelLine"),v=m.get("length"),y=m.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);o=d.cx,a=d.cy;var b="inside"===g||"inner"===g;if("center"===g)n=d.cx,u=d.cy,c="center";else{var S=(b?(d.r+d.r0)/2*_:d.r*_)+o,M=(b?(d.r+d.r0)/2*w:d.r*w)+a;if(n=S+3*_,u=M+3*w,!b){var I=S+_*(v+e-d.r),D=M+w*(v+e-d.r),T=I+(_<0?-1:1)*y,A=D;n=T+(_<0?-5:5),u=A,h=[[S,M],[I,D],[T,A]]}c=b?"center":_>0?"left":"right"}var C=p.getFont(),L=p.get("rotate")?_<0?-x+Math.PI:-x:0,k=me(t.getFormattedLabel(i,"normal")||r.getName(i),C,c,"top");l=!!L,d.label={x:n,y:u,position:g,height:k.height,len:v,len2:y,linePoints:h,textAlign:c,verticalAlign:"middle",rotation:L,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&Wu(s,o,a,e,i,n)},bT=2*Math.PI,ST=Math.PI/180,MT=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),o=0;o=0;s--){var l=2*s,u=n[l]-a/2,h=n[l+1]-r/2;if(t>=u&&e>=h&&t<=u+a&&e<=h+r)return s}return-1}}),DT=Hu.prototype;DT.isPersistent=function(){return!this._incremental},DT.updateData=function(t){this.group.removeAll();var e=new IT({rectHover:!0,cursor:"default"});e.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},DT.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("symbolPoints");this.group.eachChild(function(t){if(null!=t.startIndex){var i=2*(t.endIndex-t.startIndex),n=4*t.startIndex*2;e=new Float32Array(e.buffer,n,i)}t.setShape("points",e)})}},DT.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new On({silent:!0})),this.group.add(this._incremental)):this._incremental=null},DT.incrementalUpdate=function(t,e){var i;this._incremental?(i=new IT,this._incremental.addDisplayable(i,!0)):((i=new IT({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("symbolPoints")}),this._setCommon(i,e,!!this._incremental)},DT._setCommon=function(t,e,i){var n=e.hostModel,o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.symbolProxy=ml(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(n.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var r=e.getVisual("color");r&&t.setColor(r),i||(t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var i=t.findDataIndex(e.offsetX,e.offsetY);i>=0&&(t.dataIndex=i+(t.startIndex||0))}))},DT.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},DT._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},xs({type:"scatter",render:function(t,e,i){var n=t.getData();this._updateSymbolDraw(n,t).updateData(n),this._finished=!0},incrementalPrepareRender:function(t,e,i){var n=t.getData();this._updateSymbolDraw(n,t).incrementalPrepareUpdate(n),this._finished=!1},incrementalRender:function(t,e,i){this._symbolDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},updateTransform:function(t,e,i){var n=t.getData();if(this.group.dirty(),!this._finished||n.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var o=PD().reset(t);o.progress&&o.progress({start:0,end:n.count()},n),this._symbolDraw.updateLayout(n)},_updateSymbolDraw:function(t,e){var i=this._symbolDraw,n=e.pipelineContext.large;return i&&n===this._isLargeDraw||(i&&i.remove(),i=this._symbolDraw=n?new Hu:new Al,this._isLargeDraw=n,this.group.removeAll()),this.group.add(i.group),i},remove:function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},dispose:function(){}}),fs(kD("scatter","circle")),ds(PD("scatter")),u(Zu,dD),Uu.prototype.getIndicatorAxes=function(){return this._indicatorAxes},Uu.prototype.dataToPoint=function(t,e){var i=this._indicatorAxes[e];return this.coordToPoint(i.dataToCoord(t),e)},Uu.prototype.coordToPoint=function(t,e){var i=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(i),this.cy-t*Math.sin(i)]},Uu.prototype.pointToData=function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=Math.sqrt(e*e+i*i);e/=n,i/=n;for(var o,a=Math.atan2(-i,e),r=1/0,s=-1,l=0;ln[0]&&isFinite(c)&&isFinite(n[0]))}else{r.getTicks().length-1>a&&(u=i(u));var d=Math.round((n[0]+n[1])/2/u)*u,f=Math.round(a/2);r.setExtent(Ao(d-f*u),Ao(d+(a-f)*u)),r.setInterval(u)}})},Uu.dimensions=[],Uu.create=function(t,e){var i=[];return t.eachComponent("radar",function(n){var o=new Uu(n,t,e);i.push(o),n.coordinateSystem=o}),t.eachSeriesByType("radar",function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])}),i},Ca.register("radar",Uu);var TT=BD.valueAxis,AT=(ms({type:"radar",optionUpdated:function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),o=this.get("scale"),s=this.get("axisLine"),l=this.get("axisTick"),u=this.get("axisLabel"),h=this.get("name"),c=this.get("name.show"),d=this.get("name.formatter"),p=this.get("nameGap"),g=this.get("triggerEvent"),m=f(this.get("indicator")||[],function(f){null!=f.max&&f.max>0&&!f.min?f.min=0:null!=f.min&&f.min<0&&!f.max&&(f.max=0);var m=h;if(null!=f.color&&(m=r({color:f.color},h)),f=n(i(f),{boundaryGap:t,splitNumber:e,scale:o,axisLine:s,axisTick:l,axisLabel:u,name:f.text,nameLocation:"end",nameGap:p,nameTextStyle:m,triggerEvent:g},!1),c||(f.name=""),"string"==typeof d){var v=f.name;f.name=d.replace("{value}",null!=v?v:"")}else"function"==typeof d&&(f.name=d(f.name,f));var y=a(new wo(f,null,this.ecModel),JI);return y.mainType="radar",y.componentIndex=this.componentIndex,y},this);this.getIndicatorModels=function(){return m}},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,name:{show:!0},boundaryGap:[0,0],splitNumber:5,nameGap:15,scale:!1,shape:"polygon",axisLine:n({lineStyle:{color:"#bbb"}},TT.axisLine),axisLabel:ju(TT.axisLabel,!1),axisTick:ju(TT.axisTick,!1),splitLine:ju(TT.splitLine,!0),splitArea:ju(TT.splitArea,!0),indicator:[]}}),["axisLine","axisTickLabel","axisName"]);vs({type:"radar",render:function(t,e,i){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},_buildAxes:function(t){var e=t.coordinateSystem;d(f(e.getIndicatorAxes(),function(t){return new qD(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})}),function(t){d(AT,t.add,t),this.group.add(t.getGroup())},this)},_buildSplitLineAndArea:function(t){function e(t,e,i){var n=i%e.length;return t[n]=t[n]||[],n}var i=t.coordinateSystem,n=i.getIndicatorAxes();if(n.length){var o=t.get("shape"),a=t.getModel("splitLine"),s=t.getModel("splitArea"),l=a.getModel("lineStyle"),u=s.getModel("areaStyle"),h=a.get("show"),c=s.get("show"),p=l.get("color"),g=u.get("color");p=y(p)?p:[p],g=y(g)?g:[g];var m=[],v=[];if("circle"===o)for(var x=n[0].getTicksCoords(),_=i.cx,w=i.cy,b=0;b"+f(i,function(i,n){var o=e.get(e.mapDimension(i.dim),t);return Zo(i.name+" : "+o)}).join("
    ")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});xs({type:"radar",render:function(t,e,n){function o(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var o=Xu(t.getItemVisual(e,"symbolSize")),a=ml(i,-1,-1,2,2,n);return a.attr({style:{strokeNoScale:!0},z2:100,scale:[o[0]/2,o[1]/2]}),a}}function a(e,i,n,a,r,s){n.removeAll();for(var l=0;l"+Zo(n+" : "+i)},getTooltipPosition:function(t){if(null!=t){var e=this.getData().getName(t),i=this.coordinateSystem,n=i.getRegion(e);return n&&i.dataToPoint(n.center)}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}}}});h(GT,mT);var FT="\0_ec_interaction_mutex";hs({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),h(ah,$x);var WT={axisPointer:1,tooltip:1,brush:1};xh.prototype={constructor:xh,draw:function(t,e,i,n,o){var a="geo"===t.mainType,r=t.getData&&t.getData();a&&e.eachComponent({mainType:"series",subType:"map"},function(e){r||e.getHostGeoModel()!==t||(r=e.getData())});var s=t.coordinateSystem,l=this.group,u=s.scale,h={position:s.position,scale:u};!l.childAt(0)||o?l.attr(h):fo(l,h,t),l.removeAll();var c=["itemStyle"],f=["emphasis","itemStyle"],p=["label"],g=["emphasis","label"],m=z();d(s.regions,function(e){var i=m.get(e.name)||m.set(e.name,new L_),n=new Kb({shape:{paths:[]}});i.add(n);var o,s=(C=t.getRegionModel(e.name)||t).getModel(c),h=C.getModel(f),v=mh(s),y=mh(h),x=C.getModel(p),_=C.getModel(g);if(r){o=r.indexOfName(e.name);var w=r.getItemVisual(o,"color",!0);w&&(v.fill=w)}d(e.geometries,function(t){if("polygon"===t.type){n.shape.paths.push(new Zb({shape:{points:t.exterior}}));for(var e=0;e<(t.interiors?t.interiors.length:0);e++)n.shape.paths.push(new Zb({shape:{points:t.interiors[e]}}))}}),n.setStyle(v),n.style.strokeNoScale=!0,n.culling=!0;var b=x.get("show"),S=_.get("show"),M=r&&isNaN(r.get(r.mapDimension("value"),o)),I=r&&r.getItemLayout(o);if(a||M&&(b||S)||I&&I.showLabel){var D,T=a?e.name:o;(!r||o>=0)&&(D=t);var A=new zb({position:e.center.slice(),scale:[1/u[0],1/u[1]],z2:10,silent:!0});io(A.style,A.hoverStyle={},x,_,{labelFetcher:D,labelDataIndex:T,defaultText:e.name,useInsideStyle:!1},{textAlign:"center",textVerticalAlign:"middle"}),i.add(A)}if(r)r.setItemGraphicEl(o,i);else{var C=t.getRegionModel(e.name);n.eventData={componentType:"geo",geoIndex:t.componentIndex,name:e.name,region:C&&C.option||{}}}(i.__regions||(i.__regions=[])).push(e),eo(i,y,{hoverSilentOnTouch:!!t.get("selectedMode")}),l.add(i)}),this._updateController(t,e,i),vh(this,t,l,i,n),yh(t,l)},remove:function(){this.group.removeAll(),this._controller.dispose(),this._controllerHost={}},_updateController:function(t,e,i){function n(){var e={type:"geoRoam",componentType:l};return e[l+"Id"]=t.id,e}var o=t.coordinateSystem,r=this._controller,s=this._controllerHost;s.zoomLimit=t.get("scaleLimit"),s.zoom=o.getZoom(),r.enable(t.get("roam")||!1);var l=t.mainType;r.off("pan").on("pan",function(t,e){this._mouseDownFlag=!1,fh(s,t,e),i.dispatchAction(a(n(),{dx:t,dy:e}))},this),r.off("zoom").on("zoom",function(t,e,o){if(this._mouseDownFlag=!1,ph(s,t,e,o),i.dispatchAction(a(n(),{zoom:t,originX:e,originY:o})),this._updateGroup){var r=this.group,l=r.scale;r.traverse(function(t){"text"===t.type&&t.attr("scale",[1/l[0],1/l[1]])})}},this),r.setPointerChecker(function(e,n,a){return o.getViewRectAfterRoam().contain(n,a)&&!gh(e,i,t)})}},xs({type:"map",render:function(t,e,i,n){if(!n||"mapToggleSelect"!==n.type||n.from!==this.uid){var o=this.group;if(o.removeAll(),!t.getHostGeoModel()){if(n&&"geoRoam"===n.type&&"series"===n.componentType&&n.seriesId===t.id)(a=this._mapDraw)&&o.add(a.group);else if(t.needsDrawMap){var a=this._mapDraw||new xh(i,!0);o.add(a.group),a.draw(t,e,i,this,n),this._mapDraw=a}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,i)}}},remove:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},dispose:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},_renderSymbols:function(t,e,i){var n=t.originalData,o=this.group;n.each(n.mapDimension("value"),function(e,i){if(!isNaN(e)){var a=n.getItemLayout(i);if(a&&a.point){var r=a.point,s=a.offset,l=new Rb({style:{fill:t.getData().getVisual("color")},shape:{cx:r[0]+9*s,cy:r[1],r:3},silent:!0,z2:s?8:10});if(!s){var u=t.mainSeries.getData(),h=n.getName(i),c=u.indexOfName(h),d=n.getItemModel(i),f=d.getModel("label"),p=d.getModel("emphasis.label"),g=u.getItemGraphicEl(c),m=T(t.getFormattedLabel(i,"normal"),h),v=T(t.getFormattedLabel(i,"emphasis"),m),y=function(){var t=no({},p,{text:p.get("show")?v:null},{isRectText:!0,useInsideStyle:!1},!0);l.style.extendFrom(t),l.__mapOriginalZ2=l.z2,l.z2+=1},x=function(){no(l.style,f,{text:f.get("show")?m:null,textPosition:f.getShallow("position")||"bottom"},{isRectText:!0,useInsideStyle:!1}),null!=l.__mapOriginalZ2&&(l.z2=l.__mapOriginalZ2,l.__mapOriginalZ2=null)};g.on("mouseover",y).on("mouseout",x).on("emphasis",y).on("normal",x),x()}o.add(l)}}})}}),hs({type:"geoRoam",event:"geoRoam",update:"updateTransform"},function(t,e){var i=t.componentType||"series";e.eachComponent({mainType:i,query:t},function(e){var n=e.coordinateSystem;if("geo"===n.type){var o=_h(n,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(o.center),e.setZoom&&e.setZoom(o.zoom),"series"===i&&d(e.seriesGroup,function(t){t.setCenter(o.center),t.setZoom(o.zoom)})}})});ds(function(t){var e={};t.eachSeriesByType("map",function(i){var n=i.getMapType();if(!i.getHostGeoModel()&&!e[n]){var o={};d(i.seriesGroup,function(e){var i=e.coordinateSystem,n=e.originalData;e.get("showLegendSymbol")&&t.getComponent("legend")&&n.each(n.mapDimension("value"),function(t,e){var a=n.getName(e),r=i.getRegion(a);if(r&&!isNaN(t)){var s=o[a]||0,l=i.dataToPoint(r.center);o[a]=s+1,n.setItemLayout(e,{point:l,offset:s})}})});var a=i.getData();a.each(function(t){var e=a.getName(t),i=a.getItemLayout(t)||{};i.showLabel=!o[e],a.setItemLayout(t,i)}),e[n]=!0}})}),fs(function(t){t.eachSeriesByType("map",function(t){var e=t.get("color"),i=t.getModel("itemStyle"),n=i.get("areaColor"),o=i.get("color")||e[t.seriesIndex%e.length];t.getData().setVisual({areaColor:n,color:o})})}),us(qM.PROCESSOR.STATISTIC,function(t){var e={};t.eachSeriesByType("map",function(t){var i=t.getHostGeoModel(),n=i?"o"+i.id:"i"+t.getMapType();(e[n]=e[n]||[]).push(t)}),d(e,function(t,e){for(var i=wh(f(t,function(t){return t.getData()}),t[0].get("mapValueCalculation")),n=0;ne&&(e=n.height)}this.height=e+1},getNodeById:function(t){if(this.getId()===t)return this;for(var e=0,i=this.children,n=i.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},getLayout:function(){return this.hostTree.data.getItemLayout(this.dataIndex)},getModel:function(t){if(!(this.dataIndex<0)){var e,i=this.hostTree,n=i.data.getItemModel(this.dataIndex),o=this.getLevelModel();return o||0!==this.children.length&&(0===this.children.length||!1!==this.isExpand)||(e=this.getLeavesModel()),n.getModel(t,(o||e||i.hostModel).getModel(t))}},getLevelModel:function(){return(this.hostTree.levelModels||[])[this.depth]},getLeavesModel:function(){return this.hostTree.leavesModel},setVisual:function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},getVisual:function(t,e){return this.hostTree.data.getItemVisual(this.dataIndex,t,e)},getRawIndex:function(){return this.hostTree.data.getRawIndex(this.dataIndex)},getId:function(){return this.hostTree.data.getId(this.dataIndex)},isAncestorOf:function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},isDescendantOf:function(t){return t!==this&&t.isAncestorOf(this)}},Lh.prototype={constructor:Lh,type:"tree",eachNode:function(t,e,i){this.root.eachNode(t,e,i)},getNodeByDataIndex:function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},getNodeByName:function(t){return this.root.getNodeByName(t)},update:function(){for(var t=this.data,e=this._nodes,i=0,n=e.length;ia&&(a=t.depth)});var r=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:a;return o.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=r}),o.data},formatTooltip:function(t){for(var e=this.getData().tree,i=e.root.children[0],n=e.getNodeByDataIndex(t),o=n.getValue(),a=n.name;n&&n!==i;)a=n.parentNode.name+"."+a,n=n.parentNode;return Zo(a+(isNaN(o)||null==o?"":" : "+o))},defaultOption:{zlevel:0,z:2,left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",orient:"horizontal",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0,color:"#555"},leaves:{label:{show:!0}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}}),xs({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new L_,this.group.add(this._mainGroup)},render:function(t,e,i,n){var o=t.getData(),a=t.layoutInfo,r=this._mainGroup,s=t.get("layout");"radial"===s?r.attr("position",[a.x+a.width/2,a.y+a.height/2]):r.attr("position",[a.x,a.y]);var l=this._data,u={expandAndCollapse:t.get("expandAndCollapse"),layout:s,orient:t.get("orient"),curvature:t.get("lineStyle.curveness"),symbolRotate:t.get("symbolRotate"),symbolOffset:t.get("symbolOffset"),hoverAnimation:t.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};o.diff(l).add(function(e){Uh(o,e)&&Xh(o,e,null,r,t,u)}).update(function(e,i){var n=l.getItemGraphicEl(i);Uh(o,e)?Xh(o,e,n,r,t,u):n&&Yh(o,e,n,r,t,u)}).remove(function(e){var i=l.getItemGraphicEl(e);Yh(o,e,i,r,t,u)}).execute(),!0===u.expandAndCollapse&&o.eachItemGraphicEl(function(e,n){e.off("click").on("click",function(){i.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:n})})}),this._data=o},dispose:function(){},remove:function(){this._mainGroup.removeAll(),this._data=null}}),hs({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(e){var i=t.dataIndex,n=e.getData().tree.getNodeByDataIndex(i);n.isExpand=!n.isExpand})});var XT=function(t,e){var i=Rh(t,e);t.layoutInfo=i;var n=t.get("layout"),o=0,a=0,r=null;"radial"===n?(o=2*Math.PI,a=Math.min(i.height,i.width)/2,r=Eh(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,r=Eh());var s=t.getData().tree.root,l=s.children[0];Ph(s),$h(l,Nh,r),s.hierNode.modifier=-l.hierNode.prelim,Kh(l,Oh);var u=l,h=l,c=l;Kh(l,function(t){var e=t.getLayout().x;eh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)});var d=u===h?1:r(u,h)/2,f=d-u.getLayout().x,p=0,g=0,m=0,v=0;"radial"===n?(p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Kh(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=zh(m,v);t.setLayout({x:e.x,y:e.y,rawX:m,rawY:v},!0)})):"horizontal"===t.get("orient")?(g=a/(h.getLayout().x+d+f),p=o/(c.depth-1||1),Kh(l,function(t){v=(t.getLayout().x+f)*g,m=(t.depth-1)*p,t.setLayout({x:m,y:v},!0)})):(p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Kh(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g,t.setLayout({x:m,y:v},!0)}))};fs(kD("tree","circle")),ds(function(t,e){t.eachSeriesByType("tree",function(t){XT(t,e)})}),ds(function(t,e){t.eachSeriesByType("tree",function(t){XT(t,e)})}),mM.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],_viewRoot:null,defaultOption:{progressive:0,hoverLayerThreshold:1/0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"â–¶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0},upperLabel:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(t,e){var i={name:t.name,children:t.data};ic(i);var n=t.levels||[];n=t.levels=nc(n,e);var o={};return o.levels=n,Lh.createTree(i,this,o).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=Wo(y(i)?i[0]:i);return Zo(e.getName(t)+": "+n)},getDataParams:function(t){var e=mM.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=ec(i,this),e},setLayoutInfo:function(t){this.layoutInfo=this.layoutInfo||{},a(this.layoutInfo,t)},mapIdToIndex:function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=z(),this._idIndexMapCount=0);var i=e.get(t);return null==i&&e.set(t,i=this._idIndexMapCount++),i},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)}});var YT=5;oc.prototype={constructor:oc,render:function(t,e,i,n){var o=t.getModel("breadcrumb"),a=this.group;if(a.removeAll(),o.get("show")&&i){var r=o.getModel("itemStyle"),s=r.getModel("textStyle"),l={pos:{left:o.get("left"),right:o.get("right"),top:o.get("top"),bottom:o.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:o.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(i,l,s),this._renderContent(t,l,r,s,n),ta(a,l.pos,l.box)}},_prepare:function(t,e,i){for(var n=t;n;n=n.parentNode){var o=n.getModel().get("name"),a=i.getTextRect(o),r=Math.max(a.width+16,e.emptyItemWidth);e.totalWidth+=r+8,e.renderList.push({node:n,text:o,width:r})}},_renderContent:function(t,e,i,n,o){for(var a=0,s=e.emptyItemWidth,l=t.get("breadcrumb.height"),u=Jo(e.pos,e.box),h=e.totalWidth,c=e.renderList,d=c.length-1;d>=0;d--){var f=c[d],p=f.node,g=f.width,m=f.text;h>u.width&&(h-=g-s,g=s,m=null);var y=new Zb({shape:{points:ac(a,0,g,l,d===c.length-1,0===d)},style:r(i.getItemStyle(),{lineJoin:"bevel",text:m,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:v(o,p)});this.group.add(y),rc(y,t,p),a+=g+8}},remove:function(){this.group.removeAll()}};var qT=m,$T=L_,KT=jb,JT=d,QT=["label"],tA=["emphasis","label"],eA=["upperLabel"],iA=["emphasis","upperLabel"],nA=10,oA=1,aA=2,rA=Lw([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),sA=function(t){var e=rA(t);return e.stroke=e.fill=e.lineWidth=null,e};xs({type:"treemap",init:function(t,e){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(t,e,i,n){if(!(l(e.findComponents({mainType:"series",subType:"treemap",query:n}),t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var o=Jh(n,["treemapZoomToNode","treemapRootToNode"],t),a=n&&n.type,r=t.layoutInfo,s=!this._oldTree,u=this._storage,h="treemapRootToNode"===a&&o&&u?{rootNodeGroup:u.nodeGroup[o.node.getRawIndex()],direction:n.direction}:null,c=this._giveContainerGroup(r),d=this._doRender(c,t,h);s||a&&"treemapZoomToNode"!==a&&"treemapRootToNode"!==a?d.renderFinally():this._doAnimation(c,d,t,h),this._resetController(i),this._renderBreadcrumb(t,i,o)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new $T,this._initEvents(e),this.group.add(e)),e.attr("position",[t.x,t.y]),e},_doRender:function(t,e,i){function n(t,e,i,o,a){function r(t){return t.getId()}function s(r,s){var l=null!=r?t[r]:null,u=null!=s?e[s]:null,c=h(l,u,i,a);c&&n(l&&l.viewChildren||[],u&&u.viewChildren||[],c,o,a+1)}o?(e=t,JT(t,function(t,e){!t.isRemoved()&&s(e,e)})):new bs(e,t,r,r).add(s).update(s).remove(v(s,null)).execute()}var o=e.getData().tree,a=this._oldTree,r={nodeGroup:[],background:[],content:[]},s={nodeGroup:[],background:[],content:[]},l=this._storage,u=[],h=v(lc,e,s,l,i,r,u);n(o.root?[o.root]:[],a&&a.root?[a.root]:[],t,o===a||!a,0);var c=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&JT(t,function(t,i){var n=e[i];JT(t,function(t){t&&(n.push(t),t.__tmWillDelete=1)})}),e}(l);return this._oldTree=o,this._storage=s,{lastsForAnimation:r,willDeleteEls:c,renderFinally:function(){JT(c,function(t){JT(t,function(t){t.parent&&t.parent.remove(t)})}),JT(u,function(t){t.invisible=!0,t.dirty()})}}},_doAnimation:function(t,e,i,n){if(i.get("animation")){var o=i.get("animationDurationUpdate"),r=i.get("animationEasing"),s=sc();JT(e.willDeleteEls,function(t,e){JT(t,function(t,i){if(!t.invisible){var a,l=t.parent;if(n&&"drillDown"===n.direction)a=l===n.rootNodeGroup?{shape:{x:0,y:0,width:l.__tmNodeWidth,height:l.__tmNodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var u=0,h=0;l.__tmWillDelete||(u=l.__tmNodeWidth/2,h=l.__tmNodeHeight/2),a="nodeGroup"===e?{position:[u,h],style:{opacity:0}}:{shape:{x:u,y:h,width:0,height:0},style:{opacity:0}}}a&&s.add(t,a,o,r)}})}),JT(this._storage,function(t,i){JT(t,function(t,n){var l=e.lastsForAnimation[i][n],u={};l&&("nodeGroup"===i?l.old&&(u.position=t.position.slice(),t.attr("position",l.old)):(l.old&&(u.shape=a({},t.shape),t.setShape(l.old)),l.fadein?(t.setStyle("opacity",0),u.style={opacity:1}):1!==t.style.opacity&&(u.style={opacity:1})),s.add(t,u,o,r))})},this),this._state="animating",s.done(qT(function(){this._state="ready",e.renderFinally()},this)).start()}},_resetController:function(t){var e=this._controller;e||((e=this._controller=new ah(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",qT(this._onPan,this)),e.on("zoom",qT(this._onZoom,this)));var i=new Kt(0,0,t.getWidth(),t.getHeight());e.setPointerChecker(function(t,e,n){return i.contain(e,n)})},_clearController:function(){var t=this._controller;t&&(t.dispose(),t=null)},_onPan:function(t,e){if("animating"!==this._state&&(Math.abs(t)>3||Math.abs(e)>3)){var i=this.seriesModel.getData().tree.root;if(!i)return;var n=i.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t,y:n.y+e,width:n.width,height:n.height}})}},_onZoom:function(t,e,i){if("animating"!==this._state){var n=this.seriesModel.getData().tree.root;if(!n)return;var o=n.getLayout();if(!o)return;var a=new Kt(o.x,o.y,o.width,o.height),r=this.seriesModel.layoutInfo;e-=r.x,i-=r.y;var s=st();ct(s,s,[-e,-i]),ft(s,s,[t,t]),ct(s,s,[e,i]),a.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:a.x,y:a.y,width:a.width,height:a.height}})}},_initEvents:function(t){t.on("click",function(t){if("ready"===this._state){var e=this.seriesModel.get("nodeClick",!0);if(e){var i=this.findTarget(t.offsetX,t.offsetY);if(i){var n=i.node;if(n.getLayout().isLeafRoot)this._rootToNode(i);else if("zoomToNode"===e)this._zoomToNode(i);else if("link"===e){var o=n.hostTree.data.getItemModel(n.dataIndex),a=o.get("link",!0),r=o.get("target",!0)||"blank";a&&window.open(a,r)}}}}},this)},_renderBreadcrumb:function(t,e,i){i||(i=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(i={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new oc(this.group))).render(t,e,i.node,qT(function(e){"animating"!==this._state&&(tc(t.getViewRoot(),e)?this._rootToNode({node:e}):this._zoomToNode({node:e}))},this))},remove:function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},dispose:function(){this._clearController()},_zoomToNode:function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},_rootToNode:function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},findTarget:function(t,e){var i;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},function(n){var o=this._storage.background[n.getRawIndex()];if(o){var a=o.transformCoordToLocal(t,e),r=o.shape;if(!(r.x<=a[0]&&a[0]<=r.x+r.width&&r.y<=a[1]&&a[1]<=r.y+r.height))return!1;i={node:n,offsetX:a[0],offsetY:a[1]}}},this),i}});for(var lA=["treemapZoomToNode","treemapRender","treemapMove"],uA=0;uA=0&&t.call(e,i[o],o)},CA.eachEdge=function(t,e){for(var i=this.edges,n=i.length,o=0;o=0&&i[o].node1.dataIndex>=0&&i[o].node2.dataIndex>=0&&t.call(e,i[o],o)},CA.breadthFirstTraverse=function(t,e,i,n){if(Wc.isInstance(e)||(e=this._nodesMap[Fc(e)]),e){for(var o="out"===i?"outEdges":"in"===i?"inEdges":"edges",a=0;a=0&&i.node2.dataIndex>=0});for(var o=0,a=n.length;o=0&&this[t][e].setItemVisual(this.dataIndex,i,n)},getVisual:function(i,n){return this[t][e].getItemVisual(this.dataIndex,i,n)},setLayout:function(i,n){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,i,n)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}};h(Wc,LA("hostGraph","data")),h(Hc,LA("hostGraph","edgeData")),AA.Node=Wc,AA.Edge=Hc,Fi(Wc),Fi(Hc);var kA=function(t,e,i,n,o){for(var a=new AA(n),r=0;r "+d)),u++)}var f,p=i.get("coordinateSystem");if("cartesian2d"===p||"polar"===p)f=Hs(t,i);else{var g=Ca.get(p),m=CI(t,{coordDimensions:(g&&"view"!==g.type?g.dimensions||[]:[]).concat(["value"])});(f=new DI(m,i)).initData(t)}var v=new DI(["value"],i);return v.initData(l,s),o&&o(f,v),bh({mainData:f,struct:a,structAttr:"graph",datas:{node:f,edge:v},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a},PA=ys({type:"series.graph",init:function(t){PA.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){PA.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){PA.superApply(this,"mergeDefaultAndTheme",arguments),Mi(t,["edgeLabel"],["show"])},getInitialData:function(t,e){var i=t.edges||t.links||[],n=t.data||t.nodes||[],o=this;if(n&&i)return kA(n,i,this,!0,function(t,i){function n(t){return(t=this.parsePath(t))&&"label"===t[0]?r:this.parentModel}t.wrapMethod("getItemModel",function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var a=o.getModel("edgeLabel"),r=new wo({label:a.option},a.parentModel,e);i.wrapMethod("getItemModel",function(t){return t.customizeGetParent(n),t})}).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(t,e,i){if("edge"===i){var n=this.getData(),o=this.getDataParams(t,i),a=n.graph.getEdgeByIndex(t),r=n.getName(a.node1.dataIndex),s=n.getName(a.node2.dataIndex),l=[];return null!=r&&l.push(r),null!=s&&l.push(s),l=Zo(l.join(" > ")),o.value&&(l+=" : "+Zo(o.value)),l}return PA.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var t=f(this.option.categories||[],function(t){return null!=t.value?t:a({value:0},t)}),e=new DI(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t,!0)})},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},isAnimationEnabled:function(){return PA.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle"},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{label:{show:!0}}}}),NA=Xb.prototype,OA=qb.prototype,EA=En({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){(Zc(e)?NA:OA).buildPath(t,e)},pointAt:function(t){return Zc(this.shape)?NA.pointAt.call(this,t):OA.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=Zc(e)?[e.x2-e.x1,e.y2-e.y1]:OA.tangentAt.call(this,t);return q(i,i)}}),zA=["fromSymbol","toSymbol"],RA=qc.prototype;RA.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),i=t.childOfName("toSymbol"),n=t.childOfName("label");if(e||i||!n.ignore){for(var o=1,a=this.parent;a;)a.scale&&(o/=a.scale[0]),a=a.parent;var r=t.childOfName("line");if(this.__dirty||r.__dirty){var s=r.shape.percent,l=r.pointAt(0),u=r.pointAt(s),h=U([],u,l);if(q(h,h),e&&(e.attr("position",l),c=r.tangentAt(0),e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[o*s,o*s])),i){i.attr("position",u);var c=r.tangentAt(1);i.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),i.attr("scale",[o*s,o*s])}if(!n.ignore){n.attr("position",u);var d,f,p,g=5*o;if("end"===n.__position)d=[h[0]*g+u[0],h[1]*g+u[1]],f=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var m=s/2,v=[(c=r.tangentAt(m))[1],-c[0]],y=r.pointAt(m);v[1]>0&&(v[0]=-v[0],v[1]=-v[1]),d=[y[0]+v[0]*g,y[1]+v[1]*g],f="center",p="bottom";var x=-Math.atan2(c[1],c[0]);u[0].8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||p,textAlign:n.__textAlign||f},position:d,scale:[o,o]})}}}},RA._createLine=function(t,e,i){var n=t.hostModel,o=Xc(t.getItemLayout(e));o.shape.percent=0,po(o,{shape:{percent:1}},n,e),this.add(o);var a=new zb({name:"label"});this.add(a),d(zA,function(i){var n=jc(i,t,e);this.add(n),this[Uc(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},RA.updateData=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=t.getItemLayout(e),r={shape:{}};Yc(r.shape,a),fo(o,r,n,e),d(zA,function(i){var n=t.getItemVisual(e,i),o=Uc(i);if(this[o]!==n){this.remove(this.childOfName(i));var a=jc(i,t,e);this.add(a)}this[o]=n},this),this._updateCommonStl(t,e,i)},RA._updateCommonStl=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=i&&i.lineStyle,s=i&&i.hoverLineStyle,l=i&&i.labelModel,u=i&&i.hoverLabelModel;if(!i||t.hasItemOption){var h=t.getItemModel(e);a=h.getModel("lineStyle").getLineStyle(),s=h.getModel("emphasis.lineStyle").getLineStyle(),l=h.getModel("label"),u=h.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),f=A(t.getItemVisual(e,"opacity"),a.opacity,1);o.useStyle(r({strokeNoScale:!0,fill:"none",stroke:c,opacity:f},a)),o.hoverStyle=s,d(zA,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:f}))},this);var p,g,m,v=l.getShallow("show"),y=u.getShallow("show"),x=this.childOfName("label");if(v||y){if(p=c||"#000",null==(g=n.getFormattedLabel(e,"normal",t.dataType))){var _=n.getRawValue(e);g=null==_?t.getName(e):isFinite(_)?Ao(_):_}m=T(n.getFormattedLabel(e,"emphasis",t.dataType),g)}if(v){var w=no(x.style,l,{text:g},{autoColor:p});x.__textAlign=w.textAlign,x.__verticalAlign=w.textVerticalAlign,x.__position=l.get("position")||"middle"}else x.setStyle("text",null);x.hoverStyle=y?{text:m,textFill:u.getTextColor(!0),fontStyle:u.getShallow("fontStyle"),fontWeight:u.getShallow("fontWeight"),fontSize:u.getShallow("fontSize"),fontFamily:u.getShallow("fontFamily")}:{text:null},x.ignore=!v&&!y,eo(this)},RA.highlight=function(){this.trigger("emphasis")},RA.downplay=function(){this.trigger("normal")},RA.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},RA.setLinePoints=function(t){var e=this.childOfName("line");Yc(e.shape,t),e.dirty()},u(qc,L_);var BA=$c.prototype;BA.isPersistent=function(){return!0},BA.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var o=Qc(t);t.diff(n).add(function(i){Kc(e,t,i,o)}).update(function(i,a){Jc(e,n,t,a,i,o)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},BA.updateLayout=function(){var t=this._lineData;t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},BA.incrementalPrepareUpdate=function(t){this._seriesScope=Qc(t),this._lineData=null,this.group.removeAll()},BA.incrementalUpdate=function(t,e){for(var i=t.start;i=o/3?1:2),l=e.y-n(r)*a*(a>=o/3?1:2);r=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+i(r)*a,e.y+n(r)*a),t.lineTo(e.x+i(e.angle)*o,e.y+n(e.angle)*o),t.lineTo(e.x-i(r)*a,e.y-n(r)*a),t.lineTo(s,l)}}),$A=2*Math.PI,KA=(pr.extend({type:"gauge",render:function(t,e,i){this.group.removeAll();var n=t.get("axisLine.lineStyle.color"),o=dd(t,i);this._renderMain(t,e,i,n,o)},dispose:function(){},_renderMain:function(t,e,i,n,o){for(var a=this.group,r=t.getModel("axisLine").getModel("lineStyle"),s=t.get("clockwise"),l=-t.get("startAngle")/180*Math.PI,u=-t.get("endAngle")/180*Math.PI,h=(u-l)%$A,c=l,d=r.get("width"),f=0;f=t&&(0===e?0:n[e-1][0]).4?"bottom":"middle",textAlign:T<-.4?"left":T>.4?"right":"center"},{autoColor:P}),silent:!0}))}if(g.get("show")&&D!==v){for(var N=0;N<=y;N++){var T=Math.cos(w),A=Math.sin(w),O=new Xb({shape:{x1:T*c+u,y1:A*c+h,x2:T*(c-_)+u,y2:A*(c-_)+h},silent:!0,style:I});"auto"===I.stroke&&O.setStyle({stroke:n((D+N/y)/v)}),l.add(O),w+=S}w-=S}else w+=b}},_renderPointer:function(t,e,i,n,o,a,r,s){var l=this.group,u=this._data;if(t.get("pointer.show")){var h=[+t.get("min"),+t.get("max")],c=[a,r],d=t.getData(),f=d.mapDimension("value");d.diff(u).add(function(e){var i=new qA({shape:{angle:a}});po(i,{shape:{angle:Do(d.get(f,e),h,c,!0)}},t),l.add(i),d.setItemGraphicEl(e,i)}).update(function(e,i){var n=u.getItemGraphicEl(i);fo(n,{shape:{angle:Do(d.get(f,e),h,c,!0)}},t),l.add(n),d.setItemGraphicEl(e,n)}).remove(function(t){var e=u.getItemGraphicEl(t);l.remove(e)}).execute(),d.eachItemGraphicEl(function(t,e){var i=d.getItemModel(e),a=i.getModel("pointer");t.setShape({x:o.cx,y:o.cy,width:To(a.get("width"),o.r),r:To(a.get("length"),o.r)}),t.useStyle(i.getModel("itemStyle").getItemStyle()),"auto"===t.style.fill&&t.setStyle("fill",n(Do(d.get(f,e),h,[0,1],!0))),eo(t,i.getModel("emphasis.itemStyle").getItemStyle())}),this._data=d}else u&&u.eachItemGraphicEl(function(t){l.remove(t)})},_renderTitle:function(t,e,i,n,o){var a=t.getData(),r=a.mapDimension("value"),s=t.getModel("title");if(s.get("show")){var l=s.get("offsetCenter"),u=o.cx+To(l[0],o.r),h=o.cy+To(l[1],o.r),c=+t.get("min"),d=+t.get("max"),f=n(Do(t.getData().get(r,0),[c,d],[0,1],!0));this.group.add(new zb({silent:!0,style:no({},s,{x:u,y:h,text:a.getName(0),textAlign:"center",textVerticalAlign:"middle"},{autoColor:f,forceRich:!0})}))}},_renderDetail:function(t,e,i,n,o){var a=t.getModel("detail"),r=+t.get("min"),s=+t.get("max");if(a.get("show")){var l=a.get("offsetCenter"),u=o.cx+To(l[0],o.r),h=o.cy+To(l[1],o.r),c=To(a.get("width"),o.r),d=To(a.get("height"),o.r),f=t.getData(),p=f.get(f.mapDimension("value"),0),g=n(Do(p,[r,s],[0,1],!0));this.group.add(new zb({silent:!0,style:no({},a,{x:u,y:h,text:fd(p,a.get("formatter")),textWidth:isNaN(c)?null:c,textHeight:isNaN(d)?null:d,textAlign:"center",textVerticalAlign:"middle"},{autoColor:g,forceRich:!0})}))}}}),ys({type:"series.funnel",init:function(t){KA.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this._defaultLabelLine(t)},getInitialData:function(t,e){return gT(this,["value"])},_defaultLabelLine:function(t){Mi(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},getDataParams:function(t){var e=this.getData(),i=KA.superCall(this,"getDataParams",t),n=e.mapDimension("value"),o=e.getSum(n);return i.percent=o?+(e.get(n,t)/o*100).toFixed(2):0,i.$vars.push("percent"),i},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}}}})),JA=pd.prototype,QA=["itemStyle","opacity"];JA.updateData=function(t,e,i){var n=this.childAt(0),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e),l=t.getItemModel(e).get(QA);l=null==l?1:l,n.useStyle({}),i?(n.setShape({points:s.points}),n.setStyle({opacity:0}),po(n,{style:{opacity:l}},o,e)):fo(n,{style:{opacity:l},shape:{points:s.points}},o,e);var u=a.getModel("itemStyle"),h=t.getItemVisual(e,"color");n.setStyle(r({lineJoin:"round",fill:h},u.getItemStyle(["opacity"]))),n.hoverStyle=u.getModel("emphasis").getItemStyle(),this._updateLabel(t,e),eo(this)},JA._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),o=t.hostModel,a=t.getItemModel(e),r=t.getItemLayout(e).label,s=t.getItemVisual(e,"color");fo(i,{shape:{points:r.linePoints||r.linePoints}},o,e),fo(n,{style:{x:r.x,y:r.y}},o,e),n.attr({rotation:r.rotation,origin:[r.x,r.y],z2:10});var l=a.getModel("label"),u=a.getModel("emphasis.label"),h=a.getModel("labelLine"),c=a.getModel("emphasis.labelLine"),s=t.getItemVisual(e,"color");io(n.style,n.hoverStyle={},l,u,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:s,useInsideStyle:!!r.inside},{textAlign:r.textAlign,textVerticalAlign:r.verticalAlign}),n.ignore=n.normalIgnore=!l.get("show"),n.hoverIgnore=!u.get("show"),i.ignore=i.normalIgnore=!h.get("show"),i.hoverIgnore=!c.get("show"),i.setStyle({stroke:s}),i.setStyle(h.getModel("lineStyle").getLineStyle()),i.hoverStyle=c.getModel("lineStyle").getLineStyle()},u(pd,L_);pr.extend({type:"funnel",render:function(t,e,i){var n=t.getData(),o=this._data,a=this.group;n.diff(o).add(function(t){var e=new pd(n,t);n.setItemGraphicEl(t,e),a.add(e)}).update(function(t,e){var i=o.getItemGraphicEl(e);i.updateData(n,t),a.add(i),n.setItemGraphicEl(t,i)}).remove(function(t){var e=o.getItemGraphicEl(t);a.remove(e)}).execute(),this._data=n},remove:function(){this.group.removeAll(),this._data=null},dispose:function(){}});fs(_T("funnel")),ds(function(t,e,i){t.eachSeriesByType("funnel",function(t){var i=t.getData(),n=i.mapDimension("value"),o=t.get("sort"),a=gd(t,e),r=md(i,o),s=[To(t.get("minSize"),a.width),To(t.get("maxSize"),a.width)],l=i.getDataExtent(n),u=t.get("min"),h=t.get("max");null==u&&(u=Math.min(l[0],0)),null==h&&(h=l[1]);var c=t.get("funnelAlign"),d=t.get("gap"),f=(a.height-d*(i.count()-1))/i.count(),p=a.y,g=function(t,e){var o,r=Do(i.get(n,t)||0,[u,h],s,!0);switch(c){case"left":o=a.x;break;case"center":o=a.x+(a.width-r)/2;break;case"right":o=a.x+a.width-r}return[[o,e],[o+r,e]]};"ascending"===o&&(f=-f,d=-d,p+=a.height,r=r.reverse());for(var m=0;ma&&(e[1-n]=e[n]+h.sign*a),e},iC=d,nC=Math.min,oC=Math.max,aC=Math.floor,rC=Math.ceil,sC=Ao,lC=Math.PI;bd.prototype={type:"parallel",constructor:bd,_init:function(t,e,i){var n=t.dimensions,o=t.parallelAxisIndex;iC(n,function(t,i){var n=o[i],a=e.getComponent("parallelAxis",n),r=this._axesMap.set(t,new tC(t,cl(a),[0,0],a.get("type"),n)),s="category"===r.type;r.onBand=s&&a.get("boundaryGap"),r.inverse=a.get("inverse"),a.axis=r,r.model=a,r.coordinateSystem=a.coordinateSystem=this},this)},update:function(t,e){this._updateAxesFromSeries(this._model,t)},containPoint:function(t){var e=this._makeLayoutInfo(),i=e.axisBase,n=e.layoutBase,o=e.pixelDimIndex,a=t[1-o],r=t[o];return a>=i&&a<=i+e.axisLength&&r>=n&&r<=n+e.layoutLength},getModel:function(){return this._model},_updateAxesFromSeries:function(t,e){e.eachSeries(function(i){if(t.contains(i,e)){var n=i.getData();iC(this.dimensions,function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(n,n.mapDimension(t)),hl(e.scale,e.model)},this)}},this)},resize:function(t,e){this._rect=Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},getRect:function(){return this._rect},_makeLayoutInfo:function(){var t,e=this._model,i=this._rect,n=["x","y"],o=["width","height"],a=e.get("layout"),r="horizontal"===a?0:1,s=i[o[r]],l=[0,s],u=this.dimensions.length,h=Sd(e.get("axisExpandWidth"),l),c=Sd(e.get("axisExpandCount")||0,[0,u]),d=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,f=e.get("axisExpandWindow");f?(t=Sd(f[1]-f[0],l),f[1]=f[0]+t):(t=Sd(h*(c-1),l),(f=[h*(e.get("axisExpandCenter")||aC(u/2))-t/2])[1]=f[0]+t);var p=(s-t)/(u-c);p<3&&(p=0);var g=[aC(sC(f[0]/h,1))+1,rC(sC(f[1]/h,1))-1],m=p/h*f[0];return{layout:a,pixelDimIndex:r,layoutBase:i[n[r]],layoutLength:s,axisBase:i[n[1-r]],axisLength:i[o[1-r]],axisExpandable:d,axisExpandWidth:h,axisCollapseWidth:p,axisExpandWindow:f,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:m}},_layoutAxes:function(){var t=this._rect,e=this._axesMap,i=this.dimensions,n=this._makeLayoutInfo(),o=n.layout;e.each(function(t){var e=[0,n.axisLength],i=t.inverse?1:0;t.setExtent(e[i],e[1-i])}),iC(i,function(i,a){var r=(n.axisExpandable?Id:Md)(a,n),s={horizontal:{x:r.position,y:n.axisLength},vertical:{x:0,y:r.position}},l={horizontal:lC/2,vertical:0},u=[s[o].x+t.x,s[o].y+t.y],h=l[o],c=st();dt(c,c,h),ct(c,c,u),this._axesLayout[i]={position:u,rotation:h,transform:c,axisNameAvailableWidth:r.axisNameAvailableWidth,axisLabelShow:r.axisLabelShow,nameTruncateMaxWidth:r.nameTruncateMaxWidth,tickDirection:1,labelDirection:1,labelInterval:e.get(i).getLabelInterval()}},this)},getAxis:function(t){return this._axesMap.get(t)},dataToPoint:function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},eachActiveState:function(t,e,i){for(var n=this.dimensions,o=f(n,function(e){return t.mapDimension(e)}),a=this._axesMap,r=this.hasAxisBrushed(),s=0,l=t.count();so*(1-h[0])?(l="jump",r=s-o*(1-h[2])):(r=s-o*h[1])>=0&&(r=s-o*(1-h[1]))<=0&&(r=0),(r*=e.axisExpandWidth/u)?eC(r,n,a,"all"):l="none";else{o=n[1]-n[0];(n=[oC(0,a[1]*s/o-o/2)])[1]=nC(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},Ca.register("parallel",{create:function(t,e){var i=[];return t.eachComponent("parallel",function(n,o){var a=new bd(n,t,e);a.name="parallel_"+o,a.resize(n,e),n.coordinateSystem=a,a.model=n,i.push(a)}),t.eachSeries(function(e){if("parallel"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"parallel",index:e.get("parallelIndex"),id:e.get("parallelId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}});var uC=kS.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return Lw([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(t){var e=this.activeIntervals=i(t);if(e)for(var n=e.length-1;n>=0;n--)Co(e[n])},getActiveState:function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t)return"inactive";for(var i=0,n=e.length;i5)return;var n=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==n.behavior&&this._dispatchExpand({axisExpandWindow:n.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&gf(this,"mousemove")){var e=this._model,i=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),n=i.behavior;"jump"===n&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===n?null:{axisExpandWindow:i.axisExpandWindow,animation:"jump"===n&&null})}}};ls(function(t){yd(t),xd(t)}),mM.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.color",getInitialData:function(t,e){this.option.progressive&&(this.option.animation=!1);var i=this.getSource();return mf(i,this),Hs(i,this)},getRawIndicesByActiveState:function(t){var e=this.coordinateSystem,i=this.getData(),n=[];return e.eachActiveState(i,function(e,o){t===e&&n.push(i.getRawIndex(o))}),n},defaultOption:{zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:!1,smooth:!1,animationEasing:"linear"}});pr.extend({type:"parallel",init:function(){this._dataGroup=new L_,this.group.add(this._dataGroup),this._data},render:function(t,e,i,n){this._renderForNormal(t,n)},dispose:function(){},_renderForNormal:function(t,e){var i=this._dataGroup,n=t.getData(),o=this._data,a=t.coordinateSystem,r=a.dimensions,s=t.option.smooth?.3:null;if(n.diff(o).add(function(t){_f(n,i,t,r,a)}).update(function(i,s){var l=o.getItemGraphicEl(s),u=xf(n,i,r,a);n.setItemGraphicEl(i,l),fo(l,{shape:{points:u}},e&&!1===e.animation?null:t,i)}).remove(function(t){var e=o.getItemGraphicEl(t);i.remove(e)}).execute(),wf(n,s),!this._data){var l=yf(a,t,function(){setTimeout(function(){i.removeClipPath()})});i.setClipPath(l)}this._data=n},remove:function(){this._dataGroup&&this._dataGroup.removeAll(),this._data=null}});var LC=["lineStyle","normal","opacity"];fs(function(t){t.eachSeriesByType("parallel",function(e){var i=e.getModel("itemStyle"),n=e.getModel("lineStyle"),o=t.get("color"),a=n.get("color")||i.get("color")||o[e.seriesIndex%o.length],r=e.get("inactiveOpacity"),s=e.get("activeOpacity"),l=e.getModel("lineStyle").getLineStyle(),u=e.coordinateSystem,h=e.getData(),c={normal:l.opacity,active:s,inactive:r};u.eachActiveState(h,function(t,e){var i=h.getItemModel(e),n=c[t];if("normal"===t){var o=i.get(LC,!0);null!=o&&(n=o)}h.setItemVisual(e,"opacity",n)}),h.setVisual("color",a)})});var kC=mM.extend({type:"series.sankey",layoutInfo:null,getInitialData:function(t){var e=t.edges||t.links,i=t.data||t.nodes;if(i&&e)return kA(i,e,this,!0).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},formatTooltip:function(t,e,i){if("edge"===i){var n=this.getDataParams(t,i),o=n.data,a=o.source+" -- "+o.target;return n.value&&(a+=" : "+n.value),Zo(a)}return kC.superCall(this,"formatTooltip",t,e)},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",layout:null,left:"5%",top:"5%",right:"20%",bottom:"5%",nodeWidth:20,nodeGap:8,layoutIterations:32,label:{show:!0,position:"right",color:"#000",fontSize:12},itemStyle:{borderWidth:1,borderColor:"#333"},lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.6}},animationEasing:"linear",animationDuration:1e3}}),PC=En({shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,cpx2:0,cpy2:0,extent:0},buildPath:function(t,e){var i=e.extent/2;t.moveTo(e.x1,e.y1-i),t.bezierCurveTo(e.cpx1,e.cpy1-i,e.cpx2,e.cpy2-i,e.x2,e.y2-i),t.lineTo(e.x2,e.y2+i),t.bezierCurveTo(e.cpx2,e.cpy2+i,e.cpx1,e.cpy1+i,e.x1,e.y1+i),t.closePath()}});xs({type:"sankey",_model:null,render:function(t,e,i){var n=t.getGraph(),o=this.group,a=t.layoutInfo,r=t.getData(),s=t.getData("edge");this._model=t,o.removeAll(),o.attr("position",[a.x,a.y]),n.eachEdge(function(e){var i=new PC;i.dataIndex=e.dataIndex,i.seriesIndex=t.seriesIndex,i.dataType="edge";var n=e.getModel("lineStyle"),a=n.get("curveness"),r=e.node1.getLayout(),l=e.node2.getLayout(),u=e.getLayout();i.shape.extent=Math.max(1,u.dy);var h=r.x+r.dx,c=r.y+u.sy+u.dy/2,d=l.x,f=l.y+u.ty+u.dy/2,p=h*(1-a)+d*a,g=c,m=h*a+d*(1-a),v=f;switch(i.setShape({x1:h,y1:c,x2:d,y2:f,cpx1:p,cpy1:g,cpx2:m,cpy2:v}),i.setStyle(n.getItemStyle()),i.style.fill){case"source":i.style.fill=e.node1.getVisual("color");break;case"target":i.style.fill=e.node2.getVisual("color")}eo(i,e.getModel("emphasis.lineStyle").getItemStyle()),o.add(i),s.setItemGraphicEl(e.dataIndex,i)}),n.eachNode(function(e){var i=e.getLayout(),n=e.getModel(),a=n.getModel("label"),s=n.getModel("emphasis.label"),l=new jb({shape:{x:i.x,y:i.y,width:e.getLayout().dx,height:e.getLayout().dy},style:n.getModel("itemStyle").getItemStyle()}),u=e.getModel("emphasis.itemStyle").getItemStyle();io(l.style,u,a,s,{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id,isRectText:!0}),l.setStyle("fill",e.getVisual("color")),eo(l,u),o.add(l),r.setItemGraphicEl(e.dataIndex,l),l.dataType="node"}),!this._data&&t.get("animation")&&o.setClipPath(Sf(o.getBoundingRect(),t,function(){o.removeClipPath()})),this._data=t.getData()},dispose:function(){}});ds(function(t,e,i){t.eachSeriesByType("sankey",function(t){var i=t.get("nodeWidth"),n=t.get("nodeGap"),o=If(t,e);t.layoutInfo=o;var a=o.width,r=o.height,s=t.getGraph(),l=s.nodes,u=s.edges;Tf(l),Df(l,u,i,n,a,r,0!==g(l,function(t){return 0===t.getLayout().value}).length?0:t.get("layoutIterations"))})}),fs(function(t,e){t.eachSeriesByType("sankey",function(t){var e=t.getGraph().nodes;e.sort(function(t,e){return t.getLayout().value-e.getLayout().value});var i=e[0].getLayout().value,n=e[e.length-1].getLayout().value;d(e,function(e){var o=new fA({type:"color",mappingMethod:"linear",dataExtent:[i,n],visual:t.get("color")}).mapValueToVisual(e.getLayout().value);e.setVisual("color",o);var a=e.getModel().get("itemStyle.color");null!=a&&e.setVisual("color",a)})})});var NC=In.extend({type:"whiskerInBox",shape:{},buildPath:function(t,e){for(var i in e)if(e.hasOwnProperty(i)&&0===i.indexOf("ends")){var n=e[i];t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1])}}}),OC=jf.prototype;OC._createContent=function(t,e,i){var n=t.getItemLayout(e),o="horizontal"===n.chartLayout?1:0,a=0;this.add(new Zb({shape:{points:i?Xf(n.bodyEnds,o,n):n.bodyEnds},style:{strokeNoScale:!0},z2:100})),this.bodyIndex=a++;var r=f(n.whiskerEnds,function(t){return i?Xf(t,o,n):t});this.add(new NC({shape:Yf(r),style:{strokeNoScale:!0},z2:100})),this.whiskerIndex=a++},OC.updateData=function(t,e,i){var n=this._seriesModel=t.hostModel,o=t.getItemLayout(e),a=sS[i?"initProps":"updateProps"];a(this.childAt(this.bodyIndex),{shape:{points:o.bodyEnds}},n,e),a(this.childAt(this.whiskerIndex),{shape:Yf(o.whiskerEnds)},n,e),this.styleUpdater.call(null,this,t,e)},u(jf,L_);var EC=qf.prototype;EC.updateData=function(t){var e=this.group,i=this._data,n=this.styleUpdater;this._data||e.removeAll(),t.diff(i).add(function(i){if(t.hasValue(i)){var o=new jf(t,i,n,!0);t.setItemGraphicEl(i,o),e.add(o)}}).update(function(o,a){var r=i.getItemGraphicEl(a);t.hasValue(o)?(r?r.updateData(t,o):r=new jf(t,o,n),e.add(r),t.setItemGraphicEl(o,r)):e.remove(r)}).remove(function(t){var n=i.getItemGraphicEl(t);n&&e.remove(n)}).execute(),this._data=t},EC.incrementalPrepareUpdate=function(t,e,i){this.group.removeAll(),this._data=null},EC.incrementalUpdate=function(t,e,i,n){for(var o=e.getData(),a=t.start;a0?jC:XC),borderColor:e.get(n>0?ZC:UC)})})})}),ds(function(t){t.eachSeriesByType("candlestick",function(t){var e,i=t.coordinateSystem,n=t.getData(),o=ep(t,n),a=t.get("layout"),r="horizontal"===a?0:1,s=1-r,l=["x","y"],u=[];if(d(n.dimensions,function(t){var i=n.getDimensionInfo(t).coordDim;i===l[s]?u.push(t):i===l[r]&&(e=t)}),!(null==e||u.length<4)){var h=0;n.each([e].concat(u),function(){function t(t){var e=[];return e[r]=d,e[s]=t,isNaN(d)||isNaN(t)?[NaN,NaN]:i.dataToPoint(e)}function e(t,e){var i=t.slice(),n=t.slice();i[r]=Wn(i[r]+o/2,1,!1),n[r]=Wn(n[r]-o/2,1,!0),e?M.push(i,n):M.push(n,i)}function l(t){return t[r]=Wn(t[r],1),t}var c=arguments,d=c[0],f=c[u.length+1],p=c[1],g=c[2],m=c[3],v=c[4],y=Math.min(p,g),x=Math.max(p,g),_=t(y),w=t(x),b=t(m),S=[[l(t(v)),l(w)],[l(b),l(_)]],M=[];e(w,0),e(_,1);var I;I=p>g?-1:p0?n.getItemModel(h-1).get()[2]<=g?1:-1:1,n.setItemLayout(f,{chartLayout:a,sign:I,initBaseline:p>g?w[s]:_[s],bodyEnds:M,whiskerEnds:S,brushRect:function(){var e=t(Math.min(p,g,m,v)),i=t(Math.max(p,g,m,v));return e[r]-=o/2,i[r]-=o/2,{x:e[0],y:e[1],width:s?o:i[0]-e[0],height:s?i[1]-e[1]:o}}()}),++h})}})}),mM.extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(t,e){return Hs(this.getSource(),this)},brushSelector:"point",defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10}});var qC=op.prototype;qC.stopEffectAnimation=function(){this.childAt(1).removeAll()},qC.startEffectAnimation=function(t){for(var e=t.symbolType,i=t.color,n=this.childAt(1),o=0;o<3;o++){var a=ml(e,-1,-1,2,2,i);a.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scale:[.5,.5]});var r=-o/3*t.period+t.effectOffset;a.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(r).start(),a.animateStyle(!0).when(t.period,{opacity:0}).delay(r).start(),n.add(a)}np(n,t)},qC.updateEffectAnimation=function(t){for(var e=this._effectCfg,i=this.childAt(1),n=["symbolType","period","rippleScale"],o=0;o "))},preventIncremental:function(){return!!this.get("effect.show")},getProgressive:function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},getProgressiveThreshold:function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}}),tL=rp.prototype;tL.createLine=function(t,e,i){return new qc(t,e,i)},tL._updateEffectSymbol=function(t,e){var i=t.getItemModel(e).getModel("effect"),n=i.get("symbolSize"),o=i.get("symbol");y(n)||(n=[n,n]);var a=i.get("color")||t.getItemVisual(e,"color"),r=this.childAt(1);this._symbolType!==o&&(this.remove(r),(r=ml(o,-.5,-.5,1,1,a)).z2=100,r.culling=!0,this.add(r)),r&&(r.setStyle("shadowColor",a),r.setStyle(i.getItemStyle(["color"])),r.attr("scale",n),r.setColor(a),r.attr("scale",n),this._symbolType=o,this._updateEffectAnimation(t,i,e))},tL._updateEffectAnimation=function(t,e,i){var n=this.childAt(1);if(n){var o=this,a=t.getItemLayout(i),r=1e3*e.get("period"),s=e.get("loop"),l=e.get("constantSpeed"),u=D(e.get("delay"),function(e){return e/t.count()*r/3}),h="function"==typeof u;if(n.ignore=!0,this.updateAnimationPoints(n,a),l>0&&(r=this.getLineLength(n)/l*1e3),r!==this._period||s!==this._loop){n.stopAnimation();var c=u;h&&(c=u(i)),n.__t>0&&(c=-r*n.__t),n.__t=0;var d=n.animate("",s).when(r,{__t:1}).delay(c).during(function(){o.updateSymbolPosition(n)});s||d.done(function(){o.remove(n)}),d.start()}this._period=r,this._loop=s}},tL.getLineLength=function(t){return jx(t.__p1,t.__cp1)+jx(t.__cp1,t.__p2)},tL.updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},tL.updateData=function(t,e,i){this.childAt(0).updateData(t,e,i),this._updateEffectSymbol(t,e)},tL.updateSymbolPosition=function(t){var e=t.__p1,i=t.__p2,n=t.__cp1,o=t.__t,a=t.position,r=Qi,s=tn;a[0]=r(e[0],n[0],i[0],o),a[1]=r(e[1],n[1],i[1],o);var l=s(e[0],n[0],i[0],o),u=s(e[1],n[1],i[1],o);t.rotation=-Math.atan2(u,l)-Math.PI/2,t.ignore=!1},tL.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var i=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,i,e)},u(rp,L_);var eL=sp.prototype;eL._createPolyline=function(t,e,i){var n=t.getItemLayout(e),o=new Ub({shape:{points:n}});this.add(o),this._updateCommonStl(t,e,i)},eL.updateData=function(t,e,i){var n=t.hostModel;fo(this.childAt(0),{shape:{points:t.getItemLayout(e)}},n,e),this._updateCommonStl(t,e,i)},eL._updateCommonStl=function(t,e,i){var n=this.childAt(0),o=t.getItemModel(e),a=t.getItemVisual(e,"color"),s=i&&i.lineStyle,l=i&&i.hoverLineStyle;i&&!t.hasItemOption||(s=o.getModel("lineStyle").getLineStyle(),l=o.getModel("emphasis.lineStyle").getLineStyle()),n.useStyle(r({strokeNoScale:!0,fill:"none",stroke:a},s)),n.hoverStyle=l,eo(this)},eL.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},u(sp,L_);var iL=lp.prototype;iL.createLine=function(t,e,i){return new sp(t,e,i)},iL.updateAnimationPoints=function(t,e){this._points=e;for(var i=[0],n=0,o=1;o=0&&!(n[r]<=e);r--);r=Math.min(r,o-2)}else{for(var r=a;re);r++);r=Math.min(r-1,o-2)}J(t.position,i[r],i[r+1],(e-n[r])/(n[r+1]-n[r]));var s=i[r+1][0]-i[r][0],l=i[r+1][1]-i[r][1];t.rotation=-Math.atan2(l,s)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=e,t.ignore=!1}},u(lp,rp);var nL=En({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(t,e){var i=e.segs,n=e.curveness;if(e.polyline)for(r=0;r0){t.moveTo(i[r++],i[r++]);for(var a=1;a0){var c=(s+u)/2-(l-h)*n,d=(l+h)/2-(u-s)*n;t.quadraticCurveTo(c,d,u,h)}else t.lineTo(u,h)}},findDataIndex:function(t,e){var i=this.shape,n=i.segs,o=i.curveness;if(i.polyline)for(var a=0,r=0;r0)for(var l=n[r++],u=n[r++],h=1;h0){if(fn(l,u,(l+c)/2-(u-d)*o,(u+d)/2-(c-l)*o,c,d))return a}else if(cn(l,u,c,d))return a;a++}return-1}}),oL=up.prototype;oL.isPersistent=function(){return!this._incremental},oL.updateData=function(t){this.group.removeAll();var e=new nL({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},oL.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new On({silent:!0})),this.group.add(this._incremental)):this._incremental=null},oL.incrementalUpdate=function(t,e){var i=new nL;i.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(i,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(i,!0):(i.rectHover=!0,i.cursor="default",i.__startIndex=t.start,this.group.add(i))},oL.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},oL._setCommon=function(t,e,i){var n=e.hostModel;t.setShape({polyline:n.get("polyline"),curveness:n.get("lineStyle.curveness")}),t.useStyle(n.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var o=e.getVisual("color");o&&t.setStyle("stroke",o),t.setStyle("fill"),i||(t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var i=t.findDataIndex(e.offsetX,e.offsetY);i>0&&(t.dataIndex=i+t.__startIndex)}))},oL._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var aL={seriesType:"lines",plan:xM(),reset:function(t){var e=t.coordinateSystem,i=t.get("polyline"),n=t.pipelineContext.large;return{progress:function(o,a){var r=[];if(n){var s,l=o.end-o.start;if(i){for(var u=0,h=o.start;h0){var I=a(v)?s:l;v>0&&(v=v*S+b),x[_++]=I[M],x[_++]=I[M+1],x[_++]=I[M+2],x[_++]=I[M+3]*v*256}else _+=4}return c.putImageData(y,0,0),h},_getBrush:function(){var t=this._brushCanvas||(this._brushCanvas=Vx()),e=this.pointSize+this.blurSize,i=2*e;t.width=i,t.height=i;var n=t.getContext("2d");return n.clearRect(0,0,i,i),n.shadowOffsetX=i,n.shadowBlur=this.blurSize,n.shadowColor="#000",n.beginPath(),n.arc(-e,e,this.pointSize,0,2*Math.PI,!0),n.closePath(),n.fill(),t},_getGradient:function(t,e,i){for(var n=this._gradientPixels,o=n[i]||(n[i]=new Uint8ClampedArray(1024)),a=[0,0,0,0],r=0,s=0;s<256;s++)e[i](s/255,!0,a),o[r++]=a[0],o[r++]=a[1],o[r++]=a[2],o[r++]=a[3];return o}},xs({type:"heatmap",render:function(t,e,i){var n;e.eachComponent("visualMap",function(e){e.eachTargetSeries(function(i){i===t&&(n=e)})}),this.group.removeAll(),this._incrementalDisplayable=null;var o=t.coordinateSystem;"cartesian2d"===o.type||"calendar"===o.type?this._renderOnCartesianAndCalendar(t,i,0,t.getData().count()):pp(o)&&this._renderOnGeo(o,t,n,i)},incrementalPrepareRender:function(t,e,i){this.group.removeAll()},incrementalRender:function(t,e,i,n){e.coordinateSystem&&this._renderOnCartesianAndCalendar(e,n,t.start,t.end,!0)},_renderOnCartesianAndCalendar:function(t,e,i,n,o){var r,s,l=t.coordinateSystem;if("cartesian2d"===l.type){var u=l.getAxis("x"),h=l.getAxis("y");r=u.getBandWidth(),s=h.getBandWidth()}for(var c=this.group,d=t.getData(),f=t.getModel("itemStyle").getItemStyle(["color"]),p=t.getModel("emphasis.itemStyle").getItemStyle(),g=t.getModel("label"),m=t.getModel("emphasis.label"),v=l.type,y="cartesian2d"===v?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],x=i;x=e.y&&t[1]<=e.y+e.height:i.contain(i.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},pointToData:function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},dataToPoint:function(t){var e=this.getAxis(),i=this.getRect(),n=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),n[o]=e.toGlobalCoord(e.dataToCoord(+t)),n[1-o]=0===o?i.y+i.height/2:i.x+i.width/2,n}},Ca.register("single",{create:function(t,e){var i=[];return t.eachComponent("singleAxis",function(n,o){var a=new Bp(n,t,e);a.name="single_"+o,a.resize(n,e),n.coordinateSystem=a,i.push(a)}),t.eachSeries(function(e){if("singleAxis"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"singleAxis",index:e.get("singleAxisIndex"),id:e.get("singleAxisId")})[0];e.coordinateSystem=i&&i.coordinateSystem}}),i},dimensions:Bp.prototype.dimensions});var fL=qD.getInterval,pL=qD.ifIgnoreOnTick,gL=["axisLine","axisTickLabel","axisName"],mL=iT.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=Vp(t),r=new qD(t,a);d(gL,r.add,r),o.add(r.getGroup()),t.get("splitLine.show")&&this._splitLine(t,a.labelInterval),mL.superCall(this,"render",t,e,i,n)},_splitLine:function(t,e){var i=t.axis;if(!i.scale.isBlank()){var n=t.getModel("splitLine"),o=n.getModel("lineStyle"),a=o.get("width"),r=o.get("color"),s=fL(n,e);r=r instanceof Array?r:[r];for(var l=t.coordinateSystem.getRect(),u=i.isHorizontal(),h=[],c=0,d=i.getTicksCoords(),f=[],p=[],g=t.get("axisLabel.showMinLabel"),m=t.get("axisLabel.showMaxLabel"),v=0;v=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){ig(e.getZr(),"axisPointer"),IL.superApply(this._model,"remove",arguments)},dispose:function(t,e){ig("axisPointer",e),IL.superApply(this._model,"dispose",arguments)}}),DL=Ni(),TL=i,AL=m;(ng.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,i,n){var o=e.get("value"),a=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=i,n||this._lastValue!==o||this._lastStatus!==a){this._lastValue=o,this._lastStatus=a;var r=this._group,s=this._handle;if(!a||"hide"===a)return r&&r.hide(),void(s&&s.hide());r&&r.show(),s&&s.show();var l={};this.makeElOption(l,o,t,e,i);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(i),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(r){var c=v(og,e,h);this.updatePointerEl(r,l,c,e),this.updateLabelEl(r,l,c,e)}else r=this._group=new L_,this.createPointerEl(r,l,t,e),this.createLabelEl(r,l,t,e),i.getZr().add(r);lg(r,e,!0),this._renderHandle(o)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var i=e.get("animation"),n=t.axis,o="category"===n.type,a=e.get("snap");if(!a&&!o)return!1;if("auto"===i||null==i){var r=this.animationThreshold;if(o&&n.getBandWidth()>r)return!0;if(a){var s=Iu(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1}return!0===i},makeElOption:function(t,e,i,n,o){},createPointerEl:function(t,e,i,n){var o=e.pointer;if(o){var a=DL(t).pointerEl=new sS[o.type](TL(e.pointer));t.add(a)}},createLabelEl:function(t,e,i,n){if(e.label){var o=DL(t).labelEl=new jb(TL(e.label));t.add(o),rg(o,n)}},updatePointerEl:function(t,e,i){var n=DL(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=DL(t).labelEl;o&&(o.setStyle(e.label.style),i(o,{shape:e.label.shape,position:e.label.position}),rg(o,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,i=this._api.getZr(),n=this._handle,o=e.getModel("handle"),a=e.get("status");if(!o.get("show")||!a||"hide"===a)return n&&i.remove(n),void(this._handle=null);var r;this._handle||(r=!0,n=this._handle=_o(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){rw(t.event)},onmousedown:AL(this._onHandleDragMove,this,0,0),drift:AL(this._onHandleDragMove,this),ondragend:AL(this._onHandleDragEnd,this)}),i.add(n)),lg(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(o.getItemStyle(null,s));var l=o.get("size");y(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),_r(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,r)}},_moveHandleToValue:function(t,e){og(this._axisPointerModel,!e&&this._moveAnimation,this._handle,sg(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(sg(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(sg(n)),DL(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){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]}}}).constructor=ng,Gi(ng);var CL=ng.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.grid,s=n.get("type"),l=yg(r,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var h=ug(n),c=LL[s](a,u,l,h);c.style=h,t.graphicKey=c.type,t.pointer=c}pg(e,t,ku(r.model,i),i,n,o)},getHandleTransform:function(t,e,i){var n=ku(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:fg(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.grid,r=o.getGlobalExtent(!0),s=yg(a,o).getOtherAxis(o).getGlobalExtent(),l="x"===o.dim?0:1,u=t.position;u[l]+=e[l],u[l]=Math.min(r[1],u[l]),u[l]=Math.max(r[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];var d=[{verticalAlign:"middle"},{align:"center"}];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:d[l]}}}),LL={line:function(t,e,i,n){var o=gg([e,i[0]],[e,i[1]],xg(t));return Gn({shape:o,style:n}),{type:"Line",shape:o}},shadow:function(t,e,i,n){var o=t.getBandWidth(),a=i[1]-i[0];return{type:"Rect",shape:mg([e-o/2,i[0]],[o,a],xg(t))}}};iT.registerAxisPointerClass("CartesianAxisPointer",CL),ls(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!y(e)&&(t.axisPointer.link=[e])}}),us(qM.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=yu(t,e)}),hs({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,i){var n=t.currTrigger,o=[t.x,t.y],a=t,r=t.dispatchAction||m(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){qp(o)&&(o=xL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=qp(o),u=a.axesInfo,h=s.axesInfo,c="leave"===n||qp(o),d={},f={},p={list:[],map:{}},g={showPointer:wL(Wp,f),showTooltip:wL(Hp,p)};_L(s.coordSysMap,function(t,e){var i=l||t.containPoint(o);_L(s.coordSysAxesInfo[e],function(t,e){var n=t.axis,a=Xp(u,t);if(!c&&i&&(!u||a)){var r=a&&a.value;null!=r||l||(r=n.pointToData(o)),null!=r&&Gp(t,r,g,!1,d)}})});var v={};return _L(h,function(t,e){var i=t.linkGroup;i&&!f[e]&&_L(i.axesInfo,function(e,n){var o=f[n];if(e!==t&&o){var a=o.value;i.mapper&&(a=t.axis.scale.parse(i.mapper(a,Yp(e),Yp(t)))),v[t.key]=a}})}),_L(v,function(t,e){Gp(h[e],t,g,!0,d)}),Zp(f,h,d),Up(p,o,t,r),jp(h,0,i),d}});var kL=["x","y"],PL=["width","height"],NL=ng.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.coordinateSystem,s=wg(r,1-_g(a)),l=r.dataToPoint(e)[0],u=n.get("type");if(u&&"none"!==u){var h=ug(n),c=OL[u](a,l,s,h);c.style=h,t.graphicKey=c.type,t.pointer=c}pg(e,t,Vp(i),i,n,o)},getHandleTransform:function(t,e,i){var n=Vp(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:fg(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.coordinateSystem,r=_g(o),s=wg(a,r),l=t.position;l[r]+=e[r],l[r]=Math.min(s[1],l[r]),l[r]=Math.max(s[0],l[r]);var u=wg(a,1-r),h=(u[1]+u[0])/2,c=[h,h];return c[r]=l[r],{position:l,rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}}}),OL={line:function(t,e,i,n){var o=gg([e,i[0]],[e,i[1]],_g(t));return Gn({shape:o,style:n}),{type:"Line",shape:o}},shadow:function(t,e,i,n){var o=t.getBandWidth(),a=i[1]-i[0];return{type:"Rect",shape:mg([e-o/2,i[0]],[o,a],_g(t))}}};iT.registerAxisPointerClass("SingleAxisPointer",NL),vs({type:"single"});var EL=mM.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){EL.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(t){for(var e=t.length,i=f(Mf().key(function(t){return t[2]}).entries(t),function(t){return{name:t.key,dataList:t.values}}),n=i.length,o=-1,a=-1,r=0;ro&&(o=s,a=r)}for(var l=0;lMath.PI/2?"right":"left"):x&&"center"!==x?"left"===x?(f=u.r0+y,p>Math.PI/2&&(x="right")):"right"===x&&(f=u.r-y,p>Math.PI/2&&(x="left")):(f=(u.r+u.r0)/2,x="center"),d.attr("style",{text:l,textAlign:x,textVerticalAlign:n("verticalAlign")||"middle",opacity:n("opacity")});var _=f*g+u.cx,w=f*m+u.cy;d.attr("position",[_,w]);var b=n("rotate"),S=0;"radial"===b?(S=-p)<-Math.PI/2&&(S+=Math.PI):"tangential"===b?(S=Math.PI/2-p)>Math.PI/2?S-=Math.PI:S<-Math.PI/2&&(S+=Math.PI):"number"==typeof b&&(S=b*Math.PI/180),d.attr("rotation",S)},VL._initEvents=function(t,e,i,n){t.off("mouseover").off("mouseout").off("emphasis").off("normal");var o=this,a=function(){o.onEmphasis(n)},r=function(){o.onNormal()};i.isAnimationEnabled()&&t.on("mouseover",a).on("mouseout",r).on("emphasis",a).on("normal",r).on("downplay",function(){o.onDownplay()}).on("highlight",function(){o.onHighlight()})},u(Dg,L_);pr.extend({type:"sunburst",init:function(){},render:function(t,e,i,n){function o(i,n){if(c||!i||i.getValue()||(i=null),i!==l&&n!==l)if(n&&n.piece)i?(n.piece.updateData(!1,i,"normal",t,e),s.setItemGraphicEl(i.dataIndex,n.piece)):a(n);else if(i){var o=new Dg(i,t,e);h.add(o),s.setItemGraphicEl(i.dataIndex,o)}}function a(t){t&&t.piece&&(h.remove(t.piece),t.piece=null)}var r=this;this.seriesModel=t,this.api=i,this.ecModel=e;var s=t.getData(),l=s.tree.root,u=t.getViewRoot(),h=this.group,c=t.get("renderLabelForZeroData"),d=[];u.eachNode(function(t){d.push(t)});var f=this._oldChildren||[];if(function(t,e){function i(t){return t.getId()}function n(i,n){o(null==i?null:t[i],null==n?null:e[n])}0===t.length&&0===e.length||new bs(e,t,i,i).add(n).update(n).remove(v(n,null)).execute()}(d,f),function(i,n){if(n.depth>0){i.piece?i.piece.updateData(!1,i,"normal",t,e):(i.piece=new Dg(i,t,e),h.add(i.piece)),n.piece._onclickEvent&&n.piece.off("click",n.piece._onclickEvent);var o=function(t){r._rootToNode(n.parentNode)};n.piece._onclickEvent=o,i.piece.on("click",o)}else i.piece&&(h.remove(i.piece),i.piece=null)}(l,u),n&&n.highlight&&n.highlight.piece){var p=t.getShallow("highlightPolicy");n.highlight.piece.onEmphasis(p)}else if(n&&n.unhighlight){var g=l.piece;!g&&l.children.length&&(g=l.children[0].piece),g&&g.onNormal()}this._initEvents(),this._oldChildren=d},dispose:function(){},_initEvents:function(){var t=this,e=function(e){var i=!1;t.seriesModel.getViewRoot().eachNode(function(n){if(!i&&n.piece&&n.piece.childAt(0)===e.target){var o=n.getModel().get("nodeClick");if("rootToNode"===o)t._rootToNode(n);else if("link"===o){var a=n.getModel(),r=a.get("link");if(r){var s=a.get("target",!0)||"_blank";window.open(r,s)}}i=!0}})};this.group._onclickEvent&&this.group.off("click",this.group._onclickEvent),this.group.on("click",e),this.group._onclickEvent=e},_rootToNode:function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:"sunburstRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},containPoint:function(t,e){var i=e.getData().getItemLayout(0);if(i){var n=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(n*n+o*o);return a<=i.r&&a>=i.r0}}});var GL="sunburstRootToNode";hs({type:GL,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=Jh(t,[GL],e);if(n){var o=e.getViewRoot();o&&(t.direction=tc(o,n.node)?"rollUp":"drillDown"),e.resetViewRoot(n.node)}})});var FL="sunburstHighlight";hs({type:FL,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=Jh(t,[FL],e);n&&(t.highlight=n.node)})});hs({type:"sunburstUnhighlight",update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){t.unhighlight=!0})});var WL=Math.PI/180;fs(v(_T,"sunburst")),ds(v(function(t,e,i,n){e.eachSeriesByType(t,function(t){var e=t.get("center"),n=t.get("radius");y(n)||(n=[0,n]),y(e)||(e=[e,e]);var o=i.getWidth(),a=i.getHeight(),r=Math.min(o,a),s=To(e[0],o),l=To(e[1],a),u=To(n[0],r/2),h=To(n[1],r/2),c=-t.get("startAngle")*WL,f=t.get("minAngle")*WL,p=t.getData().tree.root,g=t.getViewRoot(),m=g.depth,v=t.get("sort");null!=v&&Lg(g,v);var x=0;d(g.children,function(t){!isNaN(t.getValue())&&x++});var _=g.getValue(),w=Math.PI/(_||x)*2,b=g.depth>0,S=g.height-(b?-1:1),M=(h-u)/(S||1),I=t.get("clockwise"),D=t.get("stillShowZeroSum"),T=I?1:-1,A=function(t,e){if(t){var i=e;if(t!==p){var n=t.getValue(),o=0===_&&D?w:n*w;on[1]&&n.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:n[1],r0:n[0]},api:{coord:m(function(n){var o=e.dataToRadius(n[0]),a=i.dataToAngle(n[1]),r=t.coordToPoint([o,a]);return r.push(o,a*Math.PI/180),r}),size:m(Eg,t)}}},calendar: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)}}}}};ys({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0},getInitialData:function(t,e){return Hs(this.getSource(),this)}}),xs({type:"custom",_data:null,render:function(t,e,i){var n=this._data,o=t.getData(),a=this.group,r=Vg(t,o,e,i);this.group.removeAll(),o.diff(n).add(function(e){Fg(null,e,r(e),t,a,o)}).update(function(e,i){Fg(n.getItemGraphicEl(i),e,r(e),t,a,o)}).remove(function(t){var e=n.getItemGraphicEl(t);e&&a.remove(e)}).execute(),this._data=o},incrementalPrepareRender:function(t,e,i){this.group.removeAll(),this._data=null},incrementalRender:function(t,e,i,n){for(var o=e.getData(),a=Vg(e,o,i,n),r=t.start;r=0;l--)null==o[l]?o.splice(l,1):delete o[l].$action},_flatten:function(t,e,i){d(t,function(t){if(t){i&&(t.parentOption=i),e.push(t);var n=t.children;"group"===t.type&&n&&this._flatten(n,e,t),delete t.children}},this)},useElOptionsToUpdate:function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t}});vs({type:"graphic",init:function(t,e){this._elMap=z(),this._lastGraphicModel},render:function(t,e,i){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t,i),this._relocate(t,i)},_updateElements:function(t,e){var i=t.useElOptionsToUpdate();if(i){var n=this._elMap,o=this.group;d(i,function(t){var e=t.$action,i=t.id,a=n.get(i),r=t.parentId,s=null!=r?n.get(r):o;if("text"===t.type){var l=t.style;t.hv&&t.hv[1]&&(l.textVerticalAlign=l.textBaseline=null),!l.hasOwnProperty("textFill")&&l.fill&&(l.textFill=l.fill),!l.hasOwnProperty("textStroke")&&l.stroke&&(l.textStroke=l.stroke)}var u=qg(t);e&&"merge"!==e?"replace"===e?(Yg(a,n),Xg(i,s,u,n)):"remove"===e&&Yg(a,n):a?a.attr(u):Xg(i,s,u,n);var h=n.get(i);h&&(h.__ecGraphicWidth=t.width,h.__ecGraphicHeight=t.height)})}},_relocate:function(t,e){for(var i=t.option.elements,n=this.group,o=this._elMap,a=i.length-1;a>=0;a--){var r=i[a],s=o.get(r.id);if(s){var l=s.parent;ta(s,r,l===n?{width:e.getWidth(),height:e.getHeight()}:{width:l.__ecGraphicWidth||0,height:l.__ecGraphicHeight||0},null,{hv:r.hv,boundingMode:r.bounding})}}},_clear:function(){var t=this._elMap;t.each(function(e){Yg(e,t)}),this._elMap=z()},dispose:function(){this._clear()}});var $L=ms({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,i){this.mergeDefaultAndTheme(t,i),t.selected=t.selected||{}},mergeOption:function(t){$L.superCall(this,"mergeOption",t)},optionUpdated:function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,i=0;i=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}}});hs("legendToggleSelect","legendselectchanged",v(tm,"toggleSelected")),hs("legendSelect","legendselected",v(tm,"select")),hs("legendUnSelect","legendunselected",v(tm,"unSelect"));var KL=v,JL=d,QL=L_,tk=vs({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new QL),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 o=t.getBoxLayoutParams(),a={width:i.getWidth(),height:i.getHeight()},s=t.get("padding"),l=Qo(o,a,s),u=this.layoutInner(t,n,l),h=Qo(r({width:u.width,height:u.height},o),a,s);this.group.attr("position",[h.x-u.x,h.y-u.y]),this.group.add(this._backgroundEl=im(u,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,i,n){var o=this.getContentGroup(),a=z(),r=e.get("selectedMode");JL(e.getData(),function(s,l){var u=s.get("name");if(this.newlineDisabled||""!==u&&"\n"!==u){var h=i.getSeriesByName(u)[0];if(!a.get(u))if(h){var c=h.getData(),d=c.getVisual("color");"function"==typeof d&&(d=d(h.getDataParams(0)));var f=c.getVisual("legendSymbol")||"roundRect",p=c.getVisual("symbol");this._createItem(u,l,s,e,f,p,t,d,r).on("click",KL(nm,u,n)).on("mouseover",KL(om,h,null,n)).on("mouseout",KL(am,h,null,n)),a.set(u,!0)}else i.eachRawSeries(function(i){if(!a.get(u)&&i.legendDataProvider){var o=i.legendDataProvider(),h=o.indexOfName(u);if(h<0)return;var c=o.getItemVisual(h,"color");this._createItem(u,l,s,e,"roundRect",null,t,c,r).on("click",KL(nm,u,n)).on("mouseover",KL(om,i,u,n)).on("mouseout",KL(am,i,u,n)),a.set(u,!0)}},this)}else o.add(new QL({newline:!0}))},this)},_createItem:function(t,e,i,n,o,r,s,l,u){var h=n.get("itemWidth"),c=n.get("itemHeight"),d=n.get("inactiveColor"),f=n.isSelected(t),p=new QL,g=i.getModel("textStyle"),m=i.get("icon"),v=i.getModel("tooltip"),y=v.parentModel;if(o=m||o,p.add(ml(o,0,0,h,c,f?l:d,!0)),!m&&r&&(r!==o||"none"==r)){var x=.8*c;"none"===r&&(r="circle"),p.add(ml(r,(h-x)/2,(c-x)/2,x,x,f?l:d))}var _="left"===s?h+5:-5,w=s,b=n.get("formatter"),S=t;"string"==typeof b&&b?S=b.replace("{name}",null!=t?t:""):"function"==typeof b&&(S=b(t)),p.add(new zb({style:no({},g,{text:S,x:_,y:c/2,textFill:f?g.getTextColor():d,textAlign:w,textVerticalAlign:"middle"})}));var M=new jb({shape:p.getBoundingRect(),invisible:!0,tooltip:v.get("show")?a({content:t,formatter:y.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:n.componentIndex,name:t,$vars:["name"]}},v.option):null});return p.add(M),p.eachChild(function(t){t.silent=!0}),M.silent=!u,this.getContentGroup().add(p),eo(p),p.__legendDataIndex=e,p},layoutInner:function(t,e,i){var n=this.getContentGroup();AS(t.get("orient"),n,t.get("itemGap"),i.width,i.height);var o=n.getBoundingRect();return n.attr("position",[-o.x,-o.y]),this.group.getBoundingRect()}});us(function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;ii[s],f=[-h.x,-h.y];f[r]=n.position[r];var p=[0,0],g=[-c.x,-c.y],m=T(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?g[r]+=i[s]-c[s]:p[r]+=c[s]+m),g[1-r]+=h[l]/2-c[l]/2,n.attr("position",f),o.attr("position",p),a.attr("position",g);var v=this.group.getBoundingRect();if((v={x:0,y:0})[s]=d?i[s]:h[s],v[l]=Math.max(h[l],c[l]),v[u]=Math.min(0,c[u]+g[1-r]),o.__rectSize=i[s],d){var y={x:0,y:0};y[s]=Math.max(i[s]-c[s]-m,0),y[l]=v[l],o.setClipPath(new jb({shape:y})),o.__rectSize=y[s]}else a.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&fo(n,{position:x.contentPosition},!!d&&t),this._updatePageInfoView(t,x),v},_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;d(["pagePrev","pageNext"],function(n){var o=null!=e[n+"DataIndex"],a=i.childOfName(n);a&&(a.setStyle("fill",o?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=o?"pointer":"default")});var n=i.childOfName("pageText"),o=t.get("pageFormatter"),a=e.pageIndex,r=null!=a?a+1:0,s=e.pageCount;n&&o&&n.setStyle("text",_(o)?o.replace("{current}",r).replace("{total}",s):o({current:r,total:s}))},_getPageInfo:function(t){function e(t){var e=t.getBoundingRect().clone();return e[f]+=t.position[h],e}var i,n,o,a,r=t.get("scrollDataIndex",!0),s=this.getContentGroup(),l=s.getBoundingRect(),u=this._containerGroup.__rectSize,h=t.getOrient().index,c=nk[h],d=nk[1-h],f=ok[h],p=s.position.slice();this._showController?s.eachChild(function(t){t.__legendDataIndex===r&&(a=t)}):a=s.childAt(0);var g=u?Math.ceil(l[c]/u):0;if(a){var m=a.getBoundingRect(),v=a.position[h]+m[f];p[h]=-v-l[f],i=Math.floor(g*(v+m[f]+u/2)/l[c]),i=l[c]&&g?Math.max(0,Math.min(g-1,i)):-1;var y={x:0,y:0};y[c]=u,y[d]=l[d],y[f]=-p[h]-l[f];var x,_=s.children();if(s.eachChild(function(t,i){var n=e(t);n.intersect(y)&&(null==x&&(x=i),o=t.__legendDataIndex),i===_.length-1&&n[f]+n[c]<=y[f]+y[c]&&(o=null)}),null!=x){var w=e(_[x]);if(y[f]=w[f]+w[c]-y[c],x<=0&&w[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:o}}});hs("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})}),ms({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",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 rk=d,sk=Ho,lk=["","-webkit-","-moz-","-o-"];hm.prototype={constructor:hm,_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="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+um(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"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 o=this.el.style;o.left=t+"px",o.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(m(this.hide,this),t)):this.hide())},isShow:function(){return this._show}};var uk=m,hk=d,ck=To,dk=new jb({shape:{x:-1,y:-1,width:2,height:2}});vs({type:"tooltip",init:function(t,e){if(!Ax.node){var i=new hm(e.getDom(),e);this._tooltipContent=i}},render:function(t,e,i){if(!Ax.node&&!Ax.wxa){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.get("triggerOn");$p("itemTooltip",this._api,uk(function(e,i,n){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(i,n):"leave"===e&&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&&!Ax.node){var o=dm(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var r=dk;r.position=[n.x,n.y],r.update(),r.tooltip=n.tooltip,this._tryShow({offsetX:n.x,offsetY:n.y,target:r},o)}else if(a)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},o);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=xL(n,e),l=s.point[0],u=s.point[1];null!=l&&null!=u&&this._tryShow({offsetX:l,offsetY:u,position:n.position,target:s.el,event:{}},o)}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:{}},o))}},manuallyHideTip:function(t,e,i,n){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(dm(n,i))},_manuallyAxisShowTip:function(t,e,i,n){var o=n.seriesIndex,a=n.dataIndex,r=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=o&&null!=a&&null!=r){var s=e.getSeriesByIndex(o);if(s&&"axis"===(t=cm([s.getData().getItemModel(a),s,(s.coordinateSystem||{}).model,t])).get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:a,position:n.position}),!0}},_tryShow:function(t,e){var i=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var n=t.dataByCoordSys;n&&n.length?this._showAxisTooltip(n,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=m(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,n=this._tooltipModel,o=[e.offsetX,e.offsetY],a=[],r=[],s=cm([e.tooltipOption,n]);hk(t,function(t){hk(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),n=t.value,o=[];if(e&&null!=n){var s=dg(n,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);d(t.seriesDataIndices,function(a){var l=i.getSeriesByIndex(a.seriesIndex),u=a.dataIndexInside,h=l&&l.getDataParams(u);h.axisDim=t.axisDim,h.axisIndex=t.axisIndex,h.axisType=t.axisType,h.axisId=t.axisId,h.axisValue=pl(e.axis,n),h.axisValueLabel=s,h&&(r.push(h),o.push(l.formatTooltip(u,!0)))});var l=s;a.push((l?Zo(l)+"
    ":"")+o.join("
    "))}})},this),a.reverse(),a=a.join("

    ");var l=e.position;this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(s,l,o[0],o[1],this._tooltipContent,r):this._showTooltipContent(s,a,r,Math.random(),o[0],o[1],l)})},_showSeriesItemTooltip:function(t,e,i){var n=this._ecModel,o=e.seriesIndex,a=n.getSeriesByIndex(o),r=e.dataModel||a,s=e.dataIndex,l=e.dataType,u=r.getData(),h=cm([u.getItemModel(s),r,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),c=h.get("trigger");if(null==c||"item"===c){var d=r.getDataParams(s,l),f=r.formatTooltip(s,!1,l),p="item_"+r.name+"_"+s;this._showOrMove(h,function(){this._showTooltipContent(h,f,d,p,t.offsetX,t.offsetY,t.position,t.target)}),i({type:"showTip",dataIndexInside:s,dataIndex:u.getRawIndex(s),seriesIndex:o,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var o=n;n={content:o,formatter:o}}var a=new wo(n,this._tooltipModel,this._ecModel),r=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,r,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,o,a,r,s){if(this._ticket="",t.get("showContent")&&t.get("show")){var l=this._tooltipContent,u=t.get("formatter");r=r||t.get("position");var h=e;if(u&&"string"==typeof u)h=Uo(u,i,!0);else if("function"==typeof u){var c=uk(function(e,n){e===this._ticket&&(l.setContent(n),this._updatePosition(t,r,o,a,l,i,s))},this);this._ticket=n,h=u(i,n,c)}l.setContent(h),l.show(t),this._updatePosition(t,r,o,a,l,i,s)}},_updatePosition:function(t,e,i,n,o,a,r){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=o.getSize(),h=t.get("align"),c=t.get("verticalAlign"),d=r&&r.getBoundingRect().clone();if(r&&d.applyTransform(r.transform),"function"==typeof e&&(e=e([i,n],a,o.el,d,{viewSize:[s,l],contentSize:u.slice()})),y(e))i=ck(e[0],s),n=ck(e[1],l);else if(w(e)){e.width=u[0],e.height=u[1];var f=Qo(e,{width:s,height:l});i=f.x,n=f.y,h=null,c=null}else"string"==typeof e&&r?(i=(p=mm(e,d,u))[0],n=p[1]):(i=(p=fm(i,n,o.el,s,l,h?null:20,c?null:20))[0],n=p[1]);if(h&&(i-=vm(h)?u[0]/2:"right"===h?u[0]:0),c&&(n-=vm(c)?u[1]/2:"bottom"===c?u[1]:0),t.get("confine")){var p=pm(i,n,o.el,s,l);i=p[0],n=p[1]}o.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return i&&hk(e,function(e,n){var o=e.dataByAxis||{},a=(t[n]||{}).dataByAxis||[];(i&=o.length===a.length)&&hk(o,function(t,e){var n=a[e]||{},o=t.seriesDataIndices||[],r=n.seriesDataIndices||[];(i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&o.length===r.length)&&hk(o,function(t,e){var n=r[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){Ax.node||(this._tooltipContent.hide(),ig("itemTooltip",e))}}),hs({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),hs({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){}),wm.prototype={constructor:wm,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToRadius:dD.prototype.dataToCoord,radiusToData:dD.prototype.coordToData},u(wm,dD),bm.prototype={constructor:bm,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToAngle:dD.prototype.dataToCoord,angleToData:dD.prototype.coordToData},u(bm,dD);var fk=function(t){this.name=t||"",this.cx=0,this.cy=0,this._radiusAxis=new wm,this._angleAxis=new bm,this._radiusAxis.polar=this._angleAxis.polar=this};fk.prototype={type:"polar",axisPointerEnabled:!0,constructor:fk,dimensions:["radius","angle"],model:null,containPoint:function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},containData:function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},getAxis:function(t){return this["_"+t+"Axis"]},getAxes:function(){return[this._radiusAxis,this._angleAxis]},getAxesByScale:function(t){var e=[],i=this._angleAxis,n=this._radiusAxis;return i.scale.type===t&&e.push(i),n.scale.type===t&&e.push(n),e},getAngleAxis:function(){return this._angleAxis},getRadiusAxis:function(){return this._radiusAxis},getOtherAxis:function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},getTooltipAxes:function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},dataToPoint:function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},pointToData:function(t,e){var i=this.pointToCoord(t);return[this._radiusAxis.radiusToData(i[0],e),this._angleAxis.angleToData(i[1],e)]},pointToCoord:function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=this.getAngleAxis(),o=n.getExtent(),a=Math.min(o[0],o[1]),r=Math.max(o[0],o[1]);n.inverse?a=r-360:r=a+360;var s=Math.sqrt(e*e+i*i);e/=s,i/=s;for(var l=Math.atan2(-i,e)/Math.PI*180,u=lr;)l+=360*u;return[s,l]},coordToPoint:function(t){var e=t[0],i=t[1]/180*Math.PI;return[Math.cos(i)*e+this.cx,-Math.sin(i)*e+this.cy]}};var pk=kS.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});n(pk.prototype,JI);var gk={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};GD("angle",pk,Sm,gk.angle),GD("radius",pk,Sm,gk.radius),ms({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}});var mk={dimensions:fk.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,n){var o=new fk(n);o.update=Im;var a=o.getRadiusAxis(),r=o.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");Dm(a,s),Dm(r,l),Mm(o,t,e),i.push(o),t.coordinateSystem=o,o.model=t}),t.eachSeries(function(e){if("polar"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"polar",index:e.get("polarIndex"),id:e.get("polarId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}};Ca.register("polar",mk);var vk=["axisLine","axisLabel","axisTick","splitLine","splitArea"];iT.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(t,e){if(this.group.removeAll(),t.get("show")){var i=t.axis,n=i.polar,o=n.getRadiusAxis().getExtent(),a=i.getTicksCoords();"category"!==i.type&&a.pop(),d(vk,function(e){!t.get(e+".show")||i.scale.isBlank()&&"axisLine"!==e||this["_"+e](t,n,a,o)},this)}},_axisLine:function(t,e,i,n){var o=t.getModel("axisLine.lineStyle"),a=new Rb({shape:{cx:e.cx,cy:e.cy,r:n[Am(e)]},style:o.getLineStyle(),z2:1,silent:!0});a.style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n){var o=t.getModel("axisTick"),a=(o.get("inside")?-1:1)*o.get("length"),s=n[Am(e)],l=f(i,function(t){return new Xb({shape:Tm(e,[s,s+a],t)})});this.group.add(rS(l,{style:r(o.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_axisLabel:function(t,e,i,n){for(var o=t.axis,a=t.getCategories(),r=t.getModel("axisLabel"),s=t.getFormattedLabels(),l=r.get("margin"),u=o.getLabelsCoords(),h=0;hf?"left":"right",m=Math.abs(d[1]-p)/c<.3?"middle":d[1]>p?"top":"bottom";a&&a[h]&&a[h].textStyle&&(r=new wo(a[h].textStyle,r,r.ecModel));var v=new zb({silent:!0});this.group.add(v),no(v.style,r,{x:d[0],y:d[1],textFill:r.getTextColor()||t.get("axisLine.lineStyle.color"),text:s[h],textAlign:g,textVerticalAlign:m})}},_splitLine:function(t,e,i,n){var o=t.getModel("splitLine").getModel("lineStyle"),a=o.get("color"),s=0;a=a instanceof Array?a:[a];for(var l=[],u=0;u=0?"p":"n",T=w;_&&(a[l][I]||(a[l][I]={p:w,n:w}),T=a[l][I][D]);var A,C,L,k;if("radius"===d.dim){var P=d.dataToRadius(M)-w,N=s.dataToAngle(I);Math.abs(P)=0},Lk.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=jm(e,t),o=0;o=0||Dk(n,t.getAxis("y").model)>=0)&&a.push(t)}),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:a[0],coordSyses:a,getPanelRect:Nk.grid,xAxisDeclared:r[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){Ik(t.geoModels,function(t){var i=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:i,coordSyses:[i],getPanelRect:Nk.geo})})}},Pk=[function(t,e){var i=t.xAxisModel,n=t.yAxisModel,o=t.gridModel;return!o&&i&&(o=i.axis.grid.model),!o&&n&&(o=n.axis.grid.model),o&&o===e.gridModel},function(t,e){var i=t.geoModel;return i&&i===e.geoModel}],Nk={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(go(t)),e}},Ok={lineX:Tk(Xm,0),lineY:Tk(Xm,1),rect:function(t,e,i){var n=e[Ak[t]]([i[0][0],i[1][0]]),o=e[Ak[t]]([i[0][1],i[1][1]]),a=[Um([n[0],o[0]]),Um([n[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,i){var n=[[1/0,-1/0],[1/0,-1/0]];return{values:f(i,function(i){var o=e[Ak[t]](i);return n[0][0]=Math.min(n[0][0],o[0]),n[1][0]=Math.min(n[1][0],o[1]),n[0][1]=Math.max(n[0][1],o[0]),n[1][1]=Math.max(n[1][1],o[1]),o}),xyMinMax:n}}},Ek={lineX:Tk(Ym,0),lineY:Tk(Ym,1),rect:function(t,e,i){return[[t[0][0]-i[0]*e[0][0],t[0][1]-i[0]*e[0][1]],[t[1][0]-i[1]*e[1][0],t[1][1]-i[1]*e[1][1]]]},polygon:function(t,e,i){return f(t,function(t,n){return[t[0]-i[0]*e[n][0],t[1]-i[1]*e[n][1]]})}},zk=["inBrush","outOfBrush"],Rk="__ecBrushSelect",Bk="__ecInBrushSelectEvent",Vk=qM.VISUAL.BRUSH;ds(Vk,function(t,e,i){t.eachComponent({mainType:"brush"},function(e){i&&"takeGlobalCursor"===i.type&&e.setBrushOption("brush"===i.key?i.brushOption:{brushType:!1}),(e.brushTargetManager=new Zm(e.option,t)).setInputRanges(e.areas,t)})}),fs(Vk,function(t,e,n){var o,a,s=[];t.eachComponent({mainType:"brush"},function(e,n){function l(t){return"all"===m||v[t]}function u(t){return!!t.length}function h(t,e){var i=t.coordinateSystem;w|=i.hasAxisBrushed(),l(e)&&i.eachActiveState(t.getData(),function(t,e){"active"===t&&(x[e]=1)})}function c(i,n,o){var a=tv(i);if(a&&!ev(e,n)&&(d(b,function(n){a[n.brushType]&&e.brushTargetManager.controlSeries(n,i,t)&&o.push(n),w|=u(o)}),l(n)&&u(o))){var r=i.getData();r.each(function(t){Qm(a,o,r,t)&&(x[t]=1)})}}var p={brushId:e.id,brushIndex:n,brushName:e.name,areas:i(e.areas),selected:[]};s.push(p);var g=e.option,m=g.brushLink,v=[],x=[],_=[],w=0;n||(o=g.throttleType,a=g.throttleDelay);var b=f(e.areas,function(t){return iv(r({boundingRect:Gk[t.brushType](t)},t))}),S=Om(e.option,zk,function(t){t.mappingMethod="fixed"});y(m)&&d(m,function(t){v[t]=1}),t.eachSeries(function(t,e){var i=_[e]=[];"parallel"===t.subType?h(t,e):c(t,e,i)}),t.eachSeries(function(t,e){var i={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};p.selected.push(i);var n=tv(t),o=_[e],a=t.getData(),r=l(e)?function(t){return x[t]?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(t){return Qm(n,o,a,t)?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"};(l(e)?w:u(o))&&zm(zk,S,a,r)})}),Km(e,o,a,s,n)});var Gk={lineX:B,lineY:B,rect:function(t){return nv(t.range)},polygon:function(t){for(var e,i=t.range,n=0,o=i.length;ne[0][1]&&(e[0][1]=a[0]),a[1]e[1][1]&&(e[1][1]=a[1])}return e&&nv(e)}},Fk=["#ddd"];ms({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(t,e){var i=this.option;!e&&Em(i,t,["inBrush","outOfBrush"]),i.inBrush=i.inBrush||{},i.outOfBrush=i.outOfBrush||{color:Fk}},setAreas:function(t){t&&(this.areas=f(t,function(t){return ov(this.option,t)},this))},setBrushOption:function(t){this.brushOption=ov(this.option,t),this.brushType=this.brushOption.brushType}});vs({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new Dd(e.getZr())).on("brush",m(this._onBrush,this)).mount()},render:function(t){return this.model=t,av.apply(this,arguments)},updateTransform:av,updateView:av,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var n=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),(!e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:n,areas:i(t),$from:n})}}),hs({type:"brush",event:"brush"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(e){e.setAreas(t.areas)})}),hs({type:"brushSelect",event:"brushSelected",update:"none"},function(){});var Wk={},Hk=AM.toolbox.brush;lv.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:i(Hk.title)};var Zk=lv.prototype;Zk.render=Zk.updateView=function(t,e,i){var n,o,a;e.eachComponent({mainType:"brush"},function(t){n=t.brushType,o=t.brushOption.brushMode||"single",a|=t.areas.length}),this._brushType=n,this._brushMode=o,d(t.get("type",!0),function(e){t.setIconStatus(e,("keep"===e?"multiple"===o:"clear"===e?a:e===n)?"emphasis":"normal")})},Zk.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return d(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},Zk.onclick=function(t,e,i){var n=this._brushType,o=this._brushMode;"clear"===i?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===i?n:n!==i&&i,brushMode:"keep"===i?"multiple"===o?"single":"multiple":o}})},rv("brush",lv),ls(function(t,e){var i=t&&t.brush;if(y(i)||(i=i?[i]:[]),i.length){var n=[];d(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))});var o=t&&t.toolbox;y(o)&&(o=o[0]),o||(o={feature:{}},t.toolbox=[o]);var a=o.feature||(o.feature={}),r=a.brush||(a.brush={}),s=r.type||(r.type=[]);s.push.apply(s,n),Pm(s),e&&!s.length&&s.push.apply(s,bk)}});uv.prototype={constructor:uv,type:"calendar",dimensions:["time","value"],getDimensionsInfo:function(){return[{name:"time",type:"time"},"value"]},getRangeInfo:function(){return this._rangeInfo},getModel:function(){return this._model},getRect:function(){return this._rect},getCellWidth:function(){return this._sw},getCellHeight:function(){return this._sh},getOrient:function(){return this._orient},getFirstDayOfWeek:function(){return this._firstDayOfWeek},getDateInfo:function(t){var e=(t=zo(t)).getFullYear(),i=t.getMonth()+1;i=i<10?"0"+i:i;var n=t.getDate();n=n<10?"0"+n:n;var o=t.getDay();return o=Math.abs((o+7-this.getFirstDayOfWeek())%7),{y:e,m:i,d:n,day:o,time:t.getTime(),formatedDate:e+"-"+i+"-"+n,date:t}},getNextNDay:function(t,e){return 0===(e=e||0)?this.getDateInfo(t):((t=new Date(this.getDateInfo(t).time)).setDate(t.getDate()+e),this.getDateInfo(t))},update:function(t,e){function i(t,e){return null!=t[e]&&"auto"!==t[e]}this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,o=["width","height"],a=this._model.get("cellSize").slice(),r=this._model.getBoxLayoutParams(),s="horizontal"===this._orient?[n,7]:[7,n];d([0,1],function(t){i(a,t)&&(r[o[t]]=a[t]*s[t])});var l={width:e.getWidth(),height:e.getHeight()},u=this._rect=Qo(r,l);d([0,1],function(t){i(a,t)||(a[t]=u[o[t]]/s[t])}),this._sw=a[0],this._sh=a[1]},dataToPoint:function(t,e){y(t)&&(t=t[0]),null==e&&(e=!0);var i=this.getDateInfo(t),n=this._rangeInfo,o=i.formatedDate;if(e&&!(i.time>=n.start.time&&i.time<=n.end.time))return[NaN,NaN];var a=i.day,r=this._getRangeInfo([n.start.time,o]).nthWeek;return"vertical"===this._orient?[this._rect.x+a*this._sw+this._sw/2,this._rect.y+r*this._sh+this._sh/2]:[this._rect.x+r*this._sw+this._sw/2,this._rect.y+a*this._sh+this._sh/2]},pointToData:function(t){var e=this.pointToDate(t);return e&&e.time},dataToRect:function(t,e){var i=this.dataToPoint(t,e);return{contentShape:{x:i[0]-(this._sw-this._lineWidth)/2,y:i[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:i,tl:[i[0]-this._sw/2,i[1]-this._sh/2],tr:[i[0]+this._sw/2,i[1]-this._sh/2],br:[i[0]+this._sw/2,i[1]+this._sh/2],bl:[i[0]-this._sw/2,i[1]+this._sh/2]}},pointToDate:function(t){var e=Math.floor((t[0]-this._rect.x)/this._sw)+1,i=Math.floor((t[1]-this._rect.y)/this._sh)+1,n=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(i,e-1,n):this._getDateByWeeksAndDay(e,i-1,n)},convertToPixel:v(hv,"dataToPoint"),convertFromPixel:v(hv,"pointToData"),_initRangeOption:function(){var t=this._model.get("range"),e=t;if(y(e)&&1===e.length&&(e=e[0]),/^\d{4}$/.test(e)&&(t=[e+"-01-01",e+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(e)){var i=this.getDateInfo(e),n=i.date;n.setMonth(n.getMonth()+1);var o=this.getNextNDay(n,-1);t=[i.formatedDate,o.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(e)&&(t=[e,e]);var a=this._getRangeInfo(t);return a.start.time>a.end.time&&t.reverse(),t},_getRangeInfo:function(t){var e;(t=[this.getDateInfo(t[0]),this.getDateInfo(t[1])])[0].time>t[1].time&&(e=!0,t.reverse());var i=Math.floor(t[1].time/864e5)-Math.floor(t[0].time/864e5)+1,n=new Date(t[0].time),o=n.getDate(),a=t[1].date.getDate();if(n.setDate(o+i-1),n.getDate()!==a)for(var r=n.getTime()-t[1].time>0?1:-1;n.getDate()!==a&&(n.getTime()-t[1].time)*r>0;)i-=r,n.setDate(o+i-1);var s=Math.floor((i+t[0].day+6)/7),l=e?1-s:s-1;return e&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:i,weeks:s,nthWeek:l,fweek:t[0].day,lweek:t[1].day}},_getDateByWeeksAndDay:function(t,e,i){var n=this._getRangeInfo(i);if(t>n.weeks||0===t&&en.lweek)return!1;var o=7*(t-1)-n.fweek+e,a=new Date(n.start.time);return a.setDate(n.start.d+o),this.getDateInfo(a)}},uv.dimensions=uv.prototype.dimensions,uv.getDimensionsInfo=uv.prototype.getDimensionsInfo,uv.create=function(t,e){var i=[];return t.eachComponent("calendar",function(n){var o=new uv(n,t,e);i.push(o),n.coordinateSystem=o}),t.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])}),i},Ca.register("calendar",uv);var Uk=kS.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(t,e,i,n){var o=na(t);Uk.superApply(this,"init",arguments),cv(t,o)},mergeOption:function(t,e){Uk.superApply(this,"mergeOption",arguments),cv(this.option,t)}}),jk={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},Xk={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};vs({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t,e,i){var n=this.group;n.removeAll();var o=t.coordinateSystem,a=o.getRangeInfo(),r=o.getOrient();this._renderDayRect(t,a,n),this._renderLines(t,a,r,n),this._renderYearText(t,a,r,n),this._renderMonthText(t,r,n),this._renderWeekText(t,a,r,n)},_renderDayRect:function(t,e,i){for(var n=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),a=n.getCellWidth(),r=n.getCellHeight(),s=e.start.time;s<=e.end.time;s=n.getNextNDay(s,1).time){var l=n.dataToRect([s],!1).tl,u=new jb({shape:{x:l[0],y:l[1],width:a,height:r},cursor:"default",style:o});i.add(u)}},_renderLines:function(t,e,i,n){function o(e){a._firstDayOfMonth.push(r.getDateInfo(e)),a._firstDayPoints.push(r.dataToRect([e],!1).tl);var o=a._getLinePointsOfOneWeek(t,e,i);a._tlpoints.push(o[0]),a._blpoints.push(o[o.length-1]),l&&a._drawSplitline(o,s,n)}var a=this,r=t.coordinateSystem,s=t.getModel("splitLine.lineStyle").getLineStyle(),l=t.get("splitLine.show"),u=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var h=e.start,c=0;h.time<=e.end.time;c++){o(h.formatedDate),0===c&&(h=r.getDateInfo(e.start.y+"-"+e.start.m));var d=h.date;d.setMonth(d.getMonth()+1),h=r.getDateInfo(d)}o(r.getNextNDay(e.end.time,1).formatedDate),l&&this._drawSplitline(a._getEdgesPoints(a._tlpoints,u,i),s,n),l&&this._drawSplitline(a._getEdgesPoints(a._blpoints,u,i),s,n)},_getEdgesPoints:function(t,e,i){var n=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===i?0:1;return n[0][o]=n[0][o]-e/2,n[1][o]=n[1][o]+e/2,n},_drawSplitline:function(t,e,i){var n=new Ub({z2:20,shape:{points:t},style:e});i.add(n)},_getLinePointsOfOneWeek:function(t,e,i){var n=t.coordinateSystem;e=n.getDateInfo(e);for(var o=[],a=0;a<7;a++){var r=n.getNextNDay(e.time,a),s=n.dataToRect([r.time],!1);o[2*r.day]=s.tl,o[2*r.day+1]=s["horizontal"===i?"bl":"tr"]}return o},_formatterLabel:function(t,e){return"string"==typeof t&&t?jo(t,e):"function"==typeof t?t(e):e.nameMap},_yearTextPositionControl:function(t,e,i,n,o){e=e.slice();var a=["center","bottom"];"bottom"===n?(e[1]+=o,a=["center","top"]):"left"===n?e[0]-=o:"right"===n?(e[0]+=o,a=["center","top"]):e[1]-=o;var r=0;return"left"!==n&&"right"!==n||(r=Math.PI/2),{rotation:r,position:e,style:{textAlign:a[0],textVerticalAlign:a[1]}}},_renderYearText:function(t,e,i,n){var o=t.getModel("yearLabel");if(o.get("show")){var a=o.get("margin"),r=o.get("position");r||(r="horizontal"!==i?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===i?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},d=e.start.y;+e.end.y>+e.start.y&&(d=d+"-"+e.end.y);var f=o.get("formatter"),p={start:e.start.y,end:e.end.y,nameMap:d},g=this._formatterLabel(f,p),m=new zb({z2:30});no(m.style,o,{text:g}),m.attr(this._yearTextPositionControl(m,c[r],i,r,a)),n.add(m)}},_monthTextPositionControl:function(t,e,i,n,o){var a="left",r="top",s=t[0],l=t[1];return"horizontal"===i?(l+=o,e&&(a="center"),"start"===n&&(r="bottom")):(s+=o,e&&(r="middle"),"start"===n&&(a="right")),{x:s,y:l,textAlign:a,textVerticalAlign:r}},_renderMonthText:function(t,e,i){var n=t.getModel("monthLabel");if(n.get("show")){var o=n.get("nameMap"),r=n.get("margin"),s=n.get("position"),l=n.get("align"),u=[this._tlpoints,this._blpoints];_(o)&&(o=jk[o.toUpperCase()]||[]);var h="start"===s?0:1,c="horizontal"===e?0:1;r="start"===s?-r:r;for(var d="center"===l,f=0;f=r[0]&&t<=r[1]}if(t===this._dataZoomModel){var n=this._dimName,o=this.getTargetSeriesModels(),a=t.get("filterMode"),r=this._valueWindow;"none"!==a&&$k(o,function(t){var e=t.getData(),o=e.mapDimension(n,!0);"weakFilter"===a?e.filterSelf(function(t){for(var i,n,a,s=0;sr[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(i=!0),c&&(n=!0)}return a&&i&&n}):$k(o,function(n){if("empty"===a)t.setData(e.map(n,function(t){return i(t)?t:NaN}));else{var o={};o[n]=r,e.selectRange(o)}}),$k(o,function(t){e.setApproximateExtent(r,t)})})}}};var Qk=d,tP=qk,eP=ms({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=yv(t);this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=yv(t);n(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;Ax.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),xv(this,t),Qk([["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,o){var a=this.dependentModels[e.axis][i],r=a.__dzAxisProxy||(a.__dzAxisProxy=new Jk(e.name,i,this,o));t[e.name+"_"+i]=r},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();tP(function(e){var i=e.axisIndex;t[i]=Si(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;tP(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 o="vertical"===e?"y":"x";n[o+"Axis"].length?(i[o+"AxisIndex"]=[0],t=!1):Qk(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&tP(function(e){if(t){var n=[],o=this.dependentModels[e.axis];if(o.length&&!n.length)for(var a=0,r=o.length;a0?100:20}},getFirstTargetAxisModel:function(){var t;return tP(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;tP(function(n){Qk(this.get(n.axisIndex),function(o){t.call(e,n,o,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;Qk([["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&&xv(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},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()}}),iP=vM.extend({type:"dataZoom",render:function(t,e,i,n){this.dataZoomModel=t,this.ecModel=e,this.api=i},getTargetCoordInfo:function(){function t(t,e,i,n){for(var o,a=0;a0&&e%g)p+=f;else{var i=null==t||isNaN(t)||""===t,n=i?0:oP(t,a,u,!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 m=this.dataZoomModel;this._displayables.barGroup.add(new Zb({shape:{points:c},style:r({fill:m.get("dataBackgroundColor")},m.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new Ub({shape:{points:d},style:m.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var i,n=this.ecModel;return t.eachTargetAxis(function(o,a){d(t.getAxisProxy(o.name,a).getTargetSeriesModels(),function(t){if(!(i||!0!==e&&l(hP,t.get("type"))<0)){var r,s=n.getComponent(o.axis,a).axis,u=_v(o.name),h=t.coordinateSystem;null!=u&&h.getOtherAxis&&(r=h.getOtherAxis(s).inverse),u=t.getData().mapDimension(u),i={thisAxis:s,series:t,thisDim:o.name,otherDim:u,otherAxisInverse:r}}},this)},this),i}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,o=this._size,a=this.dataZoomModel;n.add(t.filler=new nP({draggable:!0,cursor:wv(this._orient),drift:rP(this._onDragMove,this,"all"),onmousemove:function(t){rw(t.event)},ondragstart:rP(this._showDataInfo,this,!0),ondragend:rP(this._onDragEnd,this),onmouseover:rP(this._showDataInfo,this,!0),onmouseout:rP(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new nP(Fn({silent:!0,shape:{x:0,y:0,width:o[0],height:o[1]},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}}))),sP([0,1],function(t){var o=_o(a.get("handleIcon"),{cursor:wv(this._orient),draggable:!0,drift:rP(this._onDragMove,this,t),onmousemove:function(t){rw(t.event)},ondragend:rP(this._onDragEnd,this),onmouseover:rP(this._showDataInfo,this,!0),onmouseout:rP(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),r=o.getBoundingRect();this._handleHeight=To(a.get("handleSize"),this._size[1]),this._handleWidth=r.width/r.height*this._handleHeight,o.setStyle(a.getModel("handleStyle").getItemStyle());var s=a.get("handleColor");null!=s&&(o.style.fill=s),n.add(e[t]=o);var l=a.textStyleModel;this.group.add(i[t]=new zb({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=[oP(t[0],[0,100],e,!0),oP(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this.dataZoomModel,n=this._handleEnds,o=this._getViewExtent(),a=i.findRepresentativeAxisProxy().getMinMaxSpan(),r=[0,100];eC(e,n,o,i.get("zoomLock")?"all":t,null!=a.minSpan?oP(a.minSpan,r,o,!0):null,null!=a.maxSpan?oP(a.maxSpan,r,o,!0):null),this._range=aP([oP(n[0],o,r,!0),oP(n[1],o,r,!0)])},_updateView:function(t){var e=this._displayables,i=this._handleEnds,n=aP(i.slice()),o=this._size;sP([0,1],function(t){var n=e.handles[t],a=this._handleHeight;n.attr({scale:[a/2,a/2],position:[i[t],o[1]/2-a/2]})},this),e.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:o[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=go(n.handles[t].parent,this.group),i=vo(0===t?"right":"left",e),s=this._handleWidth/2+uP,l=mo([c[t]+(0===t?-s:s),this._size[1]/2],e);o[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===lP?"middle":i,textAlign:a===lP?i:"center",text:r[t]})}var i=this.dataZoomModel,n=this._displayables,o=n.handleLabels,a=this._orient,r=["",""];if(i.get("showDetail")){var s=i.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,u=this._range,h=t?s.calculateDataWindow({start:u[0],end:u[1]}).valueWindow:s.getDataValueWindow();r=[this._formatLabel(h[0],l),this._formatLabel(h[1],l)]}}var c=aP(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var i=this.dataZoomModel,n=i.get("labelFormatter"),o=i.get("labelPrecision");null!=o&&"auto"!==o||(o=e.getPixelPrecision());var a=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(o,20));return x(n)?n(t,a):_(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=mo([e,i],this._displayables.barGroup.getLocalTransform(),!0);this._updateInterval(t,n[0]);var o=this.dataZoomModel.get("realtime");this._updateView(!o),o&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&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,o=(n[0]+n[1])/2;this._updateInterval("all",i[0]-o),this._updateView(),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(sP(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}});eP.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}});var dP=v,fP="\0_ec_dataZoom_roams",pP=m,gP=iP.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,i,n){gP.superApply(this,"render",arguments),Mv(n,t.id)&&(this._range=t.getPercentRange()),d(this.getTargetCoordInfo(),function(e,n){var o=f(e,function(t){return Iv(t.model)});d(e,function(e){var a=e.model,r=t.option;bv(i,{coordId:Iv(a),allCoordIds:o,containsPoint:function(t,e,i){return a.coordinateSystem.containPoint([e,i])},dataZoomId:t.id,throttleRate:t.get("throttle",!0),panGetRange:pP(this._onPan,this,e,n),zoomGetRange:pP(this._onZoom,this,e,n),zoomLock:r.zoomLock,disabled:r.disabled,roamControllerOpt:{zoomOnMouseWheel:r.zoomOnMouseWheel,moveOnMouseMove:r.moveOnMouseMove,preventDefaultMouseMove:r.preventDefaultMouseMove}})},this)},this)},dispose:function(){Sv(this.api,this.dataZoomModel.id),gP.superApply(this,"dispose",arguments),this._range=null},_onPan:function(t,e,i,n,o,a,r,s,l){var u=this._range.slice(),h=t.axisModels[0];if(h){var c=mP[e]([a,r],[s,l],h,i,t),d=c.signal*(u[1]-u[0])*c.pixel/c.pixelLength;return eC(d,u,[0,100],"all"),this._range=u}},_onZoom:function(t,e,i,n,o,a){var r=this._range.slice(),s=t.axisModels[0];if(s){var l=mP[e](null,[o,a],s,i,t),u=(l.signal>0?l.pixelStart+l.pixelLength-l.pixel:l.pixel-l.pixelStart)/l.pixelLength*(r[1]-r[0])+r[0];n=Math.max(1/n,0),r[0]=(r[0]-u)*n+u,r[1]=(r[1]-u)*n+u;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return eC(0,r,[0,100],0,h.minSpan,h.maxSpan),this._range=r}}}),mP={grid:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem.getRect();return t=t||[0,0],"x"===a.dim?(r.pixel=e[0]-t[0],r.pixelLength=s.width,r.pixelStart=s.x,r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=s.height,r.pixelStart=s.y,r.signal=a.inverse?-1:1),r},polar:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===i.mainType?(r.pixel=e[0]-t[0],r.pixelLength=l[1]-l[0],r.pixelStart=l[0],r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=u[1]-u[0],r.pixelStart=u[0],r.signal=a.inverse?-1:1),r},singleAxis:function(t,e,i,n,o){var a=i.axis,r=o.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===a.orient?(s.pixel=e[0]-t[0],s.pixelLength=r.width,s.pixelStart=r.x,s.signal=a.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=r.height,s.pixelStart=r.y,s.signal=a.inverse?-1:1),s}};us({getTargetSeries:function(t){var e=z();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){d(n.getAxisProxy(t.name,i).getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},isOverallFilter:!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)})}}),hs("dataZoom",function(t,e){var i=fv(m(e.eachComponent,e,"dataZoom"),qk,function(t,e){return t.get(e.axisIndex)}),n=[];e.eachComponent({mainType:"dataZoom",query:t},function(t,e){n.push.apply(n,i(t).nodes)}),d(n,function(e,i){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var vP=d,yP=function(t){var e=t&&t.visualMap;y(e)||(e=e?[e]:[]),vP(e,function(t){if(t){Ov(t,"splitList")&&!Ov(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&y(e)&&vP(e,function(t){w(t)&&(Ov(t,"start")&&!Ov(t,"min")&&(t.min=t.start),Ov(t,"end")&&!Ov(t,"max")&&(t.max=t.end))})}})};kS.registerSubTypeDefaulter("visualMap",function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"});var xP=qM.VISUAL.COMPONENT;fs(xP,{createOnAllSeries:!0,reset:function(t,e){var i=[];return e.eachComponent("visualMap",function(e){e.isTargetSeries(t)&&i.push(Rm(e.stateList,e.targetVisuals,m(e.getValueState,e),e.getDataDimension(t.getData())))}),i}}),fs(xP,{createOnAllSeries:!0,reset:function(t,e){var i=t.getData(),n=[];e.eachComponent("visualMap",function(e){if(e.isTargetSeries(t)){var o=e.getVisualMeta(m(Ev,null,t,e))||{stops:[],outerColors:[]},a=e.getDataDimension(i),r=i.getDimensionInfo(a);null!=r&&(o.dimension=r.index,n.push(o))}}),t.getData().setVisual("visualMeta",n)}});var _P={get:function(t,e,n){var o=i((wP[t]||{})[e]);return n&&y(o)?o[o.length-1]:o}},wP={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},bP=fA.mapVisual,SP=fA.eachVisual,MP=y,IP=d,DP=Co,TP=Do,AP=B,CP=ms({type:"visualMap",dependencies:["series"],stateList:["inRange","outOfRange"],replacableOptionKeys:["inRange","outOfRange","target","controller","color"],dataBound:[-1/0,1/0],layoutMode:{type:"box",ignoreSize:!0},defaultOption:{show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,dimension:null,inRange:null,outOfRange:null,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,color:null,formatter:null,text:null,textStyle:{color:"#333"}},init:function(t,e,i){this._dataExtent,this.targetVisuals={},this.controllerVisuals={},this.textStyleModel,this.itemSize,this.mergeDefaultAndTheme(t,i)},optionUpdated:function(t,e){var i=this.option;Ax.canvasSupported||(i.realtime=!1),!e&&Em(i,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},resetVisual:function(t){var e=this.stateList;t=m(t,this),this.controllerVisuals=Om(this.option.controller,e,t),this.targetVisuals=Om(this.option.target,e,t)},getTargetSeriesIndices:function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries(function(t,i){e.push(i)}):e=Si(t),e},eachTargetSeries:function(t,e){d(this.getTargetSeriesIndices(),function(i){t.call(e,this.ecModel.getSeriesByIndex(i))},this)},isTargetSeries:function(t){var e=!1;return this.eachTargetSeries(function(i){i===t&&(e=!0)}),e},formatValueText:function(t,e,i){function n(t){return t===l[0]?"min":t===l[1]?"max":(+t).toFixed(Math.min(s,20))}var o,a,r=this.option,s=r.precision,l=this.dataBound,u=r.formatter;return i=i||["<",">"],y(t)&&(t=t.slice(),o=!0),a=e?t:o?[n(t[0]),n(t[1])]:n(t),_(u)?u.replace("{value}",o?a[0]:a).replace("{value2}",o?a[1]:a):x(u)?o?u(t[0],t[1]):u(t):o?t[0]===l[0]?i[0]+" "+a[1]:t[1]===l[1]?i[1]+" "+a[0]:a[0]+" - "+a[1]:a},resetExtent:function(){var t=this.option,e=DP([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension,i=t.dimensions;if(null!=e||i.length){if(null!=e)return t.getDimension(e);for(var n=t.dimensions,o=n.length-1;o>=0;o--){var a=n[o];if(!t.getDimensionInfo(a).isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){function t(t){MP(o.color)&&!t.inRange&&(t.inRange={color:o.color.slice().reverse()}),t.inRange=t.inRange||{color:e.get("gradientColor")},IP(this.stateList,function(e){var i=t[e];if(_(i)){var n=_P.get(i,"active",l);n?(t[e]={},t[e][i]=n):delete t[e]}},this)}var e=this.ecModel,o=this.option,a={inRange:o.inRange,outOfRange:o.outOfRange},r=o.target||(o.target={}),s=o.controller||(o.controller={});n(r,a),n(s,a);var l=this.isCategory();t.call(this,r),t.call(this,s),function(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},IP(n,function(t,e){if(fA.isValidType(e)){var i=_P.get(e,"inactive",l);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}.call(this,r,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,o=this.get("inactiveColor");IP(this.stateList,function(a){var r=this.itemSize,s=t[a];s||(s=t[a]={color:l?o:[o]}),null==s.symbol&&(s.symbol=e&&i(e)||(l?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&i(n)||(l?r[0]:[r[0],r[0]])),s.symbol=bP(s.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var u=s.symbolSize;if(null!=u){var h=-1/0;SP(u,function(t){t>h&&(h=t)}),s.symbolSize=bP(u,function(t){return TP(t,[0,h],[0,r[0]],!0)})}},this)}.call(this,s)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this.option.categories},setSelected:AP,getValueState:AP,getVisualMeta:AP}),LP=[20,140],kP=CP.extend({type:"visualMap.continuous",defaultOption:{align:"auto",calculable:!1,range:null,realtime:!0,itemHeight:null,itemWidth:null,hoverLink:!0,hoverLinkDataSize:null,hoverLinkOnHandle:null},optionUpdated:function(t,e){kP.superApply(this,"optionUpdated",arguments),this.resetExtent(),this.resetVisual(function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()}),this._resetRange()},resetItemSize:function(){kP.superApply(this,"resetItemSize",arguments);var t=this.itemSize;"horizontal"===this._orient&&t.reverse(),(null==t[0]||isNaN(t[0]))&&(t[0]=LP[0]),(null==t[1]||isNaN(t[1]))&&(t[1]=LP[1])},_resetRange:function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):y(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){CP.prototype.completeVisualOption.apply(this,arguments),d(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=Co((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){t[0]<=e&&e<=t[1]&&n.push(i)},this),e.push({seriesId:i.id,dataIndex:n})},this),e},getVisualMeta:function(t){function e(e,i){o.push({value:e,color:t(e,i)})}for(var i=zv(0,0,this.getExtent()),n=zv(0,0,this.option.range.slice()),o=[],a=0,r=0,s=n.length,l=i.length;rt[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new L_("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(t,e){if(this._useHandle){var i=this._shapes,n=this.visualMapModel,o=i.handleThumbs,a=i.handleLabels;OP([0,1],function(r){var s=o[r];s.setStyle("fill",e.handlesColor[r]),s.position[1]=t[r];var l=mo(i.handleLabelPoints[r],go(s,this.group));a[r].setStyle({x:l[0],y:l[1],text:n.formatValueText(this._dataInterval[r]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===r?"bottom":"top":"left",i.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var o=this.visualMapModel,a=o.getExtent(),r=o.itemSize,s=[0,r[1]],l=NP(t,a,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",Fv(!!i,n,l,r[1]));var c={convertOpacityToAlpha:!0},d=this.getControllerVisual(t,"color",c);h.setStyle("fill",d);var f=mo(u.indicatorLabelPoint,go(h,this.group)),p=u.indicatorLabel;p.attr("invisible",!1);var g=this._applyTransform("left",u.barGroup),m=this._orient;p.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===m?g:"middle",textAlign:"horizontal"===m?"center":g,x:f[0],y:f[1]})}},_enableHoverLinkToSeries:function(){var t=this;this._shapes.barGroup.on("mousemove",function(e){if(t._hovering=!0,!t._dragging){var i=t.visualMapModel.itemSize,n=t._applyTransform([e.offsetX,e.offsetY],t._shapes.barGroup,!0,!0);n[1]=EP(zP(0,n[1]),i[1]),t._doHoverLinkToSeries(n[1],0<=n[0]&&n[0]<=i[0])}}).on("mouseout",function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var o=[0,n[1]],a=i.getExtent();t=EP(zP(o[0],t),o[1]);var r=Wv(i,a,o),s=[t-r,t+r],l=NP(t,o,a,!0),u=[NP(s[0],o,a,!0),NP(s[1],o,a,!0)];s[0]o[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",r):u[1]===1/0?this._showIndicator(l,u[0],"> ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||Hv(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=ki(h,c);this._dispatchHighDown("downplay",Bv(d[0])),this._dispatchHighDown("highlight",Bv(d[1]))}},_hoverLinkFromSeriesMouseOver:function(t){var e=t.target,i=this.visualMapModel;if(e&&null!=e.dataIndex){var n=this.ecModel.getSeriesByIndex(e.seriesIndex);if(i.isTargetSeries(n)){var o=n.getData(e.dataType),a=o.get(i.getDataDimension(o),e.dataIndex,!0);isNaN(a)||this._showIndicator(a,a)}}},_hideIndicator:function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0)},_clearHoverLinkToSeries:function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",Bv(t)),t.length=0},_clearHoverLinkFromSeries:function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},_applyTransform:function(t,e,i,n){var o=go(e,n?null:this.group);return sS[y(t)?"applyTransform":"transformDirection"](t,o,i)},_dispatchHighDown:function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},dispose:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},remove:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()}});hs({type:"selectDataRange",event:"dataRangeSelected",update:"update"},function(t,e){e.eachComponent({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})}),ls(yP);var GP=CP.extend({type:"visualMap.piecewise",defaultOption:{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieceList:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0,showLabel:null},optionUpdated:function(t,e){GP.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var n=this._mode=this._determineMode();FP[this._mode].call(this),this._resetSelected(t,e);var o=this.option.categories;this.resetVisual(function(t,e){"categories"===n?(t.mappingMethod="category",t.categories=i(o)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=f(this._pieceList,function(t){var t=i(t);return"inRange"!==e&&(t.visual=null),t}))})},completeVisualOption:function(){function t(t,e,i){return t&&t[e]&&(w(t[e])?t[e].hasOwnProperty(i):t[e]===i)}var e=this.option,i={},n=fA.listVisualTypes(),o=this.isCategory();d(e.pieces,function(t){d(n,function(e){t.hasOwnProperty(e)&&(i[e]=1)})}),d(i,function(i,n){var a=0;d(this.stateList,function(i){a|=t(e,i,n)||t(e.target,i,n)},this),!a&&d(this.stateList,function(t){(e[t]||(e[t]={}))[n]=_P.get(n,"inRange"===t?"active":"inactive",o)})},this),CP.prototype.completeVisualOption.apply(this,arguments)},_resetSelected:function(t,e){var i=this.option,n=this._pieceList,o=(e?i:t).selected||{};if(i.selected=o,d(n,function(t,e){var i=this.getSelectedMapKey(t);o.hasOwnProperty(i)||(o[i]=!0)},this),"single"===i.selectedMode){var a=!1;d(n,function(t,e){var i=this.getSelectedMapKey(t);o[i]&&(a?o[i]=!1:a=!0)},this)}},getSelectedMapKey:function(t){return"categories"===this._mode?t.value+"":t.index+""},getPieceList:function(){return this._pieceList},_determineMode:function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},setSelected:function(t){this.option.selected=i(t)},getValueState:function(t){var e=fA.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){fA.findPieceIndex(e,this._pieceList)===t&&n.push(i)},this),e.push({seriesId:i.id,dataIndex:n})},this),e},getRepresentValue:function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var i=t.interval||[];e=i[0]===-1/0&&i[1]===1/0?0:(i[0]+i[1])/2}return e},getVisualMeta:function(t){function e(e,a){var r=o.getRepresentValue({interval:e});a||(a=o.getValueState(r));var s=t(r,a);e[0]===-1/0?n[0]=s:e[1]===1/0?n[1]=s:i.push({value:e[0],color:s},{value:e[1],color:s})}if(!this.isCategory()){var i=[],n=[],o=this,a=this._pieceList.slice();if(a.length){var r=a[0].interval[0];r!==-1/0&&a.unshift({interval:[-1/0,r]}),(r=a[a.length-1].interval[1])!==1/0&&a.push({interval:[r,1/0]})}else a.push({interval:[-1/0,1/0]});var s=-1/0;return d(a,function(t){var i=t.interval;i&&(i[0]>s&&e([s,i[0]],"outOfRange"),e(i.slice()),s=i[1])},this),{stops:i,outerColors:n}}}}),FP={splitNumber:function(){var t=this.option,e=this._pieceList,i=Math.min(t.precision,20),n=this.getExtent(),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var a=(n[1]-n[0])/o;+a.toFixed(i)!==a&&i<5;)i++;t.precision=i,a=+a.toFixed(i);var r=0;t.minOpen&&e.push({index:r++,interval:[-1/0,n[0]],close:[0,0]});for(var s=n[0],l=r+o;r","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};PP.extend({type:"visualMap.piecewise",doRender:function(){var t=this.group;t.removeAll();var e=this.visualMapModel,i=e.get("textGap"),n=e.textStyleModel,o=n.getFont(),a=n.getTextColor(),r=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=D(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,r),d(l.viewPieceList,function(n){var l=n.piece,u=new L_;u.onclick=m(this._onItemClick,this,l),this._enableHoverLink(u,n.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var d=this.visualMapModel.getValueState(c);u.add(new zb({style:{x:"right"===r?-i:s[0]+i,y:s[1]/2,text:l.text,textVerticalAlign:"middle",textAlign:r,textFont:o,textFill:a,opacity:"outOfRange"===d?.5:1}}))}t.add(u)},this),u&&this._renderEndsText(t,u[1],s,h,r),AS(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},_enableHoverLink:function(t,e){function i(t){var i=this.visualMapModel;i.option.hoverLink&&this.api.dispatchAction({type:t,batch:Bv(i.findTargetDataIndices(e))})}t.on("mouseover",m(i,this,"highlight")).on("mouseout",m(i,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return Rv(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,o){if(e){var a=new L_,r=this.visualMapModel.textStyleModel;a.add(new zb({style:{x:n?"right"===o?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?o:"center",text:e,textFont:r.getFont(),textFill:r.getTextColor()}})),t.add(a)}},_getViewData:function(){var t=this.visualMapModel,e=f(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),o=t.get("inverse");return("horizontal"===n?o:!o)?e.reverse():i&&(i=i.slice().reverse()),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add(ml(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,n=e.option,o=i(n.selected),a=e.getSelectedMapKey(t);"single"===n.selectedMode?(o[a]=!0,d(o,function(t,e){o[e]=e===a})):o[a]=!o[a],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}});ls(yP);var WP=Wo,HP=Zo,ZP=ms({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(Ax.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,n){var o=this.constructor,r=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType),s=t[r];i&&i.data?(s?s.mergeOption(i,e,!0):(n&&jv(i),d(i.data,function(t){t instanceof Array?(jv(t[0]),jv(t[1])):jv(t)}),a(s=new o(i,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),t[r]=s):t[r]=null},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=y(i)?f(i,WP).join(", "):WP(i),o=e.getName(t),a=HP(this.name);return(null!=i||o)&&(a+="
    "),o&&(a+=HP(o),null!=i&&(a+=" : ")),null!=i&&(a+=HP(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});h(ZP,fM),ZP.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 UP=l,jP=v,XP={min:jP(qv,"min"),max:jP(qv,"max"),average:jP(qv,"average")},YP=vs({type:"marker",init:function(){this.markerGroupMap=z()},render:function(t,e,i){var n=this.markerGroupMap;n.each(function(t){t.__keep=!1});var o=this.type+"Model";e.eachSeries(function(t){var n=t[o];n&&this.renderSeries(t,n,e,i)},this),n.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});YP.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(iy(e.getData(),t,i),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,r=t.getData(),s=this.markerGroupMap,l=s.get(a)||s.set(a,new Al),u=ny(o,t,e);e.setData(u),iy(e.getData(),t,n),u.each(function(t){var i=u.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),u.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.color")||r.getVisual("color"),symbol:i.getShallow("symbol")})}),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),ls(function(t){t.markPoint=t.markPoint||{}}),ZP.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 qP=function(t,e,o,r){var s=t.getData(),l=r.type;if(!y(r)&&("min"===l||"max"===l||"average"===l||null!=r.xAxis||null!=r.yAxis)){var u,h;if(null!=r.yAxis||null!=r.xAxis)u=null!=r.yAxis?"y":"x",e.getAxis(u),h=D(r.yAxis,r.xAxis);else{var c=Kv(r,s,e,t);u=c.valueDataDim,c.valueAxis,h=ey(s,u,l)}var d="x"===u?0:1,f=1-d,p=i(r),g={};p.type=null,p.coord=[],g.coord=[],p.coord[f]=-1/0,g.coord[f]=1/0;var m=o.get("precision");m>=0&&"number"==typeof h&&(h=+h.toFixed(Math.min(m,20))),p.coord[d]=g.coord[d]=h,r=[p,g,{type:l,valueIndex:r.valueIndex,value:h}]}return r=[$v(t,r[0]),$v(t,r[1]),a({},r[2])],r[2].type=r[2].type||"",n(r[2],r[0]),n(r[2],r[1]),r};YP.extend({type:"markLine",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),o=e.__from,a=e.__to;o.each(function(e){sy(o,e,!0,t,i),sy(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[o.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,i,n){function o(e,i,o){var a=e.getItemModel(i);sy(e,i,o,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||g[o?0:1],symbol:a.get("symbol",!0)||p[o?0:1],color:a.get("itemStyle.color")||s.getVisual("color")})}var a=t.coordinateSystem,r=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(r)||l.set(r,new $c);this.group.add(u.group);var h=ly(a,t,e),c=h.from,d=h.to,f=h.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");y(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),h.from.each(function(t){o(c,t,!0),o(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")})}),u.updateData(f),h.line.eachItemGraphicEl(function(t,i){t.traverse(function(t){t.dataModel=e})}),u.__keep=!0,u.group.silent=e.get("silent")||t.get("silent")}}),ls(function(t){t.markLine=t.markLine||{}}),ZP.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 $P=function(t,e,i,n){var a=$v(t,n[0]),r=$v(t,n[1]),s=D,l=a.coord,u=r.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),u[0]=s(u[0],1/0),u[1]=s(u[1],1/0);var h=o([{},a,r]);return h.coord=[a.coord,r.coord],h.x0=a.x,h.y0=a.y,h.x1=r.x,h.y1=r.y,h},KP=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];YP.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 o=f(KP,function(o){return dy(n,e,o,t,i)});n.setItemLayout(e,o),n.getItemGraphicEl(e).setShape("points",o)})}},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.name,s=t.getData(),l=this.markerGroupMap,u=l.get(a)||l.set(a,{group:new L_});this.group.add(u.group),u.__keep=!0;var h=fy(o,t,e);e.setData(h),h.each(function(e){h.setItemLayout(e,f(KP,function(i){return dy(h,e,i,t,n)})),h.setItemVisual(e,{color:s.getVisual("color")})}),h.diff(u.__data).add(function(t){var e=new Zb({shape:{points:h.getItemLayout(t)}});h.setItemGraphicEl(t,e),u.group.add(e)}).update(function(t,i){var n=u.__data.getItemGraphicEl(i);fo(n,{shape:{points:h.getItemLayout(t)}},e,t),u.group.add(n),h.setItemGraphicEl(t,n)}).remove(function(t){var e=u.__data.getItemGraphicEl(t);u.group.remove(e)}).execute(),h.eachItemGraphicEl(function(t,i){var n=h.getItemModel(i),o=n.getModel("label"),a=n.getModel("emphasis.label"),s=h.getItemVisual(i,"color");t.useStyle(r(n.getModel("itemStyle").getItemStyle(),{fill:zt(s,.4),stroke:s})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),io(t.style,t.hoverStyle,o,a,{labelFetcher:e,labelDataIndex:i,defaultText:h.getName(i)||"",isRectText:!0,autoColor:s}),eo(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),ls(function(t){t.markArea=t.markArea||{}});kS.registerSubTypeDefaulter("timeline",function(){return"slider"}),hs({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"),r({currentIndex:i.option.currentIndex},t)}),hs({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var JP=kS.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(t){JP.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),t<0&&(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||[],n=t.axisType,o=this._names=[];if("category"===n){var a=[];d(e,function(t,e){var n,r=Ii(t);w(t)?(n=i(t)).value=e:n=e,a.push(n),_(r)||null!=r&&!isNaN(r)||(r=""),o.push(r+"")}),e=a}var r={category:"ordinal",time:"time"}[n]||"number";(this._data=new DI([{name:"value",type:r}],this)).initData(e,o)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});h(JP.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:[]}}),fM);var QP=vM.extend({type:"timeline"}),tN=function(t,e,i,n){dD.call(this,t,e,i),this.type=n||"value",this._autoLabelInterval,this.model=null};tN.prototype={constructor:tN,getLabelInterval:function(){var t=this.model,e=t.getModel("label"),i=e.get("interval");return null!=i&&"auto"!=i?i:((i=this._autoLabelInterval)||(i=this._autoLabelInterval=dl(f(this.scale.getTicks(),this.dataToCoord,this),fl(this,e.get("formatter")),e.getFont(),"horizontal"===t.get("orient")?0:90,e.get("rotate"))),i)},isLabelIgnored:function(t){if("category"===this.type){var e=this.getLabelInterval();return"function"==typeof e&&!e(t,this.scale.getLabel(t))||t%(e+1)}}},u(tN,dD);var eN=m,iN=d,nN=Math.PI;QP.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,n){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var o=this._layout(t,i),a=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(o,t);t.formatTooltip=function(t){return Zo(s.scale.getLabel(t))},iN(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](o,a,s,t)},this),this._renderAxisLabel(o,r,s,t),this._position(o,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"),o=vy(t,e);null==i||"auto"===i?i="horizontal"===n?o.y+o.height/2=0||"+"===i?"left":"right"},r={horizontal:i>=0||"+"===i?"top":"bottom",vertical:"middle"},s={horizontal:0,vertical:nN/2},l="vertical"===n?o.height:o.width,u=t.getModel("controlStyle"),h=u.get("show",!0),c=h?u.get("itemSize"):0,d=h?u.get("itemGap"):0,f=c+d,p=t.get("label.rotate")||0;p=p*nN/180;var g,m,v,y,x=u.get("position",!0),_=h&&u.get("showPlayBtn",!0),w=h&&u.get("showPrevBtn",!0),b=h&&u.get("showNextBtn",!0),S=0,M=l;return"left"===x||"bottom"===x?(_&&(g=[0,0],S+=f),w&&(m=[S,0],S+=f),b&&(v=[M-c,0],M-=f)):(_&&(g=[M-c,0],M-=f),w&&(m=[0,0],S+=f),b&&(v=[M-c,0],M-=f)),y=[S,M],t.get("inverse")&&y.reverse(),{viewRect:o,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")||r[n],playPosition:g,prevBtnPosition:m,nextBtnPosition:v,axisExtent:y,controlSize:c,controlGap:d}},_position:function(t,e){function i(t){var e=t.position;t.origin=[c[0][0]-e[0],c[1][0]-e[1]]}function n(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function o(t,e,i,n,o){t[n]+=i[n][o]-e[n][o]}var a=this._mainGroup,r=this._labelGroup,s=t.viewRect;if("vertical"===t.orient){var l=st(),u=s.x,h=s.y+s.height;ct(l,l,[-u,-h]),dt(l,l,-nN/2),ct(l,l,[u,h]),(s=s.clone()).applyTransform(l)}var c=n(s),d=n(a.getBoundingRect()),f=n(r.getBoundingRect()),p=a.position,g=r.position;g[0]=p[0]=c[0][0];var m=t.labelPosOpt;if(isNaN(m))o(p,d,c,1,v="+"===m?0:1),o(g,f,c,1,1-v);else{var v=m>=0?0:1;o(p,d,c,1,v),g[1]=p[1]+m}a.attr("position",p),r.attr("position",g),a.rotation=r.rotation=t.rotation,i(a),i(r)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),o=cl(e,n),a=i.getDataExtent("value");o.setExtent(a[0],a[1]),this._customizeScale(o,i),o.niceTicks();var r=new tN("value",o,t.axisExtent,n);return r.model=e,r},_customizeScale:function(t,e){t.getTicks=function(){return e.mapArray(["value"],function(t){return t})},t.getTicksLabels=function(){return f(this.getTicks(),t.getLabel,t)}},_createGroup:function(t){var e=this["_"+t]=new L_;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var o=i.getExtent();n.get("lineStyle.show")&&e.add(new Xb({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:a({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var o=n.getData(),a=i.scale.getTicks();iN(a,function(t,a){var r=i.dataToCoord(t),s=o.getItemModel(a),l=s.getModel("itemStyle"),u=s.getModel("emphasis.itemStyle"),h={position:[r,0],onclick:eN(this._changeTimeline,this,a)},c=xy(s,l,e,h);eo(c,u.getItemStyle()),s.get("tooltip")?(c.dataIndex=a,c.dataModel=n):c.dataIndex=c.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){var o=n.getModel("label");if(o.get("show")){var a=n.getData(),r=i.scale.getTicks(),s=fl(i,o.get("formatter")),l=i.getLabelInterval();iN(r,function(n,o){if(!i.isLabelIgnored(o,l)){var r=a.getItemModel(o),u=r.getModel("label"),h=r.getModel("emphasis.label"),c=i.dataToCoord(n),d=new zb({position:[c,0],rotation:t.labelRotation-t.rotation,onclick:eN(this._changeTimeline,this,o),silent:!1});no(d.style,u,{text:s[o],textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(d),eo(d,no({},h))}},this)}},_renderControl:function(t,e,i,n){function o(t,i,o,h){if(t){var c=yy(n,i,u,{position:t,origin:[a/2,0],rotation:h?-r:0,rectHover:!0,style:s,onclick:o});e.add(c),eo(c,l)}}var a=t.controlSize,r=t.rotation,s=n.getModel("controlStyle").getItemStyle(),l=n.getModel("emphasis.controlStyle").getItemStyle(),u=[0,-a/2,a,a],h=n.getPlayState(),c=n.get("inverse",!0);o(t.nextBtnPosition,"controlStyle.nextIcon",eN(this._changeTimeline,this,c?"-":"+")),o(t.prevBtnPosition,"controlStyle.prevIcon",eN(this._changeTimeline,this,c?"+":"-")),o(t.playPosition,"controlStyle."+(h?"stopIcon":"playIcon"),eN(this._handlePlayClick,this,!h),!0)},_renderCurrentPointer:function(t,e,i,n){var o=n.getData(),a=n.getCurrentIndex(),r=o.getItemModel(a).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=eN(s._handlePointerDrag,s),t.ondragend=eN(s._handlePointerDragend,s),_y(t,a,i,n,!0)},onUpdate:function(t){_y(t,a,i,n)}};this._currentPointer=xy(r,r,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=Co(this._axis.getExtent().slice());i>n[1]&&(i=n[1]),ii.getHeight()&&(n.textPosition="top",l=!0);var u=l?-5-o.height:s+8;a+o.width/2>i.getWidth()?(n.textPosition=["100%",u],n.textAlign="right"):a-o.width/2<0&&(n.textPosition=[0,u],n.textAlign="left")}})}},updateView:function(t,e,i,n){d(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},remove:function(t,e){d(this._features,function(i){i.remove&&i.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){d(this._features,function(i){i.dispose&&i.dispose(t,e)})}});var aN=AM.toolbox.saveAsImage;by.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:aN.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:aN.lang.slice()},by.prototype.unusable=!Ax.canvasSupported,by.prototype.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",o=document.createElement("a"),a=i.get("type",!0)||"png";o.download=n+"."+a,o.target="_blank";var r=e.getConnectedDataURL({type:a,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if(o.href=r,"function"!=typeof MouseEvent||Ax.browser.ie||Ax.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var s=atob(r.split(",")[1]),l=s.length,u=new Uint8Array(l);l--;)u[l]=s.charCodeAt(l);var h=new Blob([u]);window.navigator.msSaveOrOpenBlob(h,n+"."+a)}else{var c=i.get("lang"),d='';window.open().document.write(d)}else{var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});o.dispatchEvent(f)}},rv("saveAsImage",by);var rN=AM.toolbox.magicType;Sy.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:i(rN.title),option:{},seriesIndex:{}};var sN=Sy.prototype;sN.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return d(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var lN={line:function(t,e,i,o){if("bar"===t)return n({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},o.get("option.line")||{},!0)},bar:function(t,e,i,o){if("line"===t)return n({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},o.get("option.bar")||{},!0)},stack:function(t,e,i,o){if("line"===t||"bar"===t)return n({id:e,stack:"__ec_magicType_stack__"},o.get("option.stack")||{},!0)},tiled:function(t,e,i,o){if("line"===t||"bar"===t)return n({id:e,stack:""},o.get("option.tiled")||{},!0)}},uN=[["line","bar"],["stack","tiled"]];sN.onclick=function(t,e,i){var n=this.model,o=n.get("seriesIndex."+i);if(lN[i]){var a={series:[]};d(uN,function(t){l(t,i)>=0&&d(t,function(t){n.setIconStatus(t,"normal")})}),n.setIconStatus(i,"emphasis"),t.eachComponent({mainType:"series",query:null==o?null:{seriesIndex:o}},function(e){var o=e.subType,s=e.id,l=lN[i](o,s,e,n);l&&(r(l,e.option),a.series.push(l));var u=e.coordinateSystem;if(u&&"cartesian2d"===u.type&&("line"===i||"bar"===i)){var h=u.getAxesByScale("ordinal")[0];if(h){var c=h.dim+"Axis",d=t.queryComponents({mainType:c,index:e.get(name+"Index"),id:e.get(name+"Id")})[0].componentIndex;a[c]=a[c]||[];for(var f=0;f<=d;f++)a[c][d]=a[c][d]||{};a[c][d].boundaryGap="bar"===i}}}),e.dispatchAction({type:"changeMagicType",currentType:i,newOption:a})}},hs({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),rv("magicType",Sy);var hN=AM.toolbox.dataView,cN=new Array(60).join("-"),dN="\t",fN=new RegExp("["+dN+"]+","g");Ny.defaultOption={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:i(hN.title),lang:i(hN.lang),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},Ny.prototype.onclick=function(t,e){function i(){n.removeChild(a),x._dom=null}var n=e.getDom(),o=this.model;this._dom&&n.removeChild(this._dom);var a=document.createElement("div");a.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",a.style.backgroundColor=o.get("backgroundColor")||"#fff";var r=document.createElement("h4"),s=o.get("lang")||[];r.innerHTML=s[0]||o.get("title"),r.style.cssText="margin: 10px 20px;",r.style.color=o.get("textColor");var l=document.createElement("div"),u=document.createElement("textarea");l.style.cssText="display:block;width:100%;overflow:auto;";var h=o.get("optionToContent"),c=o.get("contentToOption"),d=Ty(t);if("function"==typeof h){var f=h(e.getOption());"string"==typeof f?l.innerHTML=f:M(f)&&l.appendChild(f)}else l.appendChild(u),u.readOnly=o.get("readOnly"),u.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",u.style.color=o.get("textColor"),u.style.borderColor=o.get("textareaBorderColor"),u.style.backgroundColor=o.get("textareaColor"),u.value=d.value;var p=d.meta,g=document.createElement("div");g.style.cssText="position:absolute;bottom:0;left:0;right:0;";var m="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",v=document.createElement("div"),y=document.createElement("div");m+=";background-color:"+o.get("buttonColor"),m+=";color:"+o.get("buttonTextColor");var x=this;ui(v,"click",i),ui(y,"click",function(){var t;try{t="function"==typeof c?c(l,e.getOption()):Py(u.value,p)}catch(t){throw i(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),i()}),v.innerHTML=s[1],y.innerHTML=s[2],y.style.cssText=m,v.style.cssText=m,!o.get("readOnly")&&g.appendChild(y),g.appendChild(v),ui(u,"keydown",function(t){if(9===(t.keyCode||t.which)){var e=this.value,i=this.selectionStart,n=this.selectionEnd;this.value=e.substring(0,i)+dN+e.substring(n),this.selectionStart=this.selectionEnd=i+1,rw(t)}}),a.appendChild(r),a.appendChild(l),a.appendChild(g),l.style.height=n.clientHeight-80+"px",n.appendChild(a),this._dom=a},Ny.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},Ny.prototype.dispose=function(t,e){this.remove(t,e)},rv("dataView",Ny),hs({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(t,e){var i=[];d(t.newOption.series,function(t){var n=e.getSeriesByName(t.name)[0];if(n){var o=n.get("data");i.push({name:t.name,data:Oy(t.data,o)})}else i.push(a({type:"scatter"},t))}),e.mergeOption(r({series:i},t.newOption))});var pN=d,gN="\0_ec_hist_store";eP.extend({type:"dataZoom.select"}),iP.extend({type:"dataZoom.select"});var mN=AM.toolbox.dataZoom,vN=d,yN="\0_ec_\0toolbox-dataZoom_";Gy.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:i(mN.title)};var xN=Gy.prototype;xN.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,Hy(t,e,this,n,i),Wy(t,e)},xN.onclick=function(t,e,i){_N[i].call(this)},xN.remove=function(t,e){this._brushController.unmount()},xN.dispose=function(t,e){this._brushController.dispose()};var _N={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(zy(this.ecModel))}};xN._onBrush=function(t,e){function i(t,e,i){var r=e.getAxis(t),s=r.model,l=n(t,s,a),u=l.findRepresentativeAxisProxy(s).getMinMaxSpan();null==u.minValueSpan&&null==u.maxValueSpan||(i=eC(0,i.slice(),r.scale.getExtent(),0,u.minValueSpan,u.maxValueSpan)),l&&(o[l.id]={dataZoomId:l.id,startValue:i[0],endValue:i[1]})}function n(t,e,i){var n;return i.eachComponent({mainType:"dataZoom",subType:"select"},function(i){i.getAxisModel(t,e.componentIndex)&&(n=i)}),n}if(e.isEnd&&t.length){var o={},a=this.ecModel;this._brushController.updateCovers([]),new Zm(Fy(this.model.option),a,{include:["grid"]}).matchOutputRanges(t,a,function(t,e,n){if("cartesian2d"===n.type){var o=t.brushType;"rect"===o?(i("x",n,e[0]),i("y",n,e[1])):i({lineX:"x",lineY:"y"}[o],n,e)}}),Ey(a,o),this._dispatchZoomAction(o)}},xN._dispatchZoomAction=function(t){var e=[];vN(t,function(t,n){e.push(i(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},rv("dataZoom",Gy),ls(function(t){function e(t,e){if(e){var o=t+"Index",a=e[o];null==a||"all"==a||y(a)||(a=!1===a||"none"===a?[]:[a]),i(t,function(e,i){if(null==a||"all"==a||-1!==l(a,i)){var r={type:"select",$fromToolbox:!0,id:yN+t+i};r[o]=i,n.push(r)}})}}function i(e,i){var n=t[e];y(n)||(n=n?[n]:[]),vN(n,i)}if(t){var n=t.dataZoom||(t.dataZoom=[]);y(n)||(t.dataZoom=n=[n]);var o=t.toolbox;if(o&&(y(o)&&(o=o[0]),o&&o.feature)){var a=o.feature.dataZoom;e("xAxis",a),e("yAxis",a)}}});var wN=AM.toolbox.restore;Zy.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:wN.title},Zy.prototype.onclick=function(t,e,i){Ry(t),e.dispatchAction({type:"restore",from:this.uid})},rv("restore",Zy),hs({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var bN,SN="urn:schemas-microsoft-com:vml",MN="undefined"==typeof window?null:window,IN=!1,DN=MN&&MN.document;if(DN&&!Ax.canvasSupported)try{!DN.namespaces.zrvml&&DN.namespaces.add("zrvml",SN),bN=function(t){return DN.createElement("')}}catch(t){bN=function(t){return DN.createElement("<"+t+' xmlns="'+SN+'" class="zrvml">')}}var TN=db.CMD,AN=Math.round,CN=Math.sqrt,LN=Math.abs,kN=Math.cos,PN=Math.sin,NN=Math.max;if(!Ax.canvasSupported){var ON=21600,EN=ON/2,zN=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=ON+","+ON,t.coordorigin="0,0"},RN=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},BN=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},VN=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},GN=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},FN=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},WN=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},HN=function(t,e,i){var n=At(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=BN(n[0],n[1],n[2]),t.opacity=i*n[3])},ZN=function(t){var e=At(t);return[BN(e[0],e[1],e[2]),e[3]]},UN=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof Jb){var o,a=0,r=[0,0],s=0,l=1,u=i.getBoundingRect(),h=u.width,c=u.height;if("linear"===n.type){o="gradient";var d=i.transform,f=[n.x*h,n.y*c],p=[n.x2*h,n.y2*c];d&&(Q(f,f,d),Q(p,p,d));var g=p[0]-f[0],m=p[1]-f[1];(a=180*Math.atan2(g,m)/Math.PI)<0&&(a+=360),a<1e-6&&(a=0)}else{o="gradientradial";var f=[n.x*h,n.y*c],d=i.transform,v=i.scale,y=h,x=c;r=[(f[0]-u.x)/y,(f[1]-u.y)/x],d&&Q(f,f,d),y/=v[0]*ON,x/=v[1]*ON;var _=NN(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;I=2){var A=S[0][0],C=S[1][0],L=S[0][1]*e.opacity,k=S[1][1]*e.opacity;t.type=o,t.method="none",t.focus="100%",t.angle=a,t.color=A,t.color2=C,t.colors=M.join(","),t.opacity=k,t.opacity2=L}"radial"===o&&(t.focusposition=r.join(","))}else HN(t,n,e.opacity)},jN=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof Jb||HN(t,e.stroke,e.opacity)},XN=function(t,e,i,n){var o="fill"==e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(o||!o&&i.lineWidth)?(t[o?"filled":"stroked"]="true",i[e]instanceof Jb&&GN(t,a),a||(a=Uy(e)),o?UN(a,i,n):jN(a,i),VN(t,a)):(t[o?"filled":"stroked"]="false",GN(t,a))},YN=[[],[],[]],qN=function(t,e){var i,n,o,a,r,s,l=TN.M,u=TN.C,h=TN.L,c=TN.A,d=TN.Q,f=[],p=t.data,g=t.len();for(a=0;a.01?N&&(O+=.0125):Math.abs(E-A)<1e-4?N&&OT?x-=.0125:x+=.0125:N&&EA?y+=.0125:y-=.0125),f.push(z,AN(((T-C)*M+b)*ON-EN),",",AN(((A-L)*I+S)*ON-EN),",",AN(((T+C)*M+b)*ON-EN),",",AN(((A+L)*I+S)*ON-EN),",",AN((O*M+b)*ON-EN),",",AN((E*I+S)*ON-EN),",",AN((y*M+b)*ON-EN),",",AN((x*I+S)*ON-EN)),r=y,s=x;break;case TN.R:var R=YN[0],B=YN[1];R[0]=p[a++],R[1]=p[a++],B[0]=R[0]+p[a++],B[1]=R[1]+p[a++],e&&(Q(R,R,e),Q(B,B,e)),R[0]=AN(R[0]*ON-EN),B[0]=AN(B[0]*ON-EN),R[1]=AN(R[1]*ON-EN),B[1]=AN(B[1]*ON-EN),f.push(" m ",R[0],",",R[1]," l ",B[0],",",R[1]," l ",B[0],",",B[1]," l ",R[0],",",B[1]);break;case TN.Z:f.push(" x ")}if(i>0){f.push(n);for(var V=0;V100&&(QN=0,JN={});var i,n=tO.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(t){}e={style:n.fontStyle||"normal",variant:n.fontVariant||"normal",weight:n.fontWeight||"normal",size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},JN[t]=e,QN++}return e};!function(t,e){$_[t]=e}("measureText",function(t,e){var i=DN;KN||((KN=i.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",DN.body.appendChild(KN));try{KN.style.font=e}catch(t){}return KN.innerHTML="",KN.appendChild(i.createTextNode(t)),{width:KN.offsetWidth}});for(var iO=new Kt,nO=[tw,Ke,Je,In,zb],oO=0;oO=o&&u+1>=a){for(var h=[],c=0;c=o&&c+1>=a)return lx(0,s.components);l[i]=s}else l[i]=void 0}r++}();if(d)return d}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var o=e.length,a=i.length,r=t.newPos,s=r-n,l=0;r+1=0;--n)if(e[n]===t)return!0;return!1}),i):null:i[0]},hx.prototype.update=function(t,e){if(t){var i=this.getDefs(!1);if(t[this._domName]&&i.contains(t[this._domName]))"function"==typeof e&&e(t);else{var n=this.add(t);n&&(t[this._domName]=n)}}},hx.prototype.addDom=function(t){this.getDefs(!0).appendChild(t)},hx.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},hx.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return d(this._tagNames,function(i){var n=t.getElementsByTagName(i);e=e.concat([].slice.call(n))}),e},hx.prototype.markAllUnused=function(){var t=this;d(this.getDoms(),function(e){e[t._markLabel]="0"})},hx.prototype.markUsed=function(t){t&&(t[this._markLabel]="1")},hx.prototype.removeUnused=function(){var t=this.getDefs(!1);if(t){var e=this;d(this.getDoms(),function(i){"1"!==i[e._markLabel]&&t.removeChild(i)})}},hx.prototype.getSvgProxy=function(t){return t instanceof In?vO:t instanceof Je?yO:t instanceof zb?xO:vO},hx.prototype.getTextSvgElement=function(t){return t.__textSvgEl},hx.prototype.getSvgElement=function(t){return t.__svgEl},u(cx,hx),cx.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var i=this;d(["fill","stroke"],function(n){if(e.style[n]&&("linear"===e.style[n].type||"radial"===e.style[n].type)){var o,a=e.style[n],r=i.getDefs(!0);a._dom?(o=a._dom,r.contains(a._dom)||i.addDom(o)):o=i.add(a),i.markUsed(e);var s=o.getAttribute("id");t.setAttribute(n,"url(#"+s+")")}})}},cx.prototype.add=function(t){var e;if("linear"===t.type)e=this.createElement("linearGradient");else{if("radial"!==t.type)return M_("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},cx.prototype.update=function(t){var e=this;hx.prototype.update.call(this,t,function(){var i=t.type,n=t._dom.tagName;"linear"===i&&"linearGradient"===n||"radial"===i&&"radialGradient"===n?e.updateDom(t,t._dom):(e.removeDom(t),e.add(t))})},cx.prototype.updateDom=function(t,e){if("linear"===t.type)e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",t.x2),e.setAttribute("y2",t.y2);else{if("radial"!==t.type)return void M_("Illegal gradient type.");e.setAttribute("cx",t.x),e.setAttribute("cy",t.y),e.setAttribute("r",t.r)}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var i=t.colorStops,n=0,o=i.length;n0){var n,o,a=this.getDefs(!0),r=e[0],s=i?"_textDom":"_dom";r[s]?(o=r[s].getAttribute("id"),n=r[s],a.contains(n)||a.appendChild(n)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(n=this.createElement("clipPath")).setAttribute("id",o),a.appendChild(n),r[s]=n);var l=this.getSvgProxy(r);if(r.transform&&r.parent.invTransform&&!i){var u=Array.prototype.slice.call(r.transform);ht(r.transform,r.parent.invTransform,r.transform),l.brush(r),r.transform=u}else l.brush(r);var h=this.getSvgElement(r);n.innerHTML="",n.appendChild(h.cloneNode()),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(n,e.slice(1),i)}else t&&t.setAttribute("clip-path","none")},dx.prototype.markUsed=function(t){var e=this;t.__clipPaths&&t.__clipPaths.length>0&&d(t.__clipPaths,function(t){t._dom&&hx.prototype.markUsed.call(e,t._dom),t._textDom&&hx.prototype.markUsed.call(e,t._textDom)})},u(fx,hx),fx.prototype.addWithoutUpdate=function(t,e){if(e&&px(e.style)){var i,n=e.style;n._shadowDom?(i=n._shadowDom,this.getDefs(!0).contains(n._shadowDom)||this.addDom(i)):i=this.add(e),this.markUsed(e);var o=i.getAttribute("id");t.style.filter="url(#"+o+")"}},fx.prototype.add=function(t){var e=this.createElement("filter"),i=t.style;return i._shadowDomId=i._shadowDomId||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-shadow-"+i._shadowDomId),this.updateDom(t,e),this.addDom(e),e},fx.prototype.update=function(t,e){var i=e.style;if(px(i)){var n=this;hx.prototype.update.call(this,e,function(t){n.updateDom(e,t._shadowDom)})}else this.remove(t,i)},fx.prototype.remove=function(t,e){null!=e._shadowDomId&&(this.removeDom(e),t.style.filter="")},fx.prototype.updateDom=function(t,e){var i=e.getElementsByTagName("feDropShadow");i=0===i.length?this.createElement("feDropShadow"):i[0];var n,o,a,r,s=t.style,l=t.scale?t.scale[0]||1:1,u=t.scale?t.scale[1]||1:1;if(s.shadowBlur||s.shadowOffsetX||s.shadowOffsetY)n=s.shadowOffsetX||0,o=s.shadowOffsetY||0,a=s.shadowBlur,r=s.shadowColor;else{if(!s.textShadowBlur)return void this.removeDom(e,s);n=s.textShadowOffsetX||0,o=s.textShadowOffsetY||0,a=s.textShadowBlur,r=s.textShadowColor}i.setAttribute("dx",n/l),i.setAttribute("dy",o/u),i.setAttribute("flood-color",r);var h=a/2/l+" "+a/2/u;i.setAttribute("stdDeviation",h),e.setAttribute("x","-100%"),e.setAttribute("y","-100%"),e.setAttribute("width",Math.ceil(a/2*200)+"%"),e.setAttribute("height",Math.ceil(a/2*200)+"%"),e.appendChild(i),s._shadowDom=e},fx.prototype.markUsed=function(t){var e=t.style;e&&e._shadowDom&&hx.prototype.markUsed.call(this,e._shadowDom)};var MO=function(t,e,i,n){this.root=t,this.storage=e,this._opts=i=a({},i||{});var o=$y("svg");o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("version","1.1"),o.setAttribute("baseProfile","full"),o.style.cssText="user-select:none;position:absolute;left:0;top:0;",this.gradientManager=new cx(n,o),this.clipPathManager=new dx(n,o),this.shadowManager=new fx(n,o);var r=document.createElement("div");r.style.cssText="overflow:hidden;position:relative",this._svgRoot=o,this._viewport=r,t.appendChild(r),r.appendChild(o),this.resize(i.width,i.height),this._visibleList=[]};MO.prototype={constructor:MO,getType:function(){return"svg"},getViewportRoot:function(){return this._viewport},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},setBackgroundColor:function(t){this._viewport.style.background=t},_paintList:function(t){this.gradientManager.markAllUnused(),this.clipPathManager.markAllUnused(),this.shadowManager.markAllUnused();var e,i=this._svgRoot,n=this._visibleList,o=t.length,a=[];for(e=0;e=0;--n)if(e[n]===t)return!0;return!1}),i):null:i[0]},resize:function(t,e){var i=this._viewport;i.style.display="none";var n=this._opts;if(null!=t&&(n.width=t),null!=e&&(n.height=e),t=this._getSize(0),e=this._getSize(1),i.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var o=i.style;o.width=t+"px",o.height=e+"px";var a=this._svgRoot;a.setAttribute("width",t),a.setAttribute("height",e)}},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(t){var e=this._opts,i=["width","height"][t],n=["clientWidth","clientHeight"][t],o=["paddingLeft","paddingTop"][t],a=["paddingRight","paddingBottom"][t];if(null!=e[i]&&"auto"!==e[i])return parseFloat(e[i]);var r=this.root,s=document.defaultView.getComputedStyle(r);return(r[n]||gx(s[i])||gx(r.style[i]))-(gx(s[o])||0)-(gx(s[a])||0)|0},dispose:function(){this.root.innerHTML="",this._svgRoot=this._viewport=this.storage=null},clear:function(){this._viewport&&this.root.removeChild(this._viewport)},pathToDataUrl:function(){return this.refresh(),"data:image/svg+xml;charset=UTF-8,"+this._svgRoot.outerHTML}},d(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(t){MO.prototype[t]=Mx(t)}),wi("svg",MO),t.version="4.0.4",t.dependencies=UM,t.PRIORITY=qM,t.init=function(t,e,i){var n=rs(t);if(n)return n;var o=new Vr(t,e,i);return o.id="ec_"+dI++,hI[o.id]=o,zi(t,pI,o.id),os(o),o},t.connect=function(t){if(y(t)){var e=t;t=null,FM(e,function(e){null!=e.group&&(t=e.group)}),t=t||"g_"+fI++,FM(e,function(e){e.group=t})}return cI[t]=!0,t},t.disConnect=as,t.disconnect=mI,t.dispose=function(t){"string"==typeof t?t=hI[t]:t instanceof Vr||(t=rs(t)),t instanceof Vr&&!t.isDisposed()&&t.dispose()},t.getInstanceByDom=rs,t.getInstanceById=function(t){return hI[t]},t.registerTheme=ss,t.registerPreprocessor=ls,t.registerProcessor=us,t.registerPostUpdate=function(t){rI.push(t)},t.registerAction=hs,t.registerCoordinateSystem=cs,t.getCoordinateSystemDimensions=function(t){var e=Ca.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.registerLayout=ds,t.registerVisual=fs,t.registerLoading=gs,t.extendComponentModel=ms,t.extendComponentView=vs,t.extendSeriesModel=ys,t.extendChartView=xs,t.setCanvasCreator=function(t){e("createCanvas",t)},t.registerMap=function(t,e,i){e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),"string"==typeof e&&(e="undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")()),gI[t]={geoJson:e,specialAreas:i}},t.getMap=_s,t.dataTool=vI,t.zrender=_w,t.graphic=sS,t.number=yS,t.format=MS,t.throttle=xr,t.helper=sD,t.matrix=e_,t.vector=Yx,t.color=y_,t.parseGeoJSON=uD,t.parseGeoJson=fD,t.util=pD,t.List=DI,t.Model=wo,t.Axis=dD,t.env=Ax}); \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/css/font-awesome.css b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/css/font-awesome.css similarity index 86% rename from icec-admin/src/main/resources/static/ace/plugins/font-awesome/css/font-awesome.css rename to platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/css/font-awesome.css index ee906a8..b2a5fe2 100644 --- a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/css/font-awesome.css +++ b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/css/font-awesome.css @@ -1,13 +1,13 @@ /*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ /* FONT PATH * -------------------------- */ @font-face { font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + src: url('../fonts/fontawesome-webfont.eot?v=4.5.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } @@ -118,31 +118,31 @@ } } .fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); -webkit-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } .fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); -webkit-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1); @@ -1383,7 +1383,7 @@ .fa-digg:before { content: "\f1a6"; } -.fa-pied-piper-pp:before { +.fa-pied-piper:before { content: "\f1a7"; } .fa-pied-piper-alt:before { @@ -1509,7 +1509,6 @@ content: "\f1ce"; } .fa-ra:before, -.fa-resistance:before, .fa-rebel:before { content: "\f1d0"; } @@ -1832,7 +1831,6 @@ content: "\f23e"; } .fa-battery-4:before, -.fa-battery:before, .fa-battery-full:before { content: "\f240"; } @@ -2086,252 +2084,3 @@ .fa-percent:before { content: "\f295"; } -.fa-gitlab:before { - content: "\f296"; -} -.fa-wpbeginner:before { - content: "\f297"; -} -.fa-wpforms:before { - content: "\f298"; -} -.fa-envira:before { - content: "\f299"; -} -.fa-universal-access:before { - content: "\f29a"; -} -.fa-wheelchair-alt:before { - content: "\f29b"; -} -.fa-question-circle-o:before { - content: "\f29c"; -} -.fa-blind:before { - content: "\f29d"; -} -.fa-audio-description:before { - content: "\f29e"; -} -.fa-volume-control-phone:before { - content: "\f2a0"; -} -.fa-braille:before { - content: "\f2a1"; -} -.fa-assistive-listening-systems:before { - content: "\f2a2"; -} -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; -} -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\f2a4"; -} -.fa-glide:before { - content: "\f2a5"; -} -.fa-glide-g:before { - content: "\f2a6"; -} -.fa-signing:before, -.fa-sign-language:before { - content: "\f2a7"; -} -.fa-low-vision:before { - content: "\f2a8"; -} -.fa-viadeo:before { - content: "\f2a9"; -} -.fa-viadeo-square:before { - content: "\f2aa"; -} -.fa-snapchat:before { - content: "\f2ab"; -} -.fa-snapchat-ghost:before { - content: "\f2ac"; -} -.fa-snapchat-square:before { - content: "\f2ad"; -} -.fa-pied-piper:before { - content: "\f2ae"; -} -.fa-first-order:before { - content: "\f2b0"; -} -.fa-yoast:before { - content: "\f2b1"; -} -.fa-themeisle:before { - content: "\f2b2"; -} -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\f2b3"; -} -.fa-fa:before, -.fa-font-awesome:before { - content: "\f2b4"; -} -.fa-handshake-o:before { - content: "\f2b5"; -} -.fa-envelope-open:before { - content: "\f2b6"; -} -.fa-envelope-open-o:before { - content: "\f2b7"; -} -.fa-linode:before { - content: "\f2b8"; -} -.fa-address-book:before { - content: "\f2b9"; -} -.fa-address-book-o:before { - content: "\f2ba"; -} -.fa-vcard:before, -.fa-address-card:before { - content: "\f2bb"; -} -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\f2bc"; -} -.fa-user-circle:before { - content: "\f2bd"; -} -.fa-user-circle-o:before { - content: "\f2be"; -} -.fa-user-o:before { - content: "\f2c0"; -} -.fa-id-badge:before { - content: "\f2c1"; -} -.fa-drivers-license:before, -.fa-id-card:before { - content: "\f2c2"; -} -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\f2c3"; -} -.fa-quora:before { - content: "\f2c4"; -} -.fa-free-code-camp:before { - content: "\f2c5"; -} -.fa-telegram:before { - content: "\f2c6"; -} -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\f2c7"; -} -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\f2c8"; -} -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\f2c9"; -} -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\f2ca"; -} -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\f2cb"; -} -.fa-shower:before { - content: "\f2cc"; -} -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\f2cd"; -} -.fa-podcast:before { - content: "\f2ce"; -} -.fa-window-maximize:before { - content: "\f2d0"; -} -.fa-window-minimize:before { - content: "\f2d1"; -} -.fa-window-restore:before { - content: "\f2d2"; -} -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\f2d3"; -} -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\f2d4"; -} -.fa-bandcamp:before { - content: "\f2d5"; -} -.fa-grav:before { - content: "\f2d6"; -} -.fa-etsy:before { - content: "\f2d7"; -} -.fa-imdb:before { - content: "\f2d8"; -} -.fa-ravelry:before { - content: "\f2d9"; -} -.fa-eercast:before { - content: "\f2da"; -} -.fa-microchip:before { - content: "\f2db"; -} -.fa-snowflake-o:before { - content: "\f2dc"; -} -.fa-superpowers:before { - content: "\f2dd"; -} -.fa-wpexplorer:before { - content: "\f2de"; -} -.fa-meetup:before { - content: "\f2e0"; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/css/font-awesome.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/css/font-awesome.min.css new file mode 100644 index 0000000..d0603cb --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"} diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.eot b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..9b6afaedc0fd7aaf927a07f82da9c11022251b8b GIT binary patch literal 70807 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 literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.svg b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..d05688e --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,655 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.ttf b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.ttf similarity index 68% rename from icec-admin/src/main/resources/static/ace/plugins/font-awesome/fonts/fontawesome-webfont.ttf rename to platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.ttf index 35acda2fa1196aad98c2adf4378a7611dd713aa3..26dea7951a73079223b50653c455c5adf46a4648 100644 GIT binary patch delta 7574 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 b=>>xXvun#12DZ<~3snq)iK91=53m0PtWqDQ delta 30646 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 F{t4uIb!h+q diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.woff b/platform/icec-static/src/main/resources/static/resource/plugins/font-awesome/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..dc35ce3c2cf688c89b0bd0d4a82bc4be82b14c40 GIT binary patch literal 83588 zcmZ5mQ1~zHNWsNu^F#rK*#D=uX8&MpzgC z5C8xGP&g0(_E!Rtzy7cO+x`ESu&|=kuc6>CkM$qSfo;e{1ciiuIo)3!_ZN6TjQ}7r z3N-Y;obRvB^9$WjHFq2XD?Qs^uJ;!%zd`OxMtrPH^c;RUVAfxoKmXz92LRZ_(#`mn z;{^aD{{#U1phTifuroE%GXwyn=KQsx`vo%$^oWw_FZs*;`u}fSLO5VZ4O1&e*IzF7 zcl=HO07%FLGBk2a8-rgvI!OQkkS72DP{fB6BWtm_3-wXmw za^=tbCnsd1YX6h-PTXa#>jt`py1Ki-`Ve67y86F;Lv!GGN?jaa07ycB4uJpe8#|a} z_V$kV_RkOKPxkiCg5{-!|3yddK)?0%AJ5kZ0|yJLfwqMH@$+N`6E?yd3M~}$^Fsg_ zHU8u9>pvCGW3g@rKYU{nDTZ{e_03cV^IS5^l++1;P#+nGf)Y2FJMu9zmD`iSkJ5BVnf^E% z(B?=b8lNRB8Z80qDkAPG;d(!vd7b%62{WY6rsTvlS3F2xt~_okHL5b#%6ON4X{tbD z=SQ}y{1-)ePnsV|er~!C{5&@VDva9HT0~{xMxnk|uG~X-0(6gkH^mj_{VzV8n6ZG3 z%2bR(eIdBnQDtLY0hDi-APCx?G&c~^+%z{xt8p#>BTcoRKDog^sZzg*BcH>*W)rIA zhw?}45~FD*9KmH*OpkjHhD zVf9D=*FZo9L-YSom*Ry&7099t!XTF^N2$xTcRAPTRP1wXHD)X}FIszl>1%9sD{1UB z^Jx5Yc;h+QOdBI4%=h})0Z;Ro>E=GkJaL;yjQoGW!9l*u7g=`3Kwa)EMl;iQ~|;B$ z*@76@-G4X-Ki@hB7v*1pH^WPUs1WJ-9OgPNGf>fTf`%B42{cgI3RM=SCFG4yR-GyV z%Qqd0Dj=(7FV1d1iK3|xA#ikVU2qFSVx69Fa)4r^#*aXxQL|-;1PB)*m`lC1?Nc>5 zq~7G$g%vCrxU&Cvlg>Q-wID!Q=b_pDN2 zcuyGw9jWHM7xK`NRJuv!DhR@9ALaau>FV^0C5ie->d~8{ZTmH($1lLKzoV0DvsE`5&tV(fb(JzZU3${QyNQea8RslJo=8uZ z+jb{e9P^mXTAqEAt`6;gzxNqvT3t85?nS7+rJ@<;nTY1xt7IK0Rwl9rw0gCMuJ*6@ za1Oo$4gwv?*CR0o*$-`<@BuCwUgI*u=}T#-fEl^J4T^a*ybjQi#znd;O)?Jq9OP`` z3UGjC5Ud%6OUKKOD-^P-BvpfPYl8^;`Nx&=X9bYhBD5zVmCq7zVR)F%375ncL#E|- zA4t@;fHVdc37TRS#noERuGNqrlQS|9qSE2n@-T?;uTEOy{h`S(|bb0<-{eh|HuXvaDxo z`9%TWhCJltleyrCbjx_5JZT}+GO}o)s@}doVg6$~TzCDtfC5TkV$uLoDW%y16>8=) zXyzN>$@3?OzJ}5)1fs@>6*QcZ*s{a_+@$j9RRQ8u)e z+&WE1c&~@Y2>f=AcLO>9n*}Fqpb7D<*vRMDiiqs5>m^Q00Gk>IUnwW&|I@fst7(7; zT4)-XAMLv%APbcr00_mZ0V~x{J`M0a*f^e8xec+$tkc}ku<%A$&g`~E?q4n31^#wLWj^%gyRGXSj zC$Rx-M&vXTQr_bA zKQ{d)WN^7WDf-eKdeKAj4kKHwoj5ERj)Y0!oK`E#J!oK;h<>(^8b6g5vv-K!Ny`K( zr~p)h(!uCKOyXL=q)E>PC6~ccptlN4J{Y#ty-Id8*FrxfA|}MfT6Vdty7XyITftN(2^ssvHr0Kj}Fy5;)T4qH2}NCZau;!VE63EPo`as0`{GI zz+dw^JJ7A{3&mXY!!|;P(S{2F?*nWd4Rx?wg_ZXzvjEGI2l?GHd(UA z#C~@Cy8$1+L_4x>|B64Y@d!ay{M7| z1~1c|_MfRH5wcMY0RSwtm;g_A*MS1IOYX}4)j5=XS9*iVrFpe>at3^?aVVmW=0aRz za>RFDFX^_62*;;hTb=Y286^24)3B`HoKzdR>Yc4#Ffc3mRk?4tf^@&L98fZjVZ^=C zZ9g2wq76EiaFg!RnI>qn?e0woN-CS}E_7*M0CB=QOc&0PWq3eeln{3PfgnmDHV3dH zv1vu~h*?J7aB^-cUV3NMMY*~uZ`Z74V#D{LK!$sd0JeU{X6}|geV%rgHr47ZIPSdS zq^^HHfN}GE02QgQKL~71E(iMGpy0~f5y@K+$ zh<{f^Y&Pq+DHxdqVE)?*R;z(fGNs_q+#2t(DSLAai)#!zIxN_24rQb)s?<-R+q-5+` zwfBi#4n6jJRzB$lmO!?Q6ikgi@Q_;+pxye)#oNzy{>{YP%y=X8r&dt`RWzrO|w5(3*qOuat)&53C> z4myVoYDz3PrCdBrm|{Zb{cXSH#b-e$(()?_RfyYxMMIkLwD7j2Tl zLa9Ar&K7;Vs%EA4=vDFw45=q}>+ARWoKxm%`NEZ2c4Y&GGm0)U_a}YnN&X5To6pq2 z9=)?XK?S9+=kP3gEv$2#pe?=_X0WK=T)LiIWaRX)rH@{+`=qU5qO`irDWI;~ecQ~r zoqc~>3FQ?p*E@-uj{|xwM*P6rYMeVeI+9D36`Q_g2hGKOH3lg|hxRy7MyrGKsKTEi z2Ume{U_U*w*5n!+p#x(83e<>$6sO+Udu}zkERiy^zqALdIn9*wsPq(mf3CHw!K_SS zM`<*zJUNN1SPhT{fytV`GI!pLel7S9_5aK!TE^x zqz>aiT&miHyM2X(-!#o`A~jK&jN!T>9HG2?0dFk*&;RaPYHECc+= zOt3vX0vH7DYud7hPBcnE#%&)n+m^Ft!@MMHa1{+YkxXUVIFhg3;KuVF`L4j=YbIHq zqTbJPx#1$v3YtlIUxMp}Tz_uYv`Qw}MJJNQ^l-S6J*j$uMd$lHT~kixw1N=|(c#9R zbD$MqN$O{5(aE&y6!LEjV|p;u6Y}8^XZ{aIMSt7gU{wfG56U!KyK+`uBTx_CCwzg@ zA)Xg-J57N+>#X%zELMELv>}F>m|qsuXSQ&K+cR~)51=<= zs4e5hAN~$mGTf*kx1=BiZUzwjvXr36p`euTZ|?2L;GkF_0wuC7}bh7XOE4G+sL_VmgYmC>9|q17jwuhULblXu|$4a=D7 ziha36TKrr*@9S8kr(6{Gv zZ4f5^^>t8{L!CLn)=VQq44Z3;624PG30H4$ZbirWVW{@HP2IR~1k|a@mYG47IV`p9DNo%vLb-Ldb?qJUV6IQK1Go!o zp%i-a!FhYR(ac1wYa0Tk_e30EG))EGdHEa3PL2~LHwEVfjgL4$P+t6v@Xv>;{fO+f z3EghGb&G;mnjFBmrngkC<_5n-=S0SR#C{%fIMIw^Z9i!o2?@uzN>c!z8iyY;4)zVi zVLvg)%AE`!=U0!Y!8Hv#Fs^JRtkf&B6#?*e>~NRj@JvP z&zf8~v6Wwo9oBRYh^N$MAD1Bx5HXYI{FyCANRIA(h&FRLk?uH9#8Em#7j~P#pl(4o z4kHAx8yC)V=B~(<7KC8rn8ZSn;Z1}iW5)#8J0arzMB?IS2My5>1gRXBiBFUeBN&Pe z^?6R)jVY#>OCs1Ax$bT@TzsUye=Ko2T-x;$z6fUzQCc%Wk*i6^l>Nava3N@!E@Oe> zl89SB*xJ2_goO{}_^uE@`xh}5vxI|#CQ{8ILXVNC%C#LTqe{qBEBbW^3iH!pP(G$k zB8;*Pj1+QoC}e?3%ugrAyJw?onCS$G zrP>NkT5CJO`*ewI1INSoD$%6GQog1UY?f{1QR)nGyz`$Ie$htvuIFd_;nh~V=d@84 zx5NI&*t*nqavar#Ys}JN%&U49gkR@&CBp?M4%GnUy)$J`8BdeFyGSpR`Tn?!NsVl6;0RcTJD3NG)e5{(FW&OH1ZutEa1sq|f!Kll@e#MUp*a z=3w(lVL#3AC;!}$y1;+>O6mdF#~%?k)GIYQ?$t}vE7D_#;LRy|PlSyv$sG{J)O+>j zEP9UEzn^JM8nol+e8@i~jsRNxTL%j-#0N4X{sQe$iFM2Hlun!tw)}%C&duYyo zR`(d}ArsnF{u_AU524va;>KQH@+A}Y9WKUodjL60dtWzdBLd*;mMnC@V4 zpz7Mw+4UI+<_blfRJ%#*NOMIx@zD2Y0zv0#bHBa8Ch_BDIyMVJ|2z!7>e_|~+<|vV zC3_Bj1fqT8bE-H;*?yj>r)mU(G$7xCfPH*{M@6^Jqw0psBAJ(O|=!ADUH%ed{^t%G0*~8gp%43Ys z-Z)2L4mu{nLShcOCpym((T=e`?;`K^NcLJ@isF+q3(`pFo;CLJmIT121Z-#aA`1bA z5I^D|DC^Lo1a(R@)@21y3vNE=cDUv!Ju4g0J% z)}eeBS6fEExW8#OPZ%~s8U_;hFL81wmgMzQqdP>pB9~&^2RX#54W^;)9}#Q z?Eh=A`ij}$5h-NPYSi71kJK$^N^iC?H1NK6v=k3!-N+(jAUcL#3895u3duqOv&Wcm zg60X>s{E3ZoGulsHhdH)g1n7RH=wfctV-g?b2c%%Fd+dUrG zpILSpBr^_PmcEDo_f7cl$M-e+kT@c3l1q~eMvEiP;qV59gh%gmaBY?A^RGeqUG5pS zh1<)&xE*G+zf^;284(1Jxlt6G9I_T7OK}^F-WqShB zbKT&}iYuEU`?1gZ2;Vy2FiImYQcwYIOT=qyOmc2mxUa;LPb9TDr!cXM=FD-7oa_;I z62t|2AbN<{zP_9fA|$6UdNo!*C>4hVI6rfD{=uu+T{kWdMuk5{>_A#cCb14{z)qy^e)jegLEEls5DAN1-VcqJ}A zc38j?Vr*v=@uoawX&aD4I1sI?Wv}ZfBJ0rVs%IWy%^%i}jecWk5XhR~2wP2B%!Eua z5^=!bXaFwobkI?2)0{|vH{L{0=v2J*&f_a4H_xmIJQN>_KBSK#XbcRp(t!SrID+%t zI9ptMF0@Kqn)5n=Q#P2Z+d)(_fO<1V>&qz`O zcO)rZU~I_pmksxmC-tQOK1NWkfa2JAO;DGi%(#R;Q%2E2HkC|Xg+(L-Lvdtsy6xWU zvSCeWhnEEpV*8&~%rZXik}dANAMS^3*@Gnqe!x@gaSu@OkimQy=pq;X0|o?l8R@^t zAb)&8@N5UK`ZIx-+B^~A9JAr@Cgys|a2?JeoRZx2!(5--RNf!M6y;Ak?mH`nh)8i^ z^N)3xts2@I`izmGOFlkwIP&;=q&HnEzQ;Ix+`4=6`h31=Zan3CBs6OFdvbH|dsiK+ zLo&dt=8Y2~`Ze3@MgKyrD}E1&gJPD`DCn92wcp@djuWNY68{K0TXJ1#ICTQ9Wi-($}4_!M)(b5tE=)Y$&afbp8@j0dHbSPtMUuZxVvSS45uY=p= z$xGjf(3llj@~9K68IlSkGyRKo@?y!zL&o%0!lvezTWvuFU4G9^97?(~aXFmYJioJV zUO>cPmx?Jl&z57KypnJ1n6O5M6wTk)ugDhPcoBVc4iW?7O9}F9i`X=4*wmA+6bsK;%RJpFgrIKQ%> z{uaQ10yGP@&U1WzD($XdT;)-cn@qH(cJoj2hnch(U^HYYyu&;=p0IBteThG-vlwqd zSpqj6#+>QkUI@3gyOE`p5+^`8TB05&sj0JNW@eJYwBeWxN{tGc^XVJ8m|K@^mHvJ9 zq?;6^x0(%UHTA)!uU!rEdHJJI`bY|o7!#!&F@>@@M}zcd{XSR0akN-EK$z6FKDfoi zG-6GKv43+RITOu-`7*>~8EGRkAB&z9ZF|8`L-#i6CE~Me6a*KdTFWZNmg_x}3+*ZD z`sQnY{?6qsBxub5bTuuDaQ3V^``!pvdB3X?UNzy<3?qQ>{Sx;-7V#%V1>QOO%j65T z0#rNbA;#j&xz2oM=WFqm%_1D}%9eb_Bv@?kG+1nCXl!nDc6R$&JtS-e0`D|7-NRkI z`~4J{ckwqPR<;7q7S8APL}ezqDE2&YB>@(j zGa=GEgSZIa0O&|1Bh*s%osGD2QHeaNo@f-|_JPxZXt|$oyR7-QJXGBpo+)fic&@XI z>S+~ulM>=a+5ZBip|rq+%-m2&gHT{WcLN&1j{SbrfzoZEFBdulqRpQJ{p*Xn4-x~? zVP)t^Ey6j?{z`|^#dCnJ8!=y(sQttp>+$Qg-Q{z%{cfJQ$v&jnODfe17C9$rI2dD= zKl&0^HVHm3%itlYR+pr0WfZF;prDu*$ulVrQ#QzdHsgq0o{1B?|FuC9_LRi5me2N( zmQ$u^(muak_J5d!Z}iaIm@U9f?nL&FmSJbMCO#0-fHGyxO{%Q2UKb~CP+j8oYpL;b zQ(^f=&9=C7ZVXfQySO4aFe1nFbS_ovx@?hc+5!)p{1;TLL0b*8RIiP_iPf7rauHdi z4i68GkJ%6}`zLcO9yCdz_buaUZ{T2%hvI&JQ%OYmo6E-OCQg#si+wfL{3531NqZPS zBfu{>`W+(?cjY}VT$k;;zg$4V=eSOXGTqpXvrM;f=xBqPL9!spdgwZHxjol|lQ!}> zY+f7thw1&{Ecol|%{ra=R2qQ5dAy^y}Of<1J`^b;P$o)Hzx+^_5M@H$UE z^b7M~g98%0O7f;8AAH_lA0;~iR7@-!K&}V3je;DXOY~rZ*OQ3qup)6TpgyTF7H)i( z#|KnPR0Ra5CzGmV0v9e4j(0`4>qT(eJJSu114e}A9E3TkpLXY6uTb_R+PY@?$czq%z)Rf0P zLGuGrW_AMu*PbGD-3Pnhm?DrY-vHxRYJ77vysBE`C3gF{2e@+N;%?8*H*)M8zwSxJ z`OV@@c~1e5Of6AkLA%P`^@t6H`izF#E;!A8PZb-j{SQ*9ikI3KRYLV+0j#2k)+5$r zmb3uoyI!HVyMU!LQ@6UhK_#6N>(FnTWX}dsnZZh*+L$erUKGM*uUW$r@_-jdXXPNSWCGg zN6|{PI9IzgP6_zbU$TfxuJ0%m;Z7jo{Vu`vX@9Dyzy4X}SuNQ{Jf5B8PJ61oba18? zSu5Gr%&+nnHKv%k_KV7ahr<@$mjNOd9jxH?frf5~k0ji?z7rrksn9M113OaZ&%UgZ zPOIhKYUdx7QZ@9VwU&rF$X~TZV{T%zEmUI(&r0yO(iyy@6tu- zC4`q!9CG-OhDALEaMndBK&~FY!;sT0@!DZqwcI_nPN&w9Hn{-;lUBIJ%AzN5+Xs=M zRp<22^gXQTNfmH;9I^}mzNoZx`x0+qtFWC&(JjzzR<<(>gc#E3Ou|X8G{Tf|k(HZ{ z>IE6e?g*+VejG9%<4WwTgmEFHuD=frbIA=!P|C`LJkzhs_PH%c+=Jk6IRvq||Ls?@ zy3MqQS;RYcfaB9wvP7TGhClS~Vty>221u}c;yd>{Fo+JsT#llSk@@174F78q{Liew z5qhFw`dW>$e)$Zrc!8u5V&?OGG>`UAHfb3;3;>qW9KUTvvr$Tm=OyG|g8*O3E`?;iG)a0mIE=Ezn>EyW(!pdVROt~Y zvPAp>U&$rqo|l;Oz@=@F0<@bnF=JMpxfg9zzkagJ>RINZWFDcWp(s_L7pRV^)z9+O zws9)kXT-B>!%MNv@LYqhNZ(_>qxtIM%Jfdx$LG}6o9B!1IloTBYR`PMG&1CQ;&b}C zdi~zr`}5G%t;)|UywJcnZIKz~wYT?6e@V9bADWI~5`)H?ge~pa;0OGJ8K86VA^Lu? zaU)c=DDcqIYk)4g7`ZY7B#ay6D(!P%iFDowr>H6~mtUBN{GvhCwVCI+;oqU4l8q z$NYj84zAi`&Wl7$7W_N^r-5^pn$}Jw)mY5Ywoa!`Ax4S3pfuQ^93#=ZGQt4e6csNA08g5%^tHa8Ck9}`}!P; zrw-@NzdTe-m~?RGJOxn3oV3*%Pd<$vj;q9Aj}go@yPuM0s%SzgJDQN?`-x6l9~8Se zMu%{Zk4W;CD+M`N6iW>3m+RtffxNKdJ_Dcwh36PP_LV zxJRUPo`<|RR9HukqQA^5Us;%%clK6eyu+wYQ$Fmjv#c;{e%O`JzJF`HEnN@iJ3rAS zBVIb)V|x#5%9n~h^c0WaPgaNS6pR#)sP<((-VtYuuwsfh8Z%3_Tbq*Cn!cZwQ2J6$ zF*YWF%?*QELCA`i{>`kZx)?=?BQ*e2fts8KJP)?=Aq{h?sPI;sou)_brxOdVH>NbR zSEuw&SH)&v9cCp~<6J*o<9n}!?tjx}G!p1mL2XuX37ba?TJU3FQLyURLKdxh)NFyY zoWGi6UbJs<7kXS&Z1fneO3L>sL^|G7AbM08u{ma#!Nad|?jpLLfS+s#GCcF93Rh7q zWjC%pDg3r`+D)VdtjA8Y*A0FqB6PZ)C9WmVOdU)DzRtM7WcVQE;u@~SK-vn!14;5z zusxTws4m5g4={xt%v9)+sFCA1Fs1Ebvg`>3S=%h6R}O0F$WY&TJ!at~|>nF~eIH>i5! z(ZEU$!EkU94?7L_!;}<%B&do(A9A<-tKJO=gd?GMQSVp~Atp?{-Fhit}^`M8*)u@Wqe7lPaqg+bb!m^0{XP;oFZM&}YP8=Xb$im@Ek zfZnmL)uSC!3R?*dwoBJ_^tKb956T_a?Cj#~FbIh3X;h6wdXq!|ozP+OGu357hCA+P z9Zt>?Y#9X|Dg+A58DonPqgBoP=0p>5MY9aoFW#KI+Pa-YJ@`VEZSY3wkL*clfsP9N zpMzzwcmav;#9`nfJ+q1O{z5ACLCMe=kN|OlpFQ>GK4X#2(bZ-L>E-IzZ!Rh3$e8a{ z3?h%atZw}YO-H3m9(#W?lvN<$eHJ%_j|NihPd0}DCvQ)_LZB$S6VQUv`Zlch8K+gS z;vx%mZ{oda0M1xfDFH+DDvMs9mPafH)KY#b5R-PWifB*g^h<6ZPTQiG*`br5FwoRx zL(}PbZYx`Ji*kw_qSe2flh^h7CrB94kypgw{H>zOxx}Z~!`GaG^xEOB;a+{J(PeNK zZWwEXgOpE%+vVeT6`Nn|8`~R>2)a6uU+2h(RAiDHTU3nT4zHA-(E9RQ6rwBnF?u>| z{A*7o17g@qOxeVS$>n`OFthcAgYkOKGg~4W@ox5%lC$(RA{hbOaT(fjr>x)C-q_J) zr2WZBh|~VGHDmR9shZ9+*65lA8;p`9L%-_tNjN7!PO_oa_O>I3t8!8n<0G=LZhED@ zKEGJsSfTVFe;`n998_hPYPuK#^>$N6!}Wr7{*gVbF9{>4#d(t-2!8~pL!aKrt`Wx5 zneGrS@(OTtBwT1-fq%qN9uUdo3C8leR5HG~Rg&1~zayWhUlmXN5E3#(aCk-U^BTFq zaff#Rm(vF`+~Z4cs%A#2IETI(M58lU z)Re&*rEVn56$&Tn<*q_vs~93}lIRNE7>II|NDX>aDQ5$CV)_0L;-t#FZ*ET(im_5P zS5I-LIum%A)dt>Z&M$ZtK3A1~yhGDm`&m|x!Jsb`*3FRV#+d*$@V?l8n>AesyK*1* z2vo|aJz(8su8`_=KEoVZ9H@(+8vVk+6eo#snSHP$Z4tC#ozHtzn+Mumy361>c3{#M zcQ%z-gX()9j!C$sYFK}tXwYX4Q;JRkcO93kG?Rqi+4--fm15+Ug=J+9aV%x))U&&Z zVz|A5;}(|5HtrIgwutx4x#L@KIv2aVs!ONF7aU*`Ic%?uwwLHu zdgjH`O319YYe94#)Nz@HkoIu}hJYIz7Imm(bFcv~<2Sj><31{yZd_DHaaFtVkxx?o zMbkNI@(FoL_4;dG=3tz^vdY`F>!;M+s>dD#6js+0w#$S@`x4cf?p%^n#-#5a`&lNa zkrXfmDalbi+=(8@E{W~WJ^(rsoKklFJqH1=UDo(Ovv)6df&Jy< zH~>!hzdUPRmNNI%>`-+J1f+@rAxEctoqaz$KN5V+`ptZoy}DIVM-8Gk z{caMImuoHeKP8fOkymmlBsW7A2V_!Vz*|)VI3?iuhACEY*ZkE2R*#2tTirNF?x9O7 zh!a@+Cdr{$d&YE2FdyJ!5$VpN*d{&xSRiS0^zl&-B>9e?>8_5+KDu+pMv}mIGsame z$YwD!#yRe>-Rk!IMxMZ%CCPYj+vgK5nWh@!nKLs!WWEB*(ls_~039K83G*u!+b_D@ zi+38eR7;wlN!U!zqY^h**rzIDd0Tc@!?iFa4zPJeWg7Atg394~KCGb08=Ot3xfVu) ziBAshbzifDN2B4fVRv&jok$*%iW*Oz*El+S0%XO)bLcdSgX3xbSRx6L-7iwf;e4)q zAH_2Z7LeAqfk&g(+A66-XkAbyqv-@^AROqt+>f>^DL-s){N|fE46hg;j(HG>{Pgrh z;!y(ghEIUdkLOdAfMo_(hnv7D+UHf|3{4VR%Gjz^;eAtwm?eMniBCKHiyS9lOZaGW zzLIUeo$s@HYH6B6_~JZd+RBW`l1}*YAk1OU!l+G>78UG4BoH%Y#co-v7~k$ZTL?3? zB<4h%zPM=Qg!zwbnn$;uYrvbvO2fS)3 z;x3eT96yGVdURMGfL5KJuefT*qTp=AIn+;^{!F^T8;?K8s$d4WJj{AbuwFYb)#}ZFZ!%8!G zHTZafX#S`~V7L`4f!$1Jj%Ck7R+mSFhs&pHHVKZMunI@AAz%&x+A@W6Nk;`t3jI-Z8hE7tp!tchxZ%Dja(gfwZ=7I zCkap--m`7qSugD}j2$KrVZ7|f&1et#hD&3v-wWD3R^R@-`p!}pCas%H+(oE9~C^W@oV_?UjWa={2VSD+sLM-h!Se9y)x; z8{0H4@Q-vXl@b+&owlVF?4(u8(Cj zPqbRPAHcDpkWz5EPd_h=r?L?ss&$(C(^OkG3Zm3K#}h?fAfZ@VGa1l=1E3f;1_(z^ z?RpcYYab=-52)TC2S|Dxip#dooy4BBOBOK4QTt0B*~4K_fkcRB1=bLw*`~egQ*E-@ zTAdG~VIDZ2aXL)4gRwDJV5cp;0cVCAv?qI%I%l}Utc>p4h*+j=>WI*$AKNs$)1VTX zliygV-HwCyEn1(3OiKNXJ_L(XM2r-HYhwnC>@SWyo8Mk_^|c z(5DRuRj0@kW(!e^#I?s?co!jCC^1~=3z0+0;PD&iq9Gs0DQQQ+GqoFt6RT6xOtf_9 zR$5>m;t@#X8KDSa6D=`80OqJ*Q=WX7I8)Yhfzs(R5(R26>X0-#5ONWbVdUwt?GbDn z1XkH_K)qgKd^~Zd*4TZn9T(Z)W_}L*uw5ocdBxsbUyw zI;|>w3BJ*lF1S;?=0I7GxGty*yZl}@bM~qT`lMJ!BWZuYL>U>X1RT;7dQMFfD&Q}f zL2WTt@p1iW2q!KM1z+M<`;$UM3AIZv5NSw;Vruxd3WGN#QiCsICDBHfDGe0xE}kPV z*K04H4wn3Mm{sHWpwN+&utRhpHdUeAf%u0baf7xA zJ<+3kmR5}n6g%)gumBmxQ=-?a!zx?z)ppBzsq0?AZDRr&+%0a)1g+r3M<%psQ%(~4 zr4}+&uAid^t22x9V!>&%Nv&36cg-8ii;O*Gc5K)ZDMrBT4NKZokK?IAFiOqpz5D*3 z^lih%J{qfd!5X|Kaeq7rLDNKNVZKGomNdcbAt+`7W=uM|Q%;Zs8hQ-*lf)nQJ;k{M zHj|gOm7I=abFa;VJNGERviFJ=-rlMR1{^wQRSO3LylJGaA^bnV&Mh44=E9t~T}iE* zh5U!fRs_iCK4Dcaa4j<<&}PQkwVcZjuk4$oa z669KL=>@|RvVGZg1^ix)hy-3&564X{2Ys$?Y{P(xFEN~+2QMW*&Dj0NHnvNF zCnqYD?xz_X9p9^Y(5%Unw7S_V1{v5roJZ5@JvQYlUBf7K1YQ{%2jh|%KRP~LMBIy~ z+H6JBO1RnY4u`D|WKTf~Yh+GNDpN0&_9M79o#!SaJ?sSy9&#Ca1NJZGEquu^)O6pY zs%hZm3n#jaq_bPl5(lT+eJRk$bRTuTTCa3l`lV^Q28$ggNjH3qa2abFc-_q z#12mpPZwy%OFh{OsQBImTH?(l=E}?JgdU^lFsfo%M(>knU}Irm-Cbxbs^(A6&w?of z@+*TYk~syF2oT{b)sl-_cp!#(vCP1ih{>B9o28!pr50iGYV5R5A!|h zS1HA#7BFC7`8l`MTl!X$t<#A97>`AF%s$FQSUnG?*IK>vk>oxsk;18)Av;cWv+vVR zo+bz~Om90N*rg$lZK7K@V`y^oWv$=}mu&PiMLjd$Eu2$mtx~6f>M2X4OXAM> zWB{4G+4Fs{!W^jTLhUn!CvK}))L0+dH*i>^-B7R1=6eoDwt60en(pqcEaiAgf8DSM zOxbXIti`?O*0h;T^r=O>qe`{mRJp0STsD6Ns6Y!-bL8x_dN&WbRH%PW{Iu_Ld*gPW z@%Np6?=y3Y7jJf1D*XWKFbfW}V0R3%eXVN)TWo-qJRI@>is*Y<4?{r5!#9x;Sh$!U z^5Ck?1>w^vae1e6e663rLH@}8FxhO=J)sG4eUpU$oWH3^a1NKOby62uBnBMZ?(l5y zE*_GiQT1*JNq;@%m|J{rIgD$3kUXsz<%wtV6lpif-mdz*-{i2Tz;}qKhF)_#8Au(P zTx#(dMk<|;c8Hp9g*Y%!UaB6o9=0HW)pdi{?>Q$Xu-d63Z7~@}Da7LSHBZqh z9n_`f#4yok-ed|=?*yfIZr`xzUoGmsRhF71^9cHf-2I-uQTLbQvfHB*!SFr)o#UxE zXC)BJnT8MlooA-!mVLg_a_Qz3Yg%_o!?YPH#KO9!Vd8kBrcK@JAWS`kK=Hw$5p&6F zEE1pT1)xsP`zz>VNmooJfnrN)$sr2aV|RE<~a^ZN@9MiX<;wonh#M17m9 zL)hfx65(yTqmEAdtDyf?RmWed?fxQkM%i&lZ_Pm zdYWT08hyMX?Of}N(}M!oIqoVZ^_RsH^};f7D!Ne)wXA{DiPNP;UhOXFt&nOGw_z43 zm|P}4qpf3ATjBbKxt+LDEBl>!r>*-6hKu)7ujx--b3(~%6`%Ri@2apnEBg|*xNV`o zfZiqmKq>mK;=n}^vatyYRJObNB~b|AldU}1`t3QZ4e3IX;~{kmQ-PZn7o04%XP^5{ z{sLY-R!<~3KZobc-2m8QeLxBhWqyP6N?Ub2J%tuJo7Em?Gj-QW5;-uL8)gktJ;+UY zWUFzVo?bRL?-L0_E{jNIfbHjC@=_LX-p4jBIKuuicC$w(vYzK<11{fJ4B#vEOfi5m z3PBm@UI$>c&GjTGVJWGT^@EcM3nnxMeDfyE1zZ8$BrU!o+IR9!xVu~~{ zy$z#onbI!pxRvafq9+vJN71xTFKiCqeTot%iY&<#&R+o>)%JC(OvO+>tPUay)E7c% zaQAtDg!kO7SBcg3M!;vJRkD6TxBjfrB-0%P+nrK04b#=GHHS_ z2;(=k2+43=8tU)_Tm|SeTE}Ul(<8QmM-|ASL+(U0W zMpnCG69Z+VwYbLWyRbPq%mg4%pdv4maJeZowlw{-hMnrgk*HcYV9w=j=ZSg97F39ZN1z#N1Gs<{-r8cw zNGU4eKqXcHMtLqIvAv$xq*lk+!iQEqxeR%M0#0eoT=0O^aX#CtR^zaNI&x2DZ-Dv( zonLwSQE_#Wq8mXI1H$Ao>yNR@RY7Rc5<<`5Q{lxI{be$OY2X~8M4}TRn-599{_=vJ z(062vu9Q~EL2q2HV8ROwW;(iHMkCF6l@bj!Vt)1DtF=VS_IJ1X^$)x{ph>m6r@SWG zk&S{DjdR?zE9qlT(2DOL5+h;gVxw@GcHJR4+-g;8-!3sj7vjt6_;SZ&=x%z5a&jq2 z@qb75Ld;k0dii2DY2555Z-_~n=@*mG>?>)YD?8lQ)obr(nNbb^VGrWI6$d1M8?j(b zg&8nbcFADn-e&`RO(3fVXOZr~f9bM@EsG2P2RA^-zrH7lj(UWsg?<_`PREhT6RU<} zin4~<-aoX)ZeN2offF3Z(EC)Yaw4tAW16xbO%F-cLy!v`$39#SlC_OX(T^uleL`qd zMemX|(Ur)eY_-;&Ah5Ev#;68{CB9#3D%!LLna4M6Lx#1!)EMt*Lm{;~sjg$GT`^71 z5ot~7MHS6d_Hl#oSe?f+dS0mvS;n{O64qM#Bz-BKtzE5bxGDmcnlh%tjaakB*b$++ zm=pBe&PL_Tc3nI=%M-u=clyJ0$&Bb1*fUOdz=EWNW@-@5_$Xyj^dd1Db4aPE7%LOI zl=6+jYKFu>DM^`VEXkrIpo^R?dP2}B5q3KZw$kkIU!p&nx(B7{RbI%&War`7b!B2M zmO^w#Er{08K#R=K0vQJAq6X$xTZ-g{w^(AhAn;IQiHygR&1i<86Mm?O#fB0tjT6Ic=1~$Jippwnl*n~u zGifmfC?912v%GYaL}vrN$m}6e#_ytXkCZ;{K`a!xn4m$(1?|eFqFGm#RSvrzZD$Vx zBV1q$K*oqM$f~b=a5#ewp zMq;%YL_LuNWOWc-3f>Yj`*`9df+S%i3Oq3?yrg%FLbxUSm@cnfK16Gg#> z8+3w2l%PWr=B*Z;O+0X(B=DFR^df3jFfk(=B9a8H!$dZlgV1ujiRVo^>_&(nQbQ2t zMeMawtOV;I7cp2IShVT%E>RFMHk%wosMQ%vvS9T|VFe3D2@75U5;}C2db>a{=Ji-a z$bkiyK+G^s80kf9G$|6I*X9k9S)mv5CLYtq!!RPLS+q(57CfXzAkZ_xfQ>pyhv+}6 zWH2C$%sWMiM=;!aNe~3RNfL#6B4NV2uuO>EY_JiNp2*nhl8+s~k0``0B1vx}*uWb_ ziB1(pPOD(j8$|)bViJf|Z{f`t<_;^ECz4W&d7BNLq2!}}2g%4_LXu7tbqaPN01Fqg znE|9Q487h%1S7TNDi{nHAsAPT1d&I)P2}}DEa-VruMp89NU~XH<8@9E^K^^^m$gRF z>CI-nfGk!by6MDPO}tg`z*rinf`T0?(8CD10q$y$RcApaD~y?>mmtuz(gWN`c3$TpdJIqu5CFJ>&1`}eD8#BG1oOHkn;|IMu$3Tc0~DZ<=tZL$$wIB2 z@C3k@2o^&eT(VKp>Ge8dSM*5G@rq3kH5rKwn+!UgB#9VCRnQ?LkIm2nSZN3wL}BFC z@F$@jKo(52wK|w)3TXr?fMtb60id`>gq3T=dcxbFGsKWE*UL3l7cbT7n1+G#v{Ss9 z(M?XOO<2bA^(C!VDg){VFlS;1oQ-4Oa&Sn3)2)5ZK|`(ZXNoJRp68}$6d#Q}h~IFx zzI~UbP}8w%ip{3}`WwRiH|VW$>8|1TkUVlZ)da;y*FT8%$7bI4w8mHp`i%|7qr;oY znz;_H`kR)TE<`PyuAM-=1k*uO{+;DpsN?-SM^S$@&vPT-q7r%dBUw{qX71r{Bv)pA zQ4n9M`zZvp7<8w8HYdb*^FsW_^%%f7Xg5N?p`RfSoIJIyJoLO-G;a83L#8|zf1 z=w-&?IK_+pfZnZZjE&loWHU!)7hBo)KB~qb=q%f93OR$!j{o>8N=z;AbA0LBB=jnq zeq4O;G?e`Tx2_KjYHU0-*tbsL@+O;7V0;;@`?^~xC)m~REyE&KIHleHn z=jfMp^y~yGGoLb4u|_I?1W2D_Z1t6X)~C#^s_$v}i7xg4NAZ(7FXhlTGB9 zop70(#!csDaLc$gj8jet6r09P$Wp`96MqG|#GxyH4Vsx>U@|{U2p96=QVP7}iA!%= zy5&Z(e@ExcK7k+m*=R%G;@j@HZE>HW^x5bU&9)s`QIaqv!7WQ~yYz`ALf_2J9sS~s zngAgNC|t4#UD(v@j?~>*v`q4eX(7Sn^VIs%m!^x4En0Geu`=ez$ZdkEu6_h;ITe1_GXZEo<4K6rp%QGnd*qgA2?)i1bXFY+YJbQP~p-uh0{vQLqaV@MlGt*HI zQmg3<>av=2d`V)ZnH~c{6idq?*(v<9efFkP`AxIi(LZx#^Hfo9PJKsx4}VvE&yins z-mYEeks5SQNwDkcS?V(M`T7XDN4+|tZ9AwW-zag5xV79SZU=W8w|~@TzJM5yk?nB| zIk%LSI>XtMOt_WFIX19wu(0c1hHX{24jYqvS#E&GC_Kn*&Qg0`l!VcD1=!- zM-t?UA*aNQ;e$I%Yb6@<3|)>+`H0}pn{BeCxadk94>Fm9J1vA<=frI zqiJmm?@BLUwETvFyVJ|-&HDNC_2&BJ>AMFyFOQwGJazZNwrPm(L%VfS&K3$g_BHKE zc82Mr*qPkZ6lM=R)L{%ebgf=u1GEVJR{-a7>XNGmb(rUEyjLyc(BXZA*Y0ApbEBSX z;38a-ewks+T}s}G2a z503nc&uc!$*XB>}5pEQ2WR{d2Wy=(r^^1~_dr9*FF=kV$%I_SPUbykmZMR=M^3SW^ zcxw`m-!DQ<;;0qQW+H~2#$Ul3R=a%;3*`8=!pjN#E;(83|q3%^nuYtnW zkCBn1dd{=8Z)7mJIQIROQQdesS!Q{S*W(oV~cTFiqVv{!0hFl z!*R89lZ2mXnVH=kYJb9e)wgXY^AiMCyI*73(7l?G-l2*yV)DE3A?WW_mWt`HTA6<4 zKRG|F_yO3pFXwKA?SQR^(qB)n4{Q$1SC7q9JGHMP!{)3qCBHrf$R zA6|8>X#vhX7Pcpsr<$j@Yic_>lhc>YO)P84)^w@g(8kPSSIBi2UDWtQ+$2W^cBz-E zH&r6WjVr0rAxd)_*j_qDNHC%)m}E4=s@g{ws6q-m*eaI;Bv`UITfULgltL)poX%>J zK<<*gG%8&sGG*Tnm^2{zme1XG+b0m8*w%NI!Dtao%PooYs-4%&n%UR)v)LOvBJZGw zrABvKWZvTWi*LAQ$^Pk99iwsI9hz3(_Acl)rRb}P)nQL>5kh>I*a-8Hh(lS1ve~+ z>ZV7+PFJnBt9#b+`E^x%(TnJ50JPk$ zth+K;G`&l4jgDMQ`|g_zgEZbYU|U2-%(Y#qJq;_CZuPhO5$?)$DQ1K$;?z+0s`ECk zY;SIp!?IJd0?n;7G+%7N%U>PX0kr756Fzxsd2Z|+XQ;?=jJL~w z5BHd6b)mZN@;E>Gzw94h-}rBA((im%ed4{!JvK(=CXf5*DXZO-+-33z0u?u_*abv) zSDfmolUODSJ!^uh!qB4XFLcsZLWRx*I_MPVj4-CD5)8gbK|q8Fh_ z-uw|1*{uE=H`z~~v}f!u+wFo#-zR^te!brhKXl`_zunaZKk}PWNb%8n;Yk&DZ7U^HFj<9@P-!85zg8%}#dU>E^G?{t~$Rgx77r(%~d|`yMx-EKw5S5ppKZJ{V^jC_FKyiZ+q*CO>aI1-ix>KJ*n~wn`QxJx9^JdSdx1q4ac2@e zD{3y1`QvKY0_PIOrwyDxx8aMi>3iQhbj^4FKjz*8K91tnzDdwrtDY#!a{(%LdC0gN^OOm}a^G)3Iow8VH>yCb=Y#kWkG7AtaE9gzykT zOCf-*TfZ~2dqu@IdEWQ`|GZ$`&hF0c&dkov{N`7_-`$P9yDsVIyVIld@Dn(@rR9v9 z-n;jrhrU?Y;@`HoxVC-s{H_{l`Q-IWzy*IjDqDeab?eTP`!lr@WO6N~a%Av5W##-M zVsO(H^X=+N>$>Kr|1x>!GyQ!}?>eJm)(pLs(XgDk_Ko{*y#LbvW?VU2w5DagW2M9V zY<`^Xjzzx5LiHf@r+Igr-__8&^Wyfkw|iKPq0(#@TNfRC=k5z1_-tXbZ`;D+nu(j{ zPOXtvuD&%J%$u`qxrn@my*0hoh(QU-ueHZVrB1mRQmCo zH%ec~*bFVm~qnJbMs;6}Hs-tfmJ^B{h_@?xuXK_YQ z4ooj@P5ork1@8>Mb3u60qM82TwliNR3 zt`*jzHHBIJf^qnZ)mt}aM8^^6$;~&+DA!}XV)=~S2Y1gXmp8Dy|KRZ?{_dFM!B2zE z?})~M$Dq8)UXZ%HCt#6=KECqW3uex|;97Yjl|u?&Adz1>k>lJ6D)IUZTHjFmOtcBX z1VF`LC{apa#LI+82#4r1NLmCbu`Yv^fR>FEosh4Uxw2&^dJN(*Oyc%aIBq`$h_8ew zJG{%+Ca5IDQTF;QGpzy-fLHdp2Qi8K`-mAn;v`Hkd1aQt`0M~CNSWnl;V_m=;e*O^ zN5-fWQB=fB{38RHPjT$rItY8yNs&D}orJwI^>lW=W0J=Q^`eLAJ)RVq*YdeMaQ{p( zGJczDbgK%Z+G%7P2S+vA@A6t=oHiuSfz;{W-H010*V2?y#?!nzdh~O1F}Y5R=#l&G zZFa`)hE0&zz5_7~zeVu|rUDYD{SsouRj8I^MR{cd=)bgK%DE8$BIizNcnC~ws94!0 zUA9y+v7#krN7HkxrDCFHiS&@K^_;mg*wn-obmQ>H#KYZL6a4q8^6HwJ>hhg`2!RE& zu8l~?6MS`1i6E2|Rr86@9p%@z&FouF-udHbJljCx=PDG82%GG#i#-a7Mqj3Qx0=0z zsTz2#eiEt(mPyZm72vFSaL($pez2OkMtXMkg0}fqt@JDs`#~49lutRU?cq1+Ylgk_ zA3<%`%9UNy&OCGYgY?T#Shsyr#2rb$3$6iQO_*@4XF`4PpGRWU*O569hcuUjf;fae zg0*hgr-#fP96w6Uk3sSnv^3xGy7bZQk4V2hn+K}PHAWNP_4f9@7xvGdz5j*2l}}B+ zJWn&fcRdiVza135P8UiqOCP!#g7jmfMra~5bYfTiPQ1vihA zbvK|Yu$F3lAR5>Z2movus{rU(258|>CX*(JF3{T4YN9FAqg!cR=%y-kb1OuTLC+eS z6_sk7th-N86{s$u91e!;Q;gY9v1Ma=E(m@-ve{;mW;}g@rVN^Ubg#~ zGtB8ANmzt|R^EKGhI7@1`8CbUO_rWp_ghSra3wjDeuZqHlJAPEME|i%{Nhy@5ejSo z-Ctb|$eHO-p%*>`b~~#KE~m7YozXmFe`(K*=FJ8<$17yBP0p8+j{l*k=mWq#gKu*6 zSJG3NaY4qdvf=rULV_BSeK4#$ACnQ?OJb%VlLNHEA^al|tq9O^x6~)yarBzK3tf)z z%{wa^Cbhf@RvkSGX6NBtu|~%jpsTOI?cft|JCnTPv&#ownO57oWOmzzAg8+GGa!8S z%N+QX)jSUN)uSNv@WVMB1dfYn#F1FJT4d``7sPMj6i5W%)EERv{G%63uS@^Fqrdk| zzpt<|I&=ChKy$|(={qs@z>(7+6tIoo3z^_*CfWDI+BrAZ*Uz(v#TrB36R$q;$>pD& z2Cm@vx2H!c*m>SjG(Lb66nz02!@RN`RyIJyMOHRWC=T&xl%NARm}HxvO@E{>Vl-wm z^ODrhs06*h{)%y!z*N!6J`Ao@F(UnIi{tpt0>~Dc=+ZSnYjn^J2BE;L(nvKcVLpGx z{E_-lwCF+d>1cA{agPzht$!o|MFp^W6(l~MsxOs8_If3XXk^FT>#l?HJ_+nA?S&Zq zuCzWs+%J{NY3hF+AHd{x|&6eo#$2XRz_6K#3Dp{Pb0||>)oX!W;jd}Z6-{iI#8fOdIwTDV@rK0 zgHl!_o(qy#l@A7iCyTe5J{#qqpC<2oP*&4p(~91R=7Zj>TuJy;OjIegl-MRoc($@; zLd~y4Hdth)=}1f_Beq}!Q?g-ab z*40(kh8^~zI(#fvSi7aWX47q}9^N!@;--hm_%GwPI!PP~QB&t^Loyd5ahEXVVLJwM z0pBttnEu$HsMqPFpQ_a$LFg8HF`*zqYCJYbkaBxvBu3DSYJvV~P(I9Bn7}BDBJ^ee z7l~>)3#*vH*(3ZuQ4(WYk+T40Y+0COk3EH5nWY575V`RXCUoq@gpMmTFk@}L@?30f zz8%m_Q&#jJEZciO>@^6Wm)Lm*35(<)s@4kK+r$RF_x-qA|2C+6^xD>g{oSp_N5_^i zL>!l8oQJF*ZbU&=IB6O2V^AyHrO7MoDatr#z%@bnbvlC}kv0asqV)Mm3Q6U2jPukY zsyAoRVY9v(bR2!9B-mdL?#B_1o;d0N`0LFef`!O%G-5v(s>42*ZYJy4A)9)cpzOAx z4K((3+8QSh3=T|bDA)%k? zS1uZtY&p1_{;lHBk&WG!+hRse(uKeesD-NPc@b z6xS-BA(BLGHf&)^gABoZ@B2X~r!hDCvD>@1_y|xPDfZ&DzuBzeoWb|+#fKWEpw^*f zr-MZ6N~^T((1#x$+GqLgwFH{NU4o=IK{|(M?+yrPr^F30$JVvKwd^AYuduFcMNOmd zWy*F{yqXQjzENxrVjQiVB3V}`1&2J6@raTJ2{IxxI7}sF7br;WTbe)znIr~Y+qaZP z>ElS=l0Bb>hEq%TvD7})rnxw=$fzi>?;jaPC%$Je*!K$ll4Zk$BHR1OnI;DYt=Qm8rhbh2OEEGA8hKVEl zu&W)LN+;20G5j_D2xu+(P@oL4+Dn}A21lpABfJw3jo!3p-x1mFE61;hXf}{>WakoA z0PAQYJ8$-4UQwXT@MbUqrX?6*Ib5a3WIm48$)F#8I7OOGev!3@!M@Spz&GfMwFWyy|RkAXXfWC1SE9T;mMPw~w>OZ}eu`v3k{^1tb&S-*_D z{#pPsnEn3fNN=MS5V4NMh>v))E13Tyz5Dz2z7u#QjK)EnmU|&Nl~r>kUe4} zCoOu=K`=OeZN50A5ShW~AlT~IQo-o~@0UgJ3OX7w`+0u|TLq(`XdD|dqw$Cx9gQ|Y z+1D3D>?~uq@ktHn!n>eam--i!% zymCn?xoj!0%K1GTpRPJdb1HUdS#GSBaYyr!dSqL^#hqP|*R_IZ-WY;ajo%Rw zflCnEetO8`k%`7Vo-~0;;&3pRhbA(`F!2qZfnCr7vs?6d3^6qK1at0ac|IUU60wfQ zwvmTwZqFE~I56;N4jvdYHSve;#ZmZ?13}l>#A1E!Lr{%`V;moZi z3WOn9qdbgDK)*J^QIC-eK=dYd*&F?2Plu!ln!sop0PrROMWRk1sg5FbM87HA1cP8g zcb!DZ+K0OC6*6`bX#!c_PtWjpJi{adgMahqA1x{mMJa5rtw1(TW|@+2$P&9AI539V zl^M(@do4P zkiGVxVS2Q#dwM@?k&WwDkPVY2aQpq!hntu0TfTfB^Oa(HmqE?;?punP6PND$dH-~r zQTiWQT9*y!>8tS#r%$KRB zcN7f%K>9Q9bE?f2quS4P#@7sPn;$FI;h0^L4gX-2RO#$XvRJJY`R;0{MR+DK0ACo? z5vIDlv|UD)@`YsoNH>iszi83I8yLSY%!D$QF*(=R z=@O^(J0Z#>N|zRZpm6*On#$l8;z9$e@>;ebEWKB8pyPNdTW++nOU2Hx8R0U2MX_|F z!{o0l2J3B44d$xyFldTSx~H{Kx-mK_SDB@QHDOPd14!ZYE~HARI>OXLOsGKuH{wQP zQoI$o!DwJV$`pnk12nlI8u^8MqVID8zm|R-P&u3h)vAI^AGowYHKEoaX=GoT>9Q}) z^tBIvE)9SF@LIG5%;yh(JesWhwexSd;e2!hbeo=4t9qOcQ#E*_U%r}r`VziuZSFQ` zxE}T0j$bz$f%22>{n+CIe=h$)-Bga+2}-T13!DxWuB#OP&*~N_s5WJ)r9!tsRfX#R zZQZoQcfSH#`7?fqxQl)NDkX!?G+A%Lq*Dt1XEl+Hg5c@@sPKxMhc@yo)A9W@B+MxP zt`ZaF_l5kN3<2S-r4xc7B^Z(hL5_IHBw<3SjIxp5emiyG{R64DrME%l+jR16kQ#Fh zPM$@oqj-3|EiIDXP9{MmcmQA~aAQ_4g2!U)M~&yoxzq}3J++;>h-hB#p`IjGd{iei z9H4r{^U|TbG|GeC8%m>E1Wumkw8u}DX7khLY&wefMZ)kk+9qJ?HKBh=(~t@MQ}!6j zG>imBy4RG>o+leH{%&R~QObU9i*7rBFZd2ktJ9<35&TSyq6r2_j<525(_f7_B#pD9 zY=FE`{z-!*p9#mG4kz&+eh`g+DFsVY*45dla%usV)-t|9yqWNA5NrT2%511u2Q$%e z*wK{9qDRDu+iNCb3=Qtd2QQz~w)%nPhd=)MNc_xI@pxfn!+FQg_7@R*SCJp}EjH!X z@V~oh(d5F!A;3i|B zz-6$}oBWOD;|5}X`-iy^8@0Ek*^t08Tm1&FyKqsXS|tYH$9{{oq9xcG7YB5#NwDD9 zpG@6Z)Pu{ZT52-28GnZyZ;grM7o|f{G*qflb682G>{e7SbQ0CoYWsiHEOg@OS6+Ma zk+HynTDf7Mpdkut4$z85_H zlIq+SHcIu+ZLJ#O)N~=|;6+Z$F!Uc9qiXJm8S*bIQN36WzWCoYB-Sk>5v@pkb;6!!R*~(s zC%E>$DYNv)N9B`_75?MC5T&6?Q5~vK+tX${ONZ1zBp9v%!X1Q}gJPIC z2ua`~>juo-07$pDyAL&i)@B{}TDoxoYqOi}Qk&Fu<#=cmbH89DGhO!LSCYH@1 z8cpg6I=&isWeZ@|%;!~nDddH2j>tKVdLP!~5vP|bI5(X{e}|c5##AvpIKpy4&;2** zFKYES#IS?1{to^1=2an6dzJ|q^iQRM)@ep8u$@Hw)%xvmlpbzYjBTUm!zqjir(+NuJ$UYFLPf(;U z0J4eX1>_Eq{DbFVpd2vE>KCLhTtJ4`0pgcd^r!`Jxc~$Oa!2~&D=R9}f^*3Q(hsfc zWcnp4@0RzCc$hpU^r8=CnCLc}W#7&b)^9wb8S;-3XLki2n#`vlE_ks6Ys!Hn8VC6S z&BdW9m7%gY+A~`B&TOh()-tieKUFX2^!Msn)gYMAbNAjkz>&GY0jI{6H#NI#_IU;7 z;(%B+_j1-p)WvEF^;8EL1ry6F3G{KkXng;+*w|aQ4bMmc}*RngGwBC z{_Wj`AcS{Apb!MGbv6JzL--{AVYoEONE1*rJZe#_#IC1&Sl<<}`f-H6AHxQDqY;tz zN4*5}AQEeXUaOxLfz?YKikZwC3dt-nBvvO9r7!&UkV8e&YK`$WNlL!-{N=!M1+=0g zw5s4r0Cqk1D*QAp(M;XUGiKH`l|{k^+d5}p?z(d>tC_y2J5GOc|NX<|YMs^MICekq z1JeT^F+sIXttJ8R}w63LrqKVsA)h};qtZ4T3$o-AQ z{$uoBRHw<`r%vq2>qLLgI(?Rw7F=QJP@u zF;U<2!eOei%!jrN+R8e<_sRI#C*xuf#B7WqYxVI4C?h^+NPZwa@7O0hRPJ+tDIdr~gpAopka5;Z)V?D}_CfrMJ!+9GvxWG$cHr3@-7s4m zHIO~$dDQ56g&b3X5TB28V6y~(415lZYj9Wwvrf9{$i8^2_sk8?lk$$K&#rSMG}6z} zXqdOiR@#xi{>Z+y_rY0f&e|wfAPU{mP04*n#NLQf5$A}i>N_P3y3&bnfw$-mxQ6Fu zeWPXGA)oBqfWAx7Y%#EeEHaBf&LpJ7_T_&|b*#F4>+YyYSEw^ZcW=FXRfp{40uwNK z{F=6D&(V*ksRa*Sbitf1C(m)bvun-;7d^N@9taf~iOOO^`0;pX_nN(dQ63Lt_eVtu zDZ*Vgg<2F%Cdbg{mvi={^Bg}h(Zw;sRG3`ej@jqr4LX7(wiNIX;0z+u<)vpHCuS)Y zM-LI!Ir+Dnv>Q$2+#w|Eb?1D_0}7O5AdJJCMmp2RqZn;K`K)m)TGlDri%tdzL=2R@ z$>|^HR62&15?aFvYU6eCWVdUTr)gkHi-j?ln)G(Fjuq=CuB$ItzHhk!gbiAdq8W4* zE5GwzDP>agpce|-wf4ui43nve_VhpK-dNo<&8zbBx>|?EGkxMDp}Z2;%3G`zU@zd+ zxNapUJe+Kctjc3@2H%-(E)1}Vv_b=riU zoiF{5^cl?=)Cse0NMiy!dwY(6d4M%o7+FdM$?v2apX}+CE;ea~7&U%r7EmxBs1u?E zBn{BAdG?R47PGuQN98pJpuJ)&ggOh_deI;4C79OS(R-yQp3oP%>K}Yndg4{-Px$v1 zW_ZmHo0`kv@ia>(>OJ1!DfILB4@{Ze)%BB+zAt#dp#t$(9a>do@aZ`cfs$|Dp|4si ziqdN!B8qGADy~r!!7s!*c*!VD=2iGCh@gCRBEF(g&J5o@DW#e5Cr!&jW{`5+$4M7YSX_v%s4XRgYtjhL$> z7~KFsZh_H-1@DfR4Key1RE?>Z{1Qg1lRqboF#3hT?c=mTg2aoMNe_#o zo`qp({308P21IWNcxg7k^qYpStcI&?FTJRL%m(@ya8_;l0;5#VCX?wOr+-F2{8;+a zkD}2lrB7FbRnYS^c<0#4yYD9bS9c=8{Y$}(^QxifZ4xbyhbM&|k8@u_Hddqw&hXu<01@45@j1!X@`+RDVsJRS4%zEyb~ss?RBz(o4^MVz8L?x4y3hfP6&C(T4D?{!V}o7s@UuCm`rBl7_|KKO~Nz* zBt$_Bq>}+rrAF^Eb|T8X!v31ba_C*E+1zY_2WeRi97Ao(hcXf{(SF%&7PL@kPQNI< z2-d-VG$3QXk@P_{Zubi@`ikLgf%Spi^#g8YQ zRdx7!c+K$E0J>;!0OeaBp!WyRMQCSNVEu@8k=Od8!<5JIUzMF?>EyT`tFlUAq=za! zf+w_k9F4+he7Ueva+qj&Xc@gN=fsuF=MjZNSslGpOK3*rob=v&N>MaUq7u=^*gaGs z_N}e}Ie>EP0q)OH>e9!A(i9G~vZ_?NLA41aQl)~~2@*mpdgU(qz5v#e3KnBZ3zLCB zF-Y2MQqn`_G9(A1XHdAei5Y#3;y#Ee1kGL|A;vt|h`?= zEh0i?MK~X6Ih0Ri&9Hnl*SuVg0FIAVX9k@j;4`qYiXt8hK}-rP?~Oqv`yBM5mon%M zm2UspMQ7G~HTP?bJZGaT`@;`hS*p`HVQ@rqJ&E$8k)RiwNCrb~D|&aVX@2^TI$G@j zE4SBG50;x*m>SVox$z&OH!DzXVnYFDU`CTSP`nLCP*36D4IF4AQM4z|t#FLfAxI^Y zU{?B1Cn&Tc|A06q%DLf+QB!gb!wsWcRVf%9@<)T3Vf08bx|Nvo1-q0I+eIm57tEzF zS$ebL+o`7sd_sN`(aZeBQo`i|sbarB?HS<+I%@nHRVI13PzH(9m&sh3PL`SlJDMfh zMUb#>J9(MFJ$}Ex7^GY-DN!u_?)#UC_$JFX-?F|1y%`^zDn z6;rctEXy(wupfx}O?t6mf?(Ke5Z(fm9X(%v2%BU9&CoPV4(N1-&CWolPG=m@8n<0e zGw4D9S)NzcDqe>h|db8N|s#+guIb4HUx52GgUGzg;p%oVt% zE57;3^9Ruq;ViXYuVKr3tLFEC8WKGA2Dno&+>Ku3HPUrB=RwrP_K5n648k8D{=+U+ zfo6{uKs8%fvb_6U!EljYlrDZ+1~LXz-3f|*3#}hk%Dm-S5fghZwqdX*`ve)57wcQ; zP*{bHb6H&z=Db#_p)g2dI3fD2Umg++m+Hm#ojsietl4-LZ!)UkroDl{?49mFPhBij zHM6?CEL>oI@eWacsX=I1-_a~^X5DO+(V(a8@z#aqE6y{Q2d0OsqxHSbrBo$W>MtTiKp8vt)p7=lAoDC;mB&k8WXj2xZ` z|E>TwJGRd36$}s9-+t(RP-4)itUouYrPndO$H2b3Y|?z9Q@f+#zpukZqsjO8*J|^_ zXf;^A)*xK_l;sKOR+Av;z{XeA`aODa!5qPWPHYnO7vsDr*)mrkK!!-vApGQ%*RO#0 zE6^m_?k0;IwHQ?yEnh{FM&oKE)6J~84rk%ul1EUdAaRMnBX55r{Y0hG2tN}w?}`CU z8UGWN^(SVHS|$DRUDD_N0DSTmRRv5F3}@-Z`GTQOFT!?{$s|Y%g9{yt%-~+pWH6^+ z5cPcqVZNw8%OFV4=tYG`US4<9leIeT_?RChzhv3YnEQ0HDS1?5#J&AElB*wVOusBW z0=^>(OJ3C9pD{~kY}L^9GJV#|7f1LkDg|W#48H@;HZ7lnzNd1!%NA z2lWimFWM~jx|kUE+P#sGA0I%AAo+m2Mx;rPq5ZVXAWdgWn;Q@5%zN>QBepi4&MF*u zY@dg-4^0OEZ1qd;d%#^+_$PxyGw+^_j%@Tw?-I=JckbmKhaCJ5j^2;9S~DDc6W8Z4 z@6~v7_F`6}F2t!?G-4w@R!PAkV;Biy)ctDcX{+`4DZtv%(p3RA_Gi#OJ)Oq@pFz47gY_trV3 zx6azp*K*WdIi-0~?JSk5G1yr%FP${w7<}uEcU}J*W)!;;@W`LGUD$7)fl`x3hAbVBVC>P&Na&*BV{Zl>ZkwR_DNNPc8ow#6o%2AX^HK6?Z`v(#qj%r8p)%j3aM zj7~Ep1{*GN`o&ynF-}$5lUWeTp>kvPEceA z{q~Mm>pZykf1D;MPj{L68*}v^UCY2JUi~Ny%4znQ5fzX;3(`ScAy`aJu((&sy{7jS?W`HAKJaRvB2*%s@CSfF3y_R} z9WF2j3ERG?sjjuFvvzX&&XZL73uk@Lwn?pFhY&KF0>OD}Owc;Jvj386&)#{jTdKGp zKwc%Z&Pnb3V_W~U&E2sD5ok8`7{C!VS~zDM2P%&*_iPtg#JQu*T#jaU2O(bZ%l9+zVV7p!y6mtqTJOhVWI-EmBm7|;kMWoRq3R`OV**2nAy}b|;%l{FA~48f^%50y zx&i^0GdLJ@O2ozsJkB697&p>kv)LF@HzqDF={C3DzHr7)zcW};;OMLA^a@V3n%5Ru zL}$3G+G|t;Q50x{iUHP{n~Bv1-4nX9K^y3IL0hG#yQRLRAuuqh8y35q6#xXB@WO%s zgqsr!y+U)KJXG0i5v|3wrOj?fu)EU7IV^_FRF*3}LE_3>3ie|5<&9p!2W(cd8isc4 z1VbQ+g}1kxyGt%kG^#^JvpG!DnU+ZZMQ#Jq9*?ywnz`9vad3gs89|4; zxwN*}Dq5N=L*;>H!MiZA8NxsTywDi{pu*`YhTW3}0u89)x;+?qKBLP}6FX7`)q+}M zHMNJjlDd<6g8CWZGQr;PSW6bcaB2Z0FrxpXEc#Q7co9W?Z)O!A05(9$zaf+bi;q~# zV6|kJVbFj`9AAro-)cd*>tc17#|Q^z)Pg!fMd$SpL{bIt(nINmkrp@C~z44!=^4F$%n!ip(aHx#+p}_Vi0V(`JGnc7y_6HP;S+!D0h#yspge z?db57lhr!D$ zP&%zYV|pYyQ|00P+G)UREvkvQtX5Z~rpWqqM+bqh?%=fO?%oe*igH0$6x|%L*as`8h zjolL?PN1`D>H6Cvk=yIi^bhA&HnBz{+f=#m@Z<9;nsK_hVjkTDN`L-y`%?Q^@n4;{ zx3MS~ENUbhS2Nfw{iWCh9l#|0J|MWNfNG=;7kwRQy!;D^kUr$am;GtL%X$v^_J&6 zq>EsfaMUY2q=$eAjqZ*ClOtlL@5%iP_r1V4J(PYWWVhMuAu#8RGlm=2OE0fm4Lpk% zyIlee7OQmO2{CY3ZI0DeEM8nSA!b&CIZM#67Jkwd>gWs=7KJ8FMGF;}9$c^hzTq@1 zYJ4v3e6De^-igvp&%%#Mdf2)4{MCl)KwHHc;pk?_>UC#R0d+Bu(;&InpeMD0- zY2jJ30+C2y)?u`Xx?F1dXKziK^w#9`!cVt0^>9`z*V8oc1y1u83y;!_LE0q!9T=zW zKWm=!-Q>q+qpO2GkM-c2%#rl*)_@}d_Dk1!p{)Y!l6@#KSMI+l5l8$3PF_LB#oAD2 z!Hl)S){IgH!~i}B=WD)k1;4afG-&|t(rMN9FH4>DueI9rSD;6$(b&E$cSwf?2ns@f zx6x|^X< z$b^}4U&h=XAlI8Q2&-G7ihW+M$!IY^3c8`uXzHKxhvD6Sn6lnvFhXUY-mB~{nPvtF ziy#Ek$)KRpfW*PnhWjRVtyUEjs8)APyl=zET}sBU;!^B>VjsoK#l`5;W~{&(;-hHY zkN(B2Y8_g1e<3|2+1N_ShSt>f>%js5z{2!wus{-|N7*o#BiW?~!9ws?=}}3bTckIn zKZ7>uqYcvU36FYULoX=AEN9Y3%x|SXOK$>$^bhIp(oaDVy<7UJ^barr3E)~ZwtP+e zM6{^A!7^sYLM~4R|&7USrkA?;d3D92}nGrH$V7q7L{@NBUoD;o7zD zfe(_BKm7#l=>edwakbJ@4%eG^84i!s{QB$AC3%|v$)Y9P6nf?F?m{DKP}hmVs@hWAJAy~7XS zW6Hn$Zx5o8AM<95UN)izk+^q+n-ldb=^PkaE=8s2@;;~m$44Uz9FSfgf={Mr41${R z;(2@63)y>+ERLfQJE*g;9)%0xxSSaJAj0@tL7xTsL_{QQm9R*{#7@UZ(h^DR0Fu9G zH1@XvBr3Q8CvpU*Ab<`t_zdQlh?lU~Z-TB?ZHtDA3WFtG@r{OGtZbW3GuJO&vg0Gm z)XEy^1L^aMa6)h|jW>Vvep__u0+mr;S+d}bm(B`LnUk;-csSvYFg|4EOiw%Kvy~Oz zVd>Uy4;Za_mWOJ;)v2b7eDx*nT}Qx9Px;^GObIgLS$-I7ZW#RdgmLyfG zo8b<*cwP7K!Fx+ivCAg{byHb&nvJtIk2^(~fQ1`~-B>bC% zwu`uZu;hvbcO=bWs!E(MZMyTqUQ&IscLi47n z7VYb&VZ3VcHP2W&LY22YSQ+fF>cc+wFW&N&)YfZR<6TnU-8$B3tiI#BCw*??rD}7< zz;C6$?^_Q4lb&ujIXEpF6;^y5AD z#~1e<9+>HUVCv@12^JRc%)h`4=?T53W5UcgKKHi*SikhV^BSS&UFX7O8y8lwytHUI zeau}Kbpx1hBbOOhL!6%r!>HLC#m*2s>g7n7!p~|2W9*0nt(8qBbp;v#PEbcwfGvow z>D*hf@U~TxE(Lezx8L+!AgYNlI!oAZZdshUoi`XZ$fJm}XP>o{G;$ z7G^lE#8km__C8jV9xTUq2dngqC>|%y&&*KJ1klZ;q)Fj|0yIz2X>!jDYJ3JW-Y$bp z@Dwh=s6xS^kDDyD(X^WWmIi*|Q@z-+29| zfk&pU>+@BuTsvj^^18ZN{)zjg4~yJwu~?vko<8kyK%-fB;;vmUdOThq+F}3k(Sd8- zZl7;rNundNeA5NLV0N@jpWYS|wA_sw)|b&Hn$cx_;R$xPJS$Vc95561BV`L8N-w~F zTyl6Dc8h{SdfReX1^*{~HjJjX4}Y->-bkM_{4uQ!GSM+zhmSps3my znV%SC%gVEu+_`1wM-qV8f|rV9VICs(H5{0TJ=3ulXfbvHz=72~`7)Fbqt*sK@YwAh z8#v;z**x~)K5gK6Oed~|(scvW)46kez2r>=N=#Z+Fe z6;?H>R&+=~~3~vQD#$VdD?WOod zdY;qmD=*)t<9L1g#>`a}O-*PX#q!Q~grmYp`H*B|0VSXYOaWgK{1HEyGjMzS7glWDN$?CW~R-3(+=g_hd*NBm4s!$!8 z@;MTuWoZL-c)8~{prrWB-U6FJysB(BpNJK>$p5SMhNr^ujIAihtTAPlxp3{48Af^u`v=XKfi5OSQB*VBcwVm52JjRx)_y)j{+~&Pv-MG((%Q1a!UY*dXt) z2b@7wa7CecZBVdleD2BxVz;GoN=c-!=-z~wD5-F;8Xo{?_|_N}nB5L*)D!Wk^#atf z4Divk&vK#Pv3jDtqJkDIn)4@gR%sbD@Cj~S6|e;@=NNPhtm_F)jP{o_Ok$CYuqwXT zh(ryo#^s9n1ec&TKwD5SSwv0!8Kq4vUC{~JkjLw#4ZvV@nq15pAOa3m1sG|qo|EPP zm6>H#8VF1pT7_RXlx`Iq#sZhANaN!x*a_!YENyphErm?gj&P{CSkQsiIqnjhb)rv2 zy8)=J19W?VXylm$>n^pbY1M9{nr8Thb^scRjg`fa)~Z2~Xmf+|62@rI*@3~ys_aHB zfM%dmo7Dymm4xPs8IeKKC&L)+0O(AjQO&3!%Q76z14FY@r)@1((|keOgw7)Ffd*l% z%3&>TD=ZWNJ8_N9!`LrX8^fivv8g8P=v0|hkX7?_CgaqgiVGKX*o%O;)ni?^*eL`& zTDsiqgiy@_qvdBRo@Qtb#{+1JGe8*9npFUB05C3^{S0y{Xassa$LLv(M$HD8V=wCp z>^7U(q8Au(n#;rs>LMHJ#^@y#dI|t&)}wB%Gi&V&wWbMy619%e2tHqz*TT|zV>##0 z*|f$^gIUcLs5p;-<|^wZhRi>%o90tHOtvD-e7!c-X}P9u;1_4?tgwP2SNWmN727wh zYkG5G&6H9IeF4L^7{XVP zv7{B$x*2>Hb*PmnjNFo zU?uoU&N^e^)ibmQ;q^7G%Xq^DA1+>e+wx9>9#98m$ai`0{wzg-ZLiQp@q$BTQEV%rhLRbg60Ef*gQQGBeQGDYl~_l|9Y_Nl8xmoDBthdysb!geRqI)j<{GrP}cIsPPiK(EtSWZc_gMc0-W z1zcZrNxP(9nr+rfn?<9RTm`(^*3IsXujua|{?rT_z(phVaEcFkV2p?3Y4AX?J(tMK zU`VlaX7>hz&SS)s!J^+3L+qr(6e013!~#m}ptK>EDVXIAWGQxta3#vtn-J}{iZw8CsgVy2NCpNW-Wsru4L(VwfnQ3su=_V8f1J>?9lzp46jQKYoq1gNgF zK=Q0EK$)c8i~j4Pi~b7?mDX2)`TL|bM!^}Bz6!Uuhk+^R6pY}uebU1f^`%7)kX*lB zN;>FXe8EL>Ss7f`0P$c|1YQ40wsMO6 z9UdShc~hEzxAe6V!NUWCJp%*awOlzeIxjEwTW`f`feZs2L?V^VUXrieVZm~fxv08y zL5riLxv9j_vY;$nWHvF2Mh!5Zg7<9GdW)S%S}83p^Z{pa?=;)hN zF030R%Jeednf_*P%41OH9V|wWCV=VmIOFP8R~>s2@#Vq6b5#DN#7 z{p!Tphdg_8PFb;m|0}9Z?3vVk&C;Xq z?*07XwL5?Q%0G9!4hnC-1=wHR#lf<&;+b!3x#8G>h)`@Om2tqhlwu36P(1&LqSHIZ z|9wnMNFon)0Fo*E>QB2Tu6fhm&#R2$SZ_qi^@unyWG2s`i zCDFceLNc7yYMcVx9Mj004uo$cp57XU;#k!z)c*rSDPA7i^G(Uo8)CC{j zepIXzMe!xpROWGFAT?Jgq&K`_H3?D6pEnQUiUs8h<=aTVgVe=8`VsoTPn@6tzl)hd zT|#{AIC&jsj}${B4M4QeW4R!j9ceV~+bx7J0xNy+5wyr6C^JZE!Lua(b9MLkF-f53Ng(JOb?jw1(k#*$+F)X6nqv<^+}*uBt_g5>!XUz!R$F=x-Ard!nn0%Sx>+ zs1O&O!5V|^0*1Bdbk+rvs#Sn>_$O5u3piG!nX-u;4u_`n>OsI=WwNoHh~!O%)>>=V z7Zx=yswrfFs-&^6tF&FO^Qoat)H)&1vF2iLW8LDQw$)c%tcHxUVo7V?`5Gfl1N0BF zMzzeX`w;gHJDt*yQLmbsPpzZ&pf57JCdM-|NumX)J%f*lnl%sxC1@>&KgM{hB!Jev zXk^53sRG)?3qm(`_`(Kl^y!ktC3FJ?U^9l+m-3=AK#q|^A-uSim+0^wY&M-~wF#ZG zx2n{7LlJLw8{AJ<{b}R++11rY`!}vYtHeR+#DPCbzc;7{0XXnS5CFkx*Zx#WOCL-B zdS~wy$p^vWX%nj$&S2!YD}EEMs)DRRqia~&xpiKFsH(7|f>{=|Im#K<>1YP?7e+$r z+L%*SSkl`1$il)2y5ho}{}}d7HX58>-z1OgHoc2wwfbTMt6jdfx5W4Sie*b(MNc>P z-Z0r<|NMZwxw`Y3i~3qSwm-XJ3t*BDUNS9lok54X0c>h%+oCsUQIBd|2UjfLS&yEM z%Fx!UM^AT@vHDrP=`Aj&Q0toWROh6qz!le5bI$4c^2KIKO^KLao$$e;wKitGw?H0~ z7?%JOj|NM#jS-l$AAae@hxh;7=l{8MTl&?f?*}DJ^yydAPlA&Bean|G{Px;wzhzq_ z*RXWvs&|3oM_|%#(&f@8@2&!ehQVLlzma~VU?WrP4kW9s$GR69i>n;P6NC&j9vdJw z9{}`u#c-O%X|@=|qG1-T{22pU=Aa=8>qZRtQ|54z-QiiZyl>U=SK!a=~2h=9e$s+*S~E^0q0RE9NXnRB@B{tX$9%@!D8Mr*ciHuQLQAU1v9! zu$)Cu@o0@?sE#dKabYJ6walD9ue-@?w%2lw={?)GUJZWOv$e%T8{7pN%}3IAz!@w6 z?;J4*Dt+a&-E*rg{+ZpC7Yza$(&nQ2X@Cc1j+bZtw#=qy&fWrC?en)w{{;H&^V`AX6VwSX z75!Y<(J^oP_B>g$07*+VN^H%zw4b(<1V%AQh4?c=N+}b6K6t7iDR}ib{GSh>Dp+cS zT&$FJBztK-d8u&HvSN-;T)-T4DQ5m0JY`{rlp=yQ%p@u^m`W#3S=uo&ysR_L6%(8; zYKaOuEoM1n%WT2%r>6++N@2ewof2}T3l9I{d&E-l=-V&O#jpz}LD*M9*2_h?YUO;)IM7TN*^K)r%vgMEblrJuU^pc%N)Iqj=Cq~zmGo&g1`m#jIf}A zEN=u}16v>?FU7LXIc*@CpU#9ZA$$qRglQ739zkUJwj$RXgA`rlegpWmz_L46iJo-pX3=-ucTi38_F2 zEI-Cxvbnfvzk=3mRYG*+%47$ltX1rL#!^c%3#2qi7Qnr7{6_C-Bdf>cCwDqkq_yJX zpu)J9A>!fCBU|61@*aVK5>SBwQ~)|sOZ!C( zX$#y;g!KmDhI8&rqEDJ{oH3)37xjtco#!x%%P%x7-cePxW3lPNaxNO3-Pw73KK;#m zUp5T53Z)_E;;P;5F)sZ& zuA0|e-EEBDQe+W?74};h` z>DTbv*)3;!o9?$dn-;{X?(4tTVaJJkqUxR&bZrzg#8k8KU808^_U8Gqs=;-GI7__p zt~fWVsjABulU}S>NypZKruC!sHD!d0ZIq7)Fe}9G4M3rO4=Fu1(}5MN39h!4jR#sm zz7q*ORP6P=6kXZgzB2riYF)XezLZXs*2l|+Q>FDSf$FD2bfKY8bXYA`hlo-%(E8g( z`kEXc0#ErZw%sL@CV9^HsDdh~81q-Xq5FDc=aS^5BY-r7$&v1%i)no+Gjvg z-9lcBMe8UJgQjYT0cwJ1x`|Pqk{H?#V$KY-Z`;!WHoo`;t745R7t<|$8ZH+NqWIeM zJvuW-8+ASBJs^Fe9OFHjbztro{?;^n zH`oBWzq8>FXj3d{%p4{h%O7*&=10l$0Sd-JCEK9iYDpY&uVGn3v45Rwo= z4=wZ#p%)Q`X2*h3RFtTQiXAJ8Zp5;#1$A)?{w=tR?&|8=3y`^d_ue-N0olLq_y0b^ zym#v>_uX>NJ?H#R2dMnyiYq=rFQWbEMG}I^yLR>(rhw%@Y6w+0J5*;Gwv6SWCj-cV z3@G&mHISmGk(90JOYMGkUgwB}(rR#MTuMJb|5$2`gwM_7+8=uH9kh2A+<)KvY*>8W zjhpGioOIVGI;jZz0!6@6q_9U~Mr{&J9B*1G@vhRPn zGwT%2D3{>C&p04qP*OzCILoB)jnDl=C{N-6F4^Z>IVltEz6rfxFw>5bF!1I`BJH0l zKrB{GM!}HQkHooTvW+JKeSWYc|JHL4pg*I1=+6&udRS#HHgj#}Gu@n$OD)eSkyMwJ zLAgxRqmjvBSy`=OEPBjr<~ngU*9i}!mja+j@5mFd}3?woQ%x38=RcwL;iwGDT zJ3&>IlU1V%qqC1pDvRVaRBwABJ8(nC>VkNzq|904Yn5+@^{GmQ0=_s1ybQuuYcz|$ z#7|cF*^O_GRjWhO%P!OXoc1BZe@xd<26)IQ6ZgFE$nr-sEdqWDO5|ZWi%ob~2L4I; zBzpM0+tA6QYt|eE&f7rlU*5Uosg3`WO#aWtvD+s%dL*bB{=2^NIJ&=w6aZzwd34Pm z{;+D(N9gB|HWdz;*d7q|%EWns*o=CaRw|J&6Q#=_RX`_uY!QDN;Fx%y7ajT}2q;W2 zWUvsA*c1^I(^ITONE=C5@PUg){IO!p4f+Sn5_onnbAz?oD)jFvtyZF!6s}oaB+;W| z#Z9qT6Zl=MsThaOG|upEdZPMOk{F2FKQKrJJ-*Rb9BB-=CBXXfE5Ita{9x8a#v@pw z)l^k!v=T{Ck>p)`G2E9r0_2*-?M03L4heAN1&U)$u}BebLaz!PfyN?VnZ}WE?Q5@H zn`zUOK6}9hap-&uDGl|0MCMc4PTq7ok!A|?HItd|4<%^h1Vaf6`F8)IsYFZl&@c6t z*!xwg*cUOCir4blN3(e?Littsc{O>UT|ED#A}8Cu(Pi(R=n z6`6Ma>-!FTEwQ;l^gQf_UHGE-ni5HNwq&O}KcCi2p9g1GxLdjJLYcYv>N(lG9(^xq z$*jnBMN~G++6Nz8YqP3~z{!jAB`!Ss5cJ|i8n~-pErq_IsB)44_*hy|r4k4s6X`(b zsYy=jSl+$d8FcJg);?mH!)S1TD|eDpN5%3xmw^!%@-K%RRl~a$4@aLE9S-B_we3rn zv;n-BIt}rU)~+`?oQ6y6&P&>sE(H%>$kmWJ>MkM4PomFFF@?m37R}T9oxRhC7I;rz zjwK;xalwjF6}^uhJOhT{KeC8mKqtiL% zd{3$dWlq`* zd%%fFn`;Js-)?XM_H3SnGE+61xs3A__N4e{monU^xJS$IeRR}PJU}sL$nxN^0iO=w zm4Y=zV+Mljfd2wIoHj5#*Xv8^#(IGJS67JL9 zEO-d#EkW1eGK1kE;CkZ?^tayjyW01OiT%L=<4Z z7XfM9Cq{n3h?|>ZISyxb4E>M}!1a$@YBX39W7i#v)?Iqfqn9?-KXWWmc`0i-Pl>W2 z*`Wa@9T<_EK+dTmpnRTfEt?`qZOJ-nfOB!w-}^KUf}hWCUpbR?RwlfO=hIEhVdgdF zDDyt^cjh0=XUvxj(OinVSj;+D)KJLheMFPgCAfhZM}wmAMRB4E;^~2~s8sic6NzoI zB;t9Wa@3YS3L8q&2p2?H5+V}_wJ)E4X<*D**rqQXT8tk{R+q7M3UQNc8Wjw9V{tN=(S*)>?IH@TpW`GB|k7 zBGK4|yJR|>PV*!Hcbf~YFGv)~8*=#es@z1j(ImGjBWyU&2P%1;pq9u587FA$`U3U( z3EFT&b;e++GBeYxH2<{DnVV(vs(p$asQ|Nv_dc#J$N6I^N(~+O)BTmnt*@ zkb37&i)4+>5tO+Gqa{{g%_y>~WjYJ1k*H-_wL#(VDWq~6bp6OgC}L2Xy+xSAFv>HXEX#Quf^tiNS|eBHT8&b{2vwY%ldw>u*61Xh5)_#8 z@|+__fpA$_7=T-6b`=|SwJkLOR1U2ItT#Vv_0fIkAHQ3$?DxRgJ^r3`ONP~C$fW^e z*y3uG$AjYrBSyUOj%0Ilor9OA!bJ<^){3?s#6gTN#+s6v)`!z3Yx$u7+GkW5?>z z&C8Ud?q_GO9^JH5J?7a4#V%ULwYwYtWz-aynrFgU&G!6yCC+G?Lo@E!ol*bv7{#*I z(W}8*-Md{i`KHE>HKT`gX~#TNtK6*!%n1faL8vEpY?@2%i2q#mhsJ8~gRPm?WGpzd zWAvKIgPpkzw8)(F4P7-4j#ez=EG^3wqo1lzKW{p#KF>aE)*4YaNyM8N#EfGmFjJV> z%sl2w<}R|I6D**v-9n-=XDF?smTP+}AnIq@Gg*d@xBcq|aP5Y_P%bv9Wlq4beb z2`UXsM0iUG1av&GupvC{S^%%ZpOD;wqN#}cBD5|sd&Ywc=%_e5R2*N?DrZdTH4+NjnwKoFGk4LbOI_0?y7hEJxNxZ|^)nDN(HdB;#btVE}8 zkB2vHFY}BV{!O)1F6EpaZs>!9r(8c;;||Edj^5MiRKB3%i9)nyUJlHMn9(igjNmm^ zkjji1d<@QRouYvp3${t|95$V2+HNrflRWWnIs4PL|Nm` zdA;3rlS{&|JKX8q?F^?fDM-+NJOJkZmfzVOE=eW1dUq z^{W40-Hq-~)|}OHJ$xtS{utSXigsY2zL399ziuCTKdoJd-glO?IZuMFlg_ph)GaF5 zy^r4SeU+-#B~g;9)|CK1&Ucuwi8TeD`FviSL7c4w29zeYsDVh@B$axiXO+QmmCfra@Ui8R3UpvpOY`PNdH`3g z1p24F)pa=yUsczonx5*q=WQ^ga$Kh)Umde zi}y6Oty+9r!Hej#W%-pEijMKy#~gcT<+0ZJ6-~D;!^fd}md#n!*0g8w%C@H478Bd6 zvkWADvrQsap~0Ls5*HsHKRfJMIwcSK?LBrs%$u@w^v(l2N3&nw@N%H{b*c##3%qMDFJ6RuMOMk+nasOv;?ZG3;J z=>OxKB{I(91N1p~kUod{;^et_vfGR4RWXo$zyLkqr=$xnK0xYxrv}`F7N7SmGAYw50F=TeoZ(_f`Mp;n)O_#ZiItNfrlSfhOgT#t`Ea(R!oCWyM8(bkCa6eMMM zh~Ha=+datSGqq%=*5qLcB507s)Lj&MyqNJ}#2zVljOKtR5-aw3VjjY$`#b^Sp$q5G z4$JyHLJ0!kY;Q-G1nk!DuU@J9U#OdN#Y{5|?3u(eKj9`&Ms z!S=CNtf+oq>GGnHOOuVM+qehUp+C;;cro=kP z`oB2q*H3t&J#+t>VV8_5v!}md-(IE*kN#ZzCWEPeoC{V$1KoKd`wC=}f%U~Om1<0% zcwEL4kDWusA&@?7#Nxw44>!s{DcCWz4Xj_$eck*})2Nn5?pihV&~xjcykQ8q73|oU z+;{tBZ&qEU7+SPMfw;zbpc=h!z61>2(EH`GCAVi6ca;v$)}bR$cT7f)9$zvivw4u* zxaH9YHeJ5&ciu2qw6>%U$XojOETIn{K1A%*`_caC{;Q==_bf!HaxehdCt+lKfX*QW zcwAA{83F*yNb;|H?Yiq;OKsae$KjaMQtNi_ZZ@?WGgl6t!@m94`VEggwqgBaJJAn^ z(J`=9U__)FZ7J%6_!|F>EQ^zAK+Z9*8s_m*}qS<;QP%iBvP+luomR@U&Ige)3vW|+csn7Ha4q!$kId@LvM`@mu_ z??J8E%pR;p*F38PGu%!N8qK-3IC>fF2(h9`g@S#(!-#p1V*K+4HmYH^^Wv+A5X0V#UrNWlDPC;lQ(Rbj3#XsZEB@tx{WgBn1^o}z^DB$4=mynd(xhy zEQUUtS#a*%(a_T{GX}gj=b>pZxp@+Ki5l|wHRAEyONhX& zfuY=GWpX%y1~nV3I0LEn$@lY#2$!^k5WK*a4>g1lM(QS`k_6bQv5e;8o>5X=<#K8OcFTtq#cz6hJPWvik#pVYHXKQkh>Ox<+Kmi==0()IR=fY!8hkw_|7;ZVE#w#rG{$9ZhVMa02nCZ+C%#Cit z{OE1W{g@v;M!Zy!Ug{+_qh!X$QQVBAZ3Wh7=>y%5k)1(r0kP~&Scno%ER-n5vps7O zj6Rwk#RU7g40l>-2S;#@3>X9>^(aK#37Zoa#>9wd6JErUT(Sfjhy>HpAH(FT*&r0r z7&OGZne1u9i0lS4A zAfIe7D5N-q<5I;moMtrOh)OC`f-7IqXf&83P^&dY&2+U|Yt{m#5@^kuKdJS0J&;J0 zP%cwQ1vTVm?O)ORZ^)lJ|q^$9+*Jbk8-jd;g`L7?oR4BguLCN=iuTp*At8#z-qgE#T__;)e z%y1#v@}r>8{|MIU6~j^P_fm!7d+@G7k%=VVnoQq<(=wGRrGuX%_?29vR(u7JLalZo z;};68R`CV+LaEgv=|5C@y=v(SxQ^Ax1YW97-L&Fvs8_L@Epjh9)nnd&&QBld(<)3e z5adpV$@C}iR6};>D}nick8u>#S&SCPp#i)H_N+RJZbzNy_M@x7o?nR{0^MNR(Z2Xm zmKihZfT)XcU{vpc0TGZrAi`ziQ&NoK(}2BP17l}=%w#-vRxnBC3OpzMa<9%J=sd*r zFjcfB;#)u^Wn=?aBACSeasg6*cf^_<5Ze$F*?%SW2IVk9jqmYm;{&EF)Bs2c{myFbZ!BwC74c(%~A|Ro@ja5jV`Sk z0!eM*Wz`?tfAe^a$_jWnC!0K4ErZ302ESFMQn*dPqSVWXExa;;9L1xfL%~Lk3O^5p zr%-}*m+ydPzB%eBaluvA<;{g^j@v@_*ZS~_!_EeDMTQcTDo^V2Hr8>NLgBFz4e$}V zob^${&WBr@jmCbpmFG6@+nW?v$gzNDlY93yqIWx{W9|^gCGh&C*Fzp~9A*}$cl?GH zW0Uh!^T8)ZyH;vty)xv0JLbmKW1$KTj@HOQoACmV5Lt!DP?iMF8!MtzpPsQw+qwJN|gp)1yo62X2C<#-SfHKc*teEjj5Q)~ZlXF*%Lvv%%`Wu0Rkz+oS^X6^9% zR$hDO+m9c7zD%&ym)GjuWsz9TAMdP!FTY~B0)2ajJ+Dv~TYBBcKmd#0dJpYFU%k?K z-fsNwOcj#aX(Bj4G>#IR)>Td4M7tj+x zmAadadVAkA<(him^m^GS4&Vf^7%c*`Kk{$f*!w=%{`g0iJ^AF5lRg5o(IWKKMgaYf zgYD?%oYaR|mehwT74%xNpf}3`y_kgm(9(}@DrNZ9xLm-r7d;aXP9{Pxbg^SJNg0oAngx!7W&|WqoC~wOg=&~ulxt7dE`%E+1Kuq zd8qr-O``kPO`n3!yp!&)(KezFZou=}zi}H*$2~r-Peh9FXym9O2{m5_#K@g&Y9@&3 zMx1H_5yFvV(tw)U#EYix`5fkYqUIu()S^%8l^djgeVGT+a7~GaA37v5r=?1(4LLOq zm0F&am#tRK3AGvxAY?M$(d`MboO!s@IXk!AU~qel1)lLE2AfS4L#IL*d>x> zx<*o8hgCv^C9| zvuQ9&p&6gv^fPD|=^xtHl$g&AGi}TyW&yK?xsth=_^Al`iN^u_A2W3VJ_fZ3i$owQ z*TjNRh{Y43c)}8A1!BY{A!<7o+yxWC5YgBs-IC0+U{pV8u@sCS7g zBuEuni*yBMfFTSg8pfQb0?*ES8{IyyEF-t}ruTKVslSahJ4&ZbD|H##eY~`69=iSQ zl3LySH`V5@{Y7V&*c-h-PEJNTkHk z2%A2e6ETUePvzc3Q1i)wz>5&}gG|Si6A8r)QM!8g2%W>nM7;HgIU4hkGy=y@CgG^b zhbyyGcq9s9;upFOg^iQuPn+d$YH9HY_qUctD#olV&kbfR2{$z7oak(I6cx2}$OD6~ zgz!ohoOa>qUgnd{Wv}5X{D9SBE>7<*3D%%j3x^a%8jIkJfg-V!b=5Us$LLWV(ZHn{ z8B51R=4e=5L(IwsX64oUw1?|!)V$l8E7dF-ZgtAgR7V1A&bL?!(dvk7jj8=(xT4)? zbr-B)0X!avmj|uzJ%1t|@W)VO4RHFCW>km(?w%migZt4?Qu@j zL|km?jA^ZJaUFys@4o$kUF8+!>(;FTDu0f4`?_!_Z}6BggY(diL2DP)K3QKqWXki` zbhb|ePkzX8A98Tg;Mr9jkqjvmtP)eOQ}TDo{hCts=&_ZluUkvY+J={xnP<$I$xf_n zzu|K5=4(oMPS%FUEYe`eonaOz~Q zXF}@M@sGX~3RiTFD+g0JD0#j)?#o*DJcn-F%&C`;9a~mD?w9_YWx&Vc$%FL)UGx{W z9$7%%b(__ged}r<%!GeAPa)k1zQbK1cOoc326ULc>U^KArDqxL_xKxSP^=&k987>j z0!FsIf+B7sF-IZR;S?K&VonmxT@hG_Y%){eW1?7ri4nGG>F|nZRqUrc;4txcn5a#` z#)fd^VC|A_@b5k7yW4B(O%|T_o1&#t4|Wxl zAC9&mtJwn`#`WL*?uktm9m9OtZA@vD9vdl*#vO)(%7PVJIyl$fsB=juTGB)IwnRF(F7GP4Ve5i3` zLJB#)=HIbpBWg5Kb&WLZ!FFH6%2BmOx1!w0$ssIUt>QVUerOipIMxE+GkA<;T62~1 zYLHV=moUZ4S{tXgmGL9%)x}D{^I+*87UV3|7&A?72)J7Y83Xy*oK-SaZ#M9d10XNV zYV7eqIFtd+07A$ro~vSwS@oO@#PflnkM63%^yU$Y5$?gX@=%H&dyaS?DC&k6PX;*1 zk^VpjXGlo+38Dx=mLu9L77=t#ODR?}Y=~s#)Yau=v9@T~k(cKPN53c%Q{V%|A(9d* zMnAek_o0(_S$rOQVU?p@mKuUSd=a#~{0JyL1{YtsBJum34Wz(bzZ;wR7 zp(vW-%*}H+^K!vg7bYCwZb7H^v^KGqh+QH%i<`!k_R&ju*8nR*B*ifAK#;R2u7l*HM{<_o9crCIh04FxyHzrSh3!0Z z46O*T&?`x5@QUz*HGG=M&`SA3=(vRwJVr2y^Yu=@Q=JtyusyPKSP5tOpD;(7dEQ+? z-(A!91O~v%z`*;azCnN1XQ*WcGYSV-)+b5&(CZ(Zo(0<2Dad>7?tejtO!V$Ay`att z8QC7wX*HkI`|_1=L+{_un|F%ooIvOg{N+TRHfm0*?Ne=j{8i0D-%LcIg6YTQ&vyhX zn(j-OwMWs(JrAJQ779RmrCg&GhQ7OM&U06d7;)8ebEZAscqMV;jB4z`aLBc3J}}(4 z2RM(WPWLJ9ouCS6tP{OTu(@v7BDYDel0o^DIk@`U_$q_zu5yLKM30bowB9&#@!F%i zQNJc%XP@rcIsFv};VaZoOX+ZJJ~+>kY!m7gDQilC&$=JnaDm{EXK?1gLg=Yq$OfzM zy^i2}ZN>CtTKkO7l6VFoVmb;&Xkv{P7n|np29^lnb|a|6pwC?r9$}P+BO2!>0}<_c z$XsM74&}p(m!Q{`Y|ni(FZYpLtKFMhru6`z3Zy0lRR9FEHIcB*T5u>o=Rmf_=FW<1 zJOsyzm#Sr&ihRG-ntv!i`@U?O&6`uA@!^Vg_^b_A^yx=LZ8m(#oCk7jHeX&D&h%<4 z3jEfjAY|FxE>12ttpb;u5Zi1xztQn0MT1Zu9v0ZTBQ=>)voa#in$RVKLrGhFsuiZ5h6o8%B~fM z1T{T5r=0EU4-v(C(MC9)MX)YVz#8G~64q~9VDn$+voEmwZk)Ehu4df0HH$$6d}QOcgnUuayO5YgSylfAz|&fS>Xaq)#yee0>n@;d*8;rglu8 zSl}00!k(DHPDq$k=81EOZ1P+f)|@!e z+f8;#2Y|>00ggi^ne4?s?z|kt42-3ViSq5VPj{kCp_OEkHY7NEcqYf|Xn=IiOq`Bq zCmwS`e4Ojq`s}ml$7dnhJ#jq_Ze2eS%z*^%jRetd2*I3*kRe5$-KsP{K89qCdEBfN ztKpCpC!RM}sXuwYX#X0=ER#7ZZYkrXM(A@JlAy-0kze|_zjWNF%5Nb2rgGG{OD}z7 zJ^ZF>Bo2%lS@jKE{|LBrAgPpkWPRCcty;UfZ2cp+h@f3vdg&vVmaf(c<1S@S45XWc ze%?`szjYPU%#34ZVD5oo@vFyifp}i<0u>ZbpH1Z21Ctwf}4u| zMqpVfoa&Qz)EHuhhBI=dN1MTcB2bI2yhGWBW-deW(WNbl6+|GOrT zqH{R?b`ay~q2qgMeQ%>S+dU$EwmC$HQ)suLh0q?YG}Xk8sJ0Ft}%iyncoqe*)Aik2bH{yLVmlQ6+lr#CZ11>s!L;&x1mt zK_ENKP@ivUzsh~~1VgFE5VFH?Cv%WFOlF5ZkI!ir=oiGnujB{%l$w0t|9B-b7Zvjy z1$C(6@CxYSbQcuS^*h`IqIX5n#p1ajths1%>WDK4VbB53{x`KiGKJ74v?+yj(Y9@m z0TrkM%E!00MRn)O1RW^p2%b3SfAgGIPPFu5soR5&jT;@o)PGS0T&0rFfncUwr7Lb8 z)>0M-l(h_NE=FU|l^BIDi7(tQ|4U;c7^(J7X&M8pe_k>WG$SJL>r0>_g@^_8!@BYP zA=neN2ki(?$fpD={3n686{C12zt<}C9w#tIAd`Uo_Jz2f6wXi4r2;bSTuZ73_VgxE zdQrfO1Y-e-6X%?Ti*zo1W+(AQVibtB5ElY?fePxYfdvqOq(IJ+Cz}Fj@y_nMQ28OW z^9e9-UBO-5JHhqAc{si6b8thD>uj1AL|wQ@!8%&v5O|psxgpRrA6NYxTpz&iU^}an z{DbgJI3%3iCoJZxEe*lJ z(V>-1udF#UYJS~{Ijv(jAoU1<8#{c?irTp&&#bX!hgdB;xt{y1ezGZ)%{oV}S~YUi z%9W$iXY@0?b?nfFiK!_TuUUg@0;hzv*(VUhd{&~+THMwhv(eulU*gLwh%Nz*07?OR zXlbM%)4%j_;F!H5Q0#zm7Ct#-)~q3^CXJ(*%!D)WTDT`It0g!RxK~m4T{=U8*xs8G zKnFYm5y2YRQbF{dfFXz#rgKmwJY^PUpFZ`%t0AMj zStEs*7%2#YnfKR83_8mPrPQupl;tGPvwLtbK1{O`Up4saQ3_8-;T>b={RsU^HwZmC zqi`OSgD1u@h)DBO)JlVA5GI(;{V;(SEDlPNrx^wRI;Q8k+D;|gx&T8eoyC+L%g}mE zzf7L~dTZDo5k#1)In(2D2f6poP(4+yCW)(NGb-WF6lcMW=d}@-CQFZ6lQH4Nj7r*q zCP9?_C;%A6z4Cd917Avd<8_6m8!+{P!)ZLQbLpHhy#3PlOXtAm4VyL$WA(e_tzUfl zMXP)lb5^0e;-9-m-@jo-8Px5RZvm@860F`L--#58$Iu2;f;K#+Q0R8apM@N>L+)Am zF4c|3%-q~e{>wALgcQ;2s2{xkw1F6R z+5!641L<3k97c2_!0Ysc#1lJgVC$G?kw7_!yff z)+YbK>-2x|^o4%xQ*{laM3vgm;$VzmgC~M) zA=?>~m6iGQeiJwlh4b5W4s#* z=PzN`j#`ZxJaz-xud#bvrjip~AC&~4B{X-+uEuH!3)u3<=5PG0Jq!Wpl%{@^d(8ar zGJ1AA1sNu4ztH6BjN4r_>xjpvqH!xh=u zLYLsqtM+CUj09tK30=O;<)~jeO(wCYWEo{SHqG#%=5f)GuRiK3t5N8E*%r>5R~yJJ z8qGdYdFk!lwIg=V8tw<)E$c$wkuTV?_g;Ja$j6;S+~KRrM!)~qlTDiHt!`Z;mFV8J zdD%nH9^BWlCXn+Od_h-x;2HEC{(Iu~!i3g+RsDJ({Poz*4KYdWHm@<-XCo$Je-YnJ zR!ospiGJgOFHR(v2@B8SaUpO4>Ws(`1#Hydy;mY9?ytqVOQ@1_8`E zve87;Y>8etf`q58QWvwFl2xAGRHmpw-$Rf9nmcv&l|wFn81RApbN0jCgW4|H1Hkse zU`1$5quJ85c++k0nxfpI{KmKj^dxJ|KR)Dpm)G2qY%czpc4a9(LT}(&nLJaTSPepP z)$oa^X?)|V3sUE?))0%|H3d>@FCm3SZ;i|2DbFW(n0 zrkk}ihxH`{Ur6v7qLu&|JibIfKn-g$m5?Y zNHB`2KNufTvGv6h=OE7#!BCWFrbHzI-J`xx)V5buVAPqxHC2F6XEMPFjmkojQsXjM zokrW~31f3hG6#n^Z!C8N1jU>d6aZt;l2KfsmI2_;a0$VTrae-#!6DOy$9k4KA_2%&EA1U<_HD(E?0c;G0Q<8AG?J1&dBs!W!hooW^onNluKlWVi!~ zfZKe@4QFn8;>HcRk=&(A@nOS_Puz6o2AZ}yFOolRUVbERHAw?o&g-ZXGR>|Emg8lZ z@NdH5NLJXL9exm<{=*+$eHBRVDv|hSD$VvxdngC6JO_+&E?2=7u{x<#Fk}q@5?CNL z2r{WLG=wYG6}VU}ED#EmxyJQ#Eg5FBIxd}(7@QrlgkbS3^`=1{lP*xIPUN_}s&Z*% zapU+Udh2j+`uc)|UY)fDVPuYa&J+cv;d9YxgQYMWYt49#KoKume(%oNvv=ORe36Je zylC;wS5296)y<0+ZRgYjhm7cVosJnfo^{F2Tpcr(na0dxmN1txS24Fx4}=7*l{&IE z(g074)OCGM&-t{Bm-MqlpA@*yvrdS1Dk|$ucg0x0A6uOoC?W4Tx26ZEhjl|DO0-wS zABa*7DRR5mFQj^))SpqI(^WeClCNtF#_CfeXAGY*r75q%Ra*;cvJx34hbhDA%__~U z@aG4l2B*2ulASv^S_901tfK1b{G4Do+%$VuQ#SWg?OyZ}x(^uQAM{Xby_GM{R5~bPb$PL$2X0-%rBZc+B7URtAGgD7NO?ce) zjn@}(z^LZDK_5;NFfndP;A$qHj$DZR`i-n~cmc6QW0q(FljeyC z*(-6ucweH)LBU<@D#mqef-{Pj>r=9P~Lkg4f6A_L}P^ zmrmYdyWG~eymQgK(JgSdLg%!GtXZ=4Z6nVzfNN`iYa#mJ`0?F0-Ne5u_N~RXgzY`U z5+lrz%YnsGlQmjqE3y6E`{d)cLzYv6!Vg%BQrG0Y0)><++2it zhrj-H*G)H}FYDk>v(~TodW$07;_#+beqT|M?<;G~rI&haft-LX7T&nhUpD-viEFpm zFS8BXxV2iy*0_~AiNl{Uaq7b9OW83CQkM-MUX+NpE;?S}85GW_1m9*<1Q!&bZ{EfK zDk^{modw|Or&I45T}G7v!Gw+upcy~Dw*+WPalO<#pCpD4Pr&_^mHGJv1=E3gj76yg zu(GnO46Mz?|IGN`)Tz0-kAcfc$yA3q{jaPHT~=N`UNvhvCmn0Gp0R{wGH*sa&tsYn zG%j$j6~{fUn9Qd!%Y|t`12R&}@m)*sUEzJiO?_(lm@=DIE(HCd>{6Rn1|$LXOkbHz zr3Abp;3A1eP6F%Dx39lmQL*)^atK(tF2fKE{|SFh=I~)MJ{A4rQ-L`nA0C$@nMKT2 zW-s#)rbhmd_7;`i%fVgRCs4=sm>M6LP60s#RzmPVh`t$>V)2GJO&(xfjnB9QLyKzw zbx==*_ZBfD0e~mwfk#;5b%Zu0tk&EE=%}vx2&%W6lFRCQP1jZ7nrZ$O!xUCG=6P)%z)-dV(8YaRF!7K3uOusH?u4Zl(*I~S%#)x9LFHTosy6&czT_KH@O&q!e>9U)MgM=@p zVWVj?M^WL5rwcHie05QR`DmakIJH6zrI8*J=a_7oAxYN{QK3pG`U|{FNu|l)vFJ0L zrQpd$l1TK_7j+H(%wSoazP`OBzp%DG-P4sB3^kV3TGbY<+ooTV703d<#h06wN@xGi zD8EawQi!~4yPC~(m7pvTaifR9Up`!0T3k|)y2Q3iQBn(DB6lu8|5{RAvt?g}&KzB?)efC4sgXNmrw&M=yb~9=Bh#Bb@x}w+UcDRe zPJ@x?!5aemotyrLkIF#Wb)pvZzg@x;WD|O#<^QWM#)+>o zH1!j^F#CzElWy)PKU06m3*9K9$P*u{Evr|4XP3Isu{QPUa*HQ`oGBZ#T>-H?h}Qnc!S z2($lQA%jr11BZK?N3K~hl6{)q=AJ-tao`^P0G#1ms)Jxjx|D+?rtslB5zb<3nQ&L zc-*}8I?&1-Swr#`YPF3yMNe(t^>Sf$qac&9Ilrc5GEh#gCVo`uI}nzf+RpPt8N@5j zZ0YS;Jw<}77CmKJ%y`8lWpSt0G9E8|S29NuxC@GPH~>nVVc(cPxq9ui%K1|}yGO&~ zrc16FCNT(83Y>iL-pO}7y5(A;?{$kGm==W~=84pe``tsg0r{A~R z?T%3ch`gP6>)=BM;RKb|9(|50w2&rRJOh`oN6sYwRlgt=nc zoR22;z6@)6QauvpF#2iIM{{uEALX=cvIa1($7oraHs|BXr)y~0p0u79qH@BlwEql& z5&E5HQl|=L#z!<^iLP*>ijxd)oSTOp-#T^8`X?sB_2s?Kgf1TmIP}9`E_r@gnb1&D zrO8s;YMW-wkuZ}QtH-6TzGT9o4arfkK7QuM<^|@#e?s3+y7P^dd?e%z)J-b)YtEBb z=HQih9diw{M?{Z~P<%_Wc?zR645Kt6ri)<%W)(srsH;HnwJshZYz$EY^Ys6T?2M@D z#Kq1D{eBq{m{Uw%ThQssY0S#Z@VDjXwfS8pOUUZWaXEu+9W=}5rI9=zEs~et=Fc#j z!=%VBYtUR=rK_!mcqM)xfHoG&!W;1Bj zW*m2>6LARC^w3PFUCg|ooZaRy_q26^9#qr!>teMnBZtK@a;=%}vfxe4|1lztbt+5Z z3H|Lc5zh>mUB^Eu^D~2|0l=I}f*x3dgQt@m)0>32&!u|${gw34^-qgeKn9cj)Dsh) z&7uYm@y&t1JEvzE=$(f?x$PZso_Xh4mS4SKUy6AL&o}V0)Q1aJ_su>j<~H=nJa{L| z;EC~U0z9ucs=e16A^7U@R|ihHD%(ML`1-r zP@q*Jf%LhcMF@r{0m&=na#yiG00te~Q9ie|Ia2B>Qe>8oTixFI(5ye*_UMQb$0$t( z*o@BJ_`?-rZ}|P(vDeQYTUMT3X79Xm#Ij&@``B?!B?|W8#jT?Yfzs^aHrkz*rlLl+ zM&irJa;W4JzS;glAU>sS!|=M?7kgt-H8EH9*vR&u!G|7VYC$OSZz1$4@UZ0aM+1Yrt44PbWHoq2j)6E1wyY&>;~g z#7NO-@q%Zjf(D+nk;Np=`H6lwVLHHt=tZ#OcYp5lhh-cr^2c?+XqXg|dj>_@)z9frmTIe_^{cMFdKK6-=eeuiA!}NS>08}c5`xxq75Yvc=zH`A z`o3etRp6cr=z;}iI$9wP!yB*z$2I~90kfJHUZQ}8=)66@f4Ct{Dvh$ zWceih2B#2Sjk=AE;?W;UhX@c_Gy+efSHeE);o2cv4jy-xhd{D1^Njm2`uXq;UyZK52_(17-tiKU9=4)hOR-v!0k|ofwj2iZy7)>{ zAFQ5+a_sxw2Lf0Mgv3+9;$V`9&7G(#cc9&~KzmLO!MS5Dko6k+K%!U)mD9rW{QLSY z#GTR=6R9LIs zw%M{rfdh;Ijz?v4EkH3qHVc&?Y01d2prk85A1(?zondEcLh9~hY}l|^Qar*5U5mjh ztt%@kR<@$DS#({v0{6Y2@w$*tZ2uW?$kT6!d1nz{D(WHVOjNz!BU+Mr%p6e!2ZSLI zl^by%2#NDYIiQ55pJ4jnxrBcz;!oB2BN0D*-Vdaf-fR+PuNjBld+|qQ0XOhsn zd>jZpxaHf2=741p|7P9h_t9JT{D|gHe~#pC!EsP@?+;+d^uzuL{Ci_G+87-(W>m!I zk6d@}!|2^d`@*vy{swIEMMjUl2fg*dW*|Qv@zWS6`d~Bq@py#TJ1EXF+z;t*>%jeg z1;zPhEqWqzqPEQW_|*u;k%d6tNm%MMnpo_Sbwxt7wy6_oT`{o|@rxT2E-n$FxJDvO zI36b^oE!{Ed}()Rn7A{i7aqDzan6ueRN*$5Emb_#;bw{QHWU%|A$w@)io1iQ=o%Lr z@G7%?=*_))x29svutI}z`0OoSwIx#(EUn8hMsK&3pStbux9-N@sRaFDSwN}GX&5`M zJwq#4wHnUZP?=dXKEQHU%A_7RBHn(Vr&!ujqRe%8x=p z9UHo5gx6D}oTF2EKOCQ!xz66?s#>c7N9VT9Og*cUXg4gnVdju&Ll>Y%P1WQ{H9Jx7 z^NX@ef$E$OKC=GVnK;F6XFzn|V&+S)eq^Bw{KuSlfNVO!P|%Y}fZgdABtAFHoF|h2 zuvY;CCSO_ITk88Z-FfJlYi_z%^*Ub}Ev=T@iB$D&(93h-u}ctUp?}#hq`MT*Q_WU zQt!X|!i450-+HxDs?@{kYEGk)R{Z{*w|`$LRjYYVW-X^y%PL-BUq4Nzt-f`I@5Jqr z!IX=dh-uLB-~ca+bfi-+z-rL9*!Ou`jQ2&@6V%^hcNhAa1~8-k_T?wHg5=hdm!m=w zCq5#zUEMUmUXQf2%-3DrXDHYv1i;niZLMrn`&n5^XcM0k#=cRJ(?` zP-~SJ@uP)45NVv&mvymNAl9!$L-W!Y=oe5lZin?XtJ8@O4rH#4ZEbKm8#cviO$ki8 zPqsQuakJAp6%+Rf6KtuAp`T-QIOwkaU94{X6`g0^?!4lPPOh-?3i#wwausqwr(?Cn z#kH~1X7i^c?bH7A%3ET!wJ|iyWO_Wi7T$KQ_7wyD2|~Oy6AeF)19-@v>=*WaH=_4$ z{0t<}VKf9C1_`hM&O5NOw`S#m11s5{l?T8P80y`HsecBP!Tsmb50LI)>BmWIVMa4E znE6Z>p8YOiHZhlD{_iH{W@ay*3-4hLFb^^ZnP-{jnHQLsn4=;FF-t8q*|hZ2BOyO= zUSp{tEGwcD7>Y@fAw9Qw;^Zg7LKrB%Ek5EG^8uU#Xe#k@kkExB0`OP@__73{Q}88N zU;zn(2gLa(W^ycM){_7l5RD0DosrbD=n^^$C;);k5t0Oayu~Dgfsl?DqQGJ(fVktZ z!H^8bScA_1gla&_I!E@kZhPjg=$7)6o&-&Nf`J@a74~<-w^Io7;Y3$-H)QHz>%MLM)lXSJkpr;Lg0Sz}_7 z@ePpnE|+Gp>cI|eKnrfsle>Sg*o7AiiR~V+89j6>dI-$aXSI(7@EqhN@WmHYTKE83 z^D@jrUukpTV}J|kZ02@!u^cSd_C+JX5NUf84@RNw93CsXL+I_hP91%K1JZ|W2SDa0 zpKxbRO4#Mv$es)6Pxz~5L{@JDUuKO2uJ1Onz%0GUOHnllv^O8c|G3ip4H5WFCBSESJ!?;wVOa`X%sYaXzGyo2yYrq`2G{IrQ{~QSt zB{~QkW|bPf$fdTQ0h7^TEt|~A;(x3l40L+qe_*-X0?yO@)c?relCzx~$ z9R{6)0)Oy0Ww~cI!Y@JNGaK7~-1rQ4?(vWpC3{1CbJ>QCC&BdAicK%Syea)j@F2k$ zM@DZyk?w57 z;~CI+t`1BcKM<{sytZI`SrZJPql=*qOvzBA%P6#b2K$Fok8V9Q4-9_CRNI%Iy%MFM zQ#Xu02PU1lx$l^TkyB{(pfO+r?A6u>Oohf}<7TWtW#~h-v9Rw5%NbBT|Bg+MMQMbT z;r>PSa|uN^h#q+84oNmJ1TecD@Y#vvhK|JXfeywHy{+8DsUNdXu<73`Be*A~vANStz@#9Ap zt$BCpyT^{d#jR+QmW!AZTFS*Wg|m(?i||AX6HEP&P`*tbGIL=Xs`Db zPM^bz{PZzAN005ahZy&t%b~Bi?gBuKLqwr8#s>JyHsg4sjULeFHsdrB#s_ry`eAP5{#{ix+K1&p65 zVM>|4On;^d)92xsLf^oQXC~oQ{TyZivzS?qDfK#LGjkKOlevxAhpF{3<^moOL8b$+fGr$s?(Y%pLZTX-I) zKyAqVn0=PGMJ#@^#TWESi11p%v|oux`8!)r!+r2*>*?XH*uQekEKMr@+30zuX4ovv ztQGjTGJ0slZpBB{%1!dh-OJFq#r1W=k)iVHKhR&F(`_tXM=9CsnHKxSgk54#>xDxiccV63l*So=SD>iRh zF)sMbfxDisF6B}TCUt_pVeXRmx10gm(cABTVEgFR(t)4CVi%bDjRjfClARq)QB!)H5Mb8H60fFNFUoRm-f!Cz+r9w;pTOQhlC(2cx7h_xyd#QFw22x8 zCjjn*)y;O#g#;q;%HM1=ViH{JDj_97uFWS{dRDcsl4FB7sM4pJU4pv{cb?Q+)S0gr zdz&Vv>Q23rS%A4P2>#nT^NhR5um`_(4`wzEfFaP;Ok~f0U2DT`;37BBhr10p=MKg| z@=N>A>n{4a5czoGDN{*p!SF4EjCFVn4jFW~94uw*UE-EG^}IoF1RRCu;R19Xd=17& z2Hf-xYDFz<1joG8{tA5P9rPVs0LGve)Cz6@VKvmYhxEPl?IA5xgRtJgg&iytnE?;9 zx3e7ehtd8Qcz^~#csgSAdAfGSXyh1Oo*pv9&JtHr_!iGaRm|GvylSCYGR zbp}IS2)IBmYpJ{!$R@_y=t3`fsTIABKGfrzb-$VkXBD9_W8;sH`C946EMpjl0k@<< z13=V4V_MWtqv&E$Mw~+v?JO1tq@v++=h$O|9v>mJBC(~0289$v1yI0Mv)~hKEDSX^ zl7-Oa3Y$_eV#$hu)*Oycwf1T($SO>0HQh~y5Ye+Oh z!mU^B2VsA8BlSg9KCLu0wRBo}!LWc+iL=5P%99c-T27Jbv>A=I^i(CMPOv1&aZWft zr86*$9fpXrudui;L4N+~YVd&QwF-9nlu4r6Qw{>LCt^){9QgYu0nyir!D0q@&LaS_ z5Q2v0UT|nSs-;VhiACU?%g3cG~ z)tv&nPF!4_7eMM6meZ$`JtO?%!sybamM%~iF}VMq>y?V_pKg8#WIfu>h&_(%0kO>= zq33X4ic2c06LH!{f&S2zFL!GUyU}0u;;s&PDt4NTE}gn49HGsnqJ5j*gqzUxD^2KkGgRXYQyikQVPen+X>vL zBBBC)tr)z7E}gjTSh>WY>u-|gG=I~aBTXsQ86@SAd%G&Z{eBSo+x?`KH^n_lgPRh- zz>n?+ra_G-v`NO<8#c@~CTUN!U5={~?GJRWsbB_^z2~UHd#oA+-0e5&N4iLWAwi&`Jq8ux8*XTe{Gc9|_5hu^$@1#u_R z9eM|3ThtW;kY3%^82`0kr~T&~g6{F()Qx<*phxJ01~zq*y2mDiU?-w*z}~$P_}^{> z{E^odO_N#W`EnqewSeBiM95BVZk|0VdSgt#wFXH7GMCrOV) z%NA0G#7!q&pd&Il9VoaD7nAovtuQMZv!0?f%LZlOf55knR~rHhuLQd zBS_LcUN$IBovuzj%5l?R%8f z3%a$W_jUF;E$(vR9!+RR|9a|^=a+83X3QSCdZQ%~sGe_me)pqqMn@$RCg%LOI!mV= zJUDIXb8Ly&`RHZ$af;jSNz|T{wq~g2+QF)O4y4`l0??$St(ine<6olP5G)|wujGEv ze1A!MXV*ia`%Aj%5cQ@A@9}e{(5Wmbbe}zgT^f_WIFDY~A(MGA5!x}d`+Pd|xEO!@ z!mrP(@9&UXaYEV7VcqA~p~uDe;}?Emo`oG8oo7p^zeO`+GD41S@9G0Vf7eGAM9?L% z8nJqIbqg4+4-8)do=4I94{iQ*yMj;_x(Rw@oLGpr@LKRKu|DI(8&|t(!>&m{&wX@1 z`s;3kX7`s{4gvk6TJf_T8z(;Vror&0n9;an^hR5_`#gkKbV8V08>~*femxSewu)+N10KkvpW-QF9u!h%ZDtTnzpoJF@%XuOg4&8>5_sO!Qqmp>H*0CycBMI5Tw$n&$SX zCB!%izf>RW61$7K;2ag2Qs8lM_twi+Z#w?^jKe_tkh^Z#@fnp{Qsn6hn>nk{rIu;3 z#|ZYBwWXB}V?x0RvAlus@$xSv*lG*EFsB`hlraANU&K(~4m~9L8iF zSl(K(;w|*`fma_w6SvJ>@fIv>knwUyw#Q$VySr)5XzAE~W>#e~ZWByZazR=Z^5+X^ zSTqxSTKD#`uZPU!r;|+3S@iW=D<*6K`=0pY0h}}SzY@g<6ES@ZR7UKdTOy#9mxmTwL3l5O*Q|-Eoy6>eS>Hrob_G&>NgR7J_2R zh@A)wA=7p2+;^nd1KGrKhOxV~1osa_S=cyjlGr@ph-r~f=i{cBFp2lYRxm^}m3Xe3 zh+g@Wpy$I7XjB;tDs;r4YE~K05pn?<=|#j|Qv{gG8ALQBnCyW8(@G7-VYfeV`!J(n z)5uSXYG61Dz>n^}_GvNSNOMumcZD~v^iNwlbz;8^T`B&jYpf}X=|&6xqV@AJqvGmE zdZGr1s1hPppTDS_4l#m;N@Y6aNct;JRKQX}d_~Q6T20D)b=C8!t1{U(nMy6YdR3-Y z;UEe0h>4hhKk!d-E9*giP<89#J{`8MdoT55F_Ep z!~~rd<(X292DJ@zupwxU{FR%NoNqw`VPd2s2dx5?I;UC*Q#fvH+nhwF^lN#Zg9!TfhL!uU3 z0yCmRBE6UIh}tRVF_p{^rX5It9wY%5rt^KkKrkFk0CT}|@B}yoE`qN>1S;|8BX~S+ z3a(@3iL{$|O7^%VK^mqYC=xLZQ9uZofiF#ng3x%P+nGgfywnoPpbY>s=AF%Aj+~1+ zktW#cWN{Ha7K!Uyi$6N;k-bpN#*wM63=r{;rzq%+K8II*MjLA(AV_Y3;vjiBPdb4@ z3i`^}atbI!MXEqB5p7glVv@*L25j^WMJaU}g@E`@6G7I)1+)Z!ksL|Q$RbJfa)_5n zX&$qs5Z9g;y&6&iyW}~{BbX^7loJ=p!chCDUwrcDoe7{sy8YGe}h6M z(+q`a?qpu&RkKi@Dc5K$m7r{4vfU)r4z~1SS;z@|QbB%U#;Uy1>9^fv%qnt}DPcYE zPwq1^9qaEUXi`rpL zQplyrDhv8aR%hdql8yGE&O}u|n~Guy$$KPUTY$INvdO6l`bO(B%qeB?z``+`vS9P0YRR!K2^r?=m#mw!Sj%lNEB&X z&>h;$5{;f^<$V8FSl1?Cx$ihI9dfX&u0mri_NDTiAcqo}pp_dS zB)~vkj#8?V^-2N5SzVbvlEea2Wy&160YKI;5*pz&^k_}3 zRN6Om?i>Kz5iUV(0IWunrIw{at@54!c^x+L4J)$T{dKH-lrOMhyVfPh5)I}Gp7WXF z!VO7%Wh$q`JCEl_rp1N13XL>3$yu0fF$|tHYwxTN=H>S5Qzglm07*c$zt?(Mk!sNu zFB|}2URGjaW!^fP!2PBB_J*=agGU6x6WRkk?9{Gg9Qm1+>4TxvSh7ZC6g!HOj7o-ltlYf*Xk4l zw=8ROFO^-b4o%Z)$_$FhuiXoIjqOM z)1Vim#*KX-+<0us(qqS#EG98t$>;OXAW6QvTpc5e#Y zU{URSJy`I{0hLJx02IKOEIc5kssdgr;feoAAT#O=3KjxgNx4kwRjE?aahpUoskH-_ zDU|*>0e>xoeJ+<5FDxzEHi?r#OxX<B!3_4^5(vPT~vt+)(Yyu&8;t#hzC@X!x|beeW9MTQYI_ z@Y+7UR4og&wj$r)-Xns;WBLYBpINCCwX>R;K|HN6-Mt7A#Kmq9%7#MBhG3o@&+$Hv zE)<1MQ36rCfp$(Gvv)R_M14CEfEsiBu`9P-(i5wY%S4Z&cRty)=@U={>Oc_*Mdn?L z!n{bUwQIFt_3UbA3SHi(IERZ?%`r3S_h|IS=Qq;xS#UJUI%d$#=+NKp$Z zjBd=POeSK!TPROQ)?q%Kvqw|-DJNy>sa92J7Q$D<0$zvd)mNw@yg=>atNjxyt~6In zm{1{vDkk`=Ifn4Dk!BDUh57BG-TM&~_E#Sv$yl2BNHx==Oi7((ipnB-6v31Tt|=;J z>3IfH8=?48^e7@O4g;I3{XL2hY3yD`VE?};4~v(z|38%nVs7;RtUR!@JQh4^ng66D z(qAtH`)|FU$dPz%wTSx+s2>kQ%$+6mHsX%DWw&tisB4Z5Z_14cCld1&C(&txRjJI# zP%4x3;9Hv~1Eu5WYJ3~~9^d12S$s>DjyH(d(kzkl5&r>p6G5xe86Eg&_edO0zt8U1 z;iImIhAjbnhYg|Ta2SL_A@qGy6Z$?B0-3Q%TuSQmHfpa< z&eVL}B*h~Zh1(cJ9MFb&1`sS=B2JOuUz>PFIJO<9V#CCNX$1G+4xFC&>lL5k7!dPe z+e!rfI70NtKtd6Q_Mk8%y@)&z#m&JL!*xpSln?o${v}3tuT}TD>720|g7{iGO+J^S ztE$AquLJ*ZKl3}HS>ctqUq0x?G}9}X@IVEpboF)7@&(E9r!|Gagbgsa7=q6 z0YBkG8O79%Ft|}u_-tVvu%kvXwm74`v3O7&j?^&m_BImg`}|MX7lYFo$QBJ1YTy)4t3IW-7J3>;xkWbcW47Gfy3v;4x_;zz}wqpWty9(X}FRMdhZ}%t30t z<`=zU6JMb^$F=58!riGBsrvu+w&HL9W{R9C_3c~k=aHh5xpc%q^r7Y}zp{;|R|4y*@U z3n)VG^s4IJq|pN4SXd-TCqF+~D)^d|8VDsBwT(*}YcnL=ErI?#EA8hERclYf289|>H-Y)O6H|*HSHXr#@y6ORnOttmceT*r^d|QvpMG9&IE3e)es_oBy0P){&0J;(?zLJd znDsGrhc5S6T7A$Bb#WW`^foAC{SG{)EjD6xr)EtK+_gPkoP-ZwICA8I*e0~djh)xL zXj6IfkX?%hv@-)1?;2vTSPbNfi(T4lbxM&Ls4x(uQV&mwO=oG za@SKKy_#Al<3lJob5uj9I=8PaIoZ}Xw>s1?YG&|yaYRoh_E4PO1cPVs+4#HAo!+S1 zbDc*F;8I)29ucMSxadJcAPP1nruD=JJ%!X;H$C77DL|JvDFCtBg%;6-kHw24dnn&q zK@Uz4@VKoIFN@`K@0n>y_NhBm^CV5Rk?@GQ=$)FKQxv>p z`@|yeATC_(50B69SK&qVw&Ud7lIKJhJ>_KCo0ypno=ngDnMB)f%;+nH72fbF-w+;z z3)2Dx!mU$(_LZQTguL3Or6WK_)%2DrJHf;arv6>~JdOAp7cc~ji!_T5F#twD zTLw3aKWZW3j5~L>MSv`k1Xg6pJRoZECvH&$*u�>=olG4!T4BYNCc4f{&*Kgc`m= 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 (this.numSteps + 1))) ? this.numSteps + 1 : index; + if (items[0] instanceof Array) { + items = items[0]; + } + + $startStep = $steps.find('li:nth-child(' + index + ')'); + $startPane = $stepContent.find('.step-pane:nth-child(' + index + ')'); + if ($startStep.length < 1) { + $startStep = null; + } + + for (i = 0, l = items.length; i < l; i++) { + $step = $('

  • '); + $step.append(items[i].label || '').append(''); + $step.find('.badge').append(items[i].badge || index); + + $pane = $('
    '); + $pane.append(items[i].pane || ''); + + if (!$startStep) { + $steps.append($step); + $stepContent.append($pane); + } else { + $startStep.before($step); + $startPane.before($pane); + } + + index++; + } + + this.syncSteps(); + this.numSteps = $steps.find('li').length; + this.setState(); + }, + + //index is 1 based, howMany is number to remove + removeSteps: function (index, howMany) { + var action = 'nextAll'; + var i = 0; + var $steps = this.$element.find('.steps'); + var $stepContent = this.$element.find('.step-content'); + var $start; + + howMany = (howMany !== undefined) ? howMany : 1; + + if (index > $steps.find('li').length) { + $start = $steps.find('li:last'); + } else { + $start = $steps.find('li:nth-child(' + index + ')').prev(); + if ($start.length < 1) { + action = 'children'; + $start = $steps; + } + + } + + $start[action]().each(function () { + var item = $(this); + var step = item.attr('data-step'); + if (i < howMany) { + item.remove(); + $stepContent.find('.step-pane[data-step="' + step + '"]:first').remove(); + } else { + return false; + } + + i++; + }); + + this.syncSteps(); + this.numSteps = $steps.find('li').length; + this.setState(); + }, + + setState: function () { + var canMovePrev = (this.currentStep > 1);//remember, steps index is 1 based... + var isFirstStep = (this.currentStep === 1); + var isLastStep = (this.currentStep === this.numSteps); + + // disable buttons based on current step + if (!this.options.disablePreviousStep) { + this.$prevBtn.attr('disabled', (isFirstStep === true || canMovePrev === false)); + } + + // change button text of last step, if specified + var last = this.$nextBtn.attr('data-last'); + if (last) { + this.lastText = last; + // replace text + var text = this.nextText; + if (isLastStep === true) { + text = this.lastText; + // add status class to wizard + this.$element.addClass('complete'); + } else { + this.$element.removeClass('complete'); + } + + var kids = this.$nextBtn.children().detach(); + this.$nextBtn.text(text).append(kids); + } + + // reset classes for all steps + var $steps = this.$element.find('.steps li'); + $steps.removeClass('active').removeClass('complete'); + $steps.find('span.badge').removeClass('badge-info').removeClass('badge-success'); + + // set class for all previous steps + var prevSelector = '.steps li:lt(' + (this.currentStep - 1) + ')'; + var $prevSteps = this.$element.find(prevSelector); + $prevSteps.addClass('complete'); + $prevSteps.find('span.badge').addClass('badge-success'); + + // set class for current step + var currentSelector = '.steps li:eq(' + (this.currentStep - 1) + ')'; + var $currentStep = this.$element.find(currentSelector); + $currentStep.addClass('active'); + $currentStep.find('span.badge').addClass('badge-info'); + + // set display of target element + var $stepContent = this.$element.find('.step-content'); + var target = $currentStep.attr('data-step'); + $stepContent.find('.step-pane').removeClass('active'); + $stepContent.find('.step-pane[data-step="' + target + '"]:first').addClass('active'); + + // reset the wizard position to the left + this.$element.find('.steps').first().attr('style', 'margin-left: 0'); + + // check if the steps are wider than the container div + var totalWidth = 0; + this.$element.find('.steps > li').each(function () { + totalWidth += $(this).outerWidth(); + }); + var containerWidth = 0; + if (this.$element.find('.actions').length) { + containerWidth = this.$element.width() - this.$element.find('.actions').first().outerWidth(); + } else { + containerWidth = this.$element.width(); + } + + if (totalWidth > containerWidth) { + // set the position so that the last step is on the right + var newMargin = totalWidth - containerWidth; + this.$element.find('.steps').first().attr('style', 'margin-left: -' + newMargin + 'px'); + + // set the position so that the active step is in a good + // position if it has been moved out of view + if (this.$element.find('li.active').first().position().left < 200) { + newMargin += this.$element.find('li.active').first().position().left - 200; + if (newMargin < 1) { + this.$element.find('.steps').first().attr('style', 'margin-left: 0'); + } else { + this.$element.find('.steps').first().attr('style', 'margin-left: -' + newMargin + 'px'); + } + + } + + } + + // only fire changed event after initializing + if (typeof (this.initialized) !== 'undefined') { + var e = $.Event('changed.fu.wizard'); + this.$element.trigger(e, { + step: this.currentStep + }); + } + + this.initialized = true; + }, + + stepclicked: function (e) { + var li = $(e.currentTarget); + var index = this.$element.find('.steps li').index(li); + + if (index < this.currentStep && this.options.disablePreviousStep) {//enforce restrictions + return; + } else { + var evt = $.Event('stepclicked.fu.wizard'); + this.$element.trigger(evt, { + step: index + 1 + }); + if (evt.isDefaultPrevented()) { + return; + } + + this.currentStep = (index + 1); + this.setState(); + } + }, + + syncSteps: function () { + var i = 1; + var $steps = this.$element.find('.steps'); + var $stepContent = this.$element.find('.step-content'); + + $steps.children().each(function () { + var item = $(this); + var badge = item.find('.badge'); + var step = item.attr('data-step'); + + if (!isNaN(parseInt(badge.html(), 10))) { + badge.html(i); + } + + item.attr('data-step', i); + $stepContent.find('.step-pane[data-step="' + step + '"]:last').attr('data-step', i); + i++; + }); + }, + + previous: function () { + if (this.options.disablePreviousStep || this.currentStep === 1) { + return; + } + + var e = $.Event('actionclicked.fu.wizard'); + this.$element.trigger(e, { + step: this.currentStep, + direction: 'previous' + }); + if (e.isDefaultPrevented()) { + return; + }// don't increment ...what? Why? + + this.currentStep -= 1; + this.setState(); + + // only set focus if focus is still on the $nextBtn (avoid stomping on a focus set programmatically in actionclicked callback) + if (this.$prevBtn.is(':focus')) { + var firstFormField = this.$element.find('.active').find('input, select, textarea')[0]; + + if (typeof firstFormField !== 'undefined') { + // allow user to start typing immediately instead of having to click on the form field. + $(firstFormField).focus(); + } else if (this.$element.find('.active input:first').length === 0 && this.$prevBtn.is(':disabled')) { + //only set focus on a button as the last resort if no form fields exist and the just clicked button is now disabled + this.$nextBtn.focus(); + } + + } + }, + + next: function () { + var e = $.Event('actionclicked.fu.wizard'); + this.$element.trigger(e, { + step: this.currentStep, + direction: 'next' + }); + if (e.isDefaultPrevented()) { + return; + }// respect preventDefault in case dev has attached validation to step and wants to stop propagation based on it. + + if (this.currentStep < this.numSteps) { + this.currentStep += 1; + this.setState(); + } else {//is last step + this.$element.trigger('finished.fu.wizard'); + } + + // only set focus if focus is still on the $nextBtn (avoid stomping on a focus set programmatically in actionclicked callback) + if (this.$nextBtn.is(':focus')) { + var firstFormField = this.$element.find('.active').find('input, select, textarea')[0]; + + if (typeof firstFormField !== 'undefined') { + // allow user to start typing immediately instead of having to click on the form field. + $(firstFormField).focus(); + } else if (this.$element.find('.active input:first').length === 0 && this.$nextBtn.is(':disabled')) { + //only set focus on a button as the last resort if no form fields exist and the just clicked button is now disabled + this.$prevBtn.focus(); + } + + } + }, + + selectedItem: function (selectedItem) { + var retVal, step; + + if (selectedItem) { + step = selectedItem.step || -1; + //allow selection of step by data-name + step = Number(this.$element.find('.steps li[data-name="' + step + '"]').first().attr('data-step')) || Number(step); + + if (1 <= step && step <= this.numSteps) { + this.currentStep = step; + this.setState(); + } else { + step = this.$element.find('.steps li.active:first').attr('data-step'); + if (!isNaN(step)) { + this.currentStep = parseInt(step, 10); + this.setState(); + } + + } + + retVal = this; + } else { + retVal = { + step: this.currentStep + }; + if (this.$element.find('.steps li.active:first[data-name]').length) { + retVal.stepname = this.$element.find('.steps li.active:first').attr('data-name'); + } + + } + + return retVal; + } + }; + + + // WIZARD PLUGIN DEFINITION + + $.fn.wizard = function (option) { + var args = Array.prototype.slice.call(arguments, 1); + var methodReturn; + + var $set = this.each(function () { + var $this = $(this); + var data = $this.data('fu.wizard'); + var options = typeof option === 'object' && option; + + if (!data) { + $this.data('fu.wizard', (data = new Wizard(this, options))); + } + + if (typeof option === 'string') { + methodReturn = data[option].apply(data, args); + } + }); + + return (methodReturn === undefined) ? $set : methodReturn; + }; + + $.fn.wizard.defaults = { + disablePreviousStep: false, + selectedItem: { + step: -1 + }//-1 means it will attempt to look for "active" class in order to set the step + }; + + $.fn.wizard.Constructor = Wizard; + + $.fn.wizard.noConflict = function () { + $.fn.wizard = old; + return this; + }; + + + // DATA-API + + $(document).on('mouseover.fu.wizard.data-api', '[data-initialize=wizard]', function (e) { + var $control = $(e.target).closest('.wizard'); + if (!$control.data('fu.wizard')) { + $control.wizard($control.data()); + } + }); + + // Must be domReady for AMD compatibility + $(function () { + $('[data-initialize=wizard]').each(function () { + var $this = $(this); + if ($this.data('fu.wizard')) return; + $this.wizard($this.data()); + }); + }); + + // -- BEGIN UMD WRAPPER AFTERWORD -- +})); +// -- END UMD WRAPPER AFTERWORD -- \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/plugins/html5shiv/Gruntfile.js b/platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/Gruntfile.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/html5shiv/Gruntfile.js rename to platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/Gruntfile.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv-printshiv.js b/platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv-printshiv.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv-printshiv.js rename to platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv-printshiv.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv-printshiv.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv-printshiv.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv-printshiv.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv-printshiv.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv.js b/platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv.js rename to platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/html5shiv/dist/html5shiv.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/html5shiv/dist/html5shiv.min.js diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/jTopo/jtopo-0.4.8-min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jTopo/jtopo-0.4.8-min.js new file mode 100644 index 0000000..e0960d9 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/jTopo/jtopo-0.4.8-min.js @@ -0,0 +1,3 @@ +!function(window){function Element(){this.initialize=function(){this.elementType="element",this.serializedProperties=["elementType"],this.propertiesStack=[],this._id=""+(new Date).getTime()},this.distroy=function(){},this.removeHandler=function(){},this.attr=function(a,b){if(null!=a&&null!=b)this[a]=b;else if(null!=a)return this[a];return this},this.save=function(){var a=this,b={};this.serializedProperties.forEach(function(c){b[c]=a[c]}),this.propertiesStack.push(b)},this.restore=function(){if(null!=this.propertiesStack&&0!=this.propertiesStack.length){var a=this,b=this.propertiesStack.pop();this.serializedProperties.forEach(function(c){a[c]=b[c]})}},this.toJson=function(){var a=this,b="{",c=this.serializedProperties.length;return this.serializedProperties.forEach(function(d,e){var f=a[d];"string"==typeof f&&(f='"'+f+'"'),b+='"'+d+'":'+f,c>e+1&&(b+=",")}),b+="}"}}CanvasRenderingContext2D.prototype.JTopoRoundRect=function(a,b,c,d,e){"undefined"==typeof e&&(e=5),this.beginPath(),this.moveTo(a+e,b),this.lineTo(a+c-e,b),this.quadraticCurveTo(a+c,b,a+c,b+e),this.lineTo(a+c,b+d-e),this.quadraticCurveTo(a+c,b+d,a+c-e,b+d),this.lineTo(a+e,b+d),this.quadraticCurveTo(a,b+d,a,b+d-e),this.lineTo(a,b+e),this.quadraticCurveTo(a,b,a+e,b),this.closePath()},CanvasRenderingContext2D.prototype.JTopoDashedLineTo=function(a,b,c,d,e){"undefined"==typeof e&&(e=5);var f=c-a,g=d-b,h=Math.floor(Math.sqrt(f*f+g*g)),i=0>=e?h:h/e,j=g/h*e,k=f/h*e;this.beginPath();for(var l=0;i>l;l++)l%2?this.lineTo(a+l*k,b+l*j):this.moveTo(a+l*k,b+l*j);this.stroke()},JTopo={version:"0.4.8",zIndex_Container:1,zIndex_Link:2,zIndex_Node:3,SceneMode:{normal:"normal",drag:"drag",edit:"edit",select:"select"},MouseCursor:{normal:"default",pointer:"pointer",top_left:"nw-resize",top_center:"n-resize",top_right:"ne-resize",middle_left:"e-resize",middle_right:"e-resize",bottom_left:"ne-resize",bottom_center:"n-resize",bottom_right:"nw-resize",move:"move",open_hand:"url(./img/cur/openhand.cur) 8 8, default",closed_hand:"url(./img/cur/closedhand.cur) 8 8, default"},createStageFromJson:function(jsonStr,canvas){eval("var jsonObj = "+jsonStr);var stage=new JTopo.Stage(canvas);for(var k in jsonObj)"childs"!=k&&(stage[k]=jsonObj[k]);var scenes=jsonObj.childs;return scenes.forEach(function(a){var b=new JTopo.Scene(stage);for(var c in a)"childs"!=c&&(b[c]=a[c]),"background"==c&&(b.background=a[c]);var d=a.childs;d.forEach(function(a){var c=null,d=a.elementType;"node"==d?c=new JTopo.Node:"CircleNode"==d&&(c=new JTopo.CircleNode);for(var e in a)c[e]=a[e];b.add(c)})}),stage}},JTopo.Element=Element,window.JTopo=JTopo}(window),function(JTopo){function MessageBus(a){var b=this;this.name=a,this.messageMap={},this.messageCount=0,this.subscribe=function(a,c){var d=b.messageMap[a];null==d&&(b.messageMap[a]=[]),b.messageMap[a].push(c),b.messageCount++},this.unsubscribe=function(a){var c=b.messageMap[a];null!=c&&(b.messageMap[a]=null,delete b.messageMap[a],b.messageCount--)},this.publish=function(a,c,d){var e=b.messageMap[a];if(null!=e)for(var f=0;fd.x&&(b.left=d.x,b.leftNode=d),b.rightd.y&&(b.top=d.y,b.topNode=d),b.bottomb)){var f=0;e(f)}}function cloneEvent(a){var b={};for(var c in a)"returnValue"!=c&&"keyLocation"!=c&&(b[c]=a[c]);return b}function clone(a){var b={};for(var c in a)b[c]=a[c];return b}function isPointInRect(a,b){var c=b.x,d=b.y,e=b.width,f=b.height;return a.x>c&&a.xd&&a.y0&&(c+=",");var e=a[b[d]];"string"==typeof e?e='"'+e+'"':void 0==e&&(e=null),c+=b[d]+":"+e}return c}function loadStageFromJson(json,canvas){var obj=eval(json),stage=new JTopo.Stage(canvas);for(var k in stageObj)if("scenes"!=k)stage[k]=obj[k];else for(var scenes=obj.scenes,i=0;i0&&(d+=","),d+="{",d+=getProperties(h,c),d+="}"}d+="]}"}return d+="]",d+="}"}function changeColor(a,b,c,d,e){var f=canvas.width=b.width,g=canvas.height=b.height;a.clearRect(0,0,canvas.width,canvas.height),a.drawImage(b,0,0);for(var h=a.getImageData(0,0,b.width,b.height),i=h.data,j=0;f>j;j++)for(var k=0;g>k;k++){var l=4*(j+k*f);0!=i[l+3]&&(null!=c&&(i[l+0]+=c),null!=d&&(i[l+1]+=d),null!=e&&(i[l+2]+=e))}a.putImageData(h,0,0,0,0,b.width,b.height);var m=canvas.toDataURL();return alarmImageCache[b.src]=m,m}function genImageAlarm(a,b){null==b&&(b=255);try{if(alarmImageCache[a.src])return alarmImageCache[a.src];var c=new Image;return c.src=changeColor(graphics,a,b),alarmImageCache[a.src]=c,c}catch(d){}return null}function getOffsetPosition(a){if(!a)return{left:0,top:0};var b=0,c=0;if("getBoundingClientRect"in document.documentElement)var d=a.getBoundingClientRect(),e=a.ownerDocument,f=e.body,g=e.documentElement,h=g.clientTop||f.clientTop||0,i=g.clientLeft||f.clientLeft||0,b=d.top+(self.pageYOffset||g&&g.scrollTop||f.scrollTop)-h,c=d.left+(self.pageXOffset||g&&g.scrollLeft||f.scrollLeft)-i;else do b+=a.offsetTop||0,c+=a.offsetLeft||0,a=a.offsetParent;while(a);return{left:c,top:b}}function lineF(a,b,c,d){function e(a){return a*f+g}var f=(d-b)/(c-a),g=b-a*f;return e.k=f,e.b=g,e.x1=a,e.x2=c,e.y1=b,e.y2=d,e}function inRange(a,b,c){var d=Math.abs(b-c),e=Math.abs(b-a),f=Math.abs(c-a),g=Math.abs(d-(e+f));return 1e-6>g?!0:!1}function isPointInLineSeg(a,b,c){return inRange(a,c.x1,c.x2)&&inRange(b,c.y1,c.y2)}function intersection(a,b){var c,d;return a.k==b.k?null:(1/0==a.k||a.k==-1/0?(c=a.x1,d=b(a.x1)):1/0==b.k||b.k==-1/0?(c=b.x1,d=a(b.x1)):(c=(b.b-a.b)/(a.k-b.k),d=a(c)),0==isPointInLineSeg(c,d,a)?null:0==isPointInLineSeg(c,d,b)?null:{x:c,y:d})}function intersectionLineBound(a,b){var c=JTopo.util.lineF(b.left,b.top,b.left,b.bottom),d=JTopo.util.intersection(a,c);return null==d&&(c=JTopo.util.lineF(b.left,b.top,b.right,b.top),d=JTopo.util.intersection(a,c),null==d&&(c=JTopo.util.lineF(b.right,b.top,b.right,b.bottom),d=JTopo.util.intersection(a,c),null==d&&(c=JTopo.util.lineF(b.left,b.bottom,b.right,b.bottom),d=JTopo.util.intersection(a,c)))),d}requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||function(a){setTimeout(a,1e3/24)},Array.prototype.del=function(a){if("number"!=typeof a){for(var b=0;ba?this:this.slice(0,a).concat(this.slice(a+1,this.length))},[].indexOf||(Array.prototype.indexOf=function(a){for(var b=0;b0,isIE:!(!window.attachEvent||-1!==navigator.userAgent.indexOf("Opera")),isChrome:null!=navigator.userAgent.toLowerCase().match(/chrome/),clone:clone,isPointInRect:isPointInRect,isPointInLine:isPointInLine,removeFromArray:removeFromArray,cloneEvent:cloneEvent,randomColor:randomColor,isIntsect:isIntsect,toJson:toJson,loadStageFromJson:loadStageFromJson,getElementsBound:getElementsBound,genImageAlarm:genImageAlarm,getOffsetPosition:getOffsetPosition,lineF:lineF,intersection:intersection,intersectionLineBound:intersectionLineBound},window.$for=$for,window.$foreach=$foreach}(JTopo),function(a){function b(a){return{hgap:16,visible:!1,exportCanvas:document.createElement("canvas"),getImage:function(b,c){var d=a.getBound(),e=1,f=1;this.exportCanvas.width=a.canvas.width,this.exportCanvas.height=a.canvas.height,null!=b&&null!=c?(this.exportCanvas.width=b,this.exportCanvas.height=c,e=b/d.width,f=c/d.height):(d.width>a.canvas.width&&(this.exportCanvas.width=d.width),d.height>a.canvas.height&&(this.exportCanvas.height=d.height));var g=this.exportCanvas.getContext("2d");return a.childs.length>0&&(g.save(),g.clearRect(0,0,this.exportCanvas.width,this.exportCanvas.height),a.childs.forEach(function(a){1==a.visible&&(a.save(),a.translateX=0,a.translateY=0,a.scaleX=1,a.scaleY=1,g.scale(e,f),d.left<0&&(a.translateX=Math.abs(d.left)),d.top<0&&(a.translateY=Math.abs(d.top)),a.paintAll=!0,a.repaint(g),a.paintAll=!1,a.restore())}),g.restore()),this.exportCanvas.toDataURL("image/png")},canvas:document.createElement("canvas"),update:function(){this.eagleImageDatas=this.getData(a)},setSize:function(a,b){this.width=this.canvas.width=a,this.height=this.canvas.height=b},getData:function(b,c){function d(a){var b=a.stage.canvas.width,c=a.stage.canvas.height,d=b/a.scaleX/2,e=c/a.scaleY/2;return{translateX:a.translateX+d-d*a.scaleX,translateY:a.translateY+e-e*a.scaleY}}null!=j&&null!=k?this.setSize(b,c):this.setSize(200,160);var e=this.canvas.getContext("2d");if(a.childs.length>0){e.save(),e.clearRect(0,0,this.canvas.width,this.canvas.height),a.childs.forEach(function(a){1==a.visible&&(a.save(),a.centerAndZoom(null,null,e),a.repaint(e),a.restore())});var f=d(a.childs[0]),g=f.translateX*(this.canvas.width/a.canvas.width)*a.childs[0].scaleX,h=f.translateY*(this.canvas.height/a.canvas.height)*a.childs[0].scaleY,i=a.getBound(),j=a.canvas.width/a.childs[0].scaleX/i.width,k=a.canvas.height/a.childs[0].scaleY/i.height;j>1&&(j=1),k>1&&(j=1),g*=j,h*=k,i.left<0&&(g-=Math.abs(i.left)*(this.width/i.width)),i.top<0&&(h-=Math.abs(i.top)*(this.height/i.height)),e.save(),e.lineWidth=1,e.strokeStyle="rgba(255,0,0,1)",e.strokeRect(-g,-h,e.canvas.width*j,e.canvas.height*k),e.restore();var l=null;try{l=e.getImageData(0,0,e.canvas.width,e.canvas.height)}catch(m){}return l}return null},paint:function(){if(null!=this.eagleImageDatas){var b=a.graphics;b.save(),b.fillStyle="rgba(211,211,211,0.3)",b.fillRect(a.canvas.width-this.canvas.width-2*this.hgap,a.canvas.height-this.canvas.height-1,a.canvas.width-this.canvas.width,this.canvas.height+1),b.fill(),b.save(),b.lineWidth=1,b.strokeStyle="rgba(0,0,0,1)",b.rect(a.canvas.width-this.canvas.width-2*this.hgap,a.canvas.height-this.canvas.height-1,a.canvas.width-this.canvas.width,this.canvas.height+1),b.stroke(),b.restore(),b.putImageData(this.eagleImageDatas,a.canvas.width-this.canvas.width-this.hgap,a.canvas.height-this.canvas.height),b.restore()}else this.eagleImageDatas=this.getData(a)},eventHandler:function(a,b,c){var d=b.x,e=b.y;if(d>c.canvas.width-this.canvas.width&&e>c.canvas.height-this.canvas.height){if(d=b.x-this.canvas.width,e=b.y-this.canvas.height,"mousedown"==a&&(this.lastTranslateX=c.childs[0].translateX,this.lastTranslateY=c.childs[0].translateY),"mousedrag"==a&&c.childs.length>0){var f=b.dx,g=b.dy,h=c.getBound(),i=this.canvas.width/c.childs[0].scaleX/h.width,j=this.canvas.height/c.childs[0].scaleY/h.height;c.childs[0].translateX=this.lastTranslateX-f/i,c.childs[0].translateY=this.lastTranslateY-g/j}}else;}}}function c(c){function d(b){var c=a.util.getEventPosition(b),d=a.util.getOffsetPosition(n.canvas);return c.offsetLeft=c.pageX-d.left,c.offsetTop=c.pageY-d.top,c.x=c.offsetLeft,c.y=c.offsetTop,c.target=null,c}function e(a){document.onselectstart=function(){return!1},this.mouseOver=!0;var b=d(a);n.dispatchEventToScenes("mouseover",b),n.dispatchEvent("mouseover",b)}function f(a){p=setTimeout(function(){o=!0},500),document.onselectstart=function(){return!0};var b=d(a);n.dispatchEventToScenes("mouseout",b),n.dispatchEvent("mouseout",b),n.needRepaint=0==n.animate?!1:!0}function g(a){var b=d(a);n.mouseDown=!0,n.mouseDownX=b.x,n.mouseDownY=b.y,n.dispatchEventToScenes("mousedown",b),n.dispatchEvent("mousedown",b)}function h(a){var b=d(a);n.dispatchEventToScenes("mouseup",b),n.dispatchEvent("mouseup",b),n.mouseDown=!1,n.needRepaint=0==n.animate?!1:!0}function i(a){p&&(window.clearTimeout(p),p=null),o=!1;var b=d(a);n.mouseDown?0==a.button&&(b.dx=b.x-n.mouseDownX,b.dy=b.y-n.mouseDownY,n.dispatchEventToScenes("mousedrag",b),n.dispatchEvent("mousedrag",b),1==n.eagleEye.visible&&n.eagleEye.update()):(n.dispatchEventToScenes("mousemove",b),n.dispatchEvent("mousemove",b))}function j(a){var b=d(a);n.dispatchEventToScenes("click",b),n.dispatchEvent("click",b)}function k(a){var b=d(a);n.dispatchEventToScenes("dbclick",b),n.dispatchEvent("dbclick",b)}function l(a){var b=d(a);n.dispatchEventToScenes("mousewheel",b),n.dispatchEvent("mousewheel",b),null!=n.wheelZoom&&(a.preventDefault?a.preventDefault():(a=a||window.event,a.returnValue=!1),1==n.eagleEye.visible&&n.eagleEye.update())}function m(b){a.util.isIE||!window.addEventListener?(b.onmouseout=f,b.onmouseover=e,b.onmousedown=g,b.onmouseup=h,b.onmousemove=i,b.onclick=j,b.ondblclick=k,b.onmousewheel=l,b.touchstart=g,b.touchmove=i,b.touchend=h):(b.addEventListener("mouseout",f),b.addEventListener("mouseover",e),b.addEventListener("mousedown",g),b.addEventListener("mouseup",h),b.addEventListener("mousemove",i),b.addEventListener("click",j),b.addEventListener("dblclick",k),a.util.isFirefox?b.addEventListener("DOMMouseScroll",l):b.addEventListener("mousewheel",l)),window.addEventListener&&(window.addEventListener("keydown",function(b){n.dispatchEventToScenes("keydown",a.util.cloneEvent(b));var c=b.keyCode;(37==c||38==c||39==c||40==c)&&(b.preventDefault?b.preventDefault():(b=b||window.event,b.returnValue=!1))},!0),window.addEventListener("keyup",function(b){n.dispatchEventToScenes("keyup",a.util.cloneEvent(b));var c=b.keyCode;(37==c||38==c||39==c||40==c)&&(b.preventDefault?b.preventDefault():(b=b||window.event,b.returnValue=!1))},!0))}a.stage=this;var n=this;this.initialize=function(c){m(c),this.canvas=c,this.graphics=c.getContext("2d"),this.childs=[],this.frames=24,this.messageBus=new a.util.MessageBus,this.eagleEye=b(this),this.wheelZoom=null,this.mouseDownX=0,this.mouseDownY=0,this.mouseDown=!1,this.mouseOver=!1,this.needRepaint=!0,this.serializedProperties=["frames","wheelZoom"]},null!=c&&this.initialize(c);var o=!0,p=null;document.oncontextmenu=function(){return o},this.dispatchEventToScenes=function(a,b){if(0!=this.frames&&(this.needRepaint=!0),1==this.eagleEye.visible&&-1!=a.indexOf("mouse")){var c=b.x,d=b.y;if(c>this.width-this.eagleEye.width&&d>this.height-this.eagleEye.height)return void this.eagleEye.eventHandler(a,b,this)}this.childs.forEach(function(c){if(1==c.visible){var d=c[a+"Handler"];if(null==d)throw new Error("Function not found:"+a+"Handler");d.call(c,b)}})},this.add=function(a){for(var b=0;b"),this},this.saveAsLocalImage=function(a,b){var c=this.eagleEye.getImage(a,b);return c.replace("image/png","image/octet-stream"),window.location.href=c,this},this.paint=function(){null!=this.canvas&&(this.graphics.save(),this.graphics.clearRect(0,0,this.width,this.height),this.childs.forEach(function(a){1==a.visible&&a.repaint(n.graphics)}),1==this.eagleEye.visible&&this.eagleEye.paint(this),this.graphics.restore())},this.repaint=function(){0!=this.frames&&(this.frames<0&&0==this.needRepaint||(this.paint(),this.frames<0&&(this.needRepaint=!1)))},this.zoom=function(a){this.childs.forEach(function(b){0!=b.visible&&b.zoom(a)})},this.zoomOut=function(a){this.childs.forEach(function(b){0!=b.visible&&b.zoomOut(a)})},this.zoomIn=function(a){this.childs.forEach(function(b){0!=b.visible&&b.zoomIn(a)})},this.centerAndZoom=function(){this.childs.forEach(function(a){0!=a.visible&&a.centerAndZoom()})},this.setCenter=function(a,b){var c=this;this.childs.forEach(function(d){var e=a-c.canvas.width/2,f=b-c.canvas.height/2;d.translateX=-e,d.translateY=-f})},this.getBound=function(){var a={left:Number.MAX_VALUE,right:Number.MIN_VALUE,top:Number.MAX_VALUE,bottom:Number.MIN_VALUE};return this.childs.forEach(function(b){var c=b.getElementsBound();c.lefta.right&&(a.right=c.right,a.rightNode=c.rightNode),c.bottom>a.bottom&&(a.bottom=c.bottom,a.bottomNode=c.bottomNode)}),a.width=a.right-a.left,a.height=a.bottom-a.top,a},this.toJson=function(){{var b=this,c='{"version":"'+a.version+'",';this.serializedProperties.length}return this.serializedProperties.forEach(function(a){var d=b[a];"string"==typeof d&&(d='"'+d+'"'),c+='"'+a+'":'+d+","}),c+='"childs":[',this.childs.forEach(function(a){c+=a.toJson()}),c+="]",c+="}"},function(){0==n.frames?setTimeout(arguments.callee,100):n.frames<0?(n.repaint(),setTimeout(arguments.callee,1e3/-n.frames)):(n.repaint(),setTimeout(arguments.callee,1e3/n.frames))}(),setTimeout(function(){n.mousewheel(function(a){var b=null==a.wheelDelta?a.detail:a.wheelDelta;null!=this.wheelZoom&&(b>0?this.zoomIn(this.wheelZoom):this.zoomOut(this.wheelZoom))}),n.paint()},300),setTimeout(function(){n.paint()},1e3),setTimeout(function(){n.paint()},3e3)}c.prototype={get width(){return this.canvas.width},get height(){return this.canvas.height},set cursor(a){this.canvas.style.cursor=a},get cursor(){return this.canvas.style.cursor},set mode(a){this.childs.forEach(function(b){b.mode=a})}},a.Stage=c}(JTopo),function(a){function b(c){function d(a,b,c,d){return function(e){e.beginPath(),e.strokeStyle="rgba(0,0,236,0.5)",e.fillStyle="rgba(0,0,236,0.1)",e.rect(a,b,c,d),e.fill(),e.stroke(),e.closePath()}}var e=this;this.initialize=function(){b.prototype.initialize.apply(this,arguments),this.messageBus=new a.util.MessageBus,this.elementType="scene",this.childs=[],this.zIndexMap={},this.zIndexArray=[],this.backgroundColor="255,255,255",this.visible=!0,this.alpha=0,this.scaleX=1,this.scaleY=1,this.mode=a.SceneMode.normal,this.translate=!0,this.translateX=0,this.translateY=0,this.lastTranslateX=0,this.lastTranslateY=0,this.mouseDown=!1,this.mouseDownX=null,this.mouseDownY=null,this.mouseDownEvent=null,this.areaSelect=!0,this.operations=[],this.selectedElements=[],this.paintAll=!1;var c="background,backgroundColor,mode,paintAll,areaSelect,translate,translateX,translateY,lastTranslatedX,lastTranslatedY,alpha,visible,scaleX,scaleY".split(",");this.serializedProperties=this.serializedProperties.concat(c)},this.initialize(),this.setBackground=function(a){this.background=a},this.addTo=function(a){this.stage!==a&&null!=a&&(this.stage=a)},null!=c&&(c.add(this),this.addTo(c)),this.show=function(){this.visible=!0},this.hide=function(){this.visible=!1},this.paint=function(a){if(0!=this.visible&&null!=this.stage){if(a.save(),this.paintBackgroud(a),a.restore(),a.save(),a.scale(this.scaleX,this.scaleY),1==this.translate){var b=this.getOffsetTranslate(a);a.translate(b.translateX,b.translateY)}this.paintChilds(a),a.restore(),a.save(),this.paintOperations(a,this.operations),a.restore()}},this.repaint=function(a){0!=this.visible&&this.paint(a)},this.paintBackgroud=function(a){null!=this.background?a.drawImage(this.background,0,0,a.canvas.width,a.canvas.height):(a.beginPath(),a.fillStyle="rgba("+this.backgroundColor+","+this.alpha+")",a.fillRect(0,0,a.canvas.width,a.canvas.height),a.closePath())},this.getDisplayedElements=function(){for(var a=[],b=0;bthis.stage.canvas.width||e>this.stage.canvas.height||0>f||0>g?!1:!0},this.paintOperations=function(a,b){for(var c=0;c=0;e--)for(var f=this.zIndexArray[e],g=this.zIndexMap[f],h=g.length-1;h>=0;h--){var i=g[h];if(i instanceof a.InteractiveElement&&this.isVisiable(i)&&i.isInBound(b,c))return d=i}return d},this.add=function(a){this.childs.push(a),null==this.zIndexMap[a.zIndex]&&(this.zIndexMap[a.zIndex]=[],this.zIndexArray.push(a.zIndex),this.zIndexArray.sort(function(a,b){return a-b})),this.zIndexMap[""+a.zIndex].push(a)},this.remove=function(b){this.childs=a.util.removeFromArray(this.childs,b);var c=this.zIndexMap[b.zIndex];c&&(this.zIndexMap[b.zIndex]=a.util.removeFromArray(c,b)),b.removeHandler(this)},this.clear=function(){var a=this;this.childs.forEach(function(b){b.removeHandler(a)}),this.childs=[],this.operations=[],this.zIndexArray=[],this.zIndexMap={}},this.addToSelected=function(a){this.selectedElements.push(a)},this.cancleAllSelected=function(a){for(var b=0;b=f?f:b,i=c>=g?g:c,j=Math.abs(a.dx)*this.scaleX,k=Math.abs(a.dy)*this.scaleY,l=new d(h,i,j,k);e.clearOperations().addOperation(l),b=a.x,c=a.y,f=this.mouseDownEvent.x,g=this.mouseDownEvent.y,h=b>=f?f:b,i=c>=g?g:c,j=Math.abs(a.dx),k=Math.abs(a.dy);for(var m=h+j,n=i+k,o=0;oh&&p.x+p.widthi&&p.y+p.height1)return;this.zoom(i,i)}this.zoom(a,b)},this.getCenterLocation=function(){return{x:e.stage.canvas.width/2,y:e.stage.canvas.height/2}},this.doLayout=function(a){a&&a(this,this.childs)},this.toJson=function(){{var a=this,b="{";this.serializedProperties.length}this.serializedProperties.forEach(function(c){var d=a[c];"background"==c&&(d=a._background.src),"string"==typeof d&&(d='"'+d+'"'),b+='"'+c+'":'+d+","}),b+='"childs":[';var c=this.childs.length;return this.childs.forEach(function(a,d){b+=a.toJson(),c>d+1&&(b+=",")}),b+="]",b+="}"},e}b.prototype=new a.Element;var c={};Object.defineProperties(b.prototype,{background:{get:function(){return this._background},set:function(a){if("string"==typeof a){var b=c[a];null==b&&(b=new Image,b.src=a,b.onload=function(){c[a]=b}),this._background=b}else this._background=a}}}),a.Scene=b}(JTopo),function(a){function b(){this.initialize=function(){b.prototype.initialize.apply(this,arguments),this.elementType="displayElement",this.x=0,this.y=0,this.width=32,this.height=32,this.visible=!0,this.alpha=1,this.rotate=0,this.scaleX=1,this.scaleY=1,this.strokeColor="22,124,255",this.borderColor="22,124,255",this.fillColor="22,124,255",this.shadow=!1,this.shadowBlur=5,this.shadowColor="rgba(0,0,0,0.5)",this.shadowOffsetX=3,this.shadowOffsetY=6,this.transformAble=!1,this.zIndex=0;var a="x,y,width,height,visible,alpha,rotate,scaleX,scaleY,strokeColor,fillColor,shadow,shadowColor,shadowOffsetX,shadowOffsetY,transformAble,zIndex".split(",");this.serializedProperties=this.serializedProperties.concat(a)},this.initialize(),this.paint=function(a){a.beginPath(),a.fillStyle="rgba("+this.fillColor+","+this.alpha+")",a.rect(-this.width/2,-this.height/2,this.width,this.height),a.fill(),a.stroke(),a.closePath()},this.getLocation=function(){return{x:this.x,y:this.y}},this.setLocation=function(a,b){return this.x=a,this.y=b,this},this.getCenterLocation=function(){return{x:this.x+this.width/2,y:this.y+this.height/2}},this.setCenterLocation=function(a,b){return this.x=a-this.width/2,this.y=b-this.height/2,this},this.getSize=function(){return{width:this.width,height:this.heith}},this.setSize=function(a,b){return this.width=a,this.height=b,this},this.getBound=function(){return{left:this.x,top:this.y,right:this.x+this.width,bottom:this.y+this.height,width:this.width,height:this.height}},this.setBound=function(a,b,c,d){return this.setLocation(a,b),this.setSize(c,d),this},this.getDisplayBound=function(){return{left:this.x,top:this.y,right:this.x+this.width*this.scaleX,bottom:this.y+this.height*this.scaleY}},this.getDisplaySize=function(){return{width:this.width*this.scaleX,height:this.height*this.scaleY}},this.getPosition=function(a){var b,c=this.getBound();return"Top_Left"==a?b={x:c.left,y:c.top}:"Top_Center"==a?b={x:this.cx,y:c.top}:"Top_Right"==a?b={x:c.right,y:c.top}:"Middle_Left"==a?b={x:c.left,y:this.cy}:"Middle_Center"==a?b={x:this.cx,y:this.cy}:"Middle_Right"==a?b={x:c.right,y:this.cy}:"Bottom_Left"==a?b={x:c.left,y:c.bottom}:"Bottom_Center"==a?b={x:this.cx,y:c.bottom}:"Bottom_Right"==a&&(b={x:c.right,y:c.bottom}),b}}function c(){this.initialize=function(){c.prototype.initialize.apply(this,arguments),this.elementType="interactiveElement",this.dragable=!1,this.selected=!1,this.showSelected=!0,this.selectedLocation=null,this.isMouseOver=!1;var a="dragable,selected,showSelected,isMouseOver".split(",");this.serializedProperties=this.serializedProperties.concat(a)},this.initialize(),this.paintSelected=function(a){0!=this.showSelected&&(a.save(),a.beginPath(),a.strokeStyle="rgba(168,202,255, 0.9)",a.fillStyle="rgba(168,202,236,0.7)",a.rect(-this.width/2-3,-this.height/2-3,this.width+6,this.height+6),a.fill(),a.stroke(),a.closePath(),a.restore())},this.paintMouseover=function(a){return this.paintSelected(a)},this.isInBound=function(a,b){return a>this.x&&athis.y&&bf.left&&af.top&&c1&&(this.width=d)}else if("Middle_Left"==this.selectedPoint){var d=this.selectedSize.width-a.dx,b=this.selectedLocation.x+a.dx;b1&&(this.width=d)}else if("Middle_Right"==this.selectedPoint){var d=this.selectedSize.width+a.dx;d>1&&(this.width=d)}else if("Bottom_Left"==this.selectedPoint){var d=this.selectedSize.width-a.dx,b=this.selectedLocation.x+a.dx;d>1&&(this.x=b,this.width=d);var e=this.selectedSize.height+a.dy;e>1&&(this.height=e)}else if("Bottom_Center"==this.selectedPoint){var e=this.selectedSize.height+a.dy;e>1&&(this.height=e)}else if("Bottom_Right"==this.selectedPoint){var d=this.selectedSize.width+a.dx;d>1&&(this.width=d);var e=this.selectedSize.height+a.dy;e>1&&(this.height=e)}this.dispatchEvent("resize",a)}}}b.prototype=new a.Element,Object.defineProperties(b.prototype,{cx:{get:function(){return this.x+this.width/2},set:function(a){this.x=a-this.width/2}},cy:{get:function(){return this.y+this.height/2},set:function(a){this.y=a-this.height/2}}}),c.prototype=new b,d.prototype=new c,a.DisplayElement=b,a.InteractiveElement=c,a.EditableElement=d}(JTopo),function(a){function b(c){this.initialize=function(c){b.prototype.initialize.apply(this,arguments),this.elementType="node",this.zIndex=a.zIndex_Node,this.text=c,this.font="12px Consolas",this.fontColor="255,255,255",this.borderWidth=0,this.borderColor="255,255,255",this.borderRadius=null,this.dragable=!0,this.textPosition="Bottom_Center",this.textOffsetX=0,this.textOffsetY=0,this.transformAble=!0,this.inLinks=null,this.outLinks=null;var d="text,font,fontColor,textPosition,textOffsetX,textOffsetY,borderRadius".split(",");this.serializedProperties=this.serializedProperties.concat(d)},this.initialize(c),this.paint=function(a){if(this.image){var b=a.globalAlpha;a.globalAlpha=this.alpha,null!=this.image.alarm&&null!=this.alarm?a.drawImage(this.image.alarm,-this.width/2,-this.height/2,this.width,this.height):a.drawImage(this.image,-this.width/2,-this.height/2,this.width,this.height),a.globalAlpha=b}else a.beginPath(),a.fillStyle="rgba("+this.fillColor+","+this.alpha+")",null==this.borderRadius||0==this.borderRadius?a.rect(-this.width/2,-this.height/2,this.width,this.height):a.JTopoRoundRect(-this.width/2,-this.height/2,this.width,this.height,this.borderRadius),a.fill(),a.closePath();this.paintText(a),this.paintBorder(a),this.paintCtrl(a),this.paintAlarmText(a)},this.paintAlarmText=function(a){if(null!=this.alarm&&""!=this.alarm){var b=this.alarmColor||"255,0,0",c=this.alarmAlpha||.5;a.beginPath(),a.font=this.alarmFont||"10px 寰蒋闆呴粦";var d=a.measureText(this.alarm).width+6,e=a.measureText("鐢�").width+6,f=this.width/2-d/2,g=-this.height/2-e-8;a.strokeStyle="rgba("+b+", "+c+")",a.fillStyle="rgba("+b+", "+c+")",a.lineCap="round",a.lineWidth=1,a.moveTo(f,g),a.lineTo(f+d,g),a.lineTo(f+d,g+e),a.lineTo(f+d/2+6,g+e),a.lineTo(f+d/2,g+e+8),a.lineTo(f+d/2-6,g+e),a.lineTo(f,g+e),a.lineTo(f,g),a.fill(),a.stroke(),a.closePath(),a.beginPath(),a.strokeStyle="rgba("+this.fontColor+", "+this.alpha+")",a.fillStyle="rgba("+this.fontColor+", "+this.alpha+")",a.fillText(this.alarm,f+2,g+e-4),a.closePath()}},this.paintText=function(a){var b=this.text;if(null!=b&&""!=b){a.beginPath(),a.font=this.font;var c=a.measureText(b).width,d=a.measureText("鐢�").width;a.fillStyle="rgba("+this.fontColor+", "+this.alpha+")";var e=this.getTextPostion(this.textPosition,c,d);a.fillText(b,e.x,e.y),a.closePath()}},this.paintBorder=function(a){if(0!=this.borderWidth){a.beginPath(),a.lineWidth=this.borderWidth,a.strokeStyle="rgba("+this.borderColor+","+this.alpha+")";var b=this.borderWidth/2;null==this.borderRadius||0==this.borderRadius?a.rect(-this.width/2-b,-this.height/2-b,this.width+this.borderWidth,this.height+this.borderWidth):a.JTopoRoundRect(-this.width/2-b,-this.height/2-b,this.width+this.borderWidth,this.height+this.borderWidth,this.borderRadius),a.stroke(),a.closePath()}},this.getTextPostion=function(a,b,c){var d=null;return null==a||"Bottom_Center"==a?d={x:-this.width/2+(this.width-b)/2,y:this.height/2+c}:"Top_Center"==a?d={x:-this.width/2+(this.width-b)/2,y:-this.height/2-c/2}:"Top_Right"==a?d={x:this.width/2,y:-this.height/2-c/2}:"Top_Left"==a?d={x:-this.width/2-b,y:-this.height/2-c/2}:"Bottom_Right"==a?d={x:this.width/2,y:this.height/2+c}:"Bottom_Left"==a?d={x:-this.width/2-b,y:this.height/2+c}:"Middle_Center"==a?d={x:-this.width/2+(this.width-b)/2,y:c/2}:"Middle_Right"==a?d={x:this.width/2,y:c/2}:"Middle_Left"==a&&(d={x:-this.width/2-b,y:c/2}),null!=this.textOffsetX&&(d.x+=this.textOffsetX),null!=this.textOffsetY&&(d.y+=this.textOffsetY),d},this.setImage=function(b,c){if(null==b)throw new Error("Node.setImage(): 鍙傛暟Image瀵硅薄涓虹┖!");var d=this;if("string"==typeof b){var e=j[b];null==e?(e=new Image,e.src=b,e.onload=function(){j[b]=e,1==c&&d.setSize(e.width,e.height);var f=a.util.genImageAlarm(e);f&&(e.alarm=f),d.image=e}):(c&&this.setSize(e.width,e.height),this.image=e)}else this.image=b,1==c&&this.setSize(b.width,b.height)},this.removeHandler=function(a){var b=this;this.outLinks&&(this.outLinks.forEach(function(c){c.nodeA===b&&a.remove(c)}),this.outLinks=null),this.inLinks&&(this.inLinks.forEach(function(c){c.nodeZ===b&&a.remove(c)}),this.inLinks=null)}}function c(){c.prototype.initialize.apply(this,arguments)}function d(a){this.initialize(),this.text=a,this.elementType="TextNode",this.paint=function(a){a.beginPath(),a.font=this.font,this.width=a.measureText(this.text).width,this.height=a.measureText("鐢�").width,a.strokeStyle="rgba("+this.fontColor+", "+this.alpha+")",a.fillStyle="rgba("+this.fontColor+", "+this.alpha+")",a.fillText(this.text,-this.width/2,this.height/2),a.closePath(),this.paintBorder(a),this.paintCtrl(a),this.paintAlarmText(a)}}function e(a,b,c){this.initialize(),this.text=a,this.href=b,this.target=c,this.elementType="LinkNode",this.isVisited=!1,this.visitedColor=null,this.paint=function(a){a.beginPath(),a.font=this.font,this.width=a.measureText(this.text).width,this.height=a.measureText("鐢�").width,this.isVisited&&null!=this.visitedColor?(a.strokeStyle="rgba("+this.visitedColor+", "+this.alpha+")",a.fillStyle="rgba("+this.visitedColor+", "+this.alpha+")"):(a.strokeStyle="rgba("+this.fontColor+", "+this.alpha+")",a.fillStyle="rgba("+this.fontColor+", "+this.alpha+")"),a.fillText(this.text,-this.width/2,this.height/2),this.isMouseOver&&(a.moveTo(-this.width/2,this.height),a.lineTo(this.width/2,this.height),a.stroke()),a.closePath(),this.paintBorder(a),this.paintCtrl(a),this.paintAlarmText(a)},this.mousemove(function(){var a=document.getElementsByTagName("canvas");if(a&&a.length>0)for(var b=0;b0)for(var b=0;b=this.frameImages.length){if(!this.repeatPlay)return;this.frameIndex=0}this.setImage(this.frameImages[this.frameIndex],c),setTimeout(function(){e.nextFrame()},d/a.length)}}}function h(a,b,c,d,e){this.initialize();var f=this;this.setImage(a),this.frameIndex=0,this.isPause=!0,this.repeatPlay=!1;var g=d||1e3;e=e||0,this.paint=function(a){if(this.image){var b=this.width,d=this.height;a.save(),a.beginPath(),a.fillStyle="rgba("+this.fillColor+","+this.alpha+")";var f=(Math.floor(this.frameIndex/c)+e)*d,g=Math.floor(this.frameIndex%c)*b;a.drawImage(this.image,g,f,b,d,-b/2,-d/2,b,d),a.fill(),a.closePath(),a.restore(),this.paintText(a),this.paintBorder(a),this.paintCtrl(a),this.paintAlarmText(a)}},this.nextFrame=function(){if(!this.isStop){if(this.frameIndex++,this.frameIndex>=b*c){if(!this.repeatPlay)return;this.frameIndex=0}setTimeout(function(){f.isStop||f.nextFrame()},g/(b*c))}}}function i(){var a=null;return a=arguments.length<=3?new g(arguments[0],arguments[1],arguments[2]):new h(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]),a.stop=function(){a.isStop=!0},a.play=function(){a.isStop=!1,a.frameIndex=0,a.nextFrame()},a}var j={};b.prototype=new a.EditableElement,c.prototype=new b,d.prototype=new c,e.prototype=new d,f.prototype=new c,Object.defineProperties(f.prototype,{radius:{get:function(){return this._radius},set:function(a){this._radius=a;var b=2*this.radius,c=2*this.radius;this.width=b,this.height=c}},width:{get:function(){return this._width},set:function(a){this._radius=a/2,this._width=a}},height:{get:function(){return this._height},set:function(a){this._radius=a/2,this._height=a}}}),g.prototype=new c,h.prototype=new c,i.prototype=new c,a.Node=c,a.TextNode=d,a.LinkNode=e,a.CircleNode=f,a.AnimateNode=i}(JTopo),function(a){function b(a,b){var c=[];if(null==a||null==b)return c;if(a&&b&&a.outLinks&&b.inLinks)for(var d=0;d0&&(this.nodeIndex=a-1)},this.initialize(b,c,g),this.removeHandler=function(){var a=this;this.nodeA&&this.nodeA.outLinks&&(this.nodeA.outLinks=this.nodeA.outLinks.filter(function(b){return b!==a})),this.nodeZ&&this.nodeZ.inLinks&&(this.nodeZ.inLinks=this.nodeZ.inLinks.filter(function(b){return b!==a}));var b=d(this);b.forEach(function(a,b){a.nodeIndex=b})},this.getStartPosition=function(){var a={x:this.nodeA.cx,y:this.nodeA.cy};return a},this.getEndPosition=function(){var a;return null!=this.arrowsRadius&&(a=h(this.nodeZ,this.nodeA)),null==a&&(a={x:this.nodeZ.cx,y:this.nodeZ.cy}),a},this.getPath=function(){var a=[],b=this.getStartPosition(),c=this.getEndPosition();if(this.nodeA===this.nodeZ)return[b,c];var d=e(this.nodeA,this.nodeZ);if(1==d)return[b,c];var f=Math.atan2(c.y-b.y,c.x-b.x),g={x:b.x+this.bundleOffset*Math.cos(f),y:b.y+this.bundleOffset*Math.sin(f)},h={x:c.x+this.bundleOffset*Math.cos(f-Math.PI),y:c.y+this.bundleOffset*Math.sin(f-Math.PI)},i=f-Math.PI/2,j=f-Math.PI/2,k=d*this.bundleGap/2-this.bundleGap/2,l=this.bundleGap*this.nodeIndex,m={x:g.x+l*Math.cos(i),y:g.y+l*Math.sin(i)},n={x:h.x+l*Math.cos(j),y:h.y+l*Math.sin(j)};return m={x:m.x+k*Math.cos(i-Math.PI),y:m.y+k*Math.sin(i-Math.PI)},n={x:n.x+k*Math.cos(j-Math.PI),y:n.y+k*Math.sin(j-Math.PI)},a.push({x:b.x,y:b.y}),a.push({x:m.x,y:m.y}),a.push({x:n.x,y:n.y}),a.push({x:c.x,y:c.y}),a},this.paintPath=function(a,b){if(this.nodeA===this.nodeZ)return void this.paintLoop(a);a.beginPath(),a.moveTo(b[0].x,b[0].y);for(var c=1;c0&&this.paintText(a,b)}};var i=-(Math.PI/2+Math.PI/4);this.paintText=function(a,b){var c=b[0],d=b[b.length-1];if(4==b.length&&(c=b[1],d=b[2]),this.text&&this.text.length>0){var e=(d.x+c.x)/2+this.textOffsetX,f=(d.y+c.y)/2+this.textOffsetY;a.save(),a.beginPath(),a.font=this.font;var g=a.measureText(this.text).width,h=a.measureText("鐢�").width;if(a.fillStyle="rgba("+this.fontColor+", "+this.alpha+")",this.nodeA===this.nodeZ){var j=this.bundleGap*(this.nodeIndex+1)/2,e=this.nodeA.x+j*Math.cos(i),f=this.nodeA.y+j*Math.sin(i);a.fillText(this.text,e,f)}else a.fillText(this.text,e-g/2,f-h/2);a.stroke(),a.closePath(),a.restore()}},this.paintSelected=function(a){a.shadowBlur=10,a.shadowColor="rgba(0,0,0,1)",a.shadowOffsetX=0,a.shadowOffsetY=0},this.isInBound=function(b,c){if(this.nodeA===this.nodeZ){var d=this.bundleGap*(this.nodeIndex+1)/2,e=a.util.getDistance(this.nodeA,{x:b,y:c})-d;return Math.abs(e)<=3}for(var f=!1,g=1;ga.x?a.x+=this.nodeA.width/2:a.x-=this.nodeA.width/2:this.nodeZ.cy>a.y?a.y+=this.nodeA.height/2:a.y-=this.nodeA.height/2,a},this.getEndPosition=function(){var a={x:this.nodeZ.cx,y:this.nodeZ.cy};return"horizontal"==this.direction?this.nodeA.cy0){var c=b[1],d=c.x+this.textOffsetX,e=c.y+this.textOffsetY;a.save(),a.beginPath(),a.font=this.font;var f=a.measureText(this.text).width,g=a.measureText("鐢�").width;a.fillStyle="rgba("+this.fontColor+", "+this.alpha+")",a.fillText(this.text,d-f/2,e-g/2),a.stroke(),a.closePath(),a.restore()}}}function h(a,b,c){this.initialize=function(){h.prototype.initialize.apply(this,arguments),this.direction="vertical",this.offsetGap=44},this.initialize(a,b,c),this.getStartPosition=function(){var a={x:this.nodeA.cx,y:this.nodeA.cy};return"horizontal"==this.direction?a.x=this.nodeZ.cxthis.nodeZ.cx&&(i=-i),d.push({x:b.x,y:b.y+h}),d.push({x:b.x+i,y:b.y+h}),d.push({x:c.x-i,y:c.y+h}),d.push({x:c.x,y:c.y+h})):(this.nodeA.cy>this.nodeZ.cy&&(i=-i),d.push({x:b.x+h,y:b.y}),d.push({x:b.x+h,y:b.y+i}),d.push({x:c.x+h,y:c.y-i}),d.push({x:c.x+h,y:c.y})),d}}function i(a,b,c){this.initialize=function(){i.prototype.initialize.apply(this,arguments)},this.initialize(a,b,c),this.paintPath=function(a,b){if(this.nodeA===this.nodeZ)return void this.paintLoop(a);a.beginPath(),a.moveTo(b[0].x,b[0].y);for(var c=1;cq&&(q=g);var r=q*i,s=q*j,t=d.animate;if(t){var u=t.time||1e3,v=0;c.forEach(function(b,c){v+=0==c?m[c]:m[c-1]+m[c];var d=e+Math.cos(v)*r,g=f+Math.sin(v)*s;a.Animate.stepByStep(b,{x:d-b.width/2,y:g-b.height/2},u).start()})}else{var v=0;c.forEach(function(a,b){v+=0==b?m[b]:m[b-1]+m[b];var c=e+Math.cos(v)*r,d=f+Math.sin(v)*s;a.cx=c,a.cy=d})}return{cx:e,cy:f,radius:r,radiusA:r,radiusB:s}}function d(a,b){return function(c){var d=c.childs;if(!(d.length<=0))for(var e=c.getBound(),f=d[0],g=(e.width-f.width)/b,h=(e.height-f.height)/a,i=(d.length,0),j=0;a>j;j++)for(var k=0;b>k;k++){var l=d[i++],m=e.left+g/2+k*g,n=e.top+h/2+j*h;if(l.setLocation(m,n),i>=d.length)return}}}function e(a,b){return null==a&&(a=0),null==b&&(b=0),function(c){var d=c.childs;if(!(d.length<=0))for(var e=c.getBound(),f=e.left,g=e.top,h=0;h=e.right&&(f=e.left,g+=b+i.height),i.setLocation(f,g),f+=a+i.width}}}function f(){return function(a,b){if(b.length>0){for(var c=1e7,d=-1e7,e=1e7,f=-1e7,g=d-c,h=f-e,i=0;i=d&&(d=j.x),j.y<=e&&(e=j.y),j.y>=f&&(f=j.y),g=d-c+j.width,h=f-e+j.height}a.x=c,a.y=e,a.width=g,a.height=h}}}function g(b){var c=[],d=b.filter(function(b){return b instanceof a.Link?!0:(c.push(b),!1)});return b=c.filter(function(a){for(var b=0;b=0;q--)for(var r=k[""+q].nodes,s=k[""+q].childs,m=0;m0?"down"==b||"up"==b?t.x=(u[0].x+u[u.length-1].x)/2:("left"==b||"right"==b)&&(t.y=(u[0].y+u[u.length-1].y)/2):m>0&&("down"==b||"up"==b?t.x=r[m-1].x+r[m-1].width+c:("left"==b||"right"==b)&&(t.y=r[m-1].y+r[m-1].height+c)),m>0)if("down"==b||"up"==b){if(t.x0){f(e.childs,k[0]);var l=a.util.getElementsBound(e.childs),m=e.getCenterLocation(),n=m.x-(l.left+l.right)/2,o=m.y-(l.top+l.bottom)/2;e.childs.forEach(function(b){b instanceof a.Node&&(b.x+=n,b.y+=o)})}}}function l(b){return function(c){function d(a,c,e){var f=q(a,c);if(0!=f.length){null==e&&(e=b);var g=2*Math.PI/f.length;f.forEach(function(b,f){var h=c.x+e*Math.cos(g*f),i=c.y+e*Math.sin(g*f);b.setLocation(h,i);var j=e/2;d(a,b,j)})}}var e=a.layout.getRootNodes(c.childs);if(e.length>0){d(c.childs,e[0]);var f=a.util.getElementsBound(c.childs),g=c.getCenterLocation(),h=g.x-(f.left+f.right)/2,i=g.y-(f.top+f.bottom)/2;c.childs.forEach(function(b){b instanceof a.Node&&(b.x+=h,b.y+=i)})}}}function m(a,b,c,d,e,f){for(var g=[],h=0;c>h;h++)for(var i=0;d>i;i++)g.push({x:a+i*e,y:b+h*f});return g}function n(a,b,c,d,e,f){var g=e?e:0,h=f?f:2*Math.PI,i=h-g,j=i/c,k=[];g+=j/2;for(var l=g;h>=l;l+=j){var m=a+Math.cos(l)*d,n=b+Math.sin(l)*d;k.push({x:m,y:n})}return k}function o(a,b,c,d,e,f){var g=f||"bottom",h=[];if("bottom"==g)for(var i=a-c/2*d+d/2,j=0;c>=j;j++)h.push({x:i+j*d,y:b+e});else if("top"==g)for(var i=a-c/2*d+d/2,j=0;c>=j;j++)h.push({x:i+j*d,y:b-e});else if("right"==g)for(var i=b-c/2*d+d/2,j=0;c>=j;j++)h.push({x:a+e,y:i+j*d});else if("left"==g)for(var i=b-c/2*d+d/2,j=0;c>=j;j++)h.push({x:a-e,y:i+j*d});return h}function m(a,b,c,d,e,f){for(var g=[],h=0;c>h;h++)for(var i=0;d>i;i++)g.push({x:a+i*e,y:b+h*f});return g}function p(a,b){if(a.layout){var c=a.layout,d=c.type,e=null;if("circle"==d){var f=c.radius||Math.max(a.width,a.height);e=n(a.cx,a.cy,b.length,f,a.layout.beginAngle,a.layout.endAngle)}else if("tree"==d){var g=c.width||50,h=c.height||50,i=c.direction;e=o(a.cx,a.cy,b.length,g,h,i)}else{if("grid"!=d)return;e=m(a.x,a.y,c.rows,c.cols,c.horizontal||0,c.vertical||0)}for(var j=0;j150)){for(var a=0;ad&&(d=e);for(var g=0;gMath.PI/2&&j<=Math.PI?k-=i:j>Math.PI&&j<2*Math.PI*3/4?k-=i:j>2*Math.PI*.75,a.fillStyle="#FFFFFF",a.fillText(h,k,l),a.moveTo(this.radius*Math.cos(j),this.radius*Math.sin(j)),j>Math.PI/2&&j<2*Math.PI*3/4&&(k-=i),j>Math.PI,a.fill(),a.stroke(),a.closePath(),e+=g}},b}function c(){var b=new a.Node;return b.showSelected=!1,b.width=250,b.height=180,b.colors=["#3666B0","#2CA8E0","#77D1F6"],b.datas=[.3,.3,.4],b.titles=["A","B","C"],b.paint=function(a){var c=3,d=(this.width-c)/this.datas.length;a.save(),a.beginPath(),a.fillStyle="#FFFFFF",a.strokeStyle="#FFFFFF",a.moveTo(-this.width/2-1,-this.height/2),a.lineTo(-this.width/2-1,this.height/2+3),a.lineTo(this.width/2+c+1,this.height/2+3),a.stroke(),a.closePath(),a.restore();for(var e=0;e0&&a[b]>=this.targetValue||this.step<0&&a[b]<=this.targetValue;return c}}}var l=new b(function(){var b=!0;for(var d in c)h[d].isDone(d)||(a[d]+=h[d].step,b=!1);if(b){if(!e)return this.stop();for(var d in c)if(f){var g=h[d].targetValue;h[d].targetValue=h[d].oldValue,h[d].oldValue=g,h[d].step=-h[d].step}else a[d]=h[d].oldValue}return this},g);return l}function e(a){null==a&&(a={});var b=a.spring||.1,c=a.friction||.8,d=a.grivity||0,e=(a.wind||0,a.minLength||0);return{items:[],timer:null,isPause:!1,addNode:function(a,b){var c={node:a,target:b,vx:0,vy:0};return this.items.push(c),this},play:function(a){this.stop(),a=null==a?1e3/24:a;var b=this;this.timer=setInterval(function(){b.nextFrame()},a)},stop:function(){null!=this.timer&&window.clearInterval(this.timer)},nextFrame:function(){for(var a=0;a2*Math.PI&&(a.rotate=0)))},100),f}function d(){return window.clearInterval(e),f.onStop&&f.onStop(a),f}var e=(b.context,null),f={},g=b.v;return f.run=c,f.stop=d,f.onStop=function(a){return f.onStop=a,f},f}function g(a,b){function c(){return window.clearInterval(g),h.onStop&&h.onStop(a),h}function d(){var d=b.dx||0,i=b.dy||2;return g=setInterval(function(){return o?void h.stop():(i+=f,void(a.y+a.heightg.stage.canvas.width||a.y>g.stage.canvas.height)&&(i.onStop&&i.onStop(a),c(a))))},50),i}function e(){window.clearInterval(h)}var f=.8,g=b.context,h=null,i={};return i.onStop=function(a){return i.onStop=a,i},i.run=d,i.stop=e,i}function j(){o=!0}function k(){o=!1}function l(b,c){function d(){return n=setInterval(function(){if(o)return void m.stop();var a=f.y+h+Math.sin(k)*j;b.setLocation(b.x,a),k+=l},100),m}function e(){window.clearInterval(n)}var f=c.p1,g=c.p2,h=(c.context,f.x+(g.x-f.x)/2),i=f.y+(g.y-f.y)/2,j=a.util.getDistance(f,g)/2,k=Math.atan2(i,h),l=c.speed||.2,m={},n=null;return m.run=d,m.stop=e,m}function m(a,b){function c(){return h=setInterval(function(){if(o)return void g.stop();var b=e.x-a.x,c=e.y-a.y,h=b*f,i=c*f;a.x+=h,a.y+=i,.01>h&&.1>i&&d()},100),g}function d(){window.clearInterval(h)}var e=b.position,f=(b.context,b.easing||.2),g={},h=null;return g.onStop=function(a){return g.onStop=a,g},g.run=c,g.stop=d,g}function n(a,b){function c(){return j=setInterval(function(){a.scaleX+=f,a.scaleY+=f,a.scaleX>=e&&d()},100),i}function d(){i.onStop&&i.onStop(a),a.scaleX=g,a.scaleY=h,window.clearInterval(j)}var e=(b.position,b.context,b.scale||1),f=.06,g=a.scaleX,h=a.scaleY,i={},j=null;return i.onStop=function(a){return i.onStop=a,i},i.run=c,i.stop=d,i}a.Animate={},a.Effect={};var o=!1;a.Effect.spring=e,a.Effect.gravity=c,a.Animate.stepByStep=d,a.Animate.rotate=f,a.Animate.scale=n,a.Animate.move=m,a.Animate.cycle=l,a.Animate.repeatThrow=i,a.Animate.dividedTwoPiece=h,a.Animate.gravity=g,a.Animate.startAll=k,a.Animate.stopAll=j}(JTopo),function(a){function b(a,b){var c=[];if(0==a.length)return c;var d=b.match(/^\s*(\w+)\s*$/);if(null!=d){var e=a.filter(function(a){return a.elementType==d[1]});null!=e&&e.length>0&&(c=c.concat(e))}else{var f=!1;if(d=b.match(/\s*(\w+)\s*\[\s*(\w+)\s*([>=<])\s*['"](\S+)['"]\s*\]\s*/),(null==d||d.length<5)&&(d=b.match(/\s*(\w+)\s*\[\s*(\w+)\s*([>=<])\s*(\d+(\.\d+)?)\s*\]\s*/),f=!0),null!=d&&d.length>=5){var g=d[1],h=d[2],i=d[3],j=d[4];e=a.filter(function(a){if(a.elementType!=g)return!1;var b=a[h];return 1==f&&(b=parseInt(b)),"="==i?b==j:">"==i?b>j:"<"==i?j>b:"<="==i?j>=b:">="==i?b>=j:"!="==i?b!=j:!1}),null!=e&&e.length>0&&(c=c.concat(e))}}return c}function c(a){if(a.find=function(a){return d.call(this,a)},e.forEach(function(b){a[b]=function(a){for(var c=0;c0){var b=a[0];for(var c in b){var f=b[c];"function"==typeof f&&!function(b){a[c]=function(){for(var c=[],d=0;de;e++)a(),c&&d.turn(c),d.move(3)}}function e(a,b){var c=2*Math.PI;return function(d){for(var e=0;b>e;e++)a(),d.turn(c/b)}}function f(a,b,c){return function(d){for(var e=0;b>e;e++)a(),d.resize(c)}}function g(a){var b=2*Math.PI;return function(c){for(var d=0;a>d;d++)c.forward(1),c.turn(b/a)}}function h(a){var b=4*Math.PI;return function(c){for(var d=0;a>d;d++)c.forward(1),c.turn(b/a)}}function i(a,b,c,d){return function(e){for(var f=0;b>f;f++)a(),e.forward(1),e.turn(c),e.resize(d)}}var j={};c.prototype.forward=function(a){var b=this.p,c=this.w;return b.x=b.x+a*c.x,b.y=b.y+a*c.y,this.paint&&this.paint(b.x,b.y),this},c.prototype.move=function(a){var b=this.p,c=this.w;return b.x=b.x+a*c.x,b.y=b.y+a*c.y,this},c.prototype.moveTo=function(a,b){return this.p.x=a,this.p.y=b,this},c.prototype.turn=function(a){var b=(this.p,this.w),c=Math.cos(a)*b.x-Math.sin(a)*b.y,d=Math.sin(a)*b.x+Math.cos(a)*b.y;return b.x=c,b.y=d,this},c.prototype.resize=function(a){var b=this.w;return b.x=b.x*a,b.y=b.y*a,this},c.prototype.save=function(){return null==this._stack&&(this._stack=[]),this._stack.push([this.p,this.w]),this},c.prototype.restore=function(){if(null!=this._stack&&this._stack.length>0){var a=this._stack.pop();this.p=a[0],this.w=a[1]}return this},j.Tortoise=c,j.shift=d,j.spin=e,j.polygon=g,j.spiral=i,j.star=h,j.scale=f,a.Logo=j}(window); \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/LICENSE b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/LICENSE similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/LICENSE rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/LICENSE diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/README.md b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/README.md similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/README.md rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/README.md diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/index.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/index.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/index.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/index.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2-bootstrap.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2-bootstrap.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2-bootstrap.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2-bootstrap.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2-spinner.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2-spinner.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2-spinner.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2-spinner.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.min.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.min.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.min.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2_locale_zh-CN.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2_locale_zh-CN.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2_locale_zh-CN.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2_locale_zh-CN.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2x2.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2x2.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-select2/3.4/select2x2.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-select2/3.4/select2x2.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/additional-methods.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/additional-methods.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/additional-methods.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/additional-methods.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/additional-methods.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/additional-methods.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/additional-methods.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/additional-methods.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/jquery.validate.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/jquery.validate.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/jquery.validate.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/jquery.validate.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/jquery.validate.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/jquery.validate.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/jquery.validate.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/jquery.validate.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/messages_zh.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/messages_zh.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-validation-1.17.0/messages_zh.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-validation-1.17.0/messages_zh.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/API_cn.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/API_cn.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/API_cn.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/API_cn.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/api.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/api.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/api.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/api.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/common.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/common.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/common.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/common.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/common_ie6.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/common_ie6.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/common_ie6.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/common_ie6.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/apiMenu.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/background.jpg b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/background.jpg similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/background.jpg rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/background.jpg diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/chinese.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/chinese.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/chinese.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/chinese.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/close.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/close.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/close.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/close.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/contact-bg.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/contact-bg.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/contact-bg.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/contact-bg.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/english.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/english.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/english.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/english.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/header-bg.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/header-bg.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/header-bg.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/header-bg.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/lightbulb.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/lightbulb.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/lightbulb.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/lightbulb.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_arrow.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_bg.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_bg.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_bg.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_bg.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_close_IE6.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_close_IE6.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_close_IE6.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/overlay_close_IE6.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/img/zTreeStandard.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/zTreeStyleForApi.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/zTreeStyleForApi.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/apiCss/zTreeStyleForApi.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/apiCss/zTreeStyleForApi.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree._z.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree._z.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree._z.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree._z.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.destroy.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.destroy.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.destroy.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.destroy.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.getZTreeObj.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.getZTreeObj.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.getZTreeObj.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.getZTreeObj.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.init.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.init.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.init.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/fn.zTree.init.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.autoParam.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.autoParam.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.autoParam.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.autoParam.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.contentType.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.contentType.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.contentType.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.contentType.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataFilter.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataFilter.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataFilter.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataFilter.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataType.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataType.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataType.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.dataType.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.enable.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.enable.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.enable.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.enable.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.otherParam.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.otherParam.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.otherParam.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.otherParam.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.type.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.type.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.type.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.type.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.url.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.url.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.async.url.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.async.url.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeAsync.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeAsync.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeAsync.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeAsync.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeClick.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeClick.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeClick.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeClick.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCollapse.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCollapse.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCollapse.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeCollapse.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDblClick.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDblClick.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDblClick.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDblClick.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrag.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrag.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrag.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrag.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDragOpen.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDragOpen.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDragOpen.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDragOpen.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrop.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrop.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrop.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeDrop.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeEditName.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeEditName.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeEditName.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeEditName.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeExpand.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeExpand.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeExpand.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeExpand.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseDown.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseDown.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseDown.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseDown.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseUp.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseUp.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseUp.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeMouseUp.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRemove.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRemove.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRemove.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRemove.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRename.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRename.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRename.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRename.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRightClick.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRightClick.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRightClick.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.beforeRightClick.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncError.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncError.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncError.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncError.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncSuccess.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncSuccess.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncSuccess.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onAsyncSuccess.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onClick.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onClick.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onClick.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onClick.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCollapse.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCollapse.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCollapse.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onCollapse.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDblClick.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDblClick.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDblClick.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDblClick.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrag.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrag.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrag.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrag.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrop.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrop.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrop.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onDrop.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onExpand.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onExpand.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onExpand.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onExpand.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseDown.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseDown.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseDown.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseDown.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseUp.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseUp.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseUp.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onMouseUp.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onNodeCreated.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onNodeCreated.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onNodeCreated.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onNodeCreated.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRemove.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRemove.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRemove.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRemove.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRename.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRename.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRename.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRename.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRightClick.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRightClick.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRightClick.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.callback.onRightClick.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.autoCheckTrigger.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.autoCheckTrigger.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.autoCheckTrigger.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.autoCheckTrigger.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkDisabledInherit.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkDisabledInherit.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkDisabledInherit.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkDisabledInherit.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkStyle.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkStyle.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkStyle.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkStyle.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkboxType.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkboxType.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkboxType.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.chkboxType.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.enable.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.enable.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.enable.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.enable.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.nocheckInherit.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.nocheckInherit.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.nocheckInherit.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.nocheckInherit.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.radioType.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.radioType.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.check.radioType.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.check.radioType.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.leaf.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.leaf.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.leaf.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.leaf.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.parent.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.parent.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.parent.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.keep.parent.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.checked.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.checked.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.checked.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.checked.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.children.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.children.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.children.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.children.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.name.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.name.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.name.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.name.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.title.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.title.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.title.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.title.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.url.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.url.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.url.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.key.url.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.enable.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.enable.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.enable.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.enable.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.idKey.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.idKey.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.idKey.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.idKey.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.pIdKey.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.pIdKey.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.pIdKey.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.pIdKey.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.rootPId.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.rootPId.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.rootPId.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.data.simpleData.rootPId.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoExpandTrigger.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoExpandTrigger.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoExpandTrigger.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoExpandTrigger.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoOpenTime.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoOpenTime.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoOpenTime.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.autoOpenTime.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMax.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMax.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMax.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMax.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMin.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMin.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMin.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.borderMin.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.inner.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.inner.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.inner.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.inner.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isCopy.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isCopy.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isCopy.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isCopy.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isMove.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isMove.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isMove.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.isMove.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.maxShowNodeNum.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.maxShowNodeNum.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.maxShowNodeNum.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.maxShowNodeNum.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.minMoveSize.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.minMoveSize.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.minMoveSize.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.minMoveSize.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.next.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.next.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.next.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.next.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.prev.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.prev.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.prev.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.drag.prev.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.editNameSelectAll.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.editNameSelectAll.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.editNameSelectAll.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.editNameSelectAll.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.enable.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.enable.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.enable.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.enable.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.removeTitle.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.removeTitle.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.removeTitle.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.removeTitle.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.renameTitle.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.renameTitle.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.renameTitle.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.renameTitle.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRemoveBtn.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRemoveBtn.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRemoveBtn.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRemoveBtn.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRenameBtn.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRenameBtn.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRenameBtn.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.edit.showRenameBtn.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.treeId.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.treeId.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.treeId.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.treeId.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.treeObj.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.treeObj.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.treeObj.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.treeObj.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addDiyDom.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addDiyDom.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addDiyDom.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addDiyDom.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addHoverDom.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addHoverDom.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addHoverDom.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.addHoverDom.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.autoCancelSelected.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.autoCancelSelected.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.autoCancelSelected.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.autoCancelSelected.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.dblClickExpand.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.dblClickExpand.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.dblClickExpand.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.dblClickExpand.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.expandSpeed.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.expandSpeed.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.expandSpeed.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.expandSpeed.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.fontCss.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.fontCss.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.fontCss.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.fontCss.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.nameIsHTML.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.nameIsHTML.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.nameIsHTML.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.nameIsHTML.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.removeHoverDom.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.removeHoverDom.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.removeHoverDom.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.removeHoverDom.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.selectedMulti.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.selectedMulti.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.selectedMulti.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.selectedMulti.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showIcon.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showIcon.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showIcon.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showIcon.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showLine.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showLine.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showLine.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showLine.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showTitle.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showTitle.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showTitle.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/setting.view.showTitle.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Child_State.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Child_State.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Child_State.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Child_State.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Focus.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Focus.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Focus.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.check_Focus.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checked.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checked.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checked.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checked.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checkedOld.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checkedOld.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checkedOld.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.checkedOld.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.children.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.children.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.children.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.children.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.chkDisabled.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.chkDisabled.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.chkDisabled.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.chkDisabled.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.click.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.click.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.click.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.click.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.diy.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.diy.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.diy.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.diy.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.editNameFlag.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.editNameFlag.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.editNameFlag.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.editNameFlag.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getCheckStatus.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getCheckStatus.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getCheckStatus.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getCheckStatus.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getNextNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getNextNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getNextNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getNextNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getParentNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getParentNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getParentNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getParentNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getPreNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getPreNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getPreNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.getPreNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.halfCheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.halfCheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.halfCheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.halfCheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.icon.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.icon.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.icon.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.icon.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconClose.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconClose.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconClose.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconClose.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconOpen.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconOpen.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconOpen.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconOpen.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconSkin.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconSkin.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconSkin.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.iconSkin.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isAjaxing.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isAjaxing.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isAjaxing.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isAjaxing.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isFirstNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isFirstNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isFirstNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isFirstNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHidden.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHidden.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHidden.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHidden.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHover.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHover.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHover.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isHover.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isLastNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isLastNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isLastNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isLastNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isParent.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isParent.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isParent.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.isParent.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.level.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.level.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.level.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.level.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.name.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.name.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.name.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.name.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.nocheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.nocheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.nocheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.nocheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.open.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.open.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.open.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.open.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.parentTId.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.parentTId.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.parentTId.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.parentTId.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.tId.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.tId.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.tId.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.tId.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.target.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.target.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.target.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.target.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.url.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.url.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.url.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.url.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.zAsync.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.zAsync.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/treeNode.zAsync.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/treeNode.zAsync.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.addNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.addNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.addNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.addNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelEditName.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelEditName.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelEditName.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelEditName.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelSelectedNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelSelectedNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelSelectedNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.cancelSelectedNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkAllNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkAllNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkAllNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkAllNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.checkNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.copyNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.copyNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.copyNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.copyNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.destroy.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.destroy.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.destroy.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.destroy.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.editName.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.editName.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.editName.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.editName.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandAll.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandAll.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandAll.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandAll.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.expandNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getChangeCheckedNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getChangeCheckedNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getChangeCheckedNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getChangeCheckedNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getCheckedNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getCheckedNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getCheckedNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getCheckedNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByParam.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByParam.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByParam.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByParam.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByTId.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByTId.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByTId.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeByTId.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeIndex.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeIndex.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeIndex.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodeIndex.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByFilter.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByFilter.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByFilter.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByFilter.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParam.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParam.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParam.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParam.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParamFuzzy.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParamFuzzy.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParamFuzzy.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getNodesByParamFuzzy.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getSelectedNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getSelectedNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getSelectedNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.getSelectedNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.hideNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.moveNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.moveNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.moveNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.moveNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.reAsyncChildNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.reAsyncChildNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.reAsyncChildNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.reAsyncChildNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.refresh.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.refresh.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.refresh.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.refresh.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeChildNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeChildNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeChildNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeChildNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.removeNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.selectNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.selectNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.selectNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.selectNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setChkDisabled.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setChkDisabled.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setChkDisabled.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setChkDisabled.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setEditable.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setEditable.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setEditable.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setEditable.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setting.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setting.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setting.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.setting.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.showNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformToArray.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformToArray.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformToArray.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformToArray.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformTozTreeNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformTozTreeNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformTozTreeNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.transformTozTreeNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.updateNode.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.updateNode.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.updateNode.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/api/cn/zTreeObj.updateNode.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/demo.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/demo.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/demo.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/demo.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_close.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_close.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_close.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_close.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_open.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_open.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_open.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/1_open.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/2.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/2.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/2.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/2.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/3.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/3.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/3.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/3.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/4.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/4.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/4.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/4.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/5.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/5.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/5.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/5.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/6.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/6.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/6.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/6.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/7.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/7.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/7.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/7.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/8.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/8.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/8.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/8.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/9.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/9.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/9.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/9.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/line_conn.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/line_conn.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/line_conn.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/line_conn.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/loading.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/loading.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/loading.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/loading.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/zTreeStandard.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.min.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.min.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.min.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodes.php b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodes.php similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodes.php rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodes.php diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodesForBigData.php b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodesForBigData.php similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodesForBigData.php rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/asyncData/getNodesForBigData.php diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/common.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/common.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/common.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/common.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/diy_async.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/diy_async.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/diy_async.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/diy_async.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/page.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/page.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/page.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/bigdata/page.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/async.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/async.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/async.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/async.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/async_fun.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/async_fun.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/async_fun.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/async_fun.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/click.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/click.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/click.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/click.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_font.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_font.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_font.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_font.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_icon.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_icon.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_icon.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_icon.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_iconSkin.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_iconSkin.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_iconSkin.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/custom_iconSkin.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/expand.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/expand.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/expand.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/expand.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/noicon.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/noicon.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/noicon.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/noicon.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/noline.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/noline.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/noline.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/noline.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/otherMouse.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/otherMouse.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/otherMouse.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/otherMouse.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/searchNodes.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/searchNodes.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/searchNodes.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/searchNodes.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/simpleData.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/simpleData.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/simpleData.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/simpleData.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/standardData.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/standardData.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/standardData.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/standardData.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/update_fun.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/update_fun.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/update_fun.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/update_fun.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/url.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/url.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/core/url.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/core/url.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_chkDisabled.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_chkDisabled.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_chkDisabled.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_chkDisabled.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_count.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_count.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_count.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_count.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_fun.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_fun.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_fun.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_fun.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_halfCheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_halfCheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_halfCheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_halfCheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_nocheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_nocheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_nocheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/checkbox_nocheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_chkDisabled.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_chkDisabled.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_chkDisabled.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_chkDisabled.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_fun.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_fun.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_fun.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_fun.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_halfCheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_halfCheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_halfCheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_halfCheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_nocheck.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_nocheck.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_nocheck.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/excheck/radio_nocheck.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/async_edit.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/async_edit.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/async_edit.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/async_edit.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_fun.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_fun.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_fun.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_fun.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_super.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_super.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_super.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/drag_super.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_fun.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_fun.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_fun.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_fun.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_super.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_super.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_super.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/edit_super.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/multiTree.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/multiTree.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exedit/multiTree.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exedit/multiTree.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exhide/checkbox.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exhide/checkbox.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exhide/checkbox.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exhide/checkbox.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exhide/common.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exhide/common.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exhide/common.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exhide/common.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exhide/radio.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exhide/radio.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/exhide/radio.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/exhide/radio.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/index.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/index.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/index.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/index.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/asyncForAll.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/asyncForAll.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/asyncForAll.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/asyncForAll.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/checkbox_radio.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/checkbox_radio.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/checkbox_radio.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/checkbox_radio.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/diydom.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/diydom.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/diydom.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/diydom.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/dragWithOther.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/dragWithOther.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/dragWithOther.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/dragWithOther.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menu.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menu.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menu.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menu.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.png b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/left_menuForOutLook.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/oneclick.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/oneclick.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/oneclick.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/oneclick.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/oneroot.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/oneroot.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/oneroot.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/oneroot.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/rightClickMenu.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/rightClickMenu.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/rightClickMenu.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/rightClickMenu.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_checkbox.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_checkbox.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_checkbox.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_checkbox.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_radio.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_radio.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_radio.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/select_menu_radio.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/singlepath.html b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/singlepath.html similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/demo/cn/super/singlepath.html rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/demo/cn/super/singlepath.html diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery-1.4.4.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery-1.4.4.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery-1.4.4.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery-1.4.4.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.excheck-3.5.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exedit-3.5.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/js/jquery.ztree.exhide-3.5.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/log v3.x.txt b/platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/log v3.x.txt similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery-ztree/3.5.12/log v3.x.txt rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery-ztree/3.5.12/log v3.x.txt diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.slim.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.slim.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.slim.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.slim.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.slim.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.slim.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.1x/dist/jquery.slim.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.1x/dist/jquery.slim.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.form.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.form.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.form.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.form.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.mobile.custom/jquery.mobile.custom.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.mobile.custom/jquery.mobile.custom.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.mobile.custom/jquery.mobile.custom.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.mobile.custom/jquery.mobile.custom.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.mobile.custom/jquery.mobile.custom.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.mobile.custom/jquery.mobile.custom.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.mobile.custom/jquery.mobile.custom.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.mobile.custom/jquery.mobile.custom.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery.serializejson.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery.serializejson.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery.serializejson.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery.serializejson.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.slim.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.slim.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.slim.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.slim.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.slim.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.slim.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jquery/dist/jquery.slim.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jquery/dist/jquery.slim.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/jstree.js b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/jstree.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/jstree.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/jstree.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/jstree.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/jstree.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/jstree.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/jstree.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/32px.png b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/32px.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/32px.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/32px.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/40px.png b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/40px.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/40px.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/40px.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/style.css b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/style.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/style.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/style.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/style.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/style.min.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/style.min.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/style.min.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/throbber.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/throbber.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default-dark/throbber.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default-dark/throbber.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/32px.png b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/32px.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/32px.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/32px.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/40px.png b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/40px.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/40px.png rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/40px.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/style.css b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/style.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/style.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/style.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/style.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/style.min.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/style.min.css rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/style.min.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/throbber.gif b/platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/throbber.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/jstree/themes/default/throbber.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/jstree/themes/default/throbber.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/layer.js b/platform/icec-static/src/main/resources/static/resource/plugins/layer/layer.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/layer.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/layer.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/laytpl.js b/platform/icec-static/src/main/resources/static/resource/plugins/layer/laytpl.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/laytpl.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/laytpl.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/mobile/layer.js b/platform/icec-static/src/main/resources/static/resource/plugins/layer/mobile/layer.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/mobile/layer.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/mobile/layer.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/mobile/need/layer.css b/platform/icec-static/src/main/resources/static/resource/plugins/layer/mobile/need/layer.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/mobile/need/layer.css rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/mobile/need/layer.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/icon-ext.png b/platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/icon-ext.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/icon-ext.png rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/icon-ext.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/icon.png b/platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/icon.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/icon.png rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/icon.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/layer.css b/platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/layer.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/layer.css rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/layer.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/loading-0.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/loading-0.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/loading-0.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/loading-0.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/loading-1.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/loading-1.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/loading-1.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/loading-1.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/loading-2.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/loading-2.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/layer/theme/default/loading-2.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layer/theme/default/loading-2.gif diff --git a/icec-admin/src/main/resources/static/layui/css/layui.css b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/layui.css similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/layui.css rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/layui.css diff --git a/icec-admin/src/main/resources/static/layui/css/layui.mobile.css b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/layui.mobile.css similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/layui.mobile.css rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/layui.mobile.css diff --git a/icec-admin/src/main/resources/static/layui/css/modules/code.css b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/code.css similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/code.css rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/code.css diff --git a/icec-admin/src/main/resources/static/layui/css/modules/laydate/default/laydate.css b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/laydate/default/laydate.css similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/laydate/default/laydate.css rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/laydate/default/laydate.css diff --git a/icec-admin/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/icon-ext.png similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/icon-ext.png diff --git a/icec-admin/src/main/resources/static/layui/css/modules/layer/default/icon.png b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/icon.png similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/layer/default/icon.png rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/icon.png diff --git a/icec-admin/src/main/resources/static/layui/css/modules/layer/default/layer.css b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/layer.css similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/layer/default/layer.css rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/layer.css diff --git a/icec-admin/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/loading-0.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/loading-0.gif diff --git a/icec-admin/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/loading-1.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/loading-1.gif diff --git a/icec-admin/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/loading-2.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/css/modules/layer/default/loading-2.gif diff --git a/icec-admin/src/main/resources/static/layui/font/iconfont.eot b/platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.eot similarity index 100% rename from icec-admin/src/main/resources/static/layui/font/iconfont.eot rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.eot diff --git a/icec-admin/src/main/resources/static/layui/font/iconfont.svg b/platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.svg similarity index 100% rename from icec-admin/src/main/resources/static/layui/font/iconfont.svg rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.svg diff --git a/icec-admin/src/main/resources/static/layui/font/iconfont.ttf b/platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.ttf similarity index 100% rename from icec-admin/src/main/resources/static/layui/font/iconfont.ttf rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.ttf diff --git a/icec-admin/src/main/resources/static/layui/font/iconfont.woff b/platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.woff similarity index 100% rename from icec-admin/src/main/resources/static/layui/font/iconfont.woff rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/font/iconfont.woff diff --git a/icec-admin/src/main/resources/static/layui/images/face/0.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/0.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/0.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/0.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/1.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/1.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/1.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/1.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/10.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/10.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/10.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/10.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/11.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/11.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/11.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/11.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/12.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/12.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/12.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/12.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/13.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/13.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/13.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/13.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/14.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/14.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/14.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/14.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/15.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/15.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/15.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/15.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/16.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/16.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/16.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/16.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/17.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/17.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/17.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/17.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/18.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/18.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/18.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/18.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/19.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/19.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/19.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/19.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/2.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/2.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/2.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/2.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/20.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/20.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/20.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/20.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/21.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/21.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/21.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/21.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/22.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/22.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/22.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/22.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/23.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/23.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/23.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/23.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/24.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/24.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/24.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/24.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/25.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/25.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/25.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/25.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/26.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/26.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/26.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/26.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/27.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/27.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/27.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/27.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/28.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/28.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/28.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/28.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/29.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/29.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/29.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/29.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/3.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/3.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/3.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/3.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/30.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/30.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/30.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/30.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/31.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/31.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/31.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/31.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/32.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/32.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/32.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/32.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/33.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/33.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/33.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/33.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/34.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/34.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/34.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/34.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/35.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/35.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/35.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/35.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/36.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/36.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/36.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/36.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/37.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/37.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/37.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/37.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/38.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/38.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/38.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/38.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/39.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/39.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/39.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/39.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/4.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/4.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/4.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/4.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/40.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/40.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/40.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/40.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/41.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/41.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/41.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/41.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/42.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/42.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/42.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/42.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/43.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/43.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/43.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/43.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/44.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/44.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/44.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/44.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/45.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/45.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/45.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/45.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/46.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/46.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/46.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/46.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/47.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/47.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/47.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/47.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/48.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/48.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/48.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/48.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/49.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/49.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/49.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/49.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/5.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/5.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/5.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/5.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/50.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/50.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/50.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/50.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/51.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/51.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/51.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/51.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/52.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/52.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/52.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/52.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/53.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/53.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/53.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/53.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/54.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/54.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/54.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/54.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/55.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/55.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/55.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/55.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/56.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/56.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/56.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/56.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/57.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/57.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/57.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/57.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/58.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/58.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/58.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/58.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/59.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/59.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/59.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/59.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/6.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/6.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/6.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/6.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/60.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/60.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/60.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/60.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/61.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/61.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/61.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/61.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/62.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/62.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/62.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/62.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/63.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/63.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/63.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/63.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/64.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/64.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/64.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/64.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/65.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/65.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/65.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/65.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/66.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/66.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/66.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/66.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/67.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/67.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/67.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/67.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/68.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/68.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/68.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/68.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/69.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/69.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/69.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/69.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/7.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/7.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/7.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/7.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/70.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/70.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/70.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/70.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/71.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/71.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/71.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/71.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/8.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/8.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/8.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/8.gif diff --git a/icec-admin/src/main/resources/static/layui/images/face/9.gif b/platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/9.gif similarity index 100% rename from icec-admin/src/main/resources/static/layui/images/face/9.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/images/face/9.gif diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/carousel.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/carousel.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/carousel.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/carousel.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/code.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/code.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/code.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/code.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/element.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/element.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/element.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/element.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/flow.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/flow.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/flow.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/flow.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/form.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/form.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/form.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/form.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/jquery.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/jquery.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/jquery.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/jquery.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/laydate.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/laydate.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/laydate.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/laydate.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/layedit.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/layedit.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/layedit.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/layedit.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/layer.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/layer.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/layer.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/layer.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/laypage.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/laypage.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/laypage.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/laypage.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/laytpl.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/laytpl.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/laytpl.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/laytpl.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/mobile.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/mobile.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/mobile.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/mobile.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/table.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/table.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/table.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/table.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/tree.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/tree.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/tree.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/tree.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/upload.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/upload.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/upload.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/upload.js diff --git a/icec-admin/src/main/resources/static/layui/lay/modules/util.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/util.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/lay/modules/util.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/lay/modules/util.js diff --git a/icec-admin/src/main/resources/static/layui/layui.all.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/layui.all.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/layui.all.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/layui.all.js diff --git a/icec-admin/src/main/resources/static/layui/layui.js b/platform/icec-static/src/main/resources/static/resource/plugins/layui/layui.js similarity index 100% rename from icec-admin/src/main/resources/static/layui/layui.js rename to platform/icec-static/src/main/resources/static/resource/plugins/layui/layui.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/mustache/mustache.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/mustache/mustache.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/mustache/mustache.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/mustache/mustache.min.js diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.css b/platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.css new file mode 100644 index 0000000..1719726 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.css @@ -0,0 +1 @@ +.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width}.ol-overlay-container{will-change:left,right,top,bottom}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:rgba(255,255,255,.4);border-radius:4px;padding:2px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}@media print{.ol-control{display:none}}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;font-size:.7rem;line-height:1.375em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none;line-height:inherit}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution.ol-logo-only ul{display:block}.ol-attribution:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0;height:1.1em;line-height:1em}.ol-attribution.ol-logo-only{background:0 0;bottom:.4em;height:1.1em;line-height:1em}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-logo-only button,.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move} \ No newline at end of file diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.js b/platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.js new file mode 100644 index 0000000..67d234f --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/openlayer/ol.js @@ -0,0 +1,1072 @@ +// OpenLayers. See https://openlayers.org/ +// License: https://raw.githubusercontent.com/openlayers/openlayers/master/LICENSE.md +// Version: v4.6.4 +;(function (root, factory) { + if (typeof exports === "object") { + module.exports = factory(); + } else if (typeof define === "function" && define.amd) { + define([], factory); + } else { + root.ol = factory(); + } +}(this, function () { + var OPENLAYERS = {}; + var k,aa=this;function t(a,b){var c=OPENLAYERS;a=a.split(".");c=c||aa;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b};var ba,da;function w(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function ea(){}function x(a){return a.xp||(a.xp=++fa)}var fa=0;function ha(a){this.message="Assertion failed. See https://openlayers.org/en/v4.6.4/doc/errors/#"+a+" for details.";this.code=a;this.name="AssertionError"}w(ha,Error);function ja(a,b,c,d){this.fa=a;this.la=b;this.ea=c;this.ka=d}function ka(a,b,c,d,e){return void 0!==e?(e.fa=a,e.la=b,e.ea=c,e.ka=d,e):new ja(a,b,c,d)}function ma(a,b,c){return a.fa<=b&&b<=a.la&&a.ea<=c&&c<=a.ka}function na(a,b){return a.fa==b.fa&&a.ea==b.ea&&a.la==b.la&&a.ka==b.ka};function oa(a,b){if(!a)throw new ha(b);};function pa(a,b,c){return Math.min(Math.max(a,b),c)}var qa=function(){var a;"cosh"in Math?a=Math.cosh:a=function(a){a=Math.exp(a);return(a+1/a)/2};return a}();function ra(a){oa(0a*b?a+b:a}function ya(a,b,c){return a+c*(b-a)};function za(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]+2*b;c[1]=a[1]+2*b;return c}function Aa(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]*b+.5|0;c[1]=a[1]*b+.5|0;return c}function Ba(a,b){if(Array.isArray(a))return a;void 0===b?b=[a,a]:b[0]=b[1]=a;return b};function Ca(a){for(var b=Da(),c=0,d=a.length;cd&&(g|=4);be&&(g|=2);0===g&&(g=1);return g}function Da(){return[Infinity,Infinity,-Infinity,-Infinity]}function Na(a,b,c,d,e){return e?(e[0]=a,e[1]=b,e[2]=c,e[3]=d,e):[a,b,c,d]}function Oa(a){return Na(Infinity,Infinity,-Infinity,-Infinity,a)}function Pa(a,b){var c=a[0];a=a[1];return Na(c,a,c,a,b)} +function Qa(a,b,c,d,e){e=Oa(e);return Ra(e,a,b,c,d)}function Sa(a,b){return a[0]==b[0]&&a[2]==b[2]&&a[1]==b[1]&&a[3]==b[3]}function Ta(a,b){b[0]a[2]&&(a[2]=b[2]);b[1]a[3]&&(a[3]=b[3]);return a}function Ea(a,b){b[0]a[2]&&(a[2]=b[0]);b[1]a[3]&&(a[3]=b[1])} +function Ra(a,b,c,d,e){for(;cb[0]?a[0]:b[0],c[1]=a[1]>b[1]?a[1]:b[1],c[2]=a[2]=b[0]&&a[1]<=b[3]&&a[3]>=b[1]}function bb(a){return a[2]Ab?f=Ab:f<-Ab&&(f=-Ab);b[e+1]=f}return b}function Db(a,b,c){var d=a.length;c=1b?1:ac)for(c=1;c>>0,d,e=0;e>=1}return c.join("")};function qc(a){this.minZoom=void 0!==a.minZoom?a.minZoom:0;this.b=a.resolutions;oa(nc(this.b,function(a,b){return b-a}),17);if(!a.origins)for(var b=0,c=this.b.length-1;b=a.minZoom;){2===a.l?(h=Math.floor(h/2),l=Math.floor(l/2),b=ka(h,h,l,l,d)):b=tc(a,f,g,d);if(c.call(null,g,b))return!0;--g}return!1}k.G=function(){return this.o};k.mj=function(){return this.maxZoom};k.nj=function(){return this.minZoom};k.Ic=function(a){return this.g?this.g:this.c[a]};k.Ta=function(a){return this.b[a]}; +k.oj=function(){return this.b};function vc(a,b,c,d){if(b[0]=Math.abs(c-f[0])&&25>=g)return!0}return!1}function Ed(a){var b=Fd(a,a),c=b.preventDefault;b.preventDefault=function(){a.preventDefault();c()};b.pointerId=1;b.isPrimary=!0;b.pointerType="mouse";return b}k=Cd.prototype; +k.Jm=function(a){if(!Dd(this,a)){(1).toString()in this.a&&this.cancel(a);var b=Ed(a);this.a[(1).toString()]=a;Gd(this.b,"pointerdown",b,a)}};k.Km=function(a){if(!Dd(this,a)){var b=Ed(a);Gd(this.b,"pointermove",b,a)}};k.Nm=function(a){if(!Dd(this,a)){var b=this.a[(1).toString()];b&&b.button===a.button&&(b=Ed(a),Gd(this.b,"pointerup",b,a),delete this.a[(1).toString()])}};k.Mm=function(a){if(!Dd(this,a)){var b=Ed(a);Hd(this.b,b,a)}};k.Lm=function(a){if(!Dd(this,a)){var b=Ed(a);Jd(this.b,b,a)}}; +k.cancel=function(a){var b=Ed(a);this.b.cancel(b,a);delete this.a[(1).toString()]};function Kd(a){Bd.call(this,a,{MSPointerDown:this.Sm,MSPointerMove:this.Tm,MSPointerUp:this.Wm,MSPointerOut:this.Um,MSPointerOver:this.Vm,MSPointerCancel:this.Rm,MSGotPointerCapture:this.Pm,MSLostPointerCapture:this.Qm});this.a=a.g;this.g=["","unavailable","touch","pen","mouse"]}w(Kd,Bd);function Ld(a,b){var c=b;"number"===typeof b.pointerType&&(c=Fd(b,b),c.pointerType=a.g[b.pointerType]);return c}k=Kd.prototype; +k.Sm=function(a){this.a[a.pointerId.toString()]=a;var b=Ld(this,a);Gd(this.b,"pointerdown",b,a)};k.Tm=function(a){var b=Ld(this,a);Gd(this.b,"pointermove",b,a)};k.Wm=function(a){var b=Ld(this,a);Gd(this.b,"pointerup",b,a);delete this.a[a.pointerId.toString()]};k.Um=function(a){var b=Ld(this,a);Jd(this.b,b,a)};k.Vm=function(a){var b=Ld(this,a);Hd(this.b,b,a)};k.Rm=function(a){var b=Ld(this,a);this.b.cancel(b,a);delete this.a[a.pointerId.toString()]}; +k.Qm=function(a){this.b.b(new Md("lostpointercapture",a,a))};k.Pm=function(a){this.b.b(new Md("gotpointercapture",a,a))};function Nd(a){Bd.call(this,a,{pointerdown:this.Kp,pointermove:this.Lp,pointerup:this.Op,pointerout:this.Mp,pointerover:this.Np,pointercancel:this.Jp,gotpointercapture:this.Wl,lostpointercapture:this.Hm})}w(Nd,Bd);k=Nd.prototype;k.Kp=function(a){Od(this.b,a)};k.Lp=function(a){Od(this.b,a)};k.Op=function(a){Od(this.b,a)};k.Mp=function(a){Od(this.b,a)};k.Np=function(a){Od(this.b,a)};k.Jp=function(a){Od(this.b,a)};k.Hm=function(a){Od(this.b,a)};k.Wl=function(a){Od(this.b,a)};function Md(a,b,c){Qc.call(this,a);this.b=b;a=c?c:{};this.buttons=Pd(a);this.pressure=Qd(a,this.buttons);this.bubbles="bubbles"in a?a.bubbles:!1;this.cancelable="cancelable"in a?a.cancelable:!1;this.view="view"in a?a.view:null;this.detail="detail"in a?a.detail:null;this.screenX="screenX"in a?a.screenX:0;this.screenY="screenY"in a?a.screenY:0;this.clientX="clientX"in a?a.clientX:0;this.clientY="clientY"in a?a.clientY:0;this.ctrlKey="ctrlKey"in a?a.ctrlKey:!1;this.altKey="altKey"in a?a.altKey:!1;this.shiftKey= +"shiftKey"in a?a.shiftKey:!1;this.metaKey="metaKey"in a?a.metaKey:!1;this.button="button"in a?a.button:0;this.relatedTarget="relatedTarget"in a?a.relatedTarget:null;this.pointerId="pointerId"in a?a.pointerId:0;this.width="width"in a?a.width:0;this.height="height"in a?a.height:0;this.tiltX="tiltX"in a?a.tiltX:0;this.tiltY="tiltY"in a?a.tiltY:0;this.pointerType="pointerType"in a?a.pointerType:"";this.isPrimary="isPrimary"in a?a.isPrimary:!1;b.preventDefault&&(this.preventDefault=function(){b.preventDefault()})} +w(Md,Qc);function Pd(a){if(a.buttons||Rd)a=a.buttons;else switch(a.which){case 1:a=1;break;case 2:a=4;break;case 3:a=2;break;default:a=0}return a}function Qd(a,b){var c=0;a.pressure?c=a.pressure:c=b?.5:0;return c}var Rd=!1;try{Rd=1===(new MouseEvent("click",{buttons:1})).buttons}catch(a){};function Sd(a,b){Bd.call(this,a,{touchstart:this.Qq,touchmove:this.Pq,touchend:this.Oq,touchcancel:this.Nq});this.a=a.g;this.j=b;this.g=void 0;this.f=0;this.c=void 0}w(Sd,Bd);k=Sd.prototype;k.Ej=function(){this.f=0;this.c=void 0}; +function Td(a,b,c){b=Fd(b,c);b.pointerId=c.identifier+2;b.bubbles=!0;b.cancelable=!0;b.detail=a.f;b.button=0;b.buttons=1;b.width=c.webkitRadiusX||c.radiusX||0;b.height=c.webkitRadiusY||c.radiusY||0;b.pressure=c.webkitForce||c.force||.5;b.isPrimary=a.g===c.identifier;b.pointerType="touch";b.clientX=c.clientX;b.clientY=c.clientY;b.screenX=c.screenX;b.screenY=c.screenY;return b} +function Ud(a,b,c){function d(){b.preventDefault()}var e=Array.prototype.slice.call(b.changedTouches),f=e.length,g;for(g=0;g=b.length){var e=[],f;for(f=0;fa.D||Math.abs(b.clientY-a.c.clientY)>a.D}k.ia=function(){this.v&&(Gc(this.v),this.v=null);this.s&&(Gc(this.s),this.s=null);this.i.forEach(Gc);this.i.length=0;this.a&&(Pc(this.a),this.a=null);this.f&&(Pc(this.f),this.f=null);Sc.prototype.ia.call(this)};function ge(a,b){this.s=a;this.c=b;this.b=[];this.g=[];this.a={}}ge.prototype.clear=function(){this.b.length=0;this.g.length=0;lb(this.a)};function he(a){var b=a.b,c=a.g,d=b[0];1==b.length?(b.length=0,c.length=0):(b[0]=b.pop(),c[0]=c.pop(),ie(a,0));b=a.c(d);delete a.a[b];return d}ge.prototype.i=function(a){oa(!(this.c(a)in this.a),31);var b=this.s(a);return Infinity!=b?(this.b.push(a),this.g.push(b),this.a[this.c(a)]=!0,je(this,0,this.b.length-1),!0):!1}; +function ie(a,b){for(var c=a.b,d=a.g,e=c.length,f=c[b],g=d[b],h=b;b>1;){var l=2*b+1,m=2*b+2;l=mb;){var g=c-1>>1;if(a[g]>f)d[c]=d[g],a[c]=a[g],c=g;else break}d[c]=e;a[c]=f} +function ke(a){var b=a.s,c=a.b,d=a.g,e=0,f=c.length,g;for(g=0;g>1)-1;0<=b;b--)ie(a,b)};function le(a,b){ge.call(this,function(b){return a.apply(null,b)},function(a){return a[0].lb()});this.v=b;this.j=0;this.f={}}w(le,ge);le.prototype.i=function(a){var b=ge.prototype.i.call(this,a);b&&y(a[0],"change",this.l,this);return b};le.prototype.l=function(a){a=a.target;var b=a.getState();if(2===b||3===b||4===b||5===b)Mc(a,"change",this.l,this),a=a.lb(),a in this.f&&(delete this.f[a],--this.j),this.v()}; +function me(a,b,c){for(var d=0,e=!1,f,g,h;a.je)return 1;if(e>d)return-1}return 0};function ze(a,b){a[0]+=b[0];a[1]+=b[1];return a}function Ae(a,b){var c=b.Bd(),d=b.xa();b=d[0];d=d[1];var e=a[0]-b;a=a[1]-d;0===e&&0===a&&(e=1);var f=Math.sqrt(e*e+a*a);return[b+c*e/f,d+c*a/f]}function Be(a,b){var c=a[0];a=a[1];var d=b[0],e=b[1];b=d[0];d=d[1];var f=e[0];e=e[1];var g=f-b,h=e-d;c=0===g&&0===h?0:(g*(c-b)+h*(a-d))/(g*g+h*h||0);0>=c?(a=b,c=d):1<=c?(a=f,c=e):(a=b+c*g,c=d+c*h);return[a,c]} +function Ce(a,b,c){b=wa(b+180,360)-180;var d=Math.abs(3600*b);c=c||0;var e=Math.pow(10,c),f=Math.floor(d/3600),g=Math.floor((d-3600*f)/60);d=Math.ceil((d-3600*f-60*g)*e)/e;60<=d&&(d=0,g+=1);60<=g&&(g=0,f+=1);return f+"\u00b0 "+xe(g)+"\u2032 "+xe(d,c)+"\u2033"+(0==b?"":" "+a.charAt(0>b?1:0))}function De(a,b,c){return a?b.replace("{x}",a[0].toFixed(c)).replace("{y}",a[1].toFixed(c)):""}function Ee(a,b){for(var c=!0,d=a.length-1;0<=d;--d)if(a[d]!=b[d]){c=!1;break}return c} +function Fe(a,b){var c=Math.cos(b);b=Math.sin(b);var d=a[1]*c+a[0]*b;a[0]=a[0]*c-a[1]*b;a[1]=d;return a}function Ge(a,b){a[0]*=b;a[1]*=b}function He(a,b){var c=a[0]-b[0];a=a[1]-b[1];return c*c+a*a}function Ie(a,b){return Math.sqrt(He(a,b))}function Je(a,b){return He(a,Be(a,b))}function Ke(a,b){return De(a,"{x}, {y}",b)};function Me(a){return Math.pow(a,3)}function Oe(a){return 1-Me(1-a)}function Pe(a){return 3*a*a-2*a*a*a}function Qe(a){return a};function Re(){return!0}function Se(){return!1};function Te(a,b,c,d,e,f){for(var g=f?f:[],h=0;ba||0!==this.f&&a<=this.f)return this;var b=a.toString();if(this.i.hasOwnProperty(b))return this.i[b];var c=this.xd(a);if(c.da().lengthe&&(e=f);f=h;g=l}return e}function qf(a,b,c,d,e){var f;var g=0;for(f=c.length;gh){for(;br&&(m=n,r=E)}r>e&&(l[(m-b)/d]=1,q+dla&&iala)&&(0>ca&&xaca)||(v[z++]=S,v[z++]=g,A=S,E=g);S=Ia;g=ta}}v[z++]=S;v[z++]=g}g=z}h.push(g);b=n}return g};function Df(a,b){hf.call(this);this.c=this.j=-1;this.na(a,b)}w(Df,hf);k=Df.prototype;k.clone=function(){var a=new Df(null);Ef(a,this.ja,this.A.slice());return a};k.Nb=function(a,b,c,d){if(df&&0<(m-h)*(f-l)-(e-h)*(n-l)&&g++:n<=f&&0>(m-h)*(f-l)-(e-h)*(n-l)&&g--;h=m;l=n}return 0!==g}function Hf(a,b,c,d,e,f){if(0===c.length||!Gf(a,b,c[0],d,e,f))return!1;var g;b=1;for(g=c.length;bv&&(m=(m+n)/2,Hf(a,b,c,d,m,q)&&(u=m,v=z)),m=n;isNaN(u)&&(u=e[f]);return g?(g.push(u,q,v),g):[u,q,v]};function Jf(a,b,c,d,e,f){for(var g=[a[b],a[b+1]],h=[],l;b+d=e[0]&&f[2]<=e[2]||f[1]>=e[1]&&f[3]<=e[3]?!0:Jf(a,b,c,d,function(a,b){var c=!1,d=Ma(e,a),f=Ma(e,b);if(1===d||1===f)c=!0;else{var g=e[0],h=e[1],r=e[2],u=e[3],v=b[0];b=b[1];a=(b-a[1])/(v-a[0]);f&2&&!(d&2)&&(c=v-(b-u)/a,c=c>=g&&c<=r);c||!(f&4)||d&4||(c=b-(v-r)*a,c=c>=h&&c<=u);c||!(f&8)||d&8||(c=v-(b-h)/a,c=c>=g&&c<=r);c||!(f&16)||d&16||(c=b-(v-g)*a,c=c>=h&&c<=u)}return c}):!1} +function Lf(a,b,c,d,e){var f=c[0];if(!(Kf(a,b,f,d,e)||Gf(a,b,f,d,e[0],e[1])||Gf(a,b,f,d,e[0],e[3])||Gf(a,b,f,d,e[2],e[1])||Gf(a,b,f,d,e[2],e[3])))return!1;if(1===c.length)return!0;b=1;for(f=c.length;ba||this.c.length<=a)return null;var b=new Df(null);Ef(b,this.ja,this.A.slice(0===a?0:this.c[a-1],this.c[a]));return b};k.Ud=function(){var a=this.ja,b=this.A,c=this.c,d=[],e=0,f;var g=0;for(f=c.length;g=a.minResolution&&ba.b.length)return!1;var b=Date.now()-a.f,c=a.b.length-3;if(a.b[c+2]b;)d-=3;b=a.b[c+2]-a.b[d+2];if(b<1E3/60)return!1;var e=a.b[c]-a.b[d];c=a.b[c+1]-a.b[d+1];a.g=Math.atan2(c,e);a.a=Math.sqrt(e*e+c*c)/b;return a.a>a.c};function Jg(a){Vc.call(this);this.v=null;this.Ha(!0);this.handleEvent=a.handleEvent}w(Jg,Vc);Jg.prototype.c=function(){return this.get("active")};Jg.prototype.i=function(){return this.v};Jg.prototype.Ha=function(a){this.set("active",a)};Jg.prototype.setMap=function(a){this.v=a};function Kg(a,b,c,d){if(void 0!==b){var e=a.Sa(),f=a.xa();void 0!==e&&f&&0=this.o}function vh(a){if(dh(a)){var b=this.a,c=a.pixel;b.c=this.f;b.g=c;sh(b);rh(b);this.b(new yh(zh,a.coordinate,a))}}th.prototype.U=function(){return this.a.U()}; +th.prototype.j=ea;function wh(a){if(!dh(a))return!0;this.a.setMap(null);this.s(a,this.f,a.pixel)&&(this.j(a),this.b(new yh(Ah,a.coordinate,a)));return!1}function uh(a){if(dh(a)&&Yg(a)&&this.C(a)){this.f=a.pixel;this.a.setMap(a.map);var b=this.a,c=this.f;b.c=this.f;b.g=c;sh(b);rh(b);this.b(new yh(Bh,a.coordinate,a));return!0}return!1}var Bh="boxstart",zh="boxdrag",Ah="boxend";function yh(a,b,c){Qc.call(this,a);this.coordinate=b;this.mapBrowserEvent=c}w(yh,Qc);function Ch(a){a=a?a:{};var b=a.condition?a.condition:bh;this.B=void 0!==a.duration?a.duration:200;this.T=void 0!==a.out?a.out:!1;th.call(this,{condition:b,className:a.className||"ol-dragzoom"})}w(Ch,th); +Ch.prototype.j=function(){var a=this.v,b=a.aa(),c=a.Cb(),d=this.U().G();if(this.T){var e=b.qd(c);d=[a.Ia(Wa(d)),a.Ia(Za(d))];a=Oa(void 0);var f;var g=0;for(f=d.length;gMath.abs(d)?Ph:Qh;if(this.l===Ph){b=b.aa();this.s?clearTimeout(this.s): +bg(b,1,1);this.s=setTimeout(this.B.bind(this),400);c=b.Pa()*Math.pow(2,d/300);var e=b.i,f=b.a,g=0;cf&&(c=Math.min(c,1.5*f),g=-1);if(this.a){var h=cg(b,c,this.a);b.ub(b.Sc(h))}b.gd(c);0===g&&this.O&&b.animate({resolution:b.constrainResolution(c,0g&&b.animate({resolution:f,easing:Oe,anchor:this.a,duration:500});this.f=a;return!1}this.j+=d;d=Math.max(this.$- +(a-this.f),0);clearTimeout(this.o);this.o=setTimeout(this.T.bind(this,b),d);return!1}Hh.prototype.B=function(){this.s=void 0;bg(this.v.aa(),1,-1)};Hh.prototype.T=function(a){a=a.aa();a.Ac()&&a.rd();Lg(a,-pa(this.j,-1,1),this.a,this.D);this.l=void 0;this.j=0;this.a=null;this.o=this.f=void 0};Hh.prototype.V=function(a){this.C=a;a||(this.a=null)};var Ph="trackpad",Qh="wheel";function Rh(a){fh.call(this,{handleDownEvent:Sh,handleDragEvent:Th,handleUpEvent:Uh});a=a||{};this.f=null;this.j=void 0;this.a=!1;this.s=0;this.C=void 0!==a.threshold?a.threshold:.3;this.o=void 0!==a.duration?a.duration:250}w(Rh,fh); +function Th(a){var b=0,c=this.l[0],d=this.l[1];c=Math.atan2(d.clientY-c.clientY,d.clientX-c.clientX);void 0!==this.j&&(b=c-this.j,this.s+=b,!this.a&&Math.abs(this.s)>this.C&&(this.a=!0));this.j=c;a=a.map;c=a.aa();if(c.l.rotation!==re){d=a.a.getBoundingClientRect();var e=hh(this.l);e[0]-=d.left;e[1]-=d.top;this.f=a.Ra(e);this.a&&(d=c.Sa(),a.render(),Kg(c,d+b,this.f))}} +function Uh(a){if(2>this.l.length){a=a.map.aa();bg(a,1,-1);if(this.a){var b=a.Sa(),c=this.f,d=this.o;b=a.constrainRotation(b,0);Kg(a,b,c,d)}return!1}return!0}function Sh(a){return 2<=this.l.length?(a=a.map,this.f=null,this.j=void 0,this.a=!1,this.s=0,this.D||bg(a.aa(),1,1),!0):!1}Rh.prototype.jd=Se;function Vh(a){fh.call(this,{handleDownEvent:Wh,handleDragEvent:Xh,handleUpEvent:Yh});a=a?a:{};this.s=a.constrainResolution||!1;this.f=null;this.o=void 0!==a.duration?a.duration:400;this.a=void 0;this.j=1}w(Vh,fh); +function Xh(a){var b=1,c=this.l[0],d=this.l[1],e=c.clientX-d.clientX;c=c.clientY-d.clientY;e=Math.sqrt(e*e+c*c);void 0!==this.a&&(b=this.a/e);this.a=e;a=a.map;e=a.aa();d=e.Pa();var f=e.a,g=e.i;c=d*b;c>f?(b=f/d,c=f):cthis.l.length){a=a.map.aa();bg(a,1,-1);var b=a.Pa();if(this.s||ba.a){var c=this.f,d=this.o;b=a.constrainResolution(b,0,this.j-1);Tg(a,b,c,d)}return!1}return!0}function Wh(a){return 2<=this.l.length?(a=a.map,this.f=null,this.a=void 0,this.j=1,this.D||bg(a.aa(),1,1),!0):!1}Vh.prototype.jd=Se;function Zh(a){a=a?a:{};var b=new B,c=new Gg(-.005,.05,100);(void 0!==a.altShiftDragRotate?a.altShiftDragRotate:1)&&b.push(new mh);(void 0!==a.doubleClickZoom?a.doubleClickZoom:1)&&b.push(new Ug({delta:a.zoomDelta,duration:a.zoomDuration}));(void 0!==a.dragPan?a.dragPan:1)&&b.push(new ih({kinetic:c}));(void 0!==a.pinchRotate?a.pinchRotate:1)&&b.push(new Rh);(void 0!==a.pinchZoom?a.pinchZoom:1)&&b.push(new Vh({constrainResolution:a.constrainResolution,duration:a.zoomDuration}));if(void 0!==a.keyboard? +a.keyboard:1)b.push(new Dh),b.push(new Fh({delta:a.zoomDelta,duration:a.zoomDuration}));(void 0!==a.mouseWheelZoom?a.mouseWheelZoom:1)&&b.push(new Hh({constrainResolution:a.constrainResolution,duration:a.zoomDuration}));(void 0!==a.shiftDragZoom?a.shiftDragZoom:1)&&b.push(new Ch({duration:a.zoomDuration}));return b};function $h(a,b,c,d){Sc.call(this);this.extent=a;this.a=c;this.resolution=b;this.state=d}w($h,Sc);$h.prototype.u=function(){this.b("change")};$h.prototype.G=function(){return this.extent};$h.prototype.getState=function(){return this.state};function ai(a,b,c,d,e){this.c=void 0!==e?e:null;$h.call(this,a,b,c,void 0!==e?0:2);this.g=d}w(ai,$h);ai.prototype.i=function(a){this.state=a?3:2;this.u()};ai.prototype.load=function(){0==this.state&&(this.state=1,this.u(),this.c(this.i.bind(this)))};ai.prototype.Y=function(){return this.g};function bi(a,b,c,d,e){Qc.call(this,a);this.vectorContext=b;this.frameState=c;this.context=d;this.glContext=e}w(bi,Qc);function ci(a){Sc.call(this);this.highWaterMark=void 0!==a?a:2048;this.i=0;this.a={};this.c=this.g=null}w(ci,Sc);function di(a){return a.i>a.highWaterMark}k=ci.prototype;k.clear=function(){this.i=0;this.a={};this.c=this.g=null;this.b("clear")};k.forEach=function(a,b){for(var c=this.g;c;)a.call(b,c.Pc,c.jc,this),c=c.kb}; +k.get=function(a){a=this.a[a];oa(void 0!==a,15);if(a===this.c)return a.Pc;a===this.g?(this.g=this.g.kb,this.g.Pb=null):(a.kb.Pb=a.Pb,a.Pb.kb=a.kb);a.kb=null;a.Pb=this.c;this.c=this.c.kb=a;return a.Pc};k.remove=function(a){var b=this.a[a];oa(void 0!==b,15);if(b===this.c){if(this.c=b.Pb)this.c.kb=null}else if(b===this.g){if(this.g=b.kb)this.g.Pb=null}else b.kb.Pb=b.Pb,b.Pb.kb=b.kb;delete this.a[a];--this.i;return b.Pc}; +k.pop=function(){var a=this.g;delete this.a[a.jc];a.kb&&(a.kb.Pb=null);this.g=a.kb;this.g||(this.c=null);--this.i;return a.Pc};k.replace=function(a,b){this.get(a);this.a[a].Pc=b};k.set=function(a,b){oa(!(a in this.a),16);b={jc:a,kb:null,Pb:this.c,Pc:b};this.c?this.c.kb=b:this.g=b;this.c=b;this.a[a]=b;++this.i};var ei=[0,0,0,1],fi=[],gi=[0,0,0,1],hi=[0,0,0,0],ii=new ci,ji={},ki=null,li={},ni=function(){function a(a){var b=mi();b.font="32px monospace";f=b.measureText("wmytzilWMYTZIL@#/&?$%10").width;var c=!0;"monospace"!=a&&(b.font="32px "+a+",monospace",c=b.measureText("wmytzilWMYTZIL@#/&?$%10").width!=f);return c}function b(){var b=!0,f;for(f in c)60>c[f]&&(a(f)?(c[f]=60,lb(li),ki=null,d.clear()):(++c[f],b=!1));b&&(window.clearInterval(e),e=void 0)}var c=ji,d=ii,e,f;return function(d){if(d=wg(d))for(var f= +0,g=d.length;f=e?1:2;var g=4===e||8===e;e=parseInt(d.substr(1+0*f,f),16);var h=parseInt(d.substr(1+1*f,f),16);var l=parseInt(d.substr(1+2*f,f),16);d=g?parseInt(d.substr(1+3*f,f), +16):255;1==f&&(e=(e<<4)+e,h=(h<<4)+h,l=(l<<4)+l,g&&(d=(d<<4)+d));f=[e,h,l,d/255]}else 0==d.indexOf("rgba(")?(d=d.slice(5,-1).split(",").map(Number),f=yi(d)):0==d.indexOf("rgb(")?(d=d.slice(4,-1).split(",").map(Number),d.push(1),f=yi(d)):oa(!1,14);d=f;a[c]=d;++b}return d}}();function yi(a){var b=[];b[0]=pa(a[0]+.5|0,0,255);b[1]=pa(a[1]+.5|0,0,255);b[2]=pa(a[2]+.5|0,0,255);b[3]=pa(a[3],0,1);return b};function zi(a){return"string"===typeof a||a instanceof CanvasPattern||a instanceof CanvasGradient?a:xi(a)};function Ai(){}k=Ai.prototype;k.Hh=function(){};k.Hb=function(){};k.Dd=function(){};k.cc=function(){};k.Ce=function(){};k.De=function(){};k.uc=function(){};k.vc=function(){};k.wc=function(){};k.xc=function(){};k.yc=function(){};k.zc=function(){};k.Wb=function(){};k.Oa=function(){};k.Zb=function(){};k.nb=function(){};function Bi(a,b,c,d,e){this.g=a;this.f=b;this.c=c;this.N=d;this.ob=e;this.M=this.b=this.a=this.Wa=this.O=this.T=null;this.$=this.V=this.v=this.B=this.C=this.D=0;this.ca=!1;this.i=this.ab=0;this.ra=!1;this.oa=0;this.ta="";this.Ub=this.ua=0;this.Ea=!1;this.s=this.La=0;this.qa=this.l=this.j=null;this.o=[];this.bb=We()}w(Bi,Ai); +function Ci(a,b,c){if(a.M){b=Te(b,0,c,2,a.N,a.o);c=a.g;var d=a.bb,e=c.globalAlpha;1!=a.v&&(c.globalAlpha=e*a.v);var f=a.ab;a.ca&&(f+=a.ob);var g;var h=0;for(g=b.length;ha.la&&(a.la=d.la),d.eaa.ka&&(a.ka=d.ka)):a[b][c]=d:(a[b]={},a[b][c]=d)} +function Wi(a,b,c,d,e,f,g,h,l,m){var n=x(b).toString();n in a.wantedTiles||(a.wantedTiles[n]={});var p=a.wantedTiles[n];a=a.tileQueue;var q,r,u;for(u=c.minZoom;u<=g;++u){var v=tc(c,f,u,v);var z=c.Ta(u);for(q=v.fa;q<=v.la;++q)for(r=v.ea;r<=v.ka;++r)if(g-u<=h){var A=b.ad(u,q,r,d,e);0==A.getState()&&(p[A.lb()]=!0,A.lb()in a.a||a.i([A,n,yc(c,A.ya),z]));void 0!==l&&l.call(m,A)}else b.kh(u,q,r,e)}};function Xi(a){Ki.call(this,a);this.V=We()}w(Xi,Ki);function Yi(a,b,c){var d=b.pixelRatio,e=b.size[0]*d,f=b.size[1]*d,g=b.viewState.rotation,h=$a(c),l=Za(c),m=Ya(c);c=Wa(c);af(b.coordinateToPixelTransform,h);af(b.coordinateToPixelTransform,l);af(b.coordinateToPixelTransform,m);af(b.coordinateToPixelTransform,c);a.save();qi(a,-g,e/2,f/2);a.beginPath();a.moveTo(h[0]*d,h[1]*d);a.lineTo(l[0]*d,l[1]*d);a.lineTo(m[0]*d,m[1]*d);a.lineTo(c[0]*d,c[1]*d);a.clip();qi(a,g,e/2,f/2)} +function Zi(a,b,c,d,e){var f=a.a;if(Tc(f,b)){var g=d.size[0]*d.pixelRatio,h=d.size[1]*d.pixelRatio,l=d.viewState.rotation;qi(c,-l,g/2,h/2);a=void 0!==e?e:$i(a,d,0);f.b(new bi(b,new Bi(c,d.pixelRatio,d.extent,a,d.viewState.rotation),d,c,null));qi(c,l,g/2,h/2)}}Xi.prototype.s=function(a,b,c,d){if(this.wa(a,b,0,Re,this))return c.call(d,this.a,null)};Xi.prototype.pf=function(a,b,c,d){Zi(this,"postcompose",a,b,d)}; +function $i(a,b,c){var d=b.viewState,e=b.pixelRatio,f=e/d.resolution;return ef(a.V,e*b.size[0]/2,e*b.size[1]/2,f,-f,-d.rotation,-d.center[0]+c,-d.center[1])};function aj(a){Xi.call(this,a);this.l=We();this.j=null}w(aj,Xi);aj.prototype.df=function(a,b,c){Zi(this,"precompose",c,a,void 0);var d=this.Y();if(d){var e=b.extent,f=void 0!==e&&!La(e,a.extent)&&hb(e,a.extent);f&&Yi(c,a,e);e=this.v();var g=c.globalAlpha;c.globalAlpha=b.opacity;c.drawImage(d,0,0,+d.width,+d.height,Math.round(e[4]),Math.round(e[5]),Math.round(d.width*e[0]),Math.round(d.height*e[3]));c.globalAlpha=g;f&&c.restore()}this.pf(c,a,b)}; +aj.prototype.wa=function(a,b,c,d,e){var f=this.a;return f.ha().wa(a,b.viewState.resolution,b.viewState.rotation,c,b.skippedFeatureUids,function(a){return d.call(e,a,f)})}; +aj.prototype.s=function(a,b,c,d){if(this.Y()){if(this.a.ha().wa!==ea)return Xi.prototype.s.apply(this,arguments);var e=af(this.l,a.slice());Ge(e,b.viewState.resolution/this.i);this.j||(this.j=hg(1,1));this.j.clearRect(0,0,1,1);this.j.drawImage(this.Y(),e[0],e[1],1,1,0,0,1,1);e=this.j.getImageData(0,0,1,1).data;if(0a.g){var b=0,c;for(c in a.b){var d=a.b[c];0!==(b++&3)||Tc(d)||(delete a.b[c],--a.a)}}}cj.prototype.get=function(a,b,c){a=b+":"+a+":"+(c?xi(c):"null");return a in this.b?this.b[a]:null};cj.prototype.set=function(a,b,c,d){this.b[b+":"+a+":"+(c?xi(c):"null")]=d;++this.a};cj.prototype.c=function(a){this.g=a;dj(this)};var ej=new cj;function fj(a,b){this.l=b;this.c={};this.v={}}w(fj,Oc);function gj(a){var b=a.viewState,c=a.coordinateToPixelTransform,d=a.pixelToCoordinateTransform;ef(c,a.size[0]/2,a.size[1]/2,1/b.resolution,-1/b.resolution,-b.rotation,-b.center[0],-b.center[1]);ff($e(d,c))}function hj(){dj(ej)}k=fj.prototype; +k.wa=function(a,b,c,d,e,f,g){function h(a,c){var f=x(a).toString(),g=b.layerStates[x(c)].Te;if(!(f in b.skippedFeatureUids)||g)return d.call(e,a,g?c:null)}var l,m=b.viewState,n=m.resolution,p=m.projection;m=a;if(p.g){p=p.G();var q=cb(p),r=a[0];if(rp[2])m=[r+q*Math.ceil((p[0]-r)/q),a[1]]}p=b.layerStatesArray;for(q=p.length-1;0<=q;--q){var u=p[q];r=u.layer;if(yg(u,n)&&f.call(g,r)&&(u=ij(this,r),r.ha()&&(l=u.wa(r.ha().D?m:a,b,c,h,e)),l))return l}}; +k.Ui=function(a,b,c,d,e){return void 0!==this.wa(a,b,c,Re,this,d,e)};function ij(a,b){var c=x(b).toString();if(c in a.c)return a.c[c];for(var d,e=a.S(),f=0,g=pg.length;fb?1:af;){if(600m-l/2?-1:1);b(a,e,Math.max(f,Math.floor(e-m*p/l+n)),Math.min(g,Math.floor(e+(l-m)*p/l+n)),h)}l=a[e];m=f;p=g;c(a,f,e);for(0h(a[m],l);)m++;for(;0b?1:0}function e(a,b){if(!(this instanceof e))return new e(a,b);this.Lf=Math.max(4,a||9);this.wh=Math.max(2,Math.ceil(.4*this.Lf));b&&this.Ak(b);this.clear()}function f(a,b){g(a,0,a.children.length,b,a)}function g(a,b,c,d,e){e||(e=u(null));e.fa=Infinity;e.ea=Infinity;e.la=-Infinity;e.ka=-Infinity;for(var f;b=a.fa&&b.ka>=a.ea}function u(a){return{children:a,height:1,fb:!0,fa:Infinity,ea:Infinity,la:-Infinity,ka:-Infinity}}function v(a,b,c,d,e){for(var f=[b,c],g;f.length;)c=f.pop(),b=f.pop(),c-b<=d||(g=b+Math.ceil((c-b)/d/2)*d,z(a, +g,b,c,e),f.push(b,g,g,c))}var z=b;e.prototype={all:function(){return this.rh(this.data,[])},search:function(a){var b=this.data,c=[],d=this.xb;if(!r(a,b))return c;for(var e=[],f,g,h,l;b;){f=0;for(g=b.children.length;fthis.Lf)this.Dk(d, +b),b--;else break;this.uk(c,d,b)},Dk:function(a,b){var c=a[b],d=c.children.length,e=this.wh;this.vk(c,e,d);d=this.wk(c,e,d);d=u(c.children.splice(d,c.children.length-d));d.height=c.height;d.fb=c.fb;f(c,this.xb);f(d,this.xb);b?a[b-1].children.push(d):this.yh(c,d)},yh:function(a,b){this.data=u([a,b]);this.data.height=a.height+1;this.data.fb=!1;f(this.data,this.xb)},wk:function(a,b,c){var d,e;var f=e=Infinity;for(d=b;d<=c-b;d++){var h=g(a,0,d,this.xb);var l=g(a,d,c,this.xb);var m=Math.max(0,Math.min(h.la, +l.la)-Math.max(h.fa,l.fa))*Math.max(0,Math.min(h.ka,l.ka)-Math.max(h.ea,l.ea));h=n(h)+n(l);if(m=b;m--)n=a.children[m],h(f,a.fb?d(n):n),l+=p(f);return l}, +uk:function(a,b,c){for(;0<=c;c--)h(b[c],a)},yk:function(a){for(var b=a.length-1,c;0<=b;b--)0===a[b].children.length?0e.width?e.width-n:v;l=l+p>e.height?e.height-p:l;v=a.La;var ta=z[3]+u*r+z[1],la=z[0]+l*r+z[2],ca=c-z[3],ia=d-z[0];if(S||0!==q){var xa=[ca,ia];var Va=[ca+ta,ia];var ic=[ca+ta,ia+la];var Xa=[ca,ia+la]}z=null;0!==q?(f=c+f,g=d+g,z=ef(Ia,f,g,1,1,q,-f,-g),Oa(v),Ea(v,af(Ia,xa)),Ea(v,af(Ia,Va)),Ea(v,af(Ia,ic)),Ea(v,af(Ia,Xa))):Na(ca,ia,ca+ta,ia+la,v);q=b.canvas;q=v[0]<=q.width&& +0<=v[2]&&v[1]<=q.height&&0<=v[3];if(h){if(q||1!=h[4])Ta(h,v),(a=q?[b,z?z.slice(0):null,m,e,n,p,u,l,c,d,r]:null)&&S&&a.push(A,E,xa,Va,ic,Xa),h.push(a)}else q&&(S&&xj(a,b,xa,Va,ic,Xa,A,E),si(b,z,m,e,n,p,u,l,c,d,r))}function Aj(a,b){var c=a.pixelRatio;return 1==c?b:b.map(function(a){return a*c})} +function Bj(a,b,c,d,e,f,g){var h=a.coordinates.length,l=Cj(a);g&&(c+=e);g=[b[c],b[c+1]];var m=[NaN,NaN],n=!0,p;for(p=c+e;pXa&&(a.Xa(b),ta= +0);la>Xa&&(b.stroke(),la=0);ta||la||(b.beginPath(),v=z=NaN);++m;break;case 2:p=Z[1];var Le=h[p],Uf=h[p+1],Id=h[p+2]-Le,te=h[p+3]-Uf,Jh=Math.sqrt(Id*Id+te*te);b.moveTo(Le+Jh,Uf);b.arc(Le,Uf,Jh,0,2*Math.PI,!0);++m;break;case 3:b.closePath();++m;break;case 4:p=Z[1];q=Z[2];var Mg=Z[4],Ng=6==Z.length?Z[5]:void 0;ic.geometry=Z[3];ic.feature=Zb;m in xa||(xa[m]=[]);var Wf=xa[m];Ng?Ng(h,p,q,2,Wf):(Wf[0]=h[p],Wf[1]=h[p+1],Wf.length=2);Mg(Wf,ic);++m;break;case 6:p=Z[1];q=Z[2];Ia=Z[3];r=Z[4];u=Z[5];S=f?null: +Z[6];var rf=Z[7],yu=Z[8],zu=Z[9],Au=Z[10],Bu=Z[11],jp=Z[12],Cu=Z[13],Du=Z[14],Eu=Z[15];if(16sf[zp-2],Cp=Ap.length,Lh=sf[ve],Mh=sf[ve+1];ve+=2;for(var Og=sf[ve],Pg=sf[ve+1],Ok=0,Oi=Math.sqrt(Math.pow(Og-Lh,2)+Math.pow(Pg-Mh,2)),Yf="",Pk=0,Pi=0;PiMath.PI?-2*Math.PI:Qi<-Math.PI?2*Math.PI:0;if(Math.abs(Qi)>Iu){var Sg=null;break a}}var Ep=Ju/Oi,Fp=ya(Lh,Og,Ep),Gp=ya(Mh,Pg,Ep);Ni==Rg?(Kh&&(Xf[0]=Fp,Xf[1]=Gp,Xf[2]=Qg/2),Xf[4]=Yf):(Yf=Qk,Pk=Qg,Xf=[Fp,Gp,Qg/2,Rg,Yf],Kh?Nk.unshift(Xf):Nk.push(Xf),Ni=Rg);Bp+=Qg}Sg=Nk}if(Sg){var Ri;if(sp){var Zf=0;for(Ri=Sg.length;Zfthis.Wa&&(this.Wa=c.lineWidth,this.i=null)):(c.strokeStyle=void 0,c.lineCap=void 0,c.lineDash=null,c.lineDashOffset=void 0,c.lineJoin=void 0,c.lineWidth=void 0,c.miterLimit= +void 0)};k.Ah=function(a,b){var c=a.fillStyle;a=[10,c];"string"!==typeof c&&(b=b.G(),a.push([b[0],b[3]]));this.a.push(a)};k.pd=function(a){this.a.push([11,a.strokeStyle,a.lineWidth*this.pixelRatio,a.lineCap,a.lineJoin,a.miterLimit,Aj(this,a.lineDash),a.lineDashOffset*this.pixelRatio])};function Jj(a,b,c,d){var e=b.fillStyle;if("string"!==typeof e||b.Pk!=e)c.call(a,b,d),b.Pk=e} +function Kj(a,b,c){var d=b.strokeStyle,e=b.lineCap,f=b.lineDash,g=b.lineDashOffset,h=b.lineJoin,l=b.lineWidth,m=b.miterLimit;if(b.Vk!=d||b.Qk!=e||f!=b.Fh&&!jc(b.Fh,f)||b.Rk!=g||b.Sk!=h||b.Tk!=l||b.Uk!=m)c.call(a,b),b.Vk=d,b.Qk=e,b.Fh=f,b.Rk=g,b.Sk=h,b.Tk=l,b.Uk=m}function Fj(a,b){a.qa[2]=a.a.length;a.qa=null;a.T[2]=a.b.length;a.T=null;b=[7,b];a.a.push(b);a.b.push(b)}k.bf=ea;function Cj(a){a.i||(a.i=Ga(a.Ea),0e.maxAngle&&(S>E&&(E=S,n=Ia,A=m),S=0,Ia=m-h)),z=g,v=r,u=q);r=ta;q=la}g=S+g>E?[Ia,m]:[n,A];m=g[0];n=g[1]}else n=l[f];for(g=m;g=p)&&d.push(n[g],n[g+1]);g=d.length;if(0==g)return}g=Bj(this,d,0,g,h,!1,!1);Ej(this,b);if(e.backgroundFill||e.backgroundStroke)this.Oa(e.backgroundFill,e.backgroundStroke),Jj(this,this.state, +this.Ah,a),Kj(this,this.state,this.pd);Tj(this,l,c,g)}Fj(this,b)}}; +Rj.prototype.Y=function(a,b,c,d){var e=d+b+a+c+this.pixelRatio;if(!ii.a.hasOwnProperty(e)){var f=d?this.ab[d]||this.g:null,g=c?this.o[c]||this.c:null,h=this.s[b]||this.f,l=h.scale*this.pixelRatio,m=vj[h.textAlign||"center"];b=d&&f.lineWidth?f.lineWidth:0;a=a.split("\n");var n=a.length,p=[],q=h.font;var r=a.length;var u=0;var v;for(v=0;v=e)for(d=e;d=d;)Wj(c,a+b,a+d),Wj(c,a+d,a+b),Wj(c,a-d,a+b),Wj(c,a-b,a+d),Wj(c,a-b,a-d),Wj(c,a-d,a-b),Wj(c,a+d,a-b),Wj(c,a+b,a-d),d++,e+=1+2*d,0<2*(e-b)+1&&(--b,e+=1-2*b);return Vj[a]=c}k=Uj.prototype;k.Vb=function(a){var b=null;this.a&&(a?(b=this.g,b[4]++):(b=this.g=Da(),b.push(1)));return b};function Yj(a){for(var b in a.b){var c=a.b[b],d;for(d in c)c[d].bf()}} +k.wa=function(a,b,c,d,e,f,g){d=Math.round(d);var h=2*d+1,l=ef(this.j,d+.5,d+.5,1/b,-1/b,-c,-a[0],-a[1]),m=this.f;m.canvas.width!==h||m.canvas.height!==h?(m.canvas.width=h,m.canvas.height=h):m.clearRect(0,0,h,h);if(void 0!==this.i){var n=Da();Ea(n,a);Fa(n,b*(this.i+d),n)}var p=Xj(d),q;this.a&&(q=this.a.all().map(function(a){return a.value}));return Zj(this,m,l,c,e,function(a){for(var b=m.getImageData(0,0,h,h).data,c=0;cm[2];)++Ia,p=n*Ia,p=$i(this,a,p),r.Na(A,p,l,f),h-=n;p=$i(this,a,0)}qi(A,l,S/2,e/2);A!=c&&(z&&Zi(this,"render",A,a,p),v?(d=c.globalAlpha,c.globalAlpha=b.opacity,c.drawImage(A.canvas,-q,-u),c.globalAlpha=d):c.drawImage(A.canvas, +-q,-u),A.translate(-q,-u));v||(A.globalAlpha=E)}g&&c.restore();this.pf(c,a,b,p)};k.wa=function(a,b,c,d,e){if(this.c){var f=this.a,g={};return this.c.wa(a,b.viewState.resolution,b.viewState.rotation,c,{},function(a){var b=x(a).toString();if(!(b in g))return g[b]=!0,d.call(e,a,f)},null)}};k.Vi=function(){var a=this.a;a.Jb()&&this.c&&a.u()};k.Wi=function(){Mi(this)}; +k.$c=function(a){var b=this.a,c=b.ha();Ui(a,c);var d=a.viewHints[0],e=a.viewHints[1],f=b.ca,g=b.ra;if(!this.i&&!f&&d||!g&&e)return!0;f=a.extent;var h=a.viewState;g=h.projection;var l=h.resolution,m=a.pixelRatio;d=b.g;var n=b.f;e=b.get(ik);void 0===e&&(e=ck);f=Fa(f,n*l);n=h.projection.G();c.D&&h.projection.g&&!La(n,a.extent)&&(a=Math.max(cb(f)/2,cb(n)),f[0]=n[0]-a,f[2]=n[2]+a);if(!this.i&&this.o==l&&this.N==d&&this.v==e&&La(this.l,f))return this.j=!1,!0;this.c=null;this.i=!1;var p=new Uj(.5*l/m,f, +l,m,c.$,this.f,b.f);c.ae(f,l,g);a=function(a){var c=a.ib();if(c)var d=c.call(a,l);else(c=b.ib())&&(d=c(a,l));if(d){if(d){c=!1;if(Array.isArray(d))for(var e=0,f=d.length;e>1),h=+dc(g[e],c),0>h?l=e+1:(m=e,n=!h);e=n?l:~l;0>e?(c=(c-g[-e-2])/(g[-e-1]-g[-e-2]),b+=(-e-2)*d,g=ya(a[b],a[b+d],c),h=ya(a[b+1],a[b+d+1],c)):(g=a[b+e*d],h=a[b+e*d+1])}return f? +(f[0]=g,f[1]=h,f):[g,h]}function Sk(a,b,c,d,e,f){if(c==b)return null;if(e>1,e=a.j?1:Me(b/a.j)};function el(a,b,c,d,e,f){cl.call(this,a,b,f);this.f=d;this.l=c;this.M=new Image;null!==d&&(this.M.crossOrigin=d);this.c=null;this.v=e}w(el,cl);k=el.prototype;k.ia=function(){1==this.state&&(fl(this),this.M=gl());this.g&&Pc(this.g);this.state=5;this.u();cl.prototype.ia.call(this)};k.Y=function(){return this.M};k.lb=function(){return this.l};k.hn=function(){this.state=3;fl(this);this.M=gl();this.u()};k.jn=function(){this.state=this.M.naturalWidth&&this.M.naturalHeight?2:4;fl(this);this.u()}; +k.load=function(){3==this.state&&(this.state=0,this.M=new Image,null!==this.f&&(this.M.crossOrigin=this.f));0==this.state&&(this.state=1,this.u(),this.c=[Lc(this.M,"error",this.hn,this),Lc(this.M,"load",this.jn,this)],this.v(this,this.l))};function fl(a){a.c.forEach(Gc);a.c=null}function gl(){var a=hg(1,1);a.fillStyle="rgba(0,0,0,0)";a.fillRect(0,0,1,1);return a.canvas};function hl(a){this.b=a};function il(a){this.b=a}w(il,hl);il.prototype.S=function(){return 35632};function jl(a){this.b=a}w(jl,hl);jl.prototype.S=function(){return 35633};var kl=new il("precision mediump float;varying vec2 a;varying vec2 b;varying float c;varying float d;uniform float m;uniform vec4 n;uniform vec4 o;uniform vec2 p;void main(void){vec2 windowCenter=vec2((a.x+1.0)/2.0*p.x*d,(a.y+1.0)/2.0*p.y*d);vec2 windowOffset=vec2((b.x+1.0)/2.0*p.x*d,(b.y+1.0)/2.0*p.y*d);float radius=length(windowCenter-windowOffset);float dist=length(windowCenter-gl_FragCoord.xy);if(dist>radius+c){if(o.a==0.0){gl_FragColor=n;}else{gl_FragColor=o;}gl_FragColor.a=gl_FragColor.a-(dist-(radius+c));}else if(n.a==0.0){gl_FragColor=o;if(diststrokeDist){gl_FragColor=o;}else if(dist>=strokeDist-antialias){float step=smoothstep(strokeDist-antialias,strokeDist,dist);gl_FragColor=mix(n,o,step);}} gl_FragColor.a=gl_FragColor.a*m;if(gl_FragColor.a<=0.0){discard;}}"), +ll=new jl("varying vec2 a;varying vec2 b;varying float c;varying float d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;uniform float k;uniform float l;void main(void){mat4 offsetMatrix=i*j;a=vec4(h*vec4(e,0.0,1.0)).xy;d=l;float lineWidth=k*l;c=lineWidth/2.0;if(lineWidth==0.0){lineWidth=2.0*l;}vec2 offset;float radius=g+3.0*l;//Until we get gl_VertexID in WebGL,we store an instruction.if(f==0.0){//Offsetting the edges of the triangle by lineWidth/2 is necessary,however//we should also leave some space for the antialiasing,thus we offset by lineWidth.offset=vec2(-1.0,1.0);}else if(f==1.0){offset=vec2(-1.0,-1.0);}else if(f==2.0){offset=vec2(1.0,-1.0);}else{offset=vec2(1.0,1.0);}gl_Position=h*vec4(e+offset*radius,0.0,1.0)+offsetMatrix*vec4(offset*lineWidth,0.0,0.0);b=vec4(h*vec4(e.x+g,e.y,0.0,1.0)).xy;if(distance(a,b)>20000.0){gl_Position=vec4(a,0.0,1.0);}}");function ml(a,b){this.g=a.getUniformLocation(b,"h");this.i=a.getUniformLocation(b,"i");this.c=a.getUniformLocation(b,"j");this.oa=a.getUniformLocation(b,"k");this.qa=a.getUniformLocation(b,"l");this.a=a.getUniformLocation(b,"m");this.C=a.getUniformLocation(b,"n");this.O=a.getUniformLocation(b,"o");this.T=a.getUniformLocation(b,"p");this.b=a.getAttribLocation(b,"e");this.j=a.getAttribLocation(b,"f");this.N=a.getAttribLocation(b,"g")};function nl(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function pl(a,b){a[0]=b[0];a[1]=b[1];a[4]=b[2];a[5]=b[3];a[12]=b[4];a[13]=b[5];return a};function ql(a,b){this.origin=eb(b);this.bb=We();this.Ea=We();this.La=We();this.V=nl();this.b=[];this.j=null;this.g=[];this.i=[];this.a=[];this.s=null;this.f=void 0}w(ql,Ai); +ql.prototype.Na=function(a,b,c,d,e,f,g,h,l,m,n){var p=a.b;if(this.f){var q=p.isEnabled(p.STENCIL_TEST);var r=p.getParameter(p.STENCIL_FUNC);var u=p.getParameter(p.STENCIL_VALUE_MASK);var v=p.getParameter(p.STENCIL_REF);var z=p.getParameter(p.STENCIL_WRITEMASK);var A=p.getParameter(p.STENCIL_FAIL);var E=p.getParameter(p.STENCIL_PASS_DEPTH_PASS);var S=p.getParameter(p.STENCIL_PASS_DEPTH_FAIL);p.enable(p.STENCIL_TEST);p.clear(p.STENCIL_BUFFER_BIT);p.stencilMask(255);p.stencilFunc(p.ALWAYS,1,255);p.stencilOp(p.KEEP, +p.KEEP,p.REPLACE);this.f.Na(a,b,c,d,e,f,g,h,l,m,n);p.stencilMask(0);p.stencilFunc(p.NOTEQUAL,1,255)}rl(a,34962,this.s);rl(a,34963,this.j);f=this.Bf(p,a,e,f);var Ia=Xe(this.bb);cf(Ia,2/(c*e[0]),2/(c*e[1]));bf(Ia,-d);df(Ia,-(b[0]-this.origin[0]),-(b[1]-this.origin[1]));b=Xe(this.La);cf(b,2/e[0],2/e[1]);e=Xe(this.Ea);0!==d&&bf(e,-d);p.uniformMatrix4fv(f.g,!1,pl(this.V,Ia));p.uniformMatrix4fv(f.i,!1,pl(this.V,b));p.uniformMatrix4fv(f.c,!1,pl(this.V,e));p.uniform1f(f.a,g);if(void 0===l)this.Od(p,a,h,!1); +else{m?a=this.Ee(p,a,h,l,n):(p.clear(p.COLOR_BUFFER_BIT|p.DEPTH_BUFFER_BIT),this.Od(p,a,h,!0),a=(a=l(null))?a:void 0);var ta=a}this.Cf(p,f);this.f&&(q||p.disable(p.STENCIL_TEST),p.clear(p.STENCIL_BUFFER_BIT),p.stencilFunc(r,v,u),p.stencilMask(z),p.stencilOp(A,S,E));return ta};function sl(a,b,c,d){a.drawElements(4,d-c,b.f?5125:5123,c*(b.f?4:2))};var tl=[0,0,0,1],ul=[],vl=[0,0,0,1];function wl(a,b,c,d,e,f){a=(c-a)*(f-b)-(e-a)*(d-b);return a<=xl&&a>=-xl?void 0:0f;f+=d)this.a[b++]=a[f],this.a[b++]=a[f+1],this.a[b++]=0,this.a[b++]=this.N,this.a[b++]=a[f],this.a[b++]=a[f+1],this.a[b++]=1,this.a[b++]=this.N,this.a[b++]=a[f],this.a[b++]=a[f+1],this.a[b++]=2,this.a[b++]=this.N,this.a[b++]=a[f],this.a[b++]= +a[f+1],this.a[b++]=3,this.a[b++]=this.N,this.b[c++]=e,this.b[c++]=e+1,this.b[c++]=e+2,this.b[c++]=e+2,this.b[c++]=e+3,this.b[c++]=e,e+=4}else this.c.u&&(this.l.pop(),this.l.length&&(d=this.l[this.l.length-1],this.c.fillColor=d[0],this.c.strokeColor=d[1],this.c.lineWidth=d[2],this.c.u=!1))};k.gb=function(){this.s=new yl(this.a);this.j=new yl(this.b);this.g.push(this.b.length);0===this.o.length&&0=h;){var l=this.g[g];var m=this.i[g];m=x(m).toString();c[m]&&(d!==f&&sl(a,b,d,f),f=l);g--;d=l}d!==f&&sl(a,b,d,f);d=f=h}}}; +k.Ee=function(a,b,c,d,e){var f,g;var h=this.g.length-2;var l=this.g[h+1];for(f=this.o.length-1;0<=f;--f){var m=this.l[f];a.uniform4fv(this.v.C,m[0]);Dl(this,a,m[1],m[2]);for(g=this.o[f];0<=h&&this.g[h]>=g;){m=this.g[h];var n=this.i[h];var p=x(n).toString();if(void 0===c[p]&&n.U()&&(void 0===e||hb(e,n.U().G()))&&(a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT),sl(a,b,m,l),l=d(n)))return l;h--;l=m}}};function Dl(a,b,c,d){b.uniform4fv(a.v.O,c);b.uniform1f(a.v.oa,d)} +k.Oa=function(a,b){if(b){var c=b.g;this.c.lineDash=c?c:ul;c=b.i;this.c.lineDashOffset=c?c:0;c=b.a;c instanceof CanvasGradient||c instanceof CanvasPattern?c=vl:c=vi(c).map(function(a,b){return 3!=b?a/255:a})||vl;b=b.c;b=void 0!==b?b:1}else c=[0,0,0,0],b=0;a=a?a.b:[0,0,0,0];a instanceof CanvasGradient||a instanceof CanvasPattern?a=tl:a=vi(a).map(function(a,b){return 3!=b?a/255:a})||tl;this.c.strokeColor&&jc(this.c.strokeColor,c)&&this.c.fillColor&&jc(this.c.fillColor,a)&&this.c.lineWidth===b||(this.c.u= +!0,this.c.fillColor=a,this.c.strokeColor=c,this.c.lineWidth=b,this.l.push([a,c,b]))};var El=new il("precision mediump float;varying vec2 a;varying float b;uniform float k;uniform sampler2D l;void main(void){vec4 texColor=texture2D(l,a);gl_FragColor.rgb=texColor.rgb;float alpha=texColor.a*b*k;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"),Fl=new jl("varying vec2 a;varying float b;attribute vec2 c;attribute vec2 d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;void main(void){mat4 offsetMatrix=i;if(g==1.0){offsetMatrix=i*j;}vec4 offsets=offsetMatrix*vec4(e,0.0,0.0);gl_Position=h*vec4(c,0.0,1.0)+offsets;a=d;b=f;}");function Gl(a,b){this.g=a.getUniformLocation(b,"h");this.i=a.getUniformLocation(b,"i");this.c=a.getUniformLocation(b,"j");this.a=a.getUniformLocation(b,"k");this.b=a.getAttribLocation(b,"c");this.B=a.getAttribLocation(b,"d");this.v=a.getAttribLocation(b,"e");this.o=a.getAttribLocation(b,"f");this.D=a.getAttribLocation(b,"g")};function Hl(a,b){this.j=a;this.b=b;this.a={};this.c={};this.g={};this.s=this.v=this.i=this.l=null;(this.f=ec(da,"OES_element_index_uint"))&&b.getExtension("OES_element_index_uint");y(this.j,"webglcontextlost",this.zp,this);y(this.j,"webglcontextrestored",this.Ap,this)}w(Hl,Oc); +function rl(a,b,c){var d=a.b,e=c.b,f=String(x(c));if(f in a.a)d.bindBuffer(b,a.a[f].buffer);else{var g=d.createBuffer();d.bindBuffer(b,g);var h;34962==b?h=new Float32Array(e):34963==b&&(h=a.f?new Uint32Array(e):new Uint16Array(e));d.bufferData(b,h,c.a);a.a[f]={tc:c,buffer:g}}}function Bl(a,b){var c=a.b;b=String(x(b));var d=a.a[b];c.isContextLost()||c.deleteBuffer(d.buffer);delete a.a[b]}k=Hl.prototype; +k.ia=function(){Nc(this.j);var a=this.b;if(!a.isContextLost()){for(var b in this.a)a.deleteBuffer(this.a[b].buffer);for(b in this.g)a.deleteProgram(this.g[b]);for(b in this.c)a.deleteShader(this.c[b]);a.deleteFramebuffer(this.i);a.deleteRenderbuffer(this.s);a.deleteTexture(this.v)}};k.yp=function(){return this.b}; +function Il(a){if(!a.i){var b=a.b,c=b.createFramebuffer();b.bindFramebuffer(b.FRAMEBUFFER,c);var d=Jl(b,1,1),e=b.createRenderbuffer();b.bindRenderbuffer(b.RENDERBUFFER,e);b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,1,1);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,d,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,e);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null);a.i=c; +a.v=d;a.s=e}return a.i}function Kl(a,b){var c=String(x(b));if(c in a.c)return a.c[c];var d=a.b,e=d.createShader(b.S());d.shaderSource(e,b.b);d.compileShader(e);return a.c[c]=e}function Cl(a,b,c){var d=x(b)+"/"+x(c);if(d in a.g)return a.g[d];var e=a.b,f=e.createProgram();e.attachShader(f,Kl(a,b));e.attachShader(f,Kl(a,c));e.linkProgram(f);return a.g[d]=f}k.zp=function(){lb(this.a);lb(this.c);lb(this.g);this.s=this.v=this.i=this.l=null};k.Ap=function(){}; +k.cd=function(a){if(a==this.l)return!1;this.b.useProgram(a);this.l=a;return!0};function Ll(a,b,c){var d=a.createTexture();a.bindTexture(a.TEXTURE_2D,d);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);void 0!==b&&a.texParameteri(3553,10242,b);void 0!==c&&a.texParameteri(3553,10243,c);return d}function Jl(a,b,c){var d=Ll(a,void 0,void 0);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,c,0,a.RGBA,a.UNSIGNED_BYTE,null);return d} +function Ml(a,b){var c=Ll(a,33071,33071);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b);return c};function Nl(a,b){ql.call(this,a,b);this.C=this.D=void 0;this.v=[];this.o=[];this.qa=this.oa=this.height=void 0;this.Wa=null;this.width=this.scale=this.rotation=this.rotateWithView=this.O=this.T=this.opacity=void 0}w(Nl,ql);k=Nl.prototype;k.Db=function(a){var b=this.s,c=this.j,d=this.ig(!0),e=a.b;return function(){if(!e.isContextLost()){var f;var g=0;for(f=d.length;g=m;){var n=this.g[h];var p=this.i[h];var q=x(p).toString();if(void 0===c[q]&&p.U()&&(void 0===e||hb(e,p.U().G()))&&(a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT),sl(a,b,n,g),g=d(p)))return g;g=n;h--}}}; +k.gb=function(){this.qa=this.oa=this.height=this.C=this.D=void 0;this.b=null;this.scale=this.rotation=this.rotateWithView=this.O=this.T=this.opacity=void 0;this.a=null;this.width=void 0};function Ql(a,b){Nl.call(this,a,b);this.l=[];this.c=[];this.B=[];this.N=[]}w(Ql,Nl);k=Ql.prototype;k.wc=function(a,b){this.g.push(this.b.length);this.i.push(b);b=a.da();Ol(this,b,b.length,a.pa())};k.yc=function(a,b){this.g.push(this.b.length);this.i.push(b);b=a.da();Ol(this,b,b.length,a.pa())}; +k.gb=function(a){var b=a.b;this.v.push(this.b.length);this.o.push(this.b.length);this.s=new yl(this.a);this.j=new yl(this.b);var c={};Pl(this.B,this.l,c,b);Pl(this.N,this.c,c,b);this.c=this.l=null;Nl.prototype.gb.call(this,a)}; +k.Zb=function(a){var b=a.Vc(),c=a.Y(1),d=a.He(),e=a.Eg(),f=a.i,g=a.bd(),h=a.s,l=a.f,m=a.oc();a=a.a;if(0===this.l.length)this.l.push(c);else{var n=this.l[this.l.length-1];x(n)!=x(c)&&(this.v.push(this.b.length),this.l.push(c))}0===this.c.length?this.c.push(e):(n=this.c[this.c.length-1],x(n)!=x(e)&&(this.o.push(this.b.length),this.c.push(e)));this.D=b[0];this.C=b[1];this.height=m[1];this.oa=d[1];this.qa=d[0];this.opacity=f;this.T=g[0];this.O=g[1];this.rotation=l;this.rotateWithView=h;this.scale=a;this.width= +m[0]};k.ig=function(a){return a?this.B.concat(this.N):this.B};k.ag=function(){return this.N};function Rl(a,b,c){var d=b-c;return a[0]===a[d]&&a[1]===a[d+1]&&3<(b-0)/c?!!mf(a,0,b,c):!1};var Sl=new il("precision mediump float;varying float a;varying vec2 aVertex;varying float c;uniform float m;uniform vec4 n;uniform vec2 o;uniform float p;void main(void){if(a>0.0){vec2 windowCoords=vec2((aVertex.x+1.0)/2.0*o.x*p,(aVertex.y+1.0)/2.0*o.y*p);if(length(windowCoords-gl_FragCoord.xy)>c*p){discard;}} gl_FragColor=n;float alpha=n.a*m;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"),Tl=new jl("varying float a;varying vec2 aVertex;varying float c;attribute vec2 d;attribute vec2 e;attribute vec2 f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;uniform float k;uniform float l;bool nearlyEquals(in float value,in float ref){float epsilon=0.000000000001;return value>=ref-epsilon&&value<=ref+epsilon;}void alongNormal(out vec2 offset,in vec2 nextP,in float turnDir,in float direction){vec2 dirVect=nextP-e;vec2 normal=normalize(vec2(-turnDir*dirVect.y,turnDir*dirVect.x));offset=k/2.0*normal*direction;}void miterUp(out vec2 offset,out float round,in bool isRound,in float direction){float halfWidth=k/2.0;vec2 tangent=normalize(normalize(f-e)+normalize(e-d));vec2 normal=vec2(-tangent.y,tangent.x);vec2 dirVect=f-e;vec2 tmpNormal=normalize(vec2(-dirVect.y,dirVect.x));float miterLength=abs(halfWidth/dot(normal,tmpNormal));offset=normal*direction*miterLength;round=0.0;if(isRound){round=1.0;}else if(miterLength>l+k){offset=halfWidth*tmpNormal*direction;}} bool miterDown(out vec2 offset,in vec4 projPos,in mat4 offsetMatrix,in float direction){bool degenerate=false;vec2 tangent=normalize(normalize(f-e)+normalize(e-d));vec2 normal=vec2(-tangent.y,tangent.x);vec2 dirVect=d-e;vec2 tmpNormal=normalize(vec2(-dirVect.y,dirVect.x));vec2 longOffset,shortOffset,longVertex;vec4 shortProjVertex;float halfWidth=k/2.0;if(length(f-e)>length(d-e)){longOffset=tmpNormal*direction*halfWidth;shortOffset=normalize(vec2(dirVect.y,-dirVect.x))*direction*halfWidth;longVertex=f;shortProjVertex=h*vec4(d,0.0,1.0);}else{shortOffset=tmpNormal*direction*halfWidth;longOffset=normalize(vec2(dirVect.y,-dirVect.x))*direction*halfWidth;longVertex=d;shortProjVertex=h*vec4(f,0.0,1.0);}vec4 p1=h*vec4(longVertex,0.0,1.0)+offsetMatrix*vec4(longOffset,0.0,0.0);vec4 p2=projPos+offsetMatrix*vec4(longOffset,0.0,0.0);vec4 p3=shortProjVertex+offsetMatrix*vec4(-shortOffset,0.0,0.0);vec4 p4=shortProjVertex+offsetMatrix*vec4(shortOffset,0.0,0.0);float denom=(p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y);float firstU=((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x))/denom;float secondU=((p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x))/denom;float epsilon=0.000000000001;if(firstU>epsilon&&firstU<1.0-epsilon&&secondU>epsilon&&secondU<1.0-epsilon){shortProjVertex.x=p1.x+firstU*(p2.x-p1.x);shortProjVertex.y=p1.y+firstU*(p2.y-p1.y);offset=shortProjVertex.xy;degenerate=true;}else{float miterLength=abs(halfWidth/dot(normal,tmpNormal));offset=normal*direction*miterLength;}return degenerate;}void squareCap(out vec2 offset,out float round,in bool isRound,in vec2 nextP,in float turnDir,in float direction){round=0.0;vec2 dirVect=e-nextP;vec2 firstNormal=normalize(dirVect);vec2 secondNormal=vec2(turnDir*firstNormal.y*direction,-turnDir*firstNormal.x*direction);vec2 hypotenuse=normalize(firstNormal-secondNormal);vec2 normal=vec2(turnDir*hypotenuse.y*direction,-turnDir*hypotenuse.x*direction);float length=sqrt(c*c*2.0);offset=normal*length;if(isRound){round=1.0;}} void main(void){bool degenerate=false;float direction=float(sign(g));mat4 offsetMatrix=i*j;vec2 offset;vec4 projPos=h*vec4(e,0.0,1.0);bool round=nearlyEquals(mod(g,2.0),0.0);a=0.0;c=k/2.0;aVertex=projPos.xy;if(nearlyEquals(mod(g,3.0),0.0)||nearlyEquals(mod(g,17.0),0.0)){alongNormal(offset,f,1.0,direction);}else if(nearlyEquals(mod(g,5.0),0.0)||nearlyEquals(mod(g,13.0),0.0)){alongNormal(offset,d,-1.0,direction);}else if(nearlyEquals(mod(g,23.0),0.0)){miterUp(offset,a,round,direction);}else if(nearlyEquals(mod(g,19.0),0.0)){degenerate=miterDown(offset,projPos,offsetMatrix,direction);}else if(nearlyEquals(mod(g,7.0),0.0)){squareCap(offset,a,round,f,1.0,direction);}else if(nearlyEquals(mod(g,11.0),0.0)){squareCap(offset,a,round,d,-1.0,direction);}if(!degenerate){vec4 offsets=offsetMatrix*vec4(offset,0.0,0.0);gl_Position=projPos+offsets;}else{gl_Position=vec4(offset,0.0,1.0);}}");function Ul(a,b){this.g=a.getUniformLocation(b,"h");this.i=a.getUniformLocation(b,"i");this.c=a.getUniformLocation(b,"j");this.oa=a.getUniformLocation(b,"k");this.O=a.getUniformLocation(b,"l");this.a=a.getUniformLocation(b,"m");this.C=a.getUniformLocation(b,"n");this.T=a.getUniformLocation(b,"o");this.qa=a.getUniformLocation(b,"p");this.l=a.getAttribLocation(b,"d");this.b=a.getAttribLocation(b,"e");this.s=a.getAttribLocation(b,"f");this.f=a.getAttribLocation(b,"g")};function Vl(a,b){ql.call(this,a,b);this.v=null;this.o=[];this.l=[];this.c={strokeColor:null,lineCap:void 0,lineDash:null,lineDashOffset:void 0,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0,u:!1}}w(Vl,ql); +function Wl(a,b,c,d){var e,f=a.a.length,g=a.b.length,h="bevel"===a.c.lineJoin?0:"miter"===a.c.lineJoin?1:2,l="butt"===a.c.lineCap?0:"square"===a.c.lineCap?1:2,m=Rl(b,c,d),n=g,p=1;for(e=0;ec&&(this.g.push(c),this.i.push(b),this.c.u&&(this.l.push(c),this.c.u=!1))}; +function gm(a,b,c,d){Rl(b,b.length,d)||(b.push(b[0]),b.push(b[1]));Wl(a,b,b.length,d);if(c.length){var e;b=0;for(e=c.length;b=n;){var p=this.g[m]; +var q=this.i[m];q=x(q).toString();c[q]&&(g!==l&&(sl(a,b,g,l),a.clear(a.DEPTH_BUFFER_BIT)),l=p);m--;g=p}g!==l&&(sl(a,b,g,l),a.clear(a.DEPTH_BUFFER_BIT));g=l=n}}d||(a.disable(a.DEPTH_TEST),a.clear(a.DEPTH_BUFFER_BIT),a.depthMask(f),a.depthFunc(e))}; +k.Ee=function(a,b,c,d,e){var f,g;var h=this.g.length-2;var l=this.g[h+1];for(f=this.l.length-1;0<=f;--f){var m=this.o[f];im(this,a,m[0],m[1],m[2]);for(g=this.l[f];0<=h&&this.g[h]>=g;){m=this.g[h];var n=this.i[h];var p=x(n).toString();if(void 0===c[p]&&n.U()&&(void 0===e||hb(e,n.U().G()))&&(a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT),sl(a,b,m,l),l=d(n)))return l;h--;l=m}}};function im(a,b,c,d,e){b.uniform4fv(a.v.C,c);b.uniform1f(a.v.oa,d);b.uniform1f(a.v.O,e)} +k.Oa=function(a,b){a=b.f;this.c.lineCap=void 0!==a?a:"round";a=b.g;this.c.lineDash=a?a:ul;a=b.i;this.c.lineDashOffset=a?a:0;a=b.j;this.c.lineJoin=void 0!==a?a:"round";a=b.a;a instanceof CanvasGradient||a instanceof CanvasPattern?a=vl:a=vi(a).map(function(a,b){return 3!=b?a/255:a})||vl;var c=b.c;c=void 0!==c?c:1;b=b.l;b=void 0!==b?b:10;this.c.strokeColor&&jc(this.c.strokeColor,a)&&this.c.lineWidth===c&&this.c.miterLimit===b||(this.c.u=!0,this.c.strokeColor=a,this.c.lineWidth=c,this.c.miterLimit=b, +this.o.push([a,c,b]))};var Zl=3,$l=5,Yl=7,am=11,bm=13,cm=17,dm=19,em=23;var jm=new il("precision mediump float;uniform vec4 e;uniform float f;void main(void){gl_FragColor=e;float alpha=e.a*f;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"),km=new jl("attribute vec2 a;uniform mat4 b;uniform mat4 c;uniform mat4 d;void main(void){gl_Position=b*vec4(a,0.0,1.0);}");function lm(a,b){this.g=a.getUniformLocation(b,"b");this.i=a.getUniformLocation(b,"c");this.c=a.getUniformLocation(b,"d");this.C=a.getUniformLocation(b,"e");this.a=a.getUniformLocation(b,"f");this.b=a.getAttribLocation(b,"a")};function mm(){this.b=this.a=this.g=void 0;this.c=0}function nm(a){var b=a.b;if(b){var c=b.next,d=b.Eb;c&&(c.Eb=d);d&&(d.next=c);a.b=c||d;a.g===a.a?(a.b=void 0,a.g=void 0,a.a=void 0):a.g===b?a.g=a.b:a.a===b&&(a.a=d?a.b.Eb:a.b);a.c--}}function om(a){a.b=a.g;if(a.b)return a.b.data}function pm(a){if(a.b&&a.b.next)return a.b=a.b.next,a.b.data}function qm(a){if(a.b&&a.b.next)return a.b.next.data}function rm(a){if(a.b&&a.b.Eb)return a.b=a.b.Eb,a.b.data}function sm(a){if(a.b&&a.b.Eb)return a.b.Eb.data} +function tm(a){if(a.b)return a.b.data}mm.prototype.concat=function(a){if(a.b){if(this.b){var b=this.b.next;this.b.next=a.g;a.g.Eb=this.b;b.Eb=a.a;a.a.next=b;this.c+=a.c}else this.b=a.b,this.g=a.g,this.a=a.a,this.c=a.c;a.b=void 0;a.g=void 0;a.a=void 0;a.c=0}};function um(){this.a=rj.Jc(void 0);this.b={}}k=um.prototype;k.Ca=function(a,b){a={fa:a[0],ea:a[1],la:a[2],ka:a[3],value:b};this.a.Ca(a);this.b[x(b)]=a};k.load=function(a,b){for(var c=Array(b.length),d=0,e=b.length;d=g;p-=c)q=Im(a,b[p],b[p+1],h++),m.push(Jm(n,q,d)),l.push([Math.min(n.x,q.x),Math.min(n.y,q.y),Math.max(n.x,q.x),Math.max(n.y,q.y)]),n=q;m.push(Jm(q,f,d));l.push([Math.min(n.x,q.x), +Math.min(n.y,q.y),Math.max(n.x,q.x),Math.max(n.y,q.y)]);e.load(l,m)}function Dm(a){var b=om(a),c=b,d=[c.Z.x,c.Z.y];do c=pm(a),c.Z.x>d[0]&&(d=[c.Z.x,c.Z.y]);while(c!==b);return d}function Em(a,b,c){var d=om(a),e=d,f=pm(a),g=!1;do{var h=c?wl(f.X.x,f.X.y,e.X.x,e.X.y,e.Z.x,e.Z.y):wl(e.Z.x,e.Z.y,e.X.x,e.X.y,f.X.x,f.X.y);void 0===h?(Km(e,f,a,b),g=!0,f===d&&(d=qm(a)),f=e,rm(a)):e.X.Kb!==h&&(e.X.Kb=h,g=!0);e=f;f=pm(a)}while(e!==d);return g} +function Gm(a,b,c,d,e){for(var f=om(a);f.X.x!==b;)f=pm(a);b=f.X;d={x:d,y:b.y,qb:-1};var g=Infinity,h;var l=Fm({Z:b,X:d},e,!0);var m=0;for(h=l.length;mxl&&d<1-xl&&c>xl&&c<1-xl||e&&0<=d&&1>=d&&0<=c&&1>=c))return[a.x+d*(b.x-a.x),a.y+d*(b.y-a.y)]} +function Qm(a,b,c,d,e){if(void 0===b.Kb||void 0===d.Kb)return!1;var f=(c.x-d.x)*(b.y-d.y)>(c.y-d.y)*(b.x-d.x);e=(e.x-d.x)*(b.y-d.y)<(e.y-d.y)*(b.x-d.x);a=(a.x-b.x)*(d.y-b.y)>(a.y-b.y)*(d.x-b.x);c=(c.x-b.x)*(d.y-b.y)<(c.y-b.y)*(d.x-b.x);b=b.Kb?c||a:c&&a;return(d.Kb?e||f:e&&f)&&b}k=Am.prototype; +k.xc=function(a,b){var c=a.td(),d=a.pa(),e=this.b.length,f=this.f.b.length;a=a.da();var g,h,l;var m=h=0;for(g=c.length;me&&(this.g.push(e),this.i.push(b),this.l.u&&(this.c.push(e),this.l.u=!1));this.f.b.length>f&&hm(this.f, +b,f)};k.zc=function(a,b){var c=a.pb(),d=a.pa();if(0=n;){var p=this.g[m];var q=this.i[m];q=x(q).toString(); +c[q]&&(g!==l&&(sl(a,b,g,l),a.clear(a.DEPTH_BUFFER_BIT)),l=p);m--;g=p}g!==l&&(sl(a,b,g,l),a.clear(a.DEPTH_BUFFER_BIT));g=l=n}}d||(a.disable(a.DEPTH_TEST),a.clear(a.DEPTH_BUFFER_BIT),a.depthMask(f),a.depthFunc(e))}; +k.Ee=function(a,b,c,d,e){var f,g;var h=this.g.length-2;var l=this.g[h+1];for(f=this.c.length-1;0<=f;--f){var m=this.o[f];a.uniform4fv(this.v.C,m);for(g=this.c[f];0<=h&&this.g[h]>=g;){m=this.g[h];var n=this.i[h];var p=x(n).toString();if(void 0===c[p]&&n.U()&&(void 0===e||hb(e,n.U().G()))&&(a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT),sl(a,b,m,l),l=d(n)))return l;h--;l=m}}}; +k.Oa=function(a,b){a=a?a.b:[0,0,0,0];a instanceof CanvasGradient||a instanceof CanvasPattern?a=tl:a=vi(a).map(function(a,b){return 3!=b?a/255:a})||tl;this.l.fillColor&&jc(a,this.l.fillColor)||(this.l.fillColor=a,this.l.u=!0,this.o.push(a));b?this.f.Oa(null,b):this.f.Oa(null,new Ak({color:[0,0,0,0],lineWidth:0}))};function Rm(a,b){this.b=b;this.a=[{x:0,y:0,width:a,height:a}];this.c={};this.g=hg(a,a);this.i=this.g.canvas}Rm.prototype.get=function(a){return this.c[a]||null}; +Rm.prototype.add=function(a,b,c,d,e){var f;var g=0;for(f=this.a.length;g=b+this.b&&h.height>=c+this.b)return f={offsetX:h.x+this.b,offsetY:h.y+this.b,image:this.i},this.c[a]=f,d.call(e,this.g,h.x+this.b,h.y+this.b),a=g,b+=this.b,d=c+this.b,h.width-b>h.height-d?(c={x:h.x+b,y:h.y,width:h.width-b,height:h.height},b={x:h.x,y:h.y+d,width:b,height:h.height-d},Sm(this,a,c,b)):(c={x:h.x+b,y:h.y,width:h.width-b,height:d},b={x:h.x,y:h.y+d,width:h.width,height:h.height-d}, +Sm(this,a,c,b)),f}return null};function Sm(a,b,c,d){b=[b,1];0this.g||c+this.b>this.g)return null;d=Wm(this,!1,a,b,c,d,f);if(!d)return null;a=Wm(this,!0,a,b,c,void 0!==e?e:ea,f);return Vm(d,a)};function Wm(a,b,c,d,e,f,g){var h=b?a.i:a.f,l;var m=0;for(l=h.length;ma[0]||a[0]>e[0]||0>a[1]||a[1]>e[1])&&(this.i|| +(this.i=hg(1,1)),this.i.clearRect(0,0,1,1),this.i.drawImage(this.M.Y(),a[0],a[1],1,1,0,0,1,1),e=this.i.getImageData(0,0,1,1).data,0d?b[0]=d-c:0>e&&(b[0]=Math.abs(e)+c),0>f?b[1]=f-c:0>g&&(b[1]=Math.abs(g)+c),0=== +b[0]&&0===b[1])||(c=a.aa().xa(),c=a.Ia(c),b=[c[0]+b[0],c[1]+b[1]],a.aa().animate({center:a.Ra(b),duration:this.autoPanAnimation.duration,easing:this.autoPanAnimation.easing}))}}};k.rm=function(){Hn(this)};k.Hj=function(a){this.set(Cn,a)};k.setMap=function(a){this.set(Dn,a)};k.Mj=function(a){this.set(En,a)};k.We=function(a){this.set(Fn,a)};function In(a,b){var c=a.getBoundingClientRect();a=c.left+window.pageXOffset;c=c.top+window.pageYOffset;return[a,c,a+b[0],c+b[1]]}k.Pj=function(a){this.set(Gn,a)}; +function Jn(a,b){a.a.visible!==b&&(a.element.style.display=b?"":"none",a.a.visible=b)} +function Hn(a){var b=a.Ve(),c=a.pi();if(b&&b.c&&c){c=b.Ia(c);var d=b.Cb();b=a.element.style;var e=a.Xh(),f=a.Yh();Jn(a,!0);var g=e[0];e=e[1];if("bottom-right"==f||"center-right"==f||"top-right"==f)""!==a.a.Se&&(a.a.Se=b.left=""),g=Math.round(d[0]-c[0]-g)+"px",a.a.xf!=g&&(a.a.xf=b.right=g);else{""!==a.a.xf&&(a.a.xf=b.right="");if("bottom-center"==f||"center-center"==f||"top-center"==f)g-=a.element.offsetWidth/2;g=Math.round(c[0]+g)+"px";a.a.Se!=g&&(a.a.Se=b.left=g)}if("bottom-left"==f||"bottom-center"== +f||"bottom-right"==f)""!==a.a.Ef&&(a.a.Ef=b.top=""),c=Math.round(d[1]-c[1]-e)+"px",a.a.ze!=c&&(a.a.ze=b.bottom=c);else{""!==a.a.ze&&(a.a.ze=b.bottom="");if("center-left"==f||"center-center"==f||"center-right"==f)e-=a.element.offsetHeight/2;c=Math.round(c[1]+e)+"px";a.a.Ef!=c&&(a.a.Ef=b.top=c)}}else Jn(a,!1)}var Cn="element",Dn="map",En="offset",Fn="position",Gn="positioning";function Kn(a,b,c,d,e,f){cl.call(this,a,b,f);this.c=0;this.l=null;this.v=d;this.a=null;this.f={};this.C=e;this.N=c}w(Kn,cl);k=Kn.prototype;k.ia=function(){this.a=null;this.f={};this.state=5;this.u();cl.prototype.ia.call(this)};k.G=function(){return this.l||Ln};k.qn=function(){return this.v};k.pn=function(){return this.a};k.lb=function(){return this.N};k.rn=function(){return this.o};function ok(a,b,c){return a.f[x(b)+","+c]} +k.load=function(){0==this.state&&(oj(this,1),this.C(this,this.N),this.D(null,NaN,null))};k.Cp=function(a,b,c){this.vg(b);this.Ij(a);this.ri(c)};k.Bp=function(){oj(this,3)};k.ri=function(a){this.l=a};k.Ij=function(a){this.a=a;oj(this,2)};k.vg=function(a){this.o=a};k.ug=function(a){this.D=a};var Ln=[0,0,4096,4096];function Mn(a){a=a?a:{};this.c=void 0!==a.className?a.className:"ol-full-screen";var b=void 0!==a.label?a.label:"\u2922";this.l="string"===typeof b?document.createTextNode(b):b;b=void 0!==a.labelActive?a.labelActive:"\u00d7";this.v="string"===typeof b?document.createTextNode(b):b;var c=a.tipLabel?a.tipLabel:"Toggle full-screen";b=document.createElement("button");b.className=this.c+"-"+Nn();b.setAttribute("type","button");b.title=c;b.appendChild(this.l);y(b,"click",this.C,this);c=document.createElement("div"); +c.className=this.c+" ol-unselectable ol-control "+(On()?"":"ol-unsupported");c.appendChild(b);vg.call(this,{element:c,target:a.target});this.D=void 0!==a.keys?a.keys:!1;this.j=a.source}w(Mn,vg); +Mn.prototype.C=function(a){a.preventDefault();On()&&(a=this.a)&&(Nn()?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():(a=this.j?"string"===typeof this.j?document.getElementById(this.j):this.j:a.Cc(),this.D?a.mozRequestFullScreenWithKeys?a.mozRequestFullScreenWithKeys():a.webkitRequestFullscreen?a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT): +Pn(a):Pn(a)))};Mn.prototype.o=function(){var a=this.element.firstElementChild,b=this.a;Nn()?(a.className=this.c+"-true",ig(this.v,this.l)):(a.className=this.c+"-false",ig(this.l,this.v));b&&b.Oc()};Mn.prototype.setMap=function(a){vg.prototype.setMap.call(this,a);a&&this.s.push(y(document,Qn(),this.o,this))}; +function On(){var a=document.body;return!!(a.webkitRequestFullscreen||a.mozRequestFullScreen&&document.mozFullScreenEnabled||a.msRequestFullscreen&&document.msFullscreenEnabled||a.requestFullscreen&&document.fullscreenEnabled)}function Nn(){return!!(document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement||document.fullscreenElement)} +function Pn(a){a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen()}var Qn=function(){var a;return function(){if(!a){var b=document.body;b.webkitRequestFullscreen?a="webkitfullscreenchange":b.mozRequestFullScreen?a="mozfullscreenchange":b.msRequestFullscreen?a="MSFullscreenChange":b.requestFullscreen&&(a="fullscreenchange")}return a}}();function Rn(a){a=a?a:{};var b=document.createElement("DIV");b.className=void 0!==a.className?a.className:"ol-mouse-position";vg.call(this,{element:b,render:a.render?a.render:Sn,target:a.target});y(this,Xc(Tn),this.En,this);a.coordinateFormat&&this.Gj(a.coordinateFormat);a.projection&&this.ti(a.projection);this.o=void 0!==a.undefinedHTML?a.undefinedHTML:"";this.v=b.innerHTML;this.l=this.j=this.c=null}w(Rn,vg); +function Sn(a){a=a.frameState;a?this.c!=a.viewState.projection&&(this.c=a.viewState.projection,this.j=null):this.c=null;Un(this,this.l)}k=Rn.prototype;k.En=function(){this.j=null};k.Qh=function(){return this.get(Vn)};k.si=function(){return this.get(Tn)};k.mm=function(a){this.l=this.a.ud(a);Un(this,this.l)};k.nm=function(){Un(this,null);this.l=null};k.setMap=function(a){vg.prototype.setMap.call(this,a);a&&(a=a.a,this.s.push(y(a,"mousemove",this.mm,this),y(a,"mouseout",this.nm,this)))}; +k.Gj=function(a){this.set(Vn,a)};k.ti=function(a){this.set(Tn,Ob(a))};function Un(a,b){var c=a.o;if(b&&a.c){if(!a.j){var d=a.si();a.j=d?Pb(a.c,d):$b}if(b=a.a.Ra(b))a.j(b,b),c=(c=a.Qh())?c(b):b.toString()}a.v&&c==a.v||(a.element.innerHTML=c,a.v=c)}var Tn="projection",Vn="coordinateFormat";function Wn(a){function b(a){a=h.Sd(a);l.a.aa().ub(a);window.removeEventListener("mousemove",c);window.removeEventListener("mouseup",b)}function c(a){a=h.Sd({clientX:a.clientX-n.offsetWidth/2,clientY:a.clientY+n.offsetHeight/2});m.We(a)}a=a?a:{};this.j=void 0!==a.collapsed?a.collapsed:!0;this.l=void 0!==a.collapsible?a.collapsible:!0;this.l||(this.j=!1);var d=void 0!==a.className?a.className:"ol-overviewmap",e=void 0!==a.tipLabel?a.tipLabel:"Overview map",f=void 0!==a.collapseLabel?a.collapseLabel: +"\u00ab";"string"===typeof f?(this.o=document.createElement("span"),this.o.textContent=f):this.o=f;f=void 0!==a.label?a.label:"\u00bb";"string"===typeof f?(this.D=document.createElement("span"),this.D.textContent=f):this.D=f;var g=this.l&&!this.j?this.o:this.D;f=document.createElement("button");f.setAttribute("type","button");f.title=e;f.appendChild(g);y(f,"click",this.Hn,this);this.C=document.createElement("DIV");this.C.className="ol-overviewmap-map";var h=this.c=new G({controls:new B,interactions:new B, +view:a.view});a.layers&&a.layers.forEach(function(a){h.xe(a)},this);e=document.createElement("DIV");e.className="ol-overviewmap-box";e.style.boxSizing="border-box";this.v=new Bn({position:[0,0],positioning:"bottom-left",element:e});this.c.ye(this.v);e=document.createElement("div");e.className=d+" ol-unselectable ol-control"+(this.j&&this.l?" ol-collapsed":"")+(this.l?"":" ol-uncollapsible");e.appendChild(this.C);e.appendChild(f);vg.call(this,{element:e,render:a.render?a.render:Xn,target:a.target}); +var l=this,m=this.v,n=this.v.Rd();n.addEventListener("mousedown",function(){window.addEventListener("mousemove",c);window.addEventListener("mouseup",b)})}w(Wn,vg);k=Wn.prototype;k.setMap=function(a){var b=this.a;a!==b&&(b&&((b=b.aa())&&Mc(b,Xc("rotation"),this.Qe,this),this.c.Ad(null)),vg.prototype.setMap.call(this,a),a&&(this.c.Ad(this.C),this.s.push(y(a,"propertychange",this.lm,this)),0===this.c.Xe().kc()&&this.c.zf(a.hc()),a=a.aa()))&&(y(a,Xc("rotation"),this.Qe,this),ag(a)&&(this.c.Oc(),Yn(this)))}; +k.lm=function(a){"view"===a.key&&((a=a.oldValue)&&Mc(a,Xc("rotation"),this.Qe,this),a=this.a.aa(),y(a,Xc("rotation"),this.Qe,this))};k.Qe=function(){this.c.aa().ce(this.a.aa().Sa())};function Xn(){var a=this.a,b=this.c;if(a.c&&b.c){var c=a.Cb();a=a.aa().qd(c);var d=b.Cb();c=b.aa().qd(d);var e=b.Ia($a(a)),f=b.Ia(Ya(a));b=Math.abs(e[0]-f[0]);e=Math.abs(e[1]-f[1]);f=d[0];d=d[1];b<.1*f||e<.1*d||b>.75*f||e>.75*d?Yn(this):La(c,a)||(a=this.c,c=this.a.aa(),a.aa().ub(c.xa()))}Zn(this)} +function Yn(a){var b=a.a;a=a.c;var c=b.Cb();b=b.aa().qd(c);a=a.aa();ib(b,1/(.1*Math.pow(2,Math.log(7.5)/Math.LN2/2)));a.Uf(b)}function Zn(a){var b=a.a,c=a.c;if(b.c&&c.c){var d=b.Cb(),e=b.aa(),f=c.aa();c=e.Sa();b=a.v;var g=a.v.Rd(),h=e.qd(d);d=f.Pa();e=Wa(h);f=Za(h);if(a=a.a.aa().xa()){var l=[e[0]-a[0],e[1]-a[1]];Fe(l,c);ze(l,a)}b.We(l);g&&(g.style.width=Math.abs((e[0]-f[0])/d)+"px",g.style.height=Math.abs((f[1]-e[1])/d)+"px")}}k.Hn=function(a){a.preventDefault();$n(this)}; +function $n(a){a.element.classList.toggle("ol-collapsed");a.j?ig(a.o,a.D):ig(a.D,a.o);a.j=!a.j;var b=a.c;a.j||b.c||(b.Oc(),Yn(a),Lc(b,"postrender",function(){Zn(this)},a))}k.Gn=function(){return this.l};k.Jn=function(a){this.l!==a&&(this.l=a,this.element.classList.toggle("ol-uncollapsible"),!a&&this.j&&$n(this))};k.In=function(a){this.l&&this.j!==a&&$n(this)};k.Fn=function(){return this.j};k.Hl=function(){return this.c};function ao(a){a=a?a:{};var b=void 0!==a.className?a.className:"ol-scale-line";this.l=document.createElement("DIV");this.l.className=b+"-inner";this.c=document.createElement("DIV");this.c.className=b+" ol-unselectable";this.c.appendChild(this.l);this.o=null;this.v=void 0!==a.minWidth?a.minWidth:64;this.j=!1;this.B=void 0;this.D="";vg.call(this,{element:this.c,render:a.render?a.render:bo,target:a.target});y(this,Xc(co),this.V,this);this.O(a.units||"metric")}w(ao,vg);var eo=[1,2,5];ao.prototype.C=function(){return this.get(co)}; +function bo(a){(a=a.frameState)?this.o=a.viewState:this.o=null;fo(this)}ao.prototype.V=function(){fo(this)};ao.prototype.O=function(a){this.set(co,a)}; +function fo(a){var b=a.o;if(b){var c=b.center,d=b.projection,e=a.C();b=Nb(d,b.resolution,c,"degrees"==e?"degrees":"m");"degrees"!=e&&(b*=d.Bc());var f=a.v*b;c="";"degrees"==e?(c=ub.degrees,"degrees"==d.a?f*=c:b/=c,ff?(c="in",b/=.0254):1609.344>f?(c="ft",b/=.3048):(c="mi",b/=1609.344):"nautical"==e?(b/=1852,c="nm"):"metric"==e?.001>f?(c="\u03bcm",b*=1E6):1>f?(c="mm",b*=1E3):1E3>f?c="m":(c="km",b/=1E3):"us"==e?.9144>f? +(c="in",b*=39.37):1609.344>f?(c="ft",b/=.30480061):(c="mi",b/=1609.3472):oa(!1,33);for(e=3*Math.floor(Math.log(a.v*b)/Math.log(10));;){f=eo[(e%3+3)%3]*Math.pow(10,Math.floor(e/3));d=Math.round(f/b);if(isNaN(d)){a.c.style.display="none";a.j=!1;return}if(d>=a.v)break;++e}b=f+" "+c;a.D!=b&&(a.l.innerHTML=b,a.D=b);a.B!=d&&(a.l.style.width=d+"px",a.B=d);a.j||(a.c.style.display="",a.j=!0)}else a.j&&(a.c.style.display="none",a.j=!1)}var co="units";function go(a){a=a?a:{};this.c=void 0;this.j=ho;this.D=this.v=0;this.O=null;this.$=!1;this.V=void 0!==a.duration?a.duration:200;var b=void 0!==a.className?a.className:"ol-zoomslider",c=document.createElement("button");c.setAttribute("type","button");c.className=b+"-thumb ol-unselectable";var d=document.createElement("div");d.className=b+" ol-unselectable ol-control";d.appendChild(c);this.l=new Xd(d);y(this.l,"pointerdown",this.$l,this);y(this.l,"pointermove",this.Yl,this);y(this.l,"pointerup",this.Zl, +this);y(d,"click",this.Xl,this);y(c,"click",Rc);vg.call(this,{element:d,render:a.render?a.render:io})}w(go,vg);go.prototype.ia=function(){Pc(this.l);vg.prototype.ia.call(this)};var ho=0;k=go.prototype;k.setMap=function(a){vg.prototype.setMap.call(this,a);a&&a.render()}; +function io(a){if(a.frameState){if(!this.$){var b=this.element,c=b.offsetWidth,d=b.offsetHeight,e=b.firstElementChild,f=getComputedStyle(e);b=e.offsetWidth+parseFloat(f.marginRight)+parseFloat(f.marginLeft);e=e.offsetHeight+parseFloat(f.marginTop)+parseFloat(f.marginBottom);this.O=[b,e];c>d?(this.j=1,this.D=c-b):(this.j=ho,this.v=d-e);this.$=!0}a=a.frameState.viewState.resolution;a!==this.c&&(this.c=a,jo(this,a))}} +k.Xl=function(a){var b=this.a.aa();a=ko(this,pa(1===this.j?(a.offsetX-this.O[0]/2)/this.D:(a.offsetY-this.O[1]/2)/this.v,0,1));b.animate({resolution:b.constrainResolution(a),duration:this.V,easing:Oe})};k.$l=function(a){this.o||a.b.target!==this.element.firstElementChild||(bg(this.a.aa(),1,1),this.C=a.clientX,this.B=a.clientY,this.o=!0)}; +k.Yl=function(a){if(this.o){var b=this.element.firstElementChild;this.c=ko(this,pa(1===this.j?(a.clientX-this.C+parseInt(b.style.left,10))/this.D:(a.clientY-this.B+parseInt(b.style.top,10))/this.v,0,1));this.a.aa().gd(this.c);jo(this,this.c);this.C=a.clientX;this.B=a.clientY}};k.Zl=function(){if(this.o){var a=this.a.aa();bg(a,1,-1);a.animate({resolution:a.constrainResolution(this.c),duration:this.V,easing:Oe});this.o=!1;this.B=this.C=void 0}}; +function jo(a,b){b=1-gg(a.a.aa())(b);var c=a.element.firstElementChild;1==a.j?c.style.left=a.D*b+"px":c.style.top=a.v*b+"px"}function ko(a,b){return fg(a.a.aa())(1-b)};function lo(a){a=a?a:{};this.extent=a.extent?a.extent:null;var b=void 0!==a.className?a.className:"ol-zoom-extent",c=void 0!==a.label?a.label:"E",d=void 0!==a.tipLabel?a.tipLabel:"Fit to extent",e=document.createElement("button");e.setAttribute("type","button");e.title=d;e.appendChild("string"===typeof c?document.createTextNode(c):c);y(e,"click",this.c,this);c=document.createElement("div");c.className=b+" ol-unselectable ol-control";c.appendChild(e);vg.call(this,{element:c,target:a.target})} +w(lo,vg);lo.prototype.c=function(a){a.preventDefault();a=this.a.aa();var b=this.extent?this.extent:a.v.G();a.Uf(b)};var mo=document.implementation.createDocument("","",null);function no(a,b){return mo.createElementNS(a,b)}function oo(a,b){return po(a,b,[]).join("")}function po(a,b,c){if(a.nodeType==Node.CDATA_SECTION_NODE||a.nodeType==Node.TEXT_NODE)b?c.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(a.nodeValue);else for(a=a.firstChild;a;a=a.nextSibling)po(a,b,c);return c}function qo(a){return a instanceof Document}function ro(a){return a instanceof Node} +function so(a){return(new DOMParser).parseFromString(a,"application/xml")}function to(a,b){return function(c,d){c=a.call(b,c,d);void 0!==c&&gc(d[d.length-1],c)}}function uo(a,b){return function(c,d){c=a.call(void 0!==b?b:this,c,d);void 0!==c&&d[d.length-1].push(c)}}function vo(a,b){return function(c,d){c=a.call(void 0!==b?b:this,c,d);void 0!==c&&(d[d.length-1]=c)}} +function wo(a){return function(b,c){var d=a.call(this,b,c);if(void 0!==d){c=c[c.length-1];b=b.localName;var e;b in c?e=c[b]:e=c[b]=[];e.push(d)}}}function L(a,b){return function(c,d){var e=a.call(this,c,d);void 0!==e&&(d[d.length-1][void 0!==b?b:c.localName]=e)}}function M(a,b){return function(c,d,e){a.call(void 0!==b?b:this,c,d,e);e[e.length-1].node.appendChild(c)}} +function xo(a){var b,c;return function(d,e,f){if(void 0===b){b={};var g={};g[d.localName]=a;b[d.namespaceURI]=g;c=yo(d.localName)}zo(b,c,e,f)}}function yo(a,b){return function(c,d,e){c=d[d.length-1].node;d=a;void 0===d&&(d=e);e=b;void 0===b&&(e=c.namespaceURI);return no(e,d)}}var Ao=yo();function Bo(a,b){for(var c=b.length,d=Array(c),e=0;eh.status){var a=b.S();if("json"==a||"text"==a)var e=h.responseText;else"xml"==a?(e=h.responseXML)||(e=so(h.responseText)):"arraybuffer"==a&&(e=h.response);e?c.call(this,b.Qa(e,{featureProjection:g}),b.sb(e),b.cg()):d.call(this)}else d.call(this)}.bind(this);h.onerror=function(){d.call(this)}.bind(this); +h.send()}}function Fo(a,b){return Eo(a,b,function(a){this.Qc(a)},ea)};function Go(){this.i=this.defaultDataProjection=null}function Ho(a,b,c){var d;c&&(d={dataProjection:c.dataProjection?c.dataProjection:a.sb(b),featureProjection:c.featureProjection});return Io(a,d)}function Io(a,b){return kb({dataProjection:a.defaultDataProjection,featureProjection:a.i},b)}Go.prototype.cg=function(){return null}; +function Jo(a,b,c){var d=c?Ob(c.featureProjection):null,e=c?Ob(c.dataProjection):null,f;d&&e&&!Xb(d,e)?a instanceof gf?f=(b?a.clone():a).mb(b?d:e,b?e:d):f=bc(a,e,d):f=a;if(b&&c&&void 0!==c.decimals){var g=Math.pow(10,c.decimals);f===a&&(f=f.clone());f.Rc(function(a){for(var b=0,c=a.length;ba||this.c.length<=a)return null;var b=new I(null);b.ba(this.ja,this.A.slice(0===a?0:this.c[a-1],this.c[a]));return b}; +k.wd=function(){var a=this.A,b=this.c,c=this.ja,d=[],e=0,f;var g=0;for(f=b.length;ga||b<=a)return null;b=new C(null);b.ba(this.ja,this.A.slice(a*this.a,(a+1)*this.a));return b};k.de=function(){var a=this.A,b=this.ja,c=this.a,d=[],e;var f=0;for(e=a.length;fa||this.c.length<=a)return null;if(0===a)var b=0;else b=this.c[a-1],b=b[b.length-1];a=this.c[a].slice();var c=a[a.length-1];if(0!==b){var d;var e=0;for(d=a.length;ea||0!==this.f&&ac;++c){var d=parseInt(b[c],10).toString(16);b[c]=1==d.length?"0"+d:d}ip(a,b.join(""))}function us(a,b,c){a={node:a};var d=b.S();if("GeometryCollection"==d){var e=b.vd();var f=vs}else"MultiPoint"==d?(e=b.de(),f=ws):"MultiLineString"==d?(e=b.wd(),f=xs):"MultiPolygon"==d?(e=b.Vd(),f=ys):oa(!1,39);Do(a,zs,f,e,c)}function As(a,b,c){Do({node:a},Bs,Cs,[b],c)} +function Ds(a,b,c){var d={node:a};b.c&&a.setAttribute("id",b.c);a=b.L();var e={address:1,description:1,name:1,open:1,phoneNumber:1,styleUrl:1,visibility:1};e[b.a]=1;var f=Object.keys(a||{}).sort().filter(function(a){return!e[a]});if(0>4;if(128>f)return d(a,g,b);f=e[c.ga++];g|=(f&127)<<3;if(128>f)return d(a,g,b);f=e[c.ga++];g|=(f&127)<<10;if(128>f)return d(a,g,b);f=e[c.ga++];g|=(f&127)<<17;if(128>f)return d(a,g,b);f=e[c.ga++];g|=(f&127)<<24;if(128>f)return d(a,g,b);f=e[c.ga++];if(128>f)return d(a,g|(f&1)<<31,b);throw Error("Expected varint not more than 10 bytes"); +}function d(a,b,c){return c?4294967296*b+(a>>>0):4294967296*(b>>>0)+(a>>>0)}var e={read:function(a,b,c,d,e){var f=8*e-d-1;var g=(1<>1,l=-7;e=c?e-1:0;var m=c?-1:1,v=a[b+e];e+=m;c=v&(1<<-l)-1;v>>=-l;for(l+=f;0>=-l;for(l+=d;0>1,m=23===e?Math.pow(2, +-24)-Math.pow(2,-77):0;n=d?0:n-1;var z=d?1:-1,A=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,d=h):(d=Math.floor(Math.log(b)/Math.LN2),1>b*(f=Math.pow(2,-d))&&(d--,f*=2),b=1<=d+l?b+m/f:b+m*Math.pow(2,1-l),2<=b*f&&(d++,f/=2),d+l>=h?(b=0,d=h):1<=d+l?(b=(b*f-1)*Math.pow(2,e),d+=l):(b=b*Math.pow(2,l-1)*Math.pow(2,e),d=0));for(;8<=e;a[c+n]=b&255,n+=z,b/=256,e-=8);d=d<>3,f=this.ga;this.type=d&7;a(e,b,this);this.ga===f&&this.Lq(d)}return b},Zp:function(){var a=e.read(this.tc,this.ga,!0,23,4);this.ga+=4;return a},Vp:function(){var a=e.read(this.tc,this.ga,!0,52,8);this.ga+=8;return a},Ua:function(a){var b=this.tc;var d=b[this.ga++];var e=d&127;if(128>d)return e;d=b[this.ga++];e|=(d&127)<<7;if(128>d)return e;d=b[this.ga++];e|=(d&127)<<14;if(128>d)return e;d=b[this.ga++];e|=(d&127)<<21;if(128>d)return e;d=b[this.ga]; +return c(e|(d&15)<<28,a,this)},lq:function(){return this.Ua(!0)},Ug:function(){var a=this.Ua();return 1===a%2?(a+1)/-2:a/2},Tp:function(){return!!this.Ua()},Vg:function(){for(var a=this.Ua()+this.ga,b=this.tc,c="",d=this.ga;da)break;if(1===p)128>e&&(n=e);else if(2===p){var q=b[d+1];128===(q&192)&&(n=(e&31)<<6|q&63,127>=n&&(n=null))}else if(3===p){q=b[d+1];var r=b[d+2];128===(q&192)&&128===(r&192)&&(n=(e&15)<<12|(q&63)<<6|r&63,2047>=n||55296<= +n&&57343>=n)&&(n=null)}else if(4===p){q=b[d+1];r=b[d+2];var u=b[d+3];128===(q&192)&&128===(r&192)&&128===(u&192)&&(n=(e&15)<<18|(q&63)<<12|(r&63)<<6|u&63,65535>=n||1114112<=n)&&(n=null)}null===n?(n=65533,p=1):65535>>10&1023|55296),n=56320|n&1023);c+=String.fromCharCode(n);d+=p}this.ga=a;return c},Lq:function(a){a&=7;if(a===b.c)for(;127>3,a=1===a?c.Vg():2===a?c.Zp():3===a?c.Vp():4===a?c.lq():5===a?c.Ua():6===a?c.Ug():7===a?c.Tp():null;b.values.push(a)}} +function mt(a,b,c){if(1==a)b.id=c.Ua();else if(2==a)for(a=c.Ua()+c.ga;c.ga>=3),n--,1===m||2===m?(p+=b.Ug(),q+=b.Ug(),1===m&&r>u&&(l.push(r),u=r),g.push(p,q),r+=2):7===m?r>u&&(g.push(g[u],g[u+1]),r+=2):oa(!1,59);r>u&&l.push(r);b=h.length;var v;1===d?v=1===b?"Point":"MultiPoint":2===d?v=1===b?"LineString":"MultiLineString":3===d&&(v="Polygon");d=v;if(a.b===it)g=new a.b(d, +g,h,f,e);else{if("Polygon"==d){d=[];l=b=v=0;for(c=h.length;lc?~(c<<1):c<<1;b="";d=0;for(c=a.length;d>=5;g+=String.fromCharCode(f+63);b+=g}return b} +function zt(a,b){b=b?b:1E5;var c=[],d=0,e=0,f;var g=0;for(f=a.length;gh?(c.push(d),e=d=0):e+=5}a=0;for(d=c.length;a>1):e>>1;a=0;for(d=c.length;a=b||"."==b||"-"==b){c.type=4;b=a.b;var d=!1,e=!1;do{if("."==f)d=!0;else if("e"==f||"E"==f)e=!0;var f=a.a.charAt(++a.b)}while("0"<=f&&"9">=f||"."==f&&(void 0===d||!d)||!e&&("e"==f||"E"==f)||e&&("-"==f||"+"==f));a=parseFloat(a.a.substring(b,a.b--));c.value=a}else if("a"<=b&&"z">=b||"A"<=b&&"Z">=b){c.type=1;b=a.b;do f=a.a.charAt(++a.b);while("a"<=f&&"z">= +f||"A"<=f&&"Z">=f);a=a.a.substring(b,a.b--).toUpperCase();c.value=a}else{if(" "==b||"\t"==b||"\r"==b||"\n"==b)return Uu(a);if(""===b)c.type=6;else throw Error("Unexpected character: "+b);}return c}function Qu(a){this.g=a;this.a="XY"}function Su(a){a.b=Uu(a.g)}function Vu(a,b){(b=a.b.type==b)&&Su(a);return b} +function Tu(a){var b=a.b;if(Vu(a,1)){b=b.value;var c="XY",d=a.b;1==a.b.type&&(d=d.value,"Z"===d?c="XYZ":"M"===d?c="XYM":"ZM"===d&&(c="XYZM"),"XY"!==c&&Su(a));a.a=c;if("GEOMETRYCOLLECTION"==b){a:{if(Vu(a,2)){b=[];do b.push(Tu(a));while(Vu(a,5));if(Vu(a,3)){a=b;break a}}else if(Wu(a)){a=[];break a}throw Error(Xu(a));}return new Mq(a)}d=Yu[b];c=Zu[b];if(!d||!c)throw Error("Invalid geometry type: "+b);b=d.call(a);return new c(b,a.a)}throw Error(Xu(a));}k=Qu.prototype; +k.Hg=function(){if(Vu(this,2)){var a=$u(this);if(Vu(this,3))return a}else if(Wu(this))return null;throw Error(Xu(this));};k.Gg=function(){if(Vu(this,2)){var a=av(this);if(Vu(this,3))return a}else if(Wu(this))return[];throw Error(Xu(this));};k.Ig=function(){if(Vu(this,2)){var a=bv(this);if(Vu(this,3))return a}else if(Wu(this))return[];throw Error(Xu(this));}; +k.Hp=function(){if(Vu(this,2)){var a;if(2==this.b.type)for(a=[this.Hg()];Vu(this,5);)a.push(this.Hg());else a=av(this);if(Vu(this,3))return a}else if(Wu(this))return[];throw Error(Xu(this));};k.Gp=function(){if(Vu(this,2)){var a=bv(this);if(Vu(this,3))return a}else if(Wu(this))return[];throw Error(Xu(this));};k.Ip=function(){if(Vu(this,2)){for(var a=[this.Ig()];Vu(this,5);)a.push(this.Ig());if(Vu(this,3))return a}else if(Wu(this))return[];throw Error(Xu(this));}; +function $u(a){for(var b=[],c=a.a.length,d=0;d=b[0]||a[1]<=b[1]&&a[3]>=b[1]?!0:Ua(a,this.Bb,this)):!1}; +k.ub=function(a){var b=this.a,c=a.slice();c[b]=c[0]+(this.A[b]-this.A[0]);var d;for(d=1;da.sc:e<=a.sc}a.s?(e=b.coordinate,c=a.j.U(),a.f===Kw?d=a.a:a.f===Jw?(d=a.a[0],d=d[d.length-1],Rw(a,b)&&(e=a.s.slice())):(d=a.a,d=d[d.length-1]),d[0]=e[0],d[1]=e[1],a.cb(a.a,c),a.B&&a.B.U().na(e),c instanceof D&&a.f!==Jw?(a.C||(a.C=new Hk(new I(null))),e=c.Wh(0),b=a.C.U(),b.ba(e.ja,e.da())):a.T&&(b=a.C.U(),b.na(a.T)),Tw(a)):(b=b.coordinate.slice(),a.B?a.B.U().na(b):(a.B=new Hk(new C(b)), +Tw(a)));return!0}function Rw(a,b){var c=!1;if(a.j){var d=!1,e=[a.s];a.f===Lw?d=a.a.length>a.Ea:a.f===Jw&&(d=a.a[0].length>a.Ea,e=[a.a[0][0],a.a[0][a.a[0].length-2]]);if(d){d=b.map;for(var f=0,g=e.length;f=a.ua&&(a.o?e.pop():d=!0);e.push(b.slice());a.cb(e,c)}else a.f===Jw&&(e=a.a[0],e.length>=a.ua&&(a.o?e.pop():d=!0),e.push(b.slice()),d&&(a.s=e[0]),a.cb(a.a,c));Tw(a);d&&a.Pd()} +k.nq=function(){if(this.j){var a=this.j.U();if(this.f===Lw){var b=this.a;b.splice(-2,1);this.cb(b,a);2<=b.length&&(this.s=b[b.length-2].slice())}else if(this.f===Jw){b=this.a[0];b.splice(-2,1);var c=this.C.U();c.na(b);this.cb(this.a,a)}0===b.length&&(this.s=null);Tw(this)}}; +k.Pd=function(){var a=Sw(this),b=this.a,c=a.U();this.f===Lw?(b.pop(),this.cb(b,c)):this.f===Jw&&(b[0].pop(),this.cb(b,c),b=c.W());"MultiPoint"===this.O?a.Va(new No([b])):"MultiLineString"===this.O?a.Va(new P([b])):"MultiPolygon"===this.O&&a.Va(new Q([b]));this.b(new Uw("drawend",a));this.La&&this.La.push(a);this.ob&&this.ob.Gb(a)};function Sw(a){a.s=null;var b=a.j;b&&(a.j=null,a.B=null,a.C=null,a.ra.ha().clear(!0));return b} +k.Zn=function(a){var b=a.U();this.j=a;this.a=b.W();a=this.a[this.a.length-1];this.s=a.slice();this.a.push(a.slice());Tw(this);this.b(new Uw("drawstart",this.j))};k.jd=Se;function Tw(a){var b=[];a.j&&b.push(a.j);a.C&&b.push(a.C);a.B&&b.push(a.B);a=a.ra.ha();a.clear(!0);a.Qc(b)}k.Ki=function(){var a=this.v,b=this.c();a&&b||Sw(this);this.ra.setMap(b?a:null)}; +function Iw(a){var b;"Point"===a||"MultiPoint"===a?b=Kw:"LineString"===a||"MultiLineString"===a?b=Lw:"Polygon"===a||"MultiPolygon"===a?b=Jw:"Circle"===a&&(b=Qw);return b}var Kw="Point",Lw="LineString",Jw="Polygon",Qw="Circle";function Uw(a,b){Qc.call(this,a);this.feature=b}w(Uw,Qc);function Vw(a){var b=a||{};this.a=this.j=null;this.C=void 0!==b.pixelTolerance?b.pixelTolerance:10;this.B=!1;this.T=this.s=null;a||(a={});fh.call(this,{handleDownEvent:Ww,handleDragEvent:Xw,handleEvent:Yw,handleUpEvent:Zw});this.o=new T({source:new U({useSpatialIndex:!1,wrapX:!!a.wrapX}),style:a.boxStyle?a.boxStyle:$w(),updateWhileAnimating:!0,updateWhileInteracting:!0});this.O=new T({source:new U({useSpatialIndex:!1,wrapX:!!a.wrapX}),style:a.pointerStyle?a.pointerStyle:ax(),updateWhileAnimating:!0, +updateWhileInteracting:!0});a.extent&&this.f(a.extent)}w(Vw,fh);function Yw(a){if(!(a instanceof Ad))return!0;if("pointermove"==a.type&&!this.D){var b=a.pixel,c=a.map,d=bx(this,b,c);d||(d=c.Ra(b));cx(this,d)}gh.call(this,a);return!1} +function Ww(a){function b(a){var b=null,c=null;a[0]==e[0]?b=e[2]:a[0]==e[2]&&(b=e[0]);a[1]==e[1]?c=e[3]:a[1]==e[3]&&(c=e[1]);return null!==b&&null!==c?[b,c]:null}var c=a.pixel,d=a.map,e=this.G();(a=bx(this,c,d))&&e?(c=a[0]==e[0]||a[0]==e[2]?a[0]:null,d=a[1]==e[1]||a[1]==e[3]?a[1]:null,null!==c&&null!==d?this.a=dx(b(a)):null!==c?this.a=ex(b([c,e[1]]),b([c,e[3]])):null!==d&&(this.a=ex(b([e[0],d]),b([e[2],d])))):(a=d.Ra(c),this.f([a[0],a[1],a[0],a[1]]),this.a=dx(a));return!0} +function Xw(a){this.a&&(a=a.coordinate,this.f(this.a(a)),cx(this,a));return!0}function Zw(){this.a=null;var a=this.G();a&&0!==ab(a)||this.f(null);return!1}function $w(){var a=Gk();return function(){return a.Polygon}}function ax(){var a=Gk();return function(){return a.Point}}function dx(a){return function(b){return Ca([a,b])}}function ex(a,b){return a[0]==b[0]?function(c){return Ca([a,[c[0],b[1]]])}:a[1]==b[1]?function(c){return Ca([a,[b[0],c[1]]])}:null} +function bx(a,b,c){function d(a,b){return Je(e,a)-Je(e,b)}var e=c.Ra(b),f=a.G();if(f){f=[[[f[0],f[1]],[f[0],f[3]]],[[f[0],f[3]],[f[2],f[3]]],[[f[2],f[3]],[f[2],f[1]]],[[f[2],f[1]],[f[0],f[1]]]];f.sort(d);f=f[0];var g=Be(e,f),h=c.Ia(g);if(Ie(b,h)<=a.C)return b=c.Ia(f[0]),c=c.Ia(f[1]),b=He(h,b),c=He(h,c),a.B=Math.sqrt(Math.min(b,c))<=a.C,a.B&&(g=b>c?f[1]:f[0]),g}return null}function cx(a,b){var c=a.T;c?c.U().na(b):(c=new Hk(new C(b)),a.T=c,a.O.ha().Gb(c))} +Vw.prototype.setMap=function(a){this.o.setMap(a);this.O.setMap(a);fh.prototype.setMap.call(this,a)};Vw.prototype.G=function(){return this.j};Vw.prototype.f=function(a){this.j=a?a:null;var b=this.s;b?a?b.Va(Rf(a)):b.Va(void 0):(this.s=b=a?new Hk(Rf(a)):new Hk({}),this.o.ha().Gb(b));this.b(new fx(this.j))};function fx(a){Qc.call(this,"extentchanged");this.extent=a}w(fx,Qc);function gx(a){fh.call(this,{handleDownEvent:hx,handleDragEvent:ix,handleEvent:jx,handleUpEvent:kx});this.Md=a.condition?a.condition:eh;this.bb=function(a){return Wg(a)&&$g(a)};this.ob=a.deleteCondition?a.deleteCondition:this.bb;this.sc=a.insertVertexCondition?a.insertVertexCondition:Re;this.La=this.f=null;this.Ea=[0,0];this.C=this.T=!1;this.a=new um;this.ra=void 0!==a.pixelTolerance?a.pixelTolerance:10;this.s=this.ua=!1;this.j=[];this.B=new T({source:new U({useSpatialIndex:!1,wrapX:!!a.wrapX}),style:a.style? +a.style:lx(),updateWhileAnimating:!0,updateWhileInteracting:!0});this.ca={Point:this.io,LineString:this.Mi,LinearRing:this.Mi,Polygon:this.jo,MultiPoint:this.fo,MultiLineString:this.eo,MultiPolygon:this.ho,Circle:this.bo,GeometryCollection:this.co};this.V=null;a.source?(this.V=a.source,a=new B(this.V.ee()),y(this.V,"addfeature",this.vm,this),y(this.V,"removefeature",this.xm,this)):a=a.features;if(!a)throw Error("The modify interaction requires features or a source");this.o=a;this.o.forEach(this.xg, +this);y(this.o,"add",this.$n,this);y(this.o,"remove",this.ao,this);this.O=null}w(gx,fh);k=gx.prototype;k.xg=function(a){var b=a.U();b&&b.S()in this.ca&&this.ca[b.S()].call(this,a,b);(b=this.v)&&b.c&&this.c()&&mx(this,this.Ea,b);y(a,"change",this.Li,this)};function nx(a,b){a.C||(a.C=!0,a.b(new ox("modifystart",a.o,b)))}function px(a,b){qx(a,b);a.f&&0===a.o.kc()&&(a.B.ha().Lb(a.f),a.f=null);Mc(b,"change",a.Li,a)} +function qx(a,b){a=a.a;var c=[];a.forEach(function(a){b===a.feature&&c.push(a)});for(var d=c.length-1;0<=d;--d)a.remove(c[d])}k.Ha=function(a){this.f&&!a&&(this.B.ha().Lb(this.f),this.f=null);fh.prototype.Ha.call(this,a)};k.setMap=function(a){this.B.setMap(a);fh.prototype.setMap.call(this,a)};k.vm=function(a){a.feature&&this.o.push(a.feature)};k.xm=function(a){a.feature&&this.o.remove(a.feature)};k.$n=function(a){this.xg(a.element)};k.Li=function(a){this.s||(a=a.target,px(this,a),this.xg(a))}; +k.ao=function(a){px(this,a.element)};k.io=function(a,b){var c=b.W();a={feature:a,geometry:b,ma:[c,c]};this.a.Ca(b.G(),a)};k.fo=function(a,b){var c=b.W(),d;var e=0;for(d=c.length;em?h[1]:h[0]),rx(a,l),m=1,c=f.length;mn&&(n=0);f=g.geometry;var p=d=f.W();var q=!1;switch(f.S()){case "MultiLineString":2c&&(a.index+=e)})}function lx(){var a=Gk();return function(){return a.Point}}function ox(a,b,c){Qc.call(this,a);this.features=b;this.mapBrowserEvent=c}w(ox,Qc);function wx(a){Jg.call(this,{handleEvent:xx});a=a?a:{};this.C=a.condition?a.condition:$g;this.D=a.addCondition?a.addCondition:Se;this.B=a.removeCondition?a.removeCondition:Se;this.T=a.toggleCondition?a.toggleCondition:bh;this.s=a.multi?a.multi:!1;this.l=a.filter?a.filter:Re;this.j=a.hitTolerance?a.hitTolerance:0;this.f=new T({source:new U({useSpatialIndex:!1,features:a.features,wrapX:a.wrapX}),style:a.style?a.style:yx(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(a.layers)if("function"=== +typeof a.layers)a=a.layers;else{var b=a.layers;a=function(a){return ec(b,a)}}else a=Re;this.o=a;this.a={};a=this.f.ha().i;y(a,"add",this.ko,this);y(a,"remove",this.oo,this)}w(wx,Jg);k=wx.prototype;k.lo=function(){return this.f.ha().i};k.mo=function(){return this.j};k.no=function(a){a=x(a);return this.a[a]}; +function xx(a){if(!this.C(a))return!0;var b=this.D(a),c=this.B(a),d=this.T(a),e=!b&&!c&&!d,f=a.map,g=this.f.ha().i,h=[],l=[];if(e){lb(this.a);f.Tc(a.pixel,function(a,b){if(this.l(a,b))return l.push(a),a=x(a),this.a[a]=b,!this.s}.bind(this),{layerFilter:this.o,hitTolerance:this.j});for(e=g.kc()-1;0<=e;--e){f=g.item(e);var m=l.indexOf(f);-1b?m[1]:m[0],l=d.Ia(f)}else a.C&&(f=h?Ae(c,g[0].feature.U()):Be(c,m),l=d.Ia(f),Ie(b,l)<=a.f&&(e=!0,a.O&& +!h&&(c=d.Ia(m[0]),h=d.Ia(m[1]),c=He(l,c),b=He(l,h),h=Math.sqrt(Math.min(c,b)),h=h<=a.f)))&&(f=c>b?m[1]:m[0],l=d.Ia(f));e&&(l=[Math.round(l[0]),Math.round(l[1])])}return{Mq:e,vertex:f,Vq:l}}k.$j=function(a){this.Lb(a,!1);this.Gb(a,!1)};k.ro=function(a,b){b=Sf(b).W()[0];var c;var d=0;for(c=b.length-1;dXa&&(Xa=Zb,m=Z)}if(0===Xa){g=null;break a}Xa=g[m];g[m]=g[l];g[l]=Xa;for(m=l+1;mthis.b/2){var b=[[a.source[0][0],a.source[0][1]],[a.source[1][0],a.source[1][1]],[a.source[2][0],a.source[2][1]]];b[0][0]-n>this.b/2&&(b[0][0]-=this.b);b[1][0]-n>this.b/2&&(b[1][0]-=this.b);b[2][0]-n>this.b/2&&(b[2][0]-=this.b);Math.max(b[0][0],b[1][0],b[2][0])-Math.min(b[0][0],b[1][0],b[2][0])p,u=!1;if(0a.v),u)){Math.abs(b[0]-d[0])<=Math.abs(b[1]-d[1])?(r=[(c[0]+d[0])/2,(c[1]+d[1])/2],q=a.a(r),n=[(e[0]+b[0])/2,(e[1]+b[1])/2],p=a.a(n),fy(a,b,c,r,n,f,g,q,p,m-1),fy(a,n,r,d,e,p,q,h,l,m-1)):(r=[(b[0]+c[0])/2,(b[1]+c[1])/2],q=a.a(r),n=[(d[0]+e[0])/2,(d[1]+e[1])/2],p=a.a(n),fy(a,b,r,n,e,f,q,p,l,m-1),fy(a,r,c,d,n,q,g,h,p,m-1));return}if(r){if(!a.s)return;a.l=!0}a.c.push({source:[f,h,l],target:[b,d,e]});a.c.push({source:[f,g,h],target:[b,c,d]})}} +function gy(a){var b=Da();a.c.forEach(function(a){a=a.source;Ea(b,a[0]);Ea(b,a[1]);Ea(b,a[2])});return b};function hy(a,b,c,d,e,f,g,h,l,m,n){cl.call(this,e,0);this.B=void 0!==n?n:!1;this.C=g;this.D=h;this.N=null;this.c=b;this.l=d;this.v=f?f:e;this.a=[];this.Id=null;this.f=0;f=d.Ma(this.v);h=this.l.G();e=this.c.G();f=h?gb(f,h):f;if(0===ab(f))this.state=4;else if((h=a.G())&&(e?e=gb(e,h):e=h),d=by(a,c,eb(f),d.Ta(this.v[0])),!isFinite(d)||0>=d)this.state=4;else if(this.o=new ey(a,c,f,e,d*(void 0!==m?m:.5)),0===this.o.c.length)this.state=4;else if(this.f=b.Dc(d),c=gy(this.o),e&&(a.g?(c[1]=pa(c[1],e[1],e[3]), +c[3]=pa(c[3],e[1],e[3])):c=gb(c,e)),ab(c)){a=tc(b,c,this.f);for(b=a.fa;b<=a.la;b++)for(c=a.ea;c<=a.ka;c++)(m=l(this.f,b,c,g))&&this.a.push(m);0===this.a.length&&(this.state=4)}else this.state=4}w(hy,cl);hy.prototype.ia=function(){1==this.state&&(this.Id.forEach(Gc),this.Id=null);cl.prototype.ia.call(this)};hy.prototype.Y=function(){return this.N}; +hy.prototype.he=function(){var a=[];this.a.forEach(function(b){b&&2==b.getState()&&a.push({extent:this.c.Ma(b.ya),image:b.Y()})},this);this.a.length=0;if(0===a.length)this.state=3;else{var b=this.v[0],c=this.l.Za(b),d="number"===typeof c?c:c[0];c="number"===typeof c?c:c[1];b=this.l.Ta(b);var e=this.c.Ta(this.f),f=this.l.Ma(this.v);this.N=dy(d,c,this.C,e,this.c.G(),b,f,this.o,a,this.D,this.B);this.state=2}this.u()}; +hy.prototype.load=function(){if(0==this.state){this.state=1;this.u();var a=0;this.Id=[];this.a.forEach(function(b){var c=b.getState();if(0==c||1==c){a++;var d=y(b,"change",function(){var c=b.getState();if(2==c||3==c||4==c)Gc(d),a--,0===a&&(this.Id.forEach(Gc),this.Id=null,this.he())},this);this.Id.push(d)}},this);this.a.forEach(function(a){0==a.getState()&&a.load()});0===a&&setTimeout(this.he.bind(this),0)}};function iy(a){uw.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,state:a.state,wrapX:a.wrapX});this.bb=void 0!==a.opaque?a.opaque:!1;this.sc=void 0!==a.tilePixelRatio?a.tilePixelRatio:1;this.tileGrid=void 0!==a.tileGrid?a.tileGrid:null;this.a=new $x(a.cacheSize);this.j=[0,0];this.jc="";this.Ea={transition:a.transition}}w(iy,uw);k=iy.prototype;k.cj=function(){return di(this.a)};k.sd=function(a,b){(a=this.Yd(a))&&a.sd(b)}; +function Li(a,b,c,d,e){a=a.Yd(b);if(!a)return!1;b=!0;for(var f,g,h=d.fa;h<=d.la;++h)for(var l=d.ea;l<=d.ka;++l)f=c+"/"+h+"/"+l,g=!1,a.a.hasOwnProperty(f)&&(f=a.get(f),(g=2===f.getState())&&(g=!1!==e(f))),g||(b=!1);return b}k.Zf=function(){return 0};function jy(a,b){a.jc!==b&&(a.jc=b,a.u())}k.eg=function(){return this.bb};k.jb=function(){return this.tileGrid};k.eb=function(a){return this.tileGrid?this.tileGrid:zc(a)};k.Yd=function(a){var b=this.c;return b&&!Xb(b,a)?null:this.a};k.Xc=function(){return this.sc}; +k.Zd=function(a,b,c){c=this.eb(c);b=this.Xc(b);a=Ba(c.Za(a),this.j);return 1==b?a:Aa(a,b,this.j)};function ky(a,b,c){var d=void 0!==c?c:a.c;c=a.eb(d);if(a.D&&d.c){var e=b;b=e[0];a=yc(c,e);d=Dc(d);Ja(d,a)?b=e:(e=cb(d),a[0]+=e*Math.ceil((d[0]-a[0])/e),b=c.jg(a,b))}e=b[0];d=b[1];a=b[2];if(c.minZoom>e||e>c.maxZoom)c=!1;else{var f=c.G();c=(c=f?tc(c,f,e):c.a?c.a[e]:null)?ma(c,d,a):!0}return c?b:null}k.sa=function(){this.a.clear();this.u()};k.kh=ea;function ly(a,b){Qc.call(this,a);this.tile=b}w(ly,Qc);function my(a){iy.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tilePixelRatio:a.tilePixelRatio,wrapX:a.wrapX,transition:a.transition});this.tileLoadFunction=a.tileLoadFunction;this.tileUrlFunction=this.dc?this.dc.bind(this):Xx;this.urls=null;a.urls?this.vb(a.urls):a.url&&this.rb(a.url);a.tileUrlFunction&&this.hb(a.tileUrlFunction);this.V={}}w(my,iy);k=my.prototype;k.yb=function(){return this.tileLoadFunction}; +k.zb=function(){return this.tileUrlFunction};k.Ab=function(){return this.urls};k.dj=function(a){a=a.target;var b=x(a),c=a.getState();if(1==c){this.V[b]=!0;var d="tileloadstart"}else b in this.V&&(delete this.V[b],d=3==c?"tileloaderror":2==c||5==c?"tileloadend":void 0);void 0!=d&&this.b(new ly(d,a))};k.Fb=function(a){this.a.clear();this.tileLoadFunction=a;this.u()};k.hb=function(a,b){this.tileUrlFunction=a;ay(this.a);"undefined"!==typeof b?jy(this,b):this.u()}; +k.rb=function(a){var b=this.urls=Yx(a);this.hb(this.dc?this.dc.bind(this):Vx(b,this.tileGrid),a)};k.vb=function(a){this.urls=a;var b=a.join("\n");this.hb(this.dc?this.dc.bind(this):Vx(a,this.tileGrid),b)};k.kh=function(a,b,c){a=a+"/"+b+"/"+c;this.a.a.hasOwnProperty(a)&&this.a.get(a)};function ny(a){my.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction?a.tileLoadFunction:oy,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,wrapX:a.wrapX,transition:a.transition});this.crossOrigin=void 0!==a.crossOrigin?a.crossOrigin:null;this.tileClass=void 0!==a.tileClass?a.tileClass:el;this.f={};this.s={};this.ob= +a.reprojectionErrorThreshold;this.O=!1}w(ny,my);k=ny.prototype;k.cj=function(){if(di(this.a))return!0;for(var a in this.f)if(di(this.f[a]))return!0;return!1};k.sd=function(a,b){a=this.Yd(a);this.a.sd(this.a==a?b:{});for(var c in this.f){var d=this.f[c];d.sd(d==a?b:{})}};k.Zf=function(a){return this.c&&a&&!Xb(this.c,a)?0:this.$f()};k.$f=function(){return 0};k.eg=function(a){return this.c&&a&&!Xb(this.c,a)?!1:my.prototype.eg.call(this,a)}; +k.eb=function(a){var b=this.c;return!this.tileGrid||b&&!Xb(b,a)?(b=x(a).toString(),b in this.s||(this.s[b]=zc(a)),this.s[b]):this.tileGrid};k.Yd=function(a){var b=this.c;if(!b||Xb(b,a))return this.a;a=x(a).toString();a in this.f||(this.f[a]=new $x(this.a.highWaterMark));return this.f[a]}; +function py(a,b,c,d,e,f,g){b=[b,c,d];e=(c=ky(a,b,f))?a.tileUrlFunction(c,e,f):void 0;e=new a.tileClass(b,void 0!==e?0:4,void 0!==e?e:"",a.crossOrigin,a.tileLoadFunction,a.Ea);e.key=g;y(e,"change",a.dj,a);return e} +k.ad=function(a,b,c,d,e){var f=this.c;if(f&&e&&!Xb(f,e)){var g=this.Yd(e);c=[a,b,c];var h;a=c[0]+"/"+c[1]+"/"+c[2];g.a.hasOwnProperty(a)&&(h=g.get(a));b=this.jc;if(h&&h.key==b)return h;var l=this.eb(f),m=this.eb(e),n=ky(this,c,e);d=new hy(f,l,e,m,c,n,this.Xc(d),this.$f(),function(a,b,c,d){return qy(this,a,b,c,d,f)}.bind(this),this.ob,this.O);d.key=b;h?(d.g=h,dl(d),g.replace(a,d)):g.set(a,d);return d}return qy(this,a,b,c,d,f||e)}; +function qy(a,b,c,d,e,f){var g=b+"/"+c+"/"+d,h=a.jc;if(a.a.a.hasOwnProperty(g)){var l=a.a.get(g);if(l.key!=h){var m=l;l=py(a,b,c,d,e,f,h);0==m.getState()?l.g=m.g:l.g=m;dl(l);a.a.replace(g,l)}}else l=py(a,b,c,d,e,f,h),a.a.set(g,l);return l}k.Qb=function(a){if(this.O!=a){this.O=a;for(var b in this.f)this.f[b].clear();this.u()}};k.Rb=function(a,b){if(a=Ob(a))a=x(a).toString(),a in this.s||(this.s[a]=b)};function oy(a,b){a.Y().src=b};function ry(a){this.i=void 0!==a.hidpi?a.hidpi:!1;ny.call(this,{cacheSize:a.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:Ob("EPSG:3857"),reprojectionErrorThreshold:a.reprojectionErrorThreshold,state:"loading",tileLoadFunction:a.tileLoadFunction,tilePixelRatio:this.i?2:1,wrapX:void 0!==a.wrapX?a.wrapX:!0,transition:a.transition});this.o=void 0!==a.culture?a.culture:"en-us";this.$=void 0!==a.maxZoom?a.maxZoom:-1;this.l=a.key;this.B=a.imagerySet;Zx("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+ +this.B+"?uriScheme=https&include=ImageryProviders&key="+this.l+"&c="+this.o,this.La.bind(this),void 0,"jsonp")}w(ry,ny);ry.prototype.ca=function(){return this.l};ry.prototype.ua=function(){return this.B}; +ry.prototype.La=function(a){if(200!=a.statusCode||"OK"!=a.statusDescription||"ValidCredentials"!=a.authenticationResultCode||1!=a.resourceSets.length||1!=a.resourceSets[0].resources.length)ww(this,"error");else{var b=a.brandLogoUri;-1==b.indexOf("https")&&(b=b.replace("http","https"));var c=a.resourceSets[0].resources[0];a=-1==this.$?c.zoomMax:this.$;var d=Dc(this.c);this.tileGrid=Bc({extent:d,minZoom:c.zoomMin,maxZoom:a,tileSize:(c.imageWidth==c.imageHeight?c.imageWidth:[c.imageWidth,c.imageHeight])/ +(this.i?2:1)});var e=this.o,f=this.i;this.tileUrlFunction=Wx(c.imageUrlSubdomains.map(function(a){var b=[0,0,0],d=c.imageUrl.replace("{subdomain}",a).replace("{culture}",e);return function(a){if(a)return oc(a[0],a[1],-a[2]-1,b),a=d,f&&(a+="&dpi=d1&device=mobile"),a.replace("{quadkey}",pc(b))}}));if(c.imageryProviders){var g=Pb(Ob("EPSG:4326"),this.c);this.va(function(a){var b=[],d=a.viewState.zoom;c.imageryProviders.map(function(c){for(var e=!1,f=c.coverageAreas,h=0,l=f.length;h=m.zoomMin&&d<=m.zoomMax&&(m=m.bbox,m=jb([m[1],m[0],m[3],m[2]],g),hb(m,a.extent))){e=!0;break}}e&&b.push(c.attribution)});b.push('
    Terms of Use');return b})}this.T=b;ww(this,"ready")}};function sy(a){a=a||{};var b=void 0!==a.projection?a.projection:"EPSG:3857",c=void 0!==a.tileGrid?a.tileGrid:Bc({extent:Dc(b),maxZoom:a.maxZoom,minZoom:a.minZoom,tileSize:a.tileSize});ny.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:a.opaque,projection:b,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:c,tileLoadFunction:a.tileLoadFunction,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls, +wrapX:void 0!==a.wrapX?a.wrapX:!0,transition:a.transition})}w(sy,ny);function ty(a){this.o=a.account;this.B=a.map||"";this.i=a.config||{};this.l={};sy.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,maxZoom:void 0!==a.maxZoom?a.maxZoom:18,minZoom:a.minZoom,projection:a.projection,state:"loading",wrapX:a.wrapX});uy(this)}w(ty,sy);k=ty.prototype;k.nl=function(){return this.i};k.Sq=function(a){kb(this.i,a);uy(this)};k.uq=function(a){this.i=a||{};uy(this)}; +function uy(a){var b=JSON.stringify(a.i);if(a.l[b])vy(a,a.l[b]);else{var c="https://"+a.o+".carto.com/api/v1/map";a.B&&(c+="/named/"+a.B);var d=new XMLHttpRequest;d.addEventListener("load",a.em.bind(a,b));d.addEventListener("error",a.dm.bind(a));d.open("POST",c);d.setRequestHeader("Content-type","application/json");d.send(JSON.stringify(a.i))}} +k.em=function(a,b){b=b.target;if(!b.status||200<=b.status&&300>b.status){try{var c=JSON.parse(b.responseText)}catch(d){ww(this,"error");return}vy(this,c);this.l[a]=c;ww(this,"ready")}else ww(this,"error")};k.dm=function(){ww(this,"error")};function vy(a,b){a.rb("https://"+b.cdn_url.https+"/"+a.o+"/api/v1/map/"+b.layergroupid+"/{z}/{x}/{y}.png")};function X(a){U.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,wrapX:a.wrapX});this.resolution=void 0;this.distance=void 0!==a.distance?a.distance:20;this.features=[];this.geometryFunction=a.geometryFunction||function(a){a=a.U();oa(a instanceof C,10);return a};this.source=a.source;this.source.I("change",X.prototype.sa,this)}w(X,U);k=X.prototype;k.Eo=function(){return this.distance};k.Fo=function(){return this.source}; +k.ae=function(a,b,c){this.source.ae(a,b,c);b!==this.resolution&&(this.clear(),this.resolution=b,wy(this),this.Qc(this.features))};k.vq=function(a){this.distance=a;this.sa()};k.sa=function(){this.clear();wy(this);this.Qc(this.features);U.prototype.sa.call(this)}; +function wy(a){if(void 0!==a.resolution){a.features.length=0;for(var b=Da(),c=a.distance*a.resolution,d=a.source.ee(),e={},f=0,g=d.length;fm*l?h*g/(m*p):l*g/(n*p),SETVIEWCENTERX:f[0],SETVIEWCENTERY:f[1]};kb(e,this.f);d=Gy(d,e);d=new bl(a,b,c,d,this.V,this.a);y(d,"change",this.j,this)}else d=null;this.M=d;this.B=this.g;return d};k.Mo=function(){return this.a};k.Po=function(a){kb(this.f,a);this.u()};k.Oo=function(a){this.M=null;this.a=a;this.u()};function Ky(a){var b=a.imageExtent,c=void 0!==a.crossOrigin?a.crossOrigin:null,d=void 0!==a.imageLoadFunction?a.imageLoadFunction:Fy;zy.call(this,{attributions:a.attributions,logo:a.logo,projection:Ob(a.projection)});this.M=new bl(b,void 0,1,a.url,c,d);this.a=a.imageSize?a.imageSize:null;y(this.M,"change",this.j,this)}w(Ky,zy);Ky.prototype.Wc=function(a){return hb(a,this.M.G())?this.M:null}; +Ky.prototype.j=function(a){if(2==this.M.getState()){var b=this.M.G(),c=this.M.Y();if(this.a){var d=this.a[0];var e=this.a[1]}else d=c.width,e=c.height;b=Math.ceil(cb(b)/(db(b)/e));if(b!=d){b=hg(b,e);var f=b.canvas;b.drawImage(c,0,0,d,e,0,0,f.width,f.height);this.M.ih(f)}}zy.prototype.j.call(this,a)};function Ly(a){this.a=a.source;this.ob=We();this.f=hg();this.l=[0,0];this.ca=rj.Jc(9);this.bb=void 0==a.renderBuffer?100:a.renderBuffer;this.B=null;Iy.call(this,{attributions:a.attributions,canvasFunction:this.Mk.bind(this),logo:a.logo,projection:a.projection,ratio:a.ratio,resolutions:a.resolutions,state:this.a.getState()});this.O=null;this.s=void 0;this.aj(a.style);y(this.a,"change",this.To,this)}w(Ly,Iy);k=Ly.prototype; +k.Mk=function(a,b,c,d,e){var f=new Uj(.5*b/c,a,b,c,this.a.$,this.ca,this.bb);this.a.ae(a,b,e);var g=!1;this.a.ec(a,function(a){var d;if(!(d=g)){var e;(d=a.ib())?e=d.call(a,b):this.s&&(e=this.s(a,b));if(e){var h,p=!1;Array.isArray(e)||(e=[e]);d=0;for(h=e.length;dOpenStreetMap contributors.'];sy.call(this,{attributions:b,cacheSize:a.cacheSize,crossOrigin:void 0!==a.crossOrigin?a.crossOrigin:"anonymous",opaque:void 0!==a.opaque?a.opaque:!0,maxZoom:void 0!==a.maxZoom?a.maxZoom:19,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileLoadFunction:a.tileLoadFunction,url:void 0!==a.url?a.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png", +wrapX:a.wrapX})}w(Ry,sy);rj.nf={};rj.nf.Hf=function(){}; +(function(a){function b(a,b,c){if(g)return new ImageData(a,b,c);b=h.createImageData(b,c);b.data.set(a);return b}function c(a){var b=!0;try{new ImageData(10,10)}catch(n){b=!1}return function(c){var d=c.buffers,e=c.meta,f=c.width,g=c.height,h=d.length,l=d[0].byteLength;if(c.imageOps){l=Array(h);for(c=0;cthis.Bk;)this.Nd.shift().callback(null,null)};f.prototype.uh=function(){if(0===this.ve&&0Stamen Design, under CC BY 3.0.','© OpenStreetMap contributors.'],az={terrain:{Ob:"jpg",opaque:!0},"terrain-background":{Ob:"jpg",opaque:!0},"terrain-labels":{Ob:"png",opaque:!1},"terrain-lines":{Ob:"png",opaque:!1},"toner-background":{Ob:"png",opaque:!0},toner:{Ob:"png",opaque:!0},"toner-hybrid":{Ob:"png",opaque:!1},"toner-labels":{Ob:"png", +opaque:!1},"toner-lines":{Ob:"png",opaque:!1},"toner-lite":{Ob:"png",opaque:!0},watercolor:{Ob:"jpg",opaque:!0}},$y={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}};function cz(a){a=a||{};ny.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0,transition:a.transition});this.i=a.params||{};this.l=Da();jy(this,dz(this))}w(cz,ny);function dz(a){var b=0,c=[],d;for(d in a.i)c[b++]=d+"-"+a.i[d];return c.join("/")}cz.prototype.o=function(){return this.i}; +cz.prototype.Xc=function(a){return a}; +cz.prototype.dc=function(a,b,c){var d=this.tileGrid;d||(d=this.eb(c));if(!(d.b.length<=a[0])){var e=d.Ma(a,this.l),f=Ba(d.Za(a[0]),this.j);1!=b&&(f=Aa(f,b,this.j));d={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};kb(d,this.i);var g=this.urls;g?(c=c.wb.split(":").pop(),d.SIZE=f[0]+","+f[1],d.BBOX=e.join(","),d.BBOXSR=c,d.IMAGESR=c,d.DPI=Math.round(d.DPI?d.DPI*b:90*b),a=(1==g.length?g[0]:g[wa((a[1]<a.status){try{var b=JSON.parse(a.responseText)}catch(c){this.ef();return}this.Cg(b)}else this.ef()};k.ap=function(){this.ef()};k.Sl=function(){return this.i}; +k.Cg=function(a){var b=Ob("EPSG:4326"),c=this.c;if(void 0!==a.bounds){var d=Pb(b,c);d=jb(a.bounds,d)}var e=a.minzoom||0,f=a.maxzoom||22;this.tileGrid=c=Bc({extent:Dc(c),maxZoom:f,minZoom:e});this.tileUrlFunction=Vx(a.tiles,c);if(void 0!==a.attribution&&!this.C){var g=void 0!==d?d:b.G();this.va(function(b){return hb(g,b.extent)?[a.attribution]:null})}this.i=a;ww(this,"ready")};k.ef=function(){ww(this,"error")};function hz(a){iy.call(this,{projection:Ob("EPSG:3857"),state:"loading"});this.s=void 0!==a.preemptive?a.preemptive:!0;this.l=Xx;this.f=void 0;this.i=a.jsonp||!1;if(a.url)if(this.i)Zx(a.url,this.Dg.bind(this),this.ff.bind(this));else{var b=new XMLHttpRequest;b.addEventListener("load",this.gp.bind(this));b.addEventListener("error",this.fp.bind(this));b.open("GET",a.url);b.send()}else a.tileJSON?this.Dg(a.tileJSON):oa(!1,51)}w(hz,iy);k=hz.prototype; +k.gp=function(a){a=a.target;if(!a.status||200<=a.status&&300>a.status){try{var b=JSON.parse(a.responseText)}catch(c){this.ff();return}this.Dg(b)}else this.ff()};k.fp=function(){this.ff()};k.Pl=function(){return this.f};k.al=function(a,b,c,d,e){this.tileGrid?(b=this.tileGrid.Le(a,b),iz(this.ad(b[0],b[1],b[2],1,this.c),a,c,d,e)):!0===e?setTimeout(function(){c.call(d,null)},0):c.call(d,null)};k.ff=function(){ww(this,"error")}; +k.Dg=function(a){var b=Ob("EPSG:4326"),c=this.c;if(void 0!==a.bounds){var d=Pb(b,c);d=jb(a.bounds,d)}var e=a.minzoom||0,f=a.maxzoom||22;this.tileGrid=c=Bc({extent:Dc(c),maxZoom:f,minZoom:e});this.f=a.template;if(e=a.grids){this.l=Vx(e,c);if(void 0!==a.attribution){var g=void 0!==d?d:b.G();this.va(function(b){return hb(g,b.extent)?[a.attribution]:null})}ww(this,"ready")}else ww(this,"error")}; +k.ad=function(a,b,c,d,e){var f=a+"/"+b+"/"+c;if(this.a.a.hasOwnProperty(f))return this.a.get(f);a=[a,b,c];b=ky(this,a,e);d=this.l(b,d,e);d=new jz(a,void 0!==d?0:4,void 0!==d?d:"",this.tileGrid.Ma(a),this.s,this.i);this.a.set(f,d);return d};k.kh=function(a,b,c){a=a+"/"+b+"/"+c;this.a.a.hasOwnProperty(a)&&this.a.get(a)};function jz(a,b,c,d,e,f){cl.call(this,a,b);this.v=c;this.a=d;this.N=e;this.c=this.l=this.f=null;this.o=f}w(jz,cl);k=jz.prototype;k.Y=function(){return null}; +k.getData=function(a){if(!this.f||!this.l)return null;var b=this.f[Math.floor((1-(a[1]-this.a[1])/(this.a[3]-this.a[1]))*this.f.length)];if("string"!==typeof b)return null;b=b.charCodeAt(Math.floor((a[0]-this.a[0])/(this.a[2]-this.a[0])*b.length));93<=b&&b--;35<=b&&b--;b-=32;a=null;b in this.l&&(b=this.l[b],this.c&&b in this.c?a=this.c[b]:a=b);return a}; +function iz(a,b,c,d,e){0==a.state&&!0===e?(Lc(a,"change",function(){c.call(d,this.getData(b))},a),kz(a)):!0===e?setTimeout(function(){c.call(d,this.getData(b))}.bind(a),0):c.call(d,a.getData(b))}k.lb=function(){return this.v};k.Ne=function(){this.state=3;this.u()};k.bj=function(a){this.f=a.grid;this.l=a.keys;this.c=a.data;this.state=4;this.u()}; +function kz(a){if(0==a.state)if(a.state=1,a.o)Zx(a.v,a.bj.bind(a),a.Ne.bind(a));else{var b=new XMLHttpRequest;b.addEventListener("load",a.ep.bind(a));b.addEventListener("error",a.cp.bind(a));b.open("GET",a.v);b.send()}}k.ep=function(a){a=a.target;if(!a.status||200<=a.status&&300>a.status){try{var b=JSON.parse(a.responseText)}catch(c){this.Ne();return}this.bj(b)}else this.Ne()};k.cp=function(){this.Ne()};k.load=function(){this.N&&kz(this)};function lz(a){a=a||{};var b=a.params||{};ny.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:!("TRANSPARENT"in b?b.TRANSPARENT:1),projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileClass:a.tileClass,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0,transition:a.transition});this.o=void 0!==a.gutter?a.gutter:0;this.i=b;this.l=!0;this.B=a.serverType; +this.$=void 0!==a.hidpi?a.hidpi:!0;this.ca=Da();mz(this);jy(this,nz(this))}w(lz,ny);k=lz.prototype; +k.hp=function(a,b,c,d){c=Ob(c);var e=this.c,f=this.tileGrid;f||(f=this.eb(c));b=f.Le(a,b);if(!(f.b.length<=b[0])){var g=f.Ta(b[0]),h=f.Ma(b,this.ca);f=Ba(f.Za(b[0]),this.j);var l=this.o;0!==l&&(f=za(f,l,this.j),h=Fa(h,g*l,h));e&&e!==c&&(g=by(e,c,a,g),h=bc(h,c,e),a=ac(a,c,e));l={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.i.LAYERS};kb(l,this.i,d);d=Math.floor((h[3]-a[1])/g);l[this.l?"I":"X"]=Math.floor((a[0]-h[0])/g);l[this.l?"J":"Y"]= +d;return oz(this,b,f,h,1,e||c,l)}};k.$f=function(){return this.o};k.ip=function(){return this.i}; +function oz(a,b,c,d,e,f,g){var h=a.urls;if(h){g.WIDTH=c[0];g.HEIGHT=c[1];g[a.l?"CRS":"SRS"]=f.wb;"STYLES"in a.i||(g.STYLES="");if(1!=e)switch(a.B){case "geoserver":c=90*e+.5|0;g.FORMAT_OPTIONS="FORMAT_OPTIONS"in g?g.FORMAT_OPTIONS+(";dpi:"+c):"dpi:"+c;break;case "mapserver":g.MAP_RESOLUTION=90*e;break;case "carmentaserver":case "qgis":g.DPI=90*e;break;default:oa(!1,52)}f=f.b;a.l&&"ne"==f.substr(0,2)&&(a=d[0],d[0]=d[1],d[1]=a,a=d[2],d[2]=d[3],d[3]=a);g.BBOX=d.join(",");return Gy(1==h.length?h[0]:h[wa((b[1]<< +b[0])+b[2],h.length)],g)}}k.Xc=function(a){return this.$&&void 0!==this.B?a:1};function nz(a){var b=0,c=[],d;for(d in a.i)c[b++]=d+"-"+a.i[d];return c.join("/")} +k.dc=function(a,b,c){var d=this.tileGrid;d||(d=this.eb(c));if(!(d.b.length<=a[0])){1==b||this.$&&void 0!==this.B||(b=1);var e=d.Ta(a[0]),f=d.Ma(a,this.ca);d=Ba(d.Za(a[0]),this.j);var g=this.o;0!==g&&(d=za(d,g,this.j),f=Fa(f,e*g,f));1!=b&&(d=Aa(d,b,this.j));e={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};kb(e,this.i);return oz(this,a,d,f,b,c,e)}};k.jp=function(a){kb(this.i,a);mz(this);jy(this,nz(this))};function mz(a){a.l=0<=ye(a.i.VERSION||"1.3.0")};function pz(a,b,c,d,e,f,g,h,l,m,n,p,q,r,u){cl.call(this,a,b,u);this.v={};this.o={};this.c=m;this.a=[];this.D=c;this.l=f;this.f=[];this.N=[];if(f){var v=l.Ma(f),z=l.Ta(a[0]);h.Vf(v,h.Dc(z),function(a){var b=gb(v,h.Ma(a)),c=h.G();c&&(b=gb(b,c));.5<=cb(b)/z&&.5<=db(b)/z&&(b=a.toString(),c=m[b],c||(c=g(a,n,p),c=m[b]=new q(a,void 0==c?4:0,void 0==c?"":c,d,e),this.N.push(y(c,"change",r))),c.c++,this.a.push(b))}.bind(this))}}w(pz,cl);k=pz.prototype; +k.ia=function(){for(var a=0,b=this.a.length;ag||d>g;)e.push([Math.ceil(c/g),Math.ceil(d/g)]),g+=g;break;case xz:for(;c>g||d>g;)e.push([Math.ceil(c/g),Math.ceil(d/g)]),c>>=1,d>>=1;break;default:oa(!1,53)}e.push([1,1]);e.reverse();d=[1];var h=[0];g=1;for(c=e.length;ga?Pe(2*a):1-Pe(2*(a-.5))}); +t("ol.extent.boundingExtent",Ca);t("ol.extent.buffer",Fa);t("ol.extent.containsCoordinate",Ja);t("ol.extent.containsExtent",La);t("ol.extent.containsXY",Ka);t("ol.extent.createEmpty",Da);t("ol.extent.equals",Sa);t("ol.extent.extend",Ta);t("ol.extent.getArea",ab);t("ol.extent.getBottomLeft",Wa);t("ol.extent.getBottomRight",Ya);t("ol.extent.getCenter",eb);t("ol.extent.getHeight",db);t("ol.extent.getIntersection",gb);t("ol.extent.getSize",function(a){return[a[2]-a[0],a[3]-a[1]]}); +t("ol.extent.getTopLeft",$a);t("ol.extent.getTopRight",Za);t("ol.extent.getWidth",cb);t("ol.extent.intersects",hb);t("ol.extent.isEmpty",bb);t("ol.extent.applyTransform",jb);t("ol.Feature",Hk);Hk.prototype.clone=Hk.prototype.clone;Hk.prototype.getGeometry=Hk.prototype.U;Hk.prototype.getId=Hk.prototype.an;Hk.prototype.getGeometryName=Hk.prototype.sl;Hk.prototype.getStyle=Hk.prototype.bn;Hk.prototype.getStyleFunction=Hk.prototype.ib;Hk.prototype.setGeometry=Hk.prototype.Va;Hk.prototype.setStyle=Hk.prototype.sg; +Hk.prototype.setId=Hk.prototype.qc;Hk.prototype.setGeometryName=Hk.prototype.Lc;t("ol.featureloader.xhr",Fo);t("ol.Geolocation",Jk);Jk.prototype.getAccuracy=Jk.prototype.el;Jk.prototype.getAccuracyGeometry=Jk.prototype.fl;Jk.prototype.getAltitude=Jk.prototype.gl;Jk.prototype.getAltitudeAccuracy=Jk.prototype.hl;Jk.prototype.getHeading=Jk.prototype.cn;Jk.prototype.getPosition=Jk.prototype.dn;Jk.prototype.getProjection=Jk.prototype.mi;Jk.prototype.getSpeed=Jk.prototype.Ol;Jk.prototype.getTracking=Jk.prototype.ni; +Jk.prototype.getTrackingOptions=Jk.prototype.ai;Jk.prototype.setProjection=Jk.prototype.oi;Jk.prototype.setTracking=Jk.prototype.Ue;Jk.prototype.setTrackingOptions=Jk.prototype.Rj;t("ol.Graticule",Xk);Xk.prototype.getMap=Xk.prototype.gn;Xk.prototype.getMeridians=Xk.prototype.Cl;Xk.prototype.getParallels=Xk.prototype.Jl;Xk.prototype.setMap=Xk.prototype.setMap;t("ol.has.DEVICE_PIXEL_RATIO",nd);t("ol.has.CANVAS",pd);t("ol.has.DEVICE_ORIENTATION",qd);t("ol.has.GEOLOCATION",rd);t("ol.has.TOUCH",sd); +t("ol.has.WEBGL",hd);bl.prototype.getImage=bl.prototype.Y;bl.prototype.load=bl.prototype.load;el.prototype.getImage=el.prototype.Y;t("ol.inherits",w);t("ol.interaction.defaults",Zh);t("ol.Kinetic",Gg);t("ol.loadingstrategy.all",tw);t("ol.loadingstrategy.bbox",function(a){return[a]});t("ol.loadingstrategy.tile",function(a){return function(b,c){c=a.Dc(c);b=tc(a,b,c);var d=[];c=[c,0,0];for(c[1]=b.fa;c[1]<=b.la;++c[1])for(c[2]=b.ea;c[2]<=b.ka;++c[2])d.push(a.Ma(c));return d}});t("ol.Map",K); +ed.prototype.originalEvent=ed.prototype.originalEvent;ed.prototype.pixel=ed.prototype.pixel;ed.prototype.coordinate=ed.prototype.coordinate;ed.prototype.dragging=ed.prototype.dragging;dd.prototype.map=dd.prototype.map;dd.prototype.frameState=dd.prototype.frameState;t("ol.Object",Vc);Vc.prototype.get=Vc.prototype.get;Vc.prototype.getKeys=Vc.prototype.P;Vc.prototype.getProperties=Vc.prototype.L;Vc.prototype.set=Vc.prototype.set;Vc.prototype.setProperties=Vc.prototype.H;Vc.prototype.unset=Vc.prototype.R; +Zc.prototype.key=Zc.prototype.key;Zc.prototype.oldValue=Zc.prototype.oldValue;t("ol.Observable",Uc);t("ol.Observable.unByKey",function(a){if(Array.isArray(a))for(var b=0,c=a.length;bb||180Terms of Use');ry.prototype.getApiKey=ry.prototype.ca;ry.prototype.getImagerySet=ry.prototype.ua;t("ol.source.CartoDB",ty);ty.prototype.getConfig=ty.prototype.nl;ty.prototype.updateConfig=ty.prototype.Sq;ty.prototype.setConfig=ty.prototype.uq;t("ol.source.Cluster",X);X.prototype.getDistance=X.prototype.Eo; +X.prototype.getSource=X.prototype.Fo;X.prototype.setDistance=X.prototype.vq;t("ol.source.Image",zy);By.prototype.image=By.prototype.image;t("ol.source.ImageArcGISRest",Hy);Hy.prototype.getParams=Hy.prototype.Ho;Hy.prototype.getImageLoadFunction=Hy.prototype.Go;Hy.prototype.getUrl=Hy.prototype.Io;Hy.prototype.setImageLoadFunction=Hy.prototype.Jo;Hy.prototype.setUrl=Hy.prototype.Ko;Hy.prototype.updateParams=Hy.prototype.Lo;t("ol.source.ImageCanvas",Iy);t("ol.source.ImageMapGuide",Jy); +Jy.prototype.getParams=Jy.prototype.No;Jy.prototype.getImageLoadFunction=Jy.prototype.Mo;Jy.prototype.updateParams=Jy.prototype.Po;Jy.prototype.setImageLoadFunction=Jy.prototype.Oo;t("ol.source.ImageStatic",Ky);t("ol.source.ImageVector",Ly);Ly.prototype.getSource=Ly.prototype.Qo;Ly.prototype.getStyle=Ly.prototype.Ro;Ly.prototype.getStyleFunction=Ly.prototype.ib;Ly.prototype.setStyle=Ly.prototype.aj;t("ol.source.ImageWMS",Ny);Ny.prototype.getGetFeatureInfoUrl=Ny.prototype.Uo; +Ny.prototype.getParams=Ny.prototype.Wo;Ny.prototype.getImageLoadFunction=Ny.prototype.Vo;Ny.prototype.getUrl=Ny.prototype.Xo;Ny.prototype.setImageLoadFunction=Ny.prototype.Yo;Ny.prototype.setUrl=Ny.prototype.Zo;Ny.prototype.updateParams=Ny.prototype.$o;t("ol.source.OSM",Ry);t("ol.source.OSM.ATTRIBUTION",'© OpenStreetMap contributors.');t("ol.source.Raster",Sy);Sy.prototype.setOperation=Sy.prototype.s;Wy.prototype.extent=Wy.prototype.extent; +Wy.prototype.resolution=Wy.prototype.resolution;Wy.prototype.data=Wy.prototype.data;t("ol.source.Source",uw);uw.prototype.getAttributions=uw.prototype.za;uw.prototype.getLogo=uw.prototype.Aa;uw.prototype.getProjection=uw.prototype.Da;uw.prototype.getState=uw.prototype.getState;uw.prototype.refresh=uw.prototype.sa;uw.prototype.setAttributions=uw.prototype.va;t("ol.source.Stamen",Zy);t("ol.source.Tile",iy);iy.prototype.getTileGrid=iy.prototype.jb;ly.prototype.tile=ly.prototype.tile; +t("ol.source.TileArcGISRest",cz);cz.prototype.getParams=cz.prototype.o;cz.prototype.updateParams=cz.prototype.B;t("ol.source.TileDebug",ez);t("ol.source.TileImage",ny);ny.prototype.setRenderReprojectionEdges=ny.prototype.Qb;ny.prototype.setTileGridForProjection=ny.prototype.Rb;t("ol.source.TileJSON",gz);gz.prototype.getTileJSON=gz.prototype.Sl;t("ol.source.TileUTFGrid",hz);hz.prototype.getTemplate=hz.prototype.Pl;hz.prototype.forDataAtCoordinateAndResolution=hz.prototype.al; +t("ol.source.TileWMS",lz);lz.prototype.getGetFeatureInfoUrl=lz.prototype.hp;lz.prototype.getParams=lz.prototype.ip;lz.prototype.updateParams=lz.prototype.jp;my.prototype.getTileLoadFunction=my.prototype.yb;my.prototype.getTileUrlFunction=my.prototype.zb;my.prototype.getUrls=my.prototype.Ab;my.prototype.setTileLoadFunction=my.prototype.Fb;my.prototype.setTileUrlFunction=my.prototype.hb;my.prototype.setUrl=my.prototype.rb;my.prototype.setUrls=my.prototype.vb;t("ol.source.Vector",U); +U.prototype.addFeature=U.prototype.Gb;U.prototype.addFeatures=U.prototype.Qc;U.prototype.clear=U.prototype.clear;U.prototype.forEachFeature=U.prototype.Lh;U.prototype.forEachFeatureInExtent=U.prototype.ec;U.prototype.forEachFeatureIntersectingExtent=U.prototype.Mh;U.prototype.getFeaturesCollection=U.prototype.Th;U.prototype.getFeatures=U.prototype.ee;U.prototype.getFeaturesAtCoordinate=U.prototype.Sh;U.prototype.getFeaturesInExtent=U.prototype.Yf;U.prototype.getClosestFeatureToCoordinate=U.prototype.Oh; +U.prototype.getExtent=U.prototype.G;U.prototype.getFeatureById=U.prototype.Rh;U.prototype.getFormat=U.prototype.ej;U.prototype.getUrl=U.prototype.fj;U.prototype.removeLoadedExtent=U.prototype.Cj;U.prototype.removeFeature=U.prototype.Lb;U.prototype.setLoader=U.prototype.hj;Bw.prototype.feature=Bw.prototype.feature;t("ol.source.VectorTile",rz);rz.prototype.clear=rz.prototype.clear;t("ol.source.WMTS",Y);Y.prototype.getDimensions=Y.prototype.ol;Y.prototype.getFormat=Y.prototype.kp; +Y.prototype.getLayer=Y.prototype.lp;Y.prototype.getMatrixSet=Y.prototype.Al;Y.prototype.getRequestEncoding=Y.prototype.Nl;Y.prototype.getStyle=Y.prototype.mp;Y.prototype.getVersion=Y.prototype.Ul;Y.prototype.updateDimensions=Y.prototype.Tq; +t("ol.source.WMTS.optionsFromCapabilities",function(a,b){var c=hc(a.Contents.Layer,function(a){return a.Identifier==b.layer});if(null===c)return null;var d=a.Contents.TileMatrixSet;var e=1e&&(e=0);var f=c.TileMatrixSetLink[e].TileMatrixSet;var g=c.TileMatrixSetLink[e].TileMatrixSetLimits;var h=c.Format[0];"format"in b&&(h=b.format);e=mc(c.Style,function(a){return"style"in b?a.Title==b.style:a.isDefault});0>e&&(e=0);e=c.Style[e].Identifier;var l={};"Dimension"in c&&c.Dimension.forEach(function(a){var b=a.Identifier,c=a.Default;void 0===c&&(c=a.Value[0]);l[b]=c});var m=hc(a.Contents.TileMatrixSet,function(a){return a.Identifier==f}),n,p=m.SupportedCRS;p&&(n=Ob(p.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, +"$1:$3"))||Ob(p));"projection"in b&&(p=Ob(b.projection),!p||n&&!Xb(p,n)||(n=p));p=c.WGS84BoundingBox;if(void 0!==p){var q=Ob("EPSG:4326").G();q=p[0]==q[0]&&p[2]==q[2];var r=bc(p,"EPSG:4326",n);(p=n.G())&&(La(p,r)||(r=void 0))}g=tz(m,r,g);var u=[];m=b.requestEncoding;m=void 0!==m?m:"";if("OperationsMetadata"in a&&"GetTile"in a.OperationsMetadata)for(a=a.OperationsMetadata.GetTile.DCP.HTTP.Get,r=0,p=a.length;r .swiper-wrapper { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +.swiper-wrapper { + position: relative; + width: 100%; + height: 100%; + z-index: 1; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + -o-transition-property: transform; + transition-property: transform; + transition-property: transform, -webkit-transform; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +.swiper-container-android .swiper-slide, +.swiper-wrapper { + -webkit-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0); +} +.swiper-container-multirow > .swiper-wrapper { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.swiper-container-free-mode > .swiper-wrapper { + -webkit-transition-timing-function: ease-out; + -o-transition-timing-function: ease-out; + transition-timing-function: ease-out; + margin: 0 auto; +} +.swiper-slide { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; + height: 100%; + position: relative; + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + -o-transition-property: transform; + transition-property: transform; + transition-property: transform, -webkit-transform; +} +.swiper-invisible-blank-slide { + visibility: hidden; +} +/* Auto Height */ +.swiper-container-autoheight, +.swiper-container-autoheight .swiper-slide { + height: auto; +} +.swiper-container-autoheight .swiper-wrapper { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-transition-property: height, -webkit-transform; + transition-property: height, -webkit-transform; + -o-transition-property: transform, height; + transition-property: transform, height; + transition-property: transform, height, -webkit-transform; +} +/* 3D Effects */ +.swiper-container-3d { + -webkit-perspective: 1200px; + perspective: 1200px; +} +.swiper-container-3d .swiper-wrapper, +.swiper-container-3d .swiper-slide, +.swiper-container-3d .swiper-slide-shadow-left, +.swiper-container-3d .swiper-slide-shadow-right, +.swiper-container-3d .swiper-slide-shadow-top, +.swiper-container-3d .swiper-slide-shadow-bottom, +.swiper-container-3d .swiper-cube-shadow { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} +.swiper-container-3d .swiper-slide-shadow-left, +.swiper-container-3d .swiper-slide-shadow-right, +.swiper-container-3d .swiper-slide-shadow-top, +.swiper-container-3d .swiper-slide-shadow-bottom { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 10; +} +.swiper-container-3d .swiper-slide-shadow-left { + background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); + background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-right { + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-top { + background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); + background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-bottom { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); + background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +/* IE10 Windows Phone 8 Fixes */ +.swiper-container-wp8-horizontal, +.swiper-container-wp8-horizontal > .swiper-wrapper { + -ms-touch-action: pan-y; + touch-action: pan-y; +} +.swiper-container-wp8-vertical, +.swiper-container-wp8-vertical > .swiper-wrapper { + -ms-touch-action: pan-x; + touch-action: pan-x; +} +.swiper-button-prev, +.swiper-button-next { + position: absolute; + top: 50%; + width: 27px; + height: 44px; + margin-top: -22px; + z-index: 10; + cursor: pointer; + background-size: 27px 44px; + background-position: center; + background-repeat: no-repeat; +} +.swiper-button-prev.swiper-button-disabled, +.swiper-button-next.swiper-button-disabled { + opacity: 0.35; + cursor: auto; + pointer-events: none; +} +.swiper-button-prev, +.swiper-container-rtl .swiper-button-next { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); + left: 10px; + right: auto; +} +.swiper-button-next, +.swiper-container-rtl .swiper-button-prev { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); + right: 10px; + left: auto; +} +.swiper-button-prev.swiper-button-white, +.swiper-container-rtl .swiper-button-next.swiper-button-white { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); +} +.swiper-button-next.swiper-button-white, +.swiper-container-rtl .swiper-button-prev.swiper-button-white { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); +} +.swiper-button-prev.swiper-button-black, +.swiper-container-rtl .swiper-button-next.swiper-button-black { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); +} +.swiper-button-next.swiper-button-black, +.swiper-container-rtl .swiper-button-prev.swiper-button-black { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); +} +.swiper-button-lock { + display: none; +} +.swiper-pagination { + position: absolute; + text-align: center; + -webkit-transition: 300ms opacity; + -o-transition: 300ms opacity; + transition: 300ms opacity; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + z-index: 10; +} +.swiper-pagination.swiper-pagination-hidden { + opacity: 0; +} +/* Common Styles */ +.swiper-pagination-fraction, +.swiper-pagination-custom, +.swiper-container-horizontal > .swiper-pagination-bullets { + bottom: 10px; + left: 0; + width: 100%; +} +/* Bullets */ +.swiper-pagination-bullets-dynamic { + overflow: hidden; + font-size: 0; +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + -webkit-transform: scale(0.33); + -ms-transform: scale(0.33); + transform: scale(0.33); + position: relative; +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { + -webkit-transform: scale(0.66); + -ms-transform: scale(0.66); + transform: scale(0.66); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { + -webkit-transform: scale(0.33); + -ms-transform: scale(0.33); + transform: scale(0.33); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { + -webkit-transform: scale(0.66); + -ms-transform: scale(0.66); + transform: scale(0.66); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { + -webkit-transform: scale(0.33); + -ms-transform: scale(0.33); + transform: scale(0.33); +} +.swiper-pagination-bullet { + width: 8px; + height: 8px; + display: inline-block; + border-radius: 100%; + background: #000; + opacity: 0.2; +} +button.swiper-pagination-bullet { + border: none; + margin: 0; + padding: 0; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.swiper-pagination-clickable .swiper-pagination-bullet { + cursor: pointer; +} +.swiper-pagination-bullet-active { + opacity: 1; + background: #007aff; +} +.swiper-container-vertical > .swiper-pagination-bullets { + right: 10px; + top: 50%; + -webkit-transform: translate3d(0px, -50%, 0); + transform: translate3d(0px, -50%, 0); +} +.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { + margin: 6px 0; + display: block; +} +.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + width: 8px; +} +.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + display: inline-block; + -webkit-transition: 200ms top, 200ms -webkit-transform; + transition: 200ms top, 200ms -webkit-transform; + -o-transition: 200ms transform, 200ms top; + transition: 200ms transform, 200ms top; + transition: 200ms transform, 200ms top, 200ms -webkit-transform; +} +.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet { + margin: 0 4px; +} +.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + white-space: nowrap; +} +.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + -webkit-transition: 200ms left, 200ms -webkit-transform; + transition: 200ms left, 200ms -webkit-transform; + -o-transition: 200ms transform, 200ms left; + transition: 200ms transform, 200ms left; + transition: 200ms transform, 200ms left, 200ms -webkit-transform; +} +.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + -webkit-transition: 200ms right, 200ms -webkit-transform; + transition: 200ms right, 200ms -webkit-transform; + -o-transition: 200ms transform, 200ms right; + transition: 200ms transform, 200ms right; + transition: 200ms transform, 200ms right, 200ms -webkit-transform; +} +/* Progress */ +.swiper-pagination-progressbar { + background: rgba(0, 0, 0, 0.25); + position: absolute; +} +.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + background: #007aff; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + -webkit-transform-origin: left top; + -ms-transform-origin: left top; + transform-origin: left top; +} +.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + -webkit-transform-origin: right top; + -ms-transform-origin: right top; + transform-origin: right top; +} +.swiper-container-horizontal > .swiper-pagination-progressbar { + width: 100%; + height: 4px; + left: 0; + top: 0; +} +.swiper-container-vertical > .swiper-pagination-progressbar { + width: 4px; + height: 100%; + left: 0; + top: 0; +} +.swiper-pagination-white .swiper-pagination-bullet-active { + background: #ffffff; +} +.swiper-pagination-progressbar.swiper-pagination-white { + background: rgba(255, 255, 255, 0.25); +} +.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill { + background: #ffffff; +} +.swiper-pagination-black .swiper-pagination-bullet-active { + background: #000000; +} +.swiper-pagination-progressbar.swiper-pagination-black { + background: rgba(0, 0, 0, 0.25); +} +.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill { + background: #000000; +} +.swiper-pagination-lock { + display: none; +} +/* Scrollbar */ +.swiper-scrollbar { + border-radius: 10px; + position: relative; + -ms-touch-action: none; + background: rgba(0, 0, 0, 0.1); +} +.swiper-container-horizontal > .swiper-scrollbar { + position: absolute; + left: 1%; + bottom: 3px; + z-index: 50; + height: 5px; + width: 98%; +} +.swiper-container-vertical > .swiper-scrollbar { + position: absolute; + right: 3px; + top: 1%; + z-index: 50; + width: 5px; + height: 98%; +} +.swiper-scrollbar-drag { + height: 100%; + width: 100%; + position: relative; + background: rgba(0, 0, 0, 0.5); + border-radius: 10px; + left: 0; + top: 0; +} +.swiper-scrollbar-cursor-drag { + cursor: move; +} +.swiper-scrollbar-lock { + display: none; +} +.swiper-zoom-container { + width: 100%; + height: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + text-align: center; +} +.swiper-zoom-container > img, +.swiper-zoom-container > svg, +.swiper-zoom-container > canvas { + max-width: 100%; + max-height: 100%; + -o-object-fit: contain; + object-fit: contain; +} +.swiper-slide-zoomed { + cursor: move; +} +/* Preloader */ +.swiper-lazy-preloader { + width: 42px; + height: 42px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -21px; + margin-top: -21px; + z-index: 10; + -webkit-transform-origin: 50%; + -ms-transform-origin: 50%; + transform-origin: 50%; + -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite; + animation: swiper-preloader-spin 1s steps(12, end) infinite; +} +.swiper-lazy-preloader:after { + display: block; + content: ''; + width: 100%; + height: 100%; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-position: 50%; + background-size: 100%; + background-repeat: no-repeat; +} +.swiper-lazy-preloader-white:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); +} +@-webkit-keyframes swiper-preloader-spin { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes swiper-preloader-spin { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +/* a11y */ +.swiper-container .swiper-notification { + position: absolute; + left: 0; + top: 0; + pointer-events: none; + opacity: 0; + z-index: -1000; +} +.swiper-container-fade.swiper-container-free-mode .swiper-slide { + -webkit-transition-timing-function: ease-out; + -o-transition-timing-function: ease-out; + transition-timing-function: ease-out; +} +.swiper-container-fade .swiper-slide { + pointer-events: none; + -webkit-transition-property: opacity; + -o-transition-property: opacity; + transition-property: opacity; +} +.swiper-container-fade .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-fade .swiper-slide-active, +.swiper-container-fade .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-cube { + overflow: visible; +} +.swiper-container-cube .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; + visibility: hidden; + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + width: 100%; + height: 100%; +} +.swiper-container-cube .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-cube.swiper-container-rtl .swiper-slide { + -webkit-transform-origin: 100% 0; + -ms-transform-origin: 100% 0; + transform-origin: 100% 0; +} +.swiper-container-cube .swiper-slide-active, +.swiper-container-cube .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-cube .swiper-slide-active, +.swiper-container-cube .swiper-slide-next, +.swiper-container-cube .swiper-slide-prev, +.swiper-container-cube .swiper-slide-next + .swiper-slide { + pointer-events: auto; + visibility: visible; +} +.swiper-container-cube .swiper-slide-shadow-top, +.swiper-container-cube .swiper-slide-shadow-bottom, +.swiper-container-cube .swiper-slide-shadow-left, +.swiper-container-cube .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.swiper-container-cube .swiper-cube-shadow { + position: absolute; + left: 0; + bottom: 0px; + width: 100%; + height: 100%; + background: #000; + opacity: 0.6; + -webkit-filter: blur(50px); + filter: blur(50px); + z-index: 0; +} +.swiper-container-flip { + overflow: visible; +} +.swiper-container-flip .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; +} +.swiper-container-flip .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-flip .swiper-slide-active, +.swiper-container-flip .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-flip .swiper-slide-shadow-top, +.swiper-container-flip .swiper-slide-shadow-bottom, +.swiper-container-flip .swiper-slide-shadow-left, +.swiper-container-flip .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.swiper-container-coverflow .swiper-wrapper { + /* Windows 8 IE 10 fix */ + -ms-perspective: 1200px; +} diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/css/swiper.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/css/swiper.min.css new file mode 100644 index 0000000..c5d3936 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/css/swiper.min.css @@ -0,0 +1,12 @@ +/** + * Swiper 4.1.6 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * http://www.idangero.us/swiper/ + * + * Copyright 2014-2018 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: February 11, 2018 + */ +.swiper-container{margin:0 auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;height:100%;position:relative;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform,-webkit-transform}.swiper-invisible-blank-slide{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-transition-property:height,-webkit-transform;transition-property:height,-webkit-transform;-o-transition-property:transform,height;transition-property:transform,height;transition-property:transform,height,-webkit-transform}.swiper-container-3d{-webkit-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-wp8-horizontal,.swiper-container-wp8-horizontal>.swiper-wrapper{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-container-wp8-vertical,.swiper-container-wp8-vertical>.swiper-wrapper{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s opacity;-o-transition:.3s opacity;transition:.3s opacity;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transform:scale(.33);-ms-transform:scale(.33);transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{-webkit-transform:scale(.66);-ms-transform:scale(.66);transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{-webkit-transform:scale(.33);-ms-transform:scale(.33);transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{-webkit-transform:scale(.66);-ms-transform:scale(.66);transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{-webkit-transform:scale(.33);-ms-transform:scale(.33);transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;-webkit-transition:.2s top,.2s -webkit-transform;transition:.2s top,.2s -webkit-transform;-o-transition:.2s transform,.2s top;transition:.2s transform,.2s top;transition:.2s transform,.2s top,.2s -webkit-transform}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:.2s left,.2s -webkit-transform;transition:.2s left,.2s -webkit-transform;-o-transition:.2s transform,.2s left;transition:.2s transform,.2s left;transition:.2s transform,.2s left,.2s -webkit-transform}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:.2s right,.2s -webkit-transform;transition:.2s right,.2s -webkit-transform;-o-transition:.2s transform,.2s right;transition:.2s transform,.2s right;transition:.2s transform,.2s right,.2s -webkit-transform}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-progressbar.swiper-pagination-white{background:rgba(255,255,255,.25)}.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-pagination-progressbar.swiper-pagination-black{background:rgba(0,0,0,.25)}.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill{background:#000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:'';width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px} \ No newline at end of file diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.bundle.js b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.bundle.js new file mode 100644 index 0000000..427b8d6 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.bundle.js @@ -0,0 +1,6478 @@ +/** + * Swiper 4.1.6 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * http://www.idangero.us/swiper/ + * + * Copyright 2014-2018 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: February 11, 2018 + */ + +import { $, add, addClass, append, attr, children, closest, css, data, each, eq, find, hasClass, html, index, is, next, nextAll, off, offset, on, outerHeight, outerWidth, parent, parents, prepend, prev, prevAll, remove, removeAttr, removeClass, styles, text, toggleClass, transform, transition, transitionEnd, trigger } from 'dom7/dist/dom7.modular'; +import { document, window } from 'ssr-window'; + +const Methods = { + addClass, + removeClass, + hasClass, + toggleClass, + attr, + removeAttr, + data, + transform, + transition, + on, + off, + trigger, + transitionEnd, + outerWidth, + outerHeight, + offset, + css, + each, + html, + text, + is, + index, + eq, + append, + prepend, + next, + nextAll, + prev, + prevAll, + parent, + parents, + closest, + find, + children, + remove, + add, + styles, +}; + +Object.keys(Methods).forEach((methodName) => { + $.fn[methodName] = Methods[methodName]; +}); + +const Utils = { + deleteProps(obj) { + const object = obj; + Object.keys(object).forEach((key) => { + try { + object[key] = null; + } catch (e) { + // no getter for object + } + try { + delete object[key]; + } catch (e) { + // something got wrong + } + }); + }, + nextTick(callback, delay = 0) { + return setTimeout(callback, delay); + }, + now() { + return Date.now(); + }, + getTranslate(el, axis = 'x') { + let matrix; + let curTransform; + let transformMatrix; + + const curStyle = window.getComputedStyle(el, null); + + if (window.WebKitCSSMatrix) { + curTransform = curStyle.transform || curStyle.webkitTransform; + if (curTransform.split(',').length > 6) { + curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); + } + // Some old versions of Webkit choke when 'none' is passed; pass + // empty string instead in this case + transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); + } else { + transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); + matrix = transformMatrix.toString().split(','); + } + + if (axis === 'x') { + // Latest Chrome and webkits Fix + if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; + // Crazy IE10 Matrix + else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); + // Normal Browsers + else curTransform = parseFloat(matrix[4]); + } + if (axis === 'y') { + // Latest Chrome and webkits Fix + if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; + // Crazy IE10 Matrix + else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); + // Normal Browsers + else curTransform = parseFloat(matrix[5]); + } + return curTransform || 0; + }, + parseUrlQuery(url) { + const query = {}; + let urlToParse = url || window.location.href; + let i; + let params; + let param; + let length; + if (typeof urlToParse === 'string' && urlToParse.length) { + urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : ''; + params = urlToParse.split('&').filter(paramsPart => paramsPart !== ''); + length = params.length; + + for (i = 0; i < length; i += 1) { + param = params[i].replace(/#\S+/g, '').split('='); + query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || ''; + } + } + return query; + }, + isObject(o) { + return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object; + }, + extend(...args) { + const to = Object(args[0]); + for (let i = 1; i < args.length; i += 1) { + const nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + const keysArray = Object.keys(Object(nextSource)); + for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + const nextKey = keysArray[nextIndex]; + const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + Utils.extend(to[nextKey], nextSource[nextKey]); + } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + to[nextKey] = {}; + Utils.extend(to[nextKey], nextSource[nextKey]); + } else { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + } + return to; + }, +}; + +const Support = (function Support() { + const testDiv = document.createElement('div'); + return { + touch: (window.Modernizr && window.Modernizr.touch === true) || (function checkTouch() { + return !!(('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch)); + }()), + + pointerEvents: !!(window.navigator.pointerEnabled || window.PointerEvent), + prefixedPointerEvents: !!window.navigator.msPointerEnabled, + + transition: (function checkTransition() { + const style = testDiv.style; + return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style); + }()), + transforms3d: (window.Modernizr && window.Modernizr.csstransforms3d === true) || (function checkTransforms3d() { + const style = testDiv.style; + return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style); + }()), + + flexbox: (function checkFlexbox() { + const style = testDiv.style; + const styles$$1 = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' '); + for (let i = 0; i < styles$$1.length; i += 1) { + if (styles$$1[i] in style) return true; + } + return false; + }()), + + observer: (function checkObserver() { + return ('MutationObserver' in window || 'WebkitMutationObserver' in window); + }()), + + passiveListener: (function checkPassiveListener() { + let supportsPassive = false; + try { + const opts = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line + get() { + supportsPassive = true; + }, + }); + window.addEventListener('testPassiveListener', null, opts); + } catch (e) { + // No support + } + return supportsPassive; + }()), + + gestures: (function checkGestures() { + return 'ongesturestart' in window; + }()), + }; +}()); + +class SwiperClass { + constructor(params = {}) { + const self = this; + self.params = params; + + // Events + self.eventsListeners = {}; + + if (self.params && self.params.on) { + Object.keys(self.params.on).forEach((eventName) => { + self.on(eventName, self.params.on[eventName]); + }); + } + } + on(events, handler) { + const self = this; + if (typeof handler !== 'function') return self; + events.split(' ').forEach((event) => { + if (!self.eventsListeners[event]) self.eventsListeners[event] = []; + self.eventsListeners[event].push(handler); + }); + return self; + } + once(events, handler) { + const self = this; + if (typeof handler !== 'function') return self; + function onceHandler(...args) { + handler.apply(self, args); + self.off(events, onceHandler); + } + return self.on(events, onceHandler); + } + off(events, handler) { + const self = this; + events.split(' ').forEach((event) => { + if (typeof handler === 'undefined') { + self.eventsListeners[event] = []; + } else { + self.eventsListeners[event].forEach((eventHandler, index$$1) => { + if (eventHandler === handler) { + self.eventsListeners[event].splice(index$$1, 1); + } + }); + } + }); + return self; + } + emit(...args) { + const self = this; + if (!self.eventsListeners) return self; + let events; + let data$$1; + let context; + if (typeof args[0] === 'string' || Array.isArray(args[0])) { + events = args[0]; + data$$1 = args.slice(1, args.length); + context = self; + } else { + events = args[0].events; + data$$1 = args[0].data; + context = args[0].context || self; + } + const eventsArray = Array.isArray(events) ? events : events.split(' '); + eventsArray.forEach((event) => { + if (self.eventsListeners[event]) { + const handlers = []; + self.eventsListeners[event].forEach((eventHandler) => { + handlers.push(eventHandler); + }); + handlers.forEach((eventHandler) => { + eventHandler.apply(context, data$$1); + }); + } + }); + return self; + } + useModulesParams(instanceParams) { + const instance = this; + if (!instance.modules) return; + Object.keys(instance.modules).forEach((moduleName) => { + const module = instance.modules[moduleName]; + // Extend params + if (module.params) { + Utils.extend(instanceParams, module.params); + } + }); + } + useModules(modulesParams = {}) { + const instance = this; + if (!instance.modules) return; + Object.keys(instance.modules).forEach((moduleName) => { + const module = instance.modules[moduleName]; + const moduleParams = modulesParams[moduleName] || {}; + // Extend instance methods and props + if (module.instance) { + Object.keys(module.instance).forEach((modulePropName) => { + const moduleProp = module.instance[modulePropName]; + if (typeof moduleProp === 'function') { + instance[modulePropName] = moduleProp.bind(instance); + } else { + instance[modulePropName] = moduleProp; + } + }); + } + // Add event listeners + if (module.on && instance.on) { + Object.keys(module.on).forEach((moduleEventName) => { + instance.on(moduleEventName, module.on[moduleEventName]); + }); + } + + // Module create callback + if (module.create) { + module.create.bind(instance)(moduleParams); + } + }); + } + static set components(components) { + const Class = this; + if (!Class.use) return; + Class.use(components); + } + static installModule(module, ...params) { + const Class = this; + if (!Class.prototype.modules) Class.prototype.modules = {}; + const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`); + Class.prototype.modules[name] = module; + // Prototype + if (module.proto) { + Object.keys(module.proto).forEach((key) => { + Class.prototype[key] = module.proto[key]; + }); + } + // Class + if (module.static) { + Object.keys(module.static).forEach((key) => { + Class[key] = module.static[key]; + }); + } + // Callback + if (module.install) { + module.install.apply(Class, params); + } + return Class; + } + static use(module, ...params) { + const Class = this; + if (Array.isArray(module)) { + module.forEach(m => Class.installModule(m)); + return Class; + } + return Class.installModule(module, ...params); + } +} + +var updateSize = function () { + const swiper = this; + let width; + let height; + const $el = swiper.$el; + if (typeof swiper.params.width !== 'undefined') { + width = swiper.params.width; + } else { + width = $el[0].clientWidth; + } + if (typeof swiper.params.height !== 'undefined') { + height = swiper.params.height; + } else { + height = $el[0].clientHeight; + } + if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) { + return; + } + + // Subtract paddings + width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10); + height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10); + + Utils.extend(swiper, { + width, + height, + size: swiper.isHorizontal() ? width : height, + }); +}; + +var updateSlides = function () { + const swiper = this; + const params = swiper.params; + + const { + $wrapperEl, size: swiperSize, rtl, wrongRTL, + } = swiper; + const slides = $wrapperEl.children(`.${swiper.params.slideClass}`); + const isVirtual = swiper.virtual && params.virtual.enabled; + const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; + let snapGrid = []; + const slidesGrid = []; + const slidesSizesGrid = []; + + let offsetBefore = params.slidesOffsetBefore; + if (typeof offsetBefore === 'function') { + offsetBefore = params.slidesOffsetBefore.call(swiper); + } + + let offsetAfter = params.slidesOffsetAfter; + if (typeof offsetAfter === 'function') { + offsetAfter = params.slidesOffsetAfter.call(swiper); + } + + const previousSlidesLength = slidesLength; + const previousSnapGridLength = swiper.snapGrid.length; + const previousSlidesGridLength = swiper.snapGrid.length; + + let spaceBetween = params.spaceBetween; + let slidePosition = -offsetBefore; + let prevSlideSize = 0; + let index$$1 = 0; + if (typeof swiperSize === 'undefined') { + return; + } + if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { + spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize; + } + + swiper.virtualSize = -spaceBetween; + + // reset margins + if (rtl) slides.css({ marginLeft: '', marginTop: '' }); + else slides.css({ marginRight: '', marginBottom: '' }); + + let slidesNumberEvenToRows; + if (params.slidesPerColumn > 1) { + if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) { + slidesNumberEvenToRows = slidesLength; + } else { + slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn; + } + if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') { + slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn); + } + } + + // Calc slides + let slideSize; + const slidesPerColumn = params.slidesPerColumn; + const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn; + const numFullColumns = slidesPerRow - ((params.slidesPerColumn * slidesPerRow) - slidesLength); + for (let i = 0; i < slidesLength; i += 1) { + slideSize = 0; + const slide = slides.eq(i); + if (params.slidesPerColumn > 1) { + // Set slides order + let newSlideOrderIndex; + let column; + let row; + if (params.slidesPerColumnFill === 'column') { + column = Math.floor(i / slidesPerColumn); + row = i - (column * slidesPerColumn); + if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) { + row += 1; + if (row >= slidesPerColumn) { + row = 0; + column += 1; + } + } + newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn); + slide + .css({ + '-webkit-box-ordinal-group': newSlideOrderIndex, + '-moz-box-ordinal-group': newSlideOrderIndex, + '-ms-flex-order': newSlideOrderIndex, + '-webkit-order': newSlideOrderIndex, + order: newSlideOrderIndex, + }); + } else { + row = Math.floor(i / slidesPerRow); + column = i - (row * slidesPerRow); + } + slide + .css( + `margin-${swiper.isHorizontal() ? 'top' : 'left'}`, + (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`) + ) + .attr('data-swiper-column', column) + .attr('data-swiper-row', row); + } + if (slide.css('display') === 'none') continue; // eslint-disable-line + if (params.slidesPerView === 'auto') { + slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true); + if (params.roundLengths) slideSize = Math.floor(slideSize); + } else { + slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView; + if (params.roundLengths) slideSize = Math.floor(slideSize); + + if (slides[i]) { + if (swiper.isHorizontal()) { + slides[i].style.width = `${slideSize}px`; + } else { + slides[i].style.height = `${slideSize}px`; + } + } + } + if (slides[i]) { + slides[i].swiperSlideSize = slideSize; + } + slidesSizesGrid.push(slideSize); + + + if (params.centeredSlides) { + slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween; + if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; + if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; + if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; + if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition); + slidesGrid.push(slidePosition); + } else { + if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition); + slidesGrid.push(slidePosition); + slidePosition = slidePosition + slideSize + spaceBetween; + } + + swiper.virtualSize += slideSize + spaceBetween; + + prevSlideSize = slideSize; + + index$$1 += 1; + } + swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; + let newSlidesGrid; + + if ( + rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { + $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` }); + } + if (!Support.flexbox || params.setWrapperSize) { + if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` }); + else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` }); + } + + if (params.slidesPerColumn > 1) { + swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows; + swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween; + if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` }); + else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` }); + if (params.centeredSlides) { + newSlidesGrid = []; + for (let i = 0; i < snapGrid.length; i += 1) { + if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(snapGrid[i]); + } + snapGrid = newSlidesGrid; + } + } + + // Remove last grid elements depending on width + if (!params.centeredSlides) { + newSlidesGrid = []; + for (let i = 0; i < snapGrid.length; i += 1) { + if (snapGrid[i] <= swiper.virtualSize - swiperSize) { + newSlidesGrid.push(snapGrid[i]); + } + } + snapGrid = newSlidesGrid; + if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { + snapGrid.push(swiper.virtualSize - swiperSize); + } + } + if (snapGrid.length === 0) snapGrid = [0]; + + if (params.spaceBetween !== 0) { + if (swiper.isHorizontal()) { + if (rtl) slides.css({ marginLeft: `${spaceBetween}px` }); + else slides.css({ marginRight: `${spaceBetween}px` }); + } else slides.css({ marginBottom: `${spaceBetween}px` }); + } + + Utils.extend(swiper, { + slides, + snapGrid, + slidesGrid, + slidesSizesGrid, + }); + + if (slidesLength !== previousSlidesLength) { + swiper.emit('slidesLengthChange'); + } + if (snapGrid.length !== previousSnapGridLength) { + if (swiper.params.watchOverflow) swiper.checkOverflow(); + swiper.emit('snapGridLengthChange'); + } + if (slidesGrid.length !== previousSlidesGridLength) { + swiper.emit('slidesGridLengthChange'); + } + + if (params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateSlidesOffset(); + } +}; + +var updateAutoHeight = function () { + const swiper = this; + const activeSlides = []; + let newHeight = 0; + let i; + + // Find slides currently in view + if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { + for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { + const index$$1 = swiper.activeIndex + i; + if (index$$1 > swiper.slides.length) break; + activeSlides.push(swiper.slides.eq(index$$1)[0]); + } + } else { + activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]); + } + + // Find new height from highest slide in view + for (i = 0; i < activeSlides.length; i += 1) { + if (typeof activeSlides[i] !== 'undefined') { + const height = activeSlides[i].offsetHeight; + newHeight = height > newHeight ? height : newHeight; + } + } + + // Update Height + if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`); +}; + +var updateSlidesOffset = function () { + const swiper = this; + const slides = swiper.slides; + for (let i = 0; i < slides.length; i += 1) { + slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; + } +}; + +var updateSlidesProgress = function (translate = this.translate || 0) { + const swiper = this; + const params = swiper.params; + + const { slides, rtl } = swiper; + + if (slides.length === 0) return; + if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); + + let offsetCenter = -translate; + if (rtl) offsetCenter = translate; + + // Visible Slides + slides.removeClass(params.slideVisibleClass); + + for (let i = 0; i < slides.length; i += 1) { + const slide = slides[i]; + const slideProgress = + ( + (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset + ) / (slide.swiperSlideSize + params.spaceBetween); + if (params.watchSlidesVisibility) { + const slideBefore = -(offsetCenter - slide.swiperSlideOffset); + const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; + const isVisible = + (slideBefore >= 0 && slideBefore < swiper.size) || + (slideAfter > 0 && slideAfter <= swiper.size) || + (slideBefore <= 0 && slideAfter >= swiper.size); + if (isVisible) { + slides.eq(i).addClass(params.slideVisibleClass); + } + } + slide.progress = rtl ? -slideProgress : slideProgress; + } +}; + +var updateProgress = function (translate = this.translate || 0) { + const swiper = this; + const params = swiper.params; + + const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + let { progress, isBeginning, isEnd } = swiper; + const wasBeginning = isBeginning; + const wasEnd = isEnd; + if (translatesDiff === 0) { + progress = 0; + isBeginning = true; + isEnd = true; + } else { + progress = (translate - swiper.minTranslate()) / (translatesDiff); + isBeginning = progress <= 0; + isEnd = progress >= 1; + } + Utils.extend(swiper, { + progress, + isBeginning, + isEnd, + }); + + if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate); + + if (isBeginning && !wasBeginning) { + swiper.emit('reachBeginning toEdge'); + } + if (isEnd && !wasEnd) { + swiper.emit('reachEnd toEdge'); + } + if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) { + swiper.emit('fromEdge'); + } + + swiper.emit('progress', progress); +}; + +var updateSlidesClasses = function () { + const swiper = this; + + const { + slides, params, $wrapperEl, activeIndex, realIndex, + } = swiper; + const isVirtual = swiper.virtual && params.virtual.enabled; + + slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`); + + let activeSlide; + if (isVirtual) { + activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index="${activeIndex}"]`); + } else { + activeSlide = slides.eq(activeIndex); + } + + // Active classes + activeSlide.addClass(params.slideActiveClass); + + if (params.loop) { + // Duplicate to all looped slides + if (activeSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${realIndex}"]`) + .addClass(params.slideDuplicateActiveClass); + } else { + $wrapperEl + .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${realIndex}"]`) + .addClass(params.slideDuplicateActiveClass); + } + } + // Next Slide + let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass); + if (params.loop && nextSlide.length === 0) { + nextSlide = slides.eq(0); + nextSlide.addClass(params.slideNextClass); + } + // Prev Slide + let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass); + if (params.loop && prevSlide.length === 0) { + prevSlide = slides.eq(-1); + prevSlide.addClass(params.slidePrevClass); + } + if (params.loop) { + // Duplicate to all looped slides + if (nextSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicateNextClass); + } else { + $wrapperEl + .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicateNextClass); + } + if (prevSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicatePrevClass); + } else { + $wrapperEl + .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicatePrevClass); + } + } +}; + +var updateActiveIndex = function (newActiveIndex) { + const swiper = this; + const translate = swiper.rtl ? swiper.translate : -swiper.translate; + const { + slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex, + } = swiper; + let activeIndex = newActiveIndex; + let snapIndex; + if (typeof activeIndex === 'undefined') { + for (let i = 0; i < slidesGrid.length; i += 1) { + if (typeof slidesGrid[i + 1] !== 'undefined') { + if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) { + activeIndex = i; + } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { + activeIndex = i + 1; + } + } else if (translate >= slidesGrid[i]) { + activeIndex = i; + } + } + // Normalize slideIndex + if (params.normalizeSlideIndex) { + if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; + } + } + if (snapGrid.indexOf(translate) >= 0) { + snapIndex = snapGrid.indexOf(translate); + } else { + snapIndex = Math.floor(activeIndex / params.slidesPerGroup); + } + if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; + if (activeIndex === previousIndex) { + if (snapIndex !== previousSnapIndex) { + swiper.snapIndex = snapIndex; + swiper.emit('snapIndexChange'); + } + return; + } + + // Get real index + const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); + + Utils.extend(swiper, { + snapIndex, + realIndex, + previousIndex, + activeIndex, + }); + swiper.emit('activeIndexChange'); + swiper.emit('snapIndexChange'); + if (previousRealIndex !== realIndex) { + swiper.emit('realIndexChange'); + } + swiper.emit('slideChange'); +}; + +var updateClickedSlide = function (e) { + const swiper = this; + const params = swiper.params; + const slide = $(e.target).closest(`.${params.slideClass}`)[0]; + let slideFound = false; + if (slide) { + for (let i = 0; i < swiper.slides.length; i += 1) { + if (swiper.slides[i] === slide) slideFound = true; + } + } + + if (slide && slideFound) { + swiper.clickedSlide = slide; + if (swiper.virtual && swiper.params.virtual.enabled) { + swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10); + } else { + swiper.clickedIndex = $(slide).index(); + } + } else { + swiper.clickedSlide = undefined; + swiper.clickedIndex = undefined; + return; + } + if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { + swiper.slideToClickedSlide(); + } +}; + +var update = { + updateSize, + updateSlides, + updateAutoHeight, + updateSlidesOffset, + updateSlidesProgress, + updateProgress, + updateSlidesClasses, + updateActiveIndex, + updateClickedSlide, +}; + +var getTranslate = function (axis = this.isHorizontal() ? 'x' : 'y') { + const swiper = this; + + const { + params, rtl, translate, $wrapperEl, + } = swiper; + + if (params.virtualTranslate) { + return rtl ? -translate : translate; + } + + let currentTranslate = Utils.getTranslate($wrapperEl[0], axis); + if (rtl) currentTranslate = -currentTranslate; + + return currentTranslate || 0; +}; + +var setTranslate = function (translate, byController) { + const swiper = this; + const { + rtl, params, $wrapperEl, progress, + } = swiper; + let x = 0; + let y = 0; + const z = 0; + + if (swiper.isHorizontal()) { + x = rtl ? -translate : translate; + } else { + y = translate; + } + + if (params.roundLengths) { + x = Math.floor(x); + y = Math.floor(y); + } + + if (!params.virtualTranslate) { + if (Support.transforms3d) $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`); + else $wrapperEl.transform(`translate(${x}px, ${y}px)`); + } + + swiper.translate = swiper.isHorizontal() ? x : y; + + // Check if we need to update progress + let newProgress; + const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + if (translatesDiff === 0) { + newProgress = 0; + } else { + newProgress = (translate - swiper.minTranslate()) / (translatesDiff); + } + if (newProgress !== progress) { + swiper.updateProgress(translate); + } + + swiper.emit('setTranslate', swiper.translate, byController); +}; + +var minTranslate = function () { + return (-this.snapGrid[0]); +}; + +var maxTranslate = function () { + return (-this.snapGrid[this.snapGrid.length - 1]); +}; + +var translate = { + getTranslate, + setTranslate, + minTranslate, + maxTranslate, +}; + +var setTransition = function (duration, byController) { + const swiper = this; + + swiper.$wrapperEl.transition(duration); + + swiper.emit('setTransition', duration, byController); +}; + +var transitionStart = function (runCallbacks = true, direction) { + const swiper = this; + const { activeIndex, params, previousIndex } = swiper; + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + + let dir = direction; + if (!dir) { + if (activeIndex > previousIndex) dir = 'next'; + else if (activeIndex < previousIndex) dir = 'prev'; + else dir = 'reset'; + } + + swiper.emit('transitionStart'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionStart'); + return; + } + swiper.emit('slideChangeTransitionStart'); + if (dir === 'next') { + swiper.emit('slideNextTransitionStart'); + } else { + swiper.emit('slidePrevTransitionStart'); + } + } +}; + +var transitionEnd$1 = function (runCallbacks = true, direction) { + const swiper = this; + const { activeIndex, previousIndex } = swiper; + swiper.animating = false; + swiper.setTransition(0); + + let dir = direction; + if (!dir) { + if (activeIndex > previousIndex) dir = 'next'; + else if (activeIndex < previousIndex) dir = 'prev'; + else dir = 'reset'; + } + + swiper.emit('transitionEnd'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionEnd'); + return; + } + swiper.emit('slideChangeTransitionEnd'); + if (dir === 'next') { + swiper.emit('slideNextTransitionEnd'); + } else { + swiper.emit('slidePrevTransitionEnd'); + } + } +}; + +var transition$1 = { + setTransition, + transitionStart, + transitionEnd: transitionEnd$1, +}; + +var slideTo = function (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + let slideIndex = index$$1; + if (slideIndex < 0) slideIndex = 0; + + const { + params, snapGrid, slidesGrid, previousIndex, activeIndex, rtl, $wrapperEl, + } = swiper; + if (swiper.animating && params.preventIntercationOnTransition) { + return false; + } + + let snapIndex = Math.floor(slideIndex / params.slidesPerGroup); + if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; + + if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) { + swiper.emit('beforeSlideChangeStart'); + } + + const translate = -snapGrid[snapIndex]; + + // Update progress + swiper.updateProgress(translate); + + // Normalize slideIndex + if (params.normalizeSlideIndex) { + for (let i = 0; i < slidesGrid.length; i += 1) { + if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) { + slideIndex = i; + } + } + } + // Directions locks + if (swiper.initialized && slideIndex !== activeIndex) { + if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { + return false; + } + if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { + if ((activeIndex || 0) !== slideIndex) return false; + } + } + + let direction; + if (slideIndex > activeIndex) direction = 'next'; + else if (slideIndex < activeIndex) direction = 'prev'; + else direction = 'reset'; + + + // Update Index + if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) { + swiper.updateActiveIndex(slideIndex); + // Update Height + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + swiper.updateSlidesClasses(); + if (params.effect !== 'slide') { + swiper.setTranslate(translate); + } + if (direction !== 'reset') { + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } + return false; + } + + if (speed === 0 || !Support.transition) { + swiper.setTransition(0); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } else { + swiper.setTransition(speed); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + if (!swiper.animating) { + swiper.animating = true; + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.transitionEnd(runCallbacks, direction); + }); + } + } + + return true; +}; + +var slideToLoop = function (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + let newIndex = index$$1; + if (swiper.params.loop) { + newIndex += swiper.loopedSlides; + } + + return swiper.slideTo(newIndex, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slideNext = function (speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + const { params, animating } = swiper; + if (params.loop) { + if (animating) return false; + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); + } + return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slidePrev = function (speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + const { params, animating } = swiper; + + if (params.loop) { + if (animating) return false; + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal); + } + return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slideReset = function (speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); +}; + +var slideToClickedSlide = function () { + const swiper = this; + const { params, $wrapperEl } = swiper; + + const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; + let slideToIndex = swiper.clickedIndex; + let realIndex; + if (params.loop) { + if (swiper.animating) return; + realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); + if (params.centeredSlides) { + if ( + (slideToIndex < swiper.loopedSlides - (slidesPerView / 2)) || + (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2)) + ) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`) + .eq(0) + .index(); + + Utils.nextTick(() => { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else if (slideToIndex > swiper.slides.length - slidesPerView) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`) + .eq(0) + .index(); + + Utils.nextTick(() => { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else { + swiper.slideTo(slideToIndex); + } +}; + +var slide = { + slideTo, + slideToLoop, + slideNext, + slidePrev, + slideReset, + slideToClickedSlide, +}; + +var loopCreate = function () { + const swiper = this; + const { params, $wrapperEl } = swiper; + // Remove duplicated slides + $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove(); + + let slides = $wrapperEl.children(`.${params.slideClass}`); + + if (params.loopFillGroupWithBlank) { + const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup); + if (blankSlidesNum !== params.slidesPerGroup) { + for (let i = 0; i < blankSlidesNum; i += 1) { + const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`); + $wrapperEl.append(blankNode); + } + slides = $wrapperEl.children(`.${params.slideClass}`); + } + } + + if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length; + + swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10); + swiper.loopedSlides += params.loopAdditionalSlides; + if (swiper.loopedSlides > slides.length) { + swiper.loopedSlides = slides.length; + } + + const prependSlides = []; + const appendSlides = []; + slides.each((index$$1, el) => { + const slide = $(el); + if (index$$1 < swiper.loopedSlides) appendSlides.push(el); + if (index$$1 < slides.length && index$$1 >= slides.length - swiper.loopedSlides) prependSlides.push(el); + slide.attr('data-swiper-slide-index', index$$1); + }); + for (let i = 0; i < appendSlides.length; i += 1) { + $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass)); + } + for (let i = prependSlides.length - 1; i >= 0; i -= 1) { + $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass)); + } +}; + +var loopFix = function () { + const swiper = this; + const { + params, activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtl, + } = swiper; + let newIndex; + swiper.allowSlidePrev = true; + swiper.allowSlideNext = true; + + const snapTranslate = -snapGrid[activeIndex]; + const diff = snapTranslate - swiper.getTranslate(); + + + // Fix For Negative Oversliding + if (activeIndex < loopedSlides) { + newIndex = (slides.length - (loopedSlides * 3)) + activeIndex; + newIndex += loopedSlides; + const slideChanged = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex > slides.length - (params.slidesPerView * 2))) { + // Fix For Positive Oversliding + newIndex = -slides.length + activeIndex + loopedSlides; + newIndex += loopedSlides; + const slideChanged = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; +}; + +var loopDestroy = function () { + const swiper = this; + const { $wrapperEl, params, slides } = swiper; + $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove(); + slides.removeAttr('data-swiper-slide-index'); +}; + +var loop = { + loopCreate, + loopFix, + loopDestroy, +}; + +var setGrabCursor = function (moving) { + const swiper = this; + if (Support.touch || !swiper.params.simulateTouch) return; + const el = swiper.el; + el.style.cursor = 'move'; + el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; + el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; + el.style.cursor = moving ? 'grabbing' : 'grab'; +}; + +var unsetGrabCursor = function () { + const swiper = this; + if (Support.touch) return; + swiper.el.style.cursor = ''; +}; + +var grabCursor = { + setGrabCursor, + unsetGrabCursor, +}; + +var appendSlide = function (slides) { + const swiper = this; + const { $wrapperEl, params } = swiper; + if (params.loop) { + swiper.loopDestroy(); + } + if (typeof slides === 'object' && 'length' in slides) { + for (let i = 0; i < slides.length; i += 1) { + if (slides[i]) $wrapperEl.append(slides[i]); + } + } else { + $wrapperEl.append(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } +}; + +var prependSlide = function (slides) { + const swiper = this; + const { params, $wrapperEl, activeIndex } = swiper; + + if (params.loop) { + swiper.loopDestroy(); + } + let newActiveIndex = activeIndex + 1; + if (typeof slides === 'object' && 'length' in slides) { + for (let i = 0; i < slides.length; i += 1) { + if (slides[i]) $wrapperEl.prepend(slides[i]); + } + newActiveIndex = activeIndex + slides.length; + } else { + $wrapperEl.prepend(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } + swiper.slideTo(newActiveIndex, 0, false); +}; + +var removeSlide = function (slidesIndexes) { + const swiper = this; + const { params, $wrapperEl, activeIndex } = swiper; + + if (params.loop) { + swiper.loopDestroy(); + swiper.slides = $wrapperEl.children(`.${params.slideClass}`); + } + let newActiveIndex = activeIndex; + let indexToRemove; + + if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { + for (let i = 0; i < slidesIndexes.length; i += 1) { + indexToRemove = slidesIndexes[i]; + if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); + if (indexToRemove < newActiveIndex) newActiveIndex -= 1; + } + newActiveIndex = Math.max(newActiveIndex, 0); + } else { + indexToRemove = slidesIndexes; + if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); + if (indexToRemove < newActiveIndex) newActiveIndex -= 1; + newActiveIndex = Math.max(newActiveIndex, 0); + } + + if (params.loop) { + swiper.loopCreate(); + } + + if (!(params.observer && Support.observer)) { + swiper.update(); + } + if (params.loop) { + swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); + } else { + swiper.slideTo(newActiveIndex, 0, false); + } +}; + +var removeAllSlides = function () { + const swiper = this; + + const slidesIndexes = []; + for (let i = 0; i < swiper.slides.length; i += 1) { + slidesIndexes.push(i); + } + swiper.removeSlide(slidesIndexes); +}; + +var manipulation = { + appendSlide, + prependSlide, + removeSlide, + removeAllSlides, +}; + +const Device = (function Device() { + const ua = window.navigator.userAgent; + + const device = { + ios: false, + android: false, + androidChrome: false, + desktop: false, + windows: false, + iphone: false, + ipod: false, + ipad: false, + cordova: window.cordova || window.phonegap, + phonegap: window.cordova || window.phonegap, + }; + + const windows = ua.match(/(Windows Phone);?[\s\/]+([\d.]+)?/); // eslint-disable-line + const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line + const ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); + + + // Windows + if (windows) { + device.os = 'windows'; + device.osVersion = windows[2]; + device.windows = true; + } + // Android + if (android && !windows) { + device.os = 'android'; + device.osVersion = android[2]; + device.android = true; + device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; + } + if (ipad || iphone || ipod) { + device.os = 'ios'; + device.ios = true; + } + // iOS + if (iphone && !ipod) { + device.osVersion = iphone[2].replace(/_/g, '.'); + device.iphone = true; + } + if (ipad) { + device.osVersion = ipad[2].replace(/_/g, '.'); + device.ipad = true; + } + if (ipod) { + device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + device.iphone = true; + } + // iOS 8+ changed UA + if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) { + if (device.osVersion.split('.')[0] === '10') { + device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0]; + } + } + + // Desktop + device.desktop = !(device.os || device.android || device.webView); + + // Webview + device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i); + + // Minimal UI + if (device.os && device.os === 'ios') { + const osVersionArr = device.osVersion.split('.'); + const metaViewport = document.querySelector('meta[name="viewport"]'); + device.minimalUi = + !device.webView && + (ipod || iphone) && + (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) && + metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0; + } + + // Pixel Ratio + device.pixelRatio = window.devicePixelRatio || 1; + + // Export object + return device; +}()); + +var onTouchStart = function (event) { + const swiper = this; + const data$$1 = swiper.touchEventsData; + const { params, touches } = swiper; + if (swiper.animating && params.preventIntercationOnTransition) { + return; + } + let e = event; + if (e.originalEvent) e = e.originalEvent; + data$$1.isTouchEvent = e.type === 'touchstart'; + if (!data$$1.isTouchEvent && 'which' in e && e.which === 3) return; + if (data$$1.isTouched && data$$1.isMoved) return; + if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) { + swiper.allowClick = true; + return; + } + if (params.swipeHandler) { + if (!$(e).closest(params.swipeHandler)[0]) return; + } + + touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + const startX = touches.currentX; + const startY = touches.currentY; + + // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore + + if ( + Device.ios && + !Device.cordova && + params.iOSEdgeSwipeDetection && + (startX <= params.iOSEdgeSwipeThreshold) && + (startX >= window.screen.width - params.iOSEdgeSwipeThreshold) + ) { + return; + } + + Utils.extend(data$$1, { + isTouched: true, + isMoved: false, + allowTouchCallbacks: true, + isScrolling: undefined, + startMoving: undefined, + }); + + touches.startX = startX; + touches.startY = startY; + data$$1.touchStartTime = Utils.now(); + swiper.allowClick = true; + swiper.updateSize(); + swiper.swipeDirection = undefined; + if (params.threshold > 0) data$$1.allowThresholdMove = false; + if (e.type !== 'touchstart') { + let preventDefault = true; + if ($(e.target).is(data$$1.formElements)) preventDefault = false; + if ( + document.activeElement && + $(document.activeElement).is(data$$1.formElements) && + document.activeElement !== e.target + ) { + document.activeElement.blur(); + } + if (preventDefault && swiper.allowTouchMove) { + e.preventDefault(); + } + } + swiper.emit('touchStart', e); +}; + +var onTouchMove = function (event) { + const swiper = this; + const data$$1 = swiper.touchEventsData; + const { params, touches, rtl } = swiper; + let e = event; + if (e.originalEvent) e = e.originalEvent; + if (!data$$1.isTouched) { + if (data$$1.startMoving && data$$1.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + return; + } + if (data$$1.isTouchEvent && e.type === 'mousemove') return; + const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (e.preventedByNestedSwiper) { + touches.startX = pageX; + touches.startY = pageY; + return; + } + if (!swiper.allowTouchMove) { + // isMoved = true; + swiper.allowClick = false; + if (data$$1.isTouched) { + Utils.extend(touches, { + startX: pageX, + startY: pageY, + currentX: pageX, + currentY: pageY, + }); + data$$1.touchStartTime = Utils.now(); + } + return; + } + if (data$$1.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { + if (swiper.isVertical()) { + // Vertical + if ( + (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) || + (pageY > touches.startY && swiper.translate >= swiper.minTranslate()) + ) { + data$$1.isTouched = false; + data$$1.isMoved = false; + return; + } + } else if ( + (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) || + (pageX > touches.startX && swiper.translate >= swiper.minTranslate()) + ) { + return; + } + } + if (data$$1.isTouchEvent && document.activeElement) { + if (e.target === document.activeElement && $(e.target).is(data$$1.formElements)) { + data$$1.isMoved = true; + swiper.allowClick = false; + return; + } + } + if (data$$1.allowTouchCallbacks) { + swiper.emit('touchMove', e); + } + if (e.targetTouches && e.targetTouches.length > 1) return; + + touches.currentX = pageX; + touches.currentY = pageY; + + const diffX = touches.currentX - touches.startX; + const diffY = touches.currentY - touches.startY; + + if (typeof data$$1.isScrolling === 'undefined') { + let touchAngle; + if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) { + data$$1.isScrolling = false; + } else { + // eslint-disable-next-line + if ((diffX * diffX) + (diffY * diffY) >= 25) { + touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI; + data$$1.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle); + } + } + } + if (data$$1.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + if (typeof startMoving === 'undefined') { + if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { + data$$1.startMoving = true; + } + } + if (data$$1.isScrolling) { + data$$1.isTouched = false; + return; + } + if (!data$$1.startMoving) { + return; + } + swiper.allowClick = false; + e.preventDefault(); + if (params.touchMoveStopPropagation && !params.nested) { + e.stopPropagation(); + } + + if (!data$$1.isMoved) { + if (params.loop) { + swiper.loopFix(); + } + data$$1.startTranslate = swiper.getTranslate(); + swiper.setTransition(0); + if (swiper.animating) { + swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); + } + data$$1.allowMomentumBounce = false; + // Grab Cursor + if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(true); + } + swiper.emit('sliderFirstMove', e); + } + swiper.emit('sliderMove', e); + data$$1.isMoved = true; + + let diff = swiper.isHorizontal() ? diffX : diffY; + touches.diff = diff; + + diff *= params.touchRatio; + if (rtl) diff = -diff; + + swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; + data$$1.currentTranslate = diff + data$$1.startTranslate; + + let disableParentSwiper = true; + let resistanceRatio = params.resistanceRatio; + if (params.touchReleaseOnEdges) { + resistanceRatio = 0; + } + if ((diff > 0 && data$$1.currentTranslate > swiper.minTranslate())) { + disableParentSwiper = false; + if (params.resistance) data$$1.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data$$1.startTranslate + diff) ** resistanceRatio); + } else if (diff < 0 && data$$1.currentTranslate < swiper.maxTranslate()) { + disableParentSwiper = false; + if (params.resistance) data$$1.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data$$1.startTranslate - diff) ** resistanceRatio); + } + + if (disableParentSwiper) { + e.preventedByNestedSwiper = true; + } + + // Directions locks + if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data$$1.currentTranslate < data$$1.startTranslate) { + data$$1.currentTranslate = data$$1.startTranslate; + } + if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data$$1.currentTranslate > data$$1.startTranslate) { + data$$1.currentTranslate = data$$1.startTranslate; + } + + + // Threshold + if (params.threshold > 0) { + if (Math.abs(diff) > params.threshold || data$$1.allowThresholdMove) { + if (!data$$1.allowThresholdMove) { + data$$1.allowThresholdMove = true; + touches.startX = touches.currentX; + touches.startY = touches.currentY; + data$$1.currentTranslate = data$$1.startTranslate; + touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; + return; + } + } else { + data$$1.currentTranslate = data$$1.startTranslate; + return; + } + } + + if (!params.followFinger) return; + + // Update active index in free mode + if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + if (params.freeMode) { + // Velocity + if (data$$1.velocities.length === 0) { + data$$1.velocities.push({ + position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], + time: data$$1.touchStartTime, + }); + } + data$$1.velocities.push({ + position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], + time: Utils.now(), + }); + } + // Update progress + swiper.updateProgress(data$$1.currentTranslate); + // Update translate + swiper.setTranslate(data$$1.currentTranslate); +}; + +var onTouchEnd = function (event) { + const swiper = this; + const data$$1 = swiper.touchEventsData; + + const { + params, touches, rtl, $wrapperEl, slidesGrid, snapGrid, + } = swiper; + let e = event; + if (e.originalEvent) e = e.originalEvent; + if (data$$1.allowTouchCallbacks) { + swiper.emit('touchEnd', e); + } + data$$1.allowTouchCallbacks = false; + if (!data$$1.isTouched) { + if (data$$1.isMoved && params.grabCursor) { + swiper.setGrabCursor(false); + } + data$$1.isMoved = false; + data$$1.startMoving = false; + return; + } + // Return Grab Cursor + if (params.grabCursor && data$$1.isMoved && data$$1.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(false); + } + + // Time diff + const touchEndTime = Utils.now(); + const timeDiff = touchEndTime - data$$1.touchStartTime; + + // Tap, doubleTap, Click + if (swiper.allowClick) { + swiper.updateClickedSlide(e); + swiper.emit('tap', e); + if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) > 300) { + if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout); + data$$1.clickTimeout = Utils.nextTick(() => { + if (!swiper || swiper.destroyed) return; + swiper.emit('click', e); + }, 300); + } + if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) < 300) { + if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout); + swiper.emit('doubleTap', e); + } + } + + data$$1.lastClickTime = Utils.now(); + Utils.nextTick(() => { + if (!swiper.destroyed) swiper.allowClick = true; + }); + + if (!data$$1.isTouched || !data$$1.isMoved || !swiper.swipeDirection || touches.diff === 0 || data$$1.currentTranslate === data$$1.startTranslate) { + data$$1.isTouched = false; + data$$1.isMoved = false; + data$$1.startMoving = false; + return; + } + data$$1.isTouched = false; + data$$1.isMoved = false; + data$$1.startMoving = false; + + let currentPos; + if (params.followFinger) { + currentPos = rtl ? swiper.translate : -swiper.translate; + } else { + currentPos = -data$$1.currentTranslate; + } + if (params.freeMode) { + if (currentPos < -swiper.minTranslate()) { + swiper.slideTo(swiper.activeIndex); + return; + } else if (currentPos > -swiper.maxTranslate()) { + if (swiper.slides.length < snapGrid.length) { + swiper.slideTo(snapGrid.length - 1); + } else { + swiper.slideTo(swiper.slides.length - 1); + } + return; + } + + if (params.freeModeMomentum) { + if (data$$1.velocities.length > 1) { + const lastMoveEvent = data$$1.velocities.pop(); + const velocityEvent = data$$1.velocities.pop(); + + const distance = lastMoveEvent.position - velocityEvent.position; + const time = lastMoveEvent.time - velocityEvent.time; + swiper.velocity = distance / time; + swiper.velocity /= 2; + if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) { + swiper.velocity = 0; + } + // this implies that the user stopped moving a finger then released. + // There would be no events with distance zero, so the last event is stale. + if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) { + swiper.velocity = 0; + } + } else { + swiper.velocity = 0; + } + swiper.velocity *= params.freeModeMomentumVelocityRatio; + + data$$1.velocities.length = 0; + let momentumDuration = 1000 * params.freeModeMomentumRatio; + const momentumDistance = swiper.velocity * momentumDuration; + + let newPosition = swiper.translate + momentumDistance; + if (rtl) newPosition = -newPosition; + let doBounce = false; + let afterBouncePosition; + const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio; + if (newPosition < swiper.maxTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition + swiper.maxTranslate() < -bounceAmount) { + newPosition = swiper.maxTranslate() - bounceAmount; + } + afterBouncePosition = swiper.maxTranslate(); + doBounce = true; + data$$1.allowMomentumBounce = true; + } else { + newPosition = swiper.maxTranslate(); + } + } else if (newPosition > swiper.minTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition - swiper.minTranslate() > bounceAmount) { + newPosition = swiper.minTranslate() + bounceAmount; + } + afterBouncePosition = swiper.minTranslate(); + doBounce = true; + data$$1.allowMomentumBounce = true; + } else { + newPosition = swiper.minTranslate(); + } + } else if (params.freeModeSticky) { + let nextSlide; + for (let j = 0; j < snapGrid.length; j += 1) { + if (snapGrid[j] > -newPosition) { + nextSlide = j; + break; + } + } + if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { + newPosition = snapGrid[nextSlide]; + } else { + newPosition = snapGrid[nextSlide - 1]; + } + newPosition = -newPosition; + } + // Fix duration + if (swiper.velocity !== 0) { + if (rtl) { + momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); + } else { + momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); + } + } else if (params.freeModeSticky) { + swiper.slideReset(); + return; + } + + if (params.freeModeMomentumBounce && doBounce) { + swiper.updateProgress(afterBouncePosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + swiper.animating = true; + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed || !data$$1.allowMomentumBounce) return; + swiper.emit('momentumBounce'); + + swiper.setTransition(params.speed); + swiper.setTranslate(afterBouncePosition); + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.transitionEnd(); + }); + }); + } else if (swiper.velocity) { + swiper.updateProgress(newPosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + if (!swiper.animating) { + swiper.animating = true; + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.transitionEnd(); + }); + } + } else { + swiper.updateProgress(newPosition); + } + + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) { + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + return; + } + + // Find current slide + let stopIndex = 0; + let groupSize = swiper.slidesSizesGrid[0]; + for (let i = 0; i < slidesGrid.length; i += params.slidesPerGroup) { + if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') { + if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) { + stopIndex = i; + groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i]; + } + } else if (currentPos >= slidesGrid[i]) { + stopIndex = i; + groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; + } + } + + // Find current slide size + const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; + + if (timeDiff > params.longSwipesMs) { + // Long touches + if (!params.longSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (swiper.swipeDirection === 'next') { + if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup); + else swiper.slideTo(stopIndex); + } + if (swiper.swipeDirection === 'prev') { + if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + params.slidesPerGroup); + else swiper.slideTo(stopIndex); + } + } else { + // Short swipes + if (!params.shortSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (swiper.swipeDirection === 'next') { + swiper.slideTo(stopIndex + params.slidesPerGroup); + } + if (swiper.swipeDirection === 'prev') { + swiper.slideTo(stopIndex); + } + } +}; + +var onResize = function () { + const swiper = this; + + const { params, el } = swiper; + + if (el && el.offsetWidth === 0) return; + + // Breakpoints + if (params.breakpoints) { + swiper.setBreakpoint(); + } + + // Save locks + const { allowSlideNext, allowSlidePrev } = swiper; + + // Disable locks on resize + swiper.allowSlideNext = true; + swiper.allowSlidePrev = true; + + swiper.updateSize(); + swiper.updateSlides(); + + if (params.freeMode) { + const newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate()); + swiper.setTranslate(newTranslate); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + } else { + swiper.updateSlidesClasses(); + if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + swiper.slideTo(swiper.activeIndex, 0, false, true); + } + } + // Return locks after resize + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; +}; + +var onClick = function (e) { + const swiper = this; + if (!swiper.allowClick) { + if (swiper.params.preventClicks) e.preventDefault(); + if (swiper.params.preventClicksPropagation && swiper.animating) { + e.stopPropagation(); + e.stopImmediatePropagation(); + } + } +}; + +function attachEvents() { + const swiper = this; + const { + params, touchEvents, el, wrapperEl, + } = swiper; + + { + swiper.onTouchStart = onTouchStart.bind(swiper); + swiper.onTouchMove = onTouchMove.bind(swiper); + swiper.onTouchEnd = onTouchEnd.bind(swiper); + } + + swiper.onClick = onClick.bind(swiper); + + const target = params.touchEventsTarget === 'container' ? el : wrapperEl; + const capture = !!params.nested; + + // Touch Events + { + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.addEventListener(touchEvents.start, swiper.onTouchStart, false); + document.addEventListener(touchEvents.move, swiper.onTouchMove, capture); + document.addEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture); + target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.addEventListener('mousedown', swiper.onTouchStart, false); + document.addEventListener('mousemove', swiper.onTouchMove, capture); + document.addEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + target.addEventListener('click', swiper.onClick, true); + } + } + + // Resize handler + swiper.on('resize observerUpdate', onResize); +} + +function detachEvents() { + const swiper = this; + + const { + params, touchEvents, el, wrapperEl, + } = swiper; + + const target = params.touchEventsTarget === 'container' ? el : wrapperEl; + const capture = !!params.nested; + + // Touch Events + { + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.removeEventListener(touchEvents.start, swiper.onTouchStart, false); + document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.removeEventListener('mousedown', swiper.onTouchStart, false); + document.removeEventListener('mousemove', swiper.onTouchMove, capture); + document.removeEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + target.removeEventListener('click', swiper.onClick, true); + } + } + + // Resize handler + swiper.off('resize observerUpdate', onResize); +} + +var events = { + attachEvents, + detachEvents, +}; + +var setBreakpoint = function () { + const swiper = this; + const { activeIndex, loopedSlides = 0, params } = swiper; + const breakpoints = params.breakpoints; + if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return; + // Set breakpoint for window width and update parameters + const breakpoint = swiper.getBreakpoint(breakpoints); + if (breakpoint && swiper.currentBreakpoint !== breakpoint) { + const breakPointsParams = breakpoint in breakpoints ? breakpoints[breakpoint] : swiper.originalParams; + const needsReLoop = params.loop && (breakPointsParams.slidesPerView !== params.slidesPerView); + + Utils.extend(swiper.params, breakPointsParams); + + Utils.extend(swiper, { + allowTouchMove: swiper.params.allowTouchMove, + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + }); + + swiper.currentBreakpoint = breakpoint; + + if (needsReLoop) { + swiper.loopDestroy(); + swiper.loopCreate(); + swiper.updateSlides(); + swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false); + } + swiper.emit('breakpoint', breakPointsParams); + } +}; + +var getBreakpoint = function (breakpoints) { + // Get breakpoint for window width + if (!breakpoints) return undefined; + let breakpoint = false; + const points = []; + Object.keys(breakpoints).forEach((point) => { + points.push(point); + }); + points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10)); + for (let i = 0; i < points.length; i += 1) { + const point = points[i]; + if (point >= window.innerWidth && !breakpoint) { + breakpoint = point; + } + } + return breakpoint || 'max'; +}; + +var breakpoints = { setBreakpoint, getBreakpoint }; + +const Browser = (function Browser() { + function isSafari() { + const ua = window.navigator.userAgent.toLowerCase(); + return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0); + } + return { + isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g), + isSafari: isSafari(), + isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent), + }; +}()); + +var addClasses = function () { + const swiper = this; + const { + classNames, params, rtl, $el, + } = swiper; + const suffixes = []; + + suffixes.push(params.direction); + + if (params.freeMode) { + suffixes.push('free-mode'); + } + if (!Support.flexbox) { + suffixes.push('no-flexbox'); + } + if (params.autoHeight) { + suffixes.push('autoheight'); + } + if (rtl) { + suffixes.push('rtl'); + } + if (params.slidesPerColumn > 1) { + suffixes.push('multirow'); + } + if (Device.android) { + suffixes.push('android'); + } + if (Device.ios) { + suffixes.push('ios'); + } + // WP8 Touch Events Fix + if (Browser.isIE && (Support.pointerEvents || Support.prefixedPointerEvents)) { + suffixes.push(`wp8-${params.direction}`); + } + + suffixes.forEach((suffix) => { + classNames.push(params.containerModifierClass + suffix); + }); + + $el.addClass(classNames.join(' ')); +}; + +var removeClasses = function () { + const swiper = this; + const { $el, classNames } = swiper; + + $el.removeClass(classNames.join(' ')); +}; + +var classes = { addClasses, removeClasses }; + +var loadImage = function (imageEl, src, srcset, sizes, checkForComplete, callback) { + let image; + function onReady() { + if (callback) callback(); + } + if (!imageEl.complete || !checkForComplete) { + if (src) { + image = new window.Image(); + image.onload = onReady; + image.onerror = onReady; + if (sizes) { + image.sizes = sizes; + } + if (srcset) { + image.srcset = srcset; + } + if (src) { + image.src = src; + } + } else { + onReady(); + } + } else { + // image already loaded... + onReady(); + } +}; + +var preloadImages = function () { + const swiper = this; + swiper.imagesToLoad = swiper.$el.find('img'); + function onReady() { + if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; + if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; + if (swiper.imagesLoaded === swiper.imagesToLoad.length) { + if (swiper.params.updateOnImagesReady) swiper.update(); + swiper.emit('imagesReady'); + } + } + for (let i = 0; i < swiper.imagesToLoad.length; i += 1) { + const imageEl = swiper.imagesToLoad[i]; + swiper.loadImage( + imageEl, + imageEl.currentSrc || imageEl.getAttribute('src'), + imageEl.srcset || imageEl.getAttribute('srcset'), + imageEl.sizes || imageEl.getAttribute('sizes'), + true, + onReady + ); + } +}; + +var images = { + loadImage, + preloadImages, +}; + +function checkOverflow() { + const swiper = this; + const wasLocked = swiper.isLocked; + + swiper.isLocked = swiper.snapGrid.length === 1; + swiper.allowTouchMove = !swiper.isLocked; + + if (wasLocked && wasLocked !== swiper.isLocked) { + swiper.isEnd = false; + swiper.navigation.update(); + } +} + +var checkOverflow$1 = { checkOverflow }; + +var defaults = { + init: true, + direction: 'horizontal', + touchEventsTarget: 'container', + initialSlide: 0, + speed: 300, + // + preventIntercationOnTransition: false, + + // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView). + iOSEdgeSwipeDetection: false, + iOSEdgeSwipeThreshold: 20, + + // Free mode + freeMode: false, + freeModeMomentum: true, + freeModeMomentumRatio: 1, + freeModeMomentumBounce: true, + freeModeMomentumBounceRatio: 1, + freeModeMomentumVelocityRatio: 1, + freeModeSticky: false, + freeModeMinimumVelocity: 0.02, + + // Autoheight + autoHeight: false, + + // Set wrapper width + setWrapperSize: false, + + // Virtual Translate + virtualTranslate: false, + + // Effects + effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' + + // Breakpoints + breakpoints: undefined, + + // Slides grid + spaceBetween: 0, + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerColumnFill: 'column', + slidesPerGroup: 1, + centeredSlides: false, + slidesOffsetBefore: 0, // in px + slidesOffsetAfter: 0, // in px + normalizeSlideIndex: true, + + // Disable swiper and hide navigation when container not overflow + watchOverflow: false, + + // Round length + roundLengths: false, + + // Touches + touchRatio: 1, + touchAngle: 45, + simulateTouch: true, + shortSwipes: true, + longSwipes: true, + longSwipesRatio: 0.5, + longSwipesMs: 300, + followFinger: true, + allowTouchMove: true, + threshold: 0, + touchMoveStopPropagation: true, + touchReleaseOnEdges: false, + + // Unique Navigation Elements + uniqueNavElements: true, + + // Resistance + resistance: true, + resistanceRatio: 0.85, + + // Progress + watchSlidesProgress: false, + watchSlidesVisibility: false, + + // Cursor + grabCursor: false, + + // Clicks + preventClicks: true, + preventClicksPropagation: true, + slideToClickedSlide: false, + + // Images + preloadImages: true, + updateOnImagesReady: true, + + // loop + loop: false, + loopAdditionalSlides: 0, + loopedSlides: null, + loopFillGroupWithBlank: false, + + // Swiping/no swiping + allowSlidePrev: true, + allowSlideNext: true, + swipeHandler: null, // '.swipe-handler', + noSwiping: true, + noSwipingClass: 'swiper-no-swiping', + noSwipingSelector: null, + + // Passive Listeners + passiveListeners: true, + + // NS + containerModifierClass: 'swiper-container-', // NEW + slideClass: 'swiper-slide', + slideBlankClass: 'swiper-slide-invisible-blank', + slideActiveClass: 'swiper-slide-active', + slideDuplicateActiveClass: 'swiper-slide-duplicate-active', + slideVisibleClass: 'swiper-slide-visible', + slideDuplicateClass: 'swiper-slide-duplicate', + slideNextClass: 'swiper-slide-next', + slideDuplicateNextClass: 'swiper-slide-duplicate-next', + slidePrevClass: 'swiper-slide-prev', + slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', + wrapperClass: 'swiper-wrapper', + + // Callbacks + runCallbacksOnInit: true, +}; + +const prototypes = { + update, + translate, + transition: transition$1, + slide, + loop, + grabCursor, + manipulation, + events, + breakpoints, + checkOverflow: checkOverflow$1, + classes, + images, +}; + +const extendedDefaults = {}; + +class Swiper$1 extends SwiperClass { + constructor(...args) { + let el; + let params; + if (args.length === 1 && args[0].constructor && args[0].constructor === Object) { + params = args[0]; + } else { + [el, params] = args; + } + if (!params) params = {}; + + params = Utils.extend({}, params); + if (el && !params.el) params.el = el; + + super(params); + + Object.keys(prototypes).forEach((prototypeGroup) => { + Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => { + if (!Swiper$1.prototype[protoMethod]) { + Swiper$1.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; + } + }); + }); + + // Swiper Instance + const swiper = this; + if (typeof swiper.modules === 'undefined') { + swiper.modules = {}; + } + Object.keys(swiper.modules).forEach((moduleName) => { + const module = swiper.modules[moduleName]; + if (module.params) { + const moduleParamName = Object.keys(module.params)[0]; + const moduleParams = module.params[moduleParamName]; + if (typeof moduleParams !== 'object') return; + if (!(moduleParamName in params && 'enabled' in moduleParams)) return; + if (params[moduleParamName] === true) { + params[moduleParamName] = { enabled: true }; + } + if ( + typeof params[moduleParamName] === 'object' && + !('enabled' in params[moduleParamName]) + ) { + params[moduleParamName].enabled = true; + } + if (!params[moduleParamName]) params[moduleParamName] = { enabled: false }; + } + }); + + // Extend defaults with modules params + const swiperParams = Utils.extend({}, defaults); + swiper.useModulesParams(swiperParams); + + // Extend defaults with passed params + swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params); + swiper.originalParams = Utils.extend({}, swiper.params); + swiper.passedParams = Utils.extend({}, params); + + // Save Dom lib + swiper.$ = $; + + // Find el + const $el = $(swiper.params.el); + el = $el[0]; + + if (!el) { + return undefined; + } + + if ($el.length > 1) { + const swipers = []; + $el.each((index$$1, containerEl) => { + const newParams = Utils.extend({}, params, { el: containerEl }); + swipers.push(new Swiper$1(newParams)); + }); + return swipers; + } + + el.swiper = swiper; + $el.data('swiper', swiper); + + // Find Wrapper + const $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`); + + // Extend Swiper + Utils.extend(swiper, { + $el, + el, + $wrapperEl, + wrapperEl: $wrapperEl[0], + + // Classes + classNames: [], + + // Slides + slides: $(), + slidesGrid: [], + snapGrid: [], + slidesSizesGrid: [], + + // isDirection + isHorizontal() { + return swiper.params.direction === 'horizontal'; + }, + isVertical() { + return swiper.params.direction === 'vertical'; + }, + // RTL + rtl: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), + wrongRTL: $wrapperEl.css('display') === '-webkit-box', + + // Indexes + activeIndex: 0, + realIndex: 0, + + // + isBeginning: true, + isEnd: false, + + // Props + translate: 0, + progress: 0, + velocity: 0, + animating: false, + + // Locks + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + + // Touch Events + touchEvents: (function touchEvents() { + const touch = ['touchstart', 'touchmove', 'touchend']; + let desktop = ['mousedown', 'mousemove', 'mouseup']; + if (Support.pointerEvents) { + desktop = ['pointerdown', 'pointermove', 'pointerup']; + } else if (Support.prefixedPointerEvents) { + desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp']; + } + swiper.touchEventsTouch = { + start: touch[0], + move: touch[1], + end: touch[2], + }; + swiper.touchEventsDesktop = { + start: desktop[0], + move: desktop[1], + end: desktop[2], + }; + return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; + }()), + touchEventsData: { + isTouched: undefined, + isMoved: undefined, + allowTouchCallbacks: undefined, + touchStartTime: undefined, + isScrolling: undefined, + currentTranslate: undefined, + startTranslate: undefined, + allowThresholdMove: undefined, + // Form elements to match + formElements: 'input, select, option, textarea, button, video', + // Last click time + lastClickTime: Utils.now(), + clickTimeout: undefined, + // Velocities + velocities: [], + allowMomentumBounce: undefined, + isTouchEvent: undefined, + startMoving: undefined, + }, + + // Clicks + allowClick: true, + + // Touches + allowTouchMove: swiper.params.allowTouchMove, + + touches: { + startX: 0, + startY: 0, + currentX: 0, + currentY: 0, + diff: 0, + }, + + // Images + imagesToLoad: [], + imagesLoaded: 0, + + }); + + // Install Modules + swiper.useModules(); + + // Init + if (swiper.params.init) { + swiper.init(); + } + + // Return app instance + return swiper; + } + slidesPerViewDynamic() { + const swiper = this; + const { + params, slides, slidesGrid, size: swiperSize, activeIndex, + } = swiper; + let spv = 1; + if (params.centeredSlides) { + let slideSize = slides[activeIndex].swiperSlideSize; + let breakLoop; + for (let i = activeIndex + 1; i < slides.length; i += 1) { + if (slides[i] && !breakLoop) { + slideSize += slides[i].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) breakLoop = true; + } + } + for (let i = activeIndex - 1; i >= 0; i -= 1) { + if (slides[i] && !breakLoop) { + slideSize += slides[i].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) breakLoop = true; + } + } + } else { + for (let i = activeIndex + 1; i < slides.length; i += 1) { + if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) { + spv += 1; + } + } + } + return spv; + } + update() { + const swiper = this; + if (!swiper || swiper.destroyed) return; + swiper.updateSize(); + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + + function setTranslate() { + const translateValue = swiper.rtl ? swiper.translate * -1 : swiper.translate; + const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); + swiper.setTranslate(newTranslate); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + let translated; + if (swiper.params.freeMode) { + setTranslate(); + if (swiper.params.autoHeight) { + swiper.updateAutoHeight(); + } + } else { + if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + translated = swiper.slideTo(swiper.activeIndex, 0, false, true); + } + if (!translated) { + setTranslate(); + } + } + swiper.emit('update'); + } + init() { + const swiper = this; + if (swiper.initialized) return; + + swiper.emit('beforeInit'); + + // Set breakpoint + if (swiper.params.breakpoints) { + swiper.setBreakpoint(); + } + + // Add Classes + swiper.addClasses(); + + // Create loop + if (swiper.params.loop) { + swiper.loopCreate(); + } + + // Update size + swiper.updateSize(); + + // Update slides + swiper.updateSlides(); + + if (swiper.params.watchOverflow) { + swiper.checkOverflow(); + } + + // Set Grab Cursor + if (swiper.params.grabCursor) { + swiper.setGrabCursor(); + } + + if (swiper.params.preloadImages) { + swiper.preloadImages(); + } + + // Slide To Initial Slide + if (swiper.params.loop) { + swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit); + } else { + swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit); + } + + // Attach events + swiper.attachEvents(); + + // Init Flag + swiper.initialized = true; + + // Emit + swiper.emit('init'); + } + destroy(deleteInstance = true, cleanStyles = true) { + const swiper = this; + const { + params, $el, $wrapperEl, slides, + } = swiper; + swiper.emit('beforeDestroy'); + + // Init Flag + swiper.initialized = false; + + // Detach events + swiper.detachEvents(); + + // Destroy loop + if (params.loop) { + swiper.loopDestroy(); + } + + // Cleanup styles + if (cleanStyles) { + swiper.removeClasses(); + $el.removeAttr('style'); + $wrapperEl.removeAttr('style'); + if (slides && slides.length) { + slides + .removeClass([ + params.slideVisibleClass, + params.slideActiveClass, + params.slideNextClass, + params.slidePrevClass, + ].join(' ')) + .removeAttr('style') + .removeAttr('data-swiper-slide-index') + .removeAttr('data-swiper-column') + .removeAttr('data-swiper-row'); + } + } + + swiper.emit('destroy'); + + // Detach emitter events + Object.keys(swiper.eventsListeners).forEach((eventName) => { + swiper.off(eventName); + }); + + if (deleteInstance !== false) { + swiper.$el[0].swiper = null; + swiper.$el.data('swiper', null); + Utils.deleteProps(swiper); + } + swiper.destroyed = true; + } + static extendDefaults(newDefaults) { + Utils.extend(extendedDefaults, newDefaults); + } + static get extendedDefaults() { + return extendedDefaults; + } + static get defaults() { + return defaults; + } + static get Class() { + return SwiperClass; + } + static get $() { + return $; + } +} + +var Device$2 = { + name: 'device', + proto: { + device: Device, + }, + static: { + device: Device, + }, +}; + +var Support$2 = { + name: 'support', + proto: { + support: Support, + }, + static: { + support: Support, + }, +}; + +var Browser$2 = { + name: 'browser', + proto: { + browser: Browser, + }, + static: { + browser: Browser, + }, +}; + +var Resize = { + name: 'resize', + create() { + const swiper = this; + Utils.extend(swiper, { + resize: { + resizeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) return; + swiper.emit('beforeResize'); + swiper.emit('resize'); + }, + orientationChangeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) return; + swiper.emit('orientationchange'); + }, + }, + }); + }, + on: { + init() { + const swiper = this; + // Emit resize + window.addEventListener('resize', swiper.resize.resizeHandler); + + // Emit orientationchange + window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + destroy() { + const swiper = this; + window.removeEventListener('resize', swiper.resize.resizeHandler); + window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + }, +}; + +const Observer = { + func: window.MutationObserver || window.WebkitMutationObserver, + attach(target, options = {}) { + const swiper = this; + + const ObserverFunc = Observer.func; + const observer = new ObserverFunc((mutations) => { + mutations.forEach((mutation) => { + swiper.emit('observerUpdate', mutation); + }); + }); + + observer.observe(target, { + attributes: typeof options.attributes === 'undefined' ? true : options.attributes, + childList: typeof options.childList === 'undefined' ? true : options.childList, + characterData: typeof options.characterData === 'undefined' ? true : options.characterData, + }); + + swiper.observer.observers.push(observer); + }, + init() { + const swiper = this; + if (!Support.observer || !swiper.params.observer) return; + if (swiper.params.observeParents) { + const containerParents = swiper.$el.parents(); + for (let i = 0; i < containerParents.length; i += 1) { + swiper.observer.attach(containerParents[i]); + } + } + // Observe container + swiper.observer.attach(swiper.$el[0], { childList: false }); + + // Observe wrapper + swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false }); + }, + destroy() { + const swiper = this; + swiper.observer.observers.forEach((observer) => { + observer.disconnect(); + }); + swiper.observer.observers = []; + }, +}; + +var Observer$1 = { + name: 'observer', + params: { + observer: false, + observeParents: false, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + observer: { + init: Observer.init.bind(swiper), + attach: Observer.attach.bind(swiper), + destroy: Observer.destroy.bind(swiper), + observers: [], + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.observer.init(); + }, + destroy() { + const swiper = this; + swiper.observer.destroy(); + }, + }, +}; + +const Virtual = { + update(force) { + const swiper = this; + const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params; + const { + from: previousFrom, + to: previousTo, + slides, + slidesGrid: previousSlidesGrid, + renderSlide, + offset: previousOffset, + } = swiper.virtual; + swiper.updateActiveIndex(); + const activeIndex = swiper.activeIndex || 0; + + let offsetProp; + if (swiper.rtl && swiper.isHorizontal()) offsetProp = 'right'; + else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; + + let slidesAfter; + let slidesBefore; + if (centeredSlides) { + slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup; + slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup; + } else { + slidesAfter = slidesPerView + (slidesPerGroup - 1); + slidesBefore = slidesPerGroup; + } + const from = Math.max((activeIndex || 0) - slidesBefore, 0); + const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); + const offset$$1 = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); + + Utils.extend(swiper.virtual, { + from, + to, + offset: offset$$1, + slidesGrid: swiper.slidesGrid, + }); + + function onRendered() { + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + if (swiper.lazy && swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + } + + if (previousFrom === from && previousTo === to && !force) { + if (swiper.slidesGrid !== previousSlidesGrid && offset$$1 !== previousOffset) { + swiper.slides.css(offsetProp, `${offset$$1}px`); + } + swiper.updateProgress(); + return; + } + if (swiper.params.virtual.renderExternal) { + swiper.params.virtual.renderExternal.call(swiper, { + offset: offset$$1, + from, + to, + slides: (function getSlides() { + const slidesToRender = []; + for (let i = from; i <= to; i += 1) { + slidesToRender.push(slides[i]); + } + return slidesToRender; + }()), + }); + onRendered(); + return; + } + const prependIndexes = []; + const appendIndexes = []; + if (force) { + swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove(); + } else { + for (let i = previousFrom; i <= previousTo; i += 1) { + if (i < from || i > to) { + swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index="${i}"]`).remove(); + } + } + } + for (let i = 0; i < slides.length; i += 1) { + if (i >= from && i <= to) { + if (typeof previousTo === 'undefined' || force) { + appendIndexes.push(i); + } else { + if (i > previousTo) appendIndexes.push(i); + if (i < previousFrom) prependIndexes.push(i); + } + } + } + appendIndexes.forEach((index$$1) => { + swiper.$wrapperEl.append(renderSlide(slides[index$$1], index$$1)); + }); + prependIndexes.sort((a, b) => a < b).forEach((index$$1) => { + swiper.$wrapperEl.prepend(renderSlide(slides[index$$1], index$$1)); + }); + swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset$$1}px`); + onRendered(); + }, + renderSlide(slide, index$$1) { + const swiper = this; + const params = swiper.params.virtual; + if (params.cache && swiper.virtual.cache[index$$1]) { + return swiper.virtual.cache[index$$1]; + } + const $slideEl = params.renderSlide + ? $(params.renderSlide.call(swiper, slide, index$$1)) + : $(`
    ${slide}
    `); + if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index$$1); + if (params.cache) swiper.virtual.cache[index$$1] = $slideEl; + return $slideEl; + }, + appendSlide(slide) { + const swiper = this; + swiper.virtual.slides.push(slide); + swiper.virtual.update(true); + }, + prependSlide(slide) { + const swiper = this; + swiper.virtual.slides.unshift(slide); + if (swiper.params.virtual.cache) { + const cache = swiper.virtual.cache; + const newCache = {}; + Object.keys(cache).forEach((cachedIndex) => { + newCache[cachedIndex + 1] = cache[cachedIndex]; + }); + swiper.virtual.cache = newCache; + } + swiper.virtual.update(true); + swiper.slideNext(0); + }, +}; + +var Virtual$1 = { + name: 'virtual', + params: { + virtual: { + enabled: false, + slides: [], + cache: true, + renderSlide: null, + renderExternal: null, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + virtual: { + update: Virtual.update.bind(swiper), + appendSlide: Virtual.appendSlide.bind(swiper), + prependSlide: Virtual.prependSlide.bind(swiper), + renderSlide: Virtual.renderSlide.bind(swiper), + slides: swiper.params.virtual.slides, + cache: {}, + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (!swiper.params.virtual.enabled) return; + swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); + const overwriteParams = { + watchSlidesProgress: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + + swiper.virtual.update(); + }, + setTranslate() { + const swiper = this; + if (!swiper.params.virtual.enabled) return; + swiper.virtual.update(); + }, + }, +}; + +const Keyboard = { + handle(event) { + const swiper = this; + let e = event; + if (e.originalEvent) e = e.originalEvent; // jquery fix + const kc = e.keyCode || e.charCode; + // Directions locks + if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) { + return false; + } + if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) { + return false; + } + if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { + return undefined; + } + if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { + return undefined; + } + if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) { + let inView = false; + // Check that swiper should be inside of visible area of window + if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) { + return undefined; + } + const windowWidth = window.innerWidth; + const windowHeight = window.innerHeight; + const swiperOffset = swiper.$el.offset(); + if (swiper.rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; + const swiperCoord = [ + [swiperOffset.left, swiperOffset.top], + [swiperOffset.left + swiper.width, swiperOffset.top], + [swiperOffset.left, swiperOffset.top + swiper.height], + [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height], + ]; + for (let i = 0; i < swiperCoord.length; i += 1) { + const point = swiperCoord[i]; + if ( + point[0] >= 0 && point[0] <= windowWidth && + point[1] >= 0 && point[1] <= windowHeight + ) { + inView = true; + } + } + if (!inView) return undefined; + } + if (swiper.isHorizontal()) { + if (kc === 37 || kc === 39) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + if ((kc === 39 && !swiper.rtl) || (kc === 37 && swiper.rtl)) swiper.slideNext(); + if ((kc === 37 && !swiper.rtl) || (kc === 39 && swiper.rtl)) swiper.slidePrev(); + } else { + if (kc === 38 || kc === 40) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + if (kc === 40) swiper.slideNext(); + if (kc === 38) swiper.slidePrev(); + } + swiper.emit('keyPress', kc); + return undefined; + }, + enable() { + const swiper = this; + if (swiper.keyboard.enabled) return; + $(document).on('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = true; + }, + disable() { + const swiper = this; + if (!swiper.keyboard.enabled) return; + $(document).off('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = false; + }, +}; + +var Keyboard$1 = { + name: 'keyboard', + params: { + keyboard: { + enabled: false, + onlyInViewport: true, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + keyboard: { + enabled: false, + enable: Keyboard.enable.bind(swiper), + disable: Keyboard.disable.bind(swiper), + handle: Keyboard.handle.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.keyboard.enabled) { + swiper.keyboard.enable(); + } + }, + destroy() { + const swiper = this; + if (swiper.keyboard.enabled) { + swiper.keyboard.disable(); + } + }, + }, +}; + +function isEventSupported() { + const eventName = 'onwheel'; + let isSupported = eventName in document; + + if (!isSupported) { + const element = document.createElement('div'); + element.setAttribute(eventName, 'return;'); + isSupported = typeof element[eventName] === 'function'; + } + + if (!isSupported && + document.implementation && + document.implementation.hasFeature && + // always returns true in newer browsers as per the standard. + // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature + document.implementation.hasFeature('', '') !== true + ) { + // This is the only way to test support for the `wheel` event in IE9+. + isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); + } + + return isSupported; +} +const Mousewheel = { + lastScrollTime: Utils.now(), + event: (function getEvent() { + if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll'; + return isEventSupported() ? 'wheel' : 'mousewheel'; + }()), + normalize(e) { + // Reasonable defaults + const PIXEL_STEP = 10; + const LINE_HEIGHT = 40; + const PAGE_HEIGHT = 800; + + let sX = 0; + let sY = 0; // spinX, spinY + let pX = 0; + let pY = 0; // pixelX, pixelY + + // Legacy + if ('detail' in e) { + sY = e.detail; + } + if ('wheelDelta' in e) { + sY = -e.wheelDelta / 120; + } + if ('wheelDeltaY' in e) { + sY = -e.wheelDeltaY / 120; + } + if ('wheelDeltaX' in e) { + sX = -e.wheelDeltaX / 120; + } + + // side scrolling on FF with DOMMouseScroll + if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { + sX = sY; + sY = 0; + } + + pX = sX * PIXEL_STEP; + pY = sY * PIXEL_STEP; + + if ('deltaY' in e) { + pY = e.deltaY; + } + if ('deltaX' in e) { + pX = e.deltaX; + } + + if ((pX || pY) && e.deltaMode) { + if (e.deltaMode === 1) { // delta in LINE units + pX *= LINE_HEIGHT; + pY *= LINE_HEIGHT; + } else { // delta in PAGE units + pX *= PAGE_HEIGHT; + pY *= PAGE_HEIGHT; + } + } + + // Fall-back if spin cannot be determined + if (pX && !sX) { + sX = (pX < 1) ? -1 : 1; + } + if (pY && !sY) { + sY = (pY < 1) ? -1 : 1; + } + + return { + spinX: sX, + spinY: sY, + pixelX: pX, + pixelY: pY, + }; + }, + handle(event) { + let e = event; + const swiper = this; + const params = swiper.params.mousewheel; + if (e.originalEvent) e = e.originalEvent; // jquery fix + let delta = 0; + const rtlFactor = swiper.rtl ? -1 : 1; + + const data$$1 = Mousewheel.normalize(e); + + if (params.forceToAxis) { + if (swiper.isHorizontal()) { + if (Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY)) delta = data$$1.pixelX * rtlFactor; + else return true; + } else if (Math.abs(data$$1.pixelY) > Math.abs(data$$1.pixelX)) delta = data$$1.pixelY; + else return true; + } else { + delta = Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY) ? -data$$1.pixelX * rtlFactor : -data$$1.pixelY; + } + + if (delta === 0) return true; + + if (params.invert) delta = -delta; + + if (!swiper.params.freeMode) { + if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) { + if (delta < 0) { + if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { + swiper.slideNext(); + swiper.emit('scroll', e); + } else if (params.releaseOnEdges) return true; + } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { + swiper.slidePrev(); + swiper.emit('scroll', e); + } else if (params.releaseOnEdges) return true; + } + swiper.mousewheel.lastScrollTime = (new window.Date()).getTime(); + } else { + // Freemode or scrollContainer: + let position = swiper.getTranslate() + (delta * params.sensitivity); + const wasBeginning = swiper.isBeginning; + const wasEnd = swiper.isEnd; + + if (position >= swiper.minTranslate()) position = swiper.minTranslate(); + if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); + + swiper.setTransition(0); + swiper.setTranslate(position); + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) { + swiper.updateSlidesClasses(); + } + + if (swiper.params.freeModeSticky) { + clearTimeout(swiper.mousewheel.timeout); + swiper.mousewheel.timeout = Utils.nextTick(() => { + swiper.slideReset(); + }, 300); + } + // Emit event + swiper.emit('scroll', e); + + // Stop autoplay + if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.stopAutoplay(); + // Return page scroll on edge positions + if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; + } + + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + return false; + }, + enable() { + const swiper = this; + if (!Mousewheel.event) return false; + if (swiper.mousewheel.enabled) return false; + let target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $(swiper.params.mousewheel.eventsTarged); + } + target.on(Mousewheel.event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = true; + return true; + }, + disable() { + const swiper = this; + if (!Mousewheel.event) return false; + if (!swiper.mousewheel.enabled) return false; + let target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $(swiper.params.mousewheel.eventsTarged); + } + target.off(Mousewheel.event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = false; + return true; + }, +}; + +var Mousewheel$1 = { + name: 'mousewheel', + params: { + mousewheel: { + enabled: false, + releaseOnEdges: false, + invert: false, + forceToAxis: false, + sensitivity: 1, + eventsTarged: 'container', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + mousewheel: { + enabled: false, + enable: Mousewheel.enable.bind(swiper), + disable: Mousewheel.disable.bind(swiper), + handle: Mousewheel.handle.bind(swiper), + lastScrollTime: Utils.now(), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable(); + }, + destroy() { + const swiper = this; + if (swiper.mousewheel.enabled) swiper.mousewheel.disable(); + }, + }, +}; + +const Navigation = { + update() { + // Update Navigation Buttons + const swiper = this; + const params = swiper.params.navigation; + + if (swiper.params.loop) return; + const { $nextEl, $prevEl } = swiper.navigation; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + $prevEl.addClass(params.disabledClass); + } else { + $prevEl.removeClass(params.disabledClass); + } + $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + $nextEl.addClass(params.disabledClass); + } else { + $nextEl.removeClass(params.disabledClass); + } + $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + }, + init() { + const swiper = this; + const params = swiper.params.navigation; + if (!(params.nextEl || params.prevEl)) return; + + let $nextEl; + let $prevEl; + if (params.nextEl) { + $nextEl = $(params.nextEl); + if ( + swiper.params.uniqueNavElements && + typeof params.nextEl === 'string' && + $nextEl.length > 1 && + swiper.$el.find(params.nextEl).length === 1 + ) { + $nextEl = swiper.$el.find(params.nextEl); + } + } + if (params.prevEl) { + $prevEl = $(params.prevEl); + if ( + swiper.params.uniqueNavElements && + typeof params.prevEl === 'string' && + $prevEl.length > 1 && + swiper.$el.find(params.prevEl).length === 1 + ) { + $prevEl = swiper.$el.find(params.prevEl); + } + } + + if ($nextEl && $nextEl.length > 0) { + $nextEl.on('click', (e) => { + e.preventDefault(); + if (swiper.isEnd && !swiper.params.loop) return; + swiper.slideNext(); + }); + } + if ($prevEl && $prevEl.length > 0) { + $prevEl.on('click', (e) => { + e.preventDefault(); + if (swiper.isBeginning && !swiper.params.loop) return; + swiper.slidePrev(); + }); + } + + Utils.extend(swiper.navigation, { + $nextEl, + nextEl: $nextEl && $nextEl[0], + $prevEl, + prevEl: $prevEl && $prevEl[0], + }); + }, + destroy() { + const swiper = this; + const { $nextEl, $prevEl } = swiper.navigation; + if ($nextEl && $nextEl.length) { + $nextEl.off('click'); + $nextEl.removeClass(swiper.params.navigation.disabledClass); + } + if ($prevEl && $prevEl.length) { + $prevEl.off('click'); + $prevEl.removeClass(swiper.params.navigation.disabledClass); + } + }, +}; + +var Navigation$1 = { + name: 'navigation', + params: { + navigation: { + nextEl: null, + prevEl: null, + + hideOnClick: false, + disabledClass: 'swiper-button-disabled', + hiddenClass: 'swiper-button-hidden', + lockClass: 'swiper-button-lock', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + navigation: { + init: Navigation.init.bind(swiper), + update: Navigation.update.bind(swiper), + destroy: Navigation.destroy.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.navigation.init(); + swiper.navigation.update(); + }, + toEdge() { + const swiper = this; + swiper.navigation.update(); + }, + fromEdge() { + const swiper = this; + swiper.navigation.update(); + }, + destroy() { + const swiper = this; + swiper.navigation.destroy(); + }, + click(e) { + const swiper = this; + const { $nextEl, $prevEl } = swiper.navigation; + if ( + swiper.params.navigation.hideOnClick && + !$(e.target).is($prevEl) && + !$(e.target).is($nextEl) + ) { + if ($nextEl) $nextEl.toggleClass(swiper.params.navigation.hiddenClass); + if ($prevEl) $prevEl.toggleClass(swiper.params.navigation.hiddenClass); + } + }, + }, +}; + +const Pagination = { + update() { + // Render || Update Pagination bullets/items + const swiper = this; + const rtl = swiper.rtl; + const params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; + const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + const $el = swiper.pagination.$el; + // Current/Total + let current; + const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + if (swiper.params.loop) { + current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); + if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) { + current -= (slidesLength - (swiper.loopedSlides * 2)); + } + if (current > total - 1) current -= total; + if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current; + } else if (typeof swiper.snapIndex !== 'undefined') { + current = swiper.snapIndex; + } else { + current = swiper.activeIndex || 0; + } + // Types + if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { + const bullets = swiper.pagination.bullets; + let firstIndex; + let lastIndex; + let midIndex; + if (params.dynamicBullets) { + swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); + $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`); + if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { + if (current > swiper.previousIndex && swiper.pagination.dynamicBulletIndex < (params.dynamicMainBullets - 1)) { + swiper.pagination.dynamicBulletIndex += 1; + } else if (current < swiper.previousIndex && swiper.pagination.dynamicBulletIndex > 0) { + swiper.pagination.dynamicBulletIndex -= 1; + } + } + firstIndex = current - swiper.pagination.dynamicBulletIndex; + lastIndex = firstIndex + (params.dynamicMainBullets - 1); + midIndex = (lastIndex + firstIndex) / 2; + } + bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`); + if ($el.length > 1) { + bullets.each((index$$1, bullet) => { + const $bullet = $(bullet); + const bulletIndex = $bullet.index(); + if (bulletIndex === current) { + $bullet.addClass(params.bulletActiveClass); + } + if (params.dynamicBullets) { + if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { + $bullet.addClass(`${params.bulletActiveClass}-main`); + } + if (bulletIndex === firstIndex) { + $bullet + .prev() + .addClass(`${params.bulletActiveClass}-prev`) + .prev() + .addClass(`${params.bulletActiveClass}-prev-prev`); + } + if (bulletIndex === lastIndex) { + $bullet + .next() + .addClass(`${params.bulletActiveClass}-next`) + .next() + .addClass(`${params.bulletActiveClass}-next-next`); + } + } + }); + } else { + const $bullet = bullets.eq(current); + $bullet.addClass(params.bulletActiveClass); + if (params.dynamicBullets) { + const $firstDisplayedBullet = bullets.eq(firstIndex); + const $lastDisplayedBullet = bullets.eq(lastIndex); + for (let i = firstIndex; i <= lastIndex; i += 1) { + bullets.eq(i).addClass(`${params.bulletActiveClass}-main`); + } + $firstDisplayedBullet + .prev() + .addClass(`${params.bulletActiveClass}-prev`) + .prev() + .addClass(`${params.bulletActiveClass}-prev-prev`); + $lastDisplayedBullet + .next() + .addClass(`${params.bulletActiveClass}-next`) + .next() + .addClass(`${params.bulletActiveClass}-next-next`); + } + } + if (params.dynamicBullets) { + const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); + const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize); + const offsetProp = rtl ? 'right' : 'left'; + bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`); + } + } + if (params.type === 'fraction') { + $el.find(`.${params.currentClass}`).text(current + 1); + $el.find(`.${params.totalClass}`).text(total); + } + if (params.type === 'progressbar') { + const scale = (current + 1) / total; + let scaleX = scale; + let scaleY = 1; + if (!swiper.isHorizontal()) { + scaleY = scale; + scaleX = 1; + } + $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed); + } + if (params.type === 'custom' && params.renderCustom) { + $el.html(params.renderCustom(swiper, current + 1, total)); + swiper.emit('paginationRender', swiper, $el[0]); + } else { + swiper.emit('paginationUpdate', swiper, $el[0]); + } + $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + }, + render() { + // Render Container + const swiper = this; + const params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; + const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + + const $el = swiper.pagination.$el; + let paginationHTML = ''; + if (params.type === 'bullets') { + const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + for (let i = 0; i < numberOfBullets; i += 1) { + if (params.renderBullet) { + paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); + } else { + paginationHTML += `<${params.bulletElement} class="${params.bulletClass}">`; + } + } + $el.html(paginationHTML); + swiper.pagination.bullets = $el.find(`.${params.bulletClass}`); + } + if (params.type === 'fraction') { + if (params.renderFraction) { + paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); + } else { + paginationHTML = + `` + + ' / ' + + ``; + } + $el.html(paginationHTML); + } + if (params.type === 'progressbar') { + if (params.renderProgressbar) { + paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); + } else { + paginationHTML = ``; + } + $el.html(paginationHTML); + } + if (params.type !== 'custom') { + swiper.emit('paginationRender', swiper.pagination.$el[0]); + } + }, + init() { + const swiper = this; + const params = swiper.params.pagination; + if (!params.el) return; + + let $el = $(params.el); + if ($el.length === 0) return; + + if ( + swiper.params.uniqueNavElements && + typeof params.el === 'string' && + $el.length > 1 && + swiper.$el.find(params.el).length === 1 + ) { + $el = swiper.$el.find(params.el); + } + + if (params.type === 'bullets' && params.clickable) { + $el.addClass(params.clickableClass); + } + + $el.addClass(params.modifierClass + params.type); + + if (params.type === 'bullets' && params.dynamicBullets) { + $el.addClass(`${params.modifierClass}${params.type}-dynamic`); + swiper.pagination.dynamicBulletIndex = 0; + if (params.dynamicMainBullets < 1) { + params.dynamicMainBullets = 1; + } + } + + if (params.clickable) { + $el.on('click', `.${params.bulletClass}`, function onClick(e) { + e.preventDefault(); + let index$$1 = $(this).index() * swiper.params.slidesPerGroup; + if (swiper.params.loop) index$$1 += swiper.loopedSlides; + swiper.slideTo(index$$1); + }); + } + + Utils.extend(swiper.pagination, { + $el, + el: $el[0], + }); + }, + destroy() { + const swiper = this; + const params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; + const $el = swiper.pagination.$el; + + $el.removeClass(params.hiddenClass); + $el.removeClass(params.modifierClass + params.type); + if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass); + if (params.clickable) { + $el.off('click', `.${params.bulletClass}`); + } + }, +}; + +var Pagination$1 = { + name: 'pagination', + params: { + pagination: { + el: null, + bulletElement: 'span', + clickable: false, + hideOnClick: false, + renderBullet: null, + renderProgressbar: null, + renderFraction: null, + renderCustom: null, + type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom' + dynamicBullets: false, + dynamicMainBullets: 1, + bulletClass: 'swiper-pagination-bullet', + bulletActiveClass: 'swiper-pagination-bullet-active', + modifierClass: 'swiper-pagination-', // NEW + currentClass: 'swiper-pagination-current', + totalClass: 'swiper-pagination-total', + hiddenClass: 'swiper-pagination-hidden', + progressbarFillClass: 'swiper-pagination-progressbar-fill', + clickableClass: 'swiper-pagination-clickable', // NEW + lockClass: 'swiper-pagination-lock', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + pagination: { + init: Pagination.init.bind(swiper), + render: Pagination.render.bind(swiper), + update: Pagination.update.bind(swiper), + destroy: Pagination.destroy.bind(swiper), + dynamicBulletIndex: 0, + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.pagination.init(); + swiper.pagination.render(); + swiper.pagination.update(); + }, + activeIndexChange() { + const swiper = this; + if (swiper.params.loop) { + swiper.pagination.update(); + } else if (typeof swiper.snapIndex === 'undefined') { + swiper.pagination.update(); + } + }, + snapIndexChange() { + const swiper = this; + if (!swiper.params.loop) { + swiper.pagination.update(); + } + }, + slidesLengthChange() { + const swiper = this; + if (swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + snapGridLengthChange() { + const swiper = this; + if (!swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + destroy() { + const swiper = this; + swiper.pagination.destroy(); + }, + click(e) { + const swiper = this; + if ( + swiper.params.pagination.el && + swiper.params.pagination.hideOnClick && + swiper.pagination.$el.length > 0 && + !$(e.target).hasClass(swiper.params.pagination.bulletClass) + ) { + swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass); + } + }, + }, +}; + +const Scrollbar = { + setTranslate() { + const swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; + const { scrollbar, rtl, progress } = swiper; + const { + dragSize, trackSize, $dragEl, $el, + } = scrollbar; + const params = swiper.params.scrollbar; + + let newSize = dragSize; + let newPos = (trackSize - dragSize) * progress; + if (rtl && swiper.isHorizontal()) { + newPos = -newPos; + if (newPos > 0) { + newSize = dragSize - newPos; + newPos = 0; + } else if (-newPos + dragSize > trackSize) { + newSize = trackSize + newPos; + } + } else if (newPos < 0) { + newSize = dragSize + newPos; + newPos = 0; + } else if (newPos + dragSize > trackSize) { + newSize = trackSize - newPos; + } + if (swiper.isHorizontal()) { + if (Support.transforms3d) { + $dragEl.transform(`translate3d(${newPos}px, 0, 0)`); + } else { + $dragEl.transform(`translateX(${newPos}px)`); + } + $dragEl[0].style.width = `${newSize}px`; + } else { + if (Support.transforms3d) { + $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`); + } else { + $dragEl.transform(`translateY(${newPos}px)`); + } + $dragEl[0].style.height = `${newSize}px`; + } + if (params.hide) { + clearTimeout(swiper.scrollbar.timeout); + $el[0].style.opacity = 1; + swiper.scrollbar.timeout = setTimeout(() => { + $el[0].style.opacity = 0; + $el.transition(400); + }, 1000); + } + }, + setTransition(duration) { + const swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; + swiper.scrollbar.$dragEl.transition(duration); + }, + updateSize() { + const swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; + + const { scrollbar } = swiper; + const { $dragEl, $el } = scrollbar; + + $dragEl[0].style.width = ''; + $dragEl[0].style.height = ''; + const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; + + const divider = swiper.size / swiper.virtualSize; + const moveDivider = divider * (trackSize / swiper.size); + let dragSize; + if (swiper.params.scrollbar.dragSize === 'auto') { + dragSize = trackSize * divider; + } else { + dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); + } + + if (swiper.isHorizontal()) { + $dragEl[0].style.width = `${dragSize}px`; + } else { + $dragEl[0].style.height = `${dragSize}px`; + } + + if (divider >= 1) { + $el[0].style.display = 'none'; + } else { + $el[0].style.display = ''; + } + if (swiper.params.scrollbarHide) { + $el[0].style.opacity = 0; + } + Utils.extend(scrollbar, { + trackSize, + divider, + moveDivider, + dragSize, + }); + scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); + }, + setDragPosition(e) { + const swiper = this; + const { scrollbar } = swiper; + const { $el, dragSize, trackSize } = scrollbar; + + let pointerPosition; + if (swiper.isHorizontal()) { + pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX); + } else { + pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY); + } + let positionRatio; + positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize); + positionRatio = Math.max(Math.min(positionRatio, 1), 0); + if (swiper.rtl) { + positionRatio = 1 - positionRatio; + } + + const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio); + + swiper.updateProgress(position); + swiper.setTranslate(position); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + }, + onDragStart(e) { + const swiper = this; + const params = swiper.params.scrollbar; + const { scrollbar, $wrapperEl } = swiper; + const { $el, $dragEl } = scrollbar; + swiper.scrollbar.isTouched = true; + e.preventDefault(); + e.stopPropagation(); + + $wrapperEl.transition(100); + $dragEl.transition(100); + scrollbar.setDragPosition(e); + + clearTimeout(swiper.scrollbar.dragTimeout); + + $el.transition(0); + if (params.hide) { + $el.css('opacity', 1); + } + swiper.emit('scrollbarDragStart', e); + }, + onDragMove(e) { + const swiper = this; + const { scrollbar, $wrapperEl } = swiper; + const { $el, $dragEl } = scrollbar; + + if (!swiper.scrollbar.isTouched) return; + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + scrollbar.setDragPosition(e); + $wrapperEl.transition(0); + $el.transition(0); + $dragEl.transition(0); + swiper.emit('scrollbarDragMove', e); + }, + onDragEnd(e) { + const swiper = this; + + const params = swiper.params.scrollbar; + const { scrollbar } = swiper; + const { $el } = scrollbar; + + if (!swiper.scrollbar.isTouched) return; + swiper.scrollbar.isTouched = false; + if (params.hide) { + clearTimeout(swiper.scrollbar.dragTimeout); + swiper.scrollbar.dragTimeout = Utils.nextTick(() => { + $el.css('opacity', 0); + $el.transition(400); + }, 1000); + } + swiper.emit('scrollbarDragEnd', e); + if (params.snapOnRelease) { + swiper.slideReset(); + } + }, + enableDraggable() { + const swiper = this; + if (!swiper.params.scrollbar.el) return; + const { + scrollbar, touchEvents, touchEventsDesktop, params, + } = swiper; + const $el = scrollbar.$el; + const target = $el[0]; + const activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false; + const passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false; + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + if (Support.touch) { + target.addEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener); + target.addEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener); + target.addEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.addEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener); + document.addEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener); + document.addEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener); + } + } + }, + disableDraggable() { + const swiper = this; + if (!swiper.params.scrollbar.el) return; + const { + scrollbar, touchEvents, touchEventsDesktop, params, + } = swiper; + const $el = scrollbar.$el; + const target = $el[0]; + const activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false; + const passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false; + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + if (Support.touch) { + target.removeEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener); + target.removeEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener); + target.removeEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.removeEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener); + document.removeEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener); + document.removeEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener); + } + } + }, + init() { + const swiper = this; + if (!swiper.params.scrollbar.el) return; + const { scrollbar, $el: $swiperEl } = swiper; + const params = swiper.params.scrollbar; + + let $el = $(params.el); + if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { + $el = $swiperEl.find(params.el); + } + + let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`); + if ($dragEl.length === 0) { + $dragEl = $(`
    `); + $el.append($dragEl); + } + + Utils.extend(scrollbar, { + $el, + el: $el[0], + $dragEl, + dragEl: $dragEl[0], + }); + + if (params.draggable) { + scrollbar.enableDraggable(); + } + }, + destroy() { + const swiper = this; + swiper.scrollbar.disableDraggable(); + }, +}; + +var Scrollbar$1 = { + name: 'scrollbar', + params: { + scrollbar: { + el: null, + dragSize: 'auto', + hide: false, + draggable: false, + snapOnRelease: true, + lockClass: 'swiper-scrollbar-lock', + dragClass: 'swiper-scrollbar-drag', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + scrollbar: { + init: Scrollbar.init.bind(swiper), + destroy: Scrollbar.destroy.bind(swiper), + updateSize: Scrollbar.updateSize.bind(swiper), + setTranslate: Scrollbar.setTranslate.bind(swiper), + setTransition: Scrollbar.setTransition.bind(swiper), + enableDraggable: Scrollbar.enableDraggable.bind(swiper), + disableDraggable: Scrollbar.disableDraggable.bind(swiper), + setDragPosition: Scrollbar.setDragPosition.bind(swiper), + onDragStart: Scrollbar.onDragStart.bind(swiper), + onDragMove: Scrollbar.onDragMove.bind(swiper), + onDragEnd: Scrollbar.onDragEnd.bind(swiper), + isTouched: false, + timeout: null, + dragTimeout: null, + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.scrollbar.init(); + swiper.scrollbar.updateSize(); + swiper.scrollbar.setTranslate(); + }, + update() { + const swiper = this; + swiper.scrollbar.updateSize(); + }, + resize() { + const swiper = this; + swiper.scrollbar.updateSize(); + }, + observerUpdate() { + const swiper = this; + swiper.scrollbar.updateSize(); + }, + setTranslate() { + const swiper = this; + swiper.scrollbar.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + swiper.scrollbar.setTransition(duration); + }, + destroy() { + const swiper = this; + swiper.scrollbar.destroy(); + }, + }, +}; + +const Parallax = { + setTransform(el, progress) { + const swiper = this; + const { rtl } = swiper; + + const $el = $(el); + const rtlFactor = rtl ? -1 : 1; + + const p = $el.attr('data-swiper-parallax') || '0'; + let x = $el.attr('data-swiper-parallax-x'); + let y = $el.attr('data-swiper-parallax-y'); + const scale = $el.attr('data-swiper-parallax-scale'); + const opacity = $el.attr('data-swiper-parallax-opacity'); + + if (x || y) { + x = x || '0'; + y = y || '0'; + } else if (swiper.isHorizontal()) { + x = p; + y = '0'; + } else { + y = p; + x = '0'; + } + + if ((x).indexOf('%') >= 0) { + x = `${parseInt(x, 10) * progress * rtlFactor}%`; + } else { + x = `${x * progress * rtlFactor}px`; + } + if ((y).indexOf('%') >= 0) { + y = `${parseInt(y, 10) * progress}%`; + } else { + y = `${y * progress}px`; + } + + if (typeof opacity !== 'undefined' && opacity !== null) { + const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress))); + $el[0].style.opacity = currentOpacity; + } + if (typeof scale === 'undefined' || scale === null) { + $el.transform(`translate3d(${x}, ${y}, 0px)`); + } else { + const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress))); + $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`); + } + }, + setTranslate() { + const swiper = this; + const { + $el, slides, progress, snapGrid, + } = swiper; + $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each((index$$1, el) => { + swiper.parallax.setTransform(el, progress); + }); + slides.each((slideIndex, slideEl) => { + let slideProgress = slideEl.progress; + if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { + slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1)); + } + slideProgress = Math.min(Math.max(slideProgress, -1), 1); + $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each((index$$1, el) => { + swiper.parallax.setTransform(el, slideProgress); + }); + }); + }, + setTransition(duration = this.params.speed) { + const swiper = this; + const { $el } = swiper; + $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each((index$$1, parallaxEl) => { + const $parallaxEl = $(parallaxEl); + let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; + if (duration === 0) parallaxDuration = 0; + $parallaxEl.transition(parallaxDuration); + }); + }, +}; + +var Parallax$1 = { + name: 'parallax', + params: { + parallax: { + enabled: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + parallax: { + setTransform: Parallax.setTransform.bind(swiper), + setTranslate: Parallax.setTranslate.bind(swiper), + setTransition: Parallax.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (!swiper.params.parallax.enabled) return; + swiper.params.watchSlidesProgress = true; + }, + init() { + const swiper = this; + if (!swiper.params.parallax) return; + swiper.parallax.setTranslate(); + }, + setTranslate() { + const swiper = this; + if (!swiper.params.parallax) return; + swiper.parallax.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (!swiper.params.parallax) return; + swiper.parallax.setTransition(duration); + }, + }, +}; + +const Zoom = { + // Calc Scale From Multi-touches + getDistanceBetweenTouches(e) { + if (e.targetTouches.length < 2) return 1; + const x1 = e.targetTouches[0].pageX; + const y1 = e.targetTouches[0].pageY; + const x2 = e.targetTouches[1].pageX; + const y2 = e.targetTouches[1].pageY; + const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2)); + return distance; + }, + // Events + onGestureStart(e) { + const swiper = this; + const params = swiper.params.zoom; + const zoom = swiper.zoom; + const { gesture } = zoom; + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + if (!Support.gestures) { + if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureTouched = true; + gesture.scaleStart = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$slideEl || !gesture.$slideEl.length) { + gesture.$slideEl = $(e.target).closest('.swiper-slide'); + if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); + gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (gesture.$imageWrapEl.length === 0) { + gesture.$imageEl = undefined; + return; + } + } + gesture.$imageEl.transition(0); + swiper.zoom.isScaling = true; + }, + onGestureChange(e) { + const swiper = this; + const params = swiper.params.zoom; + const zoom = swiper.zoom; + const { gesture } = zoom; + if (!Support.gestures) { + if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureMoved = true; + gesture.scaleMove = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + if (Support.gestures) { + swiper.zoom.scale = e.scale * zoom.currentScale; + } else { + zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale; + } + if (zoom.scale > gesture.maxRatio) { + zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5); + } + if (zoom.scale < params.minRatio) { + zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5); + } + gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`); + }, + onGestureEnd(e) { + const swiper = this; + const params = swiper.params.zoom; + const zoom = swiper.zoom; + const { gesture } = zoom; + if (!Support.gestures) { + if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) { + return; + } + if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) { + return; + } + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); + gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`); + zoom.currentScale = zoom.scale; + zoom.isScaling = false; + if (zoom.scale === 1) gesture.$slideEl = undefined; + }, + onTouchStart(e) { + const swiper = this; + const zoom = swiper.zoom; + const { gesture, image } = zoom; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + if (image.isTouched) return; + if (Device.android) e.preventDefault(); + image.isTouched = true; + image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + }, + onTouchMove(e) { + const swiper = this; + const zoom = swiper.zoom; + const { gesture, image, velocity } = zoom; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + swiper.allowClick = false; + if (!image.isTouched || !gesture.$slideEl) return; + + if (!image.isMoved) { + image.width = gesture.$imageEl[0].offsetWidth; + image.height = gesture.$imageEl[0].offsetHeight; + image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0; + image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0; + gesture.slideWidth = gesture.$slideEl[0].offsetWidth; + gesture.slideHeight = gesture.$slideEl[0].offsetHeight; + gesture.$imageWrapEl.transition(0); + if (swiper.rtl) image.startX = -image.startX; + if (swiper.rtl) image.startY = -image.startY; + } + // Define if we need image drag + const scaledWidth = image.width * zoom.scale; + const scaledHeight = image.height * zoom.scale; + + if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; + + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + + image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + + if (!image.isMoved && !zoom.isScaling) { + if ( + swiper.isHorizontal() && + ( + (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x) || + (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x) + ) + ) { + image.isTouched = false; + return; + } else if ( + !swiper.isHorizontal() && + ( + (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y) || + (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y) + ) + ) { + image.isTouched = false; + return; + } + } + e.preventDefault(); + e.stopPropagation(); + + image.isMoved = true; + image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX; + image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY; + + if (image.currentX < image.minX) { + image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8); + } + if (image.currentX > image.maxX) { + image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8); + } + + if (image.currentY < image.minY) { + image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8); + } + if (image.currentY > image.maxY) { + image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8); + } + + // Velocity + if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; + if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; + if (!velocity.prevTime) velocity.prevTime = Date.now(); + velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; + velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; + if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; + if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; + velocity.prevPositionX = image.touchesCurrent.x; + velocity.prevPositionY = image.touchesCurrent.y; + velocity.prevTime = Date.now(); + + gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`); + }, + onTouchEnd() { + const swiper = this; + const zoom = swiper.zoom; + const { gesture, image, velocity } = zoom; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + if (!image.isTouched || !image.isMoved) { + image.isTouched = false; + image.isMoved = false; + return; + } + image.isTouched = false; + image.isMoved = false; + let momentumDurationX = 300; + let momentumDurationY = 300; + const momentumDistanceX = velocity.x * momentumDurationX; + const newPositionX = image.currentX + momentumDistanceX; + const momentumDistanceY = velocity.y * momentumDurationY; + const newPositionY = image.currentY + momentumDistanceY; + + // Fix duration + if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); + if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); + const momentumDuration = Math.max(momentumDurationX, momentumDurationY); + + image.currentX = newPositionX; + image.currentY = newPositionY; + + // Define if we need image drag + const scaledWidth = image.width * zoom.scale; + const scaledHeight = image.height * zoom.scale; + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); + image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); + + gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`); + }, + onTransitionEnd() { + const swiper = this; + const zoom = swiper.zoom; + const { gesture } = zoom; + if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { + gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); + gesture.$imageWrapEl.transform('translate3d(0,0,0)'); + gesture.$slideEl = undefined; + gesture.$imageEl = undefined; + gesture.$imageWrapEl = undefined; + + zoom.scale = 1; + zoom.currentScale = 1; + } + }, + // Toggle Zoom + toggle(e) { + const swiper = this; + const zoom = swiper.zoom; + + if (zoom.scale && zoom.scale !== 1) { + // Zoom Out + zoom.out(); + } else { + // Zoom In + zoom.in(e); + } + }, + in(e) { + const swiper = this; + + const zoom = swiper.zoom; + const params = swiper.params.zoom; + const { gesture, image } = zoom; + + if (!gesture.$slideEl) { + gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + + gesture.$slideEl.addClass(`${params.zoomedSlideClass}`); + + let touchX; + let touchY; + let offsetX; + let offsetY; + let diffX; + let diffY; + let translateX; + let translateY; + let imageWidth; + let imageHeight; + let scaledWidth; + let scaledHeight; + let translateMinX; + let translateMinY; + let translateMaxX; + let translateMaxY; + let slideWidth; + let slideHeight; + + if (typeof image.touchesStart.x === 'undefined' && e) { + touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; + touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; + } else { + touchX = image.touchesStart.x; + touchY = image.touchesStart.y; + } + + zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (e) { + slideWidth = gesture.$slideEl[0].offsetWidth; + slideHeight = gesture.$slideEl[0].offsetHeight; + offsetX = gesture.$slideEl.offset().left; + offsetY = gesture.$slideEl.offset().top; + diffX = (offsetX + (slideWidth / 2)) - touchX; + diffY = (offsetY + (slideHeight / 2)) - touchY; + + imageWidth = gesture.$imageEl[0].offsetWidth; + imageHeight = gesture.$imageEl[0].offsetHeight; + scaledWidth = imageWidth * zoom.scale; + scaledHeight = imageHeight * zoom.scale; + + translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0); + translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0); + translateMaxX = -translateMinX; + translateMaxY = -translateMinY; + + translateX = diffX * zoom.scale; + translateY = diffY * zoom.scale; + + if (translateX < translateMinX) { + translateX = translateMinX; + } + if (translateX > translateMaxX) { + translateX = translateMaxX; + } + + if (translateY < translateMinY) { + translateY = translateMinY; + } + if (translateY > translateMaxY) { + translateY = translateMaxY; + } + } else { + translateX = 0; + translateY = 0; + } + gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`); + gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`); + }, + out() { + const swiper = this; + + const zoom = swiper.zoom; + const params = swiper.params.zoom; + const { gesture } = zoom; + + if (!gesture.$slideEl) { + gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + + zoom.scale = 1; + zoom.currentScale = 1; + gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); + gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); + gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`); + gesture.$slideEl = undefined; + }, + // Attach/Detach Events + enable() { + const swiper = this; + const zoom = swiper.zoom; + if (zoom.enabled) return; + zoom.enabled = true; + + const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); + } + + // Move image + swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove); + }, + disable() { + const swiper = this; + const zoom = swiper.zoom; + if (!zoom.enabled) return; + + swiper.zoom.enabled = false; + + const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); + } + + // Move image + swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove); + }, +}; + +var Zoom$1 = { + name: 'zoom', + params: { + zoom: { + enabled: false, + maxRatio: 3, + minRatio: 1, + toggle: true, + containerClass: 'swiper-zoom-container', + zoomedSlideClass: 'swiper-slide-zoomed', + }, + }, + create() { + const swiper = this; + const zoom = { + enabled: false, + scale: 1, + currentScale: 1, + isScaling: false, + gesture: { + $slideEl: undefined, + slideWidth: undefined, + slideHeight: undefined, + $imageEl: undefined, + $imageWrapEl: undefined, + maxRatio: 3, + }, + image: { + isTouched: undefined, + isMoved: undefined, + currentX: undefined, + currentY: undefined, + minX: undefined, + minY: undefined, + maxX: undefined, + maxY: undefined, + width: undefined, + height: undefined, + startX: undefined, + startY: undefined, + touchesStart: {}, + touchesCurrent: {}, + }, + velocity: { + x: undefined, + y: undefined, + prevPositionX: undefined, + prevPositionY: undefined, + prevTime: undefined, + }, + }; + ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => { + zoom[methodName] = Zoom[methodName].bind(swiper); + }); + Utils.extend(swiper, { + zoom, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.zoom.enabled) { + swiper.zoom.enable(); + } + }, + destroy() { + const swiper = this; + swiper.zoom.disable(); + }, + touchStart(e) { + const swiper = this; + if (!swiper.zoom.enabled) return; + swiper.zoom.onTouchStart(e); + }, + touchEnd(e) { + const swiper = this; + if (!swiper.zoom.enabled) return; + swiper.zoom.onTouchEnd(e); + }, + doubleTap(e) { + const swiper = this; + if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { + swiper.zoom.toggle(e); + } + }, + transitionEnd() { + const swiper = this; + if (swiper.zoom.enabled && swiper.params.zoom.enabled) { + swiper.zoom.onTransitionEnd(); + } + }, + }, +}; + +const Lazy = { + loadInSlide(index$$1, loadInDuplicate = true) { + const swiper = this; + const params = swiper.params.lazy; + if (typeof index$$1 === 'undefined') return; + if (swiper.slides.length === 0) return; + const isVirtual = swiper.virtual && swiper.params.virtual.enabled; + + const $slideEl = isVirtual + ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index="${index$$1}"]`) + : swiper.slides.eq(index$$1); + + let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`); + if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { + $images = $images.add($slideEl[0]); + } + if ($images.length === 0) return; + + $images.each((imageIndex, imageEl) => { + const $imageEl = $(imageEl); + $imageEl.addClass(params.loadingClass); + + const background = $imageEl.attr('data-background'); + const src = $imageEl.attr('data-src'); + const srcset = $imageEl.attr('data-srcset'); + const sizes = $imageEl.attr('data-sizes'); + + swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => { + if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return; + if (background) { + $imageEl.css('background-image', `url("${background}")`); + $imageEl.removeAttr('data-background'); + } else { + if (srcset) { + $imageEl.attr('srcset', srcset); + $imageEl.removeAttr('data-srcset'); + } + if (sizes) { + $imageEl.attr('sizes', sizes); + $imageEl.removeAttr('data-sizes'); + } + if (src) { + $imageEl.attr('src', src); + $imageEl.removeAttr('data-src'); + } + } + + $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); + $slideEl.find(`.${params.preloaderClass}`).remove(); + if (swiper.params.loop && loadInDuplicate) { + const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); + if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { + const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index="${slideOriginalIndex}"]:not(.${swiper.params.slideDuplicateClass})`); + swiper.lazy.loadInSlide(originalSlide.index(), false); + } else { + const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index="${slideOriginalIndex}"]`); + swiper.lazy.loadInSlide(duplicatedSlide.index(), false); + } + } + swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]); + }); + + swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]); + }); + }, + load() { + const swiper = this; + const { + $wrapperEl, params: swiperParams, slides, activeIndex, + } = swiper; + const isVirtual = swiper.virtual && swiperParams.virtual.enabled; + const params = swiperParams.lazy; + + let slidesPerView = swiperParams.slidesPerView; + if (slidesPerView === 'auto') { + slidesPerView = 0; + } + + function slideExist(index$$1) { + if (isVirtual) { + if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index="${index$$1}"]`).length) { + return true; + } + } else if (slides[index$$1]) return true; + return false; + } + function slideIndex(slideEl) { + if (isVirtual) { + return $(slideEl).attr('data-swiper-slide-index'); + } + return $(slideEl).index(); + } + + if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true; + if (swiper.params.watchSlidesVisibility) { + $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => { + const index$$1 = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index(); + swiper.lazy.loadInSlide(index$$1); + }); + } else if (slidesPerView > 1) { + for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) { + if (slideExist(i)) swiper.lazy.loadInSlide(i); + } + } else { + swiper.lazy.loadInSlide(activeIndex); + } + if (params.loadPrevNext) { + if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) { + const amount = params.loadPrevNextAmount; + const spv = slidesPerView; + const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); + const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); + // Next Slides + for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) { + if (slideExist(i)) swiper.lazy.loadInSlide(i); + } + // Prev Slides + for (let i = minIndex; i < activeIndex; i += 1) { + if (slideExist(i)) swiper.lazy.loadInSlide(i); + } + } else { + const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`); + if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide)); + + const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`); + if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide)); + } + } + }, +}; + +var Lazy$1 = { + name: 'lazy', + params: { + lazy: { + enabled: false, + loadPrevNext: false, + loadPrevNextAmount: 1, + loadOnTransitionStart: false, + + elementClass: 'swiper-lazy', + loadingClass: 'swiper-lazy-loading', + loadedClass: 'swiper-lazy-loaded', + preloaderClass: 'swiper-lazy-preloader', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + lazy: { + initialImageLoaded: false, + load: Lazy.load.bind(swiper), + loadInSlide: Lazy.loadInSlide.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.lazy.enabled && swiper.params.preloadImages) { + swiper.params.preloadImages = false; + } + }, + init() { + const swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) { + swiper.lazy.load(); + } + }, + scroll() { + const swiper = this; + if (swiper.params.freeMode && !swiper.params.freeModeSticky) { + swiper.lazy.load(); + } + }, + resize() { + const swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + scrollbarDragMove() { + const swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + transitionStart() { + const swiper = this; + if (swiper.params.lazy.enabled) { + if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) { + swiper.lazy.load(); + } + } + }, + transitionEnd() { + const swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { + swiper.lazy.load(); + } + }, + }, +}; + +/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ +const Controller = { + LinearSpline: function LinearSpline(x, y) { + const binarySearch = (function search() { + let maxIndex; + let minIndex; + let guess; + return (array, val) => { + minIndex = -1; + maxIndex = array.length; + while (maxIndex - minIndex > 1) { + guess = maxIndex + minIndex >> 1; + if (array[guess] <= val) { + minIndex = guess; + } else { + maxIndex = guess; + } + } + return maxIndex; + }; + }()); + this.x = x; + this.y = y; + this.lastIndex = x.length - 1; + // Given an x value (x2), return the expected y2 value: + // (x1,y1) is the known point before given value, + // (x3,y3) is the known point after given value. + let i1; + let i3; + + this.interpolate = function interpolate(x2) { + if (!x2) return 0; + + // Get the indexes of x1 and x3 (the array indexes before and after given x2): + i3 = binarySearch(this.x, x2); + i1 = i3 - 1; + + // We have our indexes i1 & i3, so we can calculate already: + // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 + return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1]; + }; + return this; + }, + // xxx: for now i will just save one spline function to to + getInterpolateFunction(c) { + const swiper = this; + if (!swiper.controller.spline) { + swiper.controller.spline = swiper.params.loop ? + new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : + new Controller.LinearSpline(swiper.snapGrid, c.snapGrid); + } + }, + setTranslate(setTranslate, byController) { + const swiper = this; + const controlled = swiper.controller.control; + let multiplier; + let controlledTranslate; + function setControlledTranslate(c) { + // this will create an Interpolate function based on the snapGrids + // x is the Grid of the scrolled scroller and y will be the controlled scroller + // it makes sense to create this only once and recall it for the interpolation + // the function does a lot of value caching for performance + const translate = c.rtl && c.params.direction === 'horizontal' ? -swiper.translate : swiper.translate; + if (swiper.params.controller.by === 'slide') { + swiper.controller.getInterpolateFunction(c); + // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid + // but it did not work out + controlledTranslate = -swiper.controller.spline.interpolate(-translate); + } + + if (!controlledTranslate || swiper.params.controller.by === 'container') { + multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); + controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate(); + } + + if (swiper.params.controller.inverse) { + controlledTranslate = c.maxTranslate() - controlledTranslate; + } + c.updateProgress(controlledTranslate); + c.setTranslate(controlledTranslate, swiper); + c.updateActiveIndex(); + c.updateSlidesClasses(); + } + if (Array.isArray(controlled)) { + for (let i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) { + setControlledTranslate(controlled[i]); + } + } + } else if (controlled instanceof Swiper$1 && byController !== controlled) { + setControlledTranslate(controlled); + } + }, + setTransition(duration, byController) { + const swiper = this; + const controlled = swiper.controller.control; + let i; + function setControlledTransition(c) { + c.setTransition(duration, swiper); + if (duration !== 0) { + c.transitionStart(); + c.$wrapperEl.transitionEnd(() => { + if (!controlled) return; + if (c.params.loop && swiper.params.controller.by === 'slide') { + c.loopFix(); + } + c.transitionEnd(); + }); + } + } + if (Array.isArray(controlled)) { + for (i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) { + setControlledTransition(controlled[i]); + } + } + } else if (controlled instanceof Swiper$1 && byController !== controlled) { + setControlledTransition(controlled); + } + }, +}; +var Controller$1 = { + name: 'controller', + params: { + controller: { + control: undefined, + inverse: false, + by: 'slide', // or 'container' + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + controller: { + control: swiper.params.controller.control, + getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper), + setTranslate: Controller.setTranslate.bind(swiper), + setTransition: Controller.setTransition.bind(swiper), + }, + }); + }, + on: { + update() { + const swiper = this; + if (!swiper.controller.control) return; + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + resize() { + const swiper = this; + if (!swiper.controller.control) return; + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + observerUpdate() { + const swiper = this; + if (!swiper.controller.control) return; + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + setTranslate(translate, byController) { + const swiper = this; + if (!swiper.controller.control) return; + swiper.controller.setTranslate(translate, byController); + }, + setTransition(duration, byController) { + const swiper = this; + if (!swiper.controller.control) return; + swiper.controller.setTransition(duration, byController); + }, + }, +}; + +const a11y = { + makeElFocusable($el) { + $el.attr('tabIndex', '0'); + return $el; + }, + addElRole($el, role) { + $el.attr('role', role); + return $el; + }, + addElLabel($el, label) { + $el.attr('aria-label', label); + return $el; + }, + disableEl($el) { + $el.attr('aria-disabled', true); + return $el; + }, + enableEl($el) { + $el.attr('aria-disabled', false); + return $el; + }, + onEnterKey(e) { + const swiper = this; + const params = swiper.params.a11y; + if (e.keyCode !== 13) return; + const $targetEl = $(e.target); + if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { + if (!(swiper.isEnd && !swiper.params.loop)) { + swiper.slideNext(); + } + if (swiper.isEnd) { + swiper.a11y.notify(params.lastSlideMessage); + } else { + swiper.a11y.notify(params.nextSlideMessage); + } + } + if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { + if (!(swiper.isBeginning && !swiper.params.loop)) { + swiper.slidePrev(); + } + if (swiper.isBeginning) { + swiper.a11y.notify(params.firstSlideMessage); + } else { + swiper.a11y.notify(params.prevSlideMessage); + } + } + if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) { + $targetEl[0].click(); + } + }, + notify(message) { + const swiper = this; + const notification = swiper.a11y.liveRegion; + if (notification.length === 0) return; + notification.html(''); + notification.html(message); + }, + updateNavigation() { + const swiper = this; + + if (swiper.params.loop) return; + const { $nextEl, $prevEl } = swiper.navigation; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + swiper.a11y.disableEl($prevEl); + } else { + swiper.a11y.enableEl($prevEl); + } + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + swiper.a11y.disableEl($nextEl); + } else { + swiper.a11y.enableEl($nextEl); + } + } + }, + updatePagination() { + const swiper = this; + const params = swiper.params.a11y; + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.bullets.each((bulletIndex, bulletEl) => { + const $bulletEl = $(bulletEl); + swiper.a11y.makeElFocusable($bulletEl); + swiper.a11y.addElRole($bulletEl, 'button'); + swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1)); + }); + } + }, + init() { + const swiper = this; + + swiper.$el.append(swiper.a11y.liveRegion); + + // Navigation + const params = swiper.params.a11y; + let $nextEl; + let $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + swiper.a11y.makeElFocusable($nextEl); + swiper.a11y.addElRole($nextEl, 'button'); + swiper.a11y.addElLabel($nextEl, params.nextSlideMessage); + $nextEl.on('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + swiper.a11y.makeElFocusable($prevEl); + swiper.a11y.addElRole($prevEl, 'button'); + swiper.a11y.addElLabel($prevEl, params.prevSlideMessage); + $prevEl.on('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey); + } + }, + destroy() { + const swiper = this; + if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove(); + + let $nextEl; + let $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + $nextEl.off('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + $prevEl.off('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey); + } + }, +}; +var A11y = { + name: 'a11y', + params: { + a11y: { + enabled: false, + notificationClass: 'swiper-notification', + prevSlideMessage: 'Previous slide', + nextSlideMessage: 'Next slide', + firstSlideMessage: 'This is the first slide', + lastSlideMessage: 'This is the last slide', + paginationBulletMessage: 'Go to slide {{index}}', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + a11y: { + liveRegion: $(``), + }, + }); + Object.keys(a11y).forEach((methodName) => { + swiper.a11y[methodName] = a11y[methodName].bind(swiper); + }); + }, + on: { + init() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.init(); + swiper.a11y.updateNavigation(); + }, + toEdge() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.updateNavigation(); + }, + fromEdge() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.updateNavigation(); + }, + paginationUpdate() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.updatePagination(); + }, + destroy() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.destroy(); + }, + }, +}; + +const History = { + init() { + const swiper = this; + if (!swiper.params.history) return; + if (!window.history || !window.history.pushState) { + swiper.params.history.enabled = false; + swiper.params.hashNavigation.enabled = true; + return; + } + const history = swiper.history; + history.initialized = true; + history.paths = History.getPathValues(); + if (!history.paths.key && !history.paths.value) return; + history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit); + if (!swiper.params.history.replaceState) { + window.addEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + destroy() { + const swiper = this; + if (!swiper.params.history.replaceState) { + window.removeEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + setHistoryPopState() { + const swiper = this; + swiper.history.paths = History.getPathValues(); + swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false); + }, + getPathValues() { + const pathArray = window.location.pathname.slice(1).split('/').filter(part => part !== ''); + const total = pathArray.length; + const key = pathArray[total - 2]; + const value = pathArray[total - 1]; + return { key, value }; + }, + setHistory(key, index$$1) { + const swiper = this; + if (!swiper.history.initialized || !swiper.params.history.enabled) return; + const slide = swiper.slides.eq(index$$1); + let value = History.slugify(slide.attr('data-history')); + if (!window.location.pathname.includes(key)) { + value = `${key}/${value}`; + } + const currentState = window.history.state; + if (currentState && currentState.value === value) { + return; + } + if (swiper.params.history.replaceState) { + window.history.replaceState({ value }, null, value); + } else { + window.history.pushState({ value }, null, value); + } + }, + slugify(text$$1) { + return text$$1.toString().toLowerCase() + .replace(/\s+/g, '-') + .replace(/[^\w-]+/g, '') + .replace(/--+/g, '-') + .replace(/^-+/, '') + .replace(/-+$/, ''); + }, + scrollToSlide(speed, value, runCallbacks) { + const swiper = this; + if (value) { + for (let i = 0, length = swiper.slides.length; i < length; i += 1) { + const slide = swiper.slides.eq(i); + const slideHistory = History.slugify(slide.attr('data-history')); + if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) { + const index$$1 = slide.index(); + swiper.slideTo(index$$1, speed, runCallbacks); + } + } + } else { + swiper.slideTo(0, speed, runCallbacks); + } + }, +}; + +var History$1 = { + name: 'history', + params: { + history: { + enabled: false, + replaceState: false, + key: 'slides', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + history: { + init: History.init.bind(swiper), + setHistory: History.setHistory.bind(swiper), + setHistoryPopState: History.setHistoryPopState.bind(swiper), + scrollToSlide: History.scrollToSlide.bind(swiper), + destroy: History.destroy.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.history.enabled) { + swiper.history.init(); + } + }, + destroy() { + const swiper = this; + if (swiper.params.history.enabled) { + swiper.history.destroy(); + } + }, + transitionEnd() { + const swiper = this; + if (swiper.history.initialized) { + swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); + } + }, + }, +}; + +const HashNavigation = { + onHashCange() { + const swiper = this; + const newHash = document.location.hash.replace('#', ''); + const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); + if (newHash !== activeSlideHash) { + swiper.slideTo(swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash="${newHash}"]`).index()); + } + }, + setHash() { + const swiper = this; + if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return; + if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { + window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '')); + } else { + const slide = swiper.slides.eq(swiper.activeIndex); + const hash = slide.attr('data-hash') || slide.attr('data-history'); + document.location.hash = hash || ''; + } + }, + init() { + const swiper = this; + if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return; + swiper.hashNavigation.initialized = true; + const hash = document.location.hash.replace('#', ''); + if (hash) { + const speed = 0; + for (let i = 0, length = swiper.slides.length; i < length; i += 1) { + const slide = swiper.slides.eq(i); + const slideHash = slide.attr('data-hash') || slide.attr('data-history'); + if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) { + const index$$1 = slide.index(); + swiper.slideTo(index$$1, speed, swiper.params.runCallbacksOnInit, true); + } + } + } + if (swiper.params.hashNavigation.watchState) { + $(window).on('hashchange', swiper.hashNavigation.onHashCange); + } + }, + destroy() { + const swiper = this; + if (swiper.params.hashNavigation.watchState) { + $(window).off('hashchange', swiper.hashNavigation.onHashCange); + } + }, +}; +var HashNavigation$1 = { + name: 'hash-navigation', + params: { + hashNavigation: { + enabled: false, + replaceState: false, + watchState: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + hashNavigation: { + initialized: false, + init: HashNavigation.init.bind(swiper), + destroy: HashNavigation.destroy.bind(swiper), + setHash: HashNavigation.setHash.bind(swiper), + onHashCange: HashNavigation.onHashCange.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.init(); + } + }, + destroy() { + const swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.destroy(); + } + }, + transitionEnd() { + const swiper = this; + if (swiper.hashNavigation.initialized) { + swiper.hashNavigation.setHash(); + } + }, + }, +}; + +const Autoplay = { + run() { + const swiper = this; + const $activeSlideEl = swiper.slides.eq(swiper.activeIndex); + let delay = swiper.params.autoplay.delay; + if ($activeSlideEl.attr('data-swiper-autoplay')) { + delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; + } + swiper.autoplay.timeout = Utils.nextTick(() => { + if (swiper.params.autoplay.reverseDirection) { + if (swiper.params.loop) { + swiper.loopFix(); + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isBeginning) { + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + } else if (swiper.params.loop) { + swiper.loopFix(); + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isEnd) { + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(0, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + }, delay); + }, + start() { + const swiper = this; + if (typeof swiper.autoplay.timeout !== 'undefined') return false; + if (swiper.autoplay.running) return false; + swiper.autoplay.running = true; + swiper.emit('autoplayStart'); + swiper.autoplay.run(); + return true; + }, + stop() { + const swiper = this; + if (!swiper.autoplay.running) return false; + if (typeof swiper.autoplay.timeout === 'undefined') return false; + + if (swiper.autoplay.timeout) { + clearTimeout(swiper.autoplay.timeout); + swiper.autoplay.timeout = undefined; + } + swiper.autoplay.running = false; + swiper.emit('autoplayStop'); + return true; + }, + pause(speed) { + const swiper = this; + if (!swiper.autoplay.running) return; + if (swiper.autoplay.paused) return; + if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout); + swiper.autoplay.paused = true; + if (speed === 0 || !swiper.params.autoplay.waitForTransition) { + swiper.autoplay.paused = false; + swiper.autoplay.run(); + } else { + swiper.$wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.autoplay.paused = false; + if (!swiper.autoplay.running) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.run(); + } + }); + } + }, +}; + +var Autoplay$1 = { + name: 'autoplay', + params: { + autoplay: { + enabled: false, + delay: 3000, + waitForTransition: true, + disableOnInteraction: true, + stopOnLastSlide: false, + reverseDirection: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + autoplay: { + running: false, + paused: false, + run: Autoplay.run.bind(swiper), + start: Autoplay.start.bind(swiper), + stop: Autoplay.stop.bind(swiper), + pause: Autoplay.pause.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.autoplay.enabled) { + swiper.autoplay.start(); + } + }, + beforeTransitionStart(speed, internal) { + const swiper = this; + if (swiper.autoplay.running) { + if (internal || !swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.pause(speed); + } else { + swiper.autoplay.stop(); + } + } + }, + sliderFirstMove() { + const swiper = this; + if (swiper.autoplay.running) { + if (swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.pause(); + } + } + }, + destroy() { + const swiper = this; + if (swiper.autoplay.running) { + swiper.autoplay.stop(); + } + }, + }, +}; + +const Fade = { + setTranslate() { + const swiper = this; + const { slides } = swiper; + for (let i = 0; i < slides.length; i += 1) { + const $slideEl = swiper.slides.eq(i); + const offset$$1 = $slideEl[0].swiperSlideOffset; + let tx = -offset$$1; + if (!swiper.params.virtualTranslate) tx -= swiper.translate; + let ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + } + const slideOpacity = swiper.params.fadeEffect.crossFade ? + Math.max(1 - Math.abs($slideEl[0].progress), 0) : + 1 + Math.min(Math.max($slideEl[0].progress, -1), 0); + $slideEl + .css({ + opacity: slideOpacity, + }) + .transform(`translate3d(${tx}px, ${ty}px, 0px)`); + } + }, + setTransition(duration) { + const swiper = this; + const { slides, $wrapperEl } = swiper; + slides.transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + let eventTriggered = false; + slides.transitionEnd(() => { + if (eventTriggered) return; + if (!swiper || swiper.destroyed) return; + eventTriggered = true; + swiper.animating = false; + const triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (let i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, +}; + +var EffectFade = { + name: 'effect-fade', + params: { + fadeEffect: { + crossFade: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + fadeEffect: { + setTranslate: Fade.setTranslate.bind(swiper), + setTransition: Fade.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'fade') return; + swiper.classNames.push(`${swiper.params.containerModifierClass}fade`); + const overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'fade') return; + swiper.fadeEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'fade') return; + swiper.fadeEffect.setTransition(duration); + }, + }, +}; + +const Cube = { + setTranslate() { + const swiper = this; + const { + $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtl, size: swiperSize, + } = swiper; + const params = swiper.params.cubeEffect; + const isHorizontal = swiper.isHorizontal(); + const isVirtual = swiper.virtual && swiper.params.virtual.enabled; + let wrapperRotate = 0; + let $cubeShadowEl; + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $('
    '); + $wrapperEl.append($cubeShadowEl); + } + $cubeShadowEl.css({ height: `${swiperWidth}px` }); + } else { + $cubeShadowEl = $el.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $('
    '); + $el.append($cubeShadowEl); + } + } + } + for (let i = 0; i < slides.length; i += 1) { + const $slideEl = slides.eq(i); + let slideIndex = i; + if (isVirtual) { + slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); + } + let slideAngle = slideIndex * 90; + let round = Math.floor(slideAngle / 360); + if (rtl) { + slideAngle = -slideAngle; + round = Math.floor(-slideAngle / 360); + } + const progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + let tx = 0; + let ty = 0; + let tz = 0; + if (slideIndex % 4 === 0) { + tx = -round * 4 * swiperSize; + tz = 0; + } else if ((slideIndex - 1) % 4 === 0) { + tx = 0; + tz = -round * 4 * swiperSize; + } else if ((slideIndex - 2) % 4 === 0) { + tx = swiperSize + (round * 4 * swiperSize); + tz = swiperSize; + } else if ((slideIndex - 3) % 4 === 0) { + tx = -swiperSize; + tz = (3 * swiperSize) + (swiperSize * 4 * round); + } + if (rtl) { + tx = -tx; + } + + if (!isHorizontal) { + ty = tx; + tx = 0; + } + + const transform$$1 = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; + if (progress <= 1 && progress > -1) { + wrapperRotate = (slideIndex * 90) + (progress * 90); + if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90); + } + $slideEl.transform(transform$$1); + if (params.slideShadows) { + // Set shadows + let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $(`
    `); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $(`
    `); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); + if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); + } + } + $wrapperEl.css({ + '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`, + '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`, + '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`, + 'transform-origin': `50% 50% -${swiperSize / 2}px`, + }); + + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`); + } else { + const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90); + const multiplier = 1.5 - ( + (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2) + + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2) + ); + const scale1 = params.shadowScale; + const scale2 = params.shadowScale / multiplier; + const offset$$1 = params.shadowOffset; + $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset$$1}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`); + } + } + const zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0; + $wrapperEl + .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`); + }, + setTransition(duration) { + const swiper = this; + const { $el, slides } = swiper; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { + $el.find('.swiper-cube-shadow').transition(duration); + } + }, +}; + +var EffectCube = { + name: 'effect-cube', + params: { + cubeEffect: { + slideShadows: true, + shadow: true, + shadowOffset: 20, + shadowScale: 0.94, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + cubeEffect: { + setTranslate: Cube.setTranslate.bind(swiper), + setTransition: Cube.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'cube') return; + swiper.classNames.push(`${swiper.params.containerModifierClass}cube`); + swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); + const overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + resistanceRatio: 0, + spaceBetween: 0, + centeredSlides: false, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'cube') return; + swiper.cubeEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'cube') return; + swiper.cubeEffect.setTransition(duration); + }, + }, +}; + +const Flip = { + setTranslate() { + const swiper = this; + const { slides } = swiper; + for (let i = 0; i < slides.length; i += 1) { + const $slideEl = slides.eq(i); + let progress = $slideEl[0].progress; + if (swiper.params.flipEffect.limitRotation) { + progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + } + const offset$$1 = $slideEl[0].swiperSlideOffset; + const rotate = -180 * progress; + let rotateY = rotate; + let rotateX = 0; + let tx = -offset$$1; + let ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + rotateX = -rotateY; + rotateY = 0; + } else if (swiper.rtl) { + rotateY = -rotateY; + } + + $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; + + if (swiper.params.flipEffect.slideShadows) { + // Set shadows + let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $(`
    `); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $(`
    `); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); + if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); + } + $slideEl + .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`); + } + }, + setTransition(duration) { + const swiper = this; + const { slides, activeIndex, $wrapperEl } = swiper; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + let eventTriggered = false; + // eslint-disable-next-line + slides.eq(activeIndex).transitionEnd(function onTransitionEnd() { + if (eventTriggered) return; + if (!swiper || swiper.destroyed) return; + // if (!$(this).hasClass(swiper.params.slideActiveClass)) return; + eventTriggered = true; + swiper.animating = false; + const triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (let i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, +}; + +var EffectFlip = { + name: 'effect-flip', + params: { + flipEffect: { + slideShadows: true, + limitRotation: true, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + flipEffect: { + setTranslate: Flip.setTranslate.bind(swiper), + setTransition: Flip.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'flip') return; + swiper.classNames.push(`${swiper.params.containerModifierClass}flip`); + swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); + const overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'flip') return; + swiper.flipEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'flip') return; + swiper.flipEffect.setTransition(duration); + }, + }, +}; + +const Coverflow = { + setTranslate() { + const swiper = this; + const { + width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid, + } = swiper; + const params = swiper.params.coverflowEffect; + const isHorizontal = swiper.isHorizontal(); + const transform$$1 = swiper.translate; + const center = isHorizontal ? -transform$$1 + (swiperWidth / 2) : -transform$$1 + (swiperHeight / 2); + const rotate = isHorizontal ? params.rotate : -params.rotate; + const translate = params.depth; + // Each slide offset from center + for (let i = 0, length = slides.length; i < length; i += 1) { + const $slideEl = slides.eq(i); + const slideSize = slidesSizesGrid[i]; + const slideOffset = $slideEl[0].swiperSlideOffset; + const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier; + + let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; + let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; + // var rotateZ = 0 + let translateZ = -translate * Math.abs(offsetMultiplier); + + let translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier); + let translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0; + + // Fix for ultra small values + if (Math.abs(translateX) < 0.001) translateX = 0; + if (Math.abs(translateY) < 0.001) translateY = 0; + if (Math.abs(translateZ) < 0.001) translateZ = 0; + if (Math.abs(rotateY) < 0.001) rotateY = 0; + if (Math.abs(rotateX) < 0.001) rotateX = 0; + + const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; + + $slideEl.transform(slideTransform); + $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; + if (params.slideShadows) { + // Set shadows + let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if ($shadowBeforeEl.length === 0) { + $shadowBeforeEl = $(`
    `); + $slideEl.append($shadowBeforeEl); + } + if ($shadowAfterEl.length === 0) { + $shadowAfterEl = $(`
    `); + $slideEl.append($shadowAfterEl); + } + if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; + if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; + } + } + + // Set correct perspective for IE10 + if (Support.pointerEvents || Support.prefixedPointerEvents) { + const ws = $wrapperEl[0].style; + ws.perspectiveOrigin = `${center}px 50%`; + } + }, + setTransition(duration) { + const swiper = this; + swiper.slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + }, +}; + +var EffectCoverflow = { + name: 'effect-coverflow', + params: { + coverflowEffect: { + rotate: 50, + stretch: 0, + depth: 100, + modifier: 1, + slideShadows: true, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + coverflowEffect: { + setTranslate: Coverflow.setTranslate.bind(swiper), + setTransition: Coverflow.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'coverflow') return; + + swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`); + swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); + + swiper.params.watchSlidesProgress = true; + swiper.originalParams.watchSlidesProgress = true; + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'coverflow') return; + swiper.coverflowEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'coverflow') return; + swiper.coverflowEffect.setTransition(duration); + }, + }, +}; + +// Swiper Class +// Core Modules +const components = [ + Device$2, + Support$2, + Browser$2, + Resize, + Observer$1, + Virtual$1, + Keyboard$1, + Mousewheel$1, + Navigation$1, + Pagination$1, + Scrollbar$1, + Parallax$1, + Zoom$1, + Lazy$1, + Controller$1, + A11y, + History$1, + HashNavigation$1, + Autoplay$1, + EffectFade, + EffectCube, + EffectFlip, + EffectCoverflow +]; + +if (typeof Swiper$1.use === 'undefined') { + Swiper$1.use = Swiper$1.Class.use; + Swiper$1.installModule = Swiper$1.Class.installModule; +} + +Swiper$1.use(components); + +export default Swiper$1; diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.js b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.js new file mode 100644 index 0000000..ee23ae2 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.esm.js @@ -0,0 +1,6461 @@ +/** + * Swiper 4.1.6 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * http://www.idangero.us/swiper/ + * + * Copyright 2014-2018 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: February 11, 2018 + */ + +import { $, add, addClass, append, attr, children, closest, css, data, each, eq, find, hasClass, html, index, is, next, nextAll, off, offset, on, outerHeight, outerWidth, parent, parents, prepend, prev, prevAll, remove, removeAttr, removeClass, styles, text, toggleClass, transform, transition, transitionEnd, trigger } from 'dom7/dist/dom7.modular'; +import { document, window } from 'ssr-window'; + +const Methods = { + addClass, + removeClass, + hasClass, + toggleClass, + attr, + removeAttr, + data, + transform, + transition, + on, + off, + trigger, + transitionEnd, + outerWidth, + outerHeight, + offset, + css, + each, + html, + text, + is, + index, + eq, + append, + prepend, + next, + nextAll, + prev, + prevAll, + parent, + parents, + closest, + find, + children, + remove, + add, + styles, +}; + +Object.keys(Methods).forEach((methodName) => { + $.fn[methodName] = Methods[methodName]; +}); + +const Utils = { + deleteProps(obj) { + const object = obj; + Object.keys(object).forEach((key) => { + try { + object[key] = null; + } catch (e) { + // no getter for object + } + try { + delete object[key]; + } catch (e) { + // something got wrong + } + }); + }, + nextTick(callback, delay = 0) { + return setTimeout(callback, delay); + }, + now() { + return Date.now(); + }, + getTranslate(el, axis = 'x') { + let matrix; + let curTransform; + let transformMatrix; + + const curStyle = window.getComputedStyle(el, null); + + if (window.WebKitCSSMatrix) { + curTransform = curStyle.transform || curStyle.webkitTransform; + if (curTransform.split(',').length > 6) { + curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); + } + // Some old versions of Webkit choke when 'none' is passed; pass + // empty string instead in this case + transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); + } else { + transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); + matrix = transformMatrix.toString().split(','); + } + + if (axis === 'x') { + // Latest Chrome and webkits Fix + if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; + // Crazy IE10 Matrix + else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); + // Normal Browsers + else curTransform = parseFloat(matrix[4]); + } + if (axis === 'y') { + // Latest Chrome and webkits Fix + if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; + // Crazy IE10 Matrix + else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); + // Normal Browsers + else curTransform = parseFloat(matrix[5]); + } + return curTransform || 0; + }, + parseUrlQuery(url) { + const query = {}; + let urlToParse = url || window.location.href; + let i; + let params; + let param; + let length; + if (typeof urlToParse === 'string' && urlToParse.length) { + urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : ''; + params = urlToParse.split('&').filter(paramsPart => paramsPart !== ''); + length = params.length; + + for (i = 0; i < length; i += 1) { + param = params[i].replace(/#\S+/g, '').split('='); + query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || ''; + } + } + return query; + }, + isObject(o) { + return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object; + }, + extend(...args) { + const to = Object(args[0]); + for (let i = 1; i < args.length; i += 1) { + const nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + const keysArray = Object.keys(Object(nextSource)); + for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + const nextKey = keysArray[nextIndex]; + const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + Utils.extend(to[nextKey], nextSource[nextKey]); + } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + to[nextKey] = {}; + Utils.extend(to[nextKey], nextSource[nextKey]); + } else { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + } + return to; + }, +}; + +const Support = (function Support() { + const testDiv = document.createElement('div'); + return { + touch: (window.Modernizr && window.Modernizr.touch === true) || (function checkTouch() { + return !!(('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch)); + }()), + + pointerEvents: !!(window.navigator.pointerEnabled || window.PointerEvent), + prefixedPointerEvents: !!window.navigator.msPointerEnabled, + + transition: (function checkTransition() { + const style = testDiv.style; + return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style); + }()), + transforms3d: (window.Modernizr && window.Modernizr.csstransforms3d === true) || (function checkTransforms3d() { + const style = testDiv.style; + return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style); + }()), + + flexbox: (function checkFlexbox() { + const style = testDiv.style; + const styles$$1 = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' '); + for (let i = 0; i < styles$$1.length; i += 1) { + if (styles$$1[i] in style) return true; + } + return false; + }()), + + observer: (function checkObserver() { + return ('MutationObserver' in window || 'WebkitMutationObserver' in window); + }()), + + passiveListener: (function checkPassiveListener() { + let supportsPassive = false; + try { + const opts = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line + get() { + supportsPassive = true; + }, + }); + window.addEventListener('testPassiveListener', null, opts); + } catch (e) { + // No support + } + return supportsPassive; + }()), + + gestures: (function checkGestures() { + return 'ongesturestart' in window; + }()), + }; +}()); + +class SwiperClass { + constructor(params = {}) { + const self = this; + self.params = params; + + // Events + self.eventsListeners = {}; + + if (self.params && self.params.on) { + Object.keys(self.params.on).forEach((eventName) => { + self.on(eventName, self.params.on[eventName]); + }); + } + } + on(events, handler) { + const self = this; + if (typeof handler !== 'function') return self; + events.split(' ').forEach((event) => { + if (!self.eventsListeners[event]) self.eventsListeners[event] = []; + self.eventsListeners[event].push(handler); + }); + return self; + } + once(events, handler) { + const self = this; + if (typeof handler !== 'function') return self; + function onceHandler(...args) { + handler.apply(self, args); + self.off(events, onceHandler); + } + return self.on(events, onceHandler); + } + off(events, handler) { + const self = this; + events.split(' ').forEach((event) => { + if (typeof handler === 'undefined') { + self.eventsListeners[event] = []; + } else { + self.eventsListeners[event].forEach((eventHandler, index$$1) => { + if (eventHandler === handler) { + self.eventsListeners[event].splice(index$$1, 1); + } + }); + } + }); + return self; + } + emit(...args) { + const self = this; + if (!self.eventsListeners) return self; + let events; + let data$$1; + let context; + if (typeof args[0] === 'string' || Array.isArray(args[0])) { + events = args[0]; + data$$1 = args.slice(1, args.length); + context = self; + } else { + events = args[0].events; + data$$1 = args[0].data; + context = args[0].context || self; + } + const eventsArray = Array.isArray(events) ? events : events.split(' '); + eventsArray.forEach((event) => { + if (self.eventsListeners[event]) { + const handlers = []; + self.eventsListeners[event].forEach((eventHandler) => { + handlers.push(eventHandler); + }); + handlers.forEach((eventHandler) => { + eventHandler.apply(context, data$$1); + }); + } + }); + return self; + } + useModulesParams(instanceParams) { + const instance = this; + if (!instance.modules) return; + Object.keys(instance.modules).forEach((moduleName) => { + const module = instance.modules[moduleName]; + // Extend params + if (module.params) { + Utils.extend(instanceParams, module.params); + } + }); + } + useModules(modulesParams = {}) { + const instance = this; + if (!instance.modules) return; + Object.keys(instance.modules).forEach((moduleName) => { + const module = instance.modules[moduleName]; + const moduleParams = modulesParams[moduleName] || {}; + // Extend instance methods and props + if (module.instance) { + Object.keys(module.instance).forEach((modulePropName) => { + const moduleProp = module.instance[modulePropName]; + if (typeof moduleProp === 'function') { + instance[modulePropName] = moduleProp.bind(instance); + } else { + instance[modulePropName] = moduleProp; + } + }); + } + // Add event listeners + if (module.on && instance.on) { + Object.keys(module.on).forEach((moduleEventName) => { + instance.on(moduleEventName, module.on[moduleEventName]); + }); + } + + // Module create callback + if (module.create) { + module.create.bind(instance)(moduleParams); + } + }); + } + static set components(components) { + const Class = this; + if (!Class.use) return; + Class.use(components); + } + static installModule(module, ...params) { + const Class = this; + if (!Class.prototype.modules) Class.prototype.modules = {}; + const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`); + Class.prototype.modules[name] = module; + // Prototype + if (module.proto) { + Object.keys(module.proto).forEach((key) => { + Class.prototype[key] = module.proto[key]; + }); + } + // Class + if (module.static) { + Object.keys(module.static).forEach((key) => { + Class[key] = module.static[key]; + }); + } + // Callback + if (module.install) { + module.install.apply(Class, params); + } + return Class; + } + static use(module, ...params) { + const Class = this; + if (Array.isArray(module)) { + module.forEach(m => Class.installModule(m)); + return Class; + } + return Class.installModule(module, ...params); + } +} + +var updateSize = function () { + const swiper = this; + let width; + let height; + const $el = swiper.$el; + if (typeof swiper.params.width !== 'undefined') { + width = swiper.params.width; + } else { + width = $el[0].clientWidth; + } + if (typeof swiper.params.height !== 'undefined') { + height = swiper.params.height; + } else { + height = $el[0].clientHeight; + } + if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) { + return; + } + + // Subtract paddings + width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10); + height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10); + + Utils.extend(swiper, { + width, + height, + size: swiper.isHorizontal() ? width : height, + }); +}; + +var updateSlides = function () { + const swiper = this; + const params = swiper.params; + + const { + $wrapperEl, size: swiperSize, rtl, wrongRTL, + } = swiper; + const slides = $wrapperEl.children(`.${swiper.params.slideClass}`); + const isVirtual = swiper.virtual && params.virtual.enabled; + const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; + let snapGrid = []; + const slidesGrid = []; + const slidesSizesGrid = []; + + let offsetBefore = params.slidesOffsetBefore; + if (typeof offsetBefore === 'function') { + offsetBefore = params.slidesOffsetBefore.call(swiper); + } + + let offsetAfter = params.slidesOffsetAfter; + if (typeof offsetAfter === 'function') { + offsetAfter = params.slidesOffsetAfter.call(swiper); + } + + const previousSlidesLength = slidesLength; + const previousSnapGridLength = swiper.snapGrid.length; + const previousSlidesGridLength = swiper.snapGrid.length; + + let spaceBetween = params.spaceBetween; + let slidePosition = -offsetBefore; + let prevSlideSize = 0; + let index$$1 = 0; + if (typeof swiperSize === 'undefined') { + return; + } + if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { + spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize; + } + + swiper.virtualSize = -spaceBetween; + + // reset margins + if (rtl) slides.css({ marginLeft: '', marginTop: '' }); + else slides.css({ marginRight: '', marginBottom: '' }); + + let slidesNumberEvenToRows; + if (params.slidesPerColumn > 1) { + if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) { + slidesNumberEvenToRows = slidesLength; + } else { + slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn; + } + if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') { + slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn); + } + } + + // Calc slides + let slideSize; + const slidesPerColumn = params.slidesPerColumn; + const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn; + const numFullColumns = slidesPerRow - ((params.slidesPerColumn * slidesPerRow) - slidesLength); + for (let i = 0; i < slidesLength; i += 1) { + slideSize = 0; + const slide = slides.eq(i); + if (params.slidesPerColumn > 1) { + // Set slides order + let newSlideOrderIndex; + let column; + let row; + if (params.slidesPerColumnFill === 'column') { + column = Math.floor(i / slidesPerColumn); + row = i - (column * slidesPerColumn); + if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) { + row += 1; + if (row >= slidesPerColumn) { + row = 0; + column += 1; + } + } + newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn); + slide + .css({ + '-webkit-box-ordinal-group': newSlideOrderIndex, + '-moz-box-ordinal-group': newSlideOrderIndex, + '-ms-flex-order': newSlideOrderIndex, + '-webkit-order': newSlideOrderIndex, + order: newSlideOrderIndex, + }); + } else { + row = Math.floor(i / slidesPerRow); + column = i - (row * slidesPerRow); + } + slide + .css( + `margin-${swiper.isHorizontal() ? 'top' : 'left'}`, + (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`) + ) + .attr('data-swiper-column', column) + .attr('data-swiper-row', row); + } + if (slide.css('display') === 'none') continue; // eslint-disable-line + if (params.slidesPerView === 'auto') { + slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true); + if (params.roundLengths) slideSize = Math.floor(slideSize); + } else { + slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView; + if (params.roundLengths) slideSize = Math.floor(slideSize); + + if (slides[i]) { + if (swiper.isHorizontal()) { + slides[i].style.width = `${slideSize}px`; + } else { + slides[i].style.height = `${slideSize}px`; + } + } + } + if (slides[i]) { + slides[i].swiperSlideSize = slideSize; + } + slidesSizesGrid.push(slideSize); + + + if (params.centeredSlides) { + slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween; + if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; + if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; + if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; + if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition); + slidesGrid.push(slidePosition); + } else { + if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition); + slidesGrid.push(slidePosition); + slidePosition = slidePosition + slideSize + spaceBetween; + } + + swiper.virtualSize += slideSize + spaceBetween; + + prevSlideSize = slideSize; + + index$$1 += 1; + } + swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; + let newSlidesGrid; + + if ( + rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { + $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` }); + } + if (!Support.flexbox || params.setWrapperSize) { + if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` }); + else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` }); + } + + if (params.slidesPerColumn > 1) { + swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows; + swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween; + if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` }); + else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` }); + if (params.centeredSlides) { + newSlidesGrid = []; + for (let i = 0; i < snapGrid.length; i += 1) { + if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(snapGrid[i]); + } + snapGrid = newSlidesGrid; + } + } + + // Remove last grid elements depending on width + if (!params.centeredSlides) { + newSlidesGrid = []; + for (let i = 0; i < snapGrid.length; i += 1) { + if (snapGrid[i] <= swiper.virtualSize - swiperSize) { + newSlidesGrid.push(snapGrid[i]); + } + } + snapGrid = newSlidesGrid; + if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { + snapGrid.push(swiper.virtualSize - swiperSize); + } + } + if (snapGrid.length === 0) snapGrid = [0]; + + if (params.spaceBetween !== 0) { + if (swiper.isHorizontal()) { + if (rtl) slides.css({ marginLeft: `${spaceBetween}px` }); + else slides.css({ marginRight: `${spaceBetween}px` }); + } else slides.css({ marginBottom: `${spaceBetween}px` }); + } + + Utils.extend(swiper, { + slides, + snapGrid, + slidesGrid, + slidesSizesGrid, + }); + + if (slidesLength !== previousSlidesLength) { + swiper.emit('slidesLengthChange'); + } + if (snapGrid.length !== previousSnapGridLength) { + if (swiper.params.watchOverflow) swiper.checkOverflow(); + swiper.emit('snapGridLengthChange'); + } + if (slidesGrid.length !== previousSlidesGridLength) { + swiper.emit('slidesGridLengthChange'); + } + + if (params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateSlidesOffset(); + } +}; + +var updateAutoHeight = function () { + const swiper = this; + const activeSlides = []; + let newHeight = 0; + let i; + + // Find slides currently in view + if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { + for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { + const index$$1 = swiper.activeIndex + i; + if (index$$1 > swiper.slides.length) break; + activeSlides.push(swiper.slides.eq(index$$1)[0]); + } + } else { + activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]); + } + + // Find new height from highest slide in view + for (i = 0; i < activeSlides.length; i += 1) { + if (typeof activeSlides[i] !== 'undefined') { + const height = activeSlides[i].offsetHeight; + newHeight = height > newHeight ? height : newHeight; + } + } + + // Update Height + if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`); +}; + +var updateSlidesOffset = function () { + const swiper = this; + const slides = swiper.slides; + for (let i = 0; i < slides.length; i += 1) { + slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; + } +}; + +var updateSlidesProgress = function (translate = this.translate || 0) { + const swiper = this; + const params = swiper.params; + + const { slides, rtl } = swiper; + + if (slides.length === 0) return; + if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); + + let offsetCenter = -translate; + if (rtl) offsetCenter = translate; + + // Visible Slides + slides.removeClass(params.slideVisibleClass); + + for (let i = 0; i < slides.length; i += 1) { + const slide = slides[i]; + const slideProgress = + ( + (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset + ) / (slide.swiperSlideSize + params.spaceBetween); + if (params.watchSlidesVisibility) { + const slideBefore = -(offsetCenter - slide.swiperSlideOffset); + const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; + const isVisible = + (slideBefore >= 0 && slideBefore < swiper.size) || + (slideAfter > 0 && slideAfter <= swiper.size) || + (slideBefore <= 0 && slideAfter >= swiper.size); + if (isVisible) { + slides.eq(i).addClass(params.slideVisibleClass); + } + } + slide.progress = rtl ? -slideProgress : slideProgress; + } +}; + +var updateProgress = function (translate = this.translate || 0) { + const swiper = this; + const params = swiper.params; + + const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + let { progress, isBeginning, isEnd } = swiper; + const wasBeginning = isBeginning; + const wasEnd = isEnd; + if (translatesDiff === 0) { + progress = 0; + isBeginning = true; + isEnd = true; + } else { + progress = (translate - swiper.minTranslate()) / (translatesDiff); + isBeginning = progress <= 0; + isEnd = progress >= 1; + } + Utils.extend(swiper, { + progress, + isBeginning, + isEnd, + }); + + if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate); + + if (isBeginning && !wasBeginning) { + swiper.emit('reachBeginning toEdge'); + } + if (isEnd && !wasEnd) { + swiper.emit('reachEnd toEdge'); + } + if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) { + swiper.emit('fromEdge'); + } + + swiper.emit('progress', progress); +}; + +var updateSlidesClasses = function () { + const swiper = this; + + const { + slides, params, $wrapperEl, activeIndex, realIndex, + } = swiper; + const isVirtual = swiper.virtual && params.virtual.enabled; + + slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`); + + let activeSlide; + if (isVirtual) { + activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index="${activeIndex}"]`); + } else { + activeSlide = slides.eq(activeIndex); + } + + // Active classes + activeSlide.addClass(params.slideActiveClass); + + if (params.loop) { + // Duplicate to all looped slides + if (activeSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${realIndex}"]`) + .addClass(params.slideDuplicateActiveClass); + } else { + $wrapperEl + .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${realIndex}"]`) + .addClass(params.slideDuplicateActiveClass); + } + } + // Next Slide + let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass); + if (params.loop && nextSlide.length === 0) { + nextSlide = slides.eq(0); + nextSlide.addClass(params.slideNextClass); + } + // Prev Slide + let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass); + if (params.loop && prevSlide.length === 0) { + prevSlide = slides.eq(-1); + prevSlide.addClass(params.slidePrevClass); + } + if (params.loop) { + // Duplicate to all looped slides + if (nextSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicateNextClass); + } else { + $wrapperEl + .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicateNextClass); + } + if (prevSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicatePrevClass); + } else { + $wrapperEl + .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`) + .addClass(params.slideDuplicatePrevClass); + } + } +}; + +var updateActiveIndex = function (newActiveIndex) { + const swiper = this; + const translate = swiper.rtl ? swiper.translate : -swiper.translate; + const { + slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex, + } = swiper; + let activeIndex = newActiveIndex; + let snapIndex; + if (typeof activeIndex === 'undefined') { + for (let i = 0; i < slidesGrid.length; i += 1) { + if (typeof slidesGrid[i + 1] !== 'undefined') { + if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) { + activeIndex = i; + } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { + activeIndex = i + 1; + } + } else if (translate >= slidesGrid[i]) { + activeIndex = i; + } + } + // Normalize slideIndex + if (params.normalizeSlideIndex) { + if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; + } + } + if (snapGrid.indexOf(translate) >= 0) { + snapIndex = snapGrid.indexOf(translate); + } else { + snapIndex = Math.floor(activeIndex / params.slidesPerGroup); + } + if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; + if (activeIndex === previousIndex) { + if (snapIndex !== previousSnapIndex) { + swiper.snapIndex = snapIndex; + swiper.emit('snapIndexChange'); + } + return; + } + + // Get real index + const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); + + Utils.extend(swiper, { + snapIndex, + realIndex, + previousIndex, + activeIndex, + }); + swiper.emit('activeIndexChange'); + swiper.emit('snapIndexChange'); + if (previousRealIndex !== realIndex) { + swiper.emit('realIndexChange'); + } + swiper.emit('slideChange'); +}; + +var updateClickedSlide = function (e) { + const swiper = this; + const params = swiper.params; + const slide = $(e.target).closest(`.${params.slideClass}`)[0]; + let slideFound = false; + if (slide) { + for (let i = 0; i < swiper.slides.length; i += 1) { + if (swiper.slides[i] === slide) slideFound = true; + } + } + + if (slide && slideFound) { + swiper.clickedSlide = slide; + if (swiper.virtual && swiper.params.virtual.enabled) { + swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10); + } else { + swiper.clickedIndex = $(slide).index(); + } + } else { + swiper.clickedSlide = undefined; + swiper.clickedIndex = undefined; + return; + } + if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { + swiper.slideToClickedSlide(); + } +}; + +var update = { + updateSize, + updateSlides, + updateAutoHeight, + updateSlidesOffset, + updateSlidesProgress, + updateProgress, + updateSlidesClasses, + updateActiveIndex, + updateClickedSlide, +}; + +var getTranslate = function (axis = this.isHorizontal() ? 'x' : 'y') { + const swiper = this; + + const { + params, rtl, translate, $wrapperEl, + } = swiper; + + if (params.virtualTranslate) { + return rtl ? -translate : translate; + } + + let currentTranslate = Utils.getTranslate($wrapperEl[0], axis); + if (rtl) currentTranslate = -currentTranslate; + + return currentTranslate || 0; +}; + +var setTranslate = function (translate, byController) { + const swiper = this; + const { + rtl, params, $wrapperEl, progress, + } = swiper; + let x = 0; + let y = 0; + const z = 0; + + if (swiper.isHorizontal()) { + x = rtl ? -translate : translate; + } else { + y = translate; + } + + if (params.roundLengths) { + x = Math.floor(x); + y = Math.floor(y); + } + + if (!params.virtualTranslate) { + if (Support.transforms3d) $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`); + else $wrapperEl.transform(`translate(${x}px, ${y}px)`); + } + + swiper.translate = swiper.isHorizontal() ? x : y; + + // Check if we need to update progress + let newProgress; + const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + if (translatesDiff === 0) { + newProgress = 0; + } else { + newProgress = (translate - swiper.minTranslate()) / (translatesDiff); + } + if (newProgress !== progress) { + swiper.updateProgress(translate); + } + + swiper.emit('setTranslate', swiper.translate, byController); +}; + +var minTranslate = function () { + return (-this.snapGrid[0]); +}; + +var maxTranslate = function () { + return (-this.snapGrid[this.snapGrid.length - 1]); +}; + +var translate = { + getTranslate, + setTranslate, + minTranslate, + maxTranslate, +}; + +var setTransition = function (duration, byController) { + const swiper = this; + + swiper.$wrapperEl.transition(duration); + + swiper.emit('setTransition', duration, byController); +}; + +var transitionStart = function (runCallbacks = true, direction) { + const swiper = this; + const { activeIndex, params, previousIndex } = swiper; + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + + let dir = direction; + if (!dir) { + if (activeIndex > previousIndex) dir = 'next'; + else if (activeIndex < previousIndex) dir = 'prev'; + else dir = 'reset'; + } + + swiper.emit('transitionStart'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionStart'); + return; + } + swiper.emit('slideChangeTransitionStart'); + if (dir === 'next') { + swiper.emit('slideNextTransitionStart'); + } else { + swiper.emit('slidePrevTransitionStart'); + } + } +}; + +var transitionEnd$1 = function (runCallbacks = true, direction) { + const swiper = this; + const { activeIndex, previousIndex } = swiper; + swiper.animating = false; + swiper.setTransition(0); + + let dir = direction; + if (!dir) { + if (activeIndex > previousIndex) dir = 'next'; + else if (activeIndex < previousIndex) dir = 'prev'; + else dir = 'reset'; + } + + swiper.emit('transitionEnd'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionEnd'); + return; + } + swiper.emit('slideChangeTransitionEnd'); + if (dir === 'next') { + swiper.emit('slideNextTransitionEnd'); + } else { + swiper.emit('slidePrevTransitionEnd'); + } + } +}; + +var transition$1 = { + setTransition, + transitionStart, + transitionEnd: transitionEnd$1, +}; + +var slideTo = function (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + let slideIndex = index$$1; + if (slideIndex < 0) slideIndex = 0; + + const { + params, snapGrid, slidesGrid, previousIndex, activeIndex, rtl, $wrapperEl, + } = swiper; + if (swiper.animating && params.preventIntercationOnTransition) { + return false; + } + + let snapIndex = Math.floor(slideIndex / params.slidesPerGroup); + if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; + + if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) { + swiper.emit('beforeSlideChangeStart'); + } + + const translate = -snapGrid[snapIndex]; + + // Update progress + swiper.updateProgress(translate); + + // Normalize slideIndex + if (params.normalizeSlideIndex) { + for (let i = 0; i < slidesGrid.length; i += 1) { + if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) { + slideIndex = i; + } + } + } + // Directions locks + if (swiper.initialized && slideIndex !== activeIndex) { + if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { + return false; + } + if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { + if ((activeIndex || 0) !== slideIndex) return false; + } + } + + let direction; + if (slideIndex > activeIndex) direction = 'next'; + else if (slideIndex < activeIndex) direction = 'prev'; + else direction = 'reset'; + + + // Update Index + if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) { + swiper.updateActiveIndex(slideIndex); + // Update Height + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + swiper.updateSlidesClasses(); + if (params.effect !== 'slide') { + swiper.setTranslate(translate); + } + if (direction !== 'reset') { + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } + return false; + } + + if (speed === 0 || !Support.transition) { + swiper.setTransition(0); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } else { + swiper.setTransition(speed); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + if (!swiper.animating) { + swiper.animating = true; + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.transitionEnd(runCallbacks, direction); + }); + } + } + + return true; +}; + +var slideToLoop = function (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + let newIndex = index$$1; + if (swiper.params.loop) { + newIndex += swiper.loopedSlides; + } + + return swiper.slideTo(newIndex, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slideNext = function (speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + const { params, animating } = swiper; + if (params.loop) { + if (animating) return false; + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); + } + return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slidePrev = function (speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + const { params, animating } = swiper; + + if (params.loop) { + if (animating) return false; + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal); + } + return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slideReset = function (speed = this.params.speed, runCallbacks = true, internal) { + const swiper = this; + return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); +}; + +var slideToClickedSlide = function () { + const swiper = this; + const { params, $wrapperEl } = swiper; + + const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; + let slideToIndex = swiper.clickedIndex; + let realIndex; + if (params.loop) { + if (swiper.animating) return; + realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); + if (params.centeredSlides) { + if ( + (slideToIndex < swiper.loopedSlides - (slidesPerView / 2)) || + (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2)) + ) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`) + .eq(0) + .index(); + + Utils.nextTick(() => { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else if (slideToIndex > swiper.slides.length - slidesPerView) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`) + .eq(0) + .index(); + + Utils.nextTick(() => { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else { + swiper.slideTo(slideToIndex); + } +}; + +var slide = { + slideTo, + slideToLoop, + slideNext, + slidePrev, + slideReset, + slideToClickedSlide, +}; + +var loopCreate = function () { + const swiper = this; + const { params, $wrapperEl } = swiper; + // Remove duplicated slides + $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove(); + + let slides = $wrapperEl.children(`.${params.slideClass}`); + + if (params.loopFillGroupWithBlank) { + const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup); + if (blankSlidesNum !== params.slidesPerGroup) { + for (let i = 0; i < blankSlidesNum; i += 1) { + const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`); + $wrapperEl.append(blankNode); + } + slides = $wrapperEl.children(`.${params.slideClass}`); + } + } + + if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length; + + swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10); + swiper.loopedSlides += params.loopAdditionalSlides; + if (swiper.loopedSlides > slides.length) { + swiper.loopedSlides = slides.length; + } + + const prependSlides = []; + const appendSlides = []; + slides.each((index$$1, el) => { + const slide = $(el); + if (index$$1 < swiper.loopedSlides) appendSlides.push(el); + if (index$$1 < slides.length && index$$1 >= slides.length - swiper.loopedSlides) prependSlides.push(el); + slide.attr('data-swiper-slide-index', index$$1); + }); + for (let i = 0; i < appendSlides.length; i += 1) { + $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass)); + } + for (let i = prependSlides.length - 1; i >= 0; i -= 1) { + $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass)); + } +}; + +var loopFix = function () { + const swiper = this; + const { + params, activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtl, + } = swiper; + let newIndex; + swiper.allowSlidePrev = true; + swiper.allowSlideNext = true; + + const snapTranslate = -snapGrid[activeIndex]; + const diff = snapTranslate - swiper.getTranslate(); + + + // Fix For Negative Oversliding + if (activeIndex < loopedSlides) { + newIndex = (slides.length - (loopedSlides * 3)) + activeIndex; + newIndex += loopedSlides; + const slideChanged = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex > slides.length - (params.slidesPerView * 2))) { + // Fix For Positive Oversliding + newIndex = -slides.length + activeIndex + loopedSlides; + newIndex += loopedSlides; + const slideChanged = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; +}; + +var loopDestroy = function () { + const swiper = this; + const { $wrapperEl, params, slides } = swiper; + $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove(); + slides.removeAttr('data-swiper-slide-index'); +}; + +var loop = { + loopCreate, + loopFix, + loopDestroy, +}; + +var setGrabCursor = function (moving) { + const swiper = this; + if (Support.touch || !swiper.params.simulateTouch) return; + const el = swiper.el; + el.style.cursor = 'move'; + el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; + el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; + el.style.cursor = moving ? 'grabbing' : 'grab'; +}; + +var unsetGrabCursor = function () { + const swiper = this; + if (Support.touch) return; + swiper.el.style.cursor = ''; +}; + +var grabCursor = { + setGrabCursor, + unsetGrabCursor, +}; + +var appendSlide = function (slides) { + const swiper = this; + const { $wrapperEl, params } = swiper; + if (params.loop) { + swiper.loopDestroy(); + } + if (typeof slides === 'object' && 'length' in slides) { + for (let i = 0; i < slides.length; i += 1) { + if (slides[i]) $wrapperEl.append(slides[i]); + } + } else { + $wrapperEl.append(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } +}; + +var prependSlide = function (slides) { + const swiper = this; + const { params, $wrapperEl, activeIndex } = swiper; + + if (params.loop) { + swiper.loopDestroy(); + } + let newActiveIndex = activeIndex + 1; + if (typeof slides === 'object' && 'length' in slides) { + for (let i = 0; i < slides.length; i += 1) { + if (slides[i]) $wrapperEl.prepend(slides[i]); + } + newActiveIndex = activeIndex + slides.length; + } else { + $wrapperEl.prepend(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } + swiper.slideTo(newActiveIndex, 0, false); +}; + +var removeSlide = function (slidesIndexes) { + const swiper = this; + const { params, $wrapperEl, activeIndex } = swiper; + + if (params.loop) { + swiper.loopDestroy(); + swiper.slides = $wrapperEl.children(`.${params.slideClass}`); + } + let newActiveIndex = activeIndex; + let indexToRemove; + + if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { + for (let i = 0; i < slidesIndexes.length; i += 1) { + indexToRemove = slidesIndexes[i]; + if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); + if (indexToRemove < newActiveIndex) newActiveIndex -= 1; + } + newActiveIndex = Math.max(newActiveIndex, 0); + } else { + indexToRemove = slidesIndexes; + if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); + if (indexToRemove < newActiveIndex) newActiveIndex -= 1; + newActiveIndex = Math.max(newActiveIndex, 0); + } + + if (params.loop) { + swiper.loopCreate(); + } + + if (!(params.observer && Support.observer)) { + swiper.update(); + } + if (params.loop) { + swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); + } else { + swiper.slideTo(newActiveIndex, 0, false); + } +}; + +var removeAllSlides = function () { + const swiper = this; + + const slidesIndexes = []; + for (let i = 0; i < swiper.slides.length; i += 1) { + slidesIndexes.push(i); + } + swiper.removeSlide(slidesIndexes); +}; + +var manipulation = { + appendSlide, + prependSlide, + removeSlide, + removeAllSlides, +}; + +const Device = (function Device() { + const ua = window.navigator.userAgent; + + const device = { + ios: false, + android: false, + androidChrome: false, + desktop: false, + windows: false, + iphone: false, + ipod: false, + ipad: false, + cordova: window.cordova || window.phonegap, + phonegap: window.cordova || window.phonegap, + }; + + const windows = ua.match(/(Windows Phone);?[\s\/]+([\d.]+)?/); // eslint-disable-line + const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line + const ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); + + + // Windows + if (windows) { + device.os = 'windows'; + device.osVersion = windows[2]; + device.windows = true; + } + // Android + if (android && !windows) { + device.os = 'android'; + device.osVersion = android[2]; + device.android = true; + device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; + } + if (ipad || iphone || ipod) { + device.os = 'ios'; + device.ios = true; + } + // iOS + if (iphone && !ipod) { + device.osVersion = iphone[2].replace(/_/g, '.'); + device.iphone = true; + } + if (ipad) { + device.osVersion = ipad[2].replace(/_/g, '.'); + device.ipad = true; + } + if (ipod) { + device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + device.iphone = true; + } + // iOS 8+ changed UA + if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) { + if (device.osVersion.split('.')[0] === '10') { + device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0]; + } + } + + // Desktop + device.desktop = !(device.os || device.android || device.webView); + + // Webview + device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i); + + // Minimal UI + if (device.os && device.os === 'ios') { + const osVersionArr = device.osVersion.split('.'); + const metaViewport = document.querySelector('meta[name="viewport"]'); + device.minimalUi = + !device.webView && + (ipod || iphone) && + (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) && + metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0; + } + + // Pixel Ratio + device.pixelRatio = window.devicePixelRatio || 1; + + // Export object + return device; +}()); + +var onTouchStart = function (event) { + const swiper = this; + const data$$1 = swiper.touchEventsData; + const { params, touches } = swiper; + if (swiper.animating && params.preventIntercationOnTransition) { + return; + } + let e = event; + if (e.originalEvent) e = e.originalEvent; + data$$1.isTouchEvent = e.type === 'touchstart'; + if (!data$$1.isTouchEvent && 'which' in e && e.which === 3) return; + if (data$$1.isTouched && data$$1.isMoved) return; + if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) { + swiper.allowClick = true; + return; + } + if (params.swipeHandler) { + if (!$(e).closest(params.swipeHandler)[0]) return; + } + + touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + const startX = touches.currentX; + const startY = touches.currentY; + + // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore + + if ( + Device.ios && + !Device.cordova && + params.iOSEdgeSwipeDetection && + (startX <= params.iOSEdgeSwipeThreshold) && + (startX >= window.screen.width - params.iOSEdgeSwipeThreshold) + ) { + return; + } + + Utils.extend(data$$1, { + isTouched: true, + isMoved: false, + allowTouchCallbacks: true, + isScrolling: undefined, + startMoving: undefined, + }); + + touches.startX = startX; + touches.startY = startY; + data$$1.touchStartTime = Utils.now(); + swiper.allowClick = true; + swiper.updateSize(); + swiper.swipeDirection = undefined; + if (params.threshold > 0) data$$1.allowThresholdMove = false; + if (e.type !== 'touchstart') { + let preventDefault = true; + if ($(e.target).is(data$$1.formElements)) preventDefault = false; + if ( + document.activeElement && + $(document.activeElement).is(data$$1.formElements) && + document.activeElement !== e.target + ) { + document.activeElement.blur(); + } + if (preventDefault && swiper.allowTouchMove) { + e.preventDefault(); + } + } + swiper.emit('touchStart', e); +}; + +var onTouchMove = function (event) { + const swiper = this; + const data$$1 = swiper.touchEventsData; + const { params, touches, rtl } = swiper; + let e = event; + if (e.originalEvent) e = e.originalEvent; + if (!data$$1.isTouched) { + if (data$$1.startMoving && data$$1.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + return; + } + if (data$$1.isTouchEvent && e.type === 'mousemove') return; + const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (e.preventedByNestedSwiper) { + touches.startX = pageX; + touches.startY = pageY; + return; + } + if (!swiper.allowTouchMove) { + // isMoved = true; + swiper.allowClick = false; + if (data$$1.isTouched) { + Utils.extend(touches, { + startX: pageX, + startY: pageY, + currentX: pageX, + currentY: pageY, + }); + data$$1.touchStartTime = Utils.now(); + } + return; + } + if (data$$1.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { + if (swiper.isVertical()) { + // Vertical + if ( + (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) || + (pageY > touches.startY && swiper.translate >= swiper.minTranslate()) + ) { + data$$1.isTouched = false; + data$$1.isMoved = false; + return; + } + } else if ( + (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) || + (pageX > touches.startX && swiper.translate >= swiper.minTranslate()) + ) { + return; + } + } + if (data$$1.isTouchEvent && document.activeElement) { + if (e.target === document.activeElement && $(e.target).is(data$$1.formElements)) { + data$$1.isMoved = true; + swiper.allowClick = false; + return; + } + } + if (data$$1.allowTouchCallbacks) { + swiper.emit('touchMove', e); + } + if (e.targetTouches && e.targetTouches.length > 1) return; + + touches.currentX = pageX; + touches.currentY = pageY; + + const diffX = touches.currentX - touches.startX; + const diffY = touches.currentY - touches.startY; + + if (typeof data$$1.isScrolling === 'undefined') { + let touchAngle; + if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) { + data$$1.isScrolling = false; + } else { + // eslint-disable-next-line + if ((diffX * diffX) + (diffY * diffY) >= 25) { + touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI; + data$$1.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle); + } + } + } + if (data$$1.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + if (typeof startMoving === 'undefined') { + if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { + data$$1.startMoving = true; + } + } + if (data$$1.isScrolling) { + data$$1.isTouched = false; + return; + } + if (!data$$1.startMoving) { + return; + } + swiper.allowClick = false; + e.preventDefault(); + if (params.touchMoveStopPropagation && !params.nested) { + e.stopPropagation(); + } + + if (!data$$1.isMoved) { + if (params.loop) { + swiper.loopFix(); + } + data$$1.startTranslate = swiper.getTranslate(); + swiper.setTransition(0); + if (swiper.animating) { + swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); + } + data$$1.allowMomentumBounce = false; + // Grab Cursor + if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(true); + } + swiper.emit('sliderFirstMove', e); + } + swiper.emit('sliderMove', e); + data$$1.isMoved = true; + + let diff = swiper.isHorizontal() ? diffX : diffY; + touches.diff = diff; + + diff *= params.touchRatio; + if (rtl) diff = -diff; + + swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; + data$$1.currentTranslate = diff + data$$1.startTranslate; + + let disableParentSwiper = true; + let resistanceRatio = params.resistanceRatio; + if (params.touchReleaseOnEdges) { + resistanceRatio = 0; + } + if ((diff > 0 && data$$1.currentTranslate > swiper.minTranslate())) { + disableParentSwiper = false; + if (params.resistance) data$$1.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data$$1.startTranslate + diff) ** resistanceRatio); + } else if (diff < 0 && data$$1.currentTranslate < swiper.maxTranslate()) { + disableParentSwiper = false; + if (params.resistance) data$$1.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data$$1.startTranslate - diff) ** resistanceRatio); + } + + if (disableParentSwiper) { + e.preventedByNestedSwiper = true; + } + + // Directions locks + if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data$$1.currentTranslate < data$$1.startTranslate) { + data$$1.currentTranslate = data$$1.startTranslate; + } + if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data$$1.currentTranslate > data$$1.startTranslate) { + data$$1.currentTranslate = data$$1.startTranslate; + } + + + // Threshold + if (params.threshold > 0) { + if (Math.abs(diff) > params.threshold || data$$1.allowThresholdMove) { + if (!data$$1.allowThresholdMove) { + data$$1.allowThresholdMove = true; + touches.startX = touches.currentX; + touches.startY = touches.currentY; + data$$1.currentTranslate = data$$1.startTranslate; + touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; + return; + } + } else { + data$$1.currentTranslate = data$$1.startTranslate; + return; + } + } + + if (!params.followFinger) return; + + // Update active index in free mode + if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + if (params.freeMode) { + // Velocity + if (data$$1.velocities.length === 0) { + data$$1.velocities.push({ + position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], + time: data$$1.touchStartTime, + }); + } + data$$1.velocities.push({ + position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], + time: Utils.now(), + }); + } + // Update progress + swiper.updateProgress(data$$1.currentTranslate); + // Update translate + swiper.setTranslate(data$$1.currentTranslate); +}; + +var onTouchEnd = function (event) { + const swiper = this; + const data$$1 = swiper.touchEventsData; + + const { + params, touches, rtl, $wrapperEl, slidesGrid, snapGrid, + } = swiper; + let e = event; + if (e.originalEvent) e = e.originalEvent; + if (data$$1.allowTouchCallbacks) { + swiper.emit('touchEnd', e); + } + data$$1.allowTouchCallbacks = false; + if (!data$$1.isTouched) { + if (data$$1.isMoved && params.grabCursor) { + swiper.setGrabCursor(false); + } + data$$1.isMoved = false; + data$$1.startMoving = false; + return; + } + // Return Grab Cursor + if (params.grabCursor && data$$1.isMoved && data$$1.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(false); + } + + // Time diff + const touchEndTime = Utils.now(); + const timeDiff = touchEndTime - data$$1.touchStartTime; + + // Tap, doubleTap, Click + if (swiper.allowClick) { + swiper.updateClickedSlide(e); + swiper.emit('tap', e); + if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) > 300) { + if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout); + data$$1.clickTimeout = Utils.nextTick(() => { + if (!swiper || swiper.destroyed) return; + swiper.emit('click', e); + }, 300); + } + if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) < 300) { + if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout); + swiper.emit('doubleTap', e); + } + } + + data$$1.lastClickTime = Utils.now(); + Utils.nextTick(() => { + if (!swiper.destroyed) swiper.allowClick = true; + }); + + if (!data$$1.isTouched || !data$$1.isMoved || !swiper.swipeDirection || touches.diff === 0 || data$$1.currentTranslate === data$$1.startTranslate) { + data$$1.isTouched = false; + data$$1.isMoved = false; + data$$1.startMoving = false; + return; + } + data$$1.isTouched = false; + data$$1.isMoved = false; + data$$1.startMoving = false; + + let currentPos; + if (params.followFinger) { + currentPos = rtl ? swiper.translate : -swiper.translate; + } else { + currentPos = -data$$1.currentTranslate; + } + if (params.freeMode) { + if (currentPos < -swiper.minTranslate()) { + swiper.slideTo(swiper.activeIndex); + return; + } else if (currentPos > -swiper.maxTranslate()) { + if (swiper.slides.length < snapGrid.length) { + swiper.slideTo(snapGrid.length - 1); + } else { + swiper.slideTo(swiper.slides.length - 1); + } + return; + } + + if (params.freeModeMomentum) { + if (data$$1.velocities.length > 1) { + const lastMoveEvent = data$$1.velocities.pop(); + const velocityEvent = data$$1.velocities.pop(); + + const distance = lastMoveEvent.position - velocityEvent.position; + const time = lastMoveEvent.time - velocityEvent.time; + swiper.velocity = distance / time; + swiper.velocity /= 2; + if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) { + swiper.velocity = 0; + } + // this implies that the user stopped moving a finger then released. + // There would be no events with distance zero, so the last event is stale. + if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) { + swiper.velocity = 0; + } + } else { + swiper.velocity = 0; + } + swiper.velocity *= params.freeModeMomentumVelocityRatio; + + data$$1.velocities.length = 0; + let momentumDuration = 1000 * params.freeModeMomentumRatio; + const momentumDistance = swiper.velocity * momentumDuration; + + let newPosition = swiper.translate + momentumDistance; + if (rtl) newPosition = -newPosition; + let doBounce = false; + let afterBouncePosition; + const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio; + if (newPosition < swiper.maxTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition + swiper.maxTranslate() < -bounceAmount) { + newPosition = swiper.maxTranslate() - bounceAmount; + } + afterBouncePosition = swiper.maxTranslate(); + doBounce = true; + data$$1.allowMomentumBounce = true; + } else { + newPosition = swiper.maxTranslate(); + } + } else if (newPosition > swiper.minTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition - swiper.minTranslate() > bounceAmount) { + newPosition = swiper.minTranslate() + bounceAmount; + } + afterBouncePosition = swiper.minTranslate(); + doBounce = true; + data$$1.allowMomentumBounce = true; + } else { + newPosition = swiper.minTranslate(); + } + } else if (params.freeModeSticky) { + let nextSlide; + for (let j = 0; j < snapGrid.length; j += 1) { + if (snapGrid[j] > -newPosition) { + nextSlide = j; + break; + } + } + if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { + newPosition = snapGrid[nextSlide]; + } else { + newPosition = snapGrid[nextSlide - 1]; + } + newPosition = -newPosition; + } + // Fix duration + if (swiper.velocity !== 0) { + if (rtl) { + momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); + } else { + momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); + } + } else if (params.freeModeSticky) { + swiper.slideReset(); + return; + } + + if (params.freeModeMomentumBounce && doBounce) { + swiper.updateProgress(afterBouncePosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + swiper.animating = true; + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed || !data$$1.allowMomentumBounce) return; + swiper.emit('momentumBounce'); + + swiper.setTransition(params.speed); + swiper.setTranslate(afterBouncePosition); + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.transitionEnd(); + }); + }); + } else if (swiper.velocity) { + swiper.updateProgress(newPosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + if (!swiper.animating) { + swiper.animating = true; + $wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.transitionEnd(); + }); + } + } else { + swiper.updateProgress(newPosition); + } + + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) { + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + return; + } + + // Find current slide + let stopIndex = 0; + let groupSize = swiper.slidesSizesGrid[0]; + for (let i = 0; i < slidesGrid.length; i += params.slidesPerGroup) { + if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') { + if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) { + stopIndex = i; + groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i]; + } + } else if (currentPos >= slidesGrid[i]) { + stopIndex = i; + groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; + } + } + + // Find current slide size + const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; + + if (timeDiff > params.longSwipesMs) { + // Long touches + if (!params.longSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (swiper.swipeDirection === 'next') { + if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup); + else swiper.slideTo(stopIndex); + } + if (swiper.swipeDirection === 'prev') { + if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + params.slidesPerGroup); + else swiper.slideTo(stopIndex); + } + } else { + // Short swipes + if (!params.shortSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (swiper.swipeDirection === 'next') { + swiper.slideTo(stopIndex + params.slidesPerGroup); + } + if (swiper.swipeDirection === 'prev') { + swiper.slideTo(stopIndex); + } + } +}; + +var onResize = function () { + const swiper = this; + + const { params, el } = swiper; + + if (el && el.offsetWidth === 0) return; + + // Breakpoints + if (params.breakpoints) { + swiper.setBreakpoint(); + } + + // Save locks + const { allowSlideNext, allowSlidePrev } = swiper; + + // Disable locks on resize + swiper.allowSlideNext = true; + swiper.allowSlidePrev = true; + + swiper.updateSize(); + swiper.updateSlides(); + + if (params.freeMode) { + const newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate()); + swiper.setTranslate(newTranslate); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + } else { + swiper.updateSlidesClasses(); + if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + swiper.slideTo(swiper.activeIndex, 0, false, true); + } + } + // Return locks after resize + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; +}; + +var onClick = function (e) { + const swiper = this; + if (!swiper.allowClick) { + if (swiper.params.preventClicks) e.preventDefault(); + if (swiper.params.preventClicksPropagation && swiper.animating) { + e.stopPropagation(); + e.stopImmediatePropagation(); + } + } +}; + +function attachEvents() { + const swiper = this; + const { + params, touchEvents, el, wrapperEl, + } = swiper; + + { + swiper.onTouchStart = onTouchStart.bind(swiper); + swiper.onTouchMove = onTouchMove.bind(swiper); + swiper.onTouchEnd = onTouchEnd.bind(swiper); + } + + swiper.onClick = onClick.bind(swiper); + + const target = params.touchEventsTarget === 'container' ? el : wrapperEl; + const capture = !!params.nested; + + // Touch Events + { + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.addEventListener(touchEvents.start, swiper.onTouchStart, false); + document.addEventListener(touchEvents.move, swiper.onTouchMove, capture); + document.addEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture); + target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.addEventListener('mousedown', swiper.onTouchStart, false); + document.addEventListener('mousemove', swiper.onTouchMove, capture); + document.addEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + target.addEventListener('click', swiper.onClick, true); + } + } + + // Resize handler + swiper.on('resize observerUpdate', onResize); +} + +function detachEvents() { + const swiper = this; + + const { + params, touchEvents, el, wrapperEl, + } = swiper; + + const target = params.touchEventsTarget === 'container' ? el : wrapperEl; + const capture = !!params.nested; + + // Touch Events + { + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.removeEventListener(touchEvents.start, swiper.onTouchStart, false); + document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.removeEventListener('mousedown', swiper.onTouchStart, false); + document.removeEventListener('mousemove', swiper.onTouchMove, capture); + document.removeEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + target.removeEventListener('click', swiper.onClick, true); + } + } + + // Resize handler + swiper.off('resize observerUpdate', onResize); +} + +var events = { + attachEvents, + detachEvents, +}; + +var setBreakpoint = function () { + const swiper = this; + const { activeIndex, loopedSlides = 0, params } = swiper; + const breakpoints = params.breakpoints; + if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return; + // Set breakpoint for window width and update parameters + const breakpoint = swiper.getBreakpoint(breakpoints); + if (breakpoint && swiper.currentBreakpoint !== breakpoint) { + const breakPointsParams = breakpoint in breakpoints ? breakpoints[breakpoint] : swiper.originalParams; + const needsReLoop = params.loop && (breakPointsParams.slidesPerView !== params.slidesPerView); + + Utils.extend(swiper.params, breakPointsParams); + + Utils.extend(swiper, { + allowTouchMove: swiper.params.allowTouchMove, + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + }); + + swiper.currentBreakpoint = breakpoint; + + if (needsReLoop) { + swiper.loopDestroy(); + swiper.loopCreate(); + swiper.updateSlides(); + swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false); + } + swiper.emit('breakpoint', breakPointsParams); + } +}; + +var getBreakpoint = function (breakpoints) { + // Get breakpoint for window width + if (!breakpoints) return undefined; + let breakpoint = false; + const points = []; + Object.keys(breakpoints).forEach((point) => { + points.push(point); + }); + points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10)); + for (let i = 0; i < points.length; i += 1) { + const point = points[i]; + if (point >= window.innerWidth && !breakpoint) { + breakpoint = point; + } + } + return breakpoint || 'max'; +}; + +var breakpoints = { setBreakpoint, getBreakpoint }; + +const Browser = (function Browser() { + function isSafari() { + const ua = window.navigator.userAgent.toLowerCase(); + return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0); + } + return { + isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g), + isSafari: isSafari(), + isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent), + }; +}()); + +var addClasses = function () { + const swiper = this; + const { + classNames, params, rtl, $el, + } = swiper; + const suffixes = []; + + suffixes.push(params.direction); + + if (params.freeMode) { + suffixes.push('free-mode'); + } + if (!Support.flexbox) { + suffixes.push('no-flexbox'); + } + if (params.autoHeight) { + suffixes.push('autoheight'); + } + if (rtl) { + suffixes.push('rtl'); + } + if (params.slidesPerColumn > 1) { + suffixes.push('multirow'); + } + if (Device.android) { + suffixes.push('android'); + } + if (Device.ios) { + suffixes.push('ios'); + } + // WP8 Touch Events Fix + if (Browser.isIE && (Support.pointerEvents || Support.prefixedPointerEvents)) { + suffixes.push(`wp8-${params.direction}`); + } + + suffixes.forEach((suffix) => { + classNames.push(params.containerModifierClass + suffix); + }); + + $el.addClass(classNames.join(' ')); +}; + +var removeClasses = function () { + const swiper = this; + const { $el, classNames } = swiper; + + $el.removeClass(classNames.join(' ')); +}; + +var classes = { addClasses, removeClasses }; + +var loadImage = function (imageEl, src, srcset, sizes, checkForComplete, callback) { + let image; + function onReady() { + if (callback) callback(); + } + if (!imageEl.complete || !checkForComplete) { + if (src) { + image = new window.Image(); + image.onload = onReady; + image.onerror = onReady; + if (sizes) { + image.sizes = sizes; + } + if (srcset) { + image.srcset = srcset; + } + if (src) { + image.src = src; + } + } else { + onReady(); + } + } else { + // image already loaded... + onReady(); + } +}; + +var preloadImages = function () { + const swiper = this; + swiper.imagesToLoad = swiper.$el.find('img'); + function onReady() { + if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; + if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; + if (swiper.imagesLoaded === swiper.imagesToLoad.length) { + if (swiper.params.updateOnImagesReady) swiper.update(); + swiper.emit('imagesReady'); + } + } + for (let i = 0; i < swiper.imagesToLoad.length; i += 1) { + const imageEl = swiper.imagesToLoad[i]; + swiper.loadImage( + imageEl, + imageEl.currentSrc || imageEl.getAttribute('src'), + imageEl.srcset || imageEl.getAttribute('srcset'), + imageEl.sizes || imageEl.getAttribute('sizes'), + true, + onReady + ); + } +}; + +var images = { + loadImage, + preloadImages, +}; + +function checkOverflow() { + const swiper = this; + const wasLocked = swiper.isLocked; + + swiper.isLocked = swiper.snapGrid.length === 1; + swiper.allowTouchMove = !swiper.isLocked; + + if (wasLocked && wasLocked !== swiper.isLocked) { + swiper.isEnd = false; + swiper.navigation.update(); + } +} + +var checkOverflow$1 = { checkOverflow }; + +var defaults = { + init: true, + direction: 'horizontal', + touchEventsTarget: 'container', + initialSlide: 0, + speed: 300, + // + preventIntercationOnTransition: false, + + // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView). + iOSEdgeSwipeDetection: false, + iOSEdgeSwipeThreshold: 20, + + // Free mode + freeMode: false, + freeModeMomentum: true, + freeModeMomentumRatio: 1, + freeModeMomentumBounce: true, + freeModeMomentumBounceRatio: 1, + freeModeMomentumVelocityRatio: 1, + freeModeSticky: false, + freeModeMinimumVelocity: 0.02, + + // Autoheight + autoHeight: false, + + // Set wrapper width + setWrapperSize: false, + + // Virtual Translate + virtualTranslate: false, + + // Effects + effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' + + // Breakpoints + breakpoints: undefined, + + // Slides grid + spaceBetween: 0, + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerColumnFill: 'column', + slidesPerGroup: 1, + centeredSlides: false, + slidesOffsetBefore: 0, // in px + slidesOffsetAfter: 0, // in px + normalizeSlideIndex: true, + + // Disable swiper and hide navigation when container not overflow + watchOverflow: false, + + // Round length + roundLengths: false, + + // Touches + touchRatio: 1, + touchAngle: 45, + simulateTouch: true, + shortSwipes: true, + longSwipes: true, + longSwipesRatio: 0.5, + longSwipesMs: 300, + followFinger: true, + allowTouchMove: true, + threshold: 0, + touchMoveStopPropagation: true, + touchReleaseOnEdges: false, + + // Unique Navigation Elements + uniqueNavElements: true, + + // Resistance + resistance: true, + resistanceRatio: 0.85, + + // Progress + watchSlidesProgress: false, + watchSlidesVisibility: false, + + // Cursor + grabCursor: false, + + // Clicks + preventClicks: true, + preventClicksPropagation: true, + slideToClickedSlide: false, + + // Images + preloadImages: true, + updateOnImagesReady: true, + + // loop + loop: false, + loopAdditionalSlides: 0, + loopedSlides: null, + loopFillGroupWithBlank: false, + + // Swiping/no swiping + allowSlidePrev: true, + allowSlideNext: true, + swipeHandler: null, // '.swipe-handler', + noSwiping: true, + noSwipingClass: 'swiper-no-swiping', + noSwipingSelector: null, + + // Passive Listeners + passiveListeners: true, + + // NS + containerModifierClass: 'swiper-container-', // NEW + slideClass: 'swiper-slide', + slideBlankClass: 'swiper-slide-invisible-blank', + slideActiveClass: 'swiper-slide-active', + slideDuplicateActiveClass: 'swiper-slide-duplicate-active', + slideVisibleClass: 'swiper-slide-visible', + slideDuplicateClass: 'swiper-slide-duplicate', + slideNextClass: 'swiper-slide-next', + slideDuplicateNextClass: 'swiper-slide-duplicate-next', + slidePrevClass: 'swiper-slide-prev', + slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', + wrapperClass: 'swiper-wrapper', + + // Callbacks + runCallbacksOnInit: true, +}; + +const prototypes = { + update, + translate, + transition: transition$1, + slide, + loop, + grabCursor, + manipulation, + events, + breakpoints, + checkOverflow: checkOverflow$1, + classes, + images, +}; + +const extendedDefaults = {}; + +class Swiper extends SwiperClass { + constructor(...args) { + let el; + let params; + if (args.length === 1 && args[0].constructor && args[0].constructor === Object) { + params = args[0]; + } else { + [el, params] = args; + } + if (!params) params = {}; + + params = Utils.extend({}, params); + if (el && !params.el) params.el = el; + + super(params); + + Object.keys(prototypes).forEach((prototypeGroup) => { + Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => { + if (!Swiper.prototype[protoMethod]) { + Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; + } + }); + }); + + // Swiper Instance + const swiper = this; + if (typeof swiper.modules === 'undefined') { + swiper.modules = {}; + } + Object.keys(swiper.modules).forEach((moduleName) => { + const module = swiper.modules[moduleName]; + if (module.params) { + const moduleParamName = Object.keys(module.params)[0]; + const moduleParams = module.params[moduleParamName]; + if (typeof moduleParams !== 'object') return; + if (!(moduleParamName in params && 'enabled' in moduleParams)) return; + if (params[moduleParamName] === true) { + params[moduleParamName] = { enabled: true }; + } + if ( + typeof params[moduleParamName] === 'object' && + !('enabled' in params[moduleParamName]) + ) { + params[moduleParamName].enabled = true; + } + if (!params[moduleParamName]) params[moduleParamName] = { enabled: false }; + } + }); + + // Extend defaults with modules params + const swiperParams = Utils.extend({}, defaults); + swiper.useModulesParams(swiperParams); + + // Extend defaults with passed params + swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params); + swiper.originalParams = Utils.extend({}, swiper.params); + swiper.passedParams = Utils.extend({}, params); + + // Save Dom lib + swiper.$ = $; + + // Find el + const $el = $(swiper.params.el); + el = $el[0]; + + if (!el) { + return undefined; + } + + if ($el.length > 1) { + const swipers = []; + $el.each((index$$1, containerEl) => { + const newParams = Utils.extend({}, params, { el: containerEl }); + swipers.push(new Swiper(newParams)); + }); + return swipers; + } + + el.swiper = swiper; + $el.data('swiper', swiper); + + // Find Wrapper + const $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`); + + // Extend Swiper + Utils.extend(swiper, { + $el, + el, + $wrapperEl, + wrapperEl: $wrapperEl[0], + + // Classes + classNames: [], + + // Slides + slides: $(), + slidesGrid: [], + snapGrid: [], + slidesSizesGrid: [], + + // isDirection + isHorizontal() { + return swiper.params.direction === 'horizontal'; + }, + isVertical() { + return swiper.params.direction === 'vertical'; + }, + // RTL + rtl: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), + wrongRTL: $wrapperEl.css('display') === '-webkit-box', + + // Indexes + activeIndex: 0, + realIndex: 0, + + // + isBeginning: true, + isEnd: false, + + // Props + translate: 0, + progress: 0, + velocity: 0, + animating: false, + + // Locks + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + + // Touch Events + touchEvents: (function touchEvents() { + const touch = ['touchstart', 'touchmove', 'touchend']; + let desktop = ['mousedown', 'mousemove', 'mouseup']; + if (Support.pointerEvents) { + desktop = ['pointerdown', 'pointermove', 'pointerup']; + } else if (Support.prefixedPointerEvents) { + desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp']; + } + swiper.touchEventsTouch = { + start: touch[0], + move: touch[1], + end: touch[2], + }; + swiper.touchEventsDesktop = { + start: desktop[0], + move: desktop[1], + end: desktop[2], + }; + return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; + }()), + touchEventsData: { + isTouched: undefined, + isMoved: undefined, + allowTouchCallbacks: undefined, + touchStartTime: undefined, + isScrolling: undefined, + currentTranslate: undefined, + startTranslate: undefined, + allowThresholdMove: undefined, + // Form elements to match + formElements: 'input, select, option, textarea, button, video', + // Last click time + lastClickTime: Utils.now(), + clickTimeout: undefined, + // Velocities + velocities: [], + allowMomentumBounce: undefined, + isTouchEvent: undefined, + startMoving: undefined, + }, + + // Clicks + allowClick: true, + + // Touches + allowTouchMove: swiper.params.allowTouchMove, + + touches: { + startX: 0, + startY: 0, + currentX: 0, + currentY: 0, + diff: 0, + }, + + // Images + imagesToLoad: [], + imagesLoaded: 0, + + }); + + // Install Modules + swiper.useModules(); + + // Init + if (swiper.params.init) { + swiper.init(); + } + + // Return app instance + return swiper; + } + slidesPerViewDynamic() { + const swiper = this; + const { + params, slides, slidesGrid, size: swiperSize, activeIndex, + } = swiper; + let spv = 1; + if (params.centeredSlides) { + let slideSize = slides[activeIndex].swiperSlideSize; + let breakLoop; + for (let i = activeIndex + 1; i < slides.length; i += 1) { + if (slides[i] && !breakLoop) { + slideSize += slides[i].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) breakLoop = true; + } + } + for (let i = activeIndex - 1; i >= 0; i -= 1) { + if (slides[i] && !breakLoop) { + slideSize += slides[i].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) breakLoop = true; + } + } + } else { + for (let i = activeIndex + 1; i < slides.length; i += 1) { + if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) { + spv += 1; + } + } + } + return spv; + } + update() { + const swiper = this; + if (!swiper || swiper.destroyed) return; + swiper.updateSize(); + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + + function setTranslate() { + const translateValue = swiper.rtl ? swiper.translate * -1 : swiper.translate; + const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); + swiper.setTranslate(newTranslate); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + let translated; + if (swiper.params.freeMode) { + setTranslate(); + if (swiper.params.autoHeight) { + swiper.updateAutoHeight(); + } + } else { + if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + translated = swiper.slideTo(swiper.activeIndex, 0, false, true); + } + if (!translated) { + setTranslate(); + } + } + swiper.emit('update'); + } + init() { + const swiper = this; + if (swiper.initialized) return; + + swiper.emit('beforeInit'); + + // Set breakpoint + if (swiper.params.breakpoints) { + swiper.setBreakpoint(); + } + + // Add Classes + swiper.addClasses(); + + // Create loop + if (swiper.params.loop) { + swiper.loopCreate(); + } + + // Update size + swiper.updateSize(); + + // Update slides + swiper.updateSlides(); + + if (swiper.params.watchOverflow) { + swiper.checkOverflow(); + } + + // Set Grab Cursor + if (swiper.params.grabCursor) { + swiper.setGrabCursor(); + } + + if (swiper.params.preloadImages) { + swiper.preloadImages(); + } + + // Slide To Initial Slide + if (swiper.params.loop) { + swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit); + } else { + swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit); + } + + // Attach events + swiper.attachEvents(); + + // Init Flag + swiper.initialized = true; + + // Emit + swiper.emit('init'); + } + destroy(deleteInstance = true, cleanStyles = true) { + const swiper = this; + const { + params, $el, $wrapperEl, slides, + } = swiper; + swiper.emit('beforeDestroy'); + + // Init Flag + swiper.initialized = false; + + // Detach events + swiper.detachEvents(); + + // Destroy loop + if (params.loop) { + swiper.loopDestroy(); + } + + // Cleanup styles + if (cleanStyles) { + swiper.removeClasses(); + $el.removeAttr('style'); + $wrapperEl.removeAttr('style'); + if (slides && slides.length) { + slides + .removeClass([ + params.slideVisibleClass, + params.slideActiveClass, + params.slideNextClass, + params.slidePrevClass, + ].join(' ')) + .removeAttr('style') + .removeAttr('data-swiper-slide-index') + .removeAttr('data-swiper-column') + .removeAttr('data-swiper-row'); + } + } + + swiper.emit('destroy'); + + // Detach emitter events + Object.keys(swiper.eventsListeners).forEach((eventName) => { + swiper.off(eventName); + }); + + if (deleteInstance !== false) { + swiper.$el[0].swiper = null; + swiper.$el.data('swiper', null); + Utils.deleteProps(swiper); + } + swiper.destroyed = true; + } + static extendDefaults(newDefaults) { + Utils.extend(extendedDefaults, newDefaults); + } + static get extendedDefaults() { + return extendedDefaults; + } + static get defaults() { + return defaults; + } + static get Class() { + return SwiperClass; + } + static get $() { + return $; + } +} + +var Device$2 = { + name: 'device', + proto: { + device: Device, + }, + static: { + device: Device, + }, +}; + +var Support$2 = { + name: 'support', + proto: { + support: Support, + }, + static: { + support: Support, + }, +}; + +var Browser$2 = { + name: 'browser', + proto: { + browser: Browser, + }, + static: { + browser: Browser, + }, +}; + +var Resize = { + name: 'resize', + create() { + const swiper = this; + Utils.extend(swiper, { + resize: { + resizeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) return; + swiper.emit('beforeResize'); + swiper.emit('resize'); + }, + orientationChangeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) return; + swiper.emit('orientationchange'); + }, + }, + }); + }, + on: { + init() { + const swiper = this; + // Emit resize + window.addEventListener('resize', swiper.resize.resizeHandler); + + // Emit orientationchange + window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + destroy() { + const swiper = this; + window.removeEventListener('resize', swiper.resize.resizeHandler); + window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + }, +}; + +const Observer = { + func: window.MutationObserver || window.WebkitMutationObserver, + attach(target, options = {}) { + const swiper = this; + + const ObserverFunc = Observer.func; + const observer = new ObserverFunc((mutations) => { + mutations.forEach((mutation) => { + swiper.emit('observerUpdate', mutation); + }); + }); + + observer.observe(target, { + attributes: typeof options.attributes === 'undefined' ? true : options.attributes, + childList: typeof options.childList === 'undefined' ? true : options.childList, + characterData: typeof options.characterData === 'undefined' ? true : options.characterData, + }); + + swiper.observer.observers.push(observer); + }, + init() { + const swiper = this; + if (!Support.observer || !swiper.params.observer) return; + if (swiper.params.observeParents) { + const containerParents = swiper.$el.parents(); + for (let i = 0; i < containerParents.length; i += 1) { + swiper.observer.attach(containerParents[i]); + } + } + // Observe container + swiper.observer.attach(swiper.$el[0], { childList: false }); + + // Observe wrapper + swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false }); + }, + destroy() { + const swiper = this; + swiper.observer.observers.forEach((observer) => { + observer.disconnect(); + }); + swiper.observer.observers = []; + }, +}; + +var Observer$1 = { + name: 'observer', + params: { + observer: false, + observeParents: false, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + observer: { + init: Observer.init.bind(swiper), + attach: Observer.attach.bind(swiper), + destroy: Observer.destroy.bind(swiper), + observers: [], + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.observer.init(); + }, + destroy() { + const swiper = this; + swiper.observer.destroy(); + }, + }, +}; + +const Virtual = { + update(force) { + const swiper = this; + const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params; + const { + from: previousFrom, + to: previousTo, + slides, + slidesGrid: previousSlidesGrid, + renderSlide, + offset: previousOffset, + } = swiper.virtual; + swiper.updateActiveIndex(); + const activeIndex = swiper.activeIndex || 0; + + let offsetProp; + if (swiper.rtl && swiper.isHorizontal()) offsetProp = 'right'; + else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; + + let slidesAfter; + let slidesBefore; + if (centeredSlides) { + slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup; + slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup; + } else { + slidesAfter = slidesPerView + (slidesPerGroup - 1); + slidesBefore = slidesPerGroup; + } + const from = Math.max((activeIndex || 0) - slidesBefore, 0); + const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); + const offset$$1 = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); + + Utils.extend(swiper.virtual, { + from, + to, + offset: offset$$1, + slidesGrid: swiper.slidesGrid, + }); + + function onRendered() { + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + if (swiper.lazy && swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + } + + if (previousFrom === from && previousTo === to && !force) { + if (swiper.slidesGrid !== previousSlidesGrid && offset$$1 !== previousOffset) { + swiper.slides.css(offsetProp, `${offset$$1}px`); + } + swiper.updateProgress(); + return; + } + if (swiper.params.virtual.renderExternal) { + swiper.params.virtual.renderExternal.call(swiper, { + offset: offset$$1, + from, + to, + slides: (function getSlides() { + const slidesToRender = []; + for (let i = from; i <= to; i += 1) { + slidesToRender.push(slides[i]); + } + return slidesToRender; + }()), + }); + onRendered(); + return; + } + const prependIndexes = []; + const appendIndexes = []; + if (force) { + swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove(); + } else { + for (let i = previousFrom; i <= previousTo; i += 1) { + if (i < from || i > to) { + swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index="${i}"]`).remove(); + } + } + } + for (let i = 0; i < slides.length; i += 1) { + if (i >= from && i <= to) { + if (typeof previousTo === 'undefined' || force) { + appendIndexes.push(i); + } else { + if (i > previousTo) appendIndexes.push(i); + if (i < previousFrom) prependIndexes.push(i); + } + } + } + appendIndexes.forEach((index$$1) => { + swiper.$wrapperEl.append(renderSlide(slides[index$$1], index$$1)); + }); + prependIndexes.sort((a, b) => a < b).forEach((index$$1) => { + swiper.$wrapperEl.prepend(renderSlide(slides[index$$1], index$$1)); + }); + swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset$$1}px`); + onRendered(); + }, + renderSlide(slide, index$$1) { + const swiper = this; + const params = swiper.params.virtual; + if (params.cache && swiper.virtual.cache[index$$1]) { + return swiper.virtual.cache[index$$1]; + } + const $slideEl = params.renderSlide + ? $(params.renderSlide.call(swiper, slide, index$$1)) + : $(`
    ${slide}
    `); + if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index$$1); + if (params.cache) swiper.virtual.cache[index$$1] = $slideEl; + return $slideEl; + }, + appendSlide(slide) { + const swiper = this; + swiper.virtual.slides.push(slide); + swiper.virtual.update(true); + }, + prependSlide(slide) { + const swiper = this; + swiper.virtual.slides.unshift(slide); + if (swiper.params.virtual.cache) { + const cache = swiper.virtual.cache; + const newCache = {}; + Object.keys(cache).forEach((cachedIndex) => { + newCache[cachedIndex + 1] = cache[cachedIndex]; + }); + swiper.virtual.cache = newCache; + } + swiper.virtual.update(true); + swiper.slideNext(0); + }, +}; + +var virtual = { + name: 'virtual', + params: { + virtual: { + enabled: false, + slides: [], + cache: true, + renderSlide: null, + renderExternal: null, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + virtual: { + update: Virtual.update.bind(swiper), + appendSlide: Virtual.appendSlide.bind(swiper), + prependSlide: Virtual.prependSlide.bind(swiper), + renderSlide: Virtual.renderSlide.bind(swiper), + slides: swiper.params.virtual.slides, + cache: {}, + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (!swiper.params.virtual.enabled) return; + swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); + const overwriteParams = { + watchSlidesProgress: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + + swiper.virtual.update(); + }, + setTranslate() { + const swiper = this; + if (!swiper.params.virtual.enabled) return; + swiper.virtual.update(); + }, + }, +}; + +const Keyboard = { + handle(event) { + const swiper = this; + let e = event; + if (e.originalEvent) e = e.originalEvent; // jquery fix + const kc = e.keyCode || e.charCode; + // Directions locks + if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) { + return false; + } + if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) { + return false; + } + if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { + return undefined; + } + if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { + return undefined; + } + if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) { + let inView = false; + // Check that swiper should be inside of visible area of window + if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) { + return undefined; + } + const windowWidth = window.innerWidth; + const windowHeight = window.innerHeight; + const swiperOffset = swiper.$el.offset(); + if (swiper.rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; + const swiperCoord = [ + [swiperOffset.left, swiperOffset.top], + [swiperOffset.left + swiper.width, swiperOffset.top], + [swiperOffset.left, swiperOffset.top + swiper.height], + [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height], + ]; + for (let i = 0; i < swiperCoord.length; i += 1) { + const point = swiperCoord[i]; + if ( + point[0] >= 0 && point[0] <= windowWidth && + point[1] >= 0 && point[1] <= windowHeight + ) { + inView = true; + } + } + if (!inView) return undefined; + } + if (swiper.isHorizontal()) { + if (kc === 37 || kc === 39) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + if ((kc === 39 && !swiper.rtl) || (kc === 37 && swiper.rtl)) swiper.slideNext(); + if ((kc === 37 && !swiper.rtl) || (kc === 39 && swiper.rtl)) swiper.slidePrev(); + } else { + if (kc === 38 || kc === 40) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + if (kc === 40) swiper.slideNext(); + if (kc === 38) swiper.slidePrev(); + } + swiper.emit('keyPress', kc); + return undefined; + }, + enable() { + const swiper = this; + if (swiper.keyboard.enabled) return; + $(document).on('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = true; + }, + disable() { + const swiper = this; + if (!swiper.keyboard.enabled) return; + $(document).off('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = false; + }, +}; + +var keyboard = { + name: 'keyboard', + params: { + keyboard: { + enabled: false, + onlyInViewport: true, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + keyboard: { + enabled: false, + enable: Keyboard.enable.bind(swiper), + disable: Keyboard.disable.bind(swiper), + handle: Keyboard.handle.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.keyboard.enabled) { + swiper.keyboard.enable(); + } + }, + destroy() { + const swiper = this; + if (swiper.keyboard.enabled) { + swiper.keyboard.disable(); + } + }, + }, +}; + +function isEventSupported() { + const eventName = 'onwheel'; + let isSupported = eventName in document; + + if (!isSupported) { + const element = document.createElement('div'); + element.setAttribute(eventName, 'return;'); + isSupported = typeof element[eventName] === 'function'; + } + + if (!isSupported && + document.implementation && + document.implementation.hasFeature && + // always returns true in newer browsers as per the standard. + // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature + document.implementation.hasFeature('', '') !== true + ) { + // This is the only way to test support for the `wheel` event in IE9+. + isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); + } + + return isSupported; +} +const Mousewheel = { + lastScrollTime: Utils.now(), + event: (function getEvent() { + if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll'; + return isEventSupported() ? 'wheel' : 'mousewheel'; + }()), + normalize(e) { + // Reasonable defaults + const PIXEL_STEP = 10; + const LINE_HEIGHT = 40; + const PAGE_HEIGHT = 800; + + let sX = 0; + let sY = 0; // spinX, spinY + let pX = 0; + let pY = 0; // pixelX, pixelY + + // Legacy + if ('detail' in e) { + sY = e.detail; + } + if ('wheelDelta' in e) { + sY = -e.wheelDelta / 120; + } + if ('wheelDeltaY' in e) { + sY = -e.wheelDeltaY / 120; + } + if ('wheelDeltaX' in e) { + sX = -e.wheelDeltaX / 120; + } + + // side scrolling on FF with DOMMouseScroll + if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { + sX = sY; + sY = 0; + } + + pX = sX * PIXEL_STEP; + pY = sY * PIXEL_STEP; + + if ('deltaY' in e) { + pY = e.deltaY; + } + if ('deltaX' in e) { + pX = e.deltaX; + } + + if ((pX || pY) && e.deltaMode) { + if (e.deltaMode === 1) { // delta in LINE units + pX *= LINE_HEIGHT; + pY *= LINE_HEIGHT; + } else { // delta in PAGE units + pX *= PAGE_HEIGHT; + pY *= PAGE_HEIGHT; + } + } + + // Fall-back if spin cannot be determined + if (pX && !sX) { + sX = (pX < 1) ? -1 : 1; + } + if (pY && !sY) { + sY = (pY < 1) ? -1 : 1; + } + + return { + spinX: sX, + spinY: sY, + pixelX: pX, + pixelY: pY, + }; + }, + handle(event) { + let e = event; + const swiper = this; + const params = swiper.params.mousewheel; + if (e.originalEvent) e = e.originalEvent; // jquery fix + let delta = 0; + const rtlFactor = swiper.rtl ? -1 : 1; + + const data$$1 = Mousewheel.normalize(e); + + if (params.forceToAxis) { + if (swiper.isHorizontal()) { + if (Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY)) delta = data$$1.pixelX * rtlFactor; + else return true; + } else if (Math.abs(data$$1.pixelY) > Math.abs(data$$1.pixelX)) delta = data$$1.pixelY; + else return true; + } else { + delta = Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY) ? -data$$1.pixelX * rtlFactor : -data$$1.pixelY; + } + + if (delta === 0) return true; + + if (params.invert) delta = -delta; + + if (!swiper.params.freeMode) { + if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) { + if (delta < 0) { + if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { + swiper.slideNext(); + swiper.emit('scroll', e); + } else if (params.releaseOnEdges) return true; + } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { + swiper.slidePrev(); + swiper.emit('scroll', e); + } else if (params.releaseOnEdges) return true; + } + swiper.mousewheel.lastScrollTime = (new window.Date()).getTime(); + } else { + // Freemode or scrollContainer: + let position = swiper.getTranslate() + (delta * params.sensitivity); + const wasBeginning = swiper.isBeginning; + const wasEnd = swiper.isEnd; + + if (position >= swiper.minTranslate()) position = swiper.minTranslate(); + if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); + + swiper.setTransition(0); + swiper.setTranslate(position); + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) { + swiper.updateSlidesClasses(); + } + + if (swiper.params.freeModeSticky) { + clearTimeout(swiper.mousewheel.timeout); + swiper.mousewheel.timeout = Utils.nextTick(() => { + swiper.slideReset(); + }, 300); + } + // Emit event + swiper.emit('scroll', e); + + // Stop autoplay + if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.stopAutoplay(); + // Return page scroll on edge positions + if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; + } + + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + return false; + }, + enable() { + const swiper = this; + if (!Mousewheel.event) return false; + if (swiper.mousewheel.enabled) return false; + let target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $(swiper.params.mousewheel.eventsTarged); + } + target.on(Mousewheel.event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = true; + return true; + }, + disable() { + const swiper = this; + if (!Mousewheel.event) return false; + if (!swiper.mousewheel.enabled) return false; + let target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $(swiper.params.mousewheel.eventsTarged); + } + target.off(Mousewheel.event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = false; + return true; + }, +}; + +var mousewheel = { + name: 'mousewheel', + params: { + mousewheel: { + enabled: false, + releaseOnEdges: false, + invert: false, + forceToAxis: false, + sensitivity: 1, + eventsTarged: 'container', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + mousewheel: { + enabled: false, + enable: Mousewheel.enable.bind(swiper), + disable: Mousewheel.disable.bind(swiper), + handle: Mousewheel.handle.bind(swiper), + lastScrollTime: Utils.now(), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable(); + }, + destroy() { + const swiper = this; + if (swiper.mousewheel.enabled) swiper.mousewheel.disable(); + }, + }, +}; + +const Navigation = { + update() { + // Update Navigation Buttons + const swiper = this; + const params = swiper.params.navigation; + + if (swiper.params.loop) return; + const { $nextEl, $prevEl } = swiper.navigation; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + $prevEl.addClass(params.disabledClass); + } else { + $prevEl.removeClass(params.disabledClass); + } + $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + $nextEl.addClass(params.disabledClass); + } else { + $nextEl.removeClass(params.disabledClass); + } + $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + }, + init() { + const swiper = this; + const params = swiper.params.navigation; + if (!(params.nextEl || params.prevEl)) return; + + let $nextEl; + let $prevEl; + if (params.nextEl) { + $nextEl = $(params.nextEl); + if ( + swiper.params.uniqueNavElements && + typeof params.nextEl === 'string' && + $nextEl.length > 1 && + swiper.$el.find(params.nextEl).length === 1 + ) { + $nextEl = swiper.$el.find(params.nextEl); + } + } + if (params.prevEl) { + $prevEl = $(params.prevEl); + if ( + swiper.params.uniqueNavElements && + typeof params.prevEl === 'string' && + $prevEl.length > 1 && + swiper.$el.find(params.prevEl).length === 1 + ) { + $prevEl = swiper.$el.find(params.prevEl); + } + } + + if ($nextEl && $nextEl.length > 0) { + $nextEl.on('click', (e) => { + e.preventDefault(); + if (swiper.isEnd && !swiper.params.loop) return; + swiper.slideNext(); + }); + } + if ($prevEl && $prevEl.length > 0) { + $prevEl.on('click', (e) => { + e.preventDefault(); + if (swiper.isBeginning && !swiper.params.loop) return; + swiper.slidePrev(); + }); + } + + Utils.extend(swiper.navigation, { + $nextEl, + nextEl: $nextEl && $nextEl[0], + $prevEl, + prevEl: $prevEl && $prevEl[0], + }); + }, + destroy() { + const swiper = this; + const { $nextEl, $prevEl } = swiper.navigation; + if ($nextEl && $nextEl.length) { + $nextEl.off('click'); + $nextEl.removeClass(swiper.params.navigation.disabledClass); + } + if ($prevEl && $prevEl.length) { + $prevEl.off('click'); + $prevEl.removeClass(swiper.params.navigation.disabledClass); + } + }, +}; + +var navigation = { + name: 'navigation', + params: { + navigation: { + nextEl: null, + prevEl: null, + + hideOnClick: false, + disabledClass: 'swiper-button-disabled', + hiddenClass: 'swiper-button-hidden', + lockClass: 'swiper-button-lock', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + navigation: { + init: Navigation.init.bind(swiper), + update: Navigation.update.bind(swiper), + destroy: Navigation.destroy.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.navigation.init(); + swiper.navigation.update(); + }, + toEdge() { + const swiper = this; + swiper.navigation.update(); + }, + fromEdge() { + const swiper = this; + swiper.navigation.update(); + }, + destroy() { + const swiper = this; + swiper.navigation.destroy(); + }, + click(e) { + const swiper = this; + const { $nextEl, $prevEl } = swiper.navigation; + if ( + swiper.params.navigation.hideOnClick && + !$(e.target).is($prevEl) && + !$(e.target).is($nextEl) + ) { + if ($nextEl) $nextEl.toggleClass(swiper.params.navigation.hiddenClass); + if ($prevEl) $prevEl.toggleClass(swiper.params.navigation.hiddenClass); + } + }, + }, +}; + +const Pagination = { + update() { + // Render || Update Pagination bullets/items + const swiper = this; + const rtl = swiper.rtl; + const params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; + const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + const $el = swiper.pagination.$el; + // Current/Total + let current; + const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + if (swiper.params.loop) { + current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); + if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) { + current -= (slidesLength - (swiper.loopedSlides * 2)); + } + if (current > total - 1) current -= total; + if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current; + } else if (typeof swiper.snapIndex !== 'undefined') { + current = swiper.snapIndex; + } else { + current = swiper.activeIndex || 0; + } + // Types + if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { + const bullets = swiper.pagination.bullets; + let firstIndex; + let lastIndex; + let midIndex; + if (params.dynamicBullets) { + swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); + $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`); + if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { + if (current > swiper.previousIndex && swiper.pagination.dynamicBulletIndex < (params.dynamicMainBullets - 1)) { + swiper.pagination.dynamicBulletIndex += 1; + } else if (current < swiper.previousIndex && swiper.pagination.dynamicBulletIndex > 0) { + swiper.pagination.dynamicBulletIndex -= 1; + } + } + firstIndex = current - swiper.pagination.dynamicBulletIndex; + lastIndex = firstIndex + (params.dynamicMainBullets - 1); + midIndex = (lastIndex + firstIndex) / 2; + } + bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`); + if ($el.length > 1) { + bullets.each((index$$1, bullet) => { + const $bullet = $(bullet); + const bulletIndex = $bullet.index(); + if (bulletIndex === current) { + $bullet.addClass(params.bulletActiveClass); + } + if (params.dynamicBullets) { + if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { + $bullet.addClass(`${params.bulletActiveClass}-main`); + } + if (bulletIndex === firstIndex) { + $bullet + .prev() + .addClass(`${params.bulletActiveClass}-prev`) + .prev() + .addClass(`${params.bulletActiveClass}-prev-prev`); + } + if (bulletIndex === lastIndex) { + $bullet + .next() + .addClass(`${params.bulletActiveClass}-next`) + .next() + .addClass(`${params.bulletActiveClass}-next-next`); + } + } + }); + } else { + const $bullet = bullets.eq(current); + $bullet.addClass(params.bulletActiveClass); + if (params.dynamicBullets) { + const $firstDisplayedBullet = bullets.eq(firstIndex); + const $lastDisplayedBullet = bullets.eq(lastIndex); + for (let i = firstIndex; i <= lastIndex; i += 1) { + bullets.eq(i).addClass(`${params.bulletActiveClass}-main`); + } + $firstDisplayedBullet + .prev() + .addClass(`${params.bulletActiveClass}-prev`) + .prev() + .addClass(`${params.bulletActiveClass}-prev-prev`); + $lastDisplayedBullet + .next() + .addClass(`${params.bulletActiveClass}-next`) + .next() + .addClass(`${params.bulletActiveClass}-next-next`); + } + } + if (params.dynamicBullets) { + const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); + const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize); + const offsetProp = rtl ? 'right' : 'left'; + bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`); + } + } + if (params.type === 'fraction') { + $el.find(`.${params.currentClass}`).text(current + 1); + $el.find(`.${params.totalClass}`).text(total); + } + if (params.type === 'progressbar') { + const scale = (current + 1) / total; + let scaleX = scale; + let scaleY = 1; + if (!swiper.isHorizontal()) { + scaleY = scale; + scaleX = 1; + } + $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed); + } + if (params.type === 'custom' && params.renderCustom) { + $el.html(params.renderCustom(swiper, current + 1, total)); + swiper.emit('paginationRender', swiper, $el[0]); + } else { + swiper.emit('paginationUpdate', swiper, $el[0]); + } + $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + }, + render() { + // Render Container + const swiper = this; + const params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; + const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + + const $el = swiper.pagination.$el; + let paginationHTML = ''; + if (params.type === 'bullets') { + const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + for (let i = 0; i < numberOfBullets; i += 1) { + if (params.renderBullet) { + paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); + } else { + paginationHTML += `<${params.bulletElement} class="${params.bulletClass}">`; + } + } + $el.html(paginationHTML); + swiper.pagination.bullets = $el.find(`.${params.bulletClass}`); + } + if (params.type === 'fraction') { + if (params.renderFraction) { + paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); + } else { + paginationHTML = + `` + + ' / ' + + ``; + } + $el.html(paginationHTML); + } + if (params.type === 'progressbar') { + if (params.renderProgressbar) { + paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); + } else { + paginationHTML = ``; + } + $el.html(paginationHTML); + } + if (params.type !== 'custom') { + swiper.emit('paginationRender', swiper.pagination.$el[0]); + } + }, + init() { + const swiper = this; + const params = swiper.params.pagination; + if (!params.el) return; + + let $el = $(params.el); + if ($el.length === 0) return; + + if ( + swiper.params.uniqueNavElements && + typeof params.el === 'string' && + $el.length > 1 && + swiper.$el.find(params.el).length === 1 + ) { + $el = swiper.$el.find(params.el); + } + + if (params.type === 'bullets' && params.clickable) { + $el.addClass(params.clickableClass); + } + + $el.addClass(params.modifierClass + params.type); + + if (params.type === 'bullets' && params.dynamicBullets) { + $el.addClass(`${params.modifierClass}${params.type}-dynamic`); + swiper.pagination.dynamicBulletIndex = 0; + if (params.dynamicMainBullets < 1) { + params.dynamicMainBullets = 1; + } + } + + if (params.clickable) { + $el.on('click', `.${params.bulletClass}`, function onClick(e) { + e.preventDefault(); + let index$$1 = $(this).index() * swiper.params.slidesPerGroup; + if (swiper.params.loop) index$$1 += swiper.loopedSlides; + swiper.slideTo(index$$1); + }); + } + + Utils.extend(swiper.pagination, { + $el, + el: $el[0], + }); + }, + destroy() { + const swiper = this; + const params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; + const $el = swiper.pagination.$el; + + $el.removeClass(params.hiddenClass); + $el.removeClass(params.modifierClass + params.type); + if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass); + if (params.clickable) { + $el.off('click', `.${params.bulletClass}`); + } + }, +}; + +var pagination = { + name: 'pagination', + params: { + pagination: { + el: null, + bulletElement: 'span', + clickable: false, + hideOnClick: false, + renderBullet: null, + renderProgressbar: null, + renderFraction: null, + renderCustom: null, + type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom' + dynamicBullets: false, + dynamicMainBullets: 1, + bulletClass: 'swiper-pagination-bullet', + bulletActiveClass: 'swiper-pagination-bullet-active', + modifierClass: 'swiper-pagination-', // NEW + currentClass: 'swiper-pagination-current', + totalClass: 'swiper-pagination-total', + hiddenClass: 'swiper-pagination-hidden', + progressbarFillClass: 'swiper-pagination-progressbar-fill', + clickableClass: 'swiper-pagination-clickable', // NEW + lockClass: 'swiper-pagination-lock', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + pagination: { + init: Pagination.init.bind(swiper), + render: Pagination.render.bind(swiper), + update: Pagination.update.bind(swiper), + destroy: Pagination.destroy.bind(swiper), + dynamicBulletIndex: 0, + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.pagination.init(); + swiper.pagination.render(); + swiper.pagination.update(); + }, + activeIndexChange() { + const swiper = this; + if (swiper.params.loop) { + swiper.pagination.update(); + } else if (typeof swiper.snapIndex === 'undefined') { + swiper.pagination.update(); + } + }, + snapIndexChange() { + const swiper = this; + if (!swiper.params.loop) { + swiper.pagination.update(); + } + }, + slidesLengthChange() { + const swiper = this; + if (swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + snapGridLengthChange() { + const swiper = this; + if (!swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + destroy() { + const swiper = this; + swiper.pagination.destroy(); + }, + click(e) { + const swiper = this; + if ( + swiper.params.pagination.el && + swiper.params.pagination.hideOnClick && + swiper.pagination.$el.length > 0 && + !$(e.target).hasClass(swiper.params.pagination.bulletClass) + ) { + swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass); + } + }, + }, +}; + +const Scrollbar = { + setTranslate() { + const swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; + const { scrollbar, rtl, progress } = swiper; + const { + dragSize, trackSize, $dragEl, $el, + } = scrollbar; + const params = swiper.params.scrollbar; + + let newSize = dragSize; + let newPos = (trackSize - dragSize) * progress; + if (rtl && swiper.isHorizontal()) { + newPos = -newPos; + if (newPos > 0) { + newSize = dragSize - newPos; + newPos = 0; + } else if (-newPos + dragSize > trackSize) { + newSize = trackSize + newPos; + } + } else if (newPos < 0) { + newSize = dragSize + newPos; + newPos = 0; + } else if (newPos + dragSize > trackSize) { + newSize = trackSize - newPos; + } + if (swiper.isHorizontal()) { + if (Support.transforms3d) { + $dragEl.transform(`translate3d(${newPos}px, 0, 0)`); + } else { + $dragEl.transform(`translateX(${newPos}px)`); + } + $dragEl[0].style.width = `${newSize}px`; + } else { + if (Support.transforms3d) { + $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`); + } else { + $dragEl.transform(`translateY(${newPos}px)`); + } + $dragEl[0].style.height = `${newSize}px`; + } + if (params.hide) { + clearTimeout(swiper.scrollbar.timeout); + $el[0].style.opacity = 1; + swiper.scrollbar.timeout = setTimeout(() => { + $el[0].style.opacity = 0; + $el.transition(400); + }, 1000); + } + }, + setTransition(duration) { + const swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; + swiper.scrollbar.$dragEl.transition(duration); + }, + updateSize() { + const swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; + + const { scrollbar } = swiper; + const { $dragEl, $el } = scrollbar; + + $dragEl[0].style.width = ''; + $dragEl[0].style.height = ''; + const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; + + const divider = swiper.size / swiper.virtualSize; + const moveDivider = divider * (trackSize / swiper.size); + let dragSize; + if (swiper.params.scrollbar.dragSize === 'auto') { + dragSize = trackSize * divider; + } else { + dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); + } + + if (swiper.isHorizontal()) { + $dragEl[0].style.width = `${dragSize}px`; + } else { + $dragEl[0].style.height = `${dragSize}px`; + } + + if (divider >= 1) { + $el[0].style.display = 'none'; + } else { + $el[0].style.display = ''; + } + if (swiper.params.scrollbarHide) { + $el[0].style.opacity = 0; + } + Utils.extend(scrollbar, { + trackSize, + divider, + moveDivider, + dragSize, + }); + scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); + }, + setDragPosition(e) { + const swiper = this; + const { scrollbar } = swiper; + const { $el, dragSize, trackSize } = scrollbar; + + let pointerPosition; + if (swiper.isHorizontal()) { + pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX); + } else { + pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY); + } + let positionRatio; + positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize); + positionRatio = Math.max(Math.min(positionRatio, 1), 0); + if (swiper.rtl) { + positionRatio = 1 - positionRatio; + } + + const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio); + + swiper.updateProgress(position); + swiper.setTranslate(position); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + }, + onDragStart(e) { + const swiper = this; + const params = swiper.params.scrollbar; + const { scrollbar, $wrapperEl } = swiper; + const { $el, $dragEl } = scrollbar; + swiper.scrollbar.isTouched = true; + e.preventDefault(); + e.stopPropagation(); + + $wrapperEl.transition(100); + $dragEl.transition(100); + scrollbar.setDragPosition(e); + + clearTimeout(swiper.scrollbar.dragTimeout); + + $el.transition(0); + if (params.hide) { + $el.css('opacity', 1); + } + swiper.emit('scrollbarDragStart', e); + }, + onDragMove(e) { + const swiper = this; + const { scrollbar, $wrapperEl } = swiper; + const { $el, $dragEl } = scrollbar; + + if (!swiper.scrollbar.isTouched) return; + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + scrollbar.setDragPosition(e); + $wrapperEl.transition(0); + $el.transition(0); + $dragEl.transition(0); + swiper.emit('scrollbarDragMove', e); + }, + onDragEnd(e) { + const swiper = this; + + const params = swiper.params.scrollbar; + const { scrollbar } = swiper; + const { $el } = scrollbar; + + if (!swiper.scrollbar.isTouched) return; + swiper.scrollbar.isTouched = false; + if (params.hide) { + clearTimeout(swiper.scrollbar.dragTimeout); + swiper.scrollbar.dragTimeout = Utils.nextTick(() => { + $el.css('opacity', 0); + $el.transition(400); + }, 1000); + } + swiper.emit('scrollbarDragEnd', e); + if (params.snapOnRelease) { + swiper.slideReset(); + } + }, + enableDraggable() { + const swiper = this; + if (!swiper.params.scrollbar.el) return; + const { + scrollbar, touchEvents, touchEventsDesktop, params, + } = swiper; + const $el = scrollbar.$el; + const target = $el[0]; + const activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false; + const passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false; + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + if (Support.touch) { + target.addEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener); + target.addEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener); + target.addEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.addEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener); + document.addEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener); + document.addEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener); + } + } + }, + disableDraggable() { + const swiper = this; + if (!swiper.params.scrollbar.el) return; + const { + scrollbar, touchEvents, touchEventsDesktop, params, + } = swiper; + const $el = scrollbar.$el; + const target = $el[0]; + const activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false; + const passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false; + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + if (Support.touch) { + target.removeEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener); + target.removeEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener); + target.removeEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.removeEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener); + document.removeEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener); + document.removeEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener); + } + } + }, + init() { + const swiper = this; + if (!swiper.params.scrollbar.el) return; + const { scrollbar, $el: $swiperEl } = swiper; + const params = swiper.params.scrollbar; + + let $el = $(params.el); + if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { + $el = $swiperEl.find(params.el); + } + + let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`); + if ($dragEl.length === 0) { + $dragEl = $(`
    `); + $el.append($dragEl); + } + + Utils.extend(scrollbar, { + $el, + el: $el[0], + $dragEl, + dragEl: $dragEl[0], + }); + + if (params.draggable) { + scrollbar.enableDraggable(); + } + }, + destroy() { + const swiper = this; + swiper.scrollbar.disableDraggable(); + }, +}; + +var scrollbar = { + name: 'scrollbar', + params: { + scrollbar: { + el: null, + dragSize: 'auto', + hide: false, + draggable: false, + snapOnRelease: true, + lockClass: 'swiper-scrollbar-lock', + dragClass: 'swiper-scrollbar-drag', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + scrollbar: { + init: Scrollbar.init.bind(swiper), + destroy: Scrollbar.destroy.bind(swiper), + updateSize: Scrollbar.updateSize.bind(swiper), + setTranslate: Scrollbar.setTranslate.bind(swiper), + setTransition: Scrollbar.setTransition.bind(swiper), + enableDraggable: Scrollbar.enableDraggable.bind(swiper), + disableDraggable: Scrollbar.disableDraggable.bind(swiper), + setDragPosition: Scrollbar.setDragPosition.bind(swiper), + onDragStart: Scrollbar.onDragStart.bind(swiper), + onDragMove: Scrollbar.onDragMove.bind(swiper), + onDragEnd: Scrollbar.onDragEnd.bind(swiper), + isTouched: false, + timeout: null, + dragTimeout: null, + }, + }); + }, + on: { + init() { + const swiper = this; + swiper.scrollbar.init(); + swiper.scrollbar.updateSize(); + swiper.scrollbar.setTranslate(); + }, + update() { + const swiper = this; + swiper.scrollbar.updateSize(); + }, + resize() { + const swiper = this; + swiper.scrollbar.updateSize(); + }, + observerUpdate() { + const swiper = this; + swiper.scrollbar.updateSize(); + }, + setTranslate() { + const swiper = this; + swiper.scrollbar.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + swiper.scrollbar.setTransition(duration); + }, + destroy() { + const swiper = this; + swiper.scrollbar.destroy(); + }, + }, +}; + +const Parallax = { + setTransform(el, progress) { + const swiper = this; + const { rtl } = swiper; + + const $el = $(el); + const rtlFactor = rtl ? -1 : 1; + + const p = $el.attr('data-swiper-parallax') || '0'; + let x = $el.attr('data-swiper-parallax-x'); + let y = $el.attr('data-swiper-parallax-y'); + const scale = $el.attr('data-swiper-parallax-scale'); + const opacity = $el.attr('data-swiper-parallax-opacity'); + + if (x || y) { + x = x || '0'; + y = y || '0'; + } else if (swiper.isHorizontal()) { + x = p; + y = '0'; + } else { + y = p; + x = '0'; + } + + if ((x).indexOf('%') >= 0) { + x = `${parseInt(x, 10) * progress * rtlFactor}%`; + } else { + x = `${x * progress * rtlFactor}px`; + } + if ((y).indexOf('%') >= 0) { + y = `${parseInt(y, 10) * progress}%`; + } else { + y = `${y * progress}px`; + } + + if (typeof opacity !== 'undefined' && opacity !== null) { + const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress))); + $el[0].style.opacity = currentOpacity; + } + if (typeof scale === 'undefined' || scale === null) { + $el.transform(`translate3d(${x}, ${y}, 0px)`); + } else { + const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress))); + $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`); + } + }, + setTranslate() { + const swiper = this; + const { + $el, slides, progress, snapGrid, + } = swiper; + $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each((index$$1, el) => { + swiper.parallax.setTransform(el, progress); + }); + slides.each((slideIndex, slideEl) => { + let slideProgress = slideEl.progress; + if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { + slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1)); + } + slideProgress = Math.min(Math.max(slideProgress, -1), 1); + $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each((index$$1, el) => { + swiper.parallax.setTransform(el, slideProgress); + }); + }); + }, + setTransition(duration = this.params.speed) { + const swiper = this; + const { $el } = swiper; + $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each((index$$1, parallaxEl) => { + const $parallaxEl = $(parallaxEl); + let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; + if (duration === 0) parallaxDuration = 0; + $parallaxEl.transition(parallaxDuration); + }); + }, +}; + +var parallax = { + name: 'parallax', + params: { + parallax: { + enabled: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + parallax: { + setTransform: Parallax.setTransform.bind(swiper), + setTranslate: Parallax.setTranslate.bind(swiper), + setTransition: Parallax.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (!swiper.params.parallax.enabled) return; + swiper.params.watchSlidesProgress = true; + }, + init() { + const swiper = this; + if (!swiper.params.parallax) return; + swiper.parallax.setTranslate(); + }, + setTranslate() { + const swiper = this; + if (!swiper.params.parallax) return; + swiper.parallax.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (!swiper.params.parallax) return; + swiper.parallax.setTransition(duration); + }, + }, +}; + +const Zoom = { + // Calc Scale From Multi-touches + getDistanceBetweenTouches(e) { + if (e.targetTouches.length < 2) return 1; + const x1 = e.targetTouches[0].pageX; + const y1 = e.targetTouches[0].pageY; + const x2 = e.targetTouches[1].pageX; + const y2 = e.targetTouches[1].pageY; + const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2)); + return distance; + }, + // Events + onGestureStart(e) { + const swiper = this; + const params = swiper.params.zoom; + const zoom = swiper.zoom; + const { gesture } = zoom; + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + if (!Support.gestures) { + if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureTouched = true; + gesture.scaleStart = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$slideEl || !gesture.$slideEl.length) { + gesture.$slideEl = $(e.target).closest('.swiper-slide'); + if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); + gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (gesture.$imageWrapEl.length === 0) { + gesture.$imageEl = undefined; + return; + } + } + gesture.$imageEl.transition(0); + swiper.zoom.isScaling = true; + }, + onGestureChange(e) { + const swiper = this; + const params = swiper.params.zoom; + const zoom = swiper.zoom; + const { gesture } = zoom; + if (!Support.gestures) { + if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureMoved = true; + gesture.scaleMove = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + if (Support.gestures) { + swiper.zoom.scale = e.scale * zoom.currentScale; + } else { + zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale; + } + if (zoom.scale > gesture.maxRatio) { + zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5); + } + if (zoom.scale < params.minRatio) { + zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5); + } + gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`); + }, + onGestureEnd(e) { + const swiper = this; + const params = swiper.params.zoom; + const zoom = swiper.zoom; + const { gesture } = zoom; + if (!Support.gestures) { + if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) { + return; + } + if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) { + return; + } + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); + gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`); + zoom.currentScale = zoom.scale; + zoom.isScaling = false; + if (zoom.scale === 1) gesture.$slideEl = undefined; + }, + onTouchStart(e) { + const swiper = this; + const zoom = swiper.zoom; + const { gesture, image } = zoom; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + if (image.isTouched) return; + if (Device.android) e.preventDefault(); + image.isTouched = true; + image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + }, + onTouchMove(e) { + const swiper = this; + const zoom = swiper.zoom; + const { gesture, image, velocity } = zoom; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + swiper.allowClick = false; + if (!image.isTouched || !gesture.$slideEl) return; + + if (!image.isMoved) { + image.width = gesture.$imageEl[0].offsetWidth; + image.height = gesture.$imageEl[0].offsetHeight; + image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0; + image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0; + gesture.slideWidth = gesture.$slideEl[0].offsetWidth; + gesture.slideHeight = gesture.$slideEl[0].offsetHeight; + gesture.$imageWrapEl.transition(0); + if (swiper.rtl) image.startX = -image.startX; + if (swiper.rtl) image.startY = -image.startY; + } + // Define if we need image drag + const scaledWidth = image.width * zoom.scale; + const scaledHeight = image.height * zoom.scale; + + if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; + + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + + image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + + if (!image.isMoved && !zoom.isScaling) { + if ( + swiper.isHorizontal() && + ( + (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x) || + (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x) + ) + ) { + image.isTouched = false; + return; + } else if ( + !swiper.isHorizontal() && + ( + (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y) || + (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y) + ) + ) { + image.isTouched = false; + return; + } + } + e.preventDefault(); + e.stopPropagation(); + + image.isMoved = true; + image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX; + image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY; + + if (image.currentX < image.minX) { + image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8); + } + if (image.currentX > image.maxX) { + image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8); + } + + if (image.currentY < image.minY) { + image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8); + } + if (image.currentY > image.maxY) { + image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8); + } + + // Velocity + if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; + if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; + if (!velocity.prevTime) velocity.prevTime = Date.now(); + velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; + velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; + if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; + if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; + velocity.prevPositionX = image.touchesCurrent.x; + velocity.prevPositionY = image.touchesCurrent.y; + velocity.prevTime = Date.now(); + + gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`); + }, + onTouchEnd() { + const swiper = this; + const zoom = swiper.zoom; + const { gesture, image, velocity } = zoom; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + if (!image.isTouched || !image.isMoved) { + image.isTouched = false; + image.isMoved = false; + return; + } + image.isTouched = false; + image.isMoved = false; + let momentumDurationX = 300; + let momentumDurationY = 300; + const momentumDistanceX = velocity.x * momentumDurationX; + const newPositionX = image.currentX + momentumDistanceX; + const momentumDistanceY = velocity.y * momentumDurationY; + const newPositionY = image.currentY + momentumDistanceY; + + // Fix duration + if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); + if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); + const momentumDuration = Math.max(momentumDurationX, momentumDurationY); + + image.currentX = newPositionX; + image.currentY = newPositionY; + + // Define if we need image drag + const scaledWidth = image.width * zoom.scale; + const scaledHeight = image.height * zoom.scale; + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); + image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); + + gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`); + }, + onTransitionEnd() { + const swiper = this; + const zoom = swiper.zoom; + const { gesture } = zoom; + if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { + gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); + gesture.$imageWrapEl.transform('translate3d(0,0,0)'); + gesture.$slideEl = undefined; + gesture.$imageEl = undefined; + gesture.$imageWrapEl = undefined; + + zoom.scale = 1; + zoom.currentScale = 1; + } + }, + // Toggle Zoom + toggle(e) { + const swiper = this; + const zoom = swiper.zoom; + + if (zoom.scale && zoom.scale !== 1) { + // Zoom Out + zoom.out(); + } else { + // Zoom In + zoom.in(e); + } + }, + in(e) { + const swiper = this; + + const zoom = swiper.zoom; + const params = swiper.params.zoom; + const { gesture, image } = zoom; + + if (!gesture.$slideEl) { + gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + + gesture.$slideEl.addClass(`${params.zoomedSlideClass}`); + + let touchX; + let touchY; + let offsetX; + let offsetY; + let diffX; + let diffY; + let translateX; + let translateY; + let imageWidth; + let imageHeight; + let scaledWidth; + let scaledHeight; + let translateMinX; + let translateMinY; + let translateMaxX; + let translateMaxY; + let slideWidth; + let slideHeight; + + if (typeof image.touchesStart.x === 'undefined' && e) { + touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; + touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; + } else { + touchX = image.touchesStart.x; + touchY = image.touchesStart.y; + } + + zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (e) { + slideWidth = gesture.$slideEl[0].offsetWidth; + slideHeight = gesture.$slideEl[0].offsetHeight; + offsetX = gesture.$slideEl.offset().left; + offsetY = gesture.$slideEl.offset().top; + diffX = (offsetX + (slideWidth / 2)) - touchX; + diffY = (offsetY + (slideHeight / 2)) - touchY; + + imageWidth = gesture.$imageEl[0].offsetWidth; + imageHeight = gesture.$imageEl[0].offsetHeight; + scaledWidth = imageWidth * zoom.scale; + scaledHeight = imageHeight * zoom.scale; + + translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0); + translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0); + translateMaxX = -translateMinX; + translateMaxY = -translateMinY; + + translateX = diffX * zoom.scale; + translateY = diffY * zoom.scale; + + if (translateX < translateMinX) { + translateX = translateMinX; + } + if (translateX > translateMaxX) { + translateX = translateMaxX; + } + + if (translateY < translateMinY) { + translateY = translateMinY; + } + if (translateY > translateMaxY) { + translateY = translateMaxY; + } + } else { + translateX = 0; + translateY = 0; + } + gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`); + gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`); + }, + out() { + const swiper = this; + + const zoom = swiper.zoom; + const params = swiper.params.zoom; + const { gesture } = zoom; + + if (!gesture.$slideEl) { + gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; + + zoom.scale = 1; + zoom.currentScale = 1; + gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); + gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); + gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`); + gesture.$slideEl = undefined; + }, + // Attach/Detach Events + enable() { + const swiper = this; + const zoom = swiper.zoom; + if (zoom.enabled) return; + zoom.enabled = true; + + const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); + } + + // Move image + swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove); + }, + disable() { + const swiper = this; + const zoom = swiper.zoom; + if (!zoom.enabled) return; + + swiper.zoom.enabled = false; + + const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); + } + + // Move image + swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove); + }, +}; + +var zoom = { + name: 'zoom', + params: { + zoom: { + enabled: false, + maxRatio: 3, + minRatio: 1, + toggle: true, + containerClass: 'swiper-zoom-container', + zoomedSlideClass: 'swiper-slide-zoomed', + }, + }, + create() { + const swiper = this; + const zoom = { + enabled: false, + scale: 1, + currentScale: 1, + isScaling: false, + gesture: { + $slideEl: undefined, + slideWidth: undefined, + slideHeight: undefined, + $imageEl: undefined, + $imageWrapEl: undefined, + maxRatio: 3, + }, + image: { + isTouched: undefined, + isMoved: undefined, + currentX: undefined, + currentY: undefined, + minX: undefined, + minY: undefined, + maxX: undefined, + maxY: undefined, + width: undefined, + height: undefined, + startX: undefined, + startY: undefined, + touchesStart: {}, + touchesCurrent: {}, + }, + velocity: { + x: undefined, + y: undefined, + prevPositionX: undefined, + prevPositionY: undefined, + prevTime: undefined, + }, + }; + ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => { + zoom[methodName] = Zoom[methodName].bind(swiper); + }); + Utils.extend(swiper, { + zoom, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.zoom.enabled) { + swiper.zoom.enable(); + } + }, + destroy() { + const swiper = this; + swiper.zoom.disable(); + }, + touchStart(e) { + const swiper = this; + if (!swiper.zoom.enabled) return; + swiper.zoom.onTouchStart(e); + }, + touchEnd(e) { + const swiper = this; + if (!swiper.zoom.enabled) return; + swiper.zoom.onTouchEnd(e); + }, + doubleTap(e) { + const swiper = this; + if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { + swiper.zoom.toggle(e); + } + }, + transitionEnd() { + const swiper = this; + if (swiper.zoom.enabled && swiper.params.zoom.enabled) { + swiper.zoom.onTransitionEnd(); + } + }, + }, +}; + +const Lazy = { + loadInSlide(index$$1, loadInDuplicate = true) { + const swiper = this; + const params = swiper.params.lazy; + if (typeof index$$1 === 'undefined') return; + if (swiper.slides.length === 0) return; + const isVirtual = swiper.virtual && swiper.params.virtual.enabled; + + const $slideEl = isVirtual + ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index="${index$$1}"]`) + : swiper.slides.eq(index$$1); + + let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`); + if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { + $images = $images.add($slideEl[0]); + } + if ($images.length === 0) return; + + $images.each((imageIndex, imageEl) => { + const $imageEl = $(imageEl); + $imageEl.addClass(params.loadingClass); + + const background = $imageEl.attr('data-background'); + const src = $imageEl.attr('data-src'); + const srcset = $imageEl.attr('data-srcset'); + const sizes = $imageEl.attr('data-sizes'); + + swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => { + if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return; + if (background) { + $imageEl.css('background-image', `url("${background}")`); + $imageEl.removeAttr('data-background'); + } else { + if (srcset) { + $imageEl.attr('srcset', srcset); + $imageEl.removeAttr('data-srcset'); + } + if (sizes) { + $imageEl.attr('sizes', sizes); + $imageEl.removeAttr('data-sizes'); + } + if (src) { + $imageEl.attr('src', src); + $imageEl.removeAttr('data-src'); + } + } + + $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); + $slideEl.find(`.${params.preloaderClass}`).remove(); + if (swiper.params.loop && loadInDuplicate) { + const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); + if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { + const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index="${slideOriginalIndex}"]:not(.${swiper.params.slideDuplicateClass})`); + swiper.lazy.loadInSlide(originalSlide.index(), false); + } else { + const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index="${slideOriginalIndex}"]`); + swiper.lazy.loadInSlide(duplicatedSlide.index(), false); + } + } + swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]); + }); + + swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]); + }); + }, + load() { + const swiper = this; + const { + $wrapperEl, params: swiperParams, slides, activeIndex, + } = swiper; + const isVirtual = swiper.virtual && swiperParams.virtual.enabled; + const params = swiperParams.lazy; + + let slidesPerView = swiperParams.slidesPerView; + if (slidesPerView === 'auto') { + slidesPerView = 0; + } + + function slideExist(index$$1) { + if (isVirtual) { + if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index="${index$$1}"]`).length) { + return true; + } + } else if (slides[index$$1]) return true; + return false; + } + function slideIndex(slideEl) { + if (isVirtual) { + return $(slideEl).attr('data-swiper-slide-index'); + } + return $(slideEl).index(); + } + + if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true; + if (swiper.params.watchSlidesVisibility) { + $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => { + const index$$1 = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index(); + swiper.lazy.loadInSlide(index$$1); + }); + } else if (slidesPerView > 1) { + for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) { + if (slideExist(i)) swiper.lazy.loadInSlide(i); + } + } else { + swiper.lazy.loadInSlide(activeIndex); + } + if (params.loadPrevNext) { + if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) { + const amount = params.loadPrevNextAmount; + const spv = slidesPerView; + const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); + const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); + // Next Slides + for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) { + if (slideExist(i)) swiper.lazy.loadInSlide(i); + } + // Prev Slides + for (let i = minIndex; i < activeIndex; i += 1) { + if (slideExist(i)) swiper.lazy.loadInSlide(i); + } + } else { + const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`); + if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide)); + + const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`); + if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide)); + } + } + }, +}; + +var lazy = { + name: 'lazy', + params: { + lazy: { + enabled: false, + loadPrevNext: false, + loadPrevNextAmount: 1, + loadOnTransitionStart: false, + + elementClass: 'swiper-lazy', + loadingClass: 'swiper-lazy-loading', + loadedClass: 'swiper-lazy-loaded', + preloaderClass: 'swiper-lazy-preloader', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + lazy: { + initialImageLoaded: false, + load: Lazy.load.bind(swiper), + loadInSlide: Lazy.loadInSlide.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.lazy.enabled && swiper.params.preloadImages) { + swiper.params.preloadImages = false; + } + }, + init() { + const swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) { + swiper.lazy.load(); + } + }, + scroll() { + const swiper = this; + if (swiper.params.freeMode && !swiper.params.freeModeSticky) { + swiper.lazy.load(); + } + }, + resize() { + const swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + scrollbarDragMove() { + const swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + transitionStart() { + const swiper = this; + if (swiper.params.lazy.enabled) { + if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) { + swiper.lazy.load(); + } + } + }, + transitionEnd() { + const swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { + swiper.lazy.load(); + } + }, + }, +}; + +/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ +const Controller = { + LinearSpline: function LinearSpline(x, y) { + const binarySearch = (function search() { + let maxIndex; + let minIndex; + let guess; + return (array, val) => { + minIndex = -1; + maxIndex = array.length; + while (maxIndex - minIndex > 1) { + guess = maxIndex + minIndex >> 1; + if (array[guess] <= val) { + minIndex = guess; + } else { + maxIndex = guess; + } + } + return maxIndex; + }; + }()); + this.x = x; + this.y = y; + this.lastIndex = x.length - 1; + // Given an x value (x2), return the expected y2 value: + // (x1,y1) is the known point before given value, + // (x3,y3) is the known point after given value. + let i1; + let i3; + + this.interpolate = function interpolate(x2) { + if (!x2) return 0; + + // Get the indexes of x1 and x3 (the array indexes before and after given x2): + i3 = binarySearch(this.x, x2); + i1 = i3 - 1; + + // We have our indexes i1 & i3, so we can calculate already: + // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 + return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1]; + }; + return this; + }, + // xxx: for now i will just save one spline function to to + getInterpolateFunction(c) { + const swiper = this; + if (!swiper.controller.spline) { + swiper.controller.spline = swiper.params.loop ? + new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : + new Controller.LinearSpline(swiper.snapGrid, c.snapGrid); + } + }, + setTranslate(setTranslate, byController) { + const swiper = this; + const controlled = swiper.controller.control; + let multiplier; + let controlledTranslate; + function setControlledTranslate(c) { + // this will create an Interpolate function based on the snapGrids + // x is the Grid of the scrolled scroller and y will be the controlled scroller + // it makes sense to create this only once and recall it for the interpolation + // the function does a lot of value caching for performance + const translate = c.rtl && c.params.direction === 'horizontal' ? -swiper.translate : swiper.translate; + if (swiper.params.controller.by === 'slide') { + swiper.controller.getInterpolateFunction(c); + // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid + // but it did not work out + controlledTranslate = -swiper.controller.spline.interpolate(-translate); + } + + if (!controlledTranslate || swiper.params.controller.by === 'container') { + multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); + controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate(); + } + + if (swiper.params.controller.inverse) { + controlledTranslate = c.maxTranslate() - controlledTranslate; + } + c.updateProgress(controlledTranslate); + c.setTranslate(controlledTranslate, swiper); + c.updateActiveIndex(); + c.updateSlidesClasses(); + } + if (Array.isArray(controlled)) { + for (let i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper) { + setControlledTranslate(controlled[i]); + } + } + } else if (controlled instanceof Swiper && byController !== controlled) { + setControlledTranslate(controlled); + } + }, + setTransition(duration, byController) { + const swiper = this; + const controlled = swiper.controller.control; + let i; + function setControlledTransition(c) { + c.setTransition(duration, swiper); + if (duration !== 0) { + c.transitionStart(); + c.$wrapperEl.transitionEnd(() => { + if (!controlled) return; + if (c.params.loop && swiper.params.controller.by === 'slide') { + c.loopFix(); + } + c.transitionEnd(); + }); + } + } + if (Array.isArray(controlled)) { + for (i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper) { + setControlledTransition(controlled[i]); + } + } + } else if (controlled instanceof Swiper && byController !== controlled) { + setControlledTransition(controlled); + } + }, +}; +var controller = { + name: 'controller', + params: { + controller: { + control: undefined, + inverse: false, + by: 'slide', // or 'container' + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + controller: { + control: swiper.params.controller.control, + getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper), + setTranslate: Controller.setTranslate.bind(swiper), + setTransition: Controller.setTransition.bind(swiper), + }, + }); + }, + on: { + update() { + const swiper = this; + if (!swiper.controller.control) return; + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + resize() { + const swiper = this; + if (!swiper.controller.control) return; + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + observerUpdate() { + const swiper = this; + if (!swiper.controller.control) return; + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + setTranslate(translate, byController) { + const swiper = this; + if (!swiper.controller.control) return; + swiper.controller.setTranslate(translate, byController); + }, + setTransition(duration, byController) { + const swiper = this; + if (!swiper.controller.control) return; + swiper.controller.setTransition(duration, byController); + }, + }, +}; + +const a11y = { + makeElFocusable($el) { + $el.attr('tabIndex', '0'); + return $el; + }, + addElRole($el, role) { + $el.attr('role', role); + return $el; + }, + addElLabel($el, label) { + $el.attr('aria-label', label); + return $el; + }, + disableEl($el) { + $el.attr('aria-disabled', true); + return $el; + }, + enableEl($el) { + $el.attr('aria-disabled', false); + return $el; + }, + onEnterKey(e) { + const swiper = this; + const params = swiper.params.a11y; + if (e.keyCode !== 13) return; + const $targetEl = $(e.target); + if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { + if (!(swiper.isEnd && !swiper.params.loop)) { + swiper.slideNext(); + } + if (swiper.isEnd) { + swiper.a11y.notify(params.lastSlideMessage); + } else { + swiper.a11y.notify(params.nextSlideMessage); + } + } + if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { + if (!(swiper.isBeginning && !swiper.params.loop)) { + swiper.slidePrev(); + } + if (swiper.isBeginning) { + swiper.a11y.notify(params.firstSlideMessage); + } else { + swiper.a11y.notify(params.prevSlideMessage); + } + } + if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) { + $targetEl[0].click(); + } + }, + notify(message) { + const swiper = this; + const notification = swiper.a11y.liveRegion; + if (notification.length === 0) return; + notification.html(''); + notification.html(message); + }, + updateNavigation() { + const swiper = this; + + if (swiper.params.loop) return; + const { $nextEl, $prevEl } = swiper.navigation; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + swiper.a11y.disableEl($prevEl); + } else { + swiper.a11y.enableEl($prevEl); + } + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + swiper.a11y.disableEl($nextEl); + } else { + swiper.a11y.enableEl($nextEl); + } + } + }, + updatePagination() { + const swiper = this; + const params = swiper.params.a11y; + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.bullets.each((bulletIndex, bulletEl) => { + const $bulletEl = $(bulletEl); + swiper.a11y.makeElFocusable($bulletEl); + swiper.a11y.addElRole($bulletEl, 'button'); + swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1)); + }); + } + }, + init() { + const swiper = this; + + swiper.$el.append(swiper.a11y.liveRegion); + + // Navigation + const params = swiper.params.a11y; + let $nextEl; + let $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + swiper.a11y.makeElFocusable($nextEl); + swiper.a11y.addElRole($nextEl, 'button'); + swiper.a11y.addElLabel($nextEl, params.nextSlideMessage); + $nextEl.on('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + swiper.a11y.makeElFocusable($prevEl); + swiper.a11y.addElRole($prevEl, 'button'); + swiper.a11y.addElLabel($prevEl, params.prevSlideMessage); + $prevEl.on('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey); + } + }, + destroy() { + const swiper = this; + if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove(); + + let $nextEl; + let $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + $nextEl.off('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + $prevEl.off('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey); + } + }, +}; +var a11y$1 = { + name: 'a11y', + params: { + a11y: { + enabled: false, + notificationClass: 'swiper-notification', + prevSlideMessage: 'Previous slide', + nextSlideMessage: 'Next slide', + firstSlideMessage: 'This is the first slide', + lastSlideMessage: 'This is the last slide', + paginationBulletMessage: 'Go to slide {{index}}', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + a11y: { + liveRegion: $(``), + }, + }); + Object.keys(a11y).forEach((methodName) => { + swiper.a11y[methodName] = a11y[methodName].bind(swiper); + }); + }, + on: { + init() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.init(); + swiper.a11y.updateNavigation(); + }, + toEdge() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.updateNavigation(); + }, + fromEdge() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.updateNavigation(); + }, + paginationUpdate() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.updatePagination(); + }, + destroy() { + const swiper = this; + if (!swiper.params.a11y.enabled) return; + swiper.a11y.destroy(); + }, + }, +}; + +const History = { + init() { + const swiper = this; + if (!swiper.params.history) return; + if (!window.history || !window.history.pushState) { + swiper.params.history.enabled = false; + swiper.params.hashNavigation.enabled = true; + return; + } + const history = swiper.history; + history.initialized = true; + history.paths = History.getPathValues(); + if (!history.paths.key && !history.paths.value) return; + history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit); + if (!swiper.params.history.replaceState) { + window.addEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + destroy() { + const swiper = this; + if (!swiper.params.history.replaceState) { + window.removeEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + setHistoryPopState() { + const swiper = this; + swiper.history.paths = History.getPathValues(); + swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false); + }, + getPathValues() { + const pathArray = window.location.pathname.slice(1).split('/').filter(part => part !== ''); + const total = pathArray.length; + const key = pathArray[total - 2]; + const value = pathArray[total - 1]; + return { key, value }; + }, + setHistory(key, index$$1) { + const swiper = this; + if (!swiper.history.initialized || !swiper.params.history.enabled) return; + const slide = swiper.slides.eq(index$$1); + let value = History.slugify(slide.attr('data-history')); + if (!window.location.pathname.includes(key)) { + value = `${key}/${value}`; + } + const currentState = window.history.state; + if (currentState && currentState.value === value) { + return; + } + if (swiper.params.history.replaceState) { + window.history.replaceState({ value }, null, value); + } else { + window.history.pushState({ value }, null, value); + } + }, + slugify(text$$1) { + return text$$1.toString().toLowerCase() + .replace(/\s+/g, '-') + .replace(/[^\w-]+/g, '') + .replace(/--+/g, '-') + .replace(/^-+/, '') + .replace(/-+$/, ''); + }, + scrollToSlide(speed, value, runCallbacks) { + const swiper = this; + if (value) { + for (let i = 0, length = swiper.slides.length; i < length; i += 1) { + const slide = swiper.slides.eq(i); + const slideHistory = History.slugify(slide.attr('data-history')); + if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) { + const index$$1 = slide.index(); + swiper.slideTo(index$$1, speed, runCallbacks); + } + } + } else { + swiper.slideTo(0, speed, runCallbacks); + } + }, +}; + +var history = { + name: 'history', + params: { + history: { + enabled: false, + replaceState: false, + key: 'slides', + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + history: { + init: History.init.bind(swiper), + setHistory: History.setHistory.bind(swiper), + setHistoryPopState: History.setHistoryPopState.bind(swiper), + scrollToSlide: History.scrollToSlide.bind(swiper), + destroy: History.destroy.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.history.enabled) { + swiper.history.init(); + } + }, + destroy() { + const swiper = this; + if (swiper.params.history.enabled) { + swiper.history.destroy(); + } + }, + transitionEnd() { + const swiper = this; + if (swiper.history.initialized) { + swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); + } + }, + }, +}; + +const HashNavigation = { + onHashCange() { + const swiper = this; + const newHash = document.location.hash.replace('#', ''); + const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); + if (newHash !== activeSlideHash) { + swiper.slideTo(swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash="${newHash}"]`).index()); + } + }, + setHash() { + const swiper = this; + if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return; + if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { + window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '')); + } else { + const slide = swiper.slides.eq(swiper.activeIndex); + const hash = slide.attr('data-hash') || slide.attr('data-history'); + document.location.hash = hash || ''; + } + }, + init() { + const swiper = this; + if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return; + swiper.hashNavigation.initialized = true; + const hash = document.location.hash.replace('#', ''); + if (hash) { + const speed = 0; + for (let i = 0, length = swiper.slides.length; i < length; i += 1) { + const slide = swiper.slides.eq(i); + const slideHash = slide.attr('data-hash') || slide.attr('data-history'); + if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) { + const index$$1 = slide.index(); + swiper.slideTo(index$$1, speed, swiper.params.runCallbacksOnInit, true); + } + } + } + if (swiper.params.hashNavigation.watchState) { + $(window).on('hashchange', swiper.hashNavigation.onHashCange); + } + }, + destroy() { + const swiper = this; + if (swiper.params.hashNavigation.watchState) { + $(window).off('hashchange', swiper.hashNavigation.onHashCange); + } + }, +}; +var hashNavigation = { + name: 'hash-navigation', + params: { + hashNavigation: { + enabled: false, + replaceState: false, + watchState: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + hashNavigation: { + initialized: false, + init: HashNavigation.init.bind(swiper), + destroy: HashNavigation.destroy.bind(swiper), + setHash: HashNavigation.setHash.bind(swiper), + onHashCange: HashNavigation.onHashCange.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.init(); + } + }, + destroy() { + const swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.destroy(); + } + }, + transitionEnd() { + const swiper = this; + if (swiper.hashNavigation.initialized) { + swiper.hashNavigation.setHash(); + } + }, + }, +}; + +const Autoplay = { + run() { + const swiper = this; + const $activeSlideEl = swiper.slides.eq(swiper.activeIndex); + let delay = swiper.params.autoplay.delay; + if ($activeSlideEl.attr('data-swiper-autoplay')) { + delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; + } + swiper.autoplay.timeout = Utils.nextTick(() => { + if (swiper.params.autoplay.reverseDirection) { + if (swiper.params.loop) { + swiper.loopFix(); + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isBeginning) { + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + } else if (swiper.params.loop) { + swiper.loopFix(); + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isEnd) { + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(0, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + }, delay); + }, + start() { + const swiper = this; + if (typeof swiper.autoplay.timeout !== 'undefined') return false; + if (swiper.autoplay.running) return false; + swiper.autoplay.running = true; + swiper.emit('autoplayStart'); + swiper.autoplay.run(); + return true; + }, + stop() { + const swiper = this; + if (!swiper.autoplay.running) return false; + if (typeof swiper.autoplay.timeout === 'undefined') return false; + + if (swiper.autoplay.timeout) { + clearTimeout(swiper.autoplay.timeout); + swiper.autoplay.timeout = undefined; + } + swiper.autoplay.running = false; + swiper.emit('autoplayStop'); + return true; + }, + pause(speed) { + const swiper = this; + if (!swiper.autoplay.running) return; + if (swiper.autoplay.paused) return; + if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout); + swiper.autoplay.paused = true; + if (speed === 0 || !swiper.params.autoplay.waitForTransition) { + swiper.autoplay.paused = false; + swiper.autoplay.run(); + } else { + swiper.$wrapperEl.transitionEnd(() => { + if (!swiper || swiper.destroyed) return; + swiper.autoplay.paused = false; + if (!swiper.autoplay.running) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.run(); + } + }); + } + }, +}; + +var autoplay = { + name: 'autoplay', + params: { + autoplay: { + enabled: false, + delay: 3000, + waitForTransition: true, + disableOnInteraction: true, + stopOnLastSlide: false, + reverseDirection: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + autoplay: { + running: false, + paused: false, + run: Autoplay.run.bind(swiper), + start: Autoplay.start.bind(swiper), + stop: Autoplay.stop.bind(swiper), + pause: Autoplay.pause.bind(swiper), + }, + }); + }, + on: { + init() { + const swiper = this; + if (swiper.params.autoplay.enabled) { + swiper.autoplay.start(); + } + }, + beforeTransitionStart(speed, internal) { + const swiper = this; + if (swiper.autoplay.running) { + if (internal || !swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.pause(speed); + } else { + swiper.autoplay.stop(); + } + } + }, + sliderFirstMove() { + const swiper = this; + if (swiper.autoplay.running) { + if (swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.pause(); + } + } + }, + destroy() { + const swiper = this; + if (swiper.autoplay.running) { + swiper.autoplay.stop(); + } + }, + }, +}; + +const Fade = { + setTranslate() { + const swiper = this; + const { slides } = swiper; + for (let i = 0; i < slides.length; i += 1) { + const $slideEl = swiper.slides.eq(i); + const offset$$1 = $slideEl[0].swiperSlideOffset; + let tx = -offset$$1; + if (!swiper.params.virtualTranslate) tx -= swiper.translate; + let ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + } + const slideOpacity = swiper.params.fadeEffect.crossFade ? + Math.max(1 - Math.abs($slideEl[0].progress), 0) : + 1 + Math.min(Math.max($slideEl[0].progress, -1), 0); + $slideEl + .css({ + opacity: slideOpacity, + }) + .transform(`translate3d(${tx}px, ${ty}px, 0px)`); + } + }, + setTransition(duration) { + const swiper = this; + const { slides, $wrapperEl } = swiper; + slides.transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + let eventTriggered = false; + slides.transitionEnd(() => { + if (eventTriggered) return; + if (!swiper || swiper.destroyed) return; + eventTriggered = true; + swiper.animating = false; + const triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (let i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, +}; + +var effectFade = { + name: 'effect-fade', + params: { + fadeEffect: { + crossFade: false, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + fadeEffect: { + setTranslate: Fade.setTranslate.bind(swiper), + setTransition: Fade.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'fade') return; + swiper.classNames.push(`${swiper.params.containerModifierClass}fade`); + const overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'fade') return; + swiper.fadeEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'fade') return; + swiper.fadeEffect.setTransition(duration); + }, + }, +}; + +const Cube = { + setTranslate() { + const swiper = this; + const { + $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtl, size: swiperSize, + } = swiper; + const params = swiper.params.cubeEffect; + const isHorizontal = swiper.isHorizontal(); + const isVirtual = swiper.virtual && swiper.params.virtual.enabled; + let wrapperRotate = 0; + let $cubeShadowEl; + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $('
    '); + $wrapperEl.append($cubeShadowEl); + } + $cubeShadowEl.css({ height: `${swiperWidth}px` }); + } else { + $cubeShadowEl = $el.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $('
    '); + $el.append($cubeShadowEl); + } + } + } + for (let i = 0; i < slides.length; i += 1) { + const $slideEl = slides.eq(i); + let slideIndex = i; + if (isVirtual) { + slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); + } + let slideAngle = slideIndex * 90; + let round = Math.floor(slideAngle / 360); + if (rtl) { + slideAngle = -slideAngle; + round = Math.floor(-slideAngle / 360); + } + const progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + let tx = 0; + let ty = 0; + let tz = 0; + if (slideIndex % 4 === 0) { + tx = -round * 4 * swiperSize; + tz = 0; + } else if ((slideIndex - 1) % 4 === 0) { + tx = 0; + tz = -round * 4 * swiperSize; + } else if ((slideIndex - 2) % 4 === 0) { + tx = swiperSize + (round * 4 * swiperSize); + tz = swiperSize; + } else if ((slideIndex - 3) % 4 === 0) { + tx = -swiperSize; + tz = (3 * swiperSize) + (swiperSize * 4 * round); + } + if (rtl) { + tx = -tx; + } + + if (!isHorizontal) { + ty = tx; + tx = 0; + } + + const transform$$1 = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; + if (progress <= 1 && progress > -1) { + wrapperRotate = (slideIndex * 90) + (progress * 90); + if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90); + } + $slideEl.transform(transform$$1); + if (params.slideShadows) { + // Set shadows + let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $(`
    `); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $(`
    `); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); + if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); + } + } + $wrapperEl.css({ + '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`, + '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`, + '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`, + 'transform-origin': `50% 50% -${swiperSize / 2}px`, + }); + + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`); + } else { + const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90); + const multiplier = 1.5 - ( + (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2) + + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2) + ); + const scale1 = params.shadowScale; + const scale2 = params.shadowScale / multiplier; + const offset$$1 = params.shadowOffset; + $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset$$1}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`); + } + } + const zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0; + $wrapperEl + .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`); + }, + setTransition(duration) { + const swiper = this; + const { $el, slides } = swiper; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { + $el.find('.swiper-cube-shadow').transition(duration); + } + }, +}; + +var effectCube = { + name: 'effect-cube', + params: { + cubeEffect: { + slideShadows: true, + shadow: true, + shadowOffset: 20, + shadowScale: 0.94, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + cubeEffect: { + setTranslate: Cube.setTranslate.bind(swiper), + setTransition: Cube.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'cube') return; + swiper.classNames.push(`${swiper.params.containerModifierClass}cube`); + swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); + const overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + resistanceRatio: 0, + spaceBetween: 0, + centeredSlides: false, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'cube') return; + swiper.cubeEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'cube') return; + swiper.cubeEffect.setTransition(duration); + }, + }, +}; + +const Flip = { + setTranslate() { + const swiper = this; + const { slides } = swiper; + for (let i = 0; i < slides.length; i += 1) { + const $slideEl = slides.eq(i); + let progress = $slideEl[0].progress; + if (swiper.params.flipEffect.limitRotation) { + progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + } + const offset$$1 = $slideEl[0].swiperSlideOffset; + const rotate = -180 * progress; + let rotateY = rotate; + let rotateX = 0; + let tx = -offset$$1; + let ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + rotateX = -rotateY; + rotateY = 0; + } else if (swiper.rtl) { + rotateY = -rotateY; + } + + $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; + + if (swiper.params.flipEffect.slideShadows) { + // Set shadows + let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $(`
    `); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $(`
    `); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); + if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); + } + $slideEl + .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`); + } + }, + setTransition(duration) { + const swiper = this; + const { slides, activeIndex, $wrapperEl } = swiper; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + let eventTriggered = false; + // eslint-disable-next-line + slides.eq(activeIndex).transitionEnd(function onTransitionEnd() { + if (eventTriggered) return; + if (!swiper || swiper.destroyed) return; + // if (!$(this).hasClass(swiper.params.slideActiveClass)) return; + eventTriggered = true; + swiper.animating = false; + const triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (let i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, +}; + +var effectFlip = { + name: 'effect-flip', + params: { + flipEffect: { + slideShadows: true, + limitRotation: true, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + flipEffect: { + setTranslate: Flip.setTranslate.bind(swiper), + setTransition: Flip.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'flip') return; + swiper.classNames.push(`${swiper.params.containerModifierClass}flip`); + swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); + const overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'flip') return; + swiper.flipEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'flip') return; + swiper.flipEffect.setTransition(duration); + }, + }, +}; + +const Coverflow = { + setTranslate() { + const swiper = this; + const { + width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid, + } = swiper; + const params = swiper.params.coverflowEffect; + const isHorizontal = swiper.isHorizontal(); + const transform$$1 = swiper.translate; + const center = isHorizontal ? -transform$$1 + (swiperWidth / 2) : -transform$$1 + (swiperHeight / 2); + const rotate = isHorizontal ? params.rotate : -params.rotate; + const translate = params.depth; + // Each slide offset from center + for (let i = 0, length = slides.length; i < length; i += 1) { + const $slideEl = slides.eq(i); + const slideSize = slidesSizesGrid[i]; + const slideOffset = $slideEl[0].swiperSlideOffset; + const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier; + + let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; + let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; + // var rotateZ = 0 + let translateZ = -translate * Math.abs(offsetMultiplier); + + let translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier); + let translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0; + + // Fix for ultra small values + if (Math.abs(translateX) < 0.001) translateX = 0; + if (Math.abs(translateY) < 0.001) translateY = 0; + if (Math.abs(translateZ) < 0.001) translateZ = 0; + if (Math.abs(rotateY) < 0.001) rotateY = 0; + if (Math.abs(rotateX) < 0.001) rotateX = 0; + + const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; + + $slideEl.transform(slideTransform); + $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; + if (params.slideShadows) { + // Set shadows + let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if ($shadowBeforeEl.length === 0) { + $shadowBeforeEl = $(`
    `); + $slideEl.append($shadowBeforeEl); + } + if ($shadowAfterEl.length === 0) { + $shadowAfterEl = $(`
    `); + $slideEl.append($shadowAfterEl); + } + if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; + if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; + } + } + + // Set correct perspective for IE10 + if (Support.pointerEvents || Support.prefixedPointerEvents) { + const ws = $wrapperEl[0].style; + ws.perspectiveOrigin = `${center}px 50%`; + } + }, + setTransition(duration) { + const swiper = this; + swiper.slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + }, +}; + +var effectCoverflow = { + name: 'effect-coverflow', + params: { + coverflowEffect: { + rotate: 50, + stretch: 0, + depth: 100, + modifier: 1, + slideShadows: true, + }, + }, + create() { + const swiper = this; + Utils.extend(swiper, { + coverflowEffect: { + setTranslate: Coverflow.setTranslate.bind(swiper), + setTransition: Coverflow.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit() { + const swiper = this; + if (swiper.params.effect !== 'coverflow') return; + + swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`); + swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); + + swiper.params.watchSlidesProgress = true; + swiper.originalParams.watchSlidesProgress = true; + }, + setTranslate() { + const swiper = this; + if (swiper.params.effect !== 'coverflow') return; + swiper.coverflowEffect.setTranslate(); + }, + setTransition(duration) { + const swiper = this; + if (swiper.params.effect !== 'coverflow') return; + swiper.coverflowEffect.setTransition(duration); + }, + }, +}; + +// Swiper Class +// Core Modules +const components = [ + Device$2, + Support$2, + Browser$2, + Resize, + Observer$1, + +]; + +if (typeof Swiper.use === 'undefined') { + Swiper.use = Swiper.Class.use; + Swiper.installModule = Swiper.Class.installModule; +} + +Swiper.use(components); + +export { Swiper, virtual as Virtual, keyboard as Keyboard, mousewheel as Mousewheel, navigation as Navigation, pagination as Pagination, scrollbar as Scrollbar, parallax as Parallax, zoom as Zoom, lazy as Lazy, controller as Controller, a11y$1 as A11y, history as History, hashNavigation as HashNavigation, autoplay as Autoplay, effectFade as EffectFade, effectCube as EffectCube, effectFlip as EffectFlip, effectCoverflow as EffectCoverflow }; diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.js b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.js new file mode 100644 index 0000000..0471515 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.js @@ -0,0 +1,7485 @@ +/** + * Swiper 4.1.6 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * http://www.idangero.us/swiper/ + * + * Copyright 2014-2018 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: February 11, 2018 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Swiper = factory()); +}(this, (function () { 'use strict'; + +/** + * SSR Window 1.0.0 + * Better handling for window object in SSR environment + * https://github.com/nolimits4web/ssr-window + * + * Copyright 2018, Vladimir Kharlampidi + * + * Licensed under MIT + * + * Released on: February 10, 2018 + */ +var d; +if (typeof document === 'undefined') { + d = { + body: {}, + addEventListener: function addEventListener() {}, + removeEventListener: function removeEventListener() {}, + activeElement: { + blur: function blur() {}, + nodeName: '', + }, + querySelector: function querySelector() { + return null; + }, + querySelectorAll: function querySelectorAll() { + return []; + }, + getElementById: function getElementById() { + return null; + }, + createEvent: function createEvent() { + return { + initEvent: function initEvent() {}, + }; + }, + createElement: function createElement() { + return { + children: [], + childNodes: [], + style: {}, + setAttribute: function setAttribute() {}, + getElementsByTagName: function getElementsByTagName() { + return []; + }, + }; + }, + location: { hash: '' }, + }; +} else { + // eslint-disable-next-line + d = document; +} + +var doc = d; + +var w; +if (typeof window === 'undefined') { + w = { + document: doc, + navigator: { + userAgent: '', + }, + location: {}, + history: {}, + CustomEvent: function CustomEvent() { + return this; + }, + addEventListener: function addEventListener() {}, + removeEventListener: function removeEventListener() {}, + getComputedStyle: function getComputedStyle() { + return { + getPropertyValue: function getPropertyValue() { + return ''; + }, + }; + }, + Image: function Image() {}, + Date: function Date() {}, + screen: {}, + setTimeout: function setTimeout() {}, + clearTimeout: function clearTimeout() {}, + }; +} else { + // eslint-disable-next-line + w = window; +} + +var win = w; + +/** + * Dom7 2.0.2 + * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API + * http://framework7.io/docs/dom.html + * + * Copyright 2018, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: February 10, 2018 + */ +var Dom7 = function Dom7(arr) { + var self = this; + // Create array-like object + for (var i = 0; i < arr.length; i += 1) { + self[i] = arr[i]; + } + self.length = arr.length; + // Return collection with methods + return this; +}; + +function $$1(selector, context) { + var arr = []; + var i = 0; + if (selector && !context) { + if (selector instanceof Dom7) { + return selector; + } + } + if (selector) { + // String + if (typeof selector === 'string') { + var els; + var tempParent; + var html = selector.trim(); + if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) { + var toCreate = 'div'; + if (html.indexOf(':~]/)) { + // Pure ID selector + els = [doc.getElementById(selector.trim().split('#')[1])]; + } else { + // Other selectors + els = (context || doc).querySelectorAll(selector.trim()); + } + for (i = 0; i < els.length; i += 1) { + if (els[i]) { arr.push(els[i]); } + } + } + } else if (selector.nodeType || selector === win || selector === doc) { + // Node/element + arr.push(selector); + } else if (selector.length > 0 && selector[0].nodeType) { + // Array of elements or instance of Dom + for (i = 0; i < selector.length; i += 1) { + arr.push(selector[i]); + } + } + } + return new Dom7(arr); +} + +$$1.fn = Dom7.prototype; +$$1.Class = Dom7; +$$1.Dom7 = Dom7; + +function unique(arr) { + var uniqueArray = []; + for (var i = 0; i < arr.length; i += 1) { + if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); } + } + return uniqueArray; +} +// Classes and attributes +function addClass(className) { + var this$1 = this; + + if (typeof className === 'undefined') { + return this; + } + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this$1[j].classList !== 'undefined') { this$1[j].classList.add(classes[i]); } + } + } + return this; +} +function removeClass(className) { + var this$1 = this; + + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this$1[j].classList !== 'undefined') { this$1[j].classList.remove(classes[i]); } + } + } + return this; +} +function hasClass(className) { + if (!this[0]) { return false; } + return this[0].classList.contains(className); +} +function toggleClass(className) { + var this$1 = this; + + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this$1[j].classList !== 'undefined') { this$1[j].classList.toggle(classes[i]); } + } + } + return this; +} +function attr(attrs, value) { + var arguments$1 = arguments; + var this$1 = this; + + if (arguments.length === 1 && typeof attrs === 'string') { + // Get attr + if (this[0]) { return this[0].getAttribute(attrs); } + return undefined; + } + + // Set attrs + for (var i = 0; i < this.length; i += 1) { + if (arguments$1.length === 2) { + // String + this$1[i].setAttribute(attrs, value); + } else { + // Object + // eslint-disable-next-line + for (var attrName in attrs) { + this$1[i][attrName] = attrs[attrName]; + this$1[i].setAttribute(attrName, attrs[attrName]); + } + } + } + return this; +} +// eslint-disable-next-line +function removeAttr(attr) { + var this$1 = this; + + for (var i = 0; i < this.length; i += 1) { + this$1[i].removeAttribute(attr); + } + return this; +} +function data(key, value) { + var this$1 = this; + + var el; + if (typeof value === 'undefined') { + el = this[0]; + // Get value + if (el) { + if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) { + return el.dom7ElementDataStorage[key]; + } + + var dataKey = el.getAttribute(("data-" + key)); + if (dataKey) { + return dataKey; + } + return undefined; + } + return undefined; + } + + // Set value + for (var i = 0; i < this.length; i += 1) { + el = this$1[i]; + if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; } + el.dom7ElementDataStorage[key] = value; + } + return this; +} +// Transforms +// eslint-disable-next-line +function transform(transform) { + var this$1 = this; + + for (var i = 0; i < this.length; i += 1) { + var elStyle = this$1[i].style; + elStyle.webkitTransform = transform; + elStyle.transform = transform; + } + return this; +} +function transition(duration) { + var this$1 = this; + + if (typeof duration !== 'string') { + duration = duration + "ms"; // eslint-disable-line + } + for (var i = 0; i < this.length; i += 1) { + var elStyle = this$1[i].style; + elStyle.webkitTransitionDuration = duration; + elStyle.transitionDuration = duration; + } + return this; +} +// Events +function on() { + var this$1 = this; + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + var assign; + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + function handleLiveEvent(e) { + var target = e.target; + if (!target) { return; } + var eventData = e.target.dom7EventData || []; + eventData.unshift(e); + if ($$1(target).is(targetSelector)) { listener.apply(target, eventData); } + else { + var parents = $$1(target).parents(); // eslint-disable-line + for (var k = 0; k < parents.length; k += 1) { + if ($$1(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); } + } + } + } + function handleEvent(e) { + var eventData = e && e.target ? e.target.dom7EventData || [] : []; + eventData.unshift(e); + listener.apply(this, eventData); + } + var events = eventType.split(' '); + var j; + for (var i = 0; i < this.length; i += 1) { + var el = this$1[i]; + if (!targetSelector) { + for (j = 0; j < events.length; j += 1) { + if (!el.dom7Listeners) { el.dom7Listeners = []; } + el.dom7Listeners.push({ + type: eventType, + listener: listener, + proxyListener: handleEvent, + }); + el.addEventListener(events[j], handleEvent, capture); + } + } else { + // Live events + for (j = 0; j < events.length; j += 1) { + if (!el.dom7LiveListeners) { el.dom7LiveListeners = []; } + el.dom7LiveListeners.push({ + type: eventType, + listener: listener, + proxyListener: handleLiveEvent, + }); + el.addEventListener(events[j], handleLiveEvent, capture); + } + } + } + return this; +} +function off() { + var this$1 = this; + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + var assign; + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + var events = eventType.split(' '); + for (var i = 0; i < events.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + var el = this$1[j]; + if (!targetSelector) { + if (el.dom7Listeners) { + for (var k = 0; k < el.dom7Listeners.length; k += 1) { + if (listener) { + if (el.dom7Listeners[k].listener === listener) { + el.removeEventListener(events[i], el.dom7Listeners[k].proxyListener, capture); + } + } else if (el.dom7Listeners[k].type === events[i]) { + el.removeEventListener(events[i], el.dom7Listeners[k].proxyListener, capture); + } + } + } + } else if (el.dom7LiveListeners) { + for (var k$1 = 0; k$1 < el.dom7LiveListeners.length; k$1 += 1) { + if (listener) { + if (el.dom7LiveListeners[k$1].listener === listener) { + el.removeEventListener(events[i], el.dom7LiveListeners[k$1].proxyListener, capture); + } + } else if (el.dom7LiveListeners[k$1].type === events[i]) { + el.removeEventListener(events[i], el.dom7LiveListeners[k$1].proxyListener, capture); + } + } + } + } + } + return this; +} +function trigger() { + var this$1 = this; + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var events = args[0].split(' '); + var eventData = args[1]; + for (var i = 0; i < events.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + var evt = (void 0); + try { + evt = new win.CustomEvent(events[i], { + detail: eventData, + bubbles: true, + cancelable: true, + }); + } catch (e) { + evt = doc.createEvent('Event'); + evt.initEvent(events[i], true, true); + evt.detail = eventData; + } + // eslint-disable-next-line + this$1[j].dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; }); + this$1[j].dispatchEvent(evt); + this$1[j].dom7EventData = []; + delete this$1[j].dom7EventData; + } + } + return this; +} +function transitionEnd(callback) { + var events = ['webkitTransitionEnd', 'transitionend']; + var dom = this; + var i; + function fireCallBack(e) { + /* jshint validthis:true */ + if (e.target !== this) { return; } + callback.call(this, e); + for (i = 0; i < events.length; i += 1) { + dom.off(events[i], fireCallBack); + } + } + if (callback) { + for (i = 0; i < events.length; i += 1) { + dom.on(events[i], fireCallBack); + } + } + return this; +} +function outerWidth(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left')); + } + return this[0].offsetWidth; + } + return null; +} +function outerHeight(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom')); + } + return this[0].offsetHeight; + } + return null; +} +function offset() { + if (this.length > 0) { + var el = this[0]; + var box = el.getBoundingClientRect(); + var body = doc.body; + var clientTop = el.clientTop || body.clientTop || 0; + var clientLeft = el.clientLeft || body.clientLeft || 0; + var scrollTop = el === win ? win.scrollY : el.scrollTop; + var scrollLeft = el === win ? win.scrollX : el.scrollLeft; + return { + top: (box.top + scrollTop) - clientTop, + left: (box.left + scrollLeft) - clientLeft, + }; + } + + return null; +} +function styles() { + if (this[0]) { return win.getComputedStyle(this[0], null); } + return {}; +} +function css(props, value) { + var this$1 = this; + + var i; + if (arguments.length === 1) { + if (typeof props === 'string') { + if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); } + } else { + for (i = 0; i < this.length; i += 1) { + // eslint-disable-next-line + for (var prop in props) { + this$1[i].style[prop] = props[prop]; + } + } + return this; + } + } + if (arguments.length === 2 && typeof props === 'string') { + for (i = 0; i < this.length; i += 1) { + this$1[i].style[props] = value; + } + return this; + } + return this; +} + +// Iterate over the collection passing elements to `callback` +function each(callback) { + var this$1 = this; + + // Don't bother continuing without a callback + if (!callback) { return this; } + // Iterate over the current collection + for (var i = 0; i < this.length; i += 1) { + // If the callback returns false + if (callback.call(this$1[i], i, this$1[i]) === false) { + // End the loop early + return this$1; + } + } + // Return `this` to allow chained DOM operations + return this; +} +// eslint-disable-next-line +function html(html) { + var this$1 = this; + + if (typeof html === 'undefined') { + return this[0] ? this[0].innerHTML : undefined; + } + + for (var i = 0; i < this.length; i += 1) { + this$1[i].innerHTML = html; + } + return this; +} +// eslint-disable-next-line +function text(text) { + var this$1 = this; + + if (typeof text === 'undefined') { + if (this[0]) { + return this[0].textContent.trim(); + } + return null; + } + + for (var i = 0; i < this.length; i += 1) { + this$1[i].textContent = text; + } + return this; +} +function is(selector) { + var el = this[0]; + var compareWith; + var i; + if (!el || typeof selector === 'undefined') { return false; } + if (typeof selector === 'string') { + if (el.matches) { return el.matches(selector); } + else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); } + else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); } + + compareWith = $$1(selector); + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } else if (selector === doc) { return el === doc; } + else if (selector === win) { return el === win; } + + if (selector.nodeType || selector instanceof Dom7) { + compareWith = selector.nodeType ? [selector] : selector; + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } + return false; +} +function index() { + var child = this[0]; + var i; + if (child) { + i = 0; + // eslint-disable-next-line + while ((child = child.previousSibling) !== null) { + if (child.nodeType === 1) { i += 1; } + } + return i; + } + return undefined; +} +// eslint-disable-next-line +function eq(index) { + if (typeof index === 'undefined') { return this; } + var length = this.length; + var returnIndex; + if (index > length - 1) { + return new Dom7([]); + } + if (index < 0) { + returnIndex = length + index; + if (returnIndex < 0) { return new Dom7([]); } + return new Dom7([this[returnIndex]]); + } + return new Dom7([this[index]]); +} +function append() { + var this$1 = this; + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var newChild; + + for (var k = 0; k < args.length; k += 1) { + newChild = args[k]; + for (var i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + while (tempDiv.firstChild) { + this$1[i].appendChild(tempDiv.firstChild); + } + } else if (newChild instanceof Dom7) { + for (var j = 0; j < newChild.length; j += 1) { + this$1[i].appendChild(newChild[j]); + } + } else { + this$1[i].appendChild(newChild); + } + } + } + + return this; +} + function prepend(newChild) { + var this$1 = this; + + var i; + var j; + for (i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { + this$1[i].insertBefore(tempDiv.childNodes[j], this$1[i].childNodes[0]); + } + } else if (newChild instanceof Dom7) { + for (j = 0; j < newChild.length; j += 1) { + this$1[i].insertBefore(newChild[j], this$1[i].childNodes[0]); + } + } else { + this$1[i].insertBefore(newChild, this$1[i].childNodes[0]); + } + } + return this; +} + function next(selector) { + if (this.length > 0) { + if (selector) { + if (this[0].nextElementSibling && $$1(this[0].nextElementSibling).is(selector)) { + return new Dom7([this[0].nextElementSibling]); + } + return new Dom7([]); + } + + if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); +} +function nextAll(selector) { + var nextEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.nextElementSibling) { + var next = el.nextElementSibling; // eslint-disable-line + if (selector) { + if ($$1(next).is(selector)) { nextEls.push(next); } + } else { nextEls.push(next); } + el = next; + } + return new Dom7(nextEls); +} +function prev(selector) { + if (this.length > 0) { + var el = this[0]; + if (selector) { + if (el.previousElementSibling && $$1(el.previousElementSibling).is(selector)) { + return new Dom7([el.previousElementSibling]); + } + return new Dom7([]); + } + + if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); +} +function prevAll(selector) { + var prevEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.previousElementSibling) { + var prev = el.previousElementSibling; // eslint-disable-line + if (selector) { + if ($$1(prev).is(selector)) { prevEls.push(prev); } + } else { prevEls.push(prev); } + el = prev; + } + return new Dom7(prevEls); +} +function parent(selector) { + var this$1 = this; + + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + if (this$1[i].parentNode !== null) { + if (selector) { + if ($$1(this$1[i].parentNode).is(selector)) { parents.push(this$1[i].parentNode); } + } else { + parents.push(this$1[i].parentNode); + } + } + } + return $$1(unique(parents)); +} +function parents(selector) { + var this$1 = this; + + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var parent = this$1[i].parentNode; // eslint-disable-line + while (parent) { + if (selector) { + if ($$1(parent).is(selector)) { parents.push(parent); } + } else { + parents.push(parent); + } + parent = parent.parentNode; + } + } + return $$1(unique(parents)); +} +function closest(selector) { + var closest = this; // eslint-disable-line + if (typeof selector === 'undefined') { + return new Dom7([]); + } + if (!closest.is(selector)) { + closest = closest.parents(selector).eq(0); + } + return closest; +} +function find(selector) { + var this$1 = this; + + var foundElements = []; + for (var i = 0; i < this.length; i += 1) { + var found = this$1[i].querySelectorAll(selector); + for (var j = 0; j < found.length; j += 1) { + foundElements.push(found[j]); + } + } + return new Dom7(foundElements); +} +function children(selector) { + var this$1 = this; + + var children = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var childNodes = this$1[i].childNodes; + + for (var j = 0; j < childNodes.length; j += 1) { + if (!selector) { + if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); } + } else if (childNodes[j].nodeType === 1 && $$1(childNodes[j]).is(selector)) { + children.push(childNodes[j]); + } + } + } + return new Dom7(unique(children)); +} +function remove() { + var this$1 = this; + + for (var i = 0; i < this.length; i += 1) { + if (this$1[i].parentNode) { this$1[i].parentNode.removeChild(this$1[i]); } + } + return this; +} +function add() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var dom = this; + var i; + var j; + for (i = 0; i < args.length; i += 1) { + var toAdd = $$1(args[i]); + for (j = 0; j < toAdd.length; j += 1) { + dom[dom.length] = toAdd[j]; + dom.length += 1; + } + } + return dom; +} +var noTrigger = ('resize scroll').split(' '); + +var Methods = { + addClass: addClass, + removeClass: removeClass, + hasClass: hasClass, + toggleClass: toggleClass, + attr: attr, + removeAttr: removeAttr, + data: data, + transform: transform, + transition: transition, + on: on, + off: off, + trigger: trigger, + transitionEnd: transitionEnd, + outerWidth: outerWidth, + outerHeight: outerHeight, + offset: offset, + css: css, + each: each, + html: html, + text: text, + is: is, + index: index, + eq: eq, + append: append, + prepend: prepend, + next: next, + nextAll: nextAll, + prev: prev, + prevAll: prevAll, + parent: parent, + parents: parents, + closest: closest, + find: find, + children: children, + remove: remove, + add: add, + styles: styles, +}; + +Object.keys(Methods).forEach(function (methodName) { + $$1.fn[methodName] = Methods[methodName]; +}); + +var Utils = { + deleteProps: function deleteProps(obj) { + var object = obj; + Object.keys(object).forEach(function (key) { + try { + object[key] = null; + } catch (e) { + // no getter for object + } + try { + delete object[key]; + } catch (e) { + // something got wrong + } + }); + }, + nextTick: function nextTick(callback, delay) { + if ( delay === void 0 ) delay = 0; + + return setTimeout(callback, delay); + }, + now: function now() { + return Date.now(); + }, + getTranslate: function getTranslate(el, axis) { + if ( axis === void 0 ) axis = 'x'; + + var matrix; + var curTransform; + var transformMatrix; + + var curStyle = win.getComputedStyle(el, null); + + if (win.WebKitCSSMatrix) { + curTransform = curStyle.transform || curStyle.webkitTransform; + if (curTransform.split(',').length > 6) { + curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', '); + } + // Some old versions of Webkit choke when 'none' is passed; pass + // empty string instead in this case + transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); + } else { + transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); + matrix = transformMatrix.toString().split(','); + } + + if (axis === 'x') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[4]); } + } + if (axis === 'y') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[5]); } + } + return curTransform || 0; + }, + parseUrlQuery: function parseUrlQuery(url) { + var query = {}; + var urlToParse = url || win.location.href; + var i; + var params; + var param; + var length; + if (typeof urlToParse === 'string' && urlToParse.length) { + urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : ''; + params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; }); + length = params.length; + + for (i = 0; i < length; i += 1) { + param = params[i].replace(/#\S+/g, '').split('='); + query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || ''; + } + } + return query; + }, + isObject: function isObject(o) { + return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object; + }, + extend: function extend() { + var args = [], len$1 = arguments.length; + while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ]; + + var to = Object(args[0]); + for (var i = 1; i < args.length; i += 1) { + var nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + Utils.extend(to[nextKey], nextSource[nextKey]); + } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + to[nextKey] = {}; + Utils.extend(to[nextKey], nextSource[nextKey]); + } else { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + } + return to; + }, +}; + +var Support = (function Support() { + var testDiv = doc.createElement('div'); + return { + touch: (win.Modernizr && win.Modernizr.touch === true) || (function checkTouch() { + return !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch)); + }()), + + pointerEvents: !!(win.navigator.pointerEnabled || win.PointerEvent), + prefixedPointerEvents: !!win.navigator.msPointerEnabled, + + transition: (function checkTransition() { + var style = testDiv.style; + return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style); + }()), + transforms3d: (win.Modernizr && win.Modernizr.csstransforms3d === true) || (function checkTransforms3d() { + var style = testDiv.style; + return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style); + }()), + + flexbox: (function checkFlexbox() { + var style = testDiv.style; + var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' '); + for (var i = 0; i < styles.length; i += 1) { + if (styles[i] in style) { return true; } + } + return false; + }()), + + observer: (function checkObserver() { + return ('MutationObserver' in win || 'WebkitMutationObserver' in win); + }()), + + passiveListener: (function checkPassiveListener() { + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line + get: function get() { + supportsPassive = true; + }, + }); + win.addEventListener('testPassiveListener', null, opts); + } catch (e) { + // No support + } + return supportsPassive; + }()), + + gestures: (function checkGestures() { + return 'ongesturestart' in win; + }()), + }; +}()); + +var SwiperClass = function SwiperClass(params) { + if ( params === void 0 ) params = {}; + + var self = this; + self.params = params; + + // Events + self.eventsListeners = {}; + + if (self.params && self.params.on) { + Object.keys(self.params.on).forEach(function (eventName) { + self.on(eventName, self.params.on[eventName]); + }); + } +}; + +var staticAccessors = { components: { configurable: true } }; +SwiperClass.prototype.on = function on (events, handler) { + var self = this; + if (typeof handler !== 'function') { return self; } + events.split(' ').forEach(function (event) { + if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; } + self.eventsListeners[event].push(handler); + }); + return self; +}; +SwiperClass.prototype.once = function once (events, handler) { + var self = this; + if (typeof handler !== 'function') { return self; } + function onceHandler() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + handler.apply(self, args); + self.off(events, onceHandler); + } + return self.on(events, onceHandler); +}; +SwiperClass.prototype.off = function off (events, handler) { + var self = this; + events.split(' ').forEach(function (event) { + if (typeof handler === 'undefined') { + self.eventsListeners[event] = []; + } else { + self.eventsListeners[event].forEach(function (eventHandler, index) { + if (eventHandler === handler) { + self.eventsListeners[event].splice(index, 1); + } + }); + } + }); + return self; +}; +SwiperClass.prototype.emit = function emit () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var self = this; + if (!self.eventsListeners) { return self; } + var events; + var data; + var context; + if (typeof args[0] === 'string' || Array.isArray(args[0])) { + events = args[0]; + data = args.slice(1, args.length); + context = self; + } else { + events = args[0].events; + data = args[0].data; + context = args[0].context || self; + } + var eventsArray = Array.isArray(events) ? events : events.split(' '); + eventsArray.forEach(function (event) { + if (self.eventsListeners[event]) { + var handlers = []; + self.eventsListeners[event].forEach(function (eventHandler) { + handlers.push(eventHandler); + }); + handlers.forEach(function (eventHandler) { + eventHandler.apply(context, data); + }); + } + }); + return self; +}; +SwiperClass.prototype.useModulesParams = function useModulesParams (instanceParams) { + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var module = instance.modules[moduleName]; + // Extend params + if (module.params) { + Utils.extend(instanceParams, module.params); + } + }); +}; +SwiperClass.prototype.useModules = function useModules (modulesParams) { + if ( modulesParams === void 0 ) modulesParams = {}; + + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var module = instance.modules[moduleName]; + var moduleParams = modulesParams[moduleName] || {}; + // Extend instance methods and props + if (module.instance) { + Object.keys(module.instance).forEach(function (modulePropName) { + var moduleProp = module.instance[modulePropName]; + if (typeof moduleProp === 'function') { + instance[modulePropName] = moduleProp.bind(instance); + } else { + instance[modulePropName] = moduleProp; + } + }); + } + // Add event listeners + if (module.on && instance.on) { + Object.keys(module.on).forEach(function (moduleEventName) { + instance.on(moduleEventName, module.on[moduleEventName]); + }); + } + + // Module create callback + if (module.create) { + module.create.bind(instance)(moduleParams); + } + }); +}; +staticAccessors.components.set = function (components) { + var Class = this; + if (!Class.use) { return; } + Class.use(components); +}; +SwiperClass.installModule = function installModule (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (!Class.prototype.modules) { Class.prototype.modules = {}; } + var name = module.name || (((Object.keys(Class.prototype.modules).length) + "_" + (Utils.now()))); + Class.prototype.modules[name] = module; + // Prototype + if (module.proto) { + Object.keys(module.proto).forEach(function (key) { + Class.prototype[key] = module.proto[key]; + }); + } + // Class + if (module.static) { + Object.keys(module.static).forEach(function (key) { + Class[key] = module.static[key]; + }); + } + // Callback + if (module.install) { + module.install.apply(Class, params); + } + return Class; +}; +SwiperClass.use = function use (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (Array.isArray(module)) { + module.forEach(function (m) { return Class.installModule(m); }); + return Class; + } + return Class.installModule.apply(Class, [ module ].concat( params )); +}; + +Object.defineProperties( SwiperClass, staticAccessors ); + +var updateSize = function () { + var swiper = this; + var width; + var height; + var $el = swiper.$el; + if (typeof swiper.params.width !== 'undefined') { + width = swiper.params.width; + } else { + width = $el[0].clientWidth; + } + if (typeof swiper.params.height !== 'undefined') { + height = swiper.params.height; + } else { + height = $el[0].clientHeight; + } + if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) { + return; + } + + // Subtract paddings + width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10); + height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10); + + Utils.extend(swiper, { + width: width, + height: height, + size: swiper.isHorizontal() ? width : height, + }); +}; + +var updateSlides = function () { + var swiper = this; + var params = swiper.params; + + var $wrapperEl = swiper.$wrapperEl; + var swiperSize = swiper.size; + var rtl = swiper.rtl; + var wrongRTL = swiper.wrongRTL; + var slides = $wrapperEl.children(("." + (swiper.params.slideClass))); + var isVirtual = swiper.virtual && params.virtual.enabled; + var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; + var snapGrid = []; + var slidesGrid = []; + var slidesSizesGrid = []; + + var offsetBefore = params.slidesOffsetBefore; + if (typeof offsetBefore === 'function') { + offsetBefore = params.slidesOffsetBefore.call(swiper); + } + + var offsetAfter = params.slidesOffsetAfter; + if (typeof offsetAfter === 'function') { + offsetAfter = params.slidesOffsetAfter.call(swiper); + } + + var previousSlidesLength = slidesLength; + var previousSnapGridLength = swiper.snapGrid.length; + var previousSlidesGridLength = swiper.snapGrid.length; + + var spaceBetween = params.spaceBetween; + var slidePosition = -offsetBefore; + var prevSlideSize = 0; + var index = 0; + if (typeof swiperSize === 'undefined') { + return; + } + if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { + spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize; + } + + swiper.virtualSize = -spaceBetween; + + // reset margins + if (rtl) { slides.css({ marginLeft: '', marginTop: '' }); } + else { slides.css({ marginRight: '', marginBottom: '' }); } + + var slidesNumberEvenToRows; + if (params.slidesPerColumn > 1) { + if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) { + slidesNumberEvenToRows = slidesLength; + } else { + slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn; + } + if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') { + slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn); + } + } + + // Calc slides + var slideSize; + var slidesPerColumn = params.slidesPerColumn; + var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn; + var numFullColumns = slidesPerRow - ((params.slidesPerColumn * slidesPerRow) - slidesLength); + for (var i = 0; i < slidesLength; i += 1) { + slideSize = 0; + var slide = slides.eq(i); + if (params.slidesPerColumn > 1) { + // Set slides order + var newSlideOrderIndex = (void 0); + var column = (void 0); + var row = (void 0); + if (params.slidesPerColumnFill === 'column') { + column = Math.floor(i / slidesPerColumn); + row = i - (column * slidesPerColumn); + if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) { + row += 1; + if (row >= slidesPerColumn) { + row = 0; + column += 1; + } + } + newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn); + slide + .css({ + '-webkit-box-ordinal-group': newSlideOrderIndex, + '-moz-box-ordinal-group': newSlideOrderIndex, + '-ms-flex-order': newSlideOrderIndex, + '-webkit-order': newSlideOrderIndex, + order: newSlideOrderIndex, + }); + } else { + row = Math.floor(i / slidesPerRow); + column = i - (row * slidesPerRow); + } + slide + .css( + ("margin-" + (swiper.isHorizontal() ? 'top' : 'left')), + (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + "px")) + ) + .attr('data-swiper-column', column) + .attr('data-swiper-row', row); + } + if (slide.css('display') === 'none') { continue; } // eslint-disable-line + if (params.slidesPerView === 'auto') { + slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true); + if (params.roundLengths) { slideSize = Math.floor(slideSize); } + } else { + slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView; + if (params.roundLengths) { slideSize = Math.floor(slideSize); } + + if (slides[i]) { + if (swiper.isHorizontal()) { + slides[i].style.width = slideSize + "px"; + } else { + slides[i].style.height = slideSize + "px"; + } + } + } + if (slides[i]) { + slides[i].swiperSlideSize = slideSize; + } + slidesSizesGrid.push(slideSize); + + + if (params.centeredSlides) { + slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween; + if (prevSlideSize === 0 && i !== 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; } + if (i === 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; } + if (Math.abs(slidePosition) < 1 / 1000) { slidePosition = 0; } + if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); } + slidesGrid.push(slidePosition); + } else { + if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); } + slidesGrid.push(slidePosition); + slidePosition = slidePosition + slideSize + spaceBetween; + } + + swiper.virtualSize += slideSize + spaceBetween; + + prevSlideSize = slideSize; + + index += 1; + } + swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; + var newSlidesGrid; + + if ( + rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { + $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); + } + if (!Support.flexbox || params.setWrapperSize) { + if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + } + + if (params.slidesPerColumn > 1) { + swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows; + swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween; + if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + if (params.centeredSlides) { + newSlidesGrid = []; + for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) { + if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) { newSlidesGrid.push(snapGrid[i$1]); } + } + snapGrid = newSlidesGrid; + } + } + + // Remove last grid elements depending on width + if (!params.centeredSlides) { + newSlidesGrid = []; + for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) { + if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) { + newSlidesGrid.push(snapGrid[i$2]); + } + } + snapGrid = newSlidesGrid; + if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { + snapGrid.push(swiper.virtualSize - swiperSize); + } + } + if (snapGrid.length === 0) { snapGrid = [0]; } + + if (params.spaceBetween !== 0) { + if (swiper.isHorizontal()) { + if (rtl) { slides.css({ marginLeft: (spaceBetween + "px") }); } + else { slides.css({ marginRight: (spaceBetween + "px") }); } + } else { slides.css({ marginBottom: (spaceBetween + "px") }); } + } + + Utils.extend(swiper, { + slides: slides, + snapGrid: snapGrid, + slidesGrid: slidesGrid, + slidesSizesGrid: slidesSizesGrid, + }); + + if (slidesLength !== previousSlidesLength) { + swiper.emit('slidesLengthChange'); + } + if (snapGrid.length !== previousSnapGridLength) { + if (swiper.params.watchOverflow) { swiper.checkOverflow(); } + swiper.emit('snapGridLengthChange'); + } + if (slidesGrid.length !== previousSlidesGridLength) { + swiper.emit('slidesGridLengthChange'); + } + + if (params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateSlidesOffset(); + } +}; + +var updateAutoHeight = function () { + var swiper = this; + var activeSlides = []; + var newHeight = 0; + var i; + + // Find slides currently in view + if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { + for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { + var index = swiper.activeIndex + i; + if (index > swiper.slides.length) { break; } + activeSlides.push(swiper.slides.eq(index)[0]); + } + } else { + activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]); + } + + // Find new height from highest slide in view + for (i = 0; i < activeSlides.length; i += 1) { + if (typeof activeSlides[i] !== 'undefined') { + var height = activeSlides[i].offsetHeight; + newHeight = height > newHeight ? height : newHeight; + } + } + + // Update Height + if (newHeight) { swiper.$wrapperEl.css('height', (newHeight + "px")); } +}; + +var updateSlidesOffset = function () { + var swiper = this; + var slides = swiper.slides; + for (var i = 0; i < slides.length; i += 1) { + slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; + } +}; + +var updateSlidesProgress = function (translate) { + if ( translate === void 0 ) translate = this.translate || 0; + + var swiper = this; + var params = swiper.params; + + var slides = swiper.slides; + var rtl = swiper.rtl; + + if (slides.length === 0) { return; } + if (typeof slides[0].swiperSlideOffset === 'undefined') { swiper.updateSlidesOffset(); } + + var offsetCenter = -translate; + if (rtl) { offsetCenter = translate; } + + // Visible Slides + slides.removeClass(params.slideVisibleClass); + + for (var i = 0; i < slides.length; i += 1) { + var slide = slides[i]; + var slideProgress = + ( + (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset + ) / (slide.swiperSlideSize + params.spaceBetween); + if (params.watchSlidesVisibility) { + var slideBefore = -(offsetCenter - slide.swiperSlideOffset); + var slideAfter = slideBefore + swiper.slidesSizesGrid[i]; + var isVisible = + (slideBefore >= 0 && slideBefore < swiper.size) || + (slideAfter > 0 && slideAfter <= swiper.size) || + (slideBefore <= 0 && slideAfter >= swiper.size); + if (isVisible) { + slides.eq(i).addClass(params.slideVisibleClass); + } + } + slide.progress = rtl ? -slideProgress : slideProgress; + } +}; + +var updateProgress = function (translate) { + if ( translate === void 0 ) translate = this.translate || 0; + + var swiper = this; + var params = swiper.params; + + var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + var progress = swiper.progress; + var isBeginning = swiper.isBeginning; + var isEnd = swiper.isEnd; + var wasBeginning = isBeginning; + var wasEnd = isEnd; + if (translatesDiff === 0) { + progress = 0; + isBeginning = true; + isEnd = true; + } else { + progress = (translate - swiper.minTranslate()) / (translatesDiff); + isBeginning = progress <= 0; + isEnd = progress >= 1; + } + Utils.extend(swiper, { + progress: progress, + isBeginning: isBeginning, + isEnd: isEnd, + }); + + if (params.watchSlidesProgress || params.watchSlidesVisibility) { swiper.updateSlidesProgress(translate); } + + if (isBeginning && !wasBeginning) { + swiper.emit('reachBeginning toEdge'); + } + if (isEnd && !wasEnd) { + swiper.emit('reachEnd toEdge'); + } + if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) { + swiper.emit('fromEdge'); + } + + swiper.emit('progress', progress); +}; + +var updateSlidesClasses = function () { + var swiper = this; + + var slides = swiper.slides; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var activeIndex = swiper.activeIndex; + var realIndex = swiper.realIndex; + var isVirtual = swiper.virtual && params.virtual.enabled; + + slides.removeClass(((params.slideActiveClass) + " " + (params.slideNextClass) + " " + (params.slidePrevClass) + " " + (params.slideDuplicateActiveClass) + " " + (params.slideDuplicateNextClass) + " " + (params.slideDuplicatePrevClass))); + + var activeSlide; + if (isVirtual) { + activeSlide = swiper.$wrapperEl.find(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + activeIndex + "\"]")); + } else { + activeSlide = slides.eq(activeIndex); + } + + // Active classes + activeSlide.addClass(params.slideActiveClass); + + if (params.loop) { + // Duplicate to all looped slides + if (activeSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + realIndex + "\"]")) + .addClass(params.slideDuplicateActiveClass); + } else { + $wrapperEl + .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]")) + .addClass(params.slideDuplicateActiveClass); + } + } + // Next Slide + var nextSlide = activeSlide.nextAll(("." + (params.slideClass))).eq(0).addClass(params.slideNextClass); + if (params.loop && nextSlide.length === 0) { + nextSlide = slides.eq(0); + nextSlide.addClass(params.slideNextClass); + } + // Prev Slide + var prevSlide = activeSlide.prevAll(("." + (params.slideClass))).eq(0).addClass(params.slidePrevClass); + if (params.loop && prevSlide.length === 0) { + prevSlide = slides.eq(-1); + prevSlide.addClass(params.slidePrevClass); + } + if (params.loop) { + // Duplicate to all looped slides + if (nextSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + (nextSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicateNextClass); + } else { + $wrapperEl + .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + (nextSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicateNextClass); + } + if (prevSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + (prevSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicatePrevClass); + } else { + $wrapperEl + .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + (prevSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicatePrevClass); + } + } +}; + +var updateActiveIndex = function (newActiveIndex) { + var swiper = this; + var translate = swiper.rtl ? swiper.translate : -swiper.translate; + var slidesGrid = swiper.slidesGrid; + var snapGrid = swiper.snapGrid; + var params = swiper.params; + var previousIndex = swiper.activeIndex; + var previousRealIndex = swiper.realIndex; + var previousSnapIndex = swiper.snapIndex; + var activeIndex = newActiveIndex; + var snapIndex; + if (typeof activeIndex === 'undefined') { + for (var i = 0; i < slidesGrid.length; i += 1) { + if (typeof slidesGrid[i + 1] !== 'undefined') { + if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) { + activeIndex = i; + } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { + activeIndex = i + 1; + } + } else if (translate >= slidesGrid[i]) { + activeIndex = i; + } + } + // Normalize slideIndex + if (params.normalizeSlideIndex) { + if (activeIndex < 0 || typeof activeIndex === 'undefined') { activeIndex = 0; } + } + } + if (snapGrid.indexOf(translate) >= 0) { + snapIndex = snapGrid.indexOf(translate); + } else { + snapIndex = Math.floor(activeIndex / params.slidesPerGroup); + } + if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; } + if (activeIndex === previousIndex) { + if (snapIndex !== previousSnapIndex) { + swiper.snapIndex = snapIndex; + swiper.emit('snapIndexChange'); + } + return; + } + + // Get real index + var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); + + Utils.extend(swiper, { + snapIndex: snapIndex, + realIndex: realIndex, + previousIndex: previousIndex, + activeIndex: activeIndex, + }); + swiper.emit('activeIndexChange'); + swiper.emit('snapIndexChange'); + if (previousRealIndex !== realIndex) { + swiper.emit('realIndexChange'); + } + swiper.emit('slideChange'); +}; + +var updateClickedSlide = function (e) { + var swiper = this; + var params = swiper.params; + var slide = $$1(e.target).closest(("." + (params.slideClass)))[0]; + var slideFound = false; + if (slide) { + for (var i = 0; i < swiper.slides.length; i += 1) { + if (swiper.slides[i] === slide) { slideFound = true; } + } + } + + if (slide && slideFound) { + swiper.clickedSlide = slide; + if (swiper.virtual && swiper.params.virtual.enabled) { + swiper.clickedIndex = parseInt($$1(slide).attr('data-swiper-slide-index'), 10); + } else { + swiper.clickedIndex = $$1(slide).index(); + } + } else { + swiper.clickedSlide = undefined; + swiper.clickedIndex = undefined; + return; + } + if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { + swiper.slideToClickedSlide(); + } +}; + +var update = { + updateSize: updateSize, + updateSlides: updateSlides, + updateAutoHeight: updateAutoHeight, + updateSlidesOffset: updateSlidesOffset, + updateSlidesProgress: updateSlidesProgress, + updateProgress: updateProgress, + updateSlidesClasses: updateSlidesClasses, + updateActiveIndex: updateActiveIndex, + updateClickedSlide: updateClickedSlide, +}; + +var getTranslate = function (axis) { + if ( axis === void 0 ) axis = this.isHorizontal() ? 'x' : 'y'; + + var swiper = this; + + var params = swiper.params; + var rtl = swiper.rtl; + var translate = swiper.translate; + var $wrapperEl = swiper.$wrapperEl; + + if (params.virtualTranslate) { + return rtl ? -translate : translate; + } + + var currentTranslate = Utils.getTranslate($wrapperEl[0], axis); + if (rtl) { currentTranslate = -currentTranslate; } + + return currentTranslate || 0; +}; + +var setTranslate = function (translate, byController) { + var swiper = this; + var rtl = swiper.rtl; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var progress = swiper.progress; + var x = 0; + var y = 0; + var z = 0; + + if (swiper.isHorizontal()) { + x = rtl ? -translate : translate; + } else { + y = translate; + } + + if (params.roundLengths) { + x = Math.floor(x); + y = Math.floor(y); + } + + if (!params.virtualTranslate) { + if (Support.transforms3d) { $wrapperEl.transform(("translate3d(" + x + "px, " + y + "px, " + z + "px)")); } + else { $wrapperEl.transform(("translate(" + x + "px, " + y + "px)")); } + } + + swiper.translate = swiper.isHorizontal() ? x : y; + + // Check if we need to update progress + var newProgress; + var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + if (translatesDiff === 0) { + newProgress = 0; + } else { + newProgress = (translate - swiper.minTranslate()) / (translatesDiff); + } + if (newProgress !== progress) { + swiper.updateProgress(translate); + } + + swiper.emit('setTranslate', swiper.translate, byController); +}; + +var minTranslate = function () { + return (-this.snapGrid[0]); +}; + +var maxTranslate = function () { + return (-this.snapGrid[this.snapGrid.length - 1]); +}; + +var translate = { + getTranslate: getTranslate, + setTranslate: setTranslate, + minTranslate: minTranslate, + maxTranslate: maxTranslate, +}; + +var setTransition = function (duration, byController) { + var swiper = this; + + swiper.$wrapperEl.transition(duration); + + swiper.emit('setTransition', duration, byController); +}; + +var transitionStart = function (runCallbacks, direction) { + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var activeIndex = swiper.activeIndex; + var params = swiper.params; + var previousIndex = swiper.previousIndex; + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + + var dir = direction; + if (!dir) { + if (activeIndex > previousIndex) { dir = 'next'; } + else if (activeIndex < previousIndex) { dir = 'prev'; } + else { dir = 'reset'; } + } + + swiper.emit('transitionStart'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionStart'); + return; + } + swiper.emit('slideChangeTransitionStart'); + if (dir === 'next') { + swiper.emit('slideNextTransitionStart'); + } else { + swiper.emit('slidePrevTransitionStart'); + } + } +}; + +var transitionEnd$1 = function (runCallbacks, direction) { + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var activeIndex = swiper.activeIndex; + var previousIndex = swiper.previousIndex; + swiper.animating = false; + swiper.setTransition(0); + + var dir = direction; + if (!dir) { + if (activeIndex > previousIndex) { dir = 'next'; } + else if (activeIndex < previousIndex) { dir = 'prev'; } + else { dir = 'reset'; } + } + + swiper.emit('transitionEnd'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionEnd'); + return; + } + swiper.emit('slideChangeTransitionEnd'); + if (dir === 'next') { + swiper.emit('slideNextTransitionEnd'); + } else { + swiper.emit('slidePrevTransitionEnd'); + } + } +}; + +var transition$1 = { + setTransition: setTransition, + transitionStart: transitionStart, + transitionEnd: transitionEnd$1, +}; + +var slideTo = function (index, speed, runCallbacks, internal) { + if ( index === void 0 ) index = 0; + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var slideIndex = index; + if (slideIndex < 0) { slideIndex = 0; } + + var params = swiper.params; + var snapGrid = swiper.snapGrid; + var slidesGrid = swiper.slidesGrid; + var previousIndex = swiper.previousIndex; + var activeIndex = swiper.activeIndex; + var rtl = swiper.rtl; + var $wrapperEl = swiper.$wrapperEl; + if (swiper.animating && params.preventIntercationOnTransition) { + return false; + } + + var snapIndex = Math.floor(slideIndex / params.slidesPerGroup); + if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; } + + if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) { + swiper.emit('beforeSlideChangeStart'); + } + + var translate = -snapGrid[snapIndex]; + + // Update progress + swiper.updateProgress(translate); + + // Normalize slideIndex + if (params.normalizeSlideIndex) { + for (var i = 0; i < slidesGrid.length; i += 1) { + if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) { + slideIndex = i; + } + } + } + // Directions locks + if (swiper.initialized && slideIndex !== activeIndex) { + if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { + return false; + } + if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { + if ((activeIndex || 0) !== slideIndex) { return false; } + } + } + + var direction; + if (slideIndex > activeIndex) { direction = 'next'; } + else if (slideIndex < activeIndex) { direction = 'prev'; } + else { direction = 'reset'; } + + + // Update Index + if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) { + swiper.updateActiveIndex(slideIndex); + // Update Height + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + swiper.updateSlidesClasses(); + if (params.effect !== 'slide') { + swiper.setTranslate(translate); + } + if (direction !== 'reset') { + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } + return false; + } + + if (speed === 0 || !Support.transition) { + swiper.setTransition(0); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } else { + swiper.setTransition(speed); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + if (!swiper.animating) { + swiper.animating = true; + $wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed) { return; } + swiper.transitionEnd(runCallbacks, direction); + }); + } + } + + return true; +}; + +var slideToLoop = function (index, speed, runCallbacks, internal) { + if ( index === void 0 ) index = 0; + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var newIndex = index; + if (swiper.params.loop) { + newIndex += swiper.loopedSlides; + } + + return swiper.slideTo(newIndex, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slideNext = function (speed, runCallbacks, internal) { + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var params = swiper.params; + var animating = swiper.animating; + if (params.loop) { + if (animating) { return false; } + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); + } + return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slidePrev = function (speed, runCallbacks, internal) { + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var params = swiper.params; + var animating = swiper.animating; + + if (params.loop) { + if (animating) { return false; } + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal); + } + return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal); +}; + +/* eslint no-unused-vars: "off" */ +var slideReset = function (speed, runCallbacks, internal) { + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); +}; + +var slideToClickedSlide = function () { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + + var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; + var slideToIndex = swiper.clickedIndex; + var realIndex; + if (params.loop) { + if (swiper.animating) { return; } + realIndex = parseInt($$1(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); + if (params.centeredSlides) { + if ( + (slideToIndex < swiper.loopedSlides - (slidesPerView / 2)) || + (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2)) + ) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + (params.slideDuplicateClass) + ")")) + .eq(0) + .index(); + + Utils.nextTick(function () { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else if (slideToIndex > swiper.slides.length - slidesPerView) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + (params.slideDuplicateClass) + ")")) + .eq(0) + .index(); + + Utils.nextTick(function () { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else { + swiper.slideTo(slideToIndex); + } +}; + +var slide = { + slideTo: slideTo, + slideToLoop: slideToLoop, + slideNext: slideNext, + slidePrev: slidePrev, + slideReset: slideReset, + slideToClickedSlide: slideToClickedSlide, +}; + +var loopCreate = function () { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + // Remove duplicated slides + $wrapperEl.children(("." + (params.slideClass) + "." + (params.slideDuplicateClass))).remove(); + + var slides = $wrapperEl.children(("." + (params.slideClass))); + + if (params.loopFillGroupWithBlank) { + var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup); + if (blankSlidesNum !== params.slidesPerGroup) { + for (var i = 0; i < blankSlidesNum; i += 1) { + var blankNode = $$1(doc.createElement('div')).addClass(((params.slideClass) + " " + (params.slideBlankClass))); + $wrapperEl.append(blankNode); + } + slides = $wrapperEl.children(("." + (params.slideClass))); + } + } + + if (params.slidesPerView === 'auto' && !params.loopedSlides) { params.loopedSlides = slides.length; } + + swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10); + swiper.loopedSlides += params.loopAdditionalSlides; + if (swiper.loopedSlides > slides.length) { + swiper.loopedSlides = slides.length; + } + + var prependSlides = []; + var appendSlides = []; + slides.each(function (index, el) { + var slide = $$1(el); + if (index < swiper.loopedSlides) { appendSlides.push(el); } + if (index < slides.length && index >= slides.length - swiper.loopedSlides) { prependSlides.push(el); } + slide.attr('data-swiper-slide-index', index); + }); + for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) { + $wrapperEl.append($$1(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass)); + } + for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) { + $wrapperEl.prepend($$1(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass)); + } +}; + +var loopFix = function () { + var swiper = this; + var params = swiper.params; + var activeIndex = swiper.activeIndex; + var slides = swiper.slides; + var loopedSlides = swiper.loopedSlides; + var allowSlidePrev = swiper.allowSlidePrev; + var allowSlideNext = swiper.allowSlideNext; + var snapGrid = swiper.snapGrid; + var rtl = swiper.rtl; + var newIndex; + swiper.allowSlidePrev = true; + swiper.allowSlideNext = true; + + var snapTranslate = -snapGrid[activeIndex]; + var diff = snapTranslate - swiper.getTranslate(); + + + // Fix For Negative Oversliding + if (activeIndex < loopedSlides) { + newIndex = (slides.length - (loopedSlides * 3)) + activeIndex; + newIndex += loopedSlides; + var slideChanged = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex > slides.length - (params.slidesPerView * 2))) { + // Fix For Positive Oversliding + newIndex = -slides.length + activeIndex + loopedSlides; + newIndex += loopedSlides; + var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged$1 && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; +}; + +var loopDestroy = function () { + var swiper = this; + var $wrapperEl = swiper.$wrapperEl; + var params = swiper.params; + var slides = swiper.slides; + $wrapperEl.children(("." + (params.slideClass) + "." + (params.slideDuplicateClass))).remove(); + slides.removeAttr('data-swiper-slide-index'); +}; + +var loop = { + loopCreate: loopCreate, + loopFix: loopFix, + loopDestroy: loopDestroy, +}; + +var setGrabCursor = function (moving) { + var swiper = this; + if (Support.touch || !swiper.params.simulateTouch) { return; } + var el = swiper.el; + el.style.cursor = 'move'; + el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; + el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; + el.style.cursor = moving ? 'grabbing' : 'grab'; +}; + +var unsetGrabCursor = function () { + var swiper = this; + if (Support.touch) { return; } + swiper.el.style.cursor = ''; +}; + +var grabCursor = { + setGrabCursor: setGrabCursor, + unsetGrabCursor: unsetGrabCursor, +}; + +var appendSlide = function (slides) { + var swiper = this; + var $wrapperEl = swiper.$wrapperEl; + var params = swiper.params; + if (params.loop) { + swiper.loopDestroy(); + } + if (typeof slides === 'object' && 'length' in slides) { + for (var i = 0; i < slides.length; i += 1) { + if (slides[i]) { $wrapperEl.append(slides[i]); } + } + } else { + $wrapperEl.append(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } +}; + +var prependSlide = function (slides) { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var activeIndex = swiper.activeIndex; + + if (params.loop) { + swiper.loopDestroy(); + } + var newActiveIndex = activeIndex + 1; + if (typeof slides === 'object' && 'length' in slides) { + for (var i = 0; i < slides.length; i += 1) { + if (slides[i]) { $wrapperEl.prepend(slides[i]); } + } + newActiveIndex = activeIndex + slides.length; + } else { + $wrapperEl.prepend(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } + swiper.slideTo(newActiveIndex, 0, false); +}; + +var removeSlide = function (slidesIndexes) { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var activeIndex = swiper.activeIndex; + + if (params.loop) { + swiper.loopDestroy(); + swiper.slides = $wrapperEl.children(("." + (params.slideClass))); + } + var newActiveIndex = activeIndex; + var indexToRemove; + + if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { + for (var i = 0; i < slidesIndexes.length; i += 1) { + indexToRemove = slidesIndexes[i]; + if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); } + if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; } + } + newActiveIndex = Math.max(newActiveIndex, 0); + } else { + indexToRemove = slidesIndexes; + if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); } + if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; } + newActiveIndex = Math.max(newActiveIndex, 0); + } + + if (params.loop) { + swiper.loopCreate(); + } + + if (!(params.observer && Support.observer)) { + swiper.update(); + } + if (params.loop) { + swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); + } else { + swiper.slideTo(newActiveIndex, 0, false); + } +}; + +var removeAllSlides = function () { + var swiper = this; + + var slidesIndexes = []; + for (var i = 0; i < swiper.slides.length; i += 1) { + slidesIndexes.push(i); + } + swiper.removeSlide(slidesIndexes); +}; + +var manipulation = { + appendSlide: appendSlide, + prependSlide: prependSlide, + removeSlide: removeSlide, + removeAllSlides: removeAllSlides, +}; + +var Device = (function Device() { + var ua = win.navigator.userAgent; + + var device = { + ios: false, + android: false, + androidChrome: false, + desktop: false, + windows: false, + iphone: false, + ipod: false, + ipad: false, + cordova: win.cordova || win.phonegap, + phonegap: win.cordova || win.phonegap, + }; + + var windows = ua.match(/(Windows Phone);?[\s\/]+([\d.]+)?/); // eslint-disable-line + var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line + var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); + + + // Windows + if (windows) { + device.os = 'windows'; + device.osVersion = windows[2]; + device.windows = true; + } + // Android + if (android && !windows) { + device.os = 'android'; + device.osVersion = android[2]; + device.android = true; + device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; + } + if (ipad || iphone || ipod) { + device.os = 'ios'; + device.ios = true; + } + // iOS + if (iphone && !ipod) { + device.osVersion = iphone[2].replace(/_/g, '.'); + device.iphone = true; + } + if (ipad) { + device.osVersion = ipad[2].replace(/_/g, '.'); + device.ipad = true; + } + if (ipod) { + device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + device.iphone = true; + } + // iOS 8+ changed UA + if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) { + if (device.osVersion.split('.')[0] === '10') { + device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0]; + } + } + + // Desktop + device.desktop = !(device.os || device.android || device.webView); + + // Webview + device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i); + + // Minimal UI + if (device.os && device.os === 'ios') { + var osVersionArr = device.osVersion.split('.'); + var metaViewport = doc.querySelector('meta[name="viewport"]'); + device.minimalUi = + !device.webView && + (ipod || iphone) && + (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) && + metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0; + } + + // Pixel Ratio + device.pixelRatio = win.devicePixelRatio || 1; + + // Export object + return device; +}()); + +var onTouchStart = function (event) { + var swiper = this; + var data = swiper.touchEventsData; + var params = swiper.params; + var touches = swiper.touches; + if (swiper.animating && params.preventIntercationOnTransition) { + return; + } + var e = event; + if (e.originalEvent) { e = e.originalEvent; } + data.isTouchEvent = e.type === 'touchstart'; + if (!data.isTouchEvent && 'which' in e && e.which === 3) { return; } + if (data.isTouched && data.isMoved) { return; } + if (params.noSwiping && $$1(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : ("." + (params.noSwipingClass)))[0]) { + swiper.allowClick = true; + return; + } + if (params.swipeHandler) { + if (!$$1(e).closest(params.swipeHandler)[0]) { return; } + } + + touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + var startX = touches.currentX; + var startY = touches.currentY; + + // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore + + if ( + Device.ios && + !Device.cordova && + params.iOSEdgeSwipeDetection && + (startX <= params.iOSEdgeSwipeThreshold) && + (startX >= win.screen.width - params.iOSEdgeSwipeThreshold) + ) { + return; + } + + Utils.extend(data, { + isTouched: true, + isMoved: false, + allowTouchCallbacks: true, + isScrolling: undefined, + startMoving: undefined, + }); + + touches.startX = startX; + touches.startY = startY; + data.touchStartTime = Utils.now(); + swiper.allowClick = true; + swiper.updateSize(); + swiper.swipeDirection = undefined; + if (params.threshold > 0) { data.allowThresholdMove = false; } + if (e.type !== 'touchstart') { + var preventDefault = true; + if ($$1(e.target).is(data.formElements)) { preventDefault = false; } + if ( + doc.activeElement && + $$1(doc.activeElement).is(data.formElements) && + doc.activeElement !== e.target + ) { + doc.activeElement.blur(); + } + if (preventDefault && swiper.allowTouchMove) { + e.preventDefault(); + } + } + swiper.emit('touchStart', e); +}; + +var onTouchMove = function (event) { + var swiper = this; + var data = swiper.touchEventsData; + var params = swiper.params; + var touches = swiper.touches; + var rtl = swiper.rtl; + var e = event; + if (e.originalEvent) { e = e.originalEvent; } + if (!data.isTouched) { + if (data.startMoving && data.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + return; + } + if (data.isTouchEvent && e.type === 'mousemove') { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (e.preventedByNestedSwiper) { + touches.startX = pageX; + touches.startY = pageY; + return; + } + if (!swiper.allowTouchMove) { + // isMoved = true; + swiper.allowClick = false; + if (data.isTouched) { + Utils.extend(touches, { + startX: pageX, + startY: pageY, + currentX: pageX, + currentY: pageY, + }); + data.touchStartTime = Utils.now(); + } + return; + } + if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { + if (swiper.isVertical()) { + // Vertical + if ( + (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) || + (pageY > touches.startY && swiper.translate >= swiper.minTranslate()) + ) { + data.isTouched = false; + data.isMoved = false; + return; + } + } else if ( + (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) || + (pageX > touches.startX && swiper.translate >= swiper.minTranslate()) + ) { + return; + } + } + if (data.isTouchEvent && doc.activeElement) { + if (e.target === doc.activeElement && $$1(e.target).is(data.formElements)) { + data.isMoved = true; + swiper.allowClick = false; + return; + } + } + if (data.allowTouchCallbacks) { + swiper.emit('touchMove', e); + } + if (e.targetTouches && e.targetTouches.length > 1) { return; } + + touches.currentX = pageX; + touches.currentY = pageY; + + var diffX = touches.currentX - touches.startX; + var diffY = touches.currentY - touches.startY; + + if (typeof data.isScrolling === 'undefined') { + var touchAngle; + if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) { + data.isScrolling = false; + } else { + // eslint-disable-next-line + if ((diffX * diffX) + (diffY * diffY) >= 25) { + touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI; + data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle); + } + } + } + if (data.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + if (typeof startMoving === 'undefined') { + if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { + data.startMoving = true; + } + } + if (data.isScrolling) { + data.isTouched = false; + return; + } + if (!data.startMoving) { + return; + } + swiper.allowClick = false; + e.preventDefault(); + if (params.touchMoveStopPropagation && !params.nested) { + e.stopPropagation(); + } + + if (!data.isMoved) { + if (params.loop) { + swiper.loopFix(); + } + data.startTranslate = swiper.getTranslate(); + swiper.setTransition(0); + if (swiper.animating) { + swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); + } + data.allowMomentumBounce = false; + // Grab Cursor + if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(true); + } + swiper.emit('sliderFirstMove', e); + } + swiper.emit('sliderMove', e); + data.isMoved = true; + + var diff = swiper.isHorizontal() ? diffX : diffY; + touches.diff = diff; + + diff *= params.touchRatio; + if (rtl) { diff = -diff; } + + swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; + data.currentTranslate = diff + data.startTranslate; + + var disableParentSwiper = true; + var resistanceRatio = params.resistanceRatio; + if (params.touchReleaseOnEdges) { + resistanceRatio = 0; + } + if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) { + disableParentSwiper = false; + if (params.resistance) { data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow( (-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio )); } + } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) { + disableParentSwiper = false; + if (params.resistance) { data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow( (swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio )); } + } + + if (disableParentSwiper) { + e.preventedByNestedSwiper = true; + } + + // Directions locks + if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { + data.currentTranslate = data.startTranslate; + } + if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { + data.currentTranslate = data.startTranslate; + } + + + // Threshold + if (params.threshold > 0) { + if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { + if (!data.allowThresholdMove) { + data.allowThresholdMove = true; + touches.startX = touches.currentX; + touches.startY = touches.currentY; + data.currentTranslate = data.startTranslate; + touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; + return; + } + } else { + data.currentTranslate = data.startTranslate; + return; + } + } + + if (!params.followFinger) { return; } + + // Update active index in free mode + if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + if (params.freeMode) { + // Velocity + if (data.velocities.length === 0) { + data.velocities.push({ + position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], + time: data.touchStartTime, + }); + } + data.velocities.push({ + position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], + time: Utils.now(), + }); + } + // Update progress + swiper.updateProgress(data.currentTranslate); + // Update translate + swiper.setTranslate(data.currentTranslate); +}; + +var onTouchEnd = function (event) { + var swiper = this; + var data = swiper.touchEventsData; + + var params = swiper.params; + var touches = swiper.touches; + var rtl = swiper.rtl; + var $wrapperEl = swiper.$wrapperEl; + var slidesGrid = swiper.slidesGrid; + var snapGrid = swiper.snapGrid; + var e = event; + if (e.originalEvent) { e = e.originalEvent; } + if (data.allowTouchCallbacks) { + swiper.emit('touchEnd', e); + } + data.allowTouchCallbacks = false; + if (!data.isTouched) { + if (data.isMoved && params.grabCursor) { + swiper.setGrabCursor(false); + } + data.isMoved = false; + data.startMoving = false; + return; + } + // Return Grab Cursor + if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(false); + } + + // Time diff + var touchEndTime = Utils.now(); + var timeDiff = touchEndTime - data.touchStartTime; + + // Tap, doubleTap, Click + if (swiper.allowClick) { + swiper.updateClickedSlide(e); + swiper.emit('tap', e); + if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) { + if (data.clickTimeout) { clearTimeout(data.clickTimeout); } + data.clickTimeout = Utils.nextTick(function () { + if (!swiper || swiper.destroyed) { return; } + swiper.emit('click', e); + }, 300); + } + if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) { + if (data.clickTimeout) { clearTimeout(data.clickTimeout); } + swiper.emit('doubleTap', e); + } + } + + data.lastClickTime = Utils.now(); + Utils.nextTick(function () { + if (!swiper.destroyed) { swiper.allowClick = true; } + }); + + if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) { + data.isTouched = false; + data.isMoved = false; + data.startMoving = false; + return; + } + data.isTouched = false; + data.isMoved = false; + data.startMoving = false; + + var currentPos; + if (params.followFinger) { + currentPos = rtl ? swiper.translate : -swiper.translate; + } else { + currentPos = -data.currentTranslate; + } + if (params.freeMode) { + if (currentPos < -swiper.minTranslate()) { + swiper.slideTo(swiper.activeIndex); + return; + } else if (currentPos > -swiper.maxTranslate()) { + if (swiper.slides.length < snapGrid.length) { + swiper.slideTo(snapGrid.length - 1); + } else { + swiper.slideTo(swiper.slides.length - 1); + } + return; + } + + if (params.freeModeMomentum) { + if (data.velocities.length > 1) { + var lastMoveEvent = data.velocities.pop(); + var velocityEvent = data.velocities.pop(); + + var distance = lastMoveEvent.position - velocityEvent.position; + var time = lastMoveEvent.time - velocityEvent.time; + swiper.velocity = distance / time; + swiper.velocity /= 2; + if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) { + swiper.velocity = 0; + } + // this implies that the user stopped moving a finger then released. + // There would be no events with distance zero, so the last event is stale. + if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) { + swiper.velocity = 0; + } + } else { + swiper.velocity = 0; + } + swiper.velocity *= params.freeModeMomentumVelocityRatio; + + data.velocities.length = 0; + var momentumDuration = 1000 * params.freeModeMomentumRatio; + var momentumDistance = swiper.velocity * momentumDuration; + + var newPosition = swiper.translate + momentumDistance; + if (rtl) { newPosition = -newPosition; } + var doBounce = false; + var afterBouncePosition; + var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio; + if (newPosition < swiper.maxTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition + swiper.maxTranslate() < -bounceAmount) { + newPosition = swiper.maxTranslate() - bounceAmount; + } + afterBouncePosition = swiper.maxTranslate(); + doBounce = true; + data.allowMomentumBounce = true; + } else { + newPosition = swiper.maxTranslate(); + } + } else if (newPosition > swiper.minTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition - swiper.minTranslate() > bounceAmount) { + newPosition = swiper.minTranslate() + bounceAmount; + } + afterBouncePosition = swiper.minTranslate(); + doBounce = true; + data.allowMomentumBounce = true; + } else { + newPosition = swiper.minTranslate(); + } + } else if (params.freeModeSticky) { + var nextSlide; + for (var j = 0; j < snapGrid.length; j += 1) { + if (snapGrid[j] > -newPosition) { + nextSlide = j; + break; + } + } + if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { + newPosition = snapGrid[nextSlide]; + } else { + newPosition = snapGrid[nextSlide - 1]; + } + newPosition = -newPosition; + } + // Fix duration + if (swiper.velocity !== 0) { + if (rtl) { + momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); + } else { + momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); + } + } else if (params.freeModeSticky) { + swiper.slideReset(); + return; + } + + if (params.freeModeMomentumBounce && doBounce) { + swiper.updateProgress(afterBouncePosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + swiper.animating = true; + $wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed || !data.allowMomentumBounce) { return; } + swiper.emit('momentumBounce'); + + swiper.setTransition(params.speed); + swiper.setTranslate(afterBouncePosition); + $wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed) { return; } + swiper.transitionEnd(); + }); + }); + } else if (swiper.velocity) { + swiper.updateProgress(newPosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + if (!swiper.animating) { + swiper.animating = true; + $wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed) { return; } + swiper.transitionEnd(); + }); + } + } else { + swiper.updateProgress(newPosition); + } + + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) { + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + return; + } + + // Find current slide + var stopIndex = 0; + var groupSize = swiper.slidesSizesGrid[0]; + for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) { + if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') { + if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) { + stopIndex = i; + groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i]; + } + } else if (currentPos >= slidesGrid[i]) { + stopIndex = i; + groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; + } + } + + // Find current slide size + var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; + + if (timeDiff > params.longSwipesMs) { + // Long touches + if (!params.longSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (swiper.swipeDirection === 'next') { + if (ratio >= params.longSwipesRatio) { swiper.slideTo(stopIndex + params.slidesPerGroup); } + else { swiper.slideTo(stopIndex); } + } + if (swiper.swipeDirection === 'prev') { + if (ratio > (1 - params.longSwipesRatio)) { swiper.slideTo(stopIndex + params.slidesPerGroup); } + else { swiper.slideTo(stopIndex); } + } + } else { + // Short swipes + if (!params.shortSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (swiper.swipeDirection === 'next') { + swiper.slideTo(stopIndex + params.slidesPerGroup); + } + if (swiper.swipeDirection === 'prev') { + swiper.slideTo(stopIndex); + } + } +}; + +var onResize = function () { + var swiper = this; + + var params = swiper.params; + var el = swiper.el; + + if (el && el.offsetWidth === 0) { return; } + + // Breakpoints + if (params.breakpoints) { + swiper.setBreakpoint(); + } + + // Save locks + var allowSlideNext = swiper.allowSlideNext; + var allowSlidePrev = swiper.allowSlidePrev; + + // Disable locks on resize + swiper.allowSlideNext = true; + swiper.allowSlidePrev = true; + + swiper.updateSize(); + swiper.updateSlides(); + + if (params.freeMode) { + var newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate()); + swiper.setTranslate(newTranslate); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + } else { + swiper.updateSlidesClasses(); + if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + swiper.slideTo(swiper.activeIndex, 0, false, true); + } + } + // Return locks after resize + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; +}; + +var onClick = function (e) { + var swiper = this; + if (!swiper.allowClick) { + if (swiper.params.preventClicks) { e.preventDefault(); } + if (swiper.params.preventClicksPropagation && swiper.animating) { + e.stopPropagation(); + e.stopImmediatePropagation(); + } + } +}; + +function attachEvents() { + var swiper = this; + var params = swiper.params; + var touchEvents = swiper.touchEvents; + var el = swiper.el; + var wrapperEl = swiper.wrapperEl; + + { + swiper.onTouchStart = onTouchStart.bind(swiper); + swiper.onTouchMove = onTouchMove.bind(swiper); + swiper.onTouchEnd = onTouchEnd.bind(swiper); + } + + swiper.onClick = onClick.bind(swiper); + + var target = params.touchEventsTarget === 'container' ? el : wrapperEl; + var capture = !!params.nested; + + // Touch Events + { + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.addEventListener(touchEvents.start, swiper.onTouchStart, false); + doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture); + doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture); + target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.addEventListener('mousedown', swiper.onTouchStart, false); + doc.addEventListener('mousemove', swiper.onTouchMove, capture); + doc.addEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + target.addEventListener('click', swiper.onClick, true); + } + } + + // Resize handler + swiper.on('resize observerUpdate', onResize); +} + +function detachEvents() { + var swiper = this; + + var params = swiper.params; + var touchEvents = swiper.touchEvents; + var el = swiper.el; + var wrapperEl = swiper.wrapperEl; + + var target = params.touchEventsTarget === 'container' ? el : wrapperEl; + var capture = !!params.nested; + + // Touch Events + { + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.removeEventListener(touchEvents.start, swiper.onTouchStart, false); + doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.removeEventListener('mousedown', swiper.onTouchStart, false); + doc.removeEventListener('mousemove', swiper.onTouchMove, capture); + doc.removeEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + target.removeEventListener('click', swiper.onClick, true); + } + } + + // Resize handler + swiper.off('resize observerUpdate', onResize); +} + +var events = { + attachEvents: attachEvents, + detachEvents: detachEvents, +}; + +var setBreakpoint = function () { + var swiper = this; + var activeIndex = swiper.activeIndex; + var loopedSlides = swiper.loopedSlides; if ( loopedSlides === void 0 ) loopedSlides = 0; + var params = swiper.params; + var breakpoints = params.breakpoints; + if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) { return; } + // Set breakpoint for window width and update parameters + var breakpoint = swiper.getBreakpoint(breakpoints); + if (breakpoint && swiper.currentBreakpoint !== breakpoint) { + var breakPointsParams = breakpoint in breakpoints ? breakpoints[breakpoint] : swiper.originalParams; + var needsReLoop = params.loop && (breakPointsParams.slidesPerView !== params.slidesPerView); + + Utils.extend(swiper.params, breakPointsParams); + + Utils.extend(swiper, { + allowTouchMove: swiper.params.allowTouchMove, + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + }); + + swiper.currentBreakpoint = breakpoint; + + if (needsReLoop) { + swiper.loopDestroy(); + swiper.loopCreate(); + swiper.updateSlides(); + swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false); + } + swiper.emit('breakpoint', breakPointsParams); + } +}; + +var getBreakpoint = function (breakpoints) { + // Get breakpoint for window width + if (!breakpoints) { return undefined; } + var breakpoint = false; + var points = []; + Object.keys(breakpoints).forEach(function (point) { + points.push(point); + }); + points.sort(function (a, b) { return parseInt(a, 10) - parseInt(b, 10); }); + for (var i = 0; i < points.length; i += 1) { + var point = points[i]; + if (point >= win.innerWidth && !breakpoint) { + breakpoint = point; + } + } + return breakpoint || 'max'; +}; + +var breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint }; + +var Browser = (function Browser() { + function isSafari() { + var ua = win.navigator.userAgent.toLowerCase(); + return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0); + } + return { + isIE: !!win.navigator.userAgent.match(/Trident/g) || !!win.navigator.userAgent.match(/MSIE/g), + isSafari: isSafari(), + isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent), + }; +}()); + +var addClasses = function () { + var swiper = this; + var classNames = swiper.classNames; + var params = swiper.params; + var rtl = swiper.rtl; + var $el = swiper.$el; + var suffixes = []; + + suffixes.push(params.direction); + + if (params.freeMode) { + suffixes.push('free-mode'); + } + if (!Support.flexbox) { + suffixes.push('no-flexbox'); + } + if (params.autoHeight) { + suffixes.push('autoheight'); + } + if (rtl) { + suffixes.push('rtl'); + } + if (params.slidesPerColumn > 1) { + suffixes.push('multirow'); + } + if (Device.android) { + suffixes.push('android'); + } + if (Device.ios) { + suffixes.push('ios'); + } + // WP8 Touch Events Fix + if (Browser.isIE && (Support.pointerEvents || Support.prefixedPointerEvents)) { + suffixes.push(("wp8-" + (params.direction))); + } + + suffixes.forEach(function (suffix) { + classNames.push(params.containerModifierClass + suffix); + }); + + $el.addClass(classNames.join(' ')); +}; + +var removeClasses = function () { + var swiper = this; + var $el = swiper.$el; + var classNames = swiper.classNames; + + $el.removeClass(classNames.join(' ')); +}; + +var classes = { addClasses: addClasses, removeClasses: removeClasses }; + +var loadImage = function (imageEl, src, srcset, sizes, checkForComplete, callback) { + var image; + function onReady() { + if (callback) { callback(); } + } + if (!imageEl.complete || !checkForComplete) { + if (src) { + image = new win.Image(); + image.onload = onReady; + image.onerror = onReady; + if (sizes) { + image.sizes = sizes; + } + if (srcset) { + image.srcset = srcset; + } + if (src) { + image.src = src; + } + } else { + onReady(); + } + } else { + // image already loaded... + onReady(); + } +}; + +var preloadImages = function () { + var swiper = this; + swiper.imagesToLoad = swiper.$el.find('img'); + function onReady() { + if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) { return; } + if (swiper.imagesLoaded !== undefined) { swiper.imagesLoaded += 1; } + if (swiper.imagesLoaded === swiper.imagesToLoad.length) { + if (swiper.params.updateOnImagesReady) { swiper.update(); } + swiper.emit('imagesReady'); + } + } + for (var i = 0; i < swiper.imagesToLoad.length; i += 1) { + var imageEl = swiper.imagesToLoad[i]; + swiper.loadImage( + imageEl, + imageEl.currentSrc || imageEl.getAttribute('src'), + imageEl.srcset || imageEl.getAttribute('srcset'), + imageEl.sizes || imageEl.getAttribute('sizes'), + true, + onReady + ); + } +}; + +var images = { + loadImage: loadImage, + preloadImages: preloadImages, +}; + +function checkOverflow() { + var swiper = this; + var wasLocked = swiper.isLocked; + + swiper.isLocked = swiper.snapGrid.length === 1; + swiper.allowTouchMove = !swiper.isLocked; + + if (wasLocked && wasLocked !== swiper.isLocked) { + swiper.isEnd = false; + swiper.navigation.update(); + } +} + +var checkOverflow$1 = { checkOverflow: checkOverflow }; + +var defaults = { + init: true, + direction: 'horizontal', + touchEventsTarget: 'container', + initialSlide: 0, + speed: 300, + // + preventIntercationOnTransition: false, + + // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView). + iOSEdgeSwipeDetection: false, + iOSEdgeSwipeThreshold: 20, + + // Free mode + freeMode: false, + freeModeMomentum: true, + freeModeMomentumRatio: 1, + freeModeMomentumBounce: true, + freeModeMomentumBounceRatio: 1, + freeModeMomentumVelocityRatio: 1, + freeModeSticky: false, + freeModeMinimumVelocity: 0.02, + + // Autoheight + autoHeight: false, + + // Set wrapper width + setWrapperSize: false, + + // Virtual Translate + virtualTranslate: false, + + // Effects + effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' + + // Breakpoints + breakpoints: undefined, + + // Slides grid + spaceBetween: 0, + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerColumnFill: 'column', + slidesPerGroup: 1, + centeredSlides: false, + slidesOffsetBefore: 0, // in px + slidesOffsetAfter: 0, // in px + normalizeSlideIndex: true, + + // Disable swiper and hide navigation when container not overflow + watchOverflow: false, + + // Round length + roundLengths: false, + + // Touches + touchRatio: 1, + touchAngle: 45, + simulateTouch: true, + shortSwipes: true, + longSwipes: true, + longSwipesRatio: 0.5, + longSwipesMs: 300, + followFinger: true, + allowTouchMove: true, + threshold: 0, + touchMoveStopPropagation: true, + touchReleaseOnEdges: false, + + // Unique Navigation Elements + uniqueNavElements: true, + + // Resistance + resistance: true, + resistanceRatio: 0.85, + + // Progress + watchSlidesProgress: false, + watchSlidesVisibility: false, + + // Cursor + grabCursor: false, + + // Clicks + preventClicks: true, + preventClicksPropagation: true, + slideToClickedSlide: false, + + // Images + preloadImages: true, + updateOnImagesReady: true, + + // loop + loop: false, + loopAdditionalSlides: 0, + loopedSlides: null, + loopFillGroupWithBlank: false, + + // Swiping/no swiping + allowSlidePrev: true, + allowSlideNext: true, + swipeHandler: null, // '.swipe-handler', + noSwiping: true, + noSwipingClass: 'swiper-no-swiping', + noSwipingSelector: null, + + // Passive Listeners + passiveListeners: true, + + // NS + containerModifierClass: 'swiper-container-', // NEW + slideClass: 'swiper-slide', + slideBlankClass: 'swiper-slide-invisible-blank', + slideActiveClass: 'swiper-slide-active', + slideDuplicateActiveClass: 'swiper-slide-duplicate-active', + slideVisibleClass: 'swiper-slide-visible', + slideDuplicateClass: 'swiper-slide-duplicate', + slideNextClass: 'swiper-slide-next', + slideDuplicateNextClass: 'swiper-slide-duplicate-next', + slidePrevClass: 'swiper-slide-prev', + slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', + wrapperClass: 'swiper-wrapper', + + // Callbacks + runCallbacksOnInit: true, +}; + +var prototypes = { + update: update, + translate: translate, + transition: transition$1, + slide: slide, + loop: loop, + grabCursor: grabCursor, + manipulation: manipulation, + events: events, + breakpoints: breakpoints, + checkOverflow: checkOverflow$1, + classes: classes, + images: images, +}; + +var extendedDefaults = {}; + +var Swiper$1 = (function (SwiperClass$$1) { + function Swiper() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var el; + var params; + if (args.length === 1 && args[0].constructor && args[0].constructor === Object) { + params = args[0]; + } else { + var assign; + (assign = args, el = assign[0], params = assign[1]); + } + if (!params) { params = {}; } + + params = Utils.extend({}, params); + if (el && !params.el) { params.el = el; } + + SwiperClass$$1.call(this, params); + + Object.keys(prototypes).forEach(function (prototypeGroup) { + Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) { + if (!Swiper.prototype[protoMethod]) { + Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; + } + }); + }); + + // Swiper Instance + var swiper = this; + if (typeof swiper.modules === 'undefined') { + swiper.modules = {}; + } + Object.keys(swiper.modules).forEach(function (moduleName) { + var module = swiper.modules[moduleName]; + if (module.params) { + var moduleParamName = Object.keys(module.params)[0]; + var moduleParams = module.params[moduleParamName]; + if (typeof moduleParams !== 'object') { return; } + if (!(moduleParamName in params && 'enabled' in moduleParams)) { return; } + if (params[moduleParamName] === true) { + params[moduleParamName] = { enabled: true }; + } + if ( + typeof params[moduleParamName] === 'object' && + !('enabled' in params[moduleParamName]) + ) { + params[moduleParamName].enabled = true; + } + if (!params[moduleParamName]) { params[moduleParamName] = { enabled: false }; } + } + }); + + // Extend defaults with modules params + var swiperParams = Utils.extend({}, defaults); + swiper.useModulesParams(swiperParams); + + // Extend defaults with passed params + swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params); + swiper.originalParams = Utils.extend({}, swiper.params); + swiper.passedParams = Utils.extend({}, params); + + // Save Dom lib + swiper.$ = $$1; + + // Find el + var $el = $$1(swiper.params.el); + el = $el[0]; + + if (!el) { + return undefined; + } + + if ($el.length > 1) { + var swipers = []; + $el.each(function (index, containerEl) { + var newParams = Utils.extend({}, params, { el: containerEl }); + swipers.push(new Swiper(newParams)); + }); + return swipers; + } + + el.swiper = swiper; + $el.data('swiper', swiper); + + // Find Wrapper + var $wrapperEl = $el.children(("." + (swiper.params.wrapperClass))); + + // Extend Swiper + Utils.extend(swiper, { + $el: $el, + el: el, + $wrapperEl: $wrapperEl, + wrapperEl: $wrapperEl[0], + + // Classes + classNames: [], + + // Slides + slides: $$1(), + slidesGrid: [], + snapGrid: [], + slidesSizesGrid: [], + + // isDirection + isHorizontal: function isHorizontal() { + return swiper.params.direction === 'horizontal'; + }, + isVertical: function isVertical() { + return swiper.params.direction === 'vertical'; + }, + // RTL + rtl: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), + wrongRTL: $wrapperEl.css('display') === '-webkit-box', + + // Indexes + activeIndex: 0, + realIndex: 0, + + // + isBeginning: true, + isEnd: false, + + // Props + translate: 0, + progress: 0, + velocity: 0, + animating: false, + + // Locks + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + + // Touch Events + touchEvents: (function touchEvents() { + var touch = ['touchstart', 'touchmove', 'touchend']; + var desktop = ['mousedown', 'mousemove', 'mouseup']; + if (Support.pointerEvents) { + desktop = ['pointerdown', 'pointermove', 'pointerup']; + } else if (Support.prefixedPointerEvents) { + desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp']; + } + swiper.touchEventsTouch = { + start: touch[0], + move: touch[1], + end: touch[2], + }; + swiper.touchEventsDesktop = { + start: desktop[0], + move: desktop[1], + end: desktop[2], + }; + return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; + }()), + touchEventsData: { + isTouched: undefined, + isMoved: undefined, + allowTouchCallbacks: undefined, + touchStartTime: undefined, + isScrolling: undefined, + currentTranslate: undefined, + startTranslate: undefined, + allowThresholdMove: undefined, + // Form elements to match + formElements: 'input, select, option, textarea, button, video', + // Last click time + lastClickTime: Utils.now(), + clickTimeout: undefined, + // Velocities + velocities: [], + allowMomentumBounce: undefined, + isTouchEvent: undefined, + startMoving: undefined, + }, + + // Clicks + allowClick: true, + + // Touches + allowTouchMove: swiper.params.allowTouchMove, + + touches: { + startX: 0, + startY: 0, + currentX: 0, + currentY: 0, + diff: 0, + }, + + // Images + imagesToLoad: [], + imagesLoaded: 0, + + }); + + // Install Modules + swiper.useModules(); + + // Init + if (swiper.params.init) { + swiper.init(); + } + + // Return app instance + return swiper; + } + + if ( SwiperClass$$1 ) Swiper.__proto__ = SwiperClass$$1; + Swiper.prototype = Object.create( SwiperClass$$1 && SwiperClass$$1.prototype ); + Swiper.prototype.constructor = Swiper; + + var staticAccessors = { extendedDefaults: { configurable: true },defaults: { configurable: true },Class: { configurable: true },$: { configurable: true } }; + Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic () { + var swiper = this; + var params = swiper.params; + var slides = swiper.slides; + var slidesGrid = swiper.slidesGrid; + var swiperSize = swiper.size; + var activeIndex = swiper.activeIndex; + var spv = 1; + if (params.centeredSlides) { + var slideSize = slides[activeIndex].swiperSlideSize; + var breakLoop; + for (var i = activeIndex + 1; i < slides.length; i += 1) { + if (slides[i] && !breakLoop) { + slideSize += slides[i].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) { breakLoop = true; } + } + } + for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) { + if (slides[i$1] && !breakLoop) { + slideSize += slides[i$1].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) { breakLoop = true; } + } + } + } else { + for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) { + if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) { + spv += 1; + } + } + } + return spv; + }; + Swiper.prototype.update = function update$$1 () { + var swiper = this; + if (!swiper || swiper.destroyed) { return; } + swiper.updateSize(); + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + + function setTranslate() { + var translateValue = swiper.rtl ? swiper.translate * -1 : swiper.translate; + var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); + swiper.setTranslate(newTranslate); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + var translated; + if (swiper.params.freeMode) { + setTranslate(); + if (swiper.params.autoHeight) { + swiper.updateAutoHeight(); + } + } else { + if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + translated = swiper.slideTo(swiper.activeIndex, 0, false, true); + } + if (!translated) { + setTranslate(); + } + } + swiper.emit('update'); + }; + Swiper.prototype.init = function init () { + var swiper = this; + if (swiper.initialized) { return; } + + swiper.emit('beforeInit'); + + // Set breakpoint + if (swiper.params.breakpoints) { + swiper.setBreakpoint(); + } + + // Add Classes + swiper.addClasses(); + + // Create loop + if (swiper.params.loop) { + swiper.loopCreate(); + } + + // Update size + swiper.updateSize(); + + // Update slides + swiper.updateSlides(); + + if (swiper.params.watchOverflow) { + swiper.checkOverflow(); + } + + // Set Grab Cursor + if (swiper.params.grabCursor) { + swiper.setGrabCursor(); + } + + if (swiper.params.preloadImages) { + swiper.preloadImages(); + } + + // Slide To Initial Slide + if (swiper.params.loop) { + swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit); + } else { + swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit); + } + + // Attach events + swiper.attachEvents(); + + // Init Flag + swiper.initialized = true; + + // Emit + swiper.emit('init'); + }; + Swiper.prototype.destroy = function destroy (deleteInstance, cleanStyles) { + if ( deleteInstance === void 0 ) deleteInstance = true; + if ( cleanStyles === void 0 ) cleanStyles = true; + + var swiper = this; + var params = swiper.params; + var $el = swiper.$el; + var $wrapperEl = swiper.$wrapperEl; + var slides = swiper.slides; + swiper.emit('beforeDestroy'); + + // Init Flag + swiper.initialized = false; + + // Detach events + swiper.detachEvents(); + + // Destroy loop + if (params.loop) { + swiper.loopDestroy(); + } + + // Cleanup styles + if (cleanStyles) { + swiper.removeClasses(); + $el.removeAttr('style'); + $wrapperEl.removeAttr('style'); + if (slides && slides.length) { + slides + .removeClass([ + params.slideVisibleClass, + params.slideActiveClass, + params.slideNextClass, + params.slidePrevClass ].join(' ')) + .removeAttr('style') + .removeAttr('data-swiper-slide-index') + .removeAttr('data-swiper-column') + .removeAttr('data-swiper-row'); + } + } + + swiper.emit('destroy'); + + // Detach emitter events + Object.keys(swiper.eventsListeners).forEach(function (eventName) { + swiper.off(eventName); + }); + + if (deleteInstance !== false) { + swiper.$el[0].swiper = null; + swiper.$el.data('swiper', null); + Utils.deleteProps(swiper); + } + swiper.destroyed = true; + }; + Swiper.extendDefaults = function extendDefaults (newDefaults) { + Utils.extend(extendedDefaults, newDefaults); + }; + staticAccessors.extendedDefaults.get = function () { + return extendedDefaults; + }; + staticAccessors.defaults.get = function () { + return defaults; + }; + staticAccessors.Class.get = function () { + return SwiperClass$$1; + }; + staticAccessors.$.get = function () { + return $$1; + }; + + Object.defineProperties( Swiper, staticAccessors ); + + return Swiper; +}(SwiperClass)); + +var Device$2 = { + name: 'device', + proto: { + device: Device, + }, + static: { + device: Device, + }, +}; + +var Support$2 = { + name: 'support', + proto: { + support: Support, + }, + static: { + support: Support, + }, +}; + +var Browser$2 = { + name: 'browser', + proto: { + browser: Browser, + }, + static: { + browser: Browser, + }, +}; + +var Resize = { + name: 'resize', + create: function create() { + var swiper = this; + Utils.extend(swiper, { + resize: { + resizeHandler: function resizeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) { return; } + swiper.emit('beforeResize'); + swiper.emit('resize'); + }, + orientationChangeHandler: function orientationChangeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) { return; } + swiper.emit('orientationchange'); + }, + }, + }); + }, + on: { + init: function init() { + var swiper = this; + // Emit resize + win.addEventListener('resize', swiper.resize.resizeHandler); + + // Emit orientationchange + win.addEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + destroy: function destroy() { + var swiper = this; + win.removeEventListener('resize', swiper.resize.resizeHandler); + win.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + }, +}; + +var Observer = { + func: win.MutationObserver || win.WebkitMutationObserver, + attach: function attach(target, options) { + if ( options === void 0 ) options = {}; + + var swiper = this; + + var ObserverFunc = Observer.func; + var observer = new ObserverFunc(function (mutations) { + mutations.forEach(function (mutation) { + swiper.emit('observerUpdate', mutation); + }); + }); + + observer.observe(target, { + attributes: typeof options.attributes === 'undefined' ? true : options.attributes, + childList: typeof options.childList === 'undefined' ? true : options.childList, + characterData: typeof options.characterData === 'undefined' ? true : options.characterData, + }); + + swiper.observer.observers.push(observer); + }, + init: function init() { + var swiper = this; + if (!Support.observer || !swiper.params.observer) { return; } + if (swiper.params.observeParents) { + var containerParents = swiper.$el.parents(); + for (var i = 0; i < containerParents.length; i += 1) { + swiper.observer.attach(containerParents[i]); + } + } + // Observe container + swiper.observer.attach(swiper.$el[0], { childList: false }); + + // Observe wrapper + swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false }); + }, + destroy: function destroy() { + var swiper = this; + swiper.observer.observers.forEach(function (observer) { + observer.disconnect(); + }); + swiper.observer.observers = []; + }, +}; + +var Observer$1 = { + name: 'observer', + params: { + observer: false, + observeParents: false, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + observer: { + init: Observer.init.bind(swiper), + attach: Observer.attach.bind(swiper), + destroy: Observer.destroy.bind(swiper), + observers: [], + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.observer.init(); + }, + destroy: function destroy() { + var swiper = this; + swiper.observer.destroy(); + }, + }, +}; + +var Virtual = { + update: function update(force) { + var swiper = this; + var ref = swiper.params; + var slidesPerView = ref.slidesPerView; + var slidesPerGroup = ref.slidesPerGroup; + var centeredSlides = ref.centeredSlides; + var ref$1 = swiper.virtual; + var previousFrom = ref$1.from; + var previousTo = ref$1.to; + var slides = ref$1.slides; + var previousSlidesGrid = ref$1.slidesGrid; + var renderSlide = ref$1.renderSlide; + var previousOffset = ref$1.offset; + swiper.updateActiveIndex(); + var activeIndex = swiper.activeIndex || 0; + + var offsetProp; + if (swiper.rtl && swiper.isHorizontal()) { offsetProp = 'right'; } + else { offsetProp = swiper.isHorizontal() ? 'left' : 'top'; } + + var slidesAfter; + var slidesBefore; + if (centeredSlides) { + slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup; + slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup; + } else { + slidesAfter = slidesPerView + (slidesPerGroup - 1); + slidesBefore = slidesPerGroup; + } + var from = Math.max((activeIndex || 0) - slidesBefore, 0); + var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); + var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); + + Utils.extend(swiper.virtual, { + from: from, + to: to, + offset: offset, + slidesGrid: swiper.slidesGrid, + }); + + function onRendered() { + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + if (swiper.lazy && swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + } + + if (previousFrom === from && previousTo === to && !force) { + if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { + swiper.slides.css(offsetProp, (offset + "px")); + } + swiper.updateProgress(); + return; + } + if (swiper.params.virtual.renderExternal) { + swiper.params.virtual.renderExternal.call(swiper, { + offset: offset, + from: from, + to: to, + slides: (function getSlides() { + var slidesToRender = []; + for (var i = from; i <= to; i += 1) { + slidesToRender.push(slides[i]); + } + return slidesToRender; + }()), + }); + onRendered(); + return; + } + var prependIndexes = []; + var appendIndexes = []; + if (force) { + swiper.$wrapperEl.find(("." + (swiper.params.slideClass))).remove(); + } else { + for (var i = previousFrom; i <= previousTo; i += 1) { + if (i < from || i > to) { + swiper.$wrapperEl.find(("." + (swiper.params.slideClass) + "[data-swiper-slide-index=\"" + i + "\"]")).remove(); + } + } + } + for (var i$1 = 0; i$1 < slides.length; i$1 += 1) { + if (i$1 >= from && i$1 <= to) { + if (typeof previousTo === 'undefined' || force) { + appendIndexes.push(i$1); + } else { + if (i$1 > previousTo) { appendIndexes.push(i$1); } + if (i$1 < previousFrom) { prependIndexes.push(i$1); } + } + } + } + appendIndexes.forEach(function (index) { + swiper.$wrapperEl.append(renderSlide(slides[index], index)); + }); + prependIndexes.sort(function (a, b) { return a < b; }).forEach(function (index) { + swiper.$wrapperEl.prepend(renderSlide(slides[index], index)); + }); + swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, (offset + "px")); + onRendered(); + }, + renderSlide: function renderSlide(slide, index) { + var swiper = this; + var params = swiper.params.virtual; + if (params.cache && swiper.virtual.cache[index]) { + return swiper.virtual.cache[index]; + } + var $slideEl = params.renderSlide + ? $$1(params.renderSlide.call(swiper, slide, index)) + : $$1(("
    " + slide + "
    ")); + if (!$slideEl.attr('data-swiper-slide-index')) { $slideEl.attr('data-swiper-slide-index', index); } + if (params.cache) { swiper.virtual.cache[index] = $slideEl; } + return $slideEl; + }, + appendSlide: function appendSlide(slide) { + var swiper = this; + swiper.virtual.slides.push(slide); + swiper.virtual.update(true); + }, + prependSlide: function prependSlide(slide) { + var swiper = this; + swiper.virtual.slides.unshift(slide); + if (swiper.params.virtual.cache) { + var cache = swiper.virtual.cache; + var newCache = {}; + Object.keys(cache).forEach(function (cachedIndex) { + newCache[cachedIndex + 1] = cache[cachedIndex]; + }); + swiper.virtual.cache = newCache; + } + swiper.virtual.update(true); + swiper.slideNext(0); + }, +}; + +var Virtual$1 = { + name: 'virtual', + params: { + virtual: { + enabled: false, + slides: [], + cache: true, + renderSlide: null, + renderExternal: null, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + virtual: { + update: Virtual.update.bind(swiper), + appendSlide: Virtual.appendSlide.bind(swiper), + prependSlide: Virtual.prependSlide.bind(swiper), + renderSlide: Virtual.renderSlide.bind(swiper), + slides: swiper.params.virtual.slides, + cache: {}, + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (!swiper.params.virtual.enabled) { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "virtual")); + var overwriteParams = { + watchSlidesProgress: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + + swiper.virtual.update(); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (!swiper.params.virtual.enabled) { return; } + swiper.virtual.update(); + }, + }, +}; + +var Keyboard = { + handle: function handle(event) { + var swiper = this; + var e = event; + if (e.originalEvent) { e = e.originalEvent; } // jquery fix + var kc = e.keyCode || e.charCode; + // Directions locks + if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) { + return false; + } + if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) { + return false; + } + if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { + return undefined; + } + if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) { + return undefined; + } + if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) { + var inView = false; + // Check that swiper should be inside of visible area of window + if (swiper.$el.parents(("." + (swiper.params.slideClass))).length > 0 && swiper.$el.parents(("." + (swiper.params.slideActiveClass))).length === 0) { + return undefined; + } + var windowWidth = win.innerWidth; + var windowHeight = win.innerHeight; + var swiperOffset = swiper.$el.offset(); + if (swiper.rtl) { swiperOffset.left -= swiper.$el[0].scrollLeft; } + var swiperCoord = [ + [swiperOffset.left, swiperOffset.top], + [swiperOffset.left + swiper.width, swiperOffset.top], + [swiperOffset.left, swiperOffset.top + swiper.height], + [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height] ]; + for (var i = 0; i < swiperCoord.length; i += 1) { + var point = swiperCoord[i]; + if ( + point[0] >= 0 && point[0] <= windowWidth && + point[1] >= 0 && point[1] <= windowHeight + ) { + inView = true; + } + } + if (!inView) { return undefined; } + } + if (swiper.isHorizontal()) { + if (kc === 37 || kc === 39) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + if ((kc === 39 && !swiper.rtl) || (kc === 37 && swiper.rtl)) { swiper.slideNext(); } + if ((kc === 37 && !swiper.rtl) || (kc === 39 && swiper.rtl)) { swiper.slidePrev(); } + } else { + if (kc === 38 || kc === 40) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + if (kc === 40) { swiper.slideNext(); } + if (kc === 38) { swiper.slidePrev(); } + } + swiper.emit('keyPress', kc); + return undefined; + }, + enable: function enable() { + var swiper = this; + if (swiper.keyboard.enabled) { return; } + $$1(doc).on('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = true; + }, + disable: function disable() { + var swiper = this; + if (!swiper.keyboard.enabled) { return; } + $$1(doc).off('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = false; + }, +}; + +var Keyboard$1 = { + name: 'keyboard', + params: { + keyboard: { + enabled: false, + onlyInViewport: true, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + keyboard: { + enabled: false, + enable: Keyboard.enable.bind(swiper), + disable: Keyboard.disable.bind(swiper), + handle: Keyboard.handle.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.keyboard.enabled) { + swiper.keyboard.enable(); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.keyboard.enabled) { + swiper.keyboard.disable(); + } + }, + }, +}; + +function isEventSupported() { + var eventName = 'onwheel'; + var isSupported = eventName in doc; + + if (!isSupported) { + var element = doc.createElement('div'); + element.setAttribute(eventName, 'return;'); + isSupported = typeof element[eventName] === 'function'; + } + + if (!isSupported && + doc.implementation && + doc.implementation.hasFeature && + // always returns true in newer browsers as per the standard. + // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature + doc.implementation.hasFeature('', '') !== true + ) { + // This is the only way to test support for the `wheel` event in IE9+. + isSupported = doc.implementation.hasFeature('Events.wheel', '3.0'); + } + + return isSupported; +} +var Mousewheel = { + lastScrollTime: Utils.now(), + event: (function getEvent() { + if (win.navigator.userAgent.indexOf('firefox') > -1) { return 'DOMMouseScroll'; } + return isEventSupported() ? 'wheel' : 'mousewheel'; + }()), + normalize: function normalize(e) { + // Reasonable defaults + var PIXEL_STEP = 10; + var LINE_HEIGHT = 40; + var PAGE_HEIGHT = 800; + + var sX = 0; + var sY = 0; // spinX, spinY + var pX = 0; + var pY = 0; // pixelX, pixelY + + // Legacy + if ('detail' in e) { + sY = e.detail; + } + if ('wheelDelta' in e) { + sY = -e.wheelDelta / 120; + } + if ('wheelDeltaY' in e) { + sY = -e.wheelDeltaY / 120; + } + if ('wheelDeltaX' in e) { + sX = -e.wheelDeltaX / 120; + } + + // side scrolling on FF with DOMMouseScroll + if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { + sX = sY; + sY = 0; + } + + pX = sX * PIXEL_STEP; + pY = sY * PIXEL_STEP; + + if ('deltaY' in e) { + pY = e.deltaY; + } + if ('deltaX' in e) { + pX = e.deltaX; + } + + if ((pX || pY) && e.deltaMode) { + if (e.deltaMode === 1) { // delta in LINE units + pX *= LINE_HEIGHT; + pY *= LINE_HEIGHT; + } else { // delta in PAGE units + pX *= PAGE_HEIGHT; + pY *= PAGE_HEIGHT; + } + } + + // Fall-back if spin cannot be determined + if (pX && !sX) { + sX = (pX < 1) ? -1 : 1; + } + if (pY && !sY) { + sY = (pY < 1) ? -1 : 1; + } + + return { + spinX: sX, + spinY: sY, + pixelX: pX, + pixelY: pY, + }; + }, + handle: function handle(event) { + var e = event; + var swiper = this; + var params = swiper.params.mousewheel; + if (e.originalEvent) { e = e.originalEvent; } // jquery fix + var delta = 0; + var rtlFactor = swiper.rtl ? -1 : 1; + + var data = Mousewheel.normalize(e); + + if (params.forceToAxis) { + if (swiper.isHorizontal()) { + if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) { delta = data.pixelX * rtlFactor; } + else { return true; } + } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) { delta = data.pixelY; } + else { return true; } + } else { + delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; + } + + if (delta === 0) { return true; } + + if (params.invert) { delta = -delta; } + + if (!swiper.params.freeMode) { + if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) { + if (delta < 0) { + if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { + swiper.slideNext(); + swiper.emit('scroll', e); + } else if (params.releaseOnEdges) { return true; } + } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { + swiper.slidePrev(); + swiper.emit('scroll', e); + } else if (params.releaseOnEdges) { return true; } + } + swiper.mousewheel.lastScrollTime = (new win.Date()).getTime(); + } else { + // Freemode or scrollContainer: + var position = swiper.getTranslate() + (delta * params.sensitivity); + var wasBeginning = swiper.isBeginning; + var wasEnd = swiper.isEnd; + + if (position >= swiper.minTranslate()) { position = swiper.minTranslate(); } + if (position <= swiper.maxTranslate()) { position = swiper.maxTranslate(); } + + swiper.setTransition(0); + swiper.setTranslate(position); + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) { + swiper.updateSlidesClasses(); + } + + if (swiper.params.freeModeSticky) { + clearTimeout(swiper.mousewheel.timeout); + swiper.mousewheel.timeout = Utils.nextTick(function () { + swiper.slideReset(); + }, 300); + } + // Emit event + swiper.emit('scroll', e); + + // Stop autoplay + if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) { swiper.stopAutoplay(); } + // Return page scroll on edge positions + if (position === swiper.minTranslate() || position === swiper.maxTranslate()) { return true; } + } + + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + return false; + }, + enable: function enable() { + var swiper = this; + if (!Mousewheel.event) { return false; } + if (swiper.mousewheel.enabled) { return false; } + var target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $$1(swiper.params.mousewheel.eventsTarged); + } + target.on(Mousewheel.event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = true; + return true; + }, + disable: function disable() { + var swiper = this; + if (!Mousewheel.event) { return false; } + if (!swiper.mousewheel.enabled) { return false; } + var target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $$1(swiper.params.mousewheel.eventsTarged); + } + target.off(Mousewheel.event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = false; + return true; + }, +}; + +var Mousewheel$1 = { + name: 'mousewheel', + params: { + mousewheel: { + enabled: false, + releaseOnEdges: false, + invert: false, + forceToAxis: false, + sensitivity: 1, + eventsTarged: 'container', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + mousewheel: { + enabled: false, + enable: Mousewheel.enable.bind(swiper), + disable: Mousewheel.disable.bind(swiper), + handle: Mousewheel.handle.bind(swiper), + lastScrollTime: Utils.now(), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.mousewheel.enabled) { swiper.mousewheel.enable(); } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.mousewheel.enabled) { swiper.mousewheel.disable(); } + }, + }, +}; + +var Navigation = { + update: function update() { + // Update Navigation Buttons + var swiper = this; + var params = swiper.params.navigation; + + if (swiper.params.loop) { return; } + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + $prevEl.addClass(params.disabledClass); + } else { + $prevEl.removeClass(params.disabledClass); + } + $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + $nextEl.addClass(params.disabledClass); + } else { + $nextEl.removeClass(params.disabledClass); + } + $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + }, + init: function init() { + var swiper = this; + var params = swiper.params.navigation; + if (!(params.nextEl || params.prevEl)) { return; } + + var $nextEl; + var $prevEl; + if (params.nextEl) { + $nextEl = $$1(params.nextEl); + if ( + swiper.params.uniqueNavElements && + typeof params.nextEl === 'string' && + $nextEl.length > 1 && + swiper.$el.find(params.nextEl).length === 1 + ) { + $nextEl = swiper.$el.find(params.nextEl); + } + } + if (params.prevEl) { + $prevEl = $$1(params.prevEl); + if ( + swiper.params.uniqueNavElements && + typeof params.prevEl === 'string' && + $prevEl.length > 1 && + swiper.$el.find(params.prevEl).length === 1 + ) { + $prevEl = swiper.$el.find(params.prevEl); + } + } + + if ($nextEl && $nextEl.length > 0) { + $nextEl.on('click', function (e) { + e.preventDefault(); + if (swiper.isEnd && !swiper.params.loop) { return; } + swiper.slideNext(); + }); + } + if ($prevEl && $prevEl.length > 0) { + $prevEl.on('click', function (e) { + e.preventDefault(); + if (swiper.isBeginning && !swiper.params.loop) { return; } + swiper.slidePrev(); + }); + } + + Utils.extend(swiper.navigation, { + $nextEl: $nextEl, + nextEl: $nextEl && $nextEl[0], + $prevEl: $prevEl, + prevEl: $prevEl && $prevEl[0], + }); + }, + destroy: function destroy() { + var swiper = this; + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + if ($nextEl && $nextEl.length) { + $nextEl.off('click'); + $nextEl.removeClass(swiper.params.navigation.disabledClass); + } + if ($prevEl && $prevEl.length) { + $prevEl.off('click'); + $prevEl.removeClass(swiper.params.navigation.disabledClass); + } + }, +}; + +var Navigation$1 = { + name: 'navigation', + params: { + navigation: { + nextEl: null, + prevEl: null, + + hideOnClick: false, + disabledClass: 'swiper-button-disabled', + hiddenClass: 'swiper-button-hidden', + lockClass: 'swiper-button-lock', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + navigation: { + init: Navigation.init.bind(swiper), + update: Navigation.update.bind(swiper), + destroy: Navigation.destroy.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.navigation.init(); + swiper.navigation.update(); + }, + toEdge: function toEdge() { + var swiper = this; + swiper.navigation.update(); + }, + fromEdge: function fromEdge() { + var swiper = this; + swiper.navigation.update(); + }, + destroy: function destroy() { + var swiper = this; + swiper.navigation.destroy(); + }, + click: function click(e) { + var swiper = this; + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + if ( + swiper.params.navigation.hideOnClick && + !$$1(e.target).is($prevEl) && + !$$1(e.target).is($nextEl) + ) { + if ($nextEl) { $nextEl.toggleClass(swiper.params.navigation.hiddenClass); } + if ($prevEl) { $prevEl.toggleClass(swiper.params.navigation.hiddenClass); } + } + }, + }, +}; + +var Pagination = { + update: function update() { + // Render || Update Pagination bullets/items + var swiper = this; + var rtl = swiper.rtl; + var params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; } + var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + var $el = swiper.pagination.$el; + // Current/Total + var current; + var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + if (swiper.params.loop) { + current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); + if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) { + current -= (slidesLength - (swiper.loopedSlides * 2)); + } + if (current > total - 1) { current -= total; } + if (current < 0 && swiper.params.paginationType !== 'bullets') { current = total + current; } + } else if (typeof swiper.snapIndex !== 'undefined') { + current = swiper.snapIndex; + } else { + current = swiper.activeIndex || 0; + } + // Types + if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { + var bullets = swiper.pagination.bullets; + var firstIndex; + var lastIndex; + var midIndex; + if (params.dynamicBullets) { + swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); + $el.css(swiper.isHorizontal() ? 'width' : 'height', ((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + "px")); + if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { + if (current > swiper.previousIndex && swiper.pagination.dynamicBulletIndex < (params.dynamicMainBullets - 1)) { + swiper.pagination.dynamicBulletIndex += 1; + } else if (current < swiper.previousIndex && swiper.pagination.dynamicBulletIndex > 0) { + swiper.pagination.dynamicBulletIndex -= 1; + } + } + firstIndex = current - swiper.pagination.dynamicBulletIndex; + lastIndex = firstIndex + (params.dynamicMainBullets - 1); + midIndex = (lastIndex + firstIndex) / 2; + } + bullets.removeClass(((params.bulletActiveClass) + " " + (params.bulletActiveClass) + "-next " + (params.bulletActiveClass) + "-next-next " + (params.bulletActiveClass) + "-prev " + (params.bulletActiveClass) + "-prev-prev " + (params.bulletActiveClass) + "-main")); + if ($el.length > 1) { + bullets.each(function (index, bullet) { + var $bullet = $$1(bullet); + var bulletIndex = $bullet.index(); + if (bulletIndex === current) { + $bullet.addClass(params.bulletActiveClass); + } + if (params.dynamicBullets) { + if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { + $bullet.addClass(((params.bulletActiveClass) + "-main")); + } + if (bulletIndex === firstIndex) { + $bullet + .prev() + .addClass(((params.bulletActiveClass) + "-prev")) + .prev() + .addClass(((params.bulletActiveClass) + "-prev-prev")); + } + if (bulletIndex === lastIndex) { + $bullet + .next() + .addClass(((params.bulletActiveClass) + "-next")) + .next() + .addClass(((params.bulletActiveClass) + "-next-next")); + } + } + }); + } else { + var $bullet = bullets.eq(current); + $bullet.addClass(params.bulletActiveClass); + if (params.dynamicBullets) { + var $firstDisplayedBullet = bullets.eq(firstIndex); + var $lastDisplayedBullet = bullets.eq(lastIndex); + for (var i = firstIndex; i <= lastIndex; i += 1) { + bullets.eq(i).addClass(((params.bulletActiveClass) + "-main")); + } + $firstDisplayedBullet + .prev() + .addClass(((params.bulletActiveClass) + "-prev")) + .prev() + .addClass(((params.bulletActiveClass) + "-prev-prev")); + $lastDisplayedBullet + .next() + .addClass(((params.bulletActiveClass) + "-next")) + .next() + .addClass(((params.bulletActiveClass) + "-next-next")); + } + } + if (params.dynamicBullets) { + var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); + var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize); + var offsetProp = rtl ? 'right' : 'left'; + bullets.css(swiper.isHorizontal() ? offsetProp : 'top', (bulletsOffset + "px")); + } + } + if (params.type === 'fraction') { + $el.find(("." + (params.currentClass))).text(current + 1); + $el.find(("." + (params.totalClass))).text(total); + } + if (params.type === 'progressbar') { + var scale = (current + 1) / total; + var scaleX = scale; + var scaleY = 1; + if (!swiper.isHorizontal()) { + scaleY = scale; + scaleX = 1; + } + $el.find(("." + (params.progressbarFillClass))).transform(("translate3d(0,0,0) scaleX(" + scaleX + ") scaleY(" + scaleY + ")")).transition(swiper.params.speed); + } + if (params.type === 'custom' && params.renderCustom) { + $el.html(params.renderCustom(swiper, current + 1, total)); + swiper.emit('paginationRender', swiper, $el[0]); + } else { + swiper.emit('paginationUpdate', swiper, $el[0]); + } + $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + }, + render: function render() { + // Render Container + var swiper = this; + var params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; } + var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + + var $el = swiper.pagination.$el; + var paginationHTML = ''; + if (params.type === 'bullets') { + var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + for (var i = 0; i < numberOfBullets; i += 1) { + if (params.renderBullet) { + paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); + } else { + paginationHTML += "<" + (params.bulletElement) + " class=\"" + (params.bulletClass) + "\">"; + } + } + $el.html(paginationHTML); + swiper.pagination.bullets = $el.find(("." + (params.bulletClass))); + } + if (params.type === 'fraction') { + if (params.renderFraction) { + paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); + } else { + paginationHTML = + "" + + ' / ' + + ""; + } + $el.html(paginationHTML); + } + if (params.type === 'progressbar') { + if (params.renderProgressbar) { + paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); + } else { + paginationHTML = ""; + } + $el.html(paginationHTML); + } + if (params.type !== 'custom') { + swiper.emit('paginationRender', swiper.pagination.$el[0]); + } + }, + init: function init() { + var swiper = this; + var params = swiper.params.pagination; + if (!params.el) { return; } + + var $el = $$1(params.el); + if ($el.length === 0) { return; } + + if ( + swiper.params.uniqueNavElements && + typeof params.el === 'string' && + $el.length > 1 && + swiper.$el.find(params.el).length === 1 + ) { + $el = swiper.$el.find(params.el); + } + + if (params.type === 'bullets' && params.clickable) { + $el.addClass(params.clickableClass); + } + + $el.addClass(params.modifierClass + params.type); + + if (params.type === 'bullets' && params.dynamicBullets) { + $el.addClass(("" + (params.modifierClass) + (params.type) + "-dynamic")); + swiper.pagination.dynamicBulletIndex = 0; + if (params.dynamicMainBullets < 1) { + params.dynamicMainBullets = 1; + } + } + + if (params.clickable) { + $el.on('click', ("." + (params.bulletClass)), function onClick(e) { + e.preventDefault(); + var index = $$1(this).index() * swiper.params.slidesPerGroup; + if (swiper.params.loop) { index += swiper.loopedSlides; } + swiper.slideTo(index); + }); + } + + Utils.extend(swiper.pagination, { + $el: $el, + el: $el[0], + }); + }, + destroy: function destroy() { + var swiper = this; + var params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; } + var $el = swiper.pagination.$el; + + $el.removeClass(params.hiddenClass); + $el.removeClass(params.modifierClass + params.type); + if (swiper.pagination.bullets) { swiper.pagination.bullets.removeClass(params.bulletActiveClass); } + if (params.clickable) { + $el.off('click', ("." + (params.bulletClass))); + } + }, +}; + +var Pagination$1 = { + name: 'pagination', + params: { + pagination: { + el: null, + bulletElement: 'span', + clickable: false, + hideOnClick: false, + renderBullet: null, + renderProgressbar: null, + renderFraction: null, + renderCustom: null, + type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom' + dynamicBullets: false, + dynamicMainBullets: 1, + bulletClass: 'swiper-pagination-bullet', + bulletActiveClass: 'swiper-pagination-bullet-active', + modifierClass: 'swiper-pagination-', // NEW + currentClass: 'swiper-pagination-current', + totalClass: 'swiper-pagination-total', + hiddenClass: 'swiper-pagination-hidden', + progressbarFillClass: 'swiper-pagination-progressbar-fill', + clickableClass: 'swiper-pagination-clickable', // NEW + lockClass: 'swiper-pagination-lock', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + pagination: { + init: Pagination.init.bind(swiper), + render: Pagination.render.bind(swiper), + update: Pagination.update.bind(swiper), + destroy: Pagination.destroy.bind(swiper), + dynamicBulletIndex: 0, + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.pagination.init(); + swiper.pagination.render(); + swiper.pagination.update(); + }, + activeIndexChange: function activeIndexChange() { + var swiper = this; + if (swiper.params.loop) { + swiper.pagination.update(); + } else if (typeof swiper.snapIndex === 'undefined') { + swiper.pagination.update(); + } + }, + snapIndexChange: function snapIndexChange() { + var swiper = this; + if (!swiper.params.loop) { + swiper.pagination.update(); + } + }, + slidesLengthChange: function slidesLengthChange() { + var swiper = this; + if (swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + snapGridLengthChange: function snapGridLengthChange() { + var swiper = this; + if (!swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + destroy: function destroy() { + var swiper = this; + swiper.pagination.destroy(); + }, + click: function click(e) { + var swiper = this; + if ( + swiper.params.pagination.el && + swiper.params.pagination.hideOnClick && + swiper.pagination.$el.length > 0 && + !$$1(e.target).hasClass(swiper.params.pagination.bulletClass) + ) { + swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass); + } + }, + }, +}; + +var Scrollbar = { + setTranslate: function setTranslate() { + var swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var rtl = swiper.rtl; + var progress = swiper.progress; + var dragSize = scrollbar.dragSize; + var trackSize = scrollbar.trackSize; + var $dragEl = scrollbar.$dragEl; + var $el = scrollbar.$el; + var params = swiper.params.scrollbar; + + var newSize = dragSize; + var newPos = (trackSize - dragSize) * progress; + if (rtl && swiper.isHorizontal()) { + newPos = -newPos; + if (newPos > 0) { + newSize = dragSize - newPos; + newPos = 0; + } else if (-newPos + dragSize > trackSize) { + newSize = trackSize + newPos; + } + } else if (newPos < 0) { + newSize = dragSize + newPos; + newPos = 0; + } else if (newPos + dragSize > trackSize) { + newSize = trackSize - newPos; + } + if (swiper.isHorizontal()) { + if (Support.transforms3d) { + $dragEl.transform(("translate3d(" + newPos + "px, 0, 0)")); + } else { + $dragEl.transform(("translateX(" + newPos + "px)")); + } + $dragEl[0].style.width = newSize + "px"; + } else { + if (Support.transforms3d) { + $dragEl.transform(("translate3d(0px, " + newPos + "px, 0)")); + } else { + $dragEl.transform(("translateY(" + newPos + "px)")); + } + $dragEl[0].style.height = newSize + "px"; + } + if (params.hide) { + clearTimeout(swiper.scrollbar.timeout); + $el[0].style.opacity = 1; + swiper.scrollbar.timeout = setTimeout(function () { + $el[0].style.opacity = 0; + $el.transition(400); + }, 1000); + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; } + swiper.scrollbar.$dragEl.transition(duration); + }, + updateSize: function updateSize() { + var swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; } + + var scrollbar = swiper.scrollbar; + var $dragEl = scrollbar.$dragEl; + var $el = scrollbar.$el; + + $dragEl[0].style.width = ''; + $dragEl[0].style.height = ''; + var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; + + var divider = swiper.size / swiper.virtualSize; + var moveDivider = divider * (trackSize / swiper.size); + var dragSize; + if (swiper.params.scrollbar.dragSize === 'auto') { + dragSize = trackSize * divider; + } else { + dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); + } + + if (swiper.isHorizontal()) { + $dragEl[0].style.width = dragSize + "px"; + } else { + $dragEl[0].style.height = dragSize + "px"; + } + + if (divider >= 1) { + $el[0].style.display = 'none'; + } else { + $el[0].style.display = ''; + } + if (swiper.params.scrollbarHide) { + $el[0].style.opacity = 0; + } + Utils.extend(scrollbar, { + trackSize: trackSize, + divider: divider, + moveDivider: moveDivider, + dragSize: dragSize, + }); + scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); + }, + setDragPosition: function setDragPosition(e) { + var swiper = this; + var scrollbar = swiper.scrollbar; + var $el = scrollbar.$el; + var dragSize = scrollbar.dragSize; + var trackSize = scrollbar.trackSize; + + var pointerPosition; + if (swiper.isHorizontal()) { + pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX); + } else { + pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY); + } + var positionRatio; + positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize); + positionRatio = Math.max(Math.min(positionRatio, 1), 0); + if (swiper.rtl) { + positionRatio = 1 - positionRatio; + } + + var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio); + + swiper.updateProgress(position); + swiper.setTranslate(position); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + }, + onDragStart: function onDragStart(e) { + var swiper = this; + var params = swiper.params.scrollbar; + var scrollbar = swiper.scrollbar; + var $wrapperEl = swiper.$wrapperEl; + var $el = scrollbar.$el; + var $dragEl = scrollbar.$dragEl; + swiper.scrollbar.isTouched = true; + e.preventDefault(); + e.stopPropagation(); + + $wrapperEl.transition(100); + $dragEl.transition(100); + scrollbar.setDragPosition(e); + + clearTimeout(swiper.scrollbar.dragTimeout); + + $el.transition(0); + if (params.hide) { + $el.css('opacity', 1); + } + swiper.emit('scrollbarDragStart', e); + }, + onDragMove: function onDragMove(e) { + var swiper = this; + var scrollbar = swiper.scrollbar; + var $wrapperEl = swiper.$wrapperEl; + var $el = scrollbar.$el; + var $dragEl = scrollbar.$dragEl; + + if (!swiper.scrollbar.isTouched) { return; } + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + scrollbar.setDragPosition(e); + $wrapperEl.transition(0); + $el.transition(0); + $dragEl.transition(0); + swiper.emit('scrollbarDragMove', e); + }, + onDragEnd: function onDragEnd(e) { + var swiper = this; + + var params = swiper.params.scrollbar; + var scrollbar = swiper.scrollbar; + var $el = scrollbar.$el; + + if (!swiper.scrollbar.isTouched) { return; } + swiper.scrollbar.isTouched = false; + if (params.hide) { + clearTimeout(swiper.scrollbar.dragTimeout); + swiper.scrollbar.dragTimeout = Utils.nextTick(function () { + $el.css('opacity', 0); + $el.transition(400); + }, 1000); + } + swiper.emit('scrollbarDragEnd', e); + if (params.snapOnRelease) { + swiper.slideReset(); + } + }, + enableDraggable: function enableDraggable() { + var swiper = this; + if (!swiper.params.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var touchEvents = swiper.touchEvents; + var touchEventsDesktop = swiper.touchEventsDesktop; + var params = swiper.params; + var $el = scrollbar.$el; + var target = $el[0]; + var activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false; + var passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false; + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + doc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + doc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + if (Support.touch) { + target.addEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener); + target.addEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener); + target.addEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.addEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener); + doc.addEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener); + doc.addEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener); + } + } + }, + disableDraggable: function disableDraggable() { + var swiper = this; + if (!swiper.params.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var touchEvents = swiper.touchEvents; + var touchEventsDesktop = swiper.touchEventsDesktop; + var params = swiper.params; + var $el = scrollbar.$el; + var target = $el[0]; + var activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false; + var passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false; + if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { + target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + doc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + doc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + if (Support.touch) { + target.removeEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener); + target.removeEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener); + target.removeEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener); + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + target.removeEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener); + doc.removeEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener); + doc.removeEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener); + } + } + }, + init: function init() { + var swiper = this; + if (!swiper.params.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var $swiperEl = swiper.$el; + var params = swiper.params.scrollbar; + + var $el = $$1(params.el); + if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { + $el = $swiperEl.find(params.el); + } + + var $dragEl = $el.find(("." + (swiper.params.scrollbar.dragClass))); + if ($dragEl.length === 0) { + $dragEl = $$1(("
    ")); + $el.append($dragEl); + } + + Utils.extend(scrollbar, { + $el: $el, + el: $el[0], + $dragEl: $dragEl, + dragEl: $dragEl[0], + }); + + if (params.draggable) { + scrollbar.enableDraggable(); + } + }, + destroy: function destroy() { + var swiper = this; + swiper.scrollbar.disableDraggable(); + }, +}; + +var Scrollbar$1 = { + name: 'scrollbar', + params: { + scrollbar: { + el: null, + dragSize: 'auto', + hide: false, + draggable: false, + snapOnRelease: true, + lockClass: 'swiper-scrollbar-lock', + dragClass: 'swiper-scrollbar-drag', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + scrollbar: { + init: Scrollbar.init.bind(swiper), + destroy: Scrollbar.destroy.bind(swiper), + updateSize: Scrollbar.updateSize.bind(swiper), + setTranslate: Scrollbar.setTranslate.bind(swiper), + setTransition: Scrollbar.setTransition.bind(swiper), + enableDraggable: Scrollbar.enableDraggable.bind(swiper), + disableDraggable: Scrollbar.disableDraggable.bind(swiper), + setDragPosition: Scrollbar.setDragPosition.bind(swiper), + onDragStart: Scrollbar.onDragStart.bind(swiper), + onDragMove: Scrollbar.onDragMove.bind(swiper), + onDragEnd: Scrollbar.onDragEnd.bind(swiper), + isTouched: false, + timeout: null, + dragTimeout: null, + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.scrollbar.init(); + swiper.scrollbar.updateSize(); + swiper.scrollbar.setTranslate(); + }, + update: function update() { + var swiper = this; + swiper.scrollbar.updateSize(); + }, + resize: function resize() { + var swiper = this; + swiper.scrollbar.updateSize(); + }, + observerUpdate: function observerUpdate() { + var swiper = this; + swiper.scrollbar.updateSize(); + }, + setTranslate: function setTranslate() { + var swiper = this; + swiper.scrollbar.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + swiper.scrollbar.setTransition(duration); + }, + destroy: function destroy() { + var swiper = this; + swiper.scrollbar.destroy(); + }, + }, +}; + +var Parallax = { + setTransform: function setTransform(el, progress) { + var swiper = this; + var rtl = swiper.rtl; + + var $el = $$1(el); + var rtlFactor = rtl ? -1 : 1; + + var p = $el.attr('data-swiper-parallax') || '0'; + var x = $el.attr('data-swiper-parallax-x'); + var y = $el.attr('data-swiper-parallax-y'); + var scale = $el.attr('data-swiper-parallax-scale'); + var opacity = $el.attr('data-swiper-parallax-opacity'); + + if (x || y) { + x = x || '0'; + y = y || '0'; + } else if (swiper.isHorizontal()) { + x = p; + y = '0'; + } else { + y = p; + x = '0'; + } + + if ((x).indexOf('%') >= 0) { + x = (parseInt(x, 10) * progress * rtlFactor) + "%"; + } else { + x = (x * progress * rtlFactor) + "px"; + } + if ((y).indexOf('%') >= 0) { + y = (parseInt(y, 10) * progress) + "%"; + } else { + y = (y * progress) + "px"; + } + + if (typeof opacity !== 'undefined' && opacity !== null) { + var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress))); + $el[0].style.opacity = currentOpacity; + } + if (typeof scale === 'undefined' || scale === null) { + $el.transform(("translate3d(" + x + ", " + y + ", 0px)")); + } else { + var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress))); + $el.transform(("translate3d(" + x + ", " + y + ", 0px) scale(" + currentScale + ")")); + } + }, + setTranslate: function setTranslate() { + var swiper = this; + var $el = swiper.$el; + var slides = swiper.slides; + var progress = swiper.progress; + var snapGrid = swiper.snapGrid; + $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each(function (index, el) { + swiper.parallax.setTransform(el, progress); + }); + slides.each(function (slideIndex, slideEl) { + var slideProgress = slideEl.progress; + if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { + slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1)); + } + slideProgress = Math.min(Math.max(slideProgress, -1), 1); + $$1(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each(function (index, el) { + swiper.parallax.setTransform(el, slideProgress); + }); + }); + }, + setTransition: function setTransition(duration) { + if ( duration === void 0 ) duration = this.params.speed; + + var swiper = this; + var $el = swiper.$el; + $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]') + .each(function (index, parallaxEl) { + var $parallaxEl = $$1(parallaxEl); + var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; + if (duration === 0) { parallaxDuration = 0; } + $parallaxEl.transition(parallaxDuration); + }); + }, +}; + +var Parallax$1 = { + name: 'parallax', + params: { + parallax: { + enabled: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + parallax: { + setTransform: Parallax.setTransform.bind(swiper), + setTranslate: Parallax.setTranslate.bind(swiper), + setTransition: Parallax.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (!swiper.params.parallax.enabled) { return; } + swiper.params.watchSlidesProgress = true; + }, + init: function init() { + var swiper = this; + if (!swiper.params.parallax) { return; } + swiper.parallax.setTranslate(); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (!swiper.params.parallax) { return; } + swiper.parallax.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (!swiper.params.parallax) { return; } + swiper.parallax.setTransition(duration); + }, + }, +}; + +var Zoom = { + // Calc Scale From Multi-touches + getDistanceBetweenTouches: function getDistanceBetweenTouches(e) { + if (e.targetTouches.length < 2) { return 1; } + var x1 = e.targetTouches[0].pageX; + var y1 = e.targetTouches[0].pageY; + var x2 = e.targetTouches[1].pageX; + var y2 = e.targetTouches[1].pageY; + var distance = Math.sqrt((Math.pow( (x2 - x1), 2 )) + (Math.pow( (y2 - y1), 2 ))); + return distance; + }, + // Events + onGestureStart: function onGestureStart(e) { + var swiper = this; + var params = swiper.params.zoom; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + if (!Support.gestures) { + if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureTouched = true; + gesture.scaleStart = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$slideEl || !gesture.$slideEl.length) { + gesture.$slideEl = $$1(e.target).closest('.swiper-slide'); + if (gesture.$slideEl.length === 0) { gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); } + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass))); + gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (gesture.$imageWrapEl.length === 0) { + gesture.$imageEl = undefined; + return; + } + } + gesture.$imageEl.transition(0); + swiper.zoom.isScaling = true; + }, + onGestureChange: function onGestureChange(e) { + var swiper = this; + var params = swiper.params.zoom; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + if (!Support.gestures) { + if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureMoved = true; + gesture.scaleMove = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + if (Support.gestures) { + swiper.zoom.scale = e.scale * zoom.currentScale; + } else { + zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale; + } + if (zoom.scale > gesture.maxRatio) { + zoom.scale = (gesture.maxRatio - 1) + (Math.pow( ((zoom.scale - gesture.maxRatio) + 1), 0.5 )); + } + if (zoom.scale < params.minRatio) { + zoom.scale = (params.minRatio + 1) - (Math.pow( ((params.minRatio - zoom.scale) + 1), 0.5 )); + } + gesture.$imageEl.transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")")); + }, + onGestureEnd: function onGestureEnd(e) { + var swiper = this; + var params = swiper.params.zoom; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + if (!Support.gestures) { + if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) { + return; + } + if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) { + return; + } + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); + gesture.$imageEl.transition(swiper.params.speed).transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")")); + zoom.currentScale = zoom.scale; + zoom.isScaling = false; + if (zoom.scale === 1) { gesture.$slideEl = undefined; } + }, + onTouchStart: function onTouchStart(e) { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + if (image.isTouched) { return; } + if (Device.android) { e.preventDefault(); } + image.isTouched = true; + image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + }, + onTouchMove: function onTouchMove(e) { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + var velocity = zoom.velocity; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + swiper.allowClick = false; + if (!image.isTouched || !gesture.$slideEl) { return; } + + if (!image.isMoved) { + image.width = gesture.$imageEl[0].offsetWidth; + image.height = gesture.$imageEl[0].offsetHeight; + image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0; + image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0; + gesture.slideWidth = gesture.$slideEl[0].offsetWidth; + gesture.slideHeight = gesture.$slideEl[0].offsetHeight; + gesture.$imageWrapEl.transition(0); + if (swiper.rtl) { image.startX = -image.startX; } + if (swiper.rtl) { image.startY = -image.startY; } + } + // Define if we need image drag + var scaledWidth = image.width * zoom.scale; + var scaledHeight = image.height * zoom.scale; + + if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) { return; } + + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + + image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + + if (!image.isMoved && !zoom.isScaling) { + if ( + swiper.isHorizontal() && + ( + (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x) || + (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x) + ) + ) { + image.isTouched = false; + return; + } else if ( + !swiper.isHorizontal() && + ( + (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y) || + (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y) + ) + ) { + image.isTouched = false; + return; + } + } + e.preventDefault(); + e.stopPropagation(); + + image.isMoved = true; + image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX; + image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY; + + if (image.currentX < image.minX) { + image.currentX = (image.minX + 1) - (Math.pow( ((image.minX - image.currentX) + 1), 0.8 )); + } + if (image.currentX > image.maxX) { + image.currentX = (image.maxX - 1) + (Math.pow( ((image.currentX - image.maxX) + 1), 0.8 )); + } + + if (image.currentY < image.minY) { + image.currentY = (image.minY + 1) - (Math.pow( ((image.minY - image.currentY) + 1), 0.8 )); + } + if (image.currentY > image.maxY) { + image.currentY = (image.maxY - 1) + (Math.pow( ((image.currentY - image.maxY) + 1), 0.8 )); + } + + // Velocity + if (!velocity.prevPositionX) { velocity.prevPositionX = image.touchesCurrent.x; } + if (!velocity.prevPositionY) { velocity.prevPositionY = image.touchesCurrent.y; } + if (!velocity.prevTime) { velocity.prevTime = Date.now(); } + velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; + velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; + if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) { velocity.x = 0; } + if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) { velocity.y = 0; } + velocity.prevPositionX = image.touchesCurrent.x; + velocity.prevPositionY = image.touchesCurrent.y; + velocity.prevTime = Date.now(); + + gesture.$imageWrapEl.transform(("translate3d(" + (image.currentX) + "px, " + (image.currentY) + "px,0)")); + }, + onTouchEnd: function onTouchEnd() { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + var velocity = zoom.velocity; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + if (!image.isTouched || !image.isMoved) { + image.isTouched = false; + image.isMoved = false; + return; + } + image.isTouched = false; + image.isMoved = false; + var momentumDurationX = 300; + var momentumDurationY = 300; + var momentumDistanceX = velocity.x * momentumDurationX; + var newPositionX = image.currentX + momentumDistanceX; + var momentumDistanceY = velocity.y * momentumDurationY; + var newPositionY = image.currentY + momentumDistanceY; + + // Fix duration + if (velocity.x !== 0) { momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); } + if (velocity.y !== 0) { momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); } + var momentumDuration = Math.max(momentumDurationX, momentumDurationY); + + image.currentX = newPositionX; + image.currentY = newPositionY; + + // Define if we need image drag + var scaledWidth = image.width * zoom.scale; + var scaledHeight = image.height * zoom.scale; + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); + image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); + + gesture.$imageWrapEl.transition(momentumDuration).transform(("translate3d(" + (image.currentX) + "px, " + (image.currentY) + "px,0)")); + }, + onTransitionEnd: function onTransitionEnd() { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { + gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); + gesture.$imageWrapEl.transform('translate3d(0,0,0)'); + gesture.$slideEl = undefined; + gesture.$imageEl = undefined; + gesture.$imageWrapEl = undefined; + + zoom.scale = 1; + zoom.currentScale = 1; + } + }, + // Toggle Zoom + toggle: function toggle(e) { + var swiper = this; + var zoom = swiper.zoom; + + if (zoom.scale && zoom.scale !== 1) { + // Zoom Out + zoom.out(); + } else { + // Zoom In + zoom.in(e); + } + }, + in: function in$1(e) { + var swiper = this; + + var zoom = swiper.zoom; + var params = swiper.params.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + + if (!gesture.$slideEl) { + gesture.$slideEl = swiper.clickedSlide ? $$1(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass))); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + + gesture.$slideEl.addClass(("" + (params.zoomedSlideClass))); + + var touchX; + var touchY; + var offsetX; + var offsetY; + var diffX; + var diffY; + var translateX; + var translateY; + var imageWidth; + var imageHeight; + var scaledWidth; + var scaledHeight; + var translateMinX; + var translateMinY; + var translateMaxX; + var translateMaxY; + var slideWidth; + var slideHeight; + + if (typeof image.touchesStart.x === 'undefined' && e) { + touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; + touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; + } else { + touchX = image.touchesStart.x; + touchY = image.touchesStart.y; + } + + zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (e) { + slideWidth = gesture.$slideEl[0].offsetWidth; + slideHeight = gesture.$slideEl[0].offsetHeight; + offsetX = gesture.$slideEl.offset().left; + offsetY = gesture.$slideEl.offset().top; + diffX = (offsetX + (slideWidth / 2)) - touchX; + diffY = (offsetY + (slideHeight / 2)) - touchY; + + imageWidth = gesture.$imageEl[0].offsetWidth; + imageHeight = gesture.$imageEl[0].offsetHeight; + scaledWidth = imageWidth * zoom.scale; + scaledHeight = imageHeight * zoom.scale; + + translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0); + translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0); + translateMaxX = -translateMinX; + translateMaxY = -translateMinY; + + translateX = diffX * zoom.scale; + translateY = diffY * zoom.scale; + + if (translateX < translateMinX) { + translateX = translateMinX; + } + if (translateX > translateMaxX) { + translateX = translateMaxX; + } + + if (translateY < translateMinY) { + translateY = translateMinY; + } + if (translateY > translateMaxY) { + translateY = translateMaxY; + } + } else { + translateX = 0; + translateY = 0; + } + gesture.$imageWrapEl.transition(300).transform(("translate3d(" + translateX + "px, " + translateY + "px,0)")); + gesture.$imageEl.transition(300).transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")")); + }, + out: function out() { + var swiper = this; + + var zoom = swiper.zoom; + var params = swiper.params.zoom; + var gesture = zoom.gesture; + + if (!gesture.$slideEl) { + gesture.$slideEl = swiper.clickedSlide ? $$1(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); + gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass))); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + + zoom.scale = 1; + zoom.currentScale = 1; + gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); + gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); + gesture.$slideEl.removeClass(("" + (params.zoomedSlideClass))); + gesture.$slideEl = undefined; + }, + // Attach/Detach Events + enable: function enable() { + var swiper = this; + var zoom = swiper.zoom; + if (zoom.enabled) { return; } + zoom.enabled = true; + + var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); + } + + // Move image + swiper.$wrapperEl.on(swiper.touchEvents.move, ("." + (swiper.params.zoom.containerClass)), zoom.onTouchMove); + }, + disable: function disable() { + var swiper = this; + var zoom = swiper.zoom; + if (!zoom.enabled) { return; } + + swiper.zoom.enabled = false; + + var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); + } + + // Move image + swiper.$wrapperEl.off(swiper.touchEvents.move, ("." + (swiper.params.zoom.containerClass)), zoom.onTouchMove); + }, +}; + +var Zoom$1 = { + name: 'zoom', + params: { + zoom: { + enabled: false, + maxRatio: 3, + minRatio: 1, + toggle: true, + containerClass: 'swiper-zoom-container', + zoomedSlideClass: 'swiper-slide-zoomed', + }, + }, + create: function create() { + var swiper = this; + var zoom = { + enabled: false, + scale: 1, + currentScale: 1, + isScaling: false, + gesture: { + $slideEl: undefined, + slideWidth: undefined, + slideHeight: undefined, + $imageEl: undefined, + $imageWrapEl: undefined, + maxRatio: 3, + }, + image: { + isTouched: undefined, + isMoved: undefined, + currentX: undefined, + currentY: undefined, + minX: undefined, + minY: undefined, + maxX: undefined, + maxY: undefined, + width: undefined, + height: undefined, + startX: undefined, + startY: undefined, + touchesStart: {}, + touchesCurrent: {}, + }, + velocity: { + x: undefined, + y: undefined, + prevPositionX: undefined, + prevPositionY: undefined, + prevTime: undefined, + }, + }; + ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) { + zoom[methodName] = Zoom[methodName].bind(swiper); + }); + Utils.extend(swiper, { + zoom: zoom, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.zoom.enabled) { + swiper.zoom.enable(); + } + }, + destroy: function destroy() { + var swiper = this; + swiper.zoom.disable(); + }, + touchStart: function touchStart(e) { + var swiper = this; + if (!swiper.zoom.enabled) { return; } + swiper.zoom.onTouchStart(e); + }, + touchEnd: function touchEnd(e) { + var swiper = this; + if (!swiper.zoom.enabled) { return; } + swiper.zoom.onTouchEnd(e); + }, + doubleTap: function doubleTap(e) { + var swiper = this; + if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { + swiper.zoom.toggle(e); + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.zoom.enabled && swiper.params.zoom.enabled) { + swiper.zoom.onTransitionEnd(); + } + }, + }, +}; + +var Lazy = { + loadInSlide: function loadInSlide(index, loadInDuplicate) { + if ( loadInDuplicate === void 0 ) loadInDuplicate = true; + + var swiper = this; + var params = swiper.params.lazy; + if (typeof index === 'undefined') { return; } + if (swiper.slides.length === 0) { return; } + var isVirtual = swiper.virtual && swiper.params.virtual.enabled; + + var $slideEl = isVirtual + ? swiper.$wrapperEl.children(("." + (swiper.params.slideClass) + "[data-swiper-slide-index=\"" + index + "\"]")) + : swiper.slides.eq(index); + + var $images = $slideEl.find(("." + (params.elementClass) + ":not(." + (params.loadedClass) + "):not(." + (params.loadingClass) + ")")); + if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { + $images = $images.add($slideEl[0]); + } + if ($images.length === 0) { return; } + + $images.each(function (imageIndex, imageEl) { + var $imageEl = $$1(imageEl); + $imageEl.addClass(params.loadingClass); + + var background = $imageEl.attr('data-background'); + var src = $imageEl.attr('data-src'); + var srcset = $imageEl.attr('data-srcset'); + var sizes = $imageEl.attr('data-sizes'); + + swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, function () { + if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) { return; } + if (background) { + $imageEl.css('background-image', ("url(\"" + background + "\")")); + $imageEl.removeAttr('data-background'); + } else { + if (srcset) { + $imageEl.attr('srcset', srcset); + $imageEl.removeAttr('data-srcset'); + } + if (sizes) { + $imageEl.attr('sizes', sizes); + $imageEl.removeAttr('data-sizes'); + } + if (src) { + $imageEl.attr('src', src); + $imageEl.removeAttr('data-src'); + } + } + + $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); + $slideEl.find(("." + (params.preloaderClass))).remove(); + if (swiper.params.loop && loadInDuplicate) { + var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); + if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { + var originalSlide = swiper.$wrapperEl.children(("[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]:not(." + (swiper.params.slideDuplicateClass) + ")")); + swiper.lazy.loadInSlide(originalSlide.index(), false); + } else { + var duplicatedSlide = swiper.$wrapperEl.children(("." + (swiper.params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]")); + swiper.lazy.loadInSlide(duplicatedSlide.index(), false); + } + } + swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]); + }); + + swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]); + }); + }, + load: function load() { + var swiper = this; + var $wrapperEl = swiper.$wrapperEl; + var swiperParams = swiper.params; + var slides = swiper.slides; + var activeIndex = swiper.activeIndex; + var isVirtual = swiper.virtual && swiperParams.virtual.enabled; + var params = swiperParams.lazy; + + var slidesPerView = swiperParams.slidesPerView; + if (slidesPerView === 'auto') { + slidesPerView = 0; + } + + function slideExist(index) { + if (isVirtual) { + if ($wrapperEl.children(("." + (swiperParams.slideClass) + "[data-swiper-slide-index=\"" + index + "\"]")).length) { + return true; + } + } else if (slides[index]) { return true; } + return false; + } + function slideIndex(slideEl) { + if (isVirtual) { + return $$1(slideEl).attr('data-swiper-slide-index'); + } + return $$1(slideEl).index(); + } + + if (!swiper.lazy.initialImageLoaded) { swiper.lazy.initialImageLoaded = true; } + if (swiper.params.watchSlidesVisibility) { + $wrapperEl.children(("." + (swiperParams.slideVisibleClass))).each(function (elIndex, slideEl) { + var index = isVirtual ? $$1(slideEl).attr('data-swiper-slide-index') : $$1(slideEl).index(); + swiper.lazy.loadInSlide(index); + }); + } else if (slidesPerView > 1) { + for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) { + if (slideExist(i)) { swiper.lazy.loadInSlide(i); } + } + } else { + swiper.lazy.loadInSlide(activeIndex); + } + if (params.loadPrevNext) { + if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) { + var amount = params.loadPrevNextAmount; + var spv = slidesPerView; + var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); + var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); + // Next Slides + for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) { + if (slideExist(i$1)) { swiper.lazy.loadInSlide(i$1); } + } + // Prev Slides + for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) { + if (slideExist(i$2)) { swiper.lazy.loadInSlide(i$2); } + } + } else { + var nextSlide = $wrapperEl.children(("." + (swiperParams.slideNextClass))); + if (nextSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(nextSlide)); } + + var prevSlide = $wrapperEl.children(("." + (swiperParams.slidePrevClass))); + if (prevSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(prevSlide)); } + } + } + }, +}; + +var Lazy$1 = { + name: 'lazy', + params: { + lazy: { + enabled: false, + loadPrevNext: false, + loadPrevNextAmount: 1, + loadOnTransitionStart: false, + + elementClass: 'swiper-lazy', + loadingClass: 'swiper-lazy-loading', + loadedClass: 'swiper-lazy-loaded', + preloaderClass: 'swiper-lazy-preloader', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + lazy: { + initialImageLoaded: false, + load: Lazy.load.bind(swiper), + loadInSlide: Lazy.loadInSlide.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.lazy.enabled && swiper.params.preloadImages) { + swiper.params.preloadImages = false; + } + }, + init: function init() { + var swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) { + swiper.lazy.load(); + } + }, + scroll: function scroll() { + var swiper = this; + if (swiper.params.freeMode && !swiper.params.freeModeSticky) { + swiper.lazy.load(); + } + }, + resize: function resize() { + var swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + scrollbarDragMove: function scrollbarDragMove() { + var swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + transitionStart: function transitionStart() { + var swiper = this; + if (swiper.params.lazy.enabled) { + if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) { + swiper.lazy.load(); + } + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { + swiper.lazy.load(); + } + }, + }, +}; + +/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ +var Controller = { + LinearSpline: function LinearSpline(x, y) { + var binarySearch = (function search() { + var maxIndex; + var minIndex; + var guess; + return function (array, val) { + minIndex = -1; + maxIndex = array.length; + while (maxIndex - minIndex > 1) { + guess = maxIndex + minIndex >> 1; + if (array[guess] <= val) { + minIndex = guess; + } else { + maxIndex = guess; + } + } + return maxIndex; + }; + }()); + this.x = x; + this.y = y; + this.lastIndex = x.length - 1; + // Given an x value (x2), return the expected y2 value: + // (x1,y1) is the known point before given value, + // (x3,y3) is the known point after given value. + var i1; + var i3; + + this.interpolate = function interpolate(x2) { + if (!x2) { return 0; } + + // Get the indexes of x1 and x3 (the array indexes before and after given x2): + i3 = binarySearch(this.x, x2); + i1 = i3 - 1; + + // We have our indexes i1 & i3, so we can calculate already: + // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 + return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1]; + }; + return this; + }, + // xxx: for now i will just save one spline function to to + getInterpolateFunction: function getInterpolateFunction(c) { + var swiper = this; + if (!swiper.controller.spline) { + swiper.controller.spline = swiper.params.loop ? + new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : + new Controller.LinearSpline(swiper.snapGrid, c.snapGrid); + } + }, + setTranslate: function setTranslate(setTranslate$1, byController) { + var swiper = this; + var controlled = swiper.controller.control; + var multiplier; + var controlledTranslate; + function setControlledTranslate(c) { + // this will create an Interpolate function based on the snapGrids + // x is the Grid of the scrolled scroller and y will be the controlled scroller + // it makes sense to create this only once and recall it for the interpolation + // the function does a lot of value caching for performance + var translate = c.rtl && c.params.direction === 'horizontal' ? -swiper.translate : swiper.translate; + if (swiper.params.controller.by === 'slide') { + swiper.controller.getInterpolateFunction(c); + // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid + // but it did not work out + controlledTranslate = -swiper.controller.spline.interpolate(-translate); + } + + if (!controlledTranslate || swiper.params.controller.by === 'container') { + multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); + controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate(); + } + + if (swiper.params.controller.inverse) { + controlledTranslate = c.maxTranslate() - controlledTranslate; + } + c.updateProgress(controlledTranslate); + c.setTranslate(controlledTranslate, swiper); + c.updateActiveIndex(); + c.updateSlidesClasses(); + } + if (Array.isArray(controlled)) { + for (var i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) { + setControlledTranslate(controlled[i]); + } + } + } else if (controlled instanceof Swiper$1 && byController !== controlled) { + setControlledTranslate(controlled); + } + }, + setTransition: function setTransition(duration, byController) { + var swiper = this; + var controlled = swiper.controller.control; + var i; + function setControlledTransition(c) { + c.setTransition(duration, swiper); + if (duration !== 0) { + c.transitionStart(); + c.$wrapperEl.transitionEnd(function () { + if (!controlled) { return; } + if (c.params.loop && swiper.params.controller.by === 'slide') { + c.loopFix(); + } + c.transitionEnd(); + }); + } + } + if (Array.isArray(controlled)) { + for (i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) { + setControlledTransition(controlled[i]); + } + } + } else if (controlled instanceof Swiper$1 && byController !== controlled) { + setControlledTransition(controlled); + } + }, +}; +var Controller$1 = { + name: 'controller', + params: { + controller: { + control: undefined, + inverse: false, + by: 'slide', // or 'container' + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + controller: { + control: swiper.params.controller.control, + getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper), + setTranslate: Controller.setTranslate.bind(swiper), + setTransition: Controller.setTransition.bind(swiper), + }, + }); + }, + on: { + update: function update() { + var swiper = this; + if (!swiper.controller.control) { return; } + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + resize: function resize() { + var swiper = this; + if (!swiper.controller.control) { return; } + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + observerUpdate: function observerUpdate() { + var swiper = this; + if (!swiper.controller.control) { return; } + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + setTranslate: function setTranslate(translate, byController) { + var swiper = this; + if (!swiper.controller.control) { return; } + swiper.controller.setTranslate(translate, byController); + }, + setTransition: function setTransition(duration, byController) { + var swiper = this; + if (!swiper.controller.control) { return; } + swiper.controller.setTransition(duration, byController); + }, + }, +}; + +var a11y = { + makeElFocusable: function makeElFocusable($el) { + $el.attr('tabIndex', '0'); + return $el; + }, + addElRole: function addElRole($el, role) { + $el.attr('role', role); + return $el; + }, + addElLabel: function addElLabel($el, label) { + $el.attr('aria-label', label); + return $el; + }, + disableEl: function disableEl($el) { + $el.attr('aria-disabled', true); + return $el; + }, + enableEl: function enableEl($el) { + $el.attr('aria-disabled', false); + return $el; + }, + onEnterKey: function onEnterKey(e) { + var swiper = this; + var params = swiper.params.a11y; + if (e.keyCode !== 13) { return; } + var $targetEl = $$1(e.target); + if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { + if (!(swiper.isEnd && !swiper.params.loop)) { + swiper.slideNext(); + } + if (swiper.isEnd) { + swiper.a11y.notify(params.lastSlideMessage); + } else { + swiper.a11y.notify(params.nextSlideMessage); + } + } + if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { + if (!(swiper.isBeginning && !swiper.params.loop)) { + swiper.slidePrev(); + } + if (swiper.isBeginning) { + swiper.a11y.notify(params.firstSlideMessage); + } else { + swiper.a11y.notify(params.prevSlideMessage); + } + } + if (swiper.pagination && $targetEl.is(("." + (swiper.params.pagination.bulletClass)))) { + $targetEl[0].click(); + } + }, + notify: function notify(message) { + var swiper = this; + var notification = swiper.a11y.liveRegion; + if (notification.length === 0) { return; } + notification.html(''); + notification.html(message); + }, + updateNavigation: function updateNavigation() { + var swiper = this; + + if (swiper.params.loop) { return; } + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + swiper.a11y.disableEl($prevEl); + } else { + swiper.a11y.enableEl($prevEl); + } + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + swiper.a11y.disableEl($nextEl); + } else { + swiper.a11y.enableEl($nextEl); + } + } + }, + updatePagination: function updatePagination() { + var swiper = this; + var params = swiper.params.a11y; + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.bullets.each(function (bulletIndex, bulletEl) { + var $bulletEl = $$1(bulletEl); + swiper.a11y.makeElFocusable($bulletEl); + swiper.a11y.addElRole($bulletEl, 'button'); + swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1)); + }); + } + }, + init: function init() { + var swiper = this; + + swiper.$el.append(swiper.a11y.liveRegion); + + // Navigation + var params = swiper.params.a11y; + var $nextEl; + var $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + swiper.a11y.makeElFocusable($nextEl); + swiper.a11y.addElRole($nextEl, 'button'); + swiper.a11y.addElLabel($nextEl, params.nextSlideMessage); + $nextEl.on('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + swiper.a11y.makeElFocusable($prevEl); + swiper.a11y.addElRole($prevEl, 'button'); + swiper.a11y.addElLabel($prevEl, params.prevSlideMessage); + $prevEl.on('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.on('keydown', ("." + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) { swiper.a11y.liveRegion.remove(); } + + var $nextEl; + var $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + $nextEl.off('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + $prevEl.off('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.off('keydown', ("." + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey); + } + }, +}; +var A11y = { + name: 'a11y', + params: { + a11y: { + enabled: false, + notificationClass: 'swiper-notification', + prevSlideMessage: 'Previous slide', + nextSlideMessage: 'Next slide', + firstSlideMessage: 'This is the first slide', + lastSlideMessage: 'This is the last slide', + paginationBulletMessage: 'Go to slide {{index}}', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + a11y: { + liveRegion: $$1(("")), + }, + }); + Object.keys(a11y).forEach(function (methodName) { + swiper.a11y[methodName] = a11y[methodName].bind(swiper); + }); + }, + on: { + init: function init() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.init(); + swiper.a11y.updateNavigation(); + }, + toEdge: function toEdge() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.updateNavigation(); + }, + fromEdge: function fromEdge() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.updateNavigation(); + }, + paginationUpdate: function paginationUpdate() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.updatePagination(); + }, + destroy: function destroy() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.destroy(); + }, + }, +}; + +var History = { + init: function init() { + var swiper = this; + if (!swiper.params.history) { return; } + if (!win.history || !win.history.pushState) { + swiper.params.history.enabled = false; + swiper.params.hashNavigation.enabled = true; + return; + } + var history = swiper.history; + history.initialized = true; + history.paths = History.getPathValues(); + if (!history.paths.key && !history.paths.value) { return; } + history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit); + if (!swiper.params.history.replaceState) { + win.addEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + destroy: function destroy() { + var swiper = this; + if (!swiper.params.history.replaceState) { + win.removeEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + setHistoryPopState: function setHistoryPopState() { + var swiper = this; + swiper.history.paths = History.getPathValues(); + swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false); + }, + getPathValues: function getPathValues() { + var pathArray = win.location.pathname.slice(1).split('/').filter(function (part) { return part !== ''; }); + var total = pathArray.length; + var key = pathArray[total - 2]; + var value = pathArray[total - 1]; + return { key: key, value: value }; + }, + setHistory: function setHistory(key, index) { + var swiper = this; + if (!swiper.history.initialized || !swiper.params.history.enabled) { return; } + var slide = swiper.slides.eq(index); + var value = History.slugify(slide.attr('data-history')); + if (!win.location.pathname.includes(key)) { + value = key + "/" + value; + } + var currentState = win.history.state; + if (currentState && currentState.value === value) { + return; + } + if (swiper.params.history.replaceState) { + win.history.replaceState({ value: value }, null, value); + } else { + win.history.pushState({ value: value }, null, value); + } + }, + slugify: function slugify(text) { + return text.toString().toLowerCase() + .replace(/\s+/g, '-') + .replace(/[^\w-]+/g, '') + .replace(/--+/g, '-') + .replace(/^-+/, '') + .replace(/-+$/, ''); + }, + scrollToSlide: function scrollToSlide(speed, value, runCallbacks) { + var swiper = this; + if (value) { + for (var i = 0, length = swiper.slides.length; i < length; i += 1) { + var slide = swiper.slides.eq(i); + var slideHistory = History.slugify(slide.attr('data-history')); + if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) { + var index = slide.index(); + swiper.slideTo(index, speed, runCallbacks); + } + } + } else { + swiper.slideTo(0, speed, runCallbacks); + } + }, +}; + +var History$1 = { + name: 'history', + params: { + history: { + enabled: false, + replaceState: false, + key: 'slides', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + history: { + init: History.init.bind(swiper), + setHistory: History.setHistory.bind(swiper), + setHistoryPopState: History.setHistoryPopState.bind(swiper), + scrollToSlide: History.scrollToSlide.bind(swiper), + destroy: History.destroy.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.history.enabled) { + swiper.history.init(); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.params.history.enabled) { + swiper.history.destroy(); + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.history.initialized) { + swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); + } + }, + }, +}; + +var HashNavigation = { + onHashCange: function onHashCange() { + var swiper = this; + var newHash = doc.location.hash.replace('#', ''); + var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); + if (newHash !== activeSlideHash) { + swiper.slideTo(swiper.$wrapperEl.children(("." + (swiper.params.slideClass) + "[data-hash=\"" + newHash + "\"]")).index()); + } + }, + setHash: function setHash() { + var swiper = this; + if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) { return; } + if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) { + win.history.replaceState(null, null, (("#" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || '')); + } else { + var slide = swiper.slides.eq(swiper.activeIndex); + var hash = slide.attr('data-hash') || slide.attr('data-history'); + doc.location.hash = hash || ''; + } + }, + init: function init() { + var swiper = this; + if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) { return; } + swiper.hashNavigation.initialized = true; + var hash = doc.location.hash.replace('#', ''); + if (hash) { + var speed = 0; + for (var i = 0, length = swiper.slides.length; i < length; i += 1) { + var slide = swiper.slides.eq(i); + var slideHash = slide.attr('data-hash') || slide.attr('data-history'); + if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) { + var index = slide.index(); + swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true); + } + } + } + if (swiper.params.hashNavigation.watchState) { + $$1(win).on('hashchange', swiper.hashNavigation.onHashCange); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.params.hashNavigation.watchState) { + $$1(win).off('hashchange', swiper.hashNavigation.onHashCange); + } + }, +}; +var HashNavigation$1 = { + name: 'hash-navigation', + params: { + hashNavigation: { + enabled: false, + replaceState: false, + watchState: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + hashNavigation: { + initialized: false, + init: HashNavigation.init.bind(swiper), + destroy: HashNavigation.destroy.bind(swiper), + setHash: HashNavigation.setHash.bind(swiper), + onHashCange: HashNavigation.onHashCange.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.init(); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.destroy(); + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.hashNavigation.initialized) { + swiper.hashNavigation.setHash(); + } + }, + }, +}; + +var Autoplay = { + run: function run() { + var swiper = this; + var $activeSlideEl = swiper.slides.eq(swiper.activeIndex); + var delay = swiper.params.autoplay.delay; + if ($activeSlideEl.attr('data-swiper-autoplay')) { + delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; + } + swiper.autoplay.timeout = Utils.nextTick(function () { + if (swiper.params.autoplay.reverseDirection) { + if (swiper.params.loop) { + swiper.loopFix(); + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isBeginning) { + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + } else if (swiper.params.loop) { + swiper.loopFix(); + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isEnd) { + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(0, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + }, delay); + }, + start: function start() { + var swiper = this; + if (typeof swiper.autoplay.timeout !== 'undefined') { return false; } + if (swiper.autoplay.running) { return false; } + swiper.autoplay.running = true; + swiper.emit('autoplayStart'); + swiper.autoplay.run(); + return true; + }, + stop: function stop() { + var swiper = this; + if (!swiper.autoplay.running) { return false; } + if (typeof swiper.autoplay.timeout === 'undefined') { return false; } + + if (swiper.autoplay.timeout) { + clearTimeout(swiper.autoplay.timeout); + swiper.autoplay.timeout = undefined; + } + swiper.autoplay.running = false; + swiper.emit('autoplayStop'); + return true; + }, + pause: function pause(speed) { + var swiper = this; + if (!swiper.autoplay.running) { return; } + if (swiper.autoplay.paused) { return; } + if (swiper.autoplay.timeout) { clearTimeout(swiper.autoplay.timeout); } + swiper.autoplay.paused = true; + if (speed === 0 || !swiper.params.autoplay.waitForTransition) { + swiper.autoplay.paused = false; + swiper.autoplay.run(); + } else { + swiper.$wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed) { return; } + swiper.autoplay.paused = false; + if (!swiper.autoplay.running) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.run(); + } + }); + } + }, +}; + +var Autoplay$1 = { + name: 'autoplay', + params: { + autoplay: { + enabled: false, + delay: 3000, + waitForTransition: true, + disableOnInteraction: true, + stopOnLastSlide: false, + reverseDirection: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + autoplay: { + running: false, + paused: false, + run: Autoplay.run.bind(swiper), + start: Autoplay.start.bind(swiper), + stop: Autoplay.stop.bind(swiper), + pause: Autoplay.pause.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.autoplay.enabled) { + swiper.autoplay.start(); + } + }, + beforeTransitionStart: function beforeTransitionStart(speed, internal) { + var swiper = this; + if (swiper.autoplay.running) { + if (internal || !swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.pause(speed); + } else { + swiper.autoplay.stop(); + } + } + }, + sliderFirstMove: function sliderFirstMove() { + var swiper = this; + if (swiper.autoplay.running) { + if (swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.pause(); + } + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.autoplay.running) { + swiper.autoplay.stop(); + } + }, + }, +}; + +var Fade = { + setTranslate: function setTranslate() { + var swiper = this; + var slides = swiper.slides; + for (var i = 0; i < slides.length; i += 1) { + var $slideEl = swiper.slides.eq(i); + var offset = $slideEl[0].swiperSlideOffset; + var tx = -offset; + if (!swiper.params.virtualTranslate) { tx -= swiper.translate; } + var ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + } + var slideOpacity = swiper.params.fadeEffect.crossFade ? + Math.max(1 - Math.abs($slideEl[0].progress), 0) : + 1 + Math.min(Math.max($slideEl[0].progress, -1), 0); + $slideEl + .css({ + opacity: slideOpacity, + }) + .transform(("translate3d(" + tx + "px, " + ty + "px, 0px)")); + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + var slides = swiper.slides; + var $wrapperEl = swiper.$wrapperEl; + slides.transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + var eventTriggered = false; + slides.transitionEnd(function () { + if (eventTriggered) { return; } + if (!swiper || swiper.destroyed) { return; } + eventTriggered = true; + swiper.animating = false; + var triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (var i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, +}; + +var EffectFade = { + name: 'effect-fade', + params: { + fadeEffect: { + crossFade: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + fadeEffect: { + setTranslate: Fade.setTranslate.bind(swiper), + setTransition: Fade.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'fade') { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "fade")); + var overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'fade') { return; } + swiper.fadeEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'fade') { return; } + swiper.fadeEffect.setTransition(duration); + }, + }, +}; + +var Cube = { + setTranslate: function setTranslate() { + var swiper = this; + var $el = swiper.$el; + var $wrapperEl = swiper.$wrapperEl; + var slides = swiper.slides; + var swiperWidth = swiper.width; + var swiperHeight = swiper.height; + var rtl = swiper.rtl; + var swiperSize = swiper.size; + var params = swiper.params.cubeEffect; + var isHorizontal = swiper.isHorizontal(); + var isVirtual = swiper.virtual && swiper.params.virtual.enabled; + var wrapperRotate = 0; + var $cubeShadowEl; + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $$1('
    '); + $wrapperEl.append($cubeShadowEl); + } + $cubeShadowEl.css({ height: (swiperWidth + "px") }); + } else { + $cubeShadowEl = $el.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $$1('
    '); + $el.append($cubeShadowEl); + } + } + } + for (var i = 0; i < slides.length; i += 1) { + var $slideEl = slides.eq(i); + var slideIndex = i; + if (isVirtual) { + slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); + } + var slideAngle = slideIndex * 90; + var round = Math.floor(slideAngle / 360); + if (rtl) { + slideAngle = -slideAngle; + round = Math.floor(-slideAngle / 360); + } + var progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + var tx = 0; + var ty = 0; + var tz = 0; + if (slideIndex % 4 === 0) { + tx = -round * 4 * swiperSize; + tz = 0; + } else if ((slideIndex - 1) % 4 === 0) { + tx = 0; + tz = -round * 4 * swiperSize; + } else if ((slideIndex - 2) % 4 === 0) { + tx = swiperSize + (round * 4 * swiperSize); + tz = swiperSize; + } else if ((slideIndex - 3) % 4 === 0) { + tx = -swiperSize; + tz = (3 * swiperSize) + (swiperSize * 4 * round); + } + if (rtl) { + tx = -tx; + } + + if (!isHorizontal) { + ty = tx; + tx = 0; + } + + var transform = "rotateX(" + (isHorizontal ? 0 : -slideAngle) + "deg) rotateY(" + (isHorizontal ? slideAngle : 0) + "deg) translate3d(" + tx + "px, " + ty + "px, " + tz + "px)"; + if (progress <= 1 && progress > -1) { + wrapperRotate = (slideIndex * 90) + (progress * 90); + if (rtl) { wrapperRotate = (-slideIndex * 90) - (progress * 90); } + } + $slideEl.transform(transform); + if (params.slideShadows) { + // Set shadows + var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $$1(("
    ")); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $$1(("
    ")); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); } + if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); } + } + } + $wrapperEl.css({ + '-webkit-transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + '-moz-transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + '-ms-transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + 'transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + }); + + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl.transform(("translate3d(0px, " + ((swiperWidth / 2) + params.shadowOffset) + "px, " + (-swiperWidth / 2) + "px) rotateX(90deg) rotateZ(0deg) scale(" + (params.shadowScale) + ")")); + } else { + var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90); + var multiplier = 1.5 - ( + (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2) + + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2) + ); + var scale1 = params.shadowScale; + var scale2 = params.shadowScale / multiplier; + var offset = params.shadowOffset; + $cubeShadowEl.transform(("scale3d(" + scale1 + ", 1, " + scale2 + ") translate3d(0px, " + ((swiperHeight / 2) + offset) + "px, " + (-swiperHeight / 2 / scale2) + "px) rotateX(-90deg)")); + } + } + var zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0; + $wrapperEl + .transform(("translate3d(0px,0," + zFactor + "px) rotateX(" + (swiper.isHorizontal() ? 0 : wrapperRotate) + "deg) rotateY(" + (swiper.isHorizontal() ? -wrapperRotate : 0) + "deg)")); + }, + setTransition: function setTransition(duration) { + var swiper = this; + var $el = swiper.$el; + var slides = swiper.slides; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { + $el.find('.swiper-cube-shadow').transition(duration); + } + }, +}; + +var EffectCube = { + name: 'effect-cube', + params: { + cubeEffect: { + slideShadows: true, + shadow: true, + shadowOffset: 20, + shadowScale: 0.94, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + cubeEffect: { + setTranslate: Cube.setTranslate.bind(swiper), + setTransition: Cube.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'cube') { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "cube")); + swiper.classNames.push(((swiper.params.containerModifierClass) + "3d")); + var overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + resistanceRatio: 0, + spaceBetween: 0, + centeredSlides: false, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'cube') { return; } + swiper.cubeEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'cube') { return; } + swiper.cubeEffect.setTransition(duration); + }, + }, +}; + +var Flip = { + setTranslate: function setTranslate() { + var swiper = this; + var slides = swiper.slides; + for (var i = 0; i < slides.length; i += 1) { + var $slideEl = slides.eq(i); + var progress = $slideEl[0].progress; + if (swiper.params.flipEffect.limitRotation) { + progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + } + var offset = $slideEl[0].swiperSlideOffset; + var rotate = -180 * progress; + var rotateY = rotate; + var rotateX = 0; + var tx = -offset; + var ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + rotateX = -rotateY; + rotateY = 0; + } else if (swiper.rtl) { + rotateY = -rotateY; + } + + $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; + + if (swiper.params.flipEffect.slideShadows) { + // Set shadows + var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $$1(("
    ")); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $$1(("
    ")); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); } + if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); } + } + $slideEl + .transform(("translate3d(" + tx + "px, " + ty + "px, 0px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)")); + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + var slides = swiper.slides; + var activeIndex = swiper.activeIndex; + var $wrapperEl = swiper.$wrapperEl; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + var eventTriggered = false; + // eslint-disable-next-line + slides.eq(activeIndex).transitionEnd(function onTransitionEnd() { + if (eventTriggered) { return; } + if (!swiper || swiper.destroyed) { return; } + // if (!$(this).hasClass(swiper.params.slideActiveClass)) return; + eventTriggered = true; + swiper.animating = false; + var triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (var i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, +}; + +var EffectFlip = { + name: 'effect-flip', + params: { + flipEffect: { + slideShadows: true, + limitRotation: true, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + flipEffect: { + setTranslate: Flip.setTranslate.bind(swiper), + setTransition: Flip.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'flip') { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "flip")); + swiper.classNames.push(((swiper.params.containerModifierClass) + "3d")); + var overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'flip') { return; } + swiper.flipEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'flip') { return; } + swiper.flipEffect.setTransition(duration); + }, + }, +}; + +var Coverflow = { + setTranslate: function setTranslate() { + var swiper = this; + var swiperWidth = swiper.width; + var swiperHeight = swiper.height; + var slides = swiper.slides; + var $wrapperEl = swiper.$wrapperEl; + var slidesSizesGrid = swiper.slidesSizesGrid; + var params = swiper.params.coverflowEffect; + var isHorizontal = swiper.isHorizontal(); + var transform = swiper.translate; + var center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2); + var rotate = isHorizontal ? params.rotate : -params.rotate; + var translate = params.depth; + // Each slide offset from center + for (var i = 0, length = slides.length; i < length; i += 1) { + var $slideEl = slides.eq(i); + var slideSize = slidesSizesGrid[i]; + var slideOffset = $slideEl[0].swiperSlideOffset; + var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier; + + var rotateY = isHorizontal ? rotate * offsetMultiplier : 0; + var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; + // var rotateZ = 0 + var translateZ = -translate * Math.abs(offsetMultiplier); + + var translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier); + var translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0; + + // Fix for ultra small values + if (Math.abs(translateX) < 0.001) { translateX = 0; } + if (Math.abs(translateY) < 0.001) { translateY = 0; } + if (Math.abs(translateZ) < 0.001) { translateZ = 0; } + if (Math.abs(rotateY) < 0.001) { rotateY = 0; } + if (Math.abs(rotateX) < 0.001) { rotateX = 0; } + + var slideTransform = "translate3d(" + translateX + "px," + translateY + "px," + translateZ + "px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)"; + + $slideEl.transform(slideTransform); + $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; + if (params.slideShadows) { + // Set shadows + var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if ($shadowBeforeEl.length === 0) { + $shadowBeforeEl = $$1(("
    ")); + $slideEl.append($shadowBeforeEl); + } + if ($shadowAfterEl.length === 0) { + $shadowAfterEl = $$1(("
    ")); + $slideEl.append($shadowAfterEl); + } + if ($shadowBeforeEl.length) { $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; } + if ($shadowAfterEl.length) { $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; } + } + } + + // Set correct perspective for IE10 + if (Support.pointerEvents || Support.prefixedPointerEvents) { + var ws = $wrapperEl[0].style; + ws.perspectiveOrigin = center + "px 50%"; + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + swiper.slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + }, +}; + +var EffectCoverflow = { + name: 'effect-coverflow', + params: { + coverflowEffect: { + rotate: 50, + stretch: 0, + depth: 100, + modifier: 1, + slideShadows: true, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + coverflowEffect: { + setTranslate: Coverflow.setTranslate.bind(swiper), + setTransition: Coverflow.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'coverflow') { return; } + + swiper.classNames.push(((swiper.params.containerModifierClass) + "coverflow")); + swiper.classNames.push(((swiper.params.containerModifierClass) + "3d")); + + swiper.params.watchSlidesProgress = true; + swiper.originalParams.watchSlidesProgress = true; + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'coverflow') { return; } + swiper.coverflowEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'coverflow') { return; } + swiper.coverflowEffect.setTransition(duration); + }, + }, +}; + +// Swiper Class +// Core Modules +var components = [ + Device$2, + Support$2, + Browser$2, + Resize, + Observer$1, + Virtual$1, + Keyboard$1, + Mousewheel$1, + Navigation$1, + Pagination$1, + Scrollbar$1, + Parallax$1, + Zoom$1, + Lazy$1, + Controller$1, + A11y, + History$1, + HashNavigation$1, + Autoplay$1, + EffectFade, + EffectCube, + EffectFlip, + EffectCoverflow +]; + +if (typeof Swiper$1.use === 'undefined') { + Swiper$1.use = Swiper$1.Class.use; + Swiper$1.installModule = Swiper$1.Class.installModule; +} + +Swiper$1.use(components); + +return Swiper$1; + +}))); diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js new file mode 100644 index 0000000..96d5ef9 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js @@ -0,0 +1,13 @@ +/** + * Swiper 4.1.6 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * http://www.idangero.us/swiper/ + * + * Copyright 2014-2018 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: February 11, 2018 + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Swiper=t()}(this,function(){"use strict";var e="undefined"==typeof document?{body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},location:{hash:""}}:document,t="undefined"==typeof window?{document:e,navigator:{userAgent:""},location:{},history:{},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){}}:window,i=function(e){for(var t=0;t=0&&d.indexOf(">")>=0){var h="div";for(0===d.indexOf(":~]/)?(a||e).querySelectorAll(s.trim()):[e.getElementById(s.trim().split("#")[1])],n=0;n0&&s[0].nodeType)for(n=0;n0}),this[o].dispatchEvent(l),this[o].dom7EventData=[],delete this[o].dom7EventData}return this},transitionEnd:function(e){var t,i=["webkitTransitionEnd","transitionend"],s=this;function a(r){if(r.target===this)for(e.call(this,r),t=0;t0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},offset:function(){if(this.length>0){var i=this[0],s=i.getBoundingClientRect(),a=e.body,r=i.clientTop||a.clientTop||0,n=i.clientLeft||a.clientLeft||0,o=i===t?t.scrollY:i.scrollTop,l=i===t?t.scrollX:i.scrollLeft;return{top:s.top+o-r,left:s.left+l-n}}return null},css:function(e,i){var s;if(1===arguments.length){if("string"!=typeof e){for(s=0;ss-1?[]:e<0?(t=s+e)<0?[]:[this[t]]:[this[e]])},append:function(){for(var t,s=[],a=arguments.length;a--;)s[a]=arguments[a];for(var r=0;r=0;a-=1)this[s].insertBefore(r.childNodes[a],this[s].childNodes[0])}else if(t instanceof i)for(a=0;a0?e?this[0].nextElementSibling&&s(this[0].nextElementSibling).is(e)?new i([this[0].nextElementSibling]):new i([]):this[0].nextElementSibling?new i([this[0].nextElementSibling]):new i([]):new i([])},nextAll:function(e){var t=[],a=this[0];if(!a)return new i([]);for(;a.nextElementSibling;){var r=a.nextElementSibling;e?s(r).is(e)&&t.push(r):t.push(r),a=r}return new i(t)},prev:function(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&s(t.previousElementSibling).is(e)?new i([t.previousElementSibling]):new i([]):t.previousElementSibling?new i([t.previousElementSibling]):new i([])}return new i([])},prevAll:function(e){var t=[],a=this[0];if(!a)return new i([]);for(;a.previousElementSibling;){var r=a.previousElementSibling;e?s(r).is(e)&&t.push(r):t.push(r),a=r}return new i(t)},parent:function(e){for(var t=[],i=0;i6&&(a=a.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),r=new t.WebKitCSSMatrix("none"===a?"":a)):s=(r=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===i&&(a=t.WebKitCSSMatrix?r.m41:16===s.length?parseFloat(s[12]):parseFloat(s[4])),"y"===i&&(a=t.WebKitCSSMatrix?r.m42:16===s.length?parseFloat(s[13]):parseFloat(s[5])),a||0},parseUrlQuery:function(e){var i,s,a,r,n={},o=e||t.location.href;if("string"==typeof o&&o.length)for(r=(s=(o=o.indexOf("?")>-1?o.replace(/\S*\?/,""):"").split("&").filter(function(e){return""!==e})).length,i=0;i0;)t[i]=arguments[i+1];var s=this;s.prototype.modules||(s.prototype.modules={});var a=e.name||Object.keys(s.prototype.modules).length+"_"+d.now();return s.prototype.modules[a]=e,e.proto&&Object.keys(e.proto).forEach(function(t){s.prototype[t]=e.proto[t]}),e.static&&Object.keys(e.static).forEach(function(t){s[t]=e.static[t]}),e.install&&e.install.apply(s,t),s},p.use=function(e){for(var t=[],i=arguments.length-1;i-- >0;)t[i]=arguments[i+1];var s=this;return Array.isArray(e)?(e.forEach(function(e){return s.installModule(e)}),s):s.installModule.apply(s,[e].concat(t))},Object.defineProperties(p,c);var u={updateSize:function(){var e,t,i=this.$el;e=void 0!==this.params.width?this.params.width:i[0].clientWidth,t=void 0!==this.params.height?this.params.height:i[0].clientHeight,0===e&&this.isHorizontal()||0===t&&this.isVertical()||(e=e-parseInt(i.css("padding-left"),10)-parseInt(i.css("padding-right"),10),t=t-parseInt(i.css("padding-top"),10)-parseInt(i.css("padding-bottom"),10),d.extend(this,{width:e,height:t,size:this.isHorizontal()?e:t}))},updateSlides:function(){var e=this.params,t=this.$wrapperEl,i=this.size,s=this.rtl,a=this.wrongRTL,r=t.children("."+this.params.slideClass),n=this.virtual&&e.virtual.enabled?this.virtual.slides.length:r.length,o=[],l=[],p=[],c=e.slidesOffsetBefore;"function"==typeof c&&(c=e.slidesOffsetBefore.call(this));var u=e.slidesOffsetAfter;"function"==typeof u&&(u=e.slidesOffsetAfter.call(this));var v=n,f=this.snapGrid.length,m=this.snapGrid.length,g=e.spaceBetween,b=-c,w=0,y=0;if(void 0!==i){var x,E;"string"==typeof g&&g.indexOf("%")>=0&&(g=parseFloat(g.replace("%",""))/100*i),this.virtualSize=-g,s?r.css({marginLeft:"",marginTop:""}):r.css({marginRight:"",marginBottom:""}),e.slidesPerColumn>1&&(x=Math.floor(n/e.slidesPerColumn)===n/this.params.slidesPerColumn?n:Math.ceil(n/e.slidesPerColumn)*e.slidesPerColumn,"auto"!==e.slidesPerView&&"row"===e.slidesPerColumnFill&&(x=Math.max(x,e.slidesPerView*e.slidesPerColumn)));for(var T,S=e.slidesPerColumn,C=x/S,M=C-(e.slidesPerColumn*C-n),z=0;z1){var k=void 0,$=void 0,L=void 0;"column"===e.slidesPerColumnFill?(L=z-($=Math.floor(z/S))*S,($>M||$===M&&L===S-1)&&(L+=1)>=S&&(L=0,$+=1),k=$+L*x/S,P.css({"-webkit-box-ordinal-group":k,"-moz-box-ordinal-group":k,"-ms-flex-order":k,"-webkit-order":k,order:k})):$=z-(L=Math.floor(z/C))*C,P.css("margin-"+(this.isHorizontal()?"top":"left"),0!==L&&e.spaceBetween&&e.spaceBetween+"px").attr("data-swiper-column",$).attr("data-swiper-row",L)}"none"!==P.css("display")&&("auto"===e.slidesPerView?(E=this.isHorizontal()?P.outerWidth(!0):P.outerHeight(!0),e.roundLengths&&(E=Math.floor(E))):(E=(i-(e.slidesPerView-1)*g)/e.slidesPerView,e.roundLengths&&(E=Math.floor(E)),r[z]&&(this.isHorizontal()?r[z].style.width=E+"px":r[z].style.height=E+"px")),r[z]&&(r[z].swiperSlideSize=E),p.push(E),e.centeredSlides?(b=b+E/2+w/2+g,0===w&&0!==z&&(b=b-i/2-g),0===z&&(b=b-i/2-g),Math.abs(b)<.001&&(b=0),y%e.slidesPerGroup==0&&o.push(b),l.push(b)):(y%e.slidesPerGroup==0&&o.push(b),l.push(b),b=b+E+g),this.virtualSize+=E+g,w=E,y+=1)}if(this.virtualSize=Math.max(this.virtualSize,i)+u,s&&a&&("slide"===e.effect||"coverflow"===e.effect)&&t.css({width:this.virtualSize+e.spaceBetween+"px"}),h.flexbox&&!e.setWrapperSize||(this.isHorizontal()?t.css({width:this.virtualSize+e.spaceBetween+"px"}):t.css({height:this.virtualSize+e.spaceBetween+"px"})),e.slidesPerColumn>1&&(this.virtualSize=(E+e.spaceBetween)*x,this.virtualSize=Math.ceil(this.virtualSize/e.slidesPerColumn)-e.spaceBetween,this.isHorizontal()?t.css({width:this.virtualSize+e.spaceBetween+"px"}):t.css({height:this.virtualSize+e.spaceBetween+"px"}),e.centeredSlides)){T=[];for(var I=0;I1&&o.push(this.virtualSize-i)}0===o.length&&(o=[0]),0!==e.spaceBetween&&(this.isHorizontal()?s?r.css({marginLeft:g+"px"}):r.css({marginRight:g+"px"}):r.css({marginBottom:g+"px"})),d.extend(this,{slides:r,snapGrid:o,slidesGrid:l,slidesSizesGrid:p}),n!==v&&this.emit("slidesLengthChange"),o.length!==f&&(this.params.watchOverflow&&this.checkOverflow(),this.emit("snapGridLengthChange")),l.length!==m&&this.emit("slidesGridLengthChange"),(e.watchSlidesProgress||e.watchSlidesVisibility)&&this.updateSlidesOffset()}},updateAutoHeight:function(){var e,t=[],i=0;if("auto"!==this.params.slidesPerView&&this.params.slidesPerView>1)for(e=0;ethis.slides.length)break;t.push(this.slides.eq(s)[0])}else t.push(this.slides.eq(this.activeIndex)[0]);for(e=0;ei?a:i}i&&this.$wrapperEl.css("height",i+"px")},updateSlidesOffset:function(){for(var e=this.slides,t=0;t=0&&l0&&d<=this.size||l<=0&&d>=this.size)&&i.eq(r).addClass(t.slideVisibleClass)}n.progress=s?-o:o}}},updateProgress:function(e){void 0===e&&(e=this.translate||0);var t=this.params,i=this.maxTranslate()-this.minTranslate(),s=this.progress,a=this.isBeginning,r=this.isEnd,n=a,o=r;0===i?(s=0,a=!0,r=!0):(a=(s=(e-this.minTranslate())/i)<=0,r=s>=1),d.extend(this,{progress:s,isBeginning:a,isEnd:r}),(t.watchSlidesProgress||t.watchSlidesVisibility)&&this.updateSlidesProgress(e),a&&!n&&this.emit("reachBeginning toEdge"),r&&!o&&this.emit("reachEnd toEdge"),(n&&!a||o&&!r)&&this.emit("fromEdge"),this.emit("progress",s)},updateSlidesClasses:function(){var e,t=this.slides,i=this.params,s=this.$wrapperEl,a=this.activeIndex,r=this.realIndex,n=this.virtual&&i.virtual.enabled;t.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=n?this.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+a+'"]'):t.eq(a)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+r+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+r+'"]').addClass(i.slideDuplicateActiveClass));var o=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===o.length&&(o=t.eq(0)).addClass(i.slideNextClass);var l=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===l.length&&(l=t.eq(-1)).addClass(i.slidePrevClass),i.loop&&(o.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),l.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass))},updateActiveIndex:function(e){var t,i=this.rtl?this.translate:-this.translate,s=this.slidesGrid,a=this.snapGrid,r=this.params,n=this.activeIndex,o=this.realIndex,l=this.snapIndex,h=e;if(void 0===h){for(var p=0;p=s[p]&&i=s[p]&&i=s[p]&&(h=p);r.normalizeSlideIndex&&(h<0||void 0===h)&&(h=0)}if((t=a.indexOf(i)>=0?a.indexOf(i):Math.floor(h/r.slidesPerGroup))>=a.length&&(t=a.length-1),h!==n){var c=parseInt(this.slides.eq(h).attr("data-swiper-slide-index")||h,10);d.extend(this,{snapIndex:t,realIndex:c,previousIndex:n,activeIndex:h}),this.emit("activeIndexChange"),this.emit("snapIndexChange"),o!==c&&this.emit("realIndexChange"),this.emit("slideChange")}else t!==l&&(this.snapIndex=t,this.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this.params,i=s(e.target).closest("."+t.slideClass)[0],a=!1;if(i)for(var r=0;ra?"next":is?"next":i=o.length&&(v=o.length-1),(p||n.initialSlide||0)===(d||0)&&i&&a.emit("beforeSlideChangeStart");var f,m=-o[v];if(a.updateProgress(m),n.normalizeSlideIndex)for(var g=0;g=Math.floor(100*l[g])&&(r=g);if(a.initialized&&r!==p){if(!a.allowSlideNext&&ma.translate&&m>a.maxTranslate()&&(p||0)!==r)return!1}return f=r>p?"next":rt.slides.length-t.loopedSlides+r/2?(t.loopFix(),n=a.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),d.nextTick(function(){t.slideTo(n)})):t.slideTo(n):n>t.slides.length-r?(t.loopFix(),n=a.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),d.nextTick(function(){t.slideTo(n)})):t.slideTo(n)}else t.slideTo(n)}},g={loopCreate:function(){var t=this,i=t.params,a=t.$wrapperEl;a.children("."+i.slideClass+"."+i.slideDuplicateClass).remove();var r=a.children("."+i.slideClass);if(i.loopFillGroupWithBlank){var n=i.slidesPerGroup-r.length%i.slidesPerGroup;if(n!==i.slidesPerGroup){for(var o=0;or.length&&(t.loopedSlides=r.length);var d=[],h=[];r.each(function(e,i){var a=s(i);e=r.length-t.loopedSlides&&d.push(i),a.attr("data-swiper-slide-index",e)});for(var p=0;p=0;c-=1)a.prepend(s(d[c].cloneNode(!0)).addClass(i.slideDuplicateClass))},loopFix:function(){var e,t=this.params,i=this.activeIndex,s=this.slides,a=this.loopedSlides,r=this.allowSlidePrev,n=this.allowSlideNext,o=this.snapGrid,l=this.rtl;this.allowSlidePrev=!0,this.allowSlideNext=!0;var d=-o[i]-this.getTranslate();i=2*a||i>s.length-2*t.slidesPerView)&&(e=-s.length+i+a,e+=a,this.slideTo(e,0,!1,!0)&&0!==d&&this.setTranslate((l?-this.translate:this.translate)-d));this.allowSlidePrev=r,this.allowSlideNext=n},loopDestroy:function(){var e=this.$wrapperEl,t=this.params,i=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass).remove(),i.removeAttr("data-swiper-slide-index")}},b={setGrabCursor:function(e){if(!h.touch&&this.params.simulateTouch){var t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"}},unsetGrabCursor:function(){h.touch||(this.el.style.cursor="")}},w={appendSlide:function(e){var t=this.$wrapperEl,i=this.params;if(i.loop&&this.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s=0),(n||l||o)&&(s.os="ios",s.ios=!0),l&&!o&&(s.osVersion=l[2].replace(/_/g,"."),s.iphone=!0),n&&(s.osVersion=n[2].replace(/_/g,"."),s.ipad=!0),o&&(s.osVersion=o[3]?o[3].replace(/_/g,"."):null,s.iphone=!0),s.ios&&s.osVersion&&i.indexOf("Version/")>=0&&"10"===s.osVersion.split(".")[0]&&(s.osVersion=i.toLowerCase().split("version/")[1].split(" ")[0]),s.desktop=!(s.os||s.android||s.webView),s.webView=(l||n||o)&&i.match(/.*AppleWebKit(?!.*Safari)/i),s.os&&"ios"===s.os){var d=s.osVersion.split("."),h=e.querySelector('meta[name="viewport"]');s.minimalUi=!s.webView&&(o||l)&&(1*d[0]==7?1*d[1]>=1:1*d[0]>7)&&h&&h.getAttribute("content").indexOf("minimal-ui")>=0}return s.pixelRatio=t.devicePixelRatio||1,s}(),x=function(i){var a=this.touchEventsData,r=this.params,n=this.touches;if(!this.animating||!r.preventIntercationOnTransition){var o=i;if(o.originalEvent&&(o=o.originalEvent),a.isTouchEvent="touchstart"===o.type,(a.isTouchEvent||!("which"in o)||3!==o.which)&&(!a.isTouched||!a.isMoved))if(r.noSwiping&&s(o.target).closest(r.noSwipingSelector?r.noSwipingSelector:"."+r.noSwipingClass)[0])this.allowClick=!0;else if(!r.swipeHandler||s(o).closest(r.swipeHandler)[0]){n.currentX="touchstart"===o.type?o.targetTouches[0].pageX:o.pageX,n.currentY="touchstart"===o.type?o.targetTouches[0].pageY:o.pageY;var l=n.currentX,h=n.currentY;if(!(y.ios&&!y.cordova&&r.iOSEdgeSwipeDetection&&l<=r.iOSEdgeSwipeThreshold&&l>=t.screen.width-r.iOSEdgeSwipeThreshold)){if(d.extend(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),n.startX=l,n.startY=h,a.touchStartTime=d.now(),this.allowClick=!0,this.updateSize(),this.swipeDirection=void 0,r.threshold>0&&(a.allowThresholdMove=!1),"touchstart"!==o.type){var p=!0;s(o.target).is(a.formElements)&&(p=!1),e.activeElement&&s(e.activeElement).is(a.formElements)&&e.activeElement!==o.target&&e.activeElement.blur(),p&&this.allowTouchMove&&o.preventDefault()}this.emit("touchStart",o)}}}},E=function(t){var i=this.touchEventsData,a=this.params,r=this.touches,n=this.rtl,o=t;if(o.originalEvent&&(o=o.originalEvent),i.isTouched){if(!i.isTouchEvent||"mousemove"!==o.type){var l="touchmove"===o.type?o.targetTouches[0].pageX:o.pageX,h="touchmove"===o.type?o.targetTouches[0].pageY:o.pageY;if(o.preventedByNestedSwiper)return r.startX=l,void(r.startY=h);if(!this.allowTouchMove)return this.allowClick=!1,void(i.isTouched&&(d.extend(r,{startX:l,startY:h,currentX:l,currentY:h}),i.touchStartTime=d.now()));if(i.isTouchEvent&&a.touchReleaseOnEdges&&!a.loop)if(this.isVertical()){if(hr.startY&&this.translate>=this.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(lr.startX&&this.translate>=this.minTranslate())return;if(i.isTouchEvent&&e.activeElement&&o.target===e.activeElement&&s(o.target).is(i.formElements))return i.isMoved=!0,void(this.allowClick=!1);if(i.allowTouchCallbacks&&this.emit("touchMove",o),!(o.targetTouches&&o.targetTouches.length>1)){r.currentX=l,r.currentY=h;var p,c=r.currentX-r.startX,u=r.currentY-r.startY;if(void 0===i.isScrolling)this.isHorizontal()&&r.currentY===r.startY||this.isVertical()&&r.currentX===r.startX?i.isScrolling=!1:c*c+u*u>=25&&(p=180*Math.atan2(Math.abs(u),Math.abs(c))/Math.PI,i.isScrolling=this.isHorizontal()?p>a.touchAngle:90-p>a.touchAngle);if(i.isScrolling&&this.emit("touchMoveOpposite",o),"undefined"==typeof startMoving&&(r.currentX===r.startX&&r.currentY===r.startY||(i.startMoving=!0)),i.isScrolling)i.isTouched=!1;else if(i.startMoving){this.allowClick=!1,o.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&o.stopPropagation(),i.isMoved||(a.loop&&this.loopFix(),i.startTranslate=this.getTranslate(),this.setTransition(0),this.animating&&this.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!a.grabCursor||!0!==this.allowSlideNext&&!0!==this.allowSlidePrev||this.setGrabCursor(!0),this.emit("sliderFirstMove",o)),this.emit("sliderMove",o),i.isMoved=!0;var v=this.isHorizontal()?c:u;r.diff=v,v*=a.touchRatio,n&&(v=-v),this.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;var f=!0,m=a.resistanceRatio;if(a.touchReleaseOnEdges&&(m=0),v>0&&i.currentTranslate>this.minTranslate()?(f=!1,a.resistance&&(i.currentTranslate=this.minTranslate()-1+Math.pow(-this.minTranslate()+i.startTranslate+v,m))):v<0&&i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),a.threshold>0){if(!(Math.abs(v)>a.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,i.currentTranslate=i.startTranslate,void(r.diff=this.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY)}a.followFinger&&((a.freeMode||a.watchSlidesProgress||a.watchSlidesVisibility)&&(this.updateActiveIndex(),this.updateSlidesClasses()),a.freeMode&&(0===i.velocities.length&&i.velocities.push({position:r[this.isHorizontal()?"startX":"startY"],time:i.touchStartTime}),i.velocities.push({position:r[this.isHorizontal()?"currentX":"currentY"],time:d.now()})),this.updateProgress(i.currentTranslate),this.setTranslate(i.currentTranslate))}}}}else i.startMoving&&i.isScrolling&&this.emit("touchMoveOpposite",o)},T=function(e){var t=this,i=t.touchEventsData,s=t.params,a=t.touches,r=t.rtl,n=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid,h=e;if(h.originalEvent&&(h=h.originalEvent),i.allowTouchCallbacks&&t.emit("touchEnd",h),i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&s.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);s.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,c=d.now(),u=c-i.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(h),t.emit("tap",h),u<300&&c-i.lastClickTime>300&&(i.clickTimeout&&clearTimeout(i.clickTimeout),i.clickTimeout=d.nextTick(function(){t&&!t.destroyed&&t.emit("click",h)},300)),u<300&&c-i.lastClickTime<300&&(i.clickTimeout&&clearTimeout(i.clickTimeout),t.emit("doubleTap",h))),i.lastClickTime=d.now(),d.nextTick(function(){t.destroyed||(t.allowClick=!0)}),!i.isTouched||!i.isMoved||!t.swipeDirection||0===a.diff||i.currentTranslate===i.startTranslate)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);if(i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,p=s.followFinger?r?t.translate:-t.translate:-i.currentTranslate,s.freeMode){if(p<-t.minTranslate())return void t.slideTo(t.activeIndex);if(p>-t.maxTranslate())return void(t.slides.length1){var v=i.velocities.pop(),f=i.velocities.pop(),m=v.position-f.position,g=v.time-f.time;t.velocity=m/g,t.velocity/=2,Math.abs(t.velocity)150||d.now()-v.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=s.freeModeMomentumVelocityRatio,i.velocities.length=0;var b=1e3*s.freeModeMomentumRatio,w=t.velocity*b,y=t.translate+w;r&&(y=-y);var x,E=!1,T=20*Math.abs(t.velocity)*s.freeModeMomentumBounceRatio;if(yt.minTranslate())s.freeModeMomentumBounce?(y-t.minTranslate()>T&&(y=t.minTranslate()+T),x=t.minTranslate(),E=!0,i.allowMomentumBounce=!0):y=t.minTranslate();else if(s.freeModeSticky){for(var S,C=0;C-y){S=C;break}y=-(y=Math.abs(l[S]-y)=s.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var M=0,z=t.slidesSizesGrid[0],P=0;P=o[P]&&p=o[P]&&(M=P,z=o[o.length-1]-o[o.length-2]);var k=(p-o[M])/z;if(u>s.longSwipesMs){if(!s.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(k>=s.longSwipesRatio?t.slideTo(M+s.slidesPerGroup):t.slideTo(M)),"prev"===t.swipeDirection&&(k>1-s.longSwipesRatio?t.slideTo(M+s.slidesPerGroup):t.slideTo(M))}else{if(!s.shortSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&t.slideTo(M+s.slidesPerGroup),"prev"===t.swipeDirection&&t.slideTo(M)}}},S=function(){var e=this.params,t=this.el;if(!t||0!==t.offsetWidth){e.breakpoints&&this.setBreakpoint();var i=this.allowSlideNext,s=this.allowSlidePrev;if(this.allowSlideNext=!0,this.allowSlidePrev=!0,this.updateSize(),this.updateSlides(),e.freeMode){var a=Math.min(Math.max(this.translate,this.maxTranslate()),this.minTranslate());this.setTranslate(a),this.updateActiveIndex(),this.updateSlidesClasses(),e.autoHeight&&this.updateAutoHeight()}else this.updateSlidesClasses(),("auto"===e.slidesPerView||e.slidesPerView>1)&&this.isEnd&&!this.params.centeredSlides?this.slideTo(this.slides.length-1,0,!1,!0):this.slideTo(this.activeIndex,0,!1,!0);this.allowSlidePrev=s,this.allowSlideNext=i}},C=function(e){this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))};var M={attachEvents:function(){var t=this.params,i=this.touchEvents,s=this.el,a=this.wrapperEl;this.onTouchStart=x.bind(this),this.onTouchMove=E.bind(this),this.onTouchEnd=T.bind(this),this.onClick=C.bind(this);var r="container"===t.touchEventsTarget?s:a,n=!!t.nested;if(h.touch||!h.pointerEvents&&!h.prefixedPointerEvents){if(h.touch){var o=!("touchstart"!==i.start||!h.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.addEventListener(i.start,this.onTouchStart,o),r.addEventListener(i.move,this.onTouchMove,h.passiveListener?{passive:!1,capture:n}:n),r.addEventListener(i.end,this.onTouchEnd,o)}(t.simulateTouch&&!y.ios&&!y.android||t.simulateTouch&&!h.touch&&y.ios)&&(r.addEventListener("mousedown",this.onTouchStart,!1),e.addEventListener("mousemove",this.onTouchMove,n),e.addEventListener("mouseup",this.onTouchEnd,!1))}else r.addEventListener(i.start,this.onTouchStart,!1),e.addEventListener(i.move,this.onTouchMove,n),e.addEventListener(i.end,this.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.addEventListener("click",this.onClick,!0),this.on("resize observerUpdate",S)},detachEvents:function(){var t=this.params,i=this.touchEvents,s=this.el,a=this.wrapperEl,r="container"===t.touchEventsTarget?s:a,n=!!t.nested;if(h.touch||!h.pointerEvents&&!h.prefixedPointerEvents){if(h.touch){var o=!("onTouchStart"!==i.start||!h.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.removeEventListener(i.start,this.onTouchStart,o),r.removeEventListener(i.move,this.onTouchMove,n),r.removeEventListener(i.end,this.onTouchEnd,o)}(t.simulateTouch&&!y.ios&&!y.android||t.simulateTouch&&!h.touch&&y.ios)&&(r.removeEventListener("mousedown",this.onTouchStart,!1),e.removeEventListener("mousemove",this.onTouchMove,n),e.removeEventListener("mouseup",this.onTouchEnd,!1))}else r.removeEventListener(i.start,this.onTouchStart,!1),e.removeEventListener(i.move,this.onTouchMove,n),e.removeEventListener(i.end,this.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.removeEventListener("click",this.onClick,!0),this.off("resize observerUpdate",S)}},z={setBreakpoint:function(){var e=this.activeIndex,t=this.loopedSlides;void 0===t&&(t=0);var i=this.params,s=i.breakpoints;if(s&&(!s||0!==Object.keys(s).length)){var a=this.getBreakpoint(s);if(a&&this.currentBreakpoint!==a){var r=a in s?s[a]:this.originalParams,n=i.loop&&r.slidesPerView!==i.slidesPerView;d.extend(this.params,r),d.extend(this,{allowTouchMove:this.params.allowTouchMove,allowSlideNext:this.params.allowSlideNext,allowSlidePrev:this.params.allowSlidePrev}),this.currentBreakpoint=a,n&&(this.loopDestroy(),this.loopCreate(),this.updateSlides(),this.slideTo(e-t+this.loopedSlides,0,!1)),this.emit("breakpoint",r)}}},getBreakpoint:function(e){if(e){var i=!1,s=[];Object.keys(e).forEach(function(e){s.push(e)}),s.sort(function(e,t){return parseInt(e,10)-parseInt(t,10)});for(var a=0;a=t.innerWidth&&!i&&(i=r)}return i||"max"}}},P=function(){return{isIE:!!t.navigator.userAgent.match(/Trident/g)||!!t.navigator.userAgent.match(/MSIE/g),isSafari:(e=t.navigator.userAgent.toLowerCase(),e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)};var e}();var k={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,preventIntercationOnTransition:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!0,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0},$={update:u,translate:v,transition:f,slide:m,loop:g,grabCursor:b,manipulation:w,events:M,breakpoints:z,checkOverflow:{checkOverflow:function(){var e=this.isLocked;this.isLocked=1===this.snapGrid.length,this.allowTouchMove=!this.isLocked,e&&e!==this.isLocked&&(this.isEnd=!1,this.navigation.update())}},classes:{addClasses:function(){var e=this.classNames,t=this.params,i=this.rtl,s=this.$el,a=[];a.push(t.direction),t.freeMode&&a.push("free-mode"),h.flexbox||a.push("no-flexbox"),t.autoHeight&&a.push("autoheight"),i&&a.push("rtl"),t.slidesPerColumn>1&&a.push("multirow"),y.android&&a.push("android"),y.ios&&a.push("ios"),P.isIE&&(h.pointerEvents||h.prefixedPointerEvents)&&a.push("wp8-"+t.direction),a.forEach(function(i){e.push(t.containerModifierClass+i)}),s.addClass(e.join(" "))},removeClasses:function(){var e=this.$el,t=this.classNames;e.removeClass(t.join(" "))}},images:{loadImage:function(e,i,s,a,r,n){var o;function l(){n&&n()}e.complete&&r?l():i?((o=new t.Image).onload=l,o.onerror=l,a&&(o.sizes=a),s&&(o.srcset=s),i&&(o.src=i)):l()},preloadImages:function(){var e=this;function t(){void 0!==e&&null!==e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var i=0;i1){var u=[];return c.each(function(e,i){var s=d.extend({},a,{el:i});u.push(new t(s))}),u}i.swiper=l,c.data("swiper",l);var v,f,m=c.children("."+l.params.wrapperClass);return d.extend(l,{$el:c,el:i,$wrapperEl:m,wrapperEl:m[0],classNames:[],slides:s(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===l.params.direction},isVertical:function(){return"vertical"===l.params.direction},rtl:"horizontal"===l.params.direction&&("rtl"===i.dir.toLowerCase()||"rtl"===c.css("direction")),wrongRTL:"-webkit-box"===m.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,progress:0,velocity:0,animating:!1,allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEvents:(v=["touchstart","touchmove","touchend"],f=["mousedown","mousemove","mouseup"],h.pointerEvents?f=["pointerdown","pointermove","pointerup"]:h.prefixedPointerEvents&&(f=["MSPointerDown","MSPointerMove","MSPointerUp"]),l.touchEventsTouch={start:v[0],move:v[1],end:v[2]},l.touchEventsDesktop={start:f[0],move:f[1],end:f[2]},h.touch||!l.params.simulateTouch?l.touchEventsTouch:l.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video",lastClickTime:d.now(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.useModules(),l.params.init&&l.init(),l}}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var i={extendedDefaults:{configurable:!0},defaults:{configurable:!0},Class:{configurable:!0},$:{configurable:!0}};return t.prototype.slidesPerViewDynamic=function(){var e=this.params,t=this.slides,i=this.slidesGrid,s=this.size,a=this.activeIndex,r=1;if(e.centeredSlides){for(var n,o=t[a].swiperSlideSize,l=a+1;ls&&(n=!0));for(var d=a-1;d>=0;d-=1)t[d]&&!n&&(r+=1,(o+=t[d].swiperSlideSize)>s&&(n=!0))}else for(var h=a+1;h1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||t(),e.emit("update"));function t(){var t=e.rtl?-1*e.translate:e.translate,i=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(i),e.updateActiveIndex(),e.updateSlidesClasses()}},t.prototype.init=function(){this.initialized||(this.emit("beforeInit"),this.params.breakpoints&&this.setBreakpoint(),this.addClasses(),this.params.loop&&this.loopCreate(),this.updateSize(),this.updateSlides(),this.params.watchOverflow&&this.checkOverflow(),this.params.grabCursor&&this.setGrabCursor(),this.params.preloadImages&&this.preloadImages(),this.params.loop?this.slideTo(this.params.initialSlide+this.loopedSlides,0,this.params.runCallbacksOnInit):this.slideTo(this.params.initialSlide,0,this.params.runCallbacksOnInit),this.attachEvents(),this.initialized=!0,this.emit("init"))},t.prototype.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var i=this,s=i.params,a=i.$el,r=i.$wrapperEl,n=i.slides;i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),s.loop&&i.loopDestroy(),t&&(i.removeClasses(),a.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([s.slideVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row")),i.emit("destroy"),Object.keys(i.eventsListeners).forEach(function(e){i.off(e)}),!1!==e&&(i.$el[0].swiper=null,i.$el.data("swiper",null),d.deleteProps(i)),i.destroyed=!0},t.extendDefaults=function(e){d.extend(L,e)},i.extendedDefaults.get=function(){return L},i.defaults.get=function(){return k},i.Class.get=function(){return e},i.$.get=function(){return s},Object.defineProperties(t,i),t}(p),D={name:"device",proto:{device:y},static:{device:y}},O={name:"support",proto:{support:h},static:{support:h}},A={name:"browser",proto:{browser:P},static:{browser:P}},H={name:"resize",create:function(){var e=this;d.extend(e,{resize:{resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(){t.addEventListener("resize",this.resize.resizeHandler),t.addEventListener("orientationchange",this.resize.orientationChangeHandler)},destroy:function(){t.removeEventListener("resize",this.resize.resizeHandler),t.removeEventListener("orientationchange",this.resize.orientationChangeHandler)}}},N={func:t.MutationObserver||t.WebkitMutationObserver,attach:function(e,t){void 0===t&&(t={});var i=this,s=new(0,N.func)(function(e){e.forEach(function(e){i.emit("observerUpdate",e)})});s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),i.observer.observers.push(s)},init:function(){if(h.observer&&this.params.observer){if(this.params.observeParents)for(var e=this.$el.parents(),t=0;tw)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+S+'"]').remove();for(var C=0;C=b&&C<=w&&(void 0===l||e?T.push(C):(C>l&&T.push(C),C'+e+"");return a.attr("data-swiper-slide-index")||a.attr("data-swiper-slide-index",t),i.cache&&(this.virtual.cache[t]=a),a},appendSlide:function(e){this.virtual.slides.push(e),this.virtual.update(!0)},prependSlide:function(e){if(this.virtual.slides.unshift(e),this.params.virtual.cache){var t=this.virtual.cache,i={};Object.keys(t).forEach(function(e){i[e+1]=t[e]}),this.virtual.cache=i}this.virtual.update(!0),this.slideNext(0)}},B={name:"virtual",params:{virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null}},create:function(){d.extend(this,{virtual:{update:Y.update.bind(this),appendSlide:Y.appendSlide.bind(this),prependSlide:Y.prependSlide.bind(this),renderSlide:Y.renderSlide.bind(this),slides:this.params.virtual.slides,cache:{}}})},on:{beforeInit:function(){if(this.params.virtual.enabled){this.classNames.push(this.params.containerModifierClass+"virtual");var e={watchSlidesProgress:!0};d.extend(this.params,e),d.extend(this.originalParams,e),this.virtual.update()}},setTranslate:function(){this.params.virtual.enabled&&this.virtual.update()}}},G={handle:function(i){var s=i;s.originalEvent&&(s=s.originalEvent);var a=s.keyCode||s.charCode;if(!this.allowSlideNext&&(this.isHorizontal()&&39===a||this.isVertical()&&40===a))return!1;if(!this.allowSlidePrev&&(this.isHorizontal()&&37===a||this.isVertical()&&38===a))return!1;if(!(s.shiftKey||s.altKey||s.ctrlKey||s.metaKey||e.activeElement&&e.activeElement.nodeName&&("input"===e.activeElement.nodeName.toLowerCase()||"textarea"===e.activeElement.nodeName.toLowerCase()))){if(this.params.keyboard.onlyInViewport&&(37===a||39===a||38===a||40===a)){var r=!1;if(this.$el.parents("."+this.params.slideClass).length>0&&0===this.$el.parents("."+this.params.slideActiveClass).length)return;var n=t.innerWidth,o=t.innerHeight,l=this.$el.offset();this.rtl&&(l.left-=this.$el[0].scrollLeft);for(var d=[[l.left,l.top],[l.left+this.width,l.top],[l.left,l.top+this.height],[l.left+this.width,l.top+this.height]],h=0;h=0&&p[0]<=n&&p[1]>=0&&p[1]<=o&&(r=!0)}if(!r)return}this.isHorizontal()?(37!==a&&39!==a||(s.preventDefault?s.preventDefault():s.returnValue=!1),(39===a&&!this.rtl||37===a&&this.rtl)&&this.slideNext(),(37===a&&!this.rtl||39===a&&this.rtl)&&this.slidePrev()):(38!==a&&40!==a||(s.preventDefault?s.preventDefault():s.returnValue=!1),40===a&&this.slideNext(),38===a&&this.slidePrev()),this.emit("keyPress",a)}},enable:function(){this.keyboard.enabled||(s(e).on("keydown",this.keyboard.handle),this.keyboard.enabled=!0)},disable:function(){this.keyboard.enabled&&(s(e).off("keydown",this.keyboard.handle),this.keyboard.enabled=!1)}},V={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0}},create:function(){d.extend(this,{keyboard:{enabled:!1,enable:G.enable.bind(this),disable:G.disable.bind(this),handle:G.handle.bind(this)}})},on:{init:function(){this.params.keyboard.enabled&&this.keyboard.enable()},destroy:function(){this.keyboard.enabled&&this.keyboard.disable()}}};var R={lastScrollTime:d.now(),event:t.navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":function(){var t="onwheel"in e;if(!t){var i=e.createElement("div");i.setAttribute("onwheel","return;"),t="function"==typeof i.onwheel}return!t&&e.implementation&&e.implementation.hasFeature&&!0!==e.implementation.hasFeature("","")&&(t=e.implementation.hasFeature("Events.wheel","3.0")),t}()?"wheel":"mousewheel",normalize:function(e){var t=0,i=0,s=0,a=0;return"detail"in e&&(i=e.detail),"wheelDelta"in e&&(i=-e.wheelDelta/120),"wheelDeltaY"in e&&(i=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=i,i=0),s=10*t,a=10*i,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(s=e.deltaX),(s||a)&&e.deltaMode&&(1===e.deltaMode?(s*=40,a*=40):(s*=800,a*=800)),s&&!t&&(t=s<1?-1:1),a&&!i&&(i=a<1?-1:1),{spinX:t,spinY:i,pixelX:s,pixelY:a}},handle:function(e){var i=e,s=this,a=s.params.mousewheel;i.originalEvent&&(i=i.originalEvent);var r=0,n=s.rtl?-1:1,o=R.normalize(i);if(a.forceToAxis)if(s.isHorizontal()){if(!(Math.abs(o.pixelX)>Math.abs(o.pixelY)))return!0;r=o.pixelX*n}else{if(!(Math.abs(o.pixelY)>Math.abs(o.pixelX)))return!0;r=o.pixelY}else r=Math.abs(o.pixelX)>Math.abs(o.pixelY)?-o.pixelX*n:-o.pixelY;if(0===r)return!0;if(a.invert&&(r=-r),s.params.freeMode){var l=s.getTranslate()+r*a.sensitivity,h=s.isBeginning,p=s.isEnd;if(l>=s.minTranslate()&&(l=s.minTranslate()),l<=s.maxTranslate()&&(l=s.maxTranslate()),s.setTransition(0),s.setTranslate(l),s.updateProgress(),s.updateActiveIndex(),s.updateSlidesClasses(),(!h&&s.isBeginning||!p&&s.isEnd)&&s.updateSlidesClasses(),s.params.freeModeSticky&&(clearTimeout(s.mousewheel.timeout),s.mousewheel.timeout=d.nextTick(function(){s.slideReset()},300)),s.emit("scroll",i),s.params.autoplay&&s.params.autoplayDisableOnInteraction&&s.stopAutoplay(),l===s.minTranslate()||l===s.maxTranslate())return!0}else{if(d.now()-s.mousewheel.lastScrollTime>60)if(r<0)if(s.isEnd&&!s.params.loop||s.animating){if(a.releaseOnEdges)return!0}else s.slideNext(),s.emit("scroll",i);else if(s.isBeginning&&!s.params.loop||s.animating){if(a.releaseOnEdges)return!0}else s.slidePrev(),s.emit("scroll",i);s.mousewheel.lastScrollTime=(new t.Date).getTime()}return i.preventDefault?i.preventDefault():i.returnValue=!1,!1},enable:function(){if(!R.event)return!1;if(this.mousewheel.enabled)return!1;var e=this.$el;return"container"!==this.params.mousewheel.eventsTarged&&(e=s(this.params.mousewheel.eventsTarged)),e.on(R.event,this.mousewheel.handle),this.mousewheel.enabled=!0,!0},disable:function(){if(!R.event)return!1;if(!this.mousewheel.enabled)return!1;var e=this.$el;return"container"!==this.params.mousewheel.eventsTarged&&(e=s(this.params.mousewheel.eventsTarged)),e.off(R.event,this.mousewheel.handle),this.mousewheel.enabled=!1,!0}},F={update:function(){var e=this.params.navigation;if(!this.params.loop){var t=this.navigation,i=t.$nextEl,s=t.$prevEl;s&&s.length>0&&(this.isBeginning?s.addClass(e.disabledClass):s.removeClass(e.disabledClass),s[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](e.lockClass)),i&&i.length>0&&(this.isEnd?i.addClass(e.disabledClass):i.removeClass(e.disabledClass),i[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](e.lockClass))}},init:function(){var e,t,i=this,a=i.params.navigation;(a.nextEl||a.prevEl)&&(a.nextEl&&(e=s(a.nextEl),i.params.uniqueNavElements&&"string"==typeof a.nextEl&&e.length>1&&1===i.$el.find(a.nextEl).length&&(e=i.$el.find(a.nextEl))),a.prevEl&&(t=s(a.prevEl),i.params.uniqueNavElements&&"string"==typeof a.prevEl&&t.length>1&&1===i.$el.find(a.prevEl).length&&(t=i.$el.find(a.prevEl))),e&&e.length>0&&e.on("click",function(e){e.preventDefault(),i.isEnd&&!i.params.loop||i.slideNext()}),t&&t.length>0&&t.on("click",function(e){e.preventDefault(),i.isBeginning&&!i.params.loop||i.slidePrev()}),d.extend(i.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}))},destroy:function(){var e=this.navigation,t=e.$nextEl,i=e.$prevEl;t&&t.length&&(t.off("click"),t.removeClass(this.params.navigation.disabledClass)),i&&i.length&&(i.off("click"),i.removeClass(this.params.navigation.disabledClass))}},W={update:function(){var e=this.rtl,t=this.params.pagination;if(t.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var i,a=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,r=this.pagination.$el,n=this.params.loop?Math.ceil((a-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length;if(this.params.loop?((i=Math.ceil((this.activeIndex-this.loopedSlides)/this.params.slidesPerGroup))>a-1-2*this.loopedSlides&&(i-=a-2*this.loopedSlides),i>n-1&&(i-=n),i<0&&"bullets"!==this.params.paginationType&&(i=n+i)):i=void 0!==this.snapIndex?this.snapIndex:this.activeIndex||0,"bullets"===t.type&&this.pagination.bullets&&this.pagination.bullets.length>0){var o,l,d,h=this.pagination.bullets;if(t.dynamicBullets&&(this.pagination.bulletSize=h.eq(0)[this.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(this.isHorizontal()?"width":"height",this.pagination.bulletSize*(t.dynamicMainBullets+4)+"px"),t.dynamicMainBullets>1&&void 0!==this.previousIndex&&(i>this.previousIndex&&this.pagination.dynamicBulletIndex0&&(this.pagination.dynamicBulletIndex-=1)),o=i-this.pagination.dynamicBulletIndex,d=((l=o+(t.dynamicMainBullets-1))+o)/2),h.removeClass(t.bulletActiveClass+" "+t.bulletActiveClass+"-next "+t.bulletActiveClass+"-next-next "+t.bulletActiveClass+"-prev "+t.bulletActiveClass+"-prev-prev "+t.bulletActiveClass+"-main"),r.length>1)h.each(function(e,a){var r=s(a),n=r.index();n===i&&r.addClass(t.bulletActiveClass),t.dynamicBullets&&(n>=o&&n<=l&&r.addClass(t.bulletActiveClass+"-main"),n===o&&r.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),n===l&&r.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next"))});else if(h.eq(i).addClass(t.bulletActiveClass),t.dynamicBullets){for(var p=h.eq(o),c=h.eq(l),u=o;u<=l;u+=1)h.eq(u).addClass(t.bulletActiveClass+"-main");p.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),c.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next")}if(t.dynamicBullets){var v=Math.min(h.length,t.dynamicMainBullets+4),f=(this.pagination.bulletSize*v-this.pagination.bulletSize)/2-d*this.pagination.bulletSize,m=e?"right":"left";h.css(this.isHorizontal()?m:"top",f+"px")}}if("fraction"===t.type&&(r.find("."+t.currentClass).text(i+1),r.find("."+t.totalClass).text(n)),"progressbar"===t.type){var g=(i+1)/n,b=g,w=1;this.isHorizontal()||(w=g,b=1),r.find("."+t.progressbarFillClass).transform("translate3d(0,0,0) scaleX("+b+") scaleY("+w+")").transition(this.params.speed)}"custom"===t.type&&t.renderCustom?(r.html(t.renderCustom(this,i+1,n)),this.emit("paginationRender",this,r[0])):this.emit("paginationUpdate",this,r[0]),r[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](t.lockClass)}},render:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,i=this.pagination.$el,s="";if("bullets"===e.type){for(var a=this.params.loop?Math.ceil((t-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length,r=0;r";i.html(s),this.pagination.bullets=i.find("."+e.bulletClass)}"fraction"===e.type&&(s=e.renderFraction?e.renderFraction.call(this,e.currentClass,e.totalClass):' / ',i.html(s)),"progressbar"===e.type&&(s=e.renderProgressbar?e.renderProgressbar.call(this,e.progressbarFillClass):'',i.html(s)),"custom"!==e.type&&this.emit("paginationRender",this.pagination.$el[0])}},init:function(){var e=this,t=e.params.pagination;if(t.el){var i=s(t.el);0!==i.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&i.length>1&&1===e.$el.find(t.el).length&&(i=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&i.addClass(t.clickableClass),i.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(i.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),t.clickable&&i.on("click","."+t.bulletClass,function(t){t.preventDefault();var i=s(this).index()*e.params.slidesPerGroup;e.params.loop&&(i+=e.loopedSlides),e.slideTo(i)}),d.extend(e.pagination,{$el:i,el:i[0]}))}},destroy:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.pagination.$el;t.removeClass(e.hiddenClass),t.removeClass(e.modifierClass+e.type),this.pagination.bullets&&this.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&t.off("click","."+e.bulletClass)}}},q={setTranslate:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=this.rtl,i=this.progress,s=e.dragSize,a=e.trackSize,r=e.$dragEl,n=e.$el,o=this.params.scrollbar,l=s,d=(a-s)*i;t&&this.isHorizontal()?(d=-d)>0?(l=s-d,d=0):-d+s>a&&(l=a+d):d<0?(l=s+d,d=0):d+s>a&&(l=a-d),this.isHorizontal()?(h.transforms3d?r.transform("translate3d("+d+"px, 0, 0)"):r.transform("translateX("+d+"px)"),r[0].style.width=l+"px"):(h.transforms3d?r.transform("translate3d(0px, "+d+"px, 0)"):r.transform("translateY("+d+"px)"),r[0].style.height=l+"px"),o.hide&&(clearTimeout(this.scrollbar.timeout),n[0].style.opacity=1,this.scrollbar.timeout=setTimeout(function(){n[0].style.opacity=0,n.transition(400)},1e3))}},setTransition:function(e){this.params.scrollbar.el&&this.scrollbar.el&&this.scrollbar.$dragEl.transition(e)},updateSize:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=e.$dragEl,i=e.$el;t[0].style.width="",t[0].style.height="";var s,a=this.isHorizontal()?i[0].offsetWidth:i[0].offsetHeight,r=this.size/this.virtualSize,n=r*(a/this.size);s="auto"===this.params.scrollbar.dragSize?a*r:parseInt(this.params.scrollbar.dragSize,10),this.isHorizontal()?t[0].style.width=s+"px":t[0].style.height=s+"px",i[0].style.display=r>=1?"none":"",this.params.scrollbarHide&&(i[0].style.opacity=0),d.extend(e,{trackSize:a,divider:r,moveDivider:n,dragSize:s}),e.$el[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](this.params.scrollbar.lockClass)}},setDragPosition:function(e){var t,i=this.scrollbar,s=i.$el,a=i.dragSize,r=i.trackSize;t=((this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-s.offset()[this.isHorizontal()?"left":"top"]-a/2)/(r-a),t=Math.max(Math.min(t,1),0),this.rtl&&(t=1-t);var n=this.minTranslate()+(this.maxTranslate()-this.minTranslate())*t;this.updateProgress(n),this.setTranslate(n),this.updateActiveIndex(),this.updateSlidesClasses()},onDragStart:function(e){var t=this.params.scrollbar,i=this.scrollbar,s=this.$wrapperEl,a=i.$el,r=i.$dragEl;this.scrollbar.isTouched=!0,e.preventDefault(),e.stopPropagation(),s.transition(100),r.transition(100),i.setDragPosition(e),clearTimeout(this.scrollbar.dragTimeout),a.transition(0),t.hide&&a.css("opacity",1),this.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this.scrollbar,i=this.$wrapperEl,s=t.$el,a=t.$dragEl;this.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),i.transition(0),s.transition(0),a.transition(0),this.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this.params.scrollbar,i=this.scrollbar.$el;this.scrollbar.isTouched&&(this.scrollbar.isTouched=!1,t.hide&&(clearTimeout(this.scrollbar.dragTimeout),this.scrollbar.dragTimeout=d.nextTick(function(){i.css("opacity",0),i.transition(400)},1e3)),this.emit("scrollbarDragEnd",e),t.snapOnRelease&&this.slideReset())},enableDraggable:function(){if(this.params.scrollbar.el){var t=this.scrollbar,i=this.touchEvents,s=this.touchEventsDesktop,a=this.params,r=t.$el[0],n=!(!h.passiveListener||!a.passiveListener)&&{passive:!1,capture:!1},o=!(!h.passiveListener||!a.passiveListener)&&{passive:!0,capture:!1};h.touch||!h.pointerEvents&&!h.prefixedPointerEvents?(h.touch&&(r.addEventListener(i.start,this.scrollbar.onDragStart,n),r.addEventListener(i.move,this.scrollbar.onDragMove,n),r.addEventListener(i.end,this.scrollbar.onDragEnd,o)),(a.simulateTouch&&!y.ios&&!y.android||a.simulateTouch&&!h.touch&&y.ios)&&(r.addEventListener("mousedown",this.scrollbar.onDragStart,n),e.addEventListener("mousemove",this.scrollbar.onDragMove,n),e.addEventListener("mouseup",this.scrollbar.onDragEnd,o))):(r.addEventListener(s.start,this.scrollbar.onDragStart,n),e.addEventListener(s.move,this.scrollbar.onDragMove,n),e.addEventListener(s.end,this.scrollbar.onDragEnd,o))}},disableDraggable:function(){if(this.params.scrollbar.el){var t=this.scrollbar,i=this.touchEvents,s=this.touchEventsDesktop,a=this.params,r=t.$el[0],n=!(!h.passiveListener||!a.passiveListener)&&{passive:!1,capture:!1},o=!(!h.passiveListener||!a.passiveListener)&&{passive:!0,capture:!1};h.touch||!h.pointerEvents&&!h.prefixedPointerEvents?(h.touch&&(r.removeEventListener(i.start,this.scrollbar.onDragStart,n),r.removeEventListener(i.move,this.scrollbar.onDragMove,n),r.removeEventListener(i.end,this.scrollbar.onDragEnd,o)),(a.simulateTouch&&!y.ios&&!y.android||a.simulateTouch&&!h.touch&&y.ios)&&(r.removeEventListener("mousedown",this.scrollbar.onDragStart,n),e.removeEventListener("mousemove",this.scrollbar.onDragMove,n),e.removeEventListener("mouseup",this.scrollbar.onDragEnd,o))):(r.removeEventListener(s.start,this.scrollbar.onDragStart,n),e.removeEventListener(s.move,this.scrollbar.onDragMove,n),e.removeEventListener(s.end,this.scrollbar.onDragEnd,o))}},init:function(){if(this.params.scrollbar.el){var e=this.scrollbar,t=this.$el,i=this.params.scrollbar,a=s(i.el);this.params.uniqueNavElements&&"string"==typeof i.el&&a.length>1&&1===t.find(i.el).length&&(a=t.find(i.el));var r=a.find("."+this.params.scrollbar.dragClass);0===r.length&&(r=s('
    '),a.append(r)),d.extend(e,{$el:a,el:a[0],$dragEl:r,dragEl:r[0]}),i.draggable&&e.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},j={setTransform:function(e,t){var i=this.rtl,a=s(e),r=i?-1:1,n=a.attr("data-swiper-parallax")||"0",o=a.attr("data-swiper-parallax-x"),l=a.attr("data-swiper-parallax-y"),d=a.attr("data-swiper-parallax-scale"),h=a.attr("data-swiper-parallax-opacity");if(o||l?(o=o||"0",l=l||"0"):this.isHorizontal()?(o=n,l="0"):(l=n,o="0"),o=o.indexOf("%")>=0?parseInt(o,10)*t*r+"%":o*t*r+"px",l=l.indexOf("%")>=0?parseInt(l,10)*t+"%":l*t+"px",void 0!==h&&null!==h){var p=h-(h-1)*(1-Math.abs(t));a[0].style.opacity=p}if(void 0===d||null===d)a.transform("translate3d("+o+", "+l+", 0px)");else{var c=d-(d-1)*(1-Math.abs(t));a.transform("translate3d("+o+", "+l+", 0px) scale("+c+")")}},setTranslate:function(){var e=this,t=e.$el,i=e.slides,a=e.progress,r=e.snapGrid;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t,i){e.parallax.setTransform(i,a)}),i.each(function(t,i){var n=i.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(t/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),s(i).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t,i){e.parallax.setTransform(i,n)})})},setTransition:function(e){void 0===e&&(e=this.params.speed);this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t,i){var a=s(i),r=parseInt(a.attr("data-swiper-parallax-duration"),10)||e;0===e&&(r=0),a.transition(r)})}},K={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,i=e.targetTouches[0].pageY,s=e.targetTouches[1].pageX,a=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(s-t,2)+Math.pow(a-i,2))},onGestureStart:function(e){var t=this.params.zoom,i=this.zoom,a=i.gesture;if(i.fakeGestureTouched=!1,i.fakeGestureMoved=!1,!h.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;i.fakeGestureTouched=!0,a.scaleStart=K.getDistanceBetweenTouches(e)}a.$slideEl&&a.$slideEl.length||(a.$slideEl=s(e.target).closest(".swiper-slide"),0===a.$slideEl.length&&(a.$slideEl=this.slides.eq(this.activeIndex)),a.$imageEl=a.$slideEl.find("img, svg, canvas"),a.$imageWrapEl=a.$imageEl.parent("."+t.containerClass),a.maxRatio=a.$imageWrapEl.attr("data-swiper-zoom")||t.maxRatio,0!==a.$imageWrapEl.length)?(a.$imageEl.transition(0),this.zoom.isScaling=!0):a.$imageEl=void 0},onGestureChange:function(e){var t=this.params.zoom,i=this.zoom,s=i.gesture;if(!h.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;i.fakeGestureMoved=!0,s.scaleMove=K.getDistanceBetweenTouches(e)}s.$imageEl&&0!==s.$imageEl.length&&(h.gestures?this.zoom.scale=e.scale*i.currentScale:i.scale=s.scaleMove/s.scaleStart*i.currentScale,i.scale>s.maxRatio&&(i.scale=s.maxRatio-1+Math.pow(i.scale-s.maxRatio+1,.5)),i.scales.touchesStart.x))return void(s.isTouched=!1);if(!this.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.ys.touchesStart.y))return void(s.isTouched=!1)}e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentXs.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentYs.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),a.prevPositionX||(a.prevPositionX=s.touchesCurrent.x),a.prevPositionY||(a.prevPositionY=s.touchesCurrent.y),a.prevTime||(a.prevTime=Date.now()),a.x=(s.touchesCurrent.x-a.prevPositionX)/(Date.now()-a.prevTime)/2,a.y=(s.touchesCurrent.y-a.prevPositionY)/(Date.now()-a.prevTime)/2,Math.abs(s.touchesCurrent.x-a.prevPositionX)<2&&(a.x=0),Math.abs(s.touchesCurrent.y-a.prevPositionY)<2&&(a.y=0),a.prevPositionX=s.touchesCurrent.x,a.prevPositionY=s.touchesCurrent.y,a.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,i=e.image,s=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!i.isTouched||!i.isMoved)return i.isTouched=!1,void(i.isMoved=!1);i.isTouched=!1,i.isMoved=!1;var a=300,r=300,n=s.x*a,o=i.currentX+n,l=s.y*r,d=i.currentY+l;0!==s.x&&(a=Math.abs((o-i.currentX)/s.x)),0!==s.y&&(r=Math.abs((d-i.currentY)/s.y));var h=Math.max(a,r);i.currentX=o,i.currentY=d;var p=i.width*e.scale,c=i.height*e.scale;i.minX=Math.min(t.slideWidth/2-p/2,0),i.maxX=-i.minX,i.minY=Math.min(t.slideHeight/2-c/2,0),i.maxY=-i.minY,i.currentX=Math.max(Math.min(i.currentX,i.maxX),i.minX),i.currentY=Math.max(Math.min(i.currentY,i.maxY),i.minY),t.$imageWrapEl.transition(h).transform("translate3d("+i.currentX+"px, "+i.currentY+"px,0)")}},onTransitionEnd:function(){var e=this.zoom,t=e.gesture;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl.transform("translate3d(0,0,0)"),t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0,e.scale=1,e.currentScale=1)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,i,a,r,n,o,l,d,h,p,c,u,v,f,m,g,b=this.zoom,w=this.params.zoom,y=b.gesture,x=b.image;(y.$slideEl||(y.$slideEl=this.clickedSlide?s(this.clickedSlide):this.slides.eq(this.activeIndex),y.$imageEl=y.$slideEl.find("img, svg, canvas"),y.$imageWrapEl=y.$imageEl.parent("."+w.containerClass)),y.$imageEl&&0!==y.$imageEl.length)&&(y.$slideEl.addClass(""+w.zoomedSlideClass),void 0===x.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,i="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=x.touchesStart.x,i=x.touchesStart.y),b.scale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,b.currentScale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,e?(m=y.$slideEl[0].offsetWidth,g=y.$slideEl[0].offsetHeight,a=y.$slideEl.offset().left+m/2-t,r=y.$slideEl.offset().top+g/2-i,l=y.$imageEl[0].offsetWidth,d=y.$imageEl[0].offsetHeight,h=l*b.scale,p=d*b.scale,v=-(c=Math.min(m/2-h/2,0)),f=-(u=Math.min(g/2-p/2,0)),n=a*b.scale,o=r*b.scale,nv&&(n=v),of&&(o=f)):(n=0,o=0),y.$imageWrapEl.transition(300).transform("translate3d("+n+"px, "+o+"px,0)"),y.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+b.scale+")"))},out:function(){var e=this.zoom,t=this.params.zoom,i=e.gesture;i.$slideEl||(i.$slideEl=this.clickedSlide?s(this.clickedSlide):this.slides.eq(this.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas"),i.$imageWrapEl=i.$imageEl.parent("."+t.containerClass)),i.$imageEl&&0!==i.$imageEl.length&&(e.scale=1,e.currentScale=1,i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),i.$slideEl.removeClass(""+t.zoomedSlideClass),i.$slideEl=void 0)},enable:function(){var e=this.zoom;if(!e.enabled){e.enabled=!0;var t=!("touchstart"!==this.touchEvents.start||!h.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1};h.gestures?(this.$wrapperEl.on("gesturestart",".swiper-slide",e.onGestureStart,t),this.$wrapperEl.on("gesturechange",".swiper-slide",e.onGestureChange,t),this.$wrapperEl.on("gestureend",".swiper-slide",e.onGestureEnd,t)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.on(this.touchEvents.start,".swiper-slide",e.onGestureStart,t),this.$wrapperEl.on(this.touchEvents.move,".swiper-slide",e.onGestureChange,t),this.$wrapperEl.on(this.touchEvents.end,".swiper-slide",e.onGestureEnd,t)),this.$wrapperEl.on(this.touchEvents.move,"."+this.params.zoom.containerClass,e.onTouchMove)}},disable:function(){var e=this.zoom;if(e.enabled){this.zoom.enabled=!1;var t=!("touchstart"!==this.touchEvents.start||!h.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1};h.gestures?(this.$wrapperEl.off("gesturestart",".swiper-slide",e.onGestureStart,t),this.$wrapperEl.off("gesturechange",".swiper-slide",e.onGestureChange,t),this.$wrapperEl.off("gestureend",".swiper-slide",e.onGestureEnd,t)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.off(this.touchEvents.start,".swiper-slide",e.onGestureStart,t),this.$wrapperEl.off(this.touchEvents.move,".swiper-slide",e.onGestureChange,t),this.$wrapperEl.off(this.touchEvents.end,".swiper-slide",e.onGestureEnd,t)),this.$wrapperEl.off(this.touchEvents.move,"."+this.params.zoom.containerClass,e.onTouchMove)}}},U={loadInSlide:function(e,t){void 0===t&&(t=!0);var i=this,a=i.params.lazy;if(void 0!==e&&0!==i.slides.length){var r=i.virtual&&i.params.virtual.enabled?i.$wrapperEl.children("."+i.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):i.slides.eq(e),n=r.find("."+a.elementClass+":not(."+a.loadedClass+"):not(."+a.loadingClass+")");!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||(n=n.add(r[0])),0!==n.length&&n.each(function(e,n){var o=s(n);o.addClass(a.loadingClass);var l=o.attr("data-background"),d=o.attr("data-src"),h=o.attr("data-srcset"),p=o.attr("data-sizes");i.loadImage(o[0],d||l,h,p,!1,function(){if(void 0!==i&&null!==i&&i&&(!i||i.params)&&!i.destroyed){if(l?(o.css("background-image",'url("'+l+'")'),o.removeAttr("data-background")):(h&&(o.attr("srcset",h),o.removeAttr("data-srcset")),p&&(o.attr("sizes",p),o.removeAttr("data-sizes")),d&&(o.attr("src",d),o.removeAttr("data-src"))),o.addClass(a.loadedClass).removeClass(a.loadingClass),r.find("."+a.preloaderClass).remove(),i.params.loop&&t){var e=r.attr("data-swiper-slide-index");if(r.hasClass(i.params.slideDuplicateClass)){var s=i.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+i.params.slideDuplicateClass+")");i.lazy.loadInSlide(s.index(),!1)}else{var n=i.$wrapperEl.children("."+i.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');i.lazy.loadInSlide(n.index(),!1)}}i.emit("lazyImageReady",r[0],o[0])}}),i.emit("lazyImageLoad",r[0],o[0])})}},load:function(){var e=this,t=e.$wrapperEl,i=e.params,a=e.slides,r=e.activeIndex,n=e.virtual&&i.virtual.enabled,o=i.lazy,l=i.slidesPerView;function d(e){if(n){if(t.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(a[e])return!0;return!1}function h(e){return n?s(e).attr("data-swiper-slide-index"):s(e).index()}if("auto"===l&&(l=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+i.slideVisibleClass).each(function(t,i){var a=n?s(i).attr("data-swiper-slide-index"):s(i).index();e.lazy.loadInSlide(a)});else if(l>1)for(var p=r;p1||o.loadPrevNextAmount&&o.loadPrevNextAmount>1){for(var c=o.loadPrevNextAmount,u=l,v=Math.min(r+u+Math.max(c,u),a.length),f=Math.max(r-Math.max(u,c),0),m=r+l;m0&&e.lazy.loadInSlide(h(b));var w=t.children("."+i.slidePrevClass);w.length>0&&e.lazy.loadInSlide(h(w))}}},_={LinearSpline:function(e,t){var i,s,a,r,n,o=function(e,t){for(s=-1,i=e.length;i-s>1;)e[a=i+s>>1]<=t?s=a:i=a;return i};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=o(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){this.controller.spline||(this.controller.spline=this.params.loop?new _.LinearSpline(this.slidesGrid,e.slidesGrid):new _.LinearSpline(this.snapGrid,e.snapGrid))},setTranslate:function(e,t){var i,s,a=this,r=a.controller.control;function n(e){var t=e.rtl&&"horizontal"===e.params.direction?-a.translate:a.translate;"slide"===a.params.controller.by&&(a.controller.getInterpolateFunction(e),s=-a.controller.spline.interpolate(-t)),s&&"container"!==a.params.controller.by||(i=(e.maxTranslate()-e.minTranslate())/(a.maxTranslate()-a.minTranslate()),s=(t-a.minTranslate())*i+e.minTranslate()),a.params.controller.inverse&&(s=e.maxTranslate()-s),e.updateProgress(s),e.setTranslate(s,a),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o0&&(this.isBeginning?this.a11y.disableEl(i):this.a11y.enableEl(i)),t&&t.length>0&&(this.isEnd?this.a11y.disableEl(t):this.a11y.enableEl(t))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each(function(i,a){var r=s(a);e.a11y.makeElFocusable(r),e.a11y.addElRole(r,"button"),e.a11y.addElLabel(r,t.paginationBulletMessage.replace(/{{index}}/,r.index()+1))})},init:function(){this.$el.append(this.a11y.liveRegion);var e,t,i=this.params.a11y;this.navigation&&this.navigation.$nextEl&&(e=this.navigation.$nextEl),this.navigation&&this.navigation.$prevEl&&(t=this.navigation.$prevEl),e&&(this.a11y.makeElFocusable(e),this.a11y.addElRole(e,"button"),this.a11y.addElLabel(e,i.nextSlideMessage),e.on("keydown",this.a11y.onEnterKey)),t&&(this.a11y.makeElFocusable(t),this.a11y.addElRole(t,"button"),this.a11y.addElLabel(t,i.prevSlideMessage),t.on("keydown",this.a11y.onEnterKey)),this.pagination&&this.params.pagination.clickable&&this.pagination.bullets&&this.pagination.bullets.length&&this.pagination.$el.on("keydown","."+this.params.pagination.bulletClass,this.a11y.onEnterKey)},destroy:function(){var e,t;this.a11y.liveRegion&&this.a11y.liveRegion.length>0&&this.a11y.liveRegion.remove(),this.navigation&&this.navigation.$nextEl&&(e=this.navigation.$nextEl),this.navigation&&this.navigation.$prevEl&&(t=this.navigation.$prevEl),e&&e.off("keydown",this.a11y.onEnterKey),t&&t.off("keydown",this.a11y.onEnterKey),this.pagination&&this.params.pagination.clickable&&this.pagination.bullets&&this.pagination.bullets.length&&this.pagination.$el.off("keydown","."+this.params.pagination.bulletClass,this.a11y.onEnterKey)}},Q={init:function(){if(this.params.history){if(!t.history||!t.history.pushState)return this.params.history.enabled=!1,void(this.params.hashNavigation.enabled=!0);var e=this.history;e.initialized=!0,e.paths=Q.getPathValues(),(e.paths.key||e.paths.value)&&(e.scrollToSlide(0,e.paths.value,this.params.runCallbacksOnInit),this.params.history.replaceState||t.addEventListener("popstate",this.history.setHistoryPopState))}},destroy:function(){this.params.history.replaceState||t.removeEventListener("popstate",this.history.setHistoryPopState)},setHistoryPopState:function(){this.history.paths=Q.getPathValues(),this.history.scrollToSlide(this.params.speed,this.history.paths.value,!1)},getPathValues:function(){var e=t.location.pathname.slice(1).split("/").filter(function(e){return""!==e}),i=e.length;return{key:e[i-2],value:e[i-1]}},setHistory:function(e,i){if(this.history.initialized&&this.params.history.enabled){var s=this.slides.eq(i),a=Q.slugify(s.attr("data-history"));t.location.pathname.includes(e)||(a=e+"/"+a);var r=t.history.state;r&&r.value===a||(this.params.history.replaceState?t.history.replaceState({value:a},null,a):t.history.pushState({value:a},null,a))}},slugify:function(e){return e.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(e,t,i){if(t)for(var s=0,a=this.slides.length;s'),i.append(e)),e.css({height:r+"px"})):0===(e=t.find(".swiper-cube-shadow")).length&&(e=s('
    '),t.append(e)));for(var u=0;u-1&&(c=90*f+90*b,o&&(c=90*-f-90*b)),v.transform(E),d.slideShadows){var T=h?v.find(".swiper-slide-shadow-left"):v.find(".swiper-slide-shadow-top"),S=h?v.find(".swiper-slide-shadow-right"):v.find(".swiper-slide-shadow-bottom");0===T.length&&(T=s('
    '),v.append(T)),0===S.length&&(S=s('
    '),v.append(S)),T.length&&(T[0].style.opacity=Math.max(-b,0)),S.length&&(S[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+l/2+"px","-moz-transform-origin":"50% 50% -"+l/2+"px","-ms-transform-origin":"50% 50% -"+l/2+"px","transform-origin":"50% 50% -"+l/2+"px"}),d.shadow)if(h)e.transform("translate3d(0px, "+(r/2+d.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+d.shadowScale+")");else{var C=Math.abs(c)-90*Math.floor(Math.abs(c)/90),M=1.5-(Math.sin(2*C*Math.PI/360)/2+Math.cos(2*C*Math.PI/360)/2),z=d.shadowScale,k=d.shadowScale/M,$=d.shadowOffset;e.transform("scale3d("+z+", 1, "+k+") translate3d(0px, "+(n/2+$)+"px, "+-n/2/k+"px) rotateX(-90deg)")}var L=P.isSafari||P.isUiWebView?-l/2:0;i.transform("translate3d(0px,0,"+L+"px) rotateX("+(this.isHorizontal()?0:c)+"deg) rotateY("+(this.isHorizontal()?-c:0)+"deg)")},setTransition:function(e){var t=this.$el;this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}},se={setTranslate:function(){for(var e=this.slides,t=0;t'),i.append(d)),0===h.length&&(h=s('
    '),i.append(h)),d.length&&(d[0].style.opacity=Math.max(-a,0)),h.length&&(h[0].style.opacity=Math.max(a,0))}i.transform("translate3d("+o+"px, "+l+"px, 0px) rotateX("+n+"deg) rotateY("+r+"deg)")}},setTransition:function(e){var t=this,i=t.slides,s=t.activeIndex,a=t.$wrapperEl;if(i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){var r=!1;i.eq(s).transitionEnd(function(){if(!r&&t&&!t.destroyed){r=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],i=0;i'),f.append(S)),0===C.length&&(C=s('
    '),f.append(C)),S.length&&(S[0].style.opacity=g>0?g:0),C.length&&(C[0].style.opacity=-g>0?-g:0)}}(h.pointerEvents||h.prefixedPointerEvents)&&(a[0].style.perspectiveOrigin=d+"px 50%")},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},re=[D,O,A,H,X,B,V,{name:"mousewheel",params:{mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarged:"container"}},create:function(){d.extend(this,{mousewheel:{enabled:!1,enable:R.enable.bind(this),disable:R.disable.bind(this),handle:R.handle.bind(this),lastScrollTime:d.now()}})},on:{init:function(){this.params.mousewheel.enabled&&this.mousewheel.enable()},destroy:function(){this.mousewheel.enabled&&this.mousewheel.disable()}}},{name:"navigation",params:{navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}},create:function(){d.extend(this,{navigation:{init:F.init.bind(this),update:F.update.bind(this),destroy:F.destroy.bind(this)}})},on:{init:function(){this.navigation.init(),this.navigation.update()},toEdge:function(){this.navigation.update()},fromEdge:function(){this.navigation.update()},destroy:function(){this.navigation.destroy()},click:function(e){var t=this.navigation,i=t.$nextEl,a=t.$prevEl;!this.params.navigation.hideOnClick||s(e.target).is(a)||s(e.target).is(i)||(i&&i.toggleClass(this.params.navigation.hiddenClass),a&&a.toggleClass(this.params.navigation.hiddenClass))}}},{name:"pagination",params:{pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create:function(){d.extend(this,{pagination:{init:W.init.bind(this),render:W.render.bind(this),update:W.update.bind(this),destroy:W.destroy.bind(this),dynamicBulletIndex:0}})},on:{init:function(){this.pagination.init(),this.pagination.render(),this.pagination.update()},activeIndexChange:function(){this.params.loop?this.pagination.update():void 0===this.snapIndex&&this.pagination.update()},snapIndexChange:function(){this.params.loop||this.pagination.update()},slidesLengthChange:function(){this.params.loop&&(this.pagination.render(),this.pagination.update())},snapGridLengthChange:function(){this.params.loop||(this.pagination.render(),this.pagination.update())},destroy:function(){this.pagination.destroy()},click:function(e){this.params.pagination.el&&this.params.pagination.hideOnClick&&this.pagination.$el.length>0&&!s(e.target).hasClass(this.params.pagination.bulletClass)&&this.pagination.$el.toggleClass(this.params.pagination.hiddenClass)}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){d.extend(this,{scrollbar:{init:q.init.bind(this),destroy:q.destroy.bind(this),updateSize:q.updateSize.bind(this),setTranslate:q.setTranslate.bind(this),setTransition:q.setTransition.bind(this),enableDraggable:q.enableDraggable.bind(this),disableDraggable:q.disableDraggable.bind(this),setDragPosition:q.setDragPosition.bind(this),onDragStart:q.onDragStart.bind(this),onDragMove:q.onDragMove.bind(this),onDragEnd:q.onDragEnd.bind(this),isTouched:!1,timeout:null,dragTimeout:null}})},on:{init:function(){this.scrollbar.init(),this.scrollbar.updateSize(),this.scrollbar.setTranslate()},update:function(){this.scrollbar.updateSize()},resize:function(){this.scrollbar.updateSize()},observerUpdate:function(){this.scrollbar.updateSize()},setTranslate:function(){this.scrollbar.setTranslate()},setTransition:function(e){this.scrollbar.setTransition(e)},destroy:function(){this.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create:function(){d.extend(this,{parallax:{setTransform:j.setTransform.bind(this),setTranslate:j.setTranslate.bind(this),setTransition:j.setTransition.bind(this)}})},on:{beforeInit:function(){this.params.parallax.enabled&&(this.params.watchSlidesProgress=!0)},init:function(){this.params.parallax&&this.parallax.setTranslate()},setTranslate:function(){this.params.parallax&&this.parallax.setTranslate()},setTransition:function(e){this.params.parallax&&this.parallax.setTransition(e)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this,t={enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}};"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(i){t[i]=K[i].bind(e)}),d.extend(e,{zoom:t})},on:{init:function(){this.params.zoom.enabled&&this.zoom.enable()},destroy:function(){this.zoom.disable()},touchStart:function(e){this.zoom.enabled&&this.zoom.onTouchStart(e)},touchEnd:function(e){this.zoom.enabled&&this.zoom.onTouchEnd(e)},doubleTap:function(e){this.params.zoom.enabled&&this.zoom.enabled&&this.params.zoom.toggle&&this.zoom.toggle(e)},transitionEnd:function(){this.zoom.enabled&&this.params.zoom.enabled&&this.zoom.onTransitionEnd()}}},{name:"lazy",params:{lazy:{enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create:function(){d.extend(this,{lazy:{initialImageLoaded:!1,load:U.load.bind(this),loadInSlide:U.loadInSlide.bind(this)}})},on:{beforeInit:function(){this.params.lazy.enabled&&this.params.preloadImages&&(this.params.preloadImages=!1)},init:function(){this.params.lazy.enabled&&!this.params.loop&&0===this.params.initialSlide&&this.lazy.load()},scroll:function(){this.params.freeMode&&!this.params.freeModeSticky&&this.lazy.load()},resize:function(){this.params.lazy.enabled&&this.lazy.load()},scrollbarDragMove:function(){this.params.lazy.enabled&&this.lazy.load()},transitionStart:function(){this.params.lazy.enabled&&(this.params.lazy.loadOnTransitionStart||!this.params.lazy.loadOnTransitionStart&&!this.lazy.initialImageLoaded)&&this.lazy.load()},transitionEnd:function(){this.params.lazy.enabled&&!this.params.lazy.loadOnTransitionStart&&this.lazy.load()}}},{name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create:function(){d.extend(this,{controller:{control:this.params.controller.control,getInterpolateFunction:_.getInterpolateFunction.bind(this),setTranslate:_.setTranslate.bind(this),setTransition:_.setTransition.bind(this)}})},on:{update:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},resize:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},observerUpdate:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},setTranslate:function(e,t){this.controller.control&&this.controller.setTranslate(e,t)},setTransition:function(e,t){this.controller.control&&this.controller.setTransition(e,t)}}},{name:"a11y",params:{a11y:{enabled:!1,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}"}},create:function(){var e=this;d.extend(e,{a11y:{liveRegion:s('')}}),Object.keys(Z).forEach(function(t){e.a11y[t]=Z[t].bind(e)})},on:{init:function(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate:function(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy:function(){this.params.a11y.enabled&&this.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create:function(){d.extend(this,{history:{init:Q.init.bind(this),setHistory:Q.setHistory.bind(this),setHistoryPopState:Q.setHistoryPopState.bind(this),scrollToSlide:Q.scrollToSlide.bind(this),destroy:Q.destroy.bind(this)}})},on:{init:function(){this.params.history.enabled&&this.history.init()},destroy:function(){this.params.history.enabled&&this.history.destroy()},transitionEnd:function(){this.history.initialized&&this.history.setHistory(this.params.history.key,this.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){d.extend(this,{hashNavigation:{initialized:!1,init:J.init.bind(this),destroy:J.destroy.bind(this),setHash:J.setHash.bind(this),onHashCange:J.onHashCange.bind(this)}})},on:{init:function(){this.params.hashNavigation.enabled&&this.hashNavigation.init()},destroy:function(){this.params.hashNavigation.enabled&&this.hashNavigation.destroy()},transitionEnd:function(){this.hashNavigation.initialized&&this.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){d.extend(this,{autoplay:{running:!1,paused:!1,run:ee.run.bind(this),start:ee.start.bind(this),stop:ee.stop.bind(this),pause:ee.pause.bind(this)}})},on:{init:function(){this.params.autoplay.enabled&&this.autoplay.start()},beforeTransitionStart:function(e,t){this.autoplay.running&&(t||!this.params.autoplay.disableOnInteraction?this.autoplay.pause(e):this.autoplay.stop())},sliderFirstMove:function(){this.autoplay.running&&(this.params.autoplay.disableOnInteraction?this.autoplay.stop():this.autoplay.pause())},destroy:function(){this.autoplay.running&&this.autoplay.stop()}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){d.extend(this,{fadeEffect:{setTranslate:te.setTranslate.bind(this),setTransition:te.setTransition.bind(this)}})},on:{beforeInit:function(){if("fade"===this.params.effect){this.classNames.push(this.params.containerModifierClass+"fade");var e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};d.extend(this.params,e),d.extend(this.originalParams,e)}},setTranslate:function(){"fade"===this.params.effect&&this.fadeEffect.setTranslate()},setTransition:function(e){"fade"===this.params.effect&&this.fadeEffect.setTransition(e)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){d.extend(this,{cubeEffect:{setTranslate:ie.setTranslate.bind(this),setTransition:ie.setTransition.bind(this)}})},on:{beforeInit:function(){if("cube"===this.params.effect){this.classNames.push(this.params.containerModifierClass+"cube"),this.classNames.push(this.params.containerModifierClass+"3d");var e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};d.extend(this.params,e),d.extend(this.originalParams,e)}},setTranslate:function(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition:function(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){d.extend(this,{flipEffect:{setTranslate:se.setTranslate.bind(this),setTransition:se.setTransition.bind(this)}})},on:{beforeInit:function(){if("flip"===this.params.effect){this.classNames.push(this.params.containerModifierClass+"flip"),this.classNames.push(this.params.containerModifierClass+"3d");var e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};d.extend(this.params,e),d.extend(this.originalParams,e)}},setTranslate:function(){"flip"===this.params.effect&&this.flipEffect.setTranslate()},setTransition:function(e){"flip"===this.params.effect&&this.flipEffect.setTransition(e)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0}},create:function(){d.extend(this,{coverflowEffect:{setTranslate:ae.setTranslate.bind(this),setTransition:ae.setTransition.bind(this)}})},on:{beforeInit:function(){"coverflow"===this.params.effect&&(this.classNames.push(this.params.containerModifierClass+"coverflow"),this.classNames.push(this.params.containerModifierClass+"3d"),this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},setTranslate:function(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition:function(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}}];return void 0===I.use&&(I.use=I.Class.use,I.installModule=I.Class.installModule),I.use(re),I}); +//# sourceMappingURL=swiper.min.js.map diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js.map b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js.map new file mode 100644 index 0000000..edb0a5d --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/swiper-4.1.6/js/swiper.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["swiper.js"],"names":["global","factory","exports","module","define","amd","Swiper","this","doc","document","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","location","hash","win","window","navigator","userAgent","history","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","Dom7","arr","i","length","$$1","selector","context","els","tempParent","html","trim","indexOf","toCreate","innerHTML","push","match","split","nodeType","unique","uniqueArray","fn","prototype","Class","Methods","addClass","className","classes","j","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","value","arguments$1","arguments","getAttribute","attrName","removeAttr","removeAttribute","data","key","el","dom7ElementDataStorage","dataKey","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","args","len","assign","eventType","targetSelector","listener","capture","handleLiveEvent","e","target","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","undefined","events","dom7LiveListeners","type","proxyListener","dom7Listeners","off","k$1","trigger","evt","detail","bubbles","cancelable","filter","dataIndex","dispatchEvent","transitionEnd","callback","dom","fireCallBack","call","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","prop","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","index","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","removeChild","toAdd","Object","keys","forEach","methodName","testDiv","Utils","deleteProps","obj","object","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","parseUrlQuery","url","params","param","query","urlToParse","href","paramsPart","decodeURIComponent","isObject","o","constructor","extend","len$1","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","Support","touch","Modernizr","DocumentTouch","pointerEvents","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","transforms3d","csstransforms3d","flexbox","observer","passiveListener","supportsPassive","opts","defineProperty","get","gestures","SwiperClass","self","eventsListeners","eventName","staticAccessors","components","configurable","handler","event","once","onceHandler","eventHandler","splice","emit","Array","isArray","slice","handlers","useModulesParams","instanceParams","instance","modules","moduleName","useModules","modulesParams","moduleParams","modulePropName","moduleProp","bind","moduleEventName","create","set","use","installModule","name","proto","static","install","m","concat","defineProperties","update","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","size","updateSlides","$wrapperEl","swiperSize","rtl","wrongRTL","slides","slidesLength","virtual","enabled","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSlidesLength","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","roundLengths","swiperSlideSize","centeredSlides","abs","slidesPerGroup","effect","setWrapperSize","i$1","i$2","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","slideProgress","minTranslate","slideBefore","slideAfter","progress","updateProgress","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","isVirtual","slideActiveClass","loop","slideDuplicateClass","slideDuplicateActiveClass","nextSlide","slideNextClass","prevSlide","slidePrevClass","slideDuplicateNextClass","slideDuplicatePrevClass","updateActiveIndex","newActiveIndex","snapIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","x","y","transition$1","setTransition","transitionStart","runCallbacks","direction","autoHeight","dir","animating","slideTo","speed","internal","swiper","slideIndex","preventIntercationOnTransition","initialSlide","initialized","allowSlideNext","allowSlidePrev","destroyed","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","slidePrev","slideReset","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","grabCursor","setGrabCursor","moving","simulateTouch","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","Device","ua","device","ios","android","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","os","osVersion","toLowerCase","webView","osVersionArr","metaViewport","minimalUi","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","touches","originalEvent","isTouchEvent","which","isTouched","isMoved","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","allowTouchMove","onTouchMove","preventedByNestedSwiper","touchReleaseOnEdges","touchAngle","diffX","diffY","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","pow","followFinger","freeMode","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","clickTimeout","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","newTranslate","min","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","attachEvents","touchEvents","wrapperEl","touchEventsTarget","start","passiveListeners","passive","move","end","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakPointsParams","originalParams","needsReLoop","points","point","sort","b","innerWidth","Browser","isIE","isSafari","isUiWebView","test","defaults","init","uniqueNavElements","preloadImages","updateOnImagesReady","noSwipingClass","containerModifierClass","slideClass","slideBlankClass","wrapperClass","runCallbacksOnInit","prototypes","wasLocked","isLocked","navigation","addClasses","classNames","suffixes","suffix","removeClasses","images","loadImage","imageEl","src","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper$1","SwiperClass$$1","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","$","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","__proto__","spv","breakLoop","translateValue","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$2","Support$2","support","Browser$2","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","MutationObserver","WebkitMutationObserver","attach","options","ObserverFunc","mutations","mutation","observe","attributes","childList","characterData","observers","observeParents","containerParents","disconnect","Observer$1","Virtual","force","ref","ref$1","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","cache","$slideEl","newCache","cachedIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","shiftKey","altKey","ctrlKey","metaKey","keyboard","onlyInViewport","inView","windowWidth","windowHeight","innerHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","Mousewheel","lastScrollTime","isSupported","element","implementation","hasFeature","isEventSupported","normalize","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","mousewheel","delta","rtlFactor","forceToAxis","invert","sensitivity","timeout","autoplay","autoplayDisableOnInteraction","stopAutoplay","releaseOnEdges","getTime","eventsTarged","Navigation","$nextEl","$prevEl","disabledClass","lockClass","nextEl","prevEl","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bullet","$bullet","bulletIndex","bulletActiveClass","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","scale","scaleX","scaleY","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","renderFraction","currentClass","totalClass","renderProgressbar","progressbarFillClass","clickable","clickableClass","modifierClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","scrollbarHide","setDragPosition","positionRatio","clientX","clientY","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragEl","draggable","Parallax","setTransform","p","currentOpacity","currentScale","parallax","slideEl","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","sqrt","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","maxRatio","isScaling","onGestureChange","scaleMove","minRatio","onGestureEnd","changedTouches","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Controller","LinearSpline","guess","i1","i3","binarySearch","array","val","interpolate","getInterpolateFunction","c","controller","spline","setTranslate$1","multiplier","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","a11y","makeElFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","History","pushState","hashNavigation","paths","getPathValues","scrollToSlide","replaceState","setHistoryPopState","pathArray","pathname","part","setHistory","slugify","includes","currentState","state","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","run","$activeSlideEl","reverseDirection","stopOnLastSlide","stop","running","pause","paused","waitForTransition","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","round","tz","slideShadows","shadowBefore","shadowAfter","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowOffset","shadowAngle","sin","cos","scale1","shadowScale","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","perspectiveOrigin","hideOnClick","toEdge","fromEdge","bulletElement","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","dragClass","observerUpdate","containerClass","zoomedSlideClass","touchStart","touchEnd","doubleTap","loadOnTransitionStart","preloaderClass","scroll","scrollbarDragMove","notificationClass","paginationUpdate","disableOnInteraction","beforeTransitionStart","sliderFirstMove"],"mappings":"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","file":"swiper.min.js","sourcesContent":["/**\n * Swiper 4.1.6\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2018 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 11, 2018\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Swiper = factory());\n}(this, (function () { 'use strict';\n\n/**\n * SSR Window 1.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 10, 2018\n */\nvar d;\nif (typeof document === 'undefined') {\n d = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {},\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n };\n} else {\n // eslint-disable-next-line\n d = document;\n}\n\nvar doc = d;\n\nvar w;\nif (typeof window === 'undefined') {\n w = {\n document: doc,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n };\n} else {\n // eslint-disable-next-line\n w = window;\n}\n\nvar win = w;\n\n/**\n * Dom7 2.0.2\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2018, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: February 10, 2018\n */\nvar Dom7 = function Dom7(arr) {\n var self = this;\n // Create array-like object\n for (var i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n};\n\nfunction $$1(selector, context) {\n var arr = [];\n var i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n var els;\n var tempParent;\n var html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [doc.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || doc).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) { arr.push(els[i]); }\n }\n }\n } else if (selector.nodeType || selector === win || selector === doc) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$$1.fn = Dom7.prototype;\n$$1.Class = Dom7;\n$$1.Dom7 = Dom7;\n\nfunction unique(arr) {\n var uniqueArray = [];\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); }\n }\n return uniqueArray;\n}\n// Classes and attributes\nfunction addClass(className) {\n var this$1 = this;\n\n if (typeof className === 'undefined') {\n return this;\n }\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this$1[j].classList !== 'undefined') { this$1[j].classList.add(classes[i]); }\n }\n }\n return this;\n}\nfunction removeClass(className) {\n var this$1 = this;\n\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this$1[j].classList !== 'undefined') { this$1[j].classList.remove(classes[i]); }\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) { return false; }\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n var this$1 = this;\n\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this$1[j].classList !== 'undefined') { this$1[j].classList.toggle(classes[i]); }\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n var arguments$1 = arguments;\n var this$1 = this;\n\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) { return this[0].getAttribute(attrs); }\n return undefined;\n }\n\n // Set attrs\n for (var i = 0; i < this.length; i += 1) {\n if (arguments$1.length === 2) {\n // String\n this$1[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (var attrName in attrs) {\n this$1[i][attrName] = attrs[attrName];\n this$1[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n var this$1 = this;\n\n for (var i = 0; i < this.length; i += 1) {\n this$1[i].removeAttribute(attr);\n }\n return this;\n}\nfunction data(key, value) {\n var this$1 = this;\n\n var el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute((\"data-\" + key));\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (var i = 0; i < this.length; i += 1) {\n el = this$1[i];\n if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; }\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n var this$1 = this;\n\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this$1[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n var this$1 = this;\n\n if (typeof duration !== 'string') {\n duration = duration + \"ms\"; // eslint-disable-line\n }\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this$1[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on() {\n var this$1 = this;\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n var assign;\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) { return; }\n var eventData = e.target.dom7EventData || [];\n eventData.unshift(e);\n if ($$1(target).is(targetSelector)) { listener.apply(target, eventData); }\n else {\n var parents = $$1(target).parents(); // eslint-disable-line\n for (var k = 0; k < parents.length; k += 1) {\n if ($$1(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); }\n }\n }\n }\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n eventData.unshift(e);\n listener.apply(this, eventData);\n }\n var events = eventType.split(' ');\n var j;\n for (var i = 0; i < this.length; i += 1) {\n var el = this$1[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n if (!el.dom7Listeners) { el.dom7Listeners = []; }\n el.dom7Listeners.push({\n type: eventType,\n listener: listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(events[j], handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n if (!el.dom7LiveListeners) { el.dom7LiveListeners = []; }\n el.dom7LiveListeners.push({\n type: eventType,\n listener: listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(events[j], handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off() {\n var this$1 = this;\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n var assign;\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n var events = eventType.split(' ');\n for (var i = 0; i < events.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n var el = this$1[j];\n if (!targetSelector) {\n if (el.dom7Listeners) {\n for (var k = 0; k < el.dom7Listeners.length; k += 1) {\n if (listener) {\n if (el.dom7Listeners[k].listener === listener) {\n el.removeEventListener(events[i], el.dom7Listeners[k].proxyListener, capture);\n }\n } else if (el.dom7Listeners[k].type === events[i]) {\n el.removeEventListener(events[i], el.dom7Listeners[k].proxyListener, capture);\n }\n }\n }\n } else if (el.dom7LiveListeners) {\n for (var k$1 = 0; k$1 < el.dom7LiveListeners.length; k$1 += 1) {\n if (listener) {\n if (el.dom7LiveListeners[k$1].listener === listener) {\n el.removeEventListener(events[i], el.dom7LiveListeners[k$1].proxyListener, capture);\n }\n } else if (el.dom7LiveListeners[k$1].type === events[i]) {\n el.removeEventListener(events[i], el.dom7LiveListeners[k$1].proxyListener, capture);\n }\n }\n }\n }\n }\n return this;\n}\nfunction trigger() {\n var this$1 = this;\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var events = args[0].split(' ');\n var eventData = args[1];\n for (var i = 0; i < events.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n var evt = (void 0);\n try {\n evt = new win.CustomEvent(events[i], {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = doc.createEvent('Event');\n evt.initEvent(events[i], true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n this$1[j].dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; });\n this$1[j].dispatchEvent(evt);\n this$1[j].dom7EventData = [];\n delete this$1[j].dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n var events = ['webkitTransitionEnd', 'transitionend'];\n var dom = this;\n var i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) { return; }\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = doc.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === win ? win.scrollY : el.scrollTop;\n var scrollLeft = el === win ? win.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction styles() {\n if (this[0]) { return win.getComputedStyle(this[0], null); }\n return {};\n}\nfunction css(props, value) {\n var this$1 = this;\n\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); }\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (var prop in props) {\n this$1[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this$1[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n var this$1 = this;\n\n // Don't bother continuing without a callback\n if (!callback) { return this; }\n // Iterate over the current collection\n for (var i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this$1[i], i, this$1[i]) === false) {\n // End the loop early\n return this$1;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\n// eslint-disable-next-line\nfunction html(html) {\n var this$1 = this;\n\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this$1[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n var this$1 = this;\n\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this$1[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') { return false; }\n if (typeof selector === 'string') {\n if (el.matches) { return el.matches(selector); }\n else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); }\n else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); }\n\n compareWith = $$1(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n } else if (selector === doc) { return el === doc; }\n else if (selector === win) { return el === win; }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n }\n return false;\n}\nfunction index() {\n var child = this[0];\n var i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) { i += 1; }\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') { return this; }\n var length = this.length;\n var returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) { return new Dom7([]); }\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append() {\n var this$1 = this;\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var newChild;\n\n for (var k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this$1[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this$1[i].appendChild(newChild[j]);\n }\n } else {\n this$1[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n function prepend(newChild) {\n var this$1 = this;\n\n var i;\n var j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this$1[i].insertBefore(tempDiv.childNodes[j], this$1[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this$1[i].insertBefore(newChild[j], this$1[i].childNodes[0]);\n }\n } else {\n this$1[i].insertBefore(newChild, this$1[i].childNodes[0]);\n }\n }\n return this;\n}\n function next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $$1(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.nextElementSibling) {\n var next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($$1(next).is(selector)) { nextEls.push(next); }\n } else { nextEls.push(next); }\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n if (selector) {\n if (el.previousElementSibling && $$1(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.previousElementSibling) {\n var prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($$1(prev).is(selector)) { prevEls.push(prev); }\n } else { prevEls.push(prev); }\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction parent(selector) {\n var this$1 = this;\n\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n if (this$1[i].parentNode !== null) {\n if (selector) {\n if ($$1(this$1[i].parentNode).is(selector)) { parents.push(this$1[i].parentNode); }\n } else {\n parents.push(this$1[i].parentNode);\n }\n }\n }\n return $$1(unique(parents));\n}\nfunction parents(selector) {\n var this$1 = this;\n\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var parent = this$1[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($$1(parent).is(selector)) { parents.push(parent); }\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $$1(unique(parents));\n}\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n var this$1 = this;\n\n var foundElements = [];\n for (var i = 0; i < this.length; i += 1) {\n var found = this$1[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n var this$1 = this;\n\n var children = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this$1[i].childNodes;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); }\n } else if (childNodes[j].nodeType === 1 && $$1(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n var this$1 = this;\n\n for (var i = 0; i < this.length; i += 1) {\n if (this$1[i].parentNode) { this$1[i].parentNode.removeChild(this$1[i]); }\n }\n return this;\n}\nfunction add() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var dom = this;\n var i;\n var j;\n for (i = 0; i < args.length; i += 1) {\n var toAdd = $$1(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nvar noTrigger = ('resize scroll').split(' ');\n\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n data: data,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n remove: remove,\n add: add,\n styles: styles,\n};\n\nObject.keys(Methods).forEach(function (methodName) {\n $$1.fn[methodName] = Methods[methodName];\n});\n\nvar Utils = {\n deleteProps: function deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick: function nextTick(callback, delay) {\n if ( delay === void 0 ) delay = 0;\n\n return setTimeout(callback, delay);\n },\n now: function now() {\n return Date.now();\n },\n getTranslate: function getTranslate(el, axis) {\n if ( axis === void 0 ) axis = 'x';\n\n var matrix;\n var curTransform;\n var transformMatrix;\n\n var curStyle = win.getComputedStyle(el, null);\n\n if (win.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[4]); }\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[5]); }\n }\n return curTransform || 0;\n },\n parseUrlQuery: function parseUrlQuery(url) {\n var query = {};\n var urlToParse = url || win.location.href;\n var i;\n var params;\n var param;\n var length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; });\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject: function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend: function extend() {\n var args = [], len$1 = arguments.length;\n while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ];\n\n var to = Object(args[0]);\n for (var i = 1; i < args.length; i += 1) {\n var nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nvar Support = (function Support() {\n var testDiv = doc.createElement('div');\n return {\n touch: (win.Modernizr && win.Modernizr.touch === true) || (function checkTouch() {\n return !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch));\n }()),\n\n pointerEvents: !!(win.navigator.pointerEnabled || win.PointerEvent),\n prefixedPointerEvents: !!win.navigator.msPointerEnabled,\n\n transition: (function checkTransition() {\n var style = testDiv.style;\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\n }()),\n transforms3d: (win.Modernizr && win.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\n var style = testDiv.style;\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\n }()),\n\n flexbox: (function checkFlexbox() {\n var style = testDiv.style;\n var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (var i = 0; i < styles.length; i += 1) {\n if (styles[i] in style) { return true; }\n }\n return false;\n }()),\n\n observer: (function checkObserver() {\n return ('MutationObserver' in win || 'WebkitMutationObserver' in win);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n },\n });\n win.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in win;\n }()),\n };\n}());\n\nvar SwiperClass = function SwiperClass(params) {\n if ( params === void 0 ) params = {};\n\n var self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach(function (eventName) {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n};\n\nvar staticAccessors = { components: { configurable: true } };\nSwiperClass.prototype.on = function on (events, handler) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; }\n self.eventsListeners[event].push(handler);\n });\n return self;\n};\nSwiperClass.prototype.once = function once (events, handler) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n function onceHandler() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n handler.apply(self, args);\n self.off(events, onceHandler);\n }\n return self.on(events, onceHandler);\n};\nSwiperClass.prototype.off = function off (events, handler) {\n var self = this;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n};\nSwiperClass.prototype.emit = function emit () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var self = this;\n if (!self.eventsListeners) { return self; }\n var events;\n var data;\n var context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n};\nSwiperClass.prototype.useModulesParams = function useModulesParams (instanceParams) {\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n};\nSwiperClass.prototype.useModules = function useModules (modulesParams) {\n if ( modulesParams === void 0 ) modulesParams = {};\n\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach(function (modulePropName) {\n var moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n};\nstaticAccessors.components.set = function (components) {\n var Class = this;\n if (!Class.use) { return; }\n Class.use(components);\n};\nSwiperClass.installModule = function installModule (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (!Class.prototype.modules) { Class.prototype.modules = {}; }\n var name = module.name || (((Object.keys(Class.prototype.modules).length) + \"_\" + (Utils.now())));\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach(function (key) {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach(function (key) {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n};\nSwiperClass.use = function use (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (Array.isArray(module)) {\n module.forEach(function (m) { return Class.installModule(m); });\n return Class;\n }\n return Class.installModule.apply(Class, [ module ].concat( params ));\n};\n\nObject.defineProperties( SwiperClass, staticAccessors );\n\nvar updateSize = function () {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height,\n });\n};\n\nvar updateSlides = function () {\n var swiper = this;\n var params = swiper.params;\n\n var $wrapperEl = swiper.$wrapperEl;\n var swiperSize = swiper.size;\n var rtl = swiper.rtl;\n var wrongRTL = swiper.wrongRTL;\n var slides = $wrapperEl.children((\".\" + (swiper.params.slideClass)));\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSlidesLength = slidesLength;\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) { slides.css({ marginLeft: '', marginTop: '' }); }\n else { slides.css({ marginRight: '', marginBottom: '' }); }\n\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = slidesPerRow - ((params.slidesPerColumn * slidesPerRow) - slidesLength);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = (void 0);\n var column = (void 0);\n var row = (void 0);\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide\n .css(\n (\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left')),\n (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + \"px\"))\n )\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n }\n if (slide.css('display') === 'none') { continue; } // eslint-disable-line\n if (params.slidesPerView === 'auto') {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (i === 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (Math.abs(slidePosition) < 1 / 1000) { slidePosition = 0; }\n if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n } else {\n if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") });\n }\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {\n if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) { newSlidesGrid.push(snapGrid[i$1]); }\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {\n if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(snapGrid[i$2]);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) { snapGrid = [0]; }\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) { slides.css({ marginLeft: (spaceBetween + \"px\") }); }\n else { slides.css({ marginRight: (spaceBetween + \"px\") }); }\n } else { slides.css({ marginBottom: (spaceBetween + \"px\") }); }\n }\n\n Utils.extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) { swiper.checkOverflow(); }\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n};\n\nvar updateAutoHeight = function () {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) { break; }\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) { swiper.$wrapperEl.css('height', (newHeight + \"px\")); }\n};\n\nvar updateSlidesOffset = function () {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n};\n\nvar updateSlidesProgress = function (translate) {\n if ( translate === void 0 ) translate = this.translate || 0;\n\n var swiper = this;\n var params = swiper.params;\n\n var slides = swiper.slides;\n var rtl = swiper.rtl;\n\n if (slides.length === 0) { return; }\n if (typeof slides[0].swiperSlideOffset === 'undefined') { swiper.updateSlidesOffset(); }\n\n var offsetCenter = -translate;\n if (rtl) { offsetCenter = translate; }\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress =\n (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible =\n (slideBefore >= 0 && slideBefore < swiper.size) ||\n (slideAfter > 0 && slideAfter <= swiper.size) ||\n (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n};\n\nvar updateProgress = function (translate) {\n if ( translate === void 0 ) translate = this.translate || 0;\n\n var swiper = this;\n var params = swiper.params;\n\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress;\n var isBeginning = swiper.isBeginning;\n var isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) { swiper.updateSlidesProgress(translate); }\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n};\n\nvar updateSlidesClasses = function () {\n var swiper = this;\n\n var slides = swiper.slides;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n var realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(((params.slideActiveClass) + \" \" + (params.slideNextClass) + \" \" + (params.slidePrevClass) + \" \" + (params.slideDuplicateActiveClass) + \" \" + (params.slideDuplicateNextClass) + \" \" + (params.slideDuplicatePrevClass)));\n\n var activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\"));\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n var nextSlide = activeSlide.nextAll((\".\" + (params.slideClass))).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n var prevSlide = activeSlide.prevAll((\".\" + (params.slideClass))).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n};\n\nvar updateActiveIndex = function (newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtl ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var params = swiper.params;\n var previousIndex = swiper.activeIndex;\n var previousRealIndex = swiper.realIndex;\n var previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') { activeIndex = 0; }\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n};\n\nvar updateClickedSlide = function (e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $$1(e.target).closest((\".\" + (params.slideClass)))[0];\n var slideFound = false;\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) { slideFound = true; }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($$1(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $$1(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n};\n\nvar update = {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide,\n};\n\nvar getTranslate = function (axis) {\n if ( axis === void 0 ) axis = this.isHorizontal() ? 'x' : 'y';\n\n var swiper = this;\n\n var params = swiper.params;\n var rtl = swiper.rtl;\n var translate = swiper.translate;\n var $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) { currentTranslate = -currentTranslate; }\n\n return currentTranslate || 0;\n};\n\nvar setTranslate = function (translate, byController) {\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (!params.virtualTranslate) {\n if (Support.transforms3d) { $wrapperEl.transform((\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\")); }\n else { $wrapperEl.transform((\"translate(\" + x + \"px, \" + y + \"px)\")); }\n }\n\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n};\n\nvar minTranslate = function () {\n return (-this.snapGrid[0]);\n};\n\nvar maxTranslate = function () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n};\n\nvar translate = {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n};\n\nvar setTransition = function (duration, byController) {\n var swiper = this;\n\n swiper.$wrapperEl.transition(duration);\n\n swiper.emit('setTransition', duration, byController);\n};\n\nvar transitionStart = function (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var params = swiper.params;\n var previousIndex = swiper.previousIndex;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n};\n\nvar transitionEnd$1 = function (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var previousIndex = swiper.previousIndex;\n swiper.animating = false;\n swiper.setTransition(0);\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n};\n\nvar transition$1 = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd$1,\n};\n\nvar slideTo = function (index, speed, runCallbacks, internal) {\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) { slideIndex = 0; }\n\n var params = swiper.params;\n var snapGrid = swiper.snapGrid;\n var slidesGrid = swiper.slidesGrid;\n var previousIndex = swiper.previousIndex;\n var activeIndex = swiper.activeIndex;\n var rtl = swiper.rtl;\n var $wrapperEl = swiper.$wrapperEl;\n if (swiper.animating && params.preventIntercationOnTransition) {\n return false;\n }\n\n var snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) { return false; }\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) { direction = 'next'; }\n else if (slideIndex < activeIndex) { direction = 'prev'; }\n else { direction = 'reset'; }\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n\n if (speed === 0 || !Support.transition) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd(runCallbacks, direction);\n });\n }\n }\n\n return true;\n};\n\nvar slideToLoop = function (index, speed, runCallbacks, internal) {\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n};\n\n/* eslint no-unused-vars: \"off\" */\nvar slideNext = function (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n};\n\n/* eslint no-unused-vars: \"off\" */\nvar slidePrev = function (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal);\n};\n\n/* eslint no-unused-vars: \"off\" */\nvar slideReset = function (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n};\n\nvar slideToClickedSlide = function () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating) { return; }\n realIndex = parseInt($$1(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2)) ||\n (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n};\n\nvar slide = {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClickedSlide: slideToClickedSlide,\n};\n\nvar loopCreate = function () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n // Remove duplicated slides\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass))).remove();\n\n var slides = $wrapperEl.children((\".\" + (params.slideClass)));\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $$1(doc.createElement('div')).addClass(((params.slideClass) + \" \" + (params.slideBlankClass)));\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) { params.loopedSlides = slides.length; }\n\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (index, el) {\n var slide = $$1(el);\n if (index < swiper.loopedSlides) { appendSlides.push(el); }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) { prependSlides.push(el); }\n slide.attr('data-swiper-slide-index', index);\n });\n for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {\n $wrapperEl.append($$1(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {\n $wrapperEl.prepend($$1(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n};\n\nvar loopFix = function () {\n var swiper = this;\n var params = swiper.params;\n var activeIndex = swiper.activeIndex;\n var slides = swiper.slides;\n var loopedSlides = swiper.loopedSlides;\n var allowSlidePrev = swiper.allowSlidePrev;\n var allowSlideNext = swiper.allowSlideNext;\n var snapGrid = swiper.snapGrid;\n var rtl = swiper.rtl;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate();\n\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex > slides.length - (params.slidesPerView * 2))) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged$1 && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n};\n\nvar loopDestroy = function () {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n var slides = swiper.slides;\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass))).remove();\n slides.removeAttr('data-swiper-slide-index');\n};\n\nvar loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy,\n};\n\nvar setGrabCursor = function (moving) {\n var swiper = this;\n if (Support.touch || !swiper.params.simulateTouch) { return; }\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n};\n\nvar unsetGrabCursor = function () {\n var swiper = this;\n if (Support.touch) { return; }\n swiper.el.style.cursor = '';\n};\n\nvar grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor,\n};\n\nvar appendSlide = function (slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.append(slides[i]); }\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n};\n\nvar prependSlide = function (slides) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.prepend(slides[i]); }\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n};\n\nvar removeSlide = function (slidesIndexes) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n var newActiveIndex = activeIndex;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n};\n\nvar removeAllSlides = function () {\n var swiper = this;\n\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n};\n\nvar manipulation = {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides,\n};\n\nvar Device = (function Device() {\n var ua = win.navigator.userAgent;\n\n var device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n windows: false,\n iphone: false,\n ipod: false,\n ipad: false,\n cordova: win.cordova || win.phonegap,\n phonegap: win.cordova || win.phonegap,\n };\n\n var windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n\n // Windows\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n }\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Desktop\n device.desktop = !(device.os || device.android || device.webView);\n\n // Webview\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n // Minimal UI\n if (device.os && device.os === 'ios') {\n var osVersionArr = device.osVersion.split('.');\n var metaViewport = doc.querySelector('meta[name=\"viewport\"]');\n device.minimalUi =\n !device.webView &&\n (ipod || iphone) &&\n (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) &&\n metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n }\n\n // Pixel Ratio\n device.pixelRatio = win.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nvar onTouchStart = function (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n if (swiper.animating && params.preventIntercationOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) { return; }\n if (data.isTouched && data.isMoved) { return; }\n if (params.noSwiping && $$1(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : (\".\" + (params.noSwipingClass)))[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$$1(e).closest(params.swipeHandler)[0]) { return; }\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n if (\n Device.ios &&\n !Device.cordova &&\n params.iOSEdgeSwipeDetection &&\n (startX <= params.iOSEdgeSwipeThreshold) &&\n (startX >= win.screen.width - params.iOSEdgeSwipeThreshold)\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) { data.allowThresholdMove = false; }\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($$1(e.target).is(data.formElements)) { preventDefault = false; }\n if (\n doc.activeElement &&\n $$1(doc.activeElement).is(data.formElements) &&\n doc.activeElement !== e.target\n ) {\n doc.activeElement.blur();\n }\n if (preventDefault && swiper.allowTouchMove) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n};\n\nvar onTouchMove = function (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtl;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type === 'mousemove') { return; }\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\n (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\n (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && doc.activeElement) {\n if (e.target === doc.activeElement && $$1(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) { return; }\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) { diff = -diff; }\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow( (-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio )); }\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow( (swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio )); }\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger) { return; }\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n};\n\nvar onTouchEnd = function (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtl;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n var touchEndTime = Utils.now();\n var timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) {\n if (data.clickTimeout) { clearTimeout(data.clickTimeout); }\n data.clickTimeout = Utils.nextTick(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.emit('click', e);\n }, 300);\n }\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n if (data.clickTimeout) { clearTimeout(data.clickTimeout); }\n swiper.emit('doubleTap', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(function () {\n if (!swiper.destroyed) { swiper.allowClick = true; }\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n } else if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) { newPosition = -newPosition; }\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n } else if (params.freeModeSticky) {\n var nextSlide;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n } else if (params.freeModeSticky) {\n swiper.slideReset();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) { return; }\n swiper.emit('momentumBounce');\n\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) { swiper.slideTo(stopIndex + params.slidesPerGroup); }\n else { swiper.slideTo(stopIndex); }\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) { swiper.slideTo(stopIndex + params.slidesPerGroup); }\n else { swiper.slideTo(stopIndex); }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n};\n\nvar onResize = function () {\n var swiper = this;\n\n var params = swiper.params;\n var el = swiper.el;\n\n if (el && el.offsetWidth === 0) { return; }\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n var allowSlideNext = swiper.allowSlideNext;\n var allowSlidePrev = swiper.allowSlidePrev;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n if (params.freeMode) {\n var newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n};\n\nvar onClick = function (e) {\n var swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) { e.preventDefault(); }\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n};\n\nfunction attachEvents() {\n var swiper = this;\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n {\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n var capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n doc.addEventListener('mousemove', swiper.onTouchMove, capture);\n doc.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.on('resize observerUpdate', onResize);\n}\n\nfunction detachEvents() {\n var swiper = this;\n\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n var capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n doc.removeEventListener('mousemove', swiper.onTouchMove, capture);\n doc.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.off('resize observerUpdate', onResize);\n}\n\nvar events = {\n attachEvents: attachEvents,\n detachEvents: detachEvents,\n};\n\nvar setBreakpoint = function () {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var loopedSlides = swiper.loopedSlides; if ( loopedSlides === void 0 ) loopedSlides = 0;\n var params = swiper.params;\n var breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) { return; }\n // Set breakpoint for window width and update parameters\n var breakpoint = swiper.getBreakpoint(breakpoints);\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakPointsParams = breakpoint in breakpoints ? breakpoints[breakpoint] : swiper.originalParams;\n var needsReLoop = params.loop && (breakPointsParams.slidesPerView !== params.slidesPerView);\n\n Utils.extend(swiper.params, breakPointsParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakPointsParams);\n }\n};\n\nvar getBreakpoint = function (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) { return undefined; }\n var breakpoint = false;\n var points = [];\n Object.keys(breakpoints).forEach(function (point) {\n points.push(point);\n });\n points.sort(function (a, b) { return parseInt(a, 10) - parseInt(b, 10); });\n for (var i = 0; i < points.length; i += 1) {\n var point = points[i];\n if (point >= win.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n};\n\nvar breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint };\n\nvar Browser = (function Browser() {\n function isSafari() {\n var ua = win.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isIE: !!win.navigator.userAgent.match(/Trident/g) || !!win.navigator.userAgent.match(/MSIE/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent),\n };\n}());\n\nvar addClasses = function () {\n var swiper = this;\n var classNames = swiper.classNames;\n var params = swiper.params;\n var rtl = swiper.rtl;\n var $el = swiper.$el;\n var suffixes = [];\n\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n // WP8 Touch Events Fix\n if (Browser.isIE && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push((\"wp8-\" + (params.direction)));\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n};\n\nvar removeClasses = function () {\n var swiper = this;\n var $el = swiper.$el;\n var classNames = swiper.classNames;\n\n $el.removeClass(classNames.join(' '));\n};\n\nvar classes = { addClasses: addClasses, removeClasses: removeClasses };\n\nvar loadImage = function (imageEl, src, srcset, sizes, checkForComplete, callback) {\n var image;\n function onReady() {\n if (callback) { callback(); }\n }\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new win.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n};\n\nvar preloadImages = function () {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) { return; }\n if (swiper.imagesLoaded !== undefined) { swiper.imagesLoaded += 1; }\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) { swiper.update(); }\n swiper.emit('imagesReady');\n }\n }\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n};\n\nvar images = {\n loadImage: loadImage,\n preloadImages: preloadImages,\n};\n\nfunction checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked;\n\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowTouchMove = !swiper.isLocked;\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow: checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n //\n preventIntercationOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n iOSEdgeSwipeDetection: false,\n iOSEdgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n\nvar prototypes = {\n update: update,\n translate: translate,\n transition: transition$1,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow$1,\n classes: classes,\n images: images,\n};\n\nvar extendedDefaults = {};\n\nvar Swiper$1 = (function (SwiperClass$$1) {\n function Swiper() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var el;\n var params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n var assign;\n (assign = args, el = assign[0], params = assign[1]);\n }\n if (!params) { params = {}; }\n\n params = Utils.extend({}, params);\n if (el && !params.el) { params.el = el; }\n\n SwiperClass$$1.call(this, params);\n\n Object.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n var swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object') { return; }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) { return; }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object' &&\n !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) { params[moduleParamName] = { enabled: false }; }\n }\n });\n\n // Extend defaults with modules params\n var swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $$1;\n\n // Find el\n var $el = $$1(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (index, containerEl) {\n var newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n var $wrapperEl = $el.children((\".\" + (swiper.params.wrapperClass)));\n\n // Extend Swiper\n Utils.extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $$1(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n } else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n if ( SwiperClass$$1 ) Swiper.__proto__ = SwiperClass$$1;\n Swiper.prototype = Object.create( SwiperClass$$1 && SwiperClass$$1.prototype );\n Swiper.prototype.constructor = Swiper;\n\n var staticAccessors = { extendedDefaults: { configurable: true },defaults: { configurable: true },Class: { configurable: true },$: { configurable: true } };\n Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic () {\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides;\n var slidesGrid = swiper.slidesGrid;\n var swiperSize = swiper.size;\n var activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) {\n if (slides[i$1] && !breakLoop) {\n slideSize += slides[i$1].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n } else {\n for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) {\n if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n Swiper.prototype.update = function update$$1 () {\n var swiper = this;\n if (!swiper || swiper.destroyed) { return; }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtl ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n var translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n swiper.emit('update');\n };\n Swiper.prototype.init = function init () {\n var swiper = this;\n if (swiper.initialized) { return; }\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n };\n Swiper.prototype.destroy = function destroy (deleteInstance, cleanStyles) {\n if ( deleteInstance === void 0 ) deleteInstance = true;\n if ( cleanStyles === void 0 ) cleanStyles = true;\n\n var swiper = this;\n var params = swiper.params;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n };\n Swiper.extendDefaults = function extendDefaults (newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n };\n staticAccessors.extendedDefaults.get = function () {\n return extendedDefaults;\n };\n staticAccessors.defaults.get = function () {\n return defaults;\n };\n staticAccessors.Class.get = function () {\n return SwiperClass$$1;\n };\n staticAccessors.$.get = function () {\n return $$1;\n };\n\n Object.defineProperties( Swiper, staticAccessors );\n\n return Swiper;\n}(SwiperClass));\n\nvar Device$2 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$2 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nvar Browser$2 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n // Emit resize\n win.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n win.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy() {\n var swiper = this;\n win.removeEventListener('resize', swiper.resize.resizeHandler);\n win.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nvar Observer = {\n func: win.MutationObserver || win.WebkitMutationObserver,\n attach: function attach(target, options) {\n if ( options === void 0 ) options = {};\n\n var swiper = this;\n\n var ObserverFunc = Observer.func;\n var observer = new ObserverFunc(function (mutations) {\n mutations.forEach(function (mutation) {\n swiper.emit('observerUpdate', mutation);\n });\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!Support.observer || !swiper.params.observer) { return; }\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: false });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.observer.init();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var ref = swiper.params;\n var slidesPerView = ref.slidesPerView;\n var slidesPerGroup = ref.slidesPerGroup;\n var centeredSlides = ref.centeredSlides;\n var ref$1 = swiper.virtual;\n var previousFrom = ref$1.from;\n var previousTo = ref$1.to;\n var slides = ref$1.slides;\n var previousSlidesGrid = ref$1.slidesGrid;\n var renderSlide = ref$1.renderSlide;\n var previousOffset = ref$1.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n\n var offsetProp;\n if (swiper.rtl && swiper.isHorizontal()) { offsetProp = 'right'; }\n else { offsetProp = swiper.isHorizontal() ? 'left' : 'top'; }\n\n var slidesAfter;\n var slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1);\n slidesBefore = slidesPerGroup;\n }\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, (offset + \"px\"));\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: (function getSlides() {\n var slidesToRender = [];\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n var prependIndexes = [];\n var appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass))).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\")).remove();\n }\n }\n }\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n if (i$1 >= from && i$1 <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i$1);\n } else {\n if (i$1 > previousTo) { appendIndexes.push(i$1); }\n if (i$1 < previousFrom) { prependIndexes.push(i$1); }\n }\n }\n }\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) { return a < b; }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, (offset + \"px\"));\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n var $slideEl = params.renderSlide\n ? $$1(params.renderSlide.call(swiper, slide, index))\n : $$1((\"
    \" + slide + \"
    \"));\n if (!$slideEl.attr('data-swiper-slide-index')) { $slideEl.attr('data-swiper-slide-index', index); }\n if (params.cache) { swiper.virtual.cache[index] = $slideEl; }\n return $slideEl;\n },\n appendSlide: function appendSlide(slide) {\n var swiper = this;\n swiper.virtual.slides.push(slide);\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slide) {\n var swiper = this;\n swiper.virtual.slides.unshift(slide);\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n newCache[cachedIndex + 1] = cache[cachedIndex];\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideNext(0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"virtual\"));\n var overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n swiper.virtual.update();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.virtual.update();\n },\n },\n};\n\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var kc = e.keyCode || e.charCode;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n var inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents((\".\" + (swiper.params.slideClass))).length > 0 && swiper.$el.parents((\".\" + (swiper.params.slideActiveClass))).length === 0) {\n return undefined;\n }\n var windowWidth = win.innerWidth;\n var windowHeight = win.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (swiper.rtl) { swiperOffset.left -= swiper.$el[0].scrollLeft; }\n var swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height] ];\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth &&\n point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) { return undefined; }\n }\n if (swiper.isHorizontal()) {\n if (kc === 37 || kc === 39) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if ((kc === 39 && !swiper.rtl) || (kc === 37 && swiper.rtl)) { swiper.slideNext(); }\n if ((kc === 37 && !swiper.rtl) || (kc === 39 && swiper.rtl)) { swiper.slidePrev(); }\n } else {\n if (kc === 38 || kc === 40) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if (kc === 40) { swiper.slideNext(); }\n if (kc === 38) { swiper.slidePrev(); }\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n if (swiper.keyboard.enabled) { return; }\n $$1(doc).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n if (!swiper.keyboard.enabled) { return; }\n $$1(doc).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n var eventName = 'onwheel';\n var isSupported = eventName in doc;\n\n if (!isSupported) {\n var element = doc.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported &&\n doc.implementation &&\n doc.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n doc.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = doc.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nvar Mousewheel = {\n lastScrollTime: Utils.now(),\n event: (function getEvent() {\n if (win.navigator.userAgent.indexOf('firefox') > -1) { return 'DOMMouseScroll'; }\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }()),\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n\n var sX = 0;\n var sY = 0; // spinX, spinY\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handle: function handle(event) {\n var e = event;\n var swiper = this;\n var params = swiper.params.mousewheel;\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var delta = 0;\n var rtlFactor = swiper.rtl ? -1 : 1;\n\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) { delta = data.pixelX * rtlFactor; }\n else { return true; }\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) { delta = data.pixelY; }\n else { return true; }\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) { return true; }\n\n if (params.invert) { delta = -delta; }\n\n if (!swiper.params.freeMode) {\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) { return true; }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) { return true; }\n }\n swiper.mousewheel.lastScrollTime = (new win.Date()).getTime();\n } else {\n // Freemode or scrollContainer:\n var position = swiper.getTranslate() + (delta * params.sensitivity);\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) { position = swiper.minTranslate(); }\n if (position <= swiper.maxTranslate()) { position = swiper.maxTranslate(); }\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n swiper.slideReset();\n }, 300);\n }\n // Emit event\n swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) { swiper.stopAutoplay(); }\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) { return true; }\n }\n\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n return false;\n },\n enable: function enable() {\n var swiper = this;\n if (!Mousewheel.event) { return false; }\n if (swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $$1(swiper.params.mousewheel.eventsTarged);\n }\n target.on(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n if (!Mousewheel.event) { return false; }\n if (!swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $$1(swiper.params.mousewheel.eventsTarged);\n }\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n lastScrollTime: Utils.now(),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.mousewheel.enabled) { swiper.mousewheel.enable(); }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.mousewheel.enabled) { swiper.mousewheel.disable(); }\n },\n },\n};\n\nvar Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n\n if (swiper.params.loop) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) { return; }\n\n var $nextEl;\n var $prevEl;\n if (params.nextEl) {\n $nextEl = $$1(params.nextEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.nextEl === 'string' &&\n $nextEl.length > 1 &&\n swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $$1(params.prevEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.prevEl === 'string' &&\n $prevEl.length > 1 &&\n swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', function (e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) { return; }\n swiper.slideNext();\n });\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', function (e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) { return; }\n swiper.slidePrev();\n });\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click');\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click');\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.navigation.destroy();\n },\n click: function click(e) {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if (\n swiper.params.navigation.hideOnClick &&\n !$$1(e.target).is($prevEl) &&\n !$$1(e.target).is($nextEl)\n ) {\n if ($nextEl) { $nextEl.toggleClass(swiper.params.navigation.hiddenClass); }\n if ($prevEl) { $prevEl.toggleClass(swiper.params.navigation.hiddenClass); }\n }\n },\n },\n};\n\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n // Current/Total\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) { current -= total; }\n if (current < 0 && swiper.params.paginationType !== 'bullets') { current = total + current; }\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', ((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + \"px\"));\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n if (current > swiper.previousIndex && swiper.pagination.dynamicBulletIndex < (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex += 1;\n } else if (current < swiper.previousIndex && swiper.pagination.dynamicBulletIndex > 0) {\n swiper.pagination.dynamicBulletIndex -= 1;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (params.dynamicMainBullets - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(((params.bulletActiveClass) + \" \" + (params.bulletActiveClass) + \"-next \" + (params.bulletActiveClass) + \"-next-next \" + (params.bulletActiveClass) + \"-prev \" + (params.bulletActiveClass) + \"-prev-prev \" + (params.bulletActiveClass) + \"-main\"));\n if ($el.length > 1) {\n bullets.each(function (index, bullet) {\n var $bullet = $$1(bullet);\n var bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(((params.bulletActiveClass) + \"-main\"));\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(((params.bulletActiveClass) + \"-main\"));\n }\n $firstDisplayedBullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n $lastDisplayedBullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', (bulletsOffset + \"px\"));\n }\n }\n if (params.type === 'fraction') {\n $el.find((\".\" + (params.currentClass))).text(current + 1);\n $el.find((\".\" + (params.totalClass))).text(total);\n }\n if (params.type === 'progressbar') {\n var scale = (current + 1) / total;\n var scaleX = scale;\n var scaleY = 1;\n if (!swiper.isHorizontal()) {\n scaleY = scale;\n scaleX = 1;\n }\n $el.find((\".\" + (params.progressbarFillClass))).transform((\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\")).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + (params.bulletElement) + \" class=\\\"\" + (params.bulletClass) + \"\\\">\";\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find((\".\" + (params.bulletClass)));\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML =\n \"\" +\n ' / ' +\n \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) { return; }\n\n var $el = $$1(params.el);\n if ($el.length === 0) { return; }\n\n if (\n swiper.params.uniqueNavElements &&\n typeof params.el === 'string' &&\n $el.length > 1 &&\n swiper.$el.find(params.el).length === 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass((\"\" + (params.modifierClass) + (params.type) + \"-dynamic\"));\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.clickable) {\n $el.on('click', (\".\" + (params.bulletClass)), function onClick(e) {\n e.preventDefault();\n var index = $$1(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) { index += swiper.loopedSlides; }\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el: $el,\n el: $el[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) { swiper.pagination.bullets.removeClass(params.bulletActiveClass); }\n if (params.clickable) {\n $el.off('click', (\".\" + (params.bulletClass)));\n }\n },\n};\n\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.pagination.destroy();\n },\n click: function click(e) {\n var swiper = this;\n if (\n swiper.params.pagination.el &&\n swiper.params.pagination.hideOnClick &&\n swiper.pagination.$el.length > 0 &&\n !$$1(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var rtl = swiper.rtl;\n var progress = swiper.progress;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n if (rtl && swiper.isHorizontal()) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform((\"translate3d(\" + newPos + \"px, 0, 0)\"));\n } else {\n $dragEl.transform((\"translateX(\" + newPos + \"px)\"));\n }\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n if (Support.transforms3d) {\n $dragEl.transform((\"translate3d(0px, \" + newPos + \"px, 0)\"));\n } else {\n $dragEl.transform((\"translateY(\" + newPos + \"px)\"));\n }\n $dragEl[0].style.height = newSize + \"px\";\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbarHide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var $el = scrollbar.$el;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n\n var pointerPosition;\n if (swiper.isHorizontal()) {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\n } else {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\n }\n var positionRatio;\n positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (swiper.rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n\n if (!swiper.scrollbar.isTouched) { return; }\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $el = scrollbar.$el;\n\n if (!swiper.scrollbar.isTouched) { return; }\n swiper.scrollbar.isTouched = false;\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideReset();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEvents = swiper.touchEvents;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false;\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n if (Support.touch) {\n target.addEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener);\n doc.addEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener);\n doc.addEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener);\n }\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEvents = swiper.touchEvents;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false;\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n if (Support.touch) {\n target.removeEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener);\n doc.removeEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener);\n doc.removeEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener);\n }\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n\n var $el = $$1(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find((\".\" + (swiper.params.scrollbar.dragClass)));\n if ($dragEl.length === 0) {\n $dragEl = $$1((\"
    \"));\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize: function resize() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n\n var $el = $$1(el);\n var rtlFactor = rtl ? -1 : 1;\n\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = (parseInt(x, 10) * progress * rtlFactor) + \"%\";\n } else {\n x = (x * progress * rtlFactor) + \"px\";\n }\n if ((y).indexOf('%') >= 0) {\n y = (parseInt(y, 10) * progress) + \"%\";\n } else {\n y = (y * progress) + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px)\"));\n } else {\n var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\"));\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n var progress = swiper.progress;\n var snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideIndex, slideEl) {\n var slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $$1(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if ( duration === void 0 ) duration = this.params.speed;\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each(function (index, parallaxEl) {\n var $parallaxEl = $$1(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) { parallaxDuration = 0; }\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.params.watchSlidesProgress = true;\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.parallax) { return; }\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.parallax) { return; }\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.parallax) { return; }\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) { return 1; }\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt((Math.pow( (x2 - x1), 2 )) + (Math.pow( (y2 - y1), 2 )));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $$1(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0) { gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (Support.gestures) {\n swiper.zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (Math.pow( ((zoom.scale - gesture.maxRatio) + 1), 0.5 ));\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (Math.pow( ((params.minRatio - zoom.scale) + 1), 0.5 ));\n }\n gesture.$imageEl.transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) { gesture.$slideEl = undefined; }\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (image.isTouched) { return; }\n if (Device.android) { e.preventDefault(); }\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) { return; }\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) { image.startX = -image.startX; }\n if (swiper.rtl) { image.startY = -image.startY; }\n }\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) { return; }\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal() &&\n (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x) ||\n (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } else if (\n !swiper.isHorizontal() &&\n (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y) ||\n (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (Math.pow( ((image.minX - image.currentX) + 1), 0.8 ));\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (Math.pow( ((image.currentX - image.maxX) + 1), 0.8 ));\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (Math.pow( ((image.minY - image.currentY) + 1), 0.8 ));\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (Math.pow( ((image.currentY - image.maxY) + 1), 0.8 ));\n }\n\n // Velocity\n if (!velocity.prevPositionX) { velocity.prevPositionX = image.touchesCurrent.x; }\n if (!velocity.prevPositionY) { velocity.prevPositionY = image.touchesCurrent.y; }\n if (!velocity.prevTime) { velocity.prevTime = Date.now(); }\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) { velocity.x = 0; }\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) { velocity.y = 0; }\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) { momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); }\n if (velocity.y !== 0) { momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); }\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function in$1(e) {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $$1(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n gesture.$slideEl.addClass((\"\" + (params.zoomedSlideClass)));\n\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform((\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\"));\n gesture.$imageEl.transition(300).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n out: function out() {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $$1(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass((\"\" + (params.zoomedSlideClass)));\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.enabled) { return; }\n zoom.enabled = true;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) { return; }\n\n swiper.zoom.enabled = false;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove);\n },\n};\n\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create: function create() {\n var swiper = this;\n var zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom: zoom,\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.zoom.disable();\n },\n touchStart: function touchStart(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(e) {\n var swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if ( loadInDuplicate === void 0 ) loadInDuplicate = true;\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') { return; }\n if (swiper.slides.length === 0) { return; }\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n var $slideEl = isVirtual\n ? swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\"))\n : swiper.slides.eq(index);\n\n var $images = $slideEl.find((\".\" + (params.elementClass) + \":not(.\" + (params.loadedClass) + \"):not(.\" + (params.loadingClass) + \")\"));\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) { return; }\n\n $images.each(function (imageIndex, imageEl) {\n var $imageEl = $$1(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) { return; }\n if (background) {\n $imageEl.css('background-image', (\"url(\\\"\" + background + \"\\\")\"));\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find((\".\" + (params.preloaderClass))).remove();\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + (swiper.params.slideDuplicateClass) + \")\"));\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children((\".\" + (swiper.params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\"));\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var swiperParams = swiper.params;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n\n var slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children((\".\" + (swiperParams.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\")).length) {\n return true;\n }\n } else if (slides[index]) { return true; }\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $$1(slideEl).attr('data-swiper-slide-index');\n }\n return $$1(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) { swiper.lazy.initialImageLoaded = true; }\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children((\".\" + (swiperParams.slideVisibleClass))).each(function (elIndex, slideEl) {\n var index = isVirtual ? $$1(slideEl).attr('data-swiper-slide-index') : $$1(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) { swiper.lazy.loadInSlide(i); }\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) {\n if (slideExist(i$1)) { swiper.lazy.loadInSlide(i$1); }\n }\n // Prev Slides\n for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) {\n if (slideExist(i$2)) { swiper.lazy.loadInSlide(i$2); }\n }\n } else {\n var nextSlide = $wrapperEl.children((\".\" + (swiperParams.slideNextClass)));\n if (nextSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(nextSlide)); }\n\n var prevSlide = $wrapperEl.children((\".\" + (swiperParams.slidePrevClass)));\n if (prevSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(prevSlide)); }\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll: function scroll() {\n var swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize: function resize() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove: function scrollbarDragMove() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = (function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) { return 0; }\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ?\n new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) :\n new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(setTranslate$1, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = c.rtl && c.params.direction === 'horizontal' ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper$1 && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) { return; }\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper$1 && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update: function update() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(translate, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nvar a11y = {\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) { return; }\n var $targetEl = $$1(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is((\".\" + (swiper.params.pagination.bulletClass)))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) { return; }\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n\n if (swiper.params.loop) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletIndex, bulletEl) {\n var $bulletEl = $$1(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n });\n }\n },\n init: function init() {\n var swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n var params = swiper.params.a11y;\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) { swiper.a11y.liveRegion.remove(); }\n\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: false,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $$1((\"\")),\n },\n });\n Object.keys(a11y).forEach(function (methodName) {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updatePagination();\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.destroy();\n },\n },\n};\n\nvar History = {\n init: function init() {\n var swiper = this;\n if (!swiper.params.history) { return; }\n if (!win.history || !win.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) { return; }\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n win.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.history.replaceState) {\n win.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues() {\n var pathArray = win.location.pathname.slice(1).split('/').filter(function (part) { return part !== ''; });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return { key: key, value: value };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) { return; }\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n if (!win.location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n var currentState = win.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n win.history.replaceState({ value: value }, null, value);\n } else {\n win.history.pushState({ value: value }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var newHash = doc.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n swiper.slideTo(swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-hash=\\\"\" + newHash + \"\\\"]\")).index());\n }\n },\n setHash: function setHash() {\n var swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) { return; }\n if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) {\n win.history.replaceState(null, null, ((\"#\" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || ''));\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n doc.location.hash = hash || '';\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) { return; }\n swiper.hashNavigation.initialized = true;\n var hash = doc.location.hash.replace('#', '');\n if (hash) {\n var speed = 0;\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $$1(win).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $$1(win).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n swiper.autoplay.timeout = Utils.nextTick(function () {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') { return false; }\n if (swiper.autoplay.running) { return false; }\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) { return false; }\n if (typeof swiper.autoplay.timeout === 'undefined') { return false; }\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) { return; }\n if (swiper.autoplay.paused) { return; }\n if (swiper.autoplay.timeout) { clearTimeout(swiper.autoplay.timeout); }\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n });\n }\n },\n};\n\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(speed, internal) {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove() {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n },\n },\n};\n\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) { tx -= swiper.translate; }\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n var slideOpacity = swiper.params.fadeEffect.crossFade ?\n Math.max(1 - Math.abs($slideEl[0].progress), 0) :\n 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"fade\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var rtl = swiper.rtl;\n var swiperSize = swiper.size;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $$1('
    ');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: (swiperWidth + \"px\") });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $$1('
    ');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) { wrapperRotate = (-slideIndex * 90) - (progress * 90); }\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $$1((\"
    \"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $$1((\"
    \"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-moz-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-ms-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n 'transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform((\"translate3d(0px, \" + ((swiperWidth / 2) + params.shadowOffset) + \"px, \" + (-swiperWidth / 2) + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + (params.shadowScale) + \")\"));\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n var multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2) +\n (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform((\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + ((swiperHeight / 2) + offset) + \"px, \" + (-swiperHeight / 2 / scale2) + \"px) rotateX(-90deg)\"));\n }\n }\n var zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform((\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\"));\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"cube\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (swiper.rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $$1((\"
    \"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $$1((\"
    \"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n $slideEl\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var $wrapperEl = swiper.$wrapperEl;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"flip\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth;\n // Each slide offset from center\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n var translateZ = -translate * Math.abs(offsetMultiplier);\n\n var translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier);\n var translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0;\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) { translateX = 0; }\n if (Math.abs(translateY) < 0.001) { translateY = 0; }\n if (Math.abs(translateZ) < 0.001) { translateZ = 0; }\n if (Math.abs(rotateY) < 0.001) { rotateY = 0; }\n if (Math.abs(rotateX) < 0.001) { rotateX = 0; }\n\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\";\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $$1((\"
    \"));\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $$1((\"
    \"));\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) { $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; }\n if ($shadowAfterEl.length) { $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; }\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n var ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = center + \"px 50%\";\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"coverflow\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\n// Swiper Class\n// Core Modules\nvar components = [\n Device$2,\n Support$2,\n Browser$2,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow\n];\n\nif (typeof Swiper$1.use === 'undefined') {\n Swiper$1.use = Swiper$1.Class.use;\n Swiper$1.installModule = Swiper$1.Class.installModule;\n}\n\nSwiper$1.use(components);\n\nreturn Swiper$1;\n\n})));\n"]} \ No newline at end of file diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.esm.js b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.esm.js new file mode 100644 index 0000000..71adad5 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.esm.js @@ -0,0 +1,598 @@ +/** + * Template7 1.3.5 + * Mobile-first HTML template engine + * + * http://www.idangero.us/template7/ + * + * Copyright 2018, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: January 22, 2018 + */ +let t7ctx; +if (typeof window !== 'undefined') { + t7ctx = window; +} else if (typeof global !== 'undefined') { + t7ctx = global; +} else { + t7ctx = undefined; +} + +const Template7Context = t7ctx; + +const Template7Utils = { + quoteSingleRexExp: new RegExp('\'', 'g'), + quoteDoubleRexExp: new RegExp('"', 'g'), + isFunction(func) { + return typeof func === 'function'; + }, + escape(string) { + return (typeof Template7Context !== 'undefined' && Template7Context.escape) ? + Template7Context.escape(string) : + string + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"'); + }, + helperToSlices(string) { + const { quoteDoubleRexExp, quoteSingleRexExp } = Template7Utils; + const helperParts = string.replace(/[{}#}]/g, '').trim().split(' '); + const slices = []; + let shiftIndex; + let i; + let j; + for (i = 0; i < helperParts.length; i += 1) { + let part = helperParts[i]; + let blockQuoteRegExp; + let openingQuote; + if (i === 0) slices.push(part); + else if (part.indexOf('"') === 0 || part.indexOf('\'') === 0) { + blockQuoteRegExp = part.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = part.indexOf('"') === 0 ? '"' : '\''; + // Plain String + if (part.match(blockQuoteRegExp).length === 2) { + // One word string + slices.push(part); + } else { + // Find closed Index + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + part += ` ${helperParts[j]}`; + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + slices.push(part); + break; + } + } + if (shiftIndex) i = shiftIndex; + } + } else if (part.indexOf('=') > 0) { + // Hash + const hashParts = part.split('='); + const hashName = hashParts[0]; + let hashContent = hashParts[1]; + if (!blockQuoteRegExp) { + blockQuoteRegExp = hashContent.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = hashContent.indexOf('"') === 0 ? '"' : '\''; + } + if (hashContent.match(blockQuoteRegExp).length !== 2) { + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + hashContent += ` ${helperParts[j]}`; + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + break; + } + } + if (shiftIndex) i = shiftIndex; + } + const hash = [hashName, hashContent.replace(blockQuoteRegExp, '')]; + slices.push(hash); + } else { + // Plain variable + slices.push(part); + } + } + return slices; + }, + stringToBlocks(string) { + const blocks = []; + let i; + let j; + if (!string) return []; + const stringBlocks = string.split(/({{[^{^}]*}})/); + for (i = 0; i < stringBlocks.length; i += 1) { + let block = stringBlocks[i]; + if (block === '') continue; + if (block.indexOf('{{') < 0) { + blocks.push({ + type: 'plain', + content: block, + }); + } else { + if (block.indexOf('{/') >= 0) { + continue; + } + block = block + .replace(/{{([#/])*([ ])*/, '{{$1') + .replace(/([ ])*}}/, '}}'); + if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) { + // Simple variable + blocks.push({ + type: 'variable', + contextName: block.replace(/[{}]/g, ''), + }); + continue; + } + // Helpers + const helperSlices = Template7Utils.helperToSlices(block); + let helperName = helperSlices[0]; + const isPartial = helperName === '>'; + const helperContext = []; + const helperHash = {}; + for (j = 1; j < helperSlices.length; j += 1) { + const slice = helperSlices[j]; + if (Array.isArray(slice)) { + // Hash + helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1]; + } else { + helperContext.push(slice); + } + } + + if (block.indexOf('{#') >= 0) { + // Condition/Helper + let helperContent = ''; + let elseContent = ''; + let toSkip = 0; + let shiftIndex; + let foundClosed = false; + let foundElse = false; + let depth = 0; + for (j = i + 1; j < stringBlocks.length; j += 1) { + if (stringBlocks[j].indexOf('{{#') >= 0) { + depth += 1; + } + if (stringBlocks[j].indexOf('{{/') >= 0) { + depth -= 1; + } + if (stringBlocks[j].indexOf(`{{#${helperName}`) >= 0) { + helperContent += stringBlocks[j]; + if (foundElse) elseContent += stringBlocks[j]; + toSkip += 1; + } else if (stringBlocks[j].indexOf(`{{/${helperName}`) >= 0) { + if (toSkip > 0) { + toSkip -= 1; + helperContent += stringBlocks[j]; + if (foundElse) elseContent += stringBlocks[j]; + } else { + shiftIndex = j; + foundClosed = true; + break; + } + } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) { + foundElse = true; + } else { + if (!foundElse) helperContent += stringBlocks[j]; + if (foundElse) elseContent += stringBlocks[j]; + } + } + if (foundClosed) { + if (shiftIndex) i = shiftIndex; + if (helperName === 'raw') { + blocks.push({ + type: 'plain', + content: helperContent, + }); + } else { + blocks.push({ + type: 'helper', + helperName, + contextName: helperContext, + content: helperContent, + inverseContent: elseContent, + hash: helperHash, + }); + } + } + } else if (block.indexOf(' ') > 0) { + if (isPartial) { + helperName = '_partial'; + if (helperContext[0]) { + if (helperContext[0].indexOf('[') === 0) helperContext[0] = helperContext[0].replace(/[[\]]/g, ''); + else helperContext[0] = `"${helperContext[0].replace(/"|'/g, '')}"`; + } + } + blocks.push({ + type: 'helper', + helperName, + contextName: helperContext, + hash: helperHash, + }); + } + } + } + return blocks; + }, + parseJsVariable(expression, replace, object) { + return expression.split(/([+ -*/^])/g).map((part) => { + if (part.indexOf(replace) < 0) return part; + if (!object) return JSON.stringify(''); + let variable = object; + if (part.indexOf(`${replace}.`) >= 0) { + part.split(`${replace}.`)[1].split('.').forEach((partName) => { + if (variable[partName]) variable = variable[partName]; + else variable = 'undefined'; + }); + } + return JSON.stringify(variable); + }).join(''); + }, + parseJsParents(expression, parents) { + return expression.split(/([+ -*^])/g).map((part) => { + if (part.indexOf('../') < 0) return part; + if (!parents || parents.length === 0) return JSON.stringify(''); + const levelsUp = part.split('../').length - 1; + const parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1]; + + let variable = parentData; + const parentPart = part.replace(/..\//g, ''); + parentPart.split('.').forEach((partName) => { + if (variable[partName]) variable = variable[partName]; + else variable = 'undefined'; + }); + return JSON.stringify(variable); + }).join(''); + }, + getCompileVar(name, ctx, data = 'data_1') { + let variable = ctx; + let parts; + let levelsUp = 0; + let newDepth; + if (name.indexOf('../') === 0) { + levelsUp = name.split('../').length - 1; + newDepth = variable.split('_')[1] - levelsUp; + variable = `ctx_${newDepth >= 1 ? newDepth : 1}`; + parts = name.split('../')[levelsUp].split('.'); + } else if (name.indexOf('@global') === 0) { + variable = 'Template7.global'; + parts = name.split('@global.')[1].split('.'); + } else if (name.indexOf('@root') === 0) { + variable = 'root'; + parts = name.split('@root.')[1].split('.'); + } else { + parts = name.split('.'); + } + for (let i = 0; i < parts.length; i += 1) { + const part = parts[i]; + if (part.indexOf('@') === 0) { + let dataLevel = data.split('_')[1]; + if (levelsUp > 0) { + dataLevel = newDepth; + } + if (i > 0) { + variable += `[(data_${dataLevel} && data_${dataLevel}.${part.replace('@', '')})]`; + } else { + variable = `(data_${dataLevel} && data_${dataLevel}.${part.replace('@', '')})`; + } + } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) { + variable += `[${part}]`; + } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) { + variable = part.replace('this', ctx); + } else { + variable += `.${part}`; + } + } + return variable; + }, + getCompiledArguments(contextArray, ctx, data) { + const arr = []; + for (let i = 0; i < contextArray.length; i += 1) { + if (/^['"]/.test(contextArray[i])) arr.push(contextArray[i]); + else if (/^(true|false|\d+)$/.test(contextArray[i])) arr.push(contextArray[i]); + else { + arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data)); + } + } + + return arr.join(', '); + }, +}; + +/* eslint no-eval: "off" */ +const Template7Helpers = { + _partial(partialName, options) { + const ctx = this; + const p = Template7Class.partials[partialName]; + if (!p || (p && !p.template)) return ''; + if (!p.compiled) { + p.compiled = new Template7Class(p.template).compile(); + } + Object.keys(options.hash).forEach((hashName) => { + ctx[hashName] = options.hash[hashName]; + }); + return p.compiled(ctx, options.data, options.root); + }, + escape(context) { + if (typeof context !== 'string') { + throw new Error('Template7: Passed context to "escape" helper should be a string'); + } + return Template7Utils.escape(context); + }, + if(context, options) { + let ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + unless(context, options) { + let ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (!ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + each(context, options) { + let ctx = context; + let ret = ''; + let i = 0; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (Array.isArray(ctx)) { + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + for (i = 0; i < ctx.length; i += 1) { + ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i }); + } + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + } else { + // eslint-disable-next-line + for (const key in ctx) { + i += 1; + ret += options.fn(ctx[key], { key }); + } + } + if (i > 0) return ret; + return options.inverse(this); + }, + with(context, options) { + let ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); } + return options.fn(ctx); + }, + join(context, options) { + let ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + return ctx.join(options.hash.delimiter || options.hash.delimeter); + }, + js(expression, options) { + const data = options.data; + let func; + let execute = expression; + ('index first last key').split(' ').forEach((prop) => { + if (typeof data[prop] !== 'undefined') { + const re1 = new RegExp(`this.@${prop}`, 'g'); + const re2 = new RegExp(`@${prop}`, 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = `(function(){${execute}})`; + } else { + func = `(function(){return (${execute})})`; + } + return eval(func).call(this); + }, + js_if(expression, options) { + const data = options.data; + let func; + let execute = expression; + ('index first last key').split(' ').forEach((prop) => { + if (typeof data[prop] !== 'undefined') { + const re1 = new RegExp(`this.@${prop}`, 'g'); + const re2 = new RegExp(`@${prop}`, 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Class.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = `(function(){${execute}})`; + } else { + func = `(function(){return (${execute})})`; + } + const condition = eval(func).call(this); + if (condition) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, +}; +Template7Helpers.js_compare = Template7Helpers.js_if; + +const Template7Options = {}; +const Template7Partials = {}; +const script = Template7Context.document.createElement('script'); +Template7Context.document.head.appendChild(script); + +class Template7Class { + constructor(template) { + const t = this; + t.template = template; + } + compile(template = this.template, depth = 1) { + const t = this; + if (t.compiled) return t.compiled; + + if (typeof template !== 'string') { + throw new Error('Template7: Template must be a string'); + } + const { stringToBlocks, getCompileVar, getCompiledArguments } = Template7Utils; + + const blocks = stringToBlocks(template); + const ctx = `ctx_${depth}`; + const data = `data_${depth}`; + if (blocks.length === 0) { + return function empty() { return ''; }; + } + + function getCompileFn(block, newDepth) { + if (block.content) return t.compile(block.content, newDepth); + return function empty() { return ''; }; + } + function getCompileInverse(block, newDepth) { + if (block.inverseContent) return t.compile(block.inverseContent, newDepth); + return function empty() { return ''; }; + } + + let resultString = ''; + if (depth === 1) { + resultString += `(function (${ctx}, ${data}, root) {\n`; + } else { + resultString += `(function (${ctx}, ${data}) {\n`; + } + if (depth === 1) { + resultString += 'function isArray(arr){return Array.isArray(arr);}\n'; + resultString += 'function isFunction(func){return (typeof func === \'function\');}\n'; + resultString += 'function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n'; + resultString += 'root = root || ctx_1 || {};\n'; + } + resultString += 'var r = \'\';\n'; + let i; + for (i = 0; i < blocks.length; i += 1) { + const block = blocks[i]; + // Plain block + if (block.type === 'plain') { + // eslint-disable-next-line + resultString += `r +='${(block.content).replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/'/g, '\\' + '\'')}';`; + continue; + } + let variable; + let compiledArguments; + // Variable block + if (block.type === 'variable') { + variable = getCompileVar(block.contextName, ctx, data); + resultString += `r += c(${variable}, ${ctx});`; + } + // Helpers block + if (block.type === 'helper') { + let parents; + if (ctx !== 'ctx_1') { + const level = ctx.split('_')[1]; + let parentsString = `ctx_${level - 1}`; + for (let j = level - 2; j >= 1; j -= 1) { + parentsString += `, ctx_${j}`; + } + parents = `[${parentsString}]`; + } else { + parents = `[${ctx}]`; + } + let dynamicHelper; + if (block.helperName.indexOf('[') === 0) { + block.helperName = getCompileVar(block.helperName.replace(/[[\]]/g, ''), ctx, data); + dynamicHelper = true; + } + if (dynamicHelper || block.helperName in Template7Helpers) { + compiledArguments = getCompiledArguments(block.contextName, ctx, data); + resultString += `r += (Template7Helpers${dynamicHelper ? `[${block.helperName}]` : `.${block.helperName}`}).call(${ctx}, ${compiledArguments && (`${compiledArguments}, `)}{hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`; + } else if (block.contextName.length > 0) { + throw new Error(`Template7: Missing helper: "${block.helperName}"`); + } else { + variable = getCompileVar(block.helperName, ctx, data); + resultString += `if (${variable}) {`; + resultString += `if (isArray(${variable})) {`; + resultString += `r += (Template7Helpers.each).call(${ctx}, ${variable}, {hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`; + resultString += '}else {'; + resultString += `r += (Template7Helpers.with).call(${ctx}, ${variable}, {hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`; + resultString += '}}'; + } + } + } + resultString += '\nreturn r;})'; + + if (depth === 1) { + // eslint-disable-next-line + t.compiled = eval(resultString); + return t.compiled; + } + return resultString; + } + static get options() { + return Template7Options; + } + static get partials() { + return Template7Partials; + } + static get helpers() { + return Template7Helpers; + } +} + +function Template7(...args) { + const [template, data] = args; + if (args.length === 2) { + let instance = new Template7Class(template); + const rendered = instance.compile()(data); + instance = null; + return (rendered); + } + return new Template7Class(template); +} +Template7.registerHelper = function registerHelper(name, fn) { + Template7Class.helpers[name] = fn; +}; +Template7.unregisterHelper = function unregisterHelper(name) { + Template7Class.helpers[name] = undefined; + delete Template7Class.helpers[name]; +}; +Template7.registerPartial = function registerPartial(name, template) { + Template7Class.partials[name] = { template }; +}; +Template7.unregisterPartial = function unregisterPartial(name) { + if (Template7Class.partials[name]) { + Template7Class.partials[name] = undefined; + delete Template7Class.partials[name]; + } +}; +Template7.compile = function compile(template, options) { + const instance = new Template7Class(template, options); + return instance.compile(); +}; + +Template7.options = Template7Class.options; +Template7.helpers = Template7Class.helpers; +Template7.partials = Template7Class.partials; + +export default Template7; diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js new file mode 100644 index 0000000..f5a29b4 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js @@ -0,0 +1,622 @@ +/** + * Template7 1.3.5 + * Mobile-first HTML template engine + * + * http://www.idangero.us/template7/ + * + * Copyright 2018, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: January 22, 2018 + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Template7 = factory()); +}(this, (function () { 'use strict'; + +var t7ctx; +if (typeof window !== 'undefined') { + t7ctx = window; +} else if (typeof global !== 'undefined') { + t7ctx = global; +} else { + t7ctx = undefined; +} + +var Template7Context = t7ctx; + +var Template7Utils = { + quoteSingleRexExp: new RegExp('\'', 'g'), + quoteDoubleRexExp: new RegExp('"', 'g'), + isFunction: function isFunction(func) { + return typeof func === 'function'; + }, + escape: function escape(string) { + return (typeof Template7Context !== 'undefined' && Template7Context.escape) ? + Template7Context.escape(string) : + string + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"'); + }, + helperToSlices: function helperToSlices(string) { + var quoteDoubleRexExp = Template7Utils.quoteDoubleRexExp; + var quoteSingleRexExp = Template7Utils.quoteSingleRexExp; + var helperParts = string.replace(/[{}#}]/g, '').trim().split(' '); + var slices = []; + var shiftIndex; + var i; + var j; + for (i = 0; i < helperParts.length; i += 1) { + var part = helperParts[i]; + var blockQuoteRegExp = (void 0); + var openingQuote = (void 0); + if (i === 0) { slices.push(part); } + else if (part.indexOf('"') === 0 || part.indexOf('\'') === 0) { + blockQuoteRegExp = part.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = part.indexOf('"') === 0 ? '"' : '\''; + // Plain String + if (part.match(blockQuoteRegExp).length === 2) { + // One word string + slices.push(part); + } else { + // Find closed Index + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + part += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + slices.push(part); + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + } else if (part.indexOf('=') > 0) { + // Hash + var hashParts = part.split('='); + var hashName = hashParts[0]; + var hashContent = hashParts[1]; + if (!blockQuoteRegExp) { + blockQuoteRegExp = hashContent.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = hashContent.indexOf('"') === 0 ? '"' : '\''; + } + if (hashContent.match(blockQuoteRegExp).length !== 2) { + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + hashContent += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + var hash = [hashName, hashContent.replace(blockQuoteRegExp, '')]; + slices.push(hash); + } else { + // Plain variable + slices.push(part); + } + } + return slices; + }, + stringToBlocks: function stringToBlocks(string) { + var blocks = []; + var i; + var j; + if (!string) { return []; } + var stringBlocks = string.split(/({{[^{^}]*}})/); + for (i = 0; i < stringBlocks.length; i += 1) { + var block = stringBlocks[i]; + if (block === '') { continue; } + if (block.indexOf('{{') < 0) { + blocks.push({ + type: 'plain', + content: block, + }); + } else { + if (block.indexOf('{/') >= 0) { + continue; + } + block = block + .replace(/{{([#/])*([ ])*/, '{{$1') + .replace(/([ ])*}}/, '}}'); + if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) { + // Simple variable + blocks.push({ + type: 'variable', + contextName: block.replace(/[{}]/g, ''), + }); + continue; + } + // Helpers + var helperSlices = Template7Utils.helperToSlices(block); + var helperName = helperSlices[0]; + var isPartial = helperName === '>'; + var helperContext = []; + var helperHash = {}; + for (j = 1; j < helperSlices.length; j += 1) { + var slice = helperSlices[j]; + if (Array.isArray(slice)) { + // Hash + helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1]; + } else { + helperContext.push(slice); + } + } + + if (block.indexOf('{#') >= 0) { + // Condition/Helper + var helperContent = ''; + var elseContent = ''; + var toSkip = 0; + var shiftIndex = (void 0); + var foundClosed = false; + var foundElse = false; + var depth = 0; + for (j = i + 1; j < stringBlocks.length; j += 1) { + if (stringBlocks[j].indexOf('{{#') >= 0) { + depth += 1; + } + if (stringBlocks[j].indexOf('{{/') >= 0) { + depth -= 1; + } + if (stringBlocks[j].indexOf(("{{#" + helperName)) >= 0) { + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + toSkip += 1; + } else if (stringBlocks[j].indexOf(("{{/" + helperName)) >= 0) { + if (toSkip > 0) { + toSkip -= 1; + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + } else { + shiftIndex = j; + foundClosed = true; + break; + } + } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) { + foundElse = true; + } else { + if (!foundElse) { helperContent += stringBlocks[j]; } + if (foundElse) { elseContent += stringBlocks[j]; } + } + } + if (foundClosed) { + if (shiftIndex) { i = shiftIndex; } + if (helperName === 'raw') { + blocks.push({ + type: 'plain', + content: helperContent, + }); + } else { + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + content: helperContent, + inverseContent: elseContent, + hash: helperHash, + }); + } + } + } else if (block.indexOf(' ') > 0) { + if (isPartial) { + helperName = '_partial'; + if (helperContext[0]) { + if (helperContext[0].indexOf('[') === 0) { helperContext[0] = helperContext[0].replace(/[[\]]/g, ''); } + else { helperContext[0] = "\"" + (helperContext[0].replace(/"|'/g, '')) + "\""; } + } + } + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + hash: helperHash, + }); + } + } + } + return blocks; + }, + parseJsVariable: function parseJsVariable(expression, replace, object) { + return expression.split(/([+ -*/^])/g).map(function (part) { + if (part.indexOf(replace) < 0) { return part; } + if (!object) { return JSON.stringify(''); } + var variable = object; + if (part.indexOf((replace + ".")) >= 0) { + part.split((replace + "."))[1].split('.').forEach(function (partName) { + if (variable[partName]) { variable = variable[partName]; } + else { variable = 'undefined'; } + }); + } + return JSON.stringify(variable); + }).join(''); + }, + parseJsParents: function parseJsParents(expression, parents) { + return expression.split(/([+ -*^])/g).map(function (part) { + if (part.indexOf('../') < 0) { return part; } + if (!parents || parents.length === 0) { return JSON.stringify(''); } + var levelsUp = part.split('../').length - 1; + var parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1]; + + var variable = parentData; + var parentPart = part.replace(/..\//g, ''); + parentPart.split('.').forEach(function (partName) { + if (variable[partName]) { variable = variable[partName]; } + else { variable = 'undefined'; } + }); + return JSON.stringify(variable); + }).join(''); + }, + getCompileVar: function getCompileVar(name, ctx, data) { + if ( data === void 0 ) data = 'data_1'; + + var variable = ctx; + var parts; + var levelsUp = 0; + var newDepth; + if (name.indexOf('../') === 0) { + levelsUp = name.split('../').length - 1; + newDepth = variable.split('_')[1] - levelsUp; + variable = "ctx_" + (newDepth >= 1 ? newDepth : 1); + parts = name.split('../')[levelsUp].split('.'); + } else if (name.indexOf('@global') === 0) { + variable = 'Template7.global'; + parts = name.split('@global.')[1].split('.'); + } else if (name.indexOf('@root') === 0) { + variable = 'root'; + parts = name.split('@root.')[1].split('.'); + } else { + parts = name.split('.'); + } + for (var i = 0; i < parts.length; i += 1) { + var part = parts[i]; + if (part.indexOf('@') === 0) { + var dataLevel = data.split('_')[1]; + if (levelsUp > 0) { + dataLevel = newDepth; + } + if (i > 0) { + variable += "[(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")]"; + } else { + variable = "(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")"; + } + } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) { + variable += "[" + part + "]"; + } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) { + variable = part.replace('this', ctx); + } else { + variable += "." + part; + } + } + return variable; + }, + getCompiledArguments: function getCompiledArguments(contextArray, ctx, data) { + var arr = []; + for (var i = 0; i < contextArray.length; i += 1) { + if (/^['"]/.test(contextArray[i])) { arr.push(contextArray[i]); } + else if (/^(true|false|\d+)$/.test(contextArray[i])) { arr.push(contextArray[i]); } + else { + arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data)); + } + } + + return arr.join(', '); + }, +}; + +/* eslint no-eval: "off" */ +var Template7Helpers = { + _partial: function _partial(partialName, options) { + var ctx = this; + var p = Template7Class.partials[partialName]; + if (!p || (p && !p.template)) { return ''; } + if (!p.compiled) { + p.compiled = new Template7Class(p.template).compile(); + } + Object.keys(options.hash).forEach(function (hashName) { + ctx[hashName] = options.hash[hashName]; + }); + return p.compiled(ctx, options.data, options.root); + }, + escape: function escape(context) { + if (typeof context !== 'string') { + throw new Error('Template7: Passed context to "escape" helper should be a string'); + } + return Template7Utils.escape(context); + }, + if: function if$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + unless: function unless(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (!ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + each: function each(context, options) { + var ctx = context; + var ret = ''; + var i = 0; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (Array.isArray(ctx)) { + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + for (i = 0; i < ctx.length; i += 1) { + ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i }); + } + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + } else { + // eslint-disable-next-line + for (var key in ctx) { + i += 1; + ret += options.fn(ctx[key], { key: key }); + } + } + if (i > 0) { return ret; } + return options.inverse(this); + }, + with: function with$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); } + return options.fn(ctx); + }, + join: function join(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + return ctx.join(options.hash.delimiter || options.hash.delimeter); + }, + js: function js(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + return eval(func).call(this); + }, + js_if: function js_if(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Class.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + var condition = eval(func).call(this); + if (condition) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, +}; +Template7Helpers.js_compare = Template7Helpers.js_if; + +var Template7Options = {}; +var Template7Partials = {}; +var script = Template7Context.document.createElement('script'); +Template7Context.document.head.appendChild(script); + +var Template7Class = function Template7Class(template) { + var t = this; + t.template = template; +}; + +var staticAccessors = { options: { configurable: true },partials: { configurable: true },helpers: { configurable: true } }; +Template7Class.prototype.compile = function compile (template, depth) { + if ( template === void 0 ) template = this.template; + if ( depth === void 0 ) depth = 1; + + var t = this; + if (t.compiled) { return t.compiled; } + + if (typeof template !== 'string') { + throw new Error('Template7: Template must be a string'); + } + var stringToBlocks = Template7Utils.stringToBlocks; + var getCompileVar = Template7Utils.getCompileVar; + var getCompiledArguments = Template7Utils.getCompiledArguments; + + var blocks = stringToBlocks(template); + var ctx = "ctx_" + depth; + var data = "data_" + depth; + if (blocks.length === 0) { + return function empty() { return ''; }; + } + + function getCompileFn(block, newDepth) { + if (block.content) { return t.compile(block.content, newDepth); } + return function empty() { return ''; }; + } + function getCompileInverse(block, newDepth) { + if (block.inverseContent) { return t.compile(block.inverseContent, newDepth); } + return function empty() { return ''; }; + } + + var resultString = ''; + if (depth === 1) { + resultString += "(function (" + ctx + ", " + data + ", root) {\n"; + } else { + resultString += "(function (" + ctx + ", " + data + ") {\n"; + } + if (depth === 1) { + resultString += 'function isArray(arr){return Array.isArray(arr);}\n'; + resultString += 'function isFunction(func){return (typeof func === \'function\');}\n'; + resultString += 'function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n'; + resultString += 'root = root || ctx_1 || {};\n'; + } + resultString += 'var r = \'\';\n'; + var i; + for (i = 0; i < blocks.length; i += 1) { + var block = blocks[i]; + // Plain block + if (block.type === 'plain') { + // eslint-disable-next-line + resultString += "r +='" + ((block.content).replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/'/g, '\\' + '\'')) + "';"; + continue; + } + var variable = (void 0); + var compiledArguments = (void 0); + // Variable block + if (block.type === 'variable') { + variable = getCompileVar(block.contextName, ctx, data); + resultString += "r += c(" + variable + ", " + ctx + ");"; + } + // Helpers block + if (block.type === 'helper') { + var parents = (void 0); + if (ctx !== 'ctx_1') { + var level = ctx.split('_')[1]; + var parentsString = "ctx_" + (level - 1); + for (var j = level - 2; j >= 1; j -= 1) { + parentsString += ", ctx_" + j; + } + parents = "[" + parentsString + "]"; + } else { + parents = "[" + ctx + "]"; + } + var dynamicHelper = (void 0); + if (block.helperName.indexOf('[') === 0) { + block.helperName = getCompileVar(block.helperName.replace(/[[\]]/g, ''), ctx, data); + dynamicHelper = true; + } + if (dynamicHelper || block.helperName in Template7Helpers) { + compiledArguments = getCompiledArguments(block.contextName, ctx, data); + resultString += "r += (Template7Helpers" + (dynamicHelper ? ("[" + (block.helperName) + "]") : ("." + (block.helperName))) + ").call(" + ctx + ", " + (compiledArguments && ((compiledArguments + ", "))) + "{hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + } else if (block.contextName.length > 0) { + throw new Error(("Template7: Missing helper: \"" + (block.helperName) + "\"")); + } else { + variable = getCompileVar(block.helperName, ctx, data); + resultString += "if (" + variable + ") {"; + resultString += "if (isArray(" + variable + ")) {"; + resultString += "r += (Template7Helpers.each).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}else {'; + resultString += "r += (Template7Helpers.with).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}}'; + } + } + } + resultString += '\nreturn r;})'; + + if (depth === 1) { + // eslint-disable-next-line + t.compiled = eval(resultString); + return t.compiled; + } + return resultString; +}; +staticAccessors.options.get = function () { + return Template7Options; +}; +staticAccessors.partials.get = function () { + return Template7Partials; +}; +staticAccessors.helpers.get = function () { + return Template7Helpers; +}; + +Object.defineProperties( Template7Class, staticAccessors ); + +function Template7() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var template = args[0]; + var data = args[1]; + if (args.length === 2) { + var instance = new Template7Class(template); + var rendered = instance.compile()(data); + instance = null; + return (rendered); + } + return new Template7Class(template); +} +Template7.registerHelper = function registerHelper(name, fn) { + Template7Class.helpers[name] = fn; +}; +Template7.unregisterHelper = function unregisterHelper(name) { + Template7Class.helpers[name] = undefined; + delete Template7Class.helpers[name]; +}; +Template7.registerPartial = function registerPartial(name, template) { + Template7Class.partials[name] = { template: template }; +}; +Template7.unregisterPartial = function unregisterPartial(name) { + if (Template7Class.partials[name]) { + Template7Class.partials[name] = undefined; + delete Template7Class.partials[name]; + } +}; +Template7.compile = function compile(template, options) { + var instance = new Template7Class(template, options); + return instance.compile(); +}; + +Template7.options = Template7Class.options; +Template7.helpers = Template7Class.helpers; +Template7.partials = Template7Class.partials; + +return Template7; + +}))); + +//# sourceMappingURL=template7.js.map diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js.map b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js.map new file mode 100644 index 0000000..1f89754 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["context.js","utils.js","helpers.js","template7-class.js","template7.js"],"names":["let","this","const"],"mappings":"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","file":"template7.js","sourcesContent":["let t7ctx;\nif (typeof window !== 'undefined') {\n t7ctx = window;\n} else if (typeof global !== 'undefined') {\n t7ctx = global;\n} else {\n t7ctx = this;\n}\n\nconst Template7Context = t7ctx;\n\nexport default Template7Context;\n","import Template7Context from './context';\n\nconst Template7Utils = {\n quoteSingleRexExp: new RegExp('\\'', 'g'),\n quoteDoubleRexExp: new RegExp('\"', 'g'),\n isFunction(func) {\n return typeof func === 'function';\n },\n escape(string) {\n return (typeof Template7Context !== 'undefined' && Template7Context.escape) ?\n Template7Context.escape(string) :\n string\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"');\n },\n helperToSlices(string) {\n const { quoteDoubleRexExp, quoteSingleRexExp } = Template7Utils;\n const helperParts = string.replace(/[{}#}]/g, '').trim().split(' ');\n const slices = [];\n let shiftIndex;\n let i;\n let j;\n for (i = 0; i < helperParts.length; i += 1) {\n let part = helperParts[i];\n let blockQuoteRegExp;\n let openingQuote;\n if (i === 0) slices.push(part);\n else if (part.indexOf('\"') === 0 || part.indexOf('\\'') === 0) {\n blockQuoteRegExp = part.indexOf('\"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp;\n openingQuote = part.indexOf('\"') === 0 ? '\"' : '\\'';\n // Plain String\n if (part.match(blockQuoteRegExp).length === 2) {\n // One word string\n slices.push(part);\n } else {\n // Find closed Index\n shiftIndex = 0;\n for (j = i + 1; j < helperParts.length; j += 1) {\n part += ` ${helperParts[j]}`;\n if (helperParts[j].indexOf(openingQuote) >= 0) {\n shiftIndex = j;\n slices.push(part);\n break;\n }\n }\n if (shiftIndex) i = shiftIndex;\n }\n } else if (part.indexOf('=') > 0) {\n // Hash\n const hashParts = part.split('=');\n const hashName = hashParts[0];\n let hashContent = hashParts[1];\n if (!blockQuoteRegExp) {\n blockQuoteRegExp = hashContent.indexOf('\"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp;\n openingQuote = hashContent.indexOf('\"') === 0 ? '\"' : '\\'';\n }\n if (hashContent.match(blockQuoteRegExp).length !== 2) {\n shiftIndex = 0;\n for (j = i + 1; j < helperParts.length; j += 1) {\n hashContent += ` ${helperParts[j]}`;\n if (helperParts[j].indexOf(openingQuote) >= 0) {\n shiftIndex = j;\n break;\n }\n }\n if (shiftIndex) i = shiftIndex;\n }\n const hash = [hashName, hashContent.replace(blockQuoteRegExp, '')];\n slices.push(hash);\n } else {\n // Plain variable\n slices.push(part);\n }\n }\n return slices;\n },\n stringToBlocks(string) {\n const blocks = [];\n let i;\n let j;\n if (!string) return [];\n const stringBlocks = string.split(/({{[^{^}]*}})/);\n for (i = 0; i < stringBlocks.length; i += 1) {\n let block = stringBlocks[i];\n if (block === '') continue;\n if (block.indexOf('{{') < 0) {\n blocks.push({\n type: 'plain',\n content: block,\n });\n } else {\n if (block.indexOf('{/') >= 0) {\n continue;\n }\n block = block\n .replace(/{{([#/])*([ ])*/, '{{$1')\n .replace(/([ ])*}}/, '}}');\n if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) {\n // Simple variable\n blocks.push({\n type: 'variable',\n contextName: block.replace(/[{}]/g, ''),\n });\n continue;\n }\n // Helpers\n const helperSlices = Template7Utils.helperToSlices(block);\n let helperName = helperSlices[0];\n const isPartial = helperName === '>';\n const helperContext = [];\n const helperHash = {};\n for (j = 1; j < helperSlices.length; j += 1) {\n const slice = helperSlices[j];\n if (Array.isArray(slice)) {\n // Hash\n helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1];\n } else {\n helperContext.push(slice);\n }\n }\n\n if (block.indexOf('{#') >= 0) {\n // Condition/Helper\n let helperContent = '';\n let elseContent = '';\n let toSkip = 0;\n let shiftIndex;\n let foundClosed = false;\n let foundElse = false;\n let depth = 0;\n for (j = i + 1; j < stringBlocks.length; j += 1) {\n if (stringBlocks[j].indexOf('{{#') >= 0) {\n depth += 1;\n }\n if (stringBlocks[j].indexOf('{{/') >= 0) {\n depth -= 1;\n }\n if (stringBlocks[j].indexOf(`{{#${helperName}`) >= 0) {\n helperContent += stringBlocks[j];\n if (foundElse) elseContent += stringBlocks[j];\n toSkip += 1;\n } else if (stringBlocks[j].indexOf(`{{/${helperName}`) >= 0) {\n if (toSkip > 0) {\n toSkip -= 1;\n helperContent += stringBlocks[j];\n if (foundElse) elseContent += stringBlocks[j];\n } else {\n shiftIndex = j;\n foundClosed = true;\n break;\n }\n } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) {\n foundElse = true;\n } else {\n if (!foundElse) helperContent += stringBlocks[j];\n if (foundElse) elseContent += stringBlocks[j];\n }\n }\n if (foundClosed) {\n if (shiftIndex) i = shiftIndex;\n if (helperName === 'raw') {\n blocks.push({\n type: 'plain',\n content: helperContent,\n });\n } else {\n blocks.push({\n type: 'helper',\n helperName,\n contextName: helperContext,\n content: helperContent,\n inverseContent: elseContent,\n hash: helperHash,\n });\n }\n }\n } else if (block.indexOf(' ') > 0) {\n if (isPartial) {\n helperName = '_partial';\n if (helperContext[0]) {\n if (helperContext[0].indexOf('[') === 0) helperContext[0] = helperContext[0].replace(/[[\\]]/g, '');\n else helperContext[0] = `\"${helperContext[0].replace(/\"|'/g, '')}\"`;\n }\n }\n blocks.push({\n type: 'helper',\n helperName,\n contextName: helperContext,\n hash: helperHash,\n });\n }\n }\n }\n return blocks;\n },\n parseJsVariable(expression, replace, object) {\n return expression.split(/([+ -*/^])/g).map((part) => {\n if (part.indexOf(replace) < 0) return part;\n if (!object) return JSON.stringify('');\n let variable = object;\n if (part.indexOf(`${replace}.`) >= 0) {\n part.split(`${replace}.`)[1].split('.').forEach((partName) => {\n if (variable[partName]) variable = variable[partName];\n else variable = 'undefined';\n });\n }\n return JSON.stringify(variable);\n }).join('');\n },\n parseJsParents(expression, parents) {\n return expression.split(/([+ -*^])/g).map((part) => {\n if (part.indexOf('../') < 0) return part;\n if (!parents || parents.length === 0) return JSON.stringify('');\n const levelsUp = part.split('../').length - 1;\n const parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1];\n\n let variable = parentData;\n const parentPart = part.replace(/..\\//g, '');\n parentPart.split('.').forEach((partName) => {\n if (variable[partName]) variable = variable[partName];\n else variable = 'undefined';\n });\n return JSON.stringify(variable);\n }).join('');\n },\n getCompileVar(name, ctx, data = 'data_1') {\n let variable = ctx;\n let parts;\n let levelsUp = 0;\n let newDepth;\n if (name.indexOf('../') === 0) {\n levelsUp = name.split('../').length - 1;\n newDepth = variable.split('_')[1] - levelsUp;\n variable = `ctx_${newDepth >= 1 ? newDepth : 1}`;\n parts = name.split('../')[levelsUp].split('.');\n } else if (name.indexOf('@global') === 0) {\n variable = 'Template7.global';\n parts = name.split('@global.')[1].split('.');\n } else if (name.indexOf('@root') === 0) {\n variable = 'root';\n parts = name.split('@root.')[1].split('.');\n } else {\n parts = name.split('.');\n }\n for (let i = 0; i < parts.length; i += 1) {\n const part = parts[i];\n if (part.indexOf('@') === 0) {\n let dataLevel = data.split('_')[1];\n if (levelsUp > 0) {\n dataLevel = newDepth;\n }\n if (i > 0) {\n variable += `[(data_${dataLevel} && data_${dataLevel}.${part.replace('@', '')})]`;\n } else {\n variable = `(data_${dataLevel} && data_${dataLevel}.${part.replace('@', '')})`;\n }\n } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) {\n variable += `[${part}]`;\n } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) {\n variable = part.replace('this', ctx);\n } else {\n variable += `.${part}`;\n }\n }\n return variable;\n },\n getCompiledArguments(contextArray, ctx, data) {\n const arr = [];\n for (let i = 0; i < contextArray.length; i += 1) {\n if (/^['\"]/.test(contextArray[i])) arr.push(contextArray[i]);\n else if (/^(true|false|\\d+)$/.test(contextArray[i])) arr.push(contextArray[i]);\n else {\n arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data));\n }\n }\n\n return arr.join(', ');\n },\n};\n\nexport default Template7Utils;\n","/* eslint no-eval: \"off\" */\nimport Template7Utils from './utils';\nimport Template7Class from './template7-class';\nimport Template7Context from './context';\n\nconst Template7Helpers = {\n _partial(partialName, options) {\n const ctx = this;\n const p = Template7Class.partials[partialName];\n if (!p || (p && !p.template)) return '';\n if (!p.compiled) {\n p.compiled = new Template7Class(p.template).compile();\n }\n Object.keys(options.hash).forEach((hashName) => {\n ctx[hashName] = options.hash[hashName];\n });\n return p.compiled(ctx, options.data, options.root);\n },\n escape(context) {\n if (typeof context !== 'string') {\n throw new Error('Template7: Passed context to \"escape\" helper should be a string');\n }\n return Template7Utils.escape(context);\n },\n if(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (ctx) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n unless(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (!ctx) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n each(context, options) {\n let ctx = context;\n let ret = '';\n let i = 0;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (Array.isArray(ctx)) {\n if (options.hash.reverse) {\n ctx = ctx.reverse();\n }\n for (i = 0; i < ctx.length; i += 1) {\n ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i });\n }\n if (options.hash.reverse) {\n ctx = ctx.reverse();\n }\n } else {\n // eslint-disable-next-line\n for (const key in ctx) {\n i += 1;\n ret += options.fn(ctx[key], { key });\n }\n }\n if (i > 0) return ret;\n return options.inverse(this);\n },\n with(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); }\n return options.fn(ctx);\n },\n join(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n return ctx.join(options.hash.delimiter || options.hash.delimeter);\n },\n js(expression, options) {\n const data = options.data;\n let func;\n let execute = expression;\n ('index first last key').split(' ').forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n const re1 = new RegExp(`this.@${prop}`, 'g');\n const re2 = new RegExp(`@${prop}`, 'g');\n execute = execute\n .replace(re1, JSON.stringify(data[prop]))\n .replace(re2, JSON.stringify(data[prop]));\n }\n });\n if (options.root && execute.indexOf('@root') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@root', options.root);\n }\n if (execute.indexOf('@global') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global);\n }\n if (execute.indexOf('../') >= 0) {\n execute = Template7Utils.parseJsParents(execute, options.parents);\n }\n if (execute.indexOf('return') >= 0) {\n func = `(function(){${execute}})`;\n } else {\n func = `(function(){return (${execute})})`;\n }\n return eval(func).call(this);\n },\n js_if(expression, options) {\n const data = options.data;\n let func;\n let execute = expression;\n ('index first last key').split(' ').forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n const re1 = new RegExp(`this.@${prop}`, 'g');\n const re2 = new RegExp(`@${prop}`, 'g');\n execute = execute\n .replace(re1, JSON.stringify(data[prop]))\n .replace(re2, JSON.stringify(data[prop]));\n }\n });\n if (options.root && execute.indexOf('@root') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@root', options.root);\n }\n if (execute.indexOf('@global') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@global', Template7Class.global);\n }\n if (execute.indexOf('../') >= 0) {\n execute = Template7Utils.parseJsParents(execute, options.parents);\n }\n if (execute.indexOf('return') >= 0) {\n func = `(function(){${execute}})`;\n } else {\n func = `(function(){return (${execute})})`;\n }\n const condition = eval(func).call(this);\n if (condition) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n};\nTemplate7Helpers.js_compare = Template7Helpers.js_if;\n\nexport default Template7Helpers;\n","import Template7Utils from './utils';\nimport Template7Helpers from './helpers';\nimport Template7Context from './context';\n\nconst Template7Options = {};\nconst Template7Partials = {};\nconst script = Template7Context.document.createElement('script');\nTemplate7Context.document.head.appendChild(script);\n\nclass Template7Class {\n constructor(template) {\n const t = this;\n t.template = template;\n }\n compile(template = this.template, depth = 1) {\n const t = this;\n if (t.compiled) return t.compiled;\n\n if (typeof template !== 'string') {\n throw new Error('Template7: Template must be a string');\n }\n const { stringToBlocks, getCompileVar, getCompiledArguments } = Template7Utils;\n\n const blocks = stringToBlocks(template);\n const ctx = `ctx_${depth}`;\n const data = `data_${depth}`;\n if (blocks.length === 0) {\n return function empty() { return ''; };\n }\n\n function getCompileFn(block, newDepth) {\n if (block.content) return t.compile(block.content, newDepth);\n return function empty() { return ''; };\n }\n function getCompileInverse(block, newDepth) {\n if (block.inverseContent) return t.compile(block.inverseContent, newDepth);\n return function empty() { return ''; };\n }\n\n let resultString = '';\n if (depth === 1) {\n resultString += `(function (${ctx}, ${data}, root) {\\n`;\n } else {\n resultString += `(function (${ctx}, ${data}) {\\n`;\n }\n if (depth === 1) {\n resultString += 'function isArray(arr){return Array.isArray(arr);}\\n';\n resultString += 'function isFunction(func){return (typeof func === \\'function\\');}\\n';\n resultString += 'function c(val, ctx) {if (typeof val !== \"undefined\" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return \"\";}\\n';\n resultString += 'root = root || ctx_1 || {};\\n';\n }\n resultString += 'var r = \\'\\';\\n';\n let i;\n for (i = 0; i < blocks.length; i += 1) {\n const block = blocks[i];\n // Plain block\n if (block.type === 'plain') {\n // eslint-disable-next-line\n resultString += `r +='${(block.content).replace(/\\r/g, '\\\\r').replace(/\\n/g, '\\\\n').replace(/'/g, '\\\\' + '\\'')}';`;\n continue;\n }\n let variable;\n let compiledArguments;\n // Variable block\n if (block.type === 'variable') {\n variable = getCompileVar(block.contextName, ctx, data);\n resultString += `r += c(${variable}, ${ctx});`;\n }\n // Helpers block\n if (block.type === 'helper') {\n let parents;\n if (ctx !== 'ctx_1') {\n const level = ctx.split('_')[1];\n let parentsString = `ctx_${level - 1}`;\n for (let j = level - 2; j >= 1; j -= 1) {\n parentsString += `, ctx_${j}`;\n }\n parents = `[${parentsString}]`;\n } else {\n parents = `[${ctx}]`;\n }\n let dynamicHelper;\n if (block.helperName.indexOf('[') === 0) {\n block.helperName = getCompileVar(block.helperName.replace(/[[\\]]/g, ''), ctx, data);\n dynamicHelper = true;\n }\n if (dynamicHelper || block.helperName in Template7Helpers) {\n compiledArguments = getCompiledArguments(block.contextName, ctx, data);\n resultString += `r += (Template7Helpers${dynamicHelper ? `[${block.helperName}]` : `.${block.helperName}`}).call(${ctx}, ${compiledArguments && (`${compiledArguments}, `)}{hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`;\n } else if (block.contextName.length > 0) {\n throw new Error(`Template7: Missing helper: \"${block.helperName}\"`);\n } else {\n variable = getCompileVar(block.helperName, ctx, data);\n resultString += `if (${variable}) {`;\n resultString += `if (isArray(${variable})) {`;\n resultString += `r += (Template7Helpers.each).call(${ctx}, ${variable}, {hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`;\n resultString += '}else {';\n resultString += `r += (Template7Helpers.with).call(${ctx}, ${variable}, {hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`;\n resultString += '}}';\n }\n }\n }\n resultString += '\\nreturn r;})';\n\n if (depth === 1) {\n // eslint-disable-next-line\n t.compiled = eval(resultString);\n return t.compiled;\n }\n return resultString;\n }\n static get options() {\n return Template7Options;\n }\n static get partials() {\n return Template7Partials;\n }\n static get helpers() {\n return Template7Helpers;\n }\n}\nexport default Template7Class;\n","import Template7Class from './template7-class';\n\nfunction Template7(...args) {\n const [template, data] = args;\n if (args.length === 2) {\n let instance = new Template7Class(template);\n const rendered = instance.compile()(data);\n instance = null;\n return (rendered);\n }\n return new Template7Class(template);\n}\nTemplate7.registerHelper = function registerHelper(name, fn) {\n Template7Class.helpers[name] = fn;\n};\nTemplate7.unregisterHelper = function unregisterHelper(name) {\n Template7Class.helpers[name] = undefined;\n delete Template7Class.helpers[name];\n};\nTemplate7.registerPartial = function registerPartial(name, template) {\n Template7Class.partials[name] = { template };\n};\nTemplate7.unregisterPartial = function unregisterPartial(name) {\n if (Template7Class.partials[name]) {\n Template7Class.partials[name] = undefined;\n delete Template7Class.partials[name];\n }\n};\nTemplate7.compile = function compile(template, options) {\n const instance = new Template7Class(template, options);\n return instance.compile();\n};\n\nTemplate7.options = Template7Class.options;\nTemplate7.helpers = Template7Class.helpers;\nTemplate7.partials = Template7Class.partials;\n\nexport default Template7;\n"]} \ No newline at end of file diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js new file mode 100644 index 0000000..5aff71a --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js @@ -0,0 +1,16 @@ +/** + * Template7 1.3.5 + * Mobile-first HTML template engine + * + * http://www.idangero.us/template7/ + * + * Copyright 2018, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: January 22, 2018 + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Template7=t()}(this,function(){"use strict";function Template7(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var r=e[0],i=e[1];if(2===e.length){var n=new Template7Class(r),a=n.compile()(i);return n=null,a}return new Template7Class(r)}var t7ctx;t7ctx="undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0;var Template7Context=t7ctx,Template7Utils={quoteSingleRexExp:new RegExp("'","g"),quoteDoubleRexExp:new RegExp('"',"g"),isFunction:function(e){return"function"==typeof e},escape:function(e){return void 0!==Template7Context&&Template7Context.escape?Template7Context.escape(e):e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},helperToSlices:function(e){var t,r,i,n=Template7Utils.quoteDoubleRexExp,a=Template7Utils.quoteSingleRexExp,l=e.replace(/[{}#}]/g,"").trim().split(" "),s=[];for(r=0;r=0){t=i,s.push(o);break}t&&(r=t)}else if(o.indexOf("=")>0){var u=o.split("="),f=u[0],m=u[1];if(p||(p=0===m.indexOf('"')?n:a,c=0===m.indexOf('"')?'"':"'"),2!==m.match(p).length){for(t=0,i=r+1;i=0){t=i;break}t&&(r=t)}var d=[f,m.replace(p,"")];s.push(d)}else s.push(o)}return s},stringToBlocks:function(e){var t,r,i=[];if(!e)return[];var n=e.split(/({{[^{^}]*}})/);for(t=0;t=0)continue;if((a=a.replace(/{{([#/])*([ ])*/,"{{$1").replace(/([ ])*}}/,"}}")).indexOf("{#")<0&&a.indexOf(" ")<0&&a.indexOf("else")<0){i.push({type:"variable",contextName:a.replace(/[{}]/g,"")});continue}var l=Template7Utils.helperToSlices(a),s=l[0],o=">"===s,p=[],c={};for(r=1;r=0){var f="",m="",d=0,h=void 0,g=!1,x=!1,v=0;for(r=t+1;r=0&&(v+=1),n[r].indexOf("{{/")>=0&&(v-=1),n[r].indexOf("{{#"+s)>=0)f+=n[r],x&&(m+=n[r]),d+=1;else if(n[r].indexOf("{{/"+s)>=0){if(!(d>0)){h=r,g=!0;break}d-=1,f+=n[r],x&&(m+=n[r])}else n[r].indexOf("else")>=0&&0===v?x=!0:(x||(f+=n[r]),x&&(m+=n[r]));g&&(h&&(t=h),"raw"===s?i.push({type:"plain",content:f}):i.push({type:"helper",helperName:s,contextName:p,content:f,inverseContent:m,hash:c}))}else a.indexOf(" ")>0&&(o&&(s="_partial",p[0]&&(0===p[0].indexOf("[")?p[0]=p[0].replace(/[[\]]/g,""):p[0]='"'+p[0].replace(/"|'/g,"")+'"')),i.push({type:"helper",helperName:s,contextName:p,hash:c}))}}return i},parseJsVariable:function(e,t,r){return e.split(/([+ -*/^])/g).map(function(e){if(e.indexOf(t)<0)return e;if(!r)return JSON.stringify("");var i=r;return e.indexOf(t+".")>=0&&e.split(t+".")[1].split(".").forEach(function(e){i=i[e]?i[e]:"undefined"}),JSON.stringify(i)}).join("")},parseJsParents:function(e,t){return e.split(/([+ -*^])/g).map(function(e){if(e.indexOf("../")<0)return e;if(!t||0===t.length)return JSON.stringify("");var r=e.split("../").length-1,i=r>t.length?t[t.length-1]:t[r-1];return e.replace(/..\//g,"").split(".").forEach(function(e){i=i[e]?i[e]:"undefined"}),JSON.stringify(i)}).join("")},getCompileVar:function(e,t,r){void 0===r&&(r="data_1");var i,n,a=t,l=0;0===e.indexOf("../")?(l=e.split("../").length-1,a="ctx_"+((n=a.split("_")[1]-l)>=1?n:1),i=e.split("../")[l].split(".")):0===e.indexOf("@global")?(a="Template7.global",i=e.split("@global.")[1].split(".")):0===e.indexOf("@root")?(a="root",i=e.split("@root.")[1].split(".")):i=e.split(".");for(var s=0;s0&&(p=n),s>0?a+="[(data_"+p+" && data_"+p+"."+o.replace("@","")+")]":a="(data_"+p+" && data_"+p+"."+o.replace("@","")+")"}else(Number.isFinite?Number.isFinite(o):Template7Context.isFinite(o))?a+="["+o+"]":"this"===o||o.indexOf("this.")>=0||o.indexOf("this[")>=0||o.indexOf("this(")>=0?a=o.replace("this",t):a+="."+o}return a},getCompiledArguments:function(e,t,r){for(var i=[],n=0;n0?i:t.inverse(this)},with:function(e,t){var r=e;return Template7Utils.isFunction(r)&&(r=e.call(this)),t.fn(r)},join:function(e,t){var r=e;return Template7Utils.isFunction(r)&&(r=r.call(this)),r.join(t.hash.delimiter||t.hash.delimeter)},js:function js(expression,options){var data=options.data,func,execute=expression;return"index first last key".split(" ").forEach(function(e){if(void 0!==data[e]){var t=new RegExp("this.@"+e,"g"),r=new RegExp("@"+e,"g");execute=execute.replace(t,JSON.stringify(data[e])).replace(r,JSON.stringify(data[e]))}}),options.root&&execute.indexOf("@root")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@root",options.root)),execute.indexOf("@global")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@global",Template7Context.Template7.global)),execute.indexOf("../")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf("return")>=0?"(function(){"+execute+"})":"(function(){return ("+execute+")})",eval(func).call(this)},js_if:function js_if(expression,options){var data=options.data,func,execute=expression;"index first last key".split(" ").forEach(function(e){if(void 0!==data[e]){var t=new RegExp("this.@"+e,"g"),r=new RegExp("@"+e,"g");execute=execute.replace(t,JSON.stringify(data[e])).replace(r,JSON.stringify(data[e]))}}),options.root&&execute.indexOf("@root")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@root",options.root)),execute.indexOf("@global")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@global",Template7Class.global)),execute.indexOf("../")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf("return")>=0?"(function(){"+execute+"})":"(function(){return ("+execute+")})";var condition=eval(func).call(this);return condition?options.fn(this,options.data):options.inverse(this,options.data)}};Template7Helpers.js_compare=Template7Helpers.js_if;var Template7Options={},Template7Partials={},script=Template7Context.document.createElement("script");Template7Context.document.head.appendChild(script);var Template7Class=function(e){this.template=e},staticAccessors={options:{configurable:!0},partials:{configurable:!0},helpers:{configurable:!0}};return Template7Class.prototype.compile=function compile(template,depth){function getCompileFn(e,r){return e.content?t.compile(e.content,r):function(){return""}}function getCompileInverse(e,r){return e.inverseContent?t.compile(e.inverseContent,r):function(){return""}}void 0===template&&(template=this.template),void 0===depth&&(depth=1);var t=this;if(t.compiled)return t.compiled;if("string"!=typeof template)throw new Error("Template7: Template must be a string");var stringToBlocks=Template7Utils.stringToBlocks,getCompileVar=Template7Utils.getCompileVar,getCompiledArguments=Template7Utils.getCompiledArguments,blocks=stringToBlocks(template),ctx="ctx_"+depth,data="data_"+depth;if(0===blocks.length)return function(){return""};var resultString="";resultString+=1===depth?"(function ("+ctx+", "+data+", root) {\n":"(function ("+ctx+", "+data+") {\n",1===depth&&(resultString+="function isArray(arr){return Array.isArray(arr);}\n",resultString+="function isFunction(func){return (typeof func === 'function');}\n",resultString+='function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n',resultString+="root = root || ctx_1 || {};\n"),resultString+="var r = '';\n";var i;for(i=0;i=1;j-=1)parentsString+=", ctx_"+j;parents="["+parentsString+"]"}else parents="["+ctx+"]";var dynamicHelper=void 0;if(0===block.helperName.indexOf("[")&&(block.helperName=getCompileVar(block.helperName.replace(/[[\]]/g,""),ctx,data),dynamicHelper=!0),dynamicHelper||block.helperName in Template7Helpers)compiledArguments=getCompiledArguments(block.contextName,ctx,data),resultString+="r += (Template7Helpers"+(dynamicHelper?"["+block.helperName+"]":"."+block.helperName)+").call("+ctx+", "+(compiledArguments&&compiledArguments+", ")+"{hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});";else{if(block.contextName.length>0)throw new Error('Template7: Missing helper: "'+block.helperName+'"');variable=getCompileVar(block.helperName,ctx,data),resultString+="if ("+variable+") {",resultString+="if (isArray("+variable+")) {",resultString+="r += (Template7Helpers.each).call("+ctx+", "+variable+", {hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});",resultString+="}else {",resultString+="r += (Template7Helpers.with).call("+ctx+", "+variable+", {hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});",resultString+="}}"}}}else resultString+="r +='"+block.content.replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/'/g,"\\'")+"';"}return resultString+="\nreturn r;})",1===depth?(t.compiled=eval(resultString),t.compiled):resultString},staticAccessors.options.get=function(){return Template7Options},staticAccessors.partials.get=function(){return Template7Partials},staticAccessors.helpers.get=function(){return Template7Helpers},Object.defineProperties(Template7Class,staticAccessors),Template7.registerHelper=function(e,t){Template7Class.helpers[e]=t},Template7.unregisterHelper=function(e){Template7Class.helpers[e]=void 0,delete Template7Class.helpers[e]},Template7.registerPartial=function(e,t){Template7Class.partials[e]={template:t}},Template7.unregisterPartial=function(e){Template7Class.partials[e]&&(Template7Class.partials[e]=void 0,delete Template7Class.partials[e])},Template7.compile=function(e,t){return new Template7Class(e,t).compile()},Template7.options=Template7Class.options,Template7.helpers=Template7Class.helpers,Template7.partials=Template7Class.partials,Template7}); +//# sourceMappingURL=template7.min.js.map diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js.map b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js.map new file mode 100644 index 0000000..6dd2e71 --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/template7/1.3.5/template7.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["template7.js"],"names":["global","factory","exports","module","define","amd","Template7","this","args","len","arguments","length","template","data","instance","Template7Class","rendered","compile","t7ctx","window","undefined","Template7Context","Template7Utils","quoteSingleRexExp","RegExp","quoteDoubleRexExp","isFunction","func","escape","string","replace","helperToSlices","shiftIndex","i","j","helperParts","trim","split","slices","part","blockQuoteRegExp","openingQuote","push","indexOf","match","hashParts","hashName","hashContent","hash","stringToBlocks","blocks","stringBlocks","block","type","content","contextName","helperSlices","helperName","isPartial","helperContext","helperHash","slice","Array","isArray","helperContent","elseContent","toSkip","foundClosed","foundElse","depth","inverseContent","parseJsVariable","expression","object","map","JSON","stringify","variable","forEach","partName","join","parseJsParents","parents","levelsUp","getCompileVar","name","ctx","parts","newDepth","dataLevel","Number","isFinite","getCompiledArguments","contextArray","arr","test","Template7Helpers","_partial","partialName","options","p","partials","compiled","Object","keys","root","context","Error","if","call","fn","inverse","unless","each","ret","reverse","first","last","index","key","with","delimiter","delimeter","js","execute","prop","re1","re2","eval","js_if","condition","js_compare","Template7Options","Template7Partials","script","document","createElement","head","appendChild","staticAccessors","configurable","helpers","prototype","getCompileFn","t","getCompileInverse","resultString","compiledArguments","level","parentsString","dynamicHelper","get","defineProperties","registerHelper","unregisterHelper","registerPartial","unregisterPartial"],"mappings":";;;;;;;;;;;;;;CAcC,SAAUA,EAAQC,GACC,iBAAZC,SAA0C,oBAAXC,OAAyBA,OAAOD,QAAUD,IAC9D,mBAAXG,QAAyBA,OAAOC,IAAMD,OAAOH,GACnDD,EAAOM,UAAYL,IAHrB,CAIEM,KAAM,WAAe,aAgjBvB,SAASD,YAEP,IADA,IAAIE,KAAWC,EAAMC,UAAUC,OACvBF,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IAAIG,EAAWJ,EAAK,GAChBK,EAAOL,EAAK,GAChB,GAAoB,IAAhBA,EAAKG,OAAc,CACrB,IAAIG,EAAW,IAAIC,eAAeH,GAC9BI,EAAWF,EAASG,SAATH,CAAmBD,GAElC,OADAC,EAAW,KACJ,EAET,OAAO,IAAIC,eAAeH,GA1jB5B,IAAIM,MAEFA,MADoB,oBAAXC,OACDA,OACmB,oBAAXnB,OACRA,YAEAoB,EAGV,IAAIC,iBAAmBH,MAEnBI,gBACFC,kBAAmB,IAAIC,OAAO,IAAM,KACpCC,kBAAmB,IAAID,OAAO,IAAK,KACnCE,WAAY,SAAoBC,GAC9B,MAAuB,mBAATA,GAEhBC,OAAQ,SAAgBC,GACtB,YAAoC,IAArBR,kBAAoCA,iBAAiBO,OAClEP,iBAAiBO,OAAOC,GACxBA,EACGC,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,WAErBC,eAAgB,SAAwBF,GACtC,IAIIG,EACAC,EACAC,EANAT,EAAoBH,eAAeG,kBACnCF,EAAoBD,eAAeC,kBACnCY,EAAcN,EAAOC,QAAQ,UAAW,IAAIM,OAAOC,MAAM,KACzDC,KAIJ,IAAKL,EAAI,EAAGA,EAAIE,EAAYxB,OAAQsB,GAAK,EAAG,CAC1C,IAAIM,EAAOJ,EAAYF,GACnBO,OAAmB,EACnBC,OAAe,EACnB,GAAU,IAANR,EAAWK,EAAOI,KAAKH,QACtB,GAA0B,IAAtBA,EAAKI,QAAQ,MAAqC,IAAvBJ,EAAKI,QAAQ,KAI/C,GAHAH,EAAyC,IAAtBD,EAAKI,QAAQ,KAAalB,EAAoBF,EACjEkB,EAAqC,IAAtBF,EAAKI,QAAQ,KAAa,IAAM,IAEH,IAAxCJ,EAAKK,MAAMJ,GAAkB7B,OAE/B2B,EAAOI,KAAKH,OACP,CAGL,IADAP,EAAa,EACRE,EAAID,EAAI,EAAGC,EAAIC,EAAYxB,OAAQuB,GAAK,EAE3C,GADAK,GAAQ,IAAOJ,EAAYD,GACvBC,EAAYD,GAAGS,QAAQF,IAAiB,EAAG,CAC7CT,EAAaE,EACbI,EAAOI,KAAKH,GACZ,MAGAP,IAAcC,EAAID,QAEnB,GAAIO,EAAKI,QAAQ,KAAO,EAAG,CAEhC,IAAIE,EAAYN,EAAKF,MAAM,KACvBS,EAAWD,EAAU,GACrBE,EAAcF,EAAU,GAK5B,GAJKL,IACHA,EAAgD,IAA7BO,EAAYJ,QAAQ,KAAalB,EAAoBF,EACxEkB,EAA4C,IAA7BM,EAAYJ,QAAQ,KAAa,IAAM,KAEL,IAA/CI,EAAYH,MAAMJ,GAAkB7B,OAAc,CAEpD,IADAqB,EAAa,EACRE,EAAID,EAAI,EAAGC,EAAIC,EAAYxB,OAAQuB,GAAK,EAE3C,GADAa,GAAe,IAAOZ,EAAYD,GAC9BC,EAAYD,GAAGS,QAAQF,IAAiB,EAAG,CAC7CT,EAAaE,EACb,MAGAF,IAAcC,EAAID,GAExB,IAAIgB,GAAQF,EAAUC,EAAYjB,QAAQU,EAAkB,KAC5DF,EAAOI,KAAKM,QAGZV,EAAOI,KAAKH,GAGhB,OAAOD,GAETW,eAAgB,SAAwBpB,GACtC,IACII,EACAC,EAFAgB,KAGJ,IAAKrB,EAAU,SACf,IAAIsB,EAAetB,EAAOQ,MAAM,iBAChC,IAAKJ,EAAI,EAAGA,EAAIkB,EAAaxC,OAAQsB,GAAK,EAAG,CAC3C,IAAImB,EAAQD,EAAalB,GACzB,GAAc,KAAVmB,EACJ,GAAIA,EAAMT,QAAQ,MAAQ,EACxBO,EAAOR,MACLW,KAAM,QACNC,QAASF,QAEN,CACL,GAAIA,EAAMT,QAAQ,OAAS,EACzB,SAKF,IAHAS,EAAQA,EACLtB,QAAQ,kBAAmB,QAC3BA,QAAQ,WAAY,OACba,QAAQ,MAAQ,GAAKS,EAAMT,QAAQ,KAAO,GAAKS,EAAMT,QAAQ,QAAU,EAAG,CAElFO,EAAOR,MACLW,KAAM,WACNE,YAAaH,EAAMtB,QAAQ,QAAS,MAEtC,SAGF,IAAI0B,EAAelC,eAAeS,eAAeqB,GAC7CK,EAAaD,EAAa,GAC1BE,EAA2B,MAAfD,EACZE,KACAC,KACJ,IAAK1B,EAAI,EAAGA,EAAIsB,EAAa7C,OAAQuB,GAAK,EAAG,CAC3C,IAAI2B,EAAQL,EAAatB,GACrB4B,MAAMC,QAAQF,GAEhBD,EAAWC,EAAM,IAAmB,UAAbA,EAAM,IAAyBA,EAAM,GAE5DF,EAAcjB,KAAKmB,GAIvB,GAAIT,EAAMT,QAAQ,OAAS,EAAG,CAE5B,IAAIqB,EAAgB,GAChBC,EAAc,GACdC,EAAS,EACTlC,OAAa,EACbmC,GAAc,EACdC,GAAY,EACZC,EAAQ,EACZ,IAAKnC,EAAID,EAAI,EAAGC,EAAIiB,EAAaxC,OAAQuB,GAAK,EAO5C,GANIiB,EAAajB,GAAGS,QAAQ,QAAU,IACpC0B,GAAS,GAEPlB,EAAajB,GAAGS,QAAQ,QAAU,IACpC0B,GAAS,GAEPlB,EAAajB,GAAGS,QAAS,MAAQc,IAAgB,EACnDO,GAAiBb,EAAajB,GAC1BkC,IAAaH,GAAed,EAAajB,IAC7CgC,GAAU,OACL,GAAIf,EAAajB,GAAGS,QAAS,MAAQc,IAAgB,EAAG,CAC7D,KAAIS,EAAS,GAIN,CACLlC,EAAaE,EACbiC,GAAc,EACd,MANAD,GAAU,EACVF,GAAiBb,EAAajB,GAC1BkC,IAAaH,GAAed,EAAajB,SAMtCiB,EAAajB,GAAGS,QAAQ,SAAW,GAAe,IAAV0B,EACjDD,GAAY,GAEPA,IAAaJ,GAAiBb,EAAajB,IAC5CkC,IAAaH,GAAed,EAAajB,KAG7CiC,IACEnC,IAAcC,EAAID,GACH,QAAfyB,EACFP,EAAOR,MACLW,KAAM,QACNC,QAASU,IAGXd,EAAOR,MACLW,KAAM,SACNI,WAAYA,EACZF,YAAaI,EACbL,QAASU,EACTM,eAAgBL,EAChBjB,KAAMY,UAIHR,EAAMT,QAAQ,KAAO,IAC1Be,IACFD,EAAa,WACTE,EAAc,KACsB,IAAlCA,EAAc,GAAGhB,QAAQ,KAAcgB,EAAc,GAAKA,EAAc,GAAG7B,QAAQ,SAAU,IAC1F6B,EAAc,GAAK,IAAQA,EAAc,GAAG7B,QAAQ,OAAQ,IAAO,MAG9EoB,EAAOR,MACLW,KAAM,SACNI,WAAYA,EACZF,YAAaI,EACbX,KAAMY,MAKd,OAAOV,GAETqB,gBAAiB,SAAyBC,EAAY1C,EAAS2C,GAC7D,OAAOD,EAAWnC,MAAM,eAAeqC,IAAI,SAAUnC,GACnD,GAAIA,EAAKI,QAAQb,GAAW,EAAK,OAAOS,EACxC,IAAKkC,EAAU,OAAOE,KAAKC,UAAU,IACrC,IAAIC,EAAWJ,EAOf,OANIlC,EAAKI,QAASb,EAAU,MAAS,GACnCS,EAAKF,MAAOP,EAAU,KAAM,GAAGO,MAAM,KAAKyC,QAAQ,SAAUC,GAChCF,EAAtBA,EAASE,GAAwBF,EAASE,GAC5B,cAGfJ,KAAKC,UAAUC,KACrBG,KAAK,KAEVC,eAAgB,SAAwBT,EAAYU,GAClD,OAAOV,EAAWnC,MAAM,cAAcqC,IAAI,SAAUnC,GAClD,GAAIA,EAAKI,QAAQ,OAAS,EAAK,OAAOJ,EACtC,IAAK2C,GAA8B,IAAnBA,EAAQvE,OAAgB,OAAOgE,KAAKC,UAAU,IAC9D,IAAIO,EAAW5C,EAAKF,MAAM,OAAO1B,OAAS,EAGtCkE,EAFaM,EAAWD,EAAQvE,OAASuE,EAAQA,EAAQvE,OAAS,GAAKuE,EAAQC,EAAW,GAQ9F,OALiB5C,EAAKT,QAAQ,QAAS,IAC5BO,MAAM,KAAKyC,QAAQ,SAAUC,GACZF,EAAtBA,EAASE,GAAwBF,EAASE,GAC5B,cAEbJ,KAAKC,UAAUC,KACrBG,KAAK,KAEVI,cAAe,SAAuBC,EAAMC,EAAKzE,QACjC,IAATA,IAAkBA,EAAO,UAE9B,IACI0E,EAEAC,EAHAX,EAAWS,EAEXH,EAAW,EAEa,IAAxBE,EAAK1C,QAAQ,QACfwC,EAAWE,EAAKhD,MAAM,OAAO1B,OAAS,EAEtCkE,EAAW,SADXW,EAAWX,EAASxC,MAAM,KAAK,GAAK8C,IACH,EAAIK,EAAW,GAChDD,EAAQF,EAAKhD,MAAM,OAAO8C,GAAU9C,MAAM,MACL,IAA5BgD,EAAK1C,QAAQ,YACtBkC,EAAW,mBACXU,EAAQF,EAAKhD,MAAM,YAAY,GAAGA,MAAM,MACL,IAA1BgD,EAAK1C,QAAQ,UACtBkC,EAAW,OACXU,EAAQF,EAAKhD,MAAM,UAAU,GAAGA,MAAM,MAEtCkD,EAAQF,EAAKhD,MAAM,KAErB,IAAK,IAAIJ,EAAI,EAAGA,EAAIsD,EAAM5E,OAAQsB,GAAK,EAAG,CACxC,IAAIM,EAAOgD,EAAMtD,GACjB,GAA0B,IAAtBM,EAAKI,QAAQ,KAAY,CAC3B,IAAI8C,EAAY5E,EAAKwB,MAAM,KAAK,GAC5B8C,EAAW,IACbM,EAAYD,GAEVvD,EAAI,EACN4C,GAAY,UAAYY,EAAY,YAAcA,EAAY,IAAOlD,EAAKT,QAAQ,IAAK,IAAO,KAE9F+C,EAAW,SAAWY,EAAY,YAAcA,EAAY,IAAOlD,EAAKT,QAAQ,IAAK,IAAO,SAErF4D,OAAOC,SAAWD,OAAOC,SAASpD,GAAQlB,iBAAiBsE,SAASpD,IAC7EsC,GAAY,IAAMtC,EAAO,IACP,SAATA,GAAmBA,EAAKI,QAAQ,UAAY,GAAKJ,EAAKI,QAAQ,UAAY,GAAKJ,EAAKI,QAAQ,UAAY,EACjHkC,EAAWtC,EAAKT,QAAQ,OAAQwD,GAEhCT,GAAY,IAAMtC,EAGtB,OAAOsC,GAETe,qBAAsB,SAA8BC,EAAcP,EAAKzE,GAErE,IAAK,IADDiF,KACK7D,EAAI,EAAGA,EAAI4D,EAAalF,OAAQsB,GAAK,EACxC,QAAQ8D,KAAKF,EAAa5D,IAAO6D,EAAIpD,KAAKmD,EAAa5D,IAClD,qBAAqB8D,KAAKF,EAAa5D,IAAO6D,EAAIpD,KAAKmD,EAAa5D,IAE3E6D,EAAIpD,KAAKpB,eAAe8D,cAAcS,EAAa5D,GAAIqD,EAAKzE,IAIhE,OAAOiF,EAAId,KAAK,QAKhBgB,kBACFC,SAAU,SAAkBC,EAAaC,GACvC,IAAIb,EAAM/E,KACN6F,EAAIrF,eAAesF,SAASH,GAChC,OAAKE,GAAMA,IAAMA,EAAExF,SAAoB,IAClCwF,EAAEE,WACLF,EAAEE,SAAW,IAAIvF,eAAeqF,EAAExF,UAAUK,WAE9CsF,OAAOC,KAAKL,EAAQnD,MAAM8B,QAAQ,SAAUhC,GAC1CwC,EAAIxC,GAAYqD,EAAQnD,KAAKF,KAExBsD,EAAEE,SAAShB,EAAKa,EAAQtF,KAAMsF,EAAQM,QAE/C7E,OAAQ,SAAgB8E,GACtB,GAAuB,iBAAZA,EACT,MAAM,IAAIC,MAAM,mEAElB,OAAOrF,eAAeM,OAAO8E,IAE/BE,GAAI,SAAcF,EAASP,GACzB,IAAIb,EAAMoB,EAEV,OADIpF,eAAeI,WAAW4D,KAAQA,EAAMA,EAAIuB,KAAKtG,OACjD+E,EACKa,EAAQW,GAAGvG,KAAM4F,EAAQtF,MAG3BsF,EAAQY,QAAQxG,KAAM4F,EAAQtF,OAEvCmG,OAAQ,SAAgBN,EAASP,GAC/B,IAAIb,EAAMoB,EAEV,OADIpF,eAAeI,WAAW4D,KAAQA,EAAMA,EAAIuB,KAAKtG,OAChD+E,EAIEa,EAAQY,QAAQxG,KAAM4F,EAAQtF,MAH5BsF,EAAQW,GAAGvG,KAAM4F,EAAQtF,OAKpCoG,KAAM,SAAcP,EAASP,GAC3B,IAAIb,EAAMoB,EACNQ,EAAM,GACNjF,EAAI,EAER,GADIX,eAAeI,WAAW4D,KAAQA,EAAMA,EAAIuB,KAAKtG,OACjDuD,MAAMC,QAAQuB,GAAM,CAItB,IAHIa,EAAQnD,KAAKmE,UACf7B,EAAMA,EAAI6B,WAEPlF,EAAI,EAAGA,EAAIqD,EAAI3E,OAAQsB,GAAK,EAC/BiF,GAAOf,EAAQW,GAAGxB,EAAIrD,IAAMmF,MAAa,IAANnF,EAASoF,KAAMpF,IAAMqD,EAAI3E,OAAS,EAAG2G,MAAOrF,IAE7EkE,EAAQnD,KAAKmE,UACf7B,EAAMA,EAAI6B,gBAIZ,IAAK,IAAII,KAAOjC,EACdrD,GAAK,EACLiF,GAAOf,EAAQW,GAAGxB,EAAIiC,IAAQA,IAAKA,IAGvC,OAAItF,EAAI,EAAYiF,EACbf,EAAQY,QAAQxG,OAEzBiH,KAAM,SAAgBd,EAASP,GAC7B,IAAIb,EAAMoB,EAEV,OADIpF,eAAeI,WAAW4D,KAAQA,EAAMoB,EAAQG,KAAKtG,OAClD4F,EAAQW,GAAGxB,IAEpBN,KAAM,SAAc0B,EAASP,GAC3B,IAAIb,EAAMoB,EAEV,OADIpF,eAAeI,WAAW4D,KAAQA,EAAMA,EAAIuB,KAAKtG,OAC9C+E,EAAIN,KAAKmB,EAAQnD,KAAKyE,WAAatB,EAAQnD,KAAK0E,YAEzDC,GAAI,SAASA,GAAGnD,WAAY2B,SAC1B,IAAItF,KAAOsF,QAAQtF,KACfc,KACAiG,QAAUpD,WAwBd,MAvBA,uBAAyBnC,MAAM,KAAKyC,QAAQ,SAAU+C,GACpD,QAA0B,IAAfhH,KAAKgH,GAAuB,CACrC,IAAIC,EAAM,IAAItG,OAAQ,SAAWqG,EAAO,KACpCE,EAAM,IAAIvG,OAAQ,IAAMqG,EAAO,KACnCD,QAAUA,QACP9F,QAAQgG,EAAKnD,KAAKC,UAAU/D,KAAKgH,KACjC/F,QAAQiG,EAAKpD,KAAKC,UAAU/D,KAAKgH,QAGpC1B,QAAQM,MAAQmB,QAAQjF,QAAQ,UAAY,IAC9CiF,QAAUtG,eAAeiD,gBAAgBqD,QAAS,QAASzB,QAAQM,OAEjEmB,QAAQjF,QAAQ,YAAc,IAChCiF,QAAUtG,eAAeiD,gBAAgBqD,QAAS,UAAWvG,iBAAiBf,UAAUN,SAEtF4H,QAAQjF,QAAQ,QAAU,IAC5BiF,QAAUtG,eAAe2D,eAAe2C,QAASzB,QAAQjB,UAGzDvD,KADEiG,QAAQjF,QAAQ,WAAa,EACxB,eAAiBiF,QAAU,KAE3B,uBAAyBA,QAAU,MAErCI,KAAKrG,MAAMkF,KAAKtG,OAEzB0H,MAAO,SAASA,MAAMzD,WAAY2B,SAChC,IAAItF,KAAOsF,QAAQtF,KACfc,KACAiG,QAAUpD,WACd,uBAAyBnC,MAAM,KAAKyC,QAAQ,SAAU+C,GACpD,QAA0B,IAAfhH,KAAKgH,GAAuB,CACrC,IAAIC,EAAM,IAAItG,OAAQ,SAAWqG,EAAO,KACpCE,EAAM,IAAIvG,OAAQ,IAAMqG,EAAO,KACnCD,QAAUA,QACP9F,QAAQgG,EAAKnD,KAAKC,UAAU/D,KAAKgH,KACjC/F,QAAQiG,EAAKpD,KAAKC,UAAU/D,KAAKgH,QAGpC1B,QAAQM,MAAQmB,QAAQjF,QAAQ,UAAY,IAC9CiF,QAAUtG,eAAeiD,gBAAgBqD,QAAS,QAASzB,QAAQM,OAEjEmB,QAAQjF,QAAQ,YAAc,IAChCiF,QAAUtG,eAAeiD,gBAAgBqD,QAAS,UAAW7G,eAAef,SAE1E4H,QAAQjF,QAAQ,QAAU,IAC5BiF,QAAUtG,eAAe2D,eAAe2C,QAASzB,QAAQjB,UAGzDvD,KADEiG,QAAQjF,QAAQ,WAAa,EACxB,eAAiBiF,QAAU,KAE3B,uBAAyBA,QAAU,MAE5C,IAAIM,UAAYF,KAAKrG,MAAMkF,KAAKtG,MAChC,OAAI2H,UACK/B,QAAQW,GAAGvG,KAAM4F,QAAQtF,MAG3BsF,QAAQY,QAAQxG,KAAM4F,QAAQtF,QAGzCmF,iBAAiBmC,WAAanC,iBAAiBiC,MAE/C,IAAIG,oBACAC,qBACAC,OAASjH,iBAAiBkH,SAASC,cAAc,UACrDnH,iBAAiBkH,SAASE,KAAKC,YAAYJ,QAE3C,IAAIvH,eAAiB,SAAwBH,GACnCL,KACNK,SAAWA,GAGX+H,iBAAoBxC,SAAWyC,cAAc,GAAOvC,UAAYuC,cAAc,GAAOC,SAAWD,cAAc,IA0JlH,OAzJA7H,eAAe+H,UAAU7H,QAAU,SAASA,QAASL,SAAUyD,OAqB7D,SAAS0E,aAAa3F,EAAOoC,GAC3B,OAAIpC,EAAME,QAAkB0F,EAAE/H,QAAQmC,EAAME,QAASkC,GAC9C,WAAmB,MAAO,IAEnC,SAASyD,kBAAkB7F,EAAOoC,GAChC,OAAIpC,EAAMkB,eAAyB0E,EAAE/H,QAAQmC,EAAMkB,eAAgBkB,GAC5D,WAAmB,MAAO,SA1Bf,IAAb5E,WAAsBA,SAAWL,KAAKK,eAC5B,IAAVyD,QAAmBA,MAAQ,GAElC,IAAI2E,EAAIzI,KACR,GAAIyI,EAAE1C,SAAY,OAAO0C,EAAE1C,SAE3B,GAAwB,iBAAb1F,SACT,MAAM,IAAI+F,MAAM,wCAElB,IAAI1D,eAAiB3B,eAAe2B,eAC9BmC,cAAgB9D,eAAe8D,cAC/BQ,qBAAuBtE,eAAesE,qBAExC1C,OAASD,eAAerC,UACxB0E,IAAM,OAASjB,MACfxD,KAAO,QAAUwD,MACrB,GAAsB,IAAlBnB,OAAOvC,OACT,OAAO,WAAmB,MAAO,IAYnC,IAAIuI,aAAe,GAEjBA,cADY,IAAV7E,MACc,cAAgBiB,IAAM,KAAOzE,KAAO,cAEpC,cAAgByE,IAAM,KAAOzE,KAAO,QAExC,IAAVwD,QACF6E,cAAgB,sDAChBA,cAAgB,oEAChBA,cAAgB,2JAChBA,cAAgB,iCAElBA,cAAgB,gBAChB,IAAIjH,EACJ,IAAKA,EAAI,EAAGA,EAAIiB,OAAOvC,OAAQsB,GAAK,EAAG,CACrC,IAAImB,MAAQF,OAAOjB,GAEnB,GAAmB,UAAfmB,MAAMC,KAAV,CAKA,IAAIwB,cAAW,EACXsE,uBAAoB,EAOxB,GALmB,aAAf/F,MAAMC,OACRwB,SAAWO,cAAchC,MAAMG,YAAa+B,IAAKzE,MACjDqI,cAAgB,UAAYrE,SAAW,KAAOS,IAAM,MAGnC,WAAflC,MAAMC,KAAmB,CAC3B,IAAI6B,aAAU,EACd,GAAY,UAARI,IAAiB,CAGnB,IAAK,IAFD8D,MAAQ9D,IAAIjD,MAAM,KAAK,GACvBgH,cAAgB,QAAUD,MAAQ,GAC7BlH,EAAIkH,MAAQ,EAAGlH,GAAK,EAAGA,GAAK,EACnCmH,eAAiB,SAAWnH,EAE9BgD,QAAU,IAAMmE,cAAgB,SAEhCnE,QAAU,IAAMI,IAAM,IAExB,IAAIgE,mBAAgB,EAKpB,GAJsC,IAAlClG,MAAMK,WAAWd,QAAQ,OAC3BS,MAAMK,WAAa2B,cAAchC,MAAMK,WAAW3B,QAAQ,SAAU,IAAKwD,IAAKzE,MAC9EyI,eAAgB,GAEdA,eAAiBlG,MAAMK,cAAcuC,iBACvCmD,kBAAoBvD,qBAAqBxC,MAAMG,YAAa+B,IAAKzE,MACjEqI,cAAgB,0BAA4BI,cAAiB,IAAOlG,MAAgB,WAAI,IAAQ,IAAOA,MAAgB,YAAM,UAAYkC,IAAM,MAAQ6D,mBAAuBA,kBAAoB,MAAU,SAAYxE,KAAKC,UAAUxB,MAAMJ,MAAS,WAAanC,KAAO,eAAkBkI,aAAa3F,MAAOiB,MAAQ,GAAM,cAAiB4E,kBAAkB7F,MAAOiB,MAAQ,GAAM,0BAA4Ba,QAAU,UACvZ,CAAA,GAAI9B,MAAMG,YAAY5C,OAAS,EACpC,MAAM,IAAIgG,MAAO,+BAAmCvD,MAAgB,WAAI,KAExEyB,SAAWO,cAAchC,MAAMK,WAAY6B,IAAKzE,MAChDqI,cAAgB,OAASrE,SAAW,MACpCqE,cAAgB,eAAiBrE,SAAW,OAC5CqE,cAAgB,qCAAuC5D,IAAM,KAAOT,SAAW,WAAcF,KAAKC,UAAUxB,MAAMJ,MAAS,WAAanC,KAAO,eAAkBkI,aAAa3F,MAAOiB,MAAQ,GAAM,cAAiB4E,kBAAkB7F,MAAOiB,MAAQ,GAAM,0BAA4Ba,QAAU,MACjSgE,cAAgB,UAChBA,cAAgB,qCAAuC5D,IAAM,KAAOT,SAAW,WAAcF,KAAKC,UAAUxB,MAAMJ,MAAS,WAAanC,KAAO,eAAkBkI,aAAa3F,MAAOiB,MAAQ,GAAM,cAAiB4E,kBAAkB7F,MAAOiB,MAAQ,GAAM,0BAA4Ba,QAAU,MACjSgE,cAAgB,YAxClBA,cAAgB,QAAY9F,MAAa,QAAEtB,QAAQ,MAAO,OAAOA,QAAQ,MAAO,OAAOA,QAAQ,KAAM,OAAgB,KA8CzH,OAFAoH,cAAgB,gBAEF,IAAV7E,OAEF2E,EAAE1C,SAAW0B,KAAKkB,cACXF,EAAE1C,UAEJ4C,cAETP,gBAAgBxC,QAAQoD,IAAM,WAC5B,OAAOnB,kBAETO,gBAAgBtC,SAASkD,IAAM,WAC7B,OAAOlB,mBAETM,gBAAgBE,QAAQU,IAAM,WAC5B,OAAOvD,kBAGTO,OAAOiD,iBAAkBzI,eAAgB4H,iBAgBzCrI,UAAUmJ,eAAiB,SAAwBpE,EAAMyB,GACvD/F,eAAe8H,QAAQxD,GAAQyB,GAEjCxG,UAAUoJ,iBAAmB,SAA0BrE,GACrDtE,eAAe8H,QAAQxD,QAAQjE,SACxBL,eAAe8H,QAAQxD,IAEhC/E,UAAUqJ,gBAAkB,SAAyBtE,EAAMzE,GACzDG,eAAesF,SAAShB,IAAUzE,SAAUA,IAE9CN,UAAUsJ,kBAAoB,SAA2BvE,GACnDtE,eAAesF,SAAShB,KAC1BtE,eAAesF,SAAShB,QAAQjE,SACzBL,eAAesF,SAAShB,KAGnC/E,UAAUW,QAAU,SAAiBL,EAAUuF,GAE7C,OADe,IAAIpF,eAAeH,EAAUuF,GAC5BlF,WAGlBX,UAAU6F,QAAUpF,eAAeoF,QACnC7F,UAAUuI,QAAU9H,eAAe8H,QACnCvI,UAAU+F,SAAWtF,eAAesF,SAE7B/F","file":"template7.min.js","sourcesContent":["/**\n * Template7 1.3.5\n * Mobile-first HTML template engine\n * \n * http://www.idangero.us/template7/\n * \n * Copyright 2018, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n * \n * Licensed under MIT\n * \n * Released on: January 22, 2018\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Template7 = factory());\n}(this, (function () { 'use strict';\n\nvar t7ctx;\nif (typeof window !== 'undefined') {\n t7ctx = window;\n} else if (typeof global !== 'undefined') {\n t7ctx = global;\n} else {\n t7ctx = undefined;\n}\n\nvar Template7Context = t7ctx;\n\nvar Template7Utils = {\n quoteSingleRexExp: new RegExp('\\'', 'g'),\n quoteDoubleRexExp: new RegExp('\"', 'g'),\n isFunction: function isFunction(func) {\n return typeof func === 'function';\n },\n escape: function escape(string) {\n return (typeof Template7Context !== 'undefined' && Template7Context.escape) ?\n Template7Context.escape(string) :\n string\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"');\n },\n helperToSlices: function helperToSlices(string) {\n var quoteDoubleRexExp = Template7Utils.quoteDoubleRexExp;\n var quoteSingleRexExp = Template7Utils.quoteSingleRexExp;\n var helperParts = string.replace(/[{}#}]/g, '').trim().split(' ');\n var slices = [];\n var shiftIndex;\n var i;\n var j;\n for (i = 0; i < helperParts.length; i += 1) {\n var part = helperParts[i];\n var blockQuoteRegExp = (void 0);\n var openingQuote = (void 0);\n if (i === 0) { slices.push(part); }\n else if (part.indexOf('\"') === 0 || part.indexOf('\\'') === 0) {\n blockQuoteRegExp = part.indexOf('\"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp;\n openingQuote = part.indexOf('\"') === 0 ? '\"' : '\\'';\n // Plain String\n if (part.match(blockQuoteRegExp).length === 2) {\n // One word string\n slices.push(part);\n } else {\n // Find closed Index\n shiftIndex = 0;\n for (j = i + 1; j < helperParts.length; j += 1) {\n part += \" \" + (helperParts[j]);\n if (helperParts[j].indexOf(openingQuote) >= 0) {\n shiftIndex = j;\n slices.push(part);\n break;\n }\n }\n if (shiftIndex) { i = shiftIndex; }\n }\n } else if (part.indexOf('=') > 0) {\n // Hash\n var hashParts = part.split('=');\n var hashName = hashParts[0];\n var hashContent = hashParts[1];\n if (!blockQuoteRegExp) {\n blockQuoteRegExp = hashContent.indexOf('\"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp;\n openingQuote = hashContent.indexOf('\"') === 0 ? '\"' : '\\'';\n }\n if (hashContent.match(blockQuoteRegExp).length !== 2) {\n shiftIndex = 0;\n for (j = i + 1; j < helperParts.length; j += 1) {\n hashContent += \" \" + (helperParts[j]);\n if (helperParts[j].indexOf(openingQuote) >= 0) {\n shiftIndex = j;\n break;\n }\n }\n if (shiftIndex) { i = shiftIndex; }\n }\n var hash = [hashName, hashContent.replace(blockQuoteRegExp, '')];\n slices.push(hash);\n } else {\n // Plain variable\n slices.push(part);\n }\n }\n return slices;\n },\n stringToBlocks: function stringToBlocks(string) {\n var blocks = [];\n var i;\n var j;\n if (!string) { return []; }\n var stringBlocks = string.split(/({{[^{^}]*}})/);\n for (i = 0; i < stringBlocks.length; i += 1) {\n var block = stringBlocks[i];\n if (block === '') { continue; }\n if (block.indexOf('{{') < 0) {\n blocks.push({\n type: 'plain',\n content: block,\n });\n } else {\n if (block.indexOf('{/') >= 0) {\n continue;\n }\n block = block\n .replace(/{{([#/])*([ ])*/, '{{$1')\n .replace(/([ ])*}}/, '}}');\n if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) {\n // Simple variable\n blocks.push({\n type: 'variable',\n contextName: block.replace(/[{}]/g, ''),\n });\n continue;\n }\n // Helpers\n var helperSlices = Template7Utils.helperToSlices(block);\n var helperName = helperSlices[0];\n var isPartial = helperName === '>';\n var helperContext = [];\n var helperHash = {};\n for (j = 1; j < helperSlices.length; j += 1) {\n var slice = helperSlices[j];\n if (Array.isArray(slice)) {\n // Hash\n helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1];\n } else {\n helperContext.push(slice);\n }\n }\n\n if (block.indexOf('{#') >= 0) {\n // Condition/Helper\n var helperContent = '';\n var elseContent = '';\n var toSkip = 0;\n var shiftIndex = (void 0);\n var foundClosed = false;\n var foundElse = false;\n var depth = 0;\n for (j = i + 1; j < stringBlocks.length; j += 1) {\n if (stringBlocks[j].indexOf('{{#') >= 0) {\n depth += 1;\n }\n if (stringBlocks[j].indexOf('{{/') >= 0) {\n depth -= 1;\n }\n if (stringBlocks[j].indexOf((\"{{#\" + helperName)) >= 0) {\n helperContent += stringBlocks[j];\n if (foundElse) { elseContent += stringBlocks[j]; }\n toSkip += 1;\n } else if (stringBlocks[j].indexOf((\"{{/\" + helperName)) >= 0) {\n if (toSkip > 0) {\n toSkip -= 1;\n helperContent += stringBlocks[j];\n if (foundElse) { elseContent += stringBlocks[j]; }\n } else {\n shiftIndex = j;\n foundClosed = true;\n break;\n }\n } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) {\n foundElse = true;\n } else {\n if (!foundElse) { helperContent += stringBlocks[j]; }\n if (foundElse) { elseContent += stringBlocks[j]; }\n }\n }\n if (foundClosed) {\n if (shiftIndex) { i = shiftIndex; }\n if (helperName === 'raw') {\n blocks.push({\n type: 'plain',\n content: helperContent,\n });\n } else {\n blocks.push({\n type: 'helper',\n helperName: helperName,\n contextName: helperContext,\n content: helperContent,\n inverseContent: elseContent,\n hash: helperHash,\n });\n }\n }\n } else if (block.indexOf(' ') > 0) {\n if (isPartial) {\n helperName = '_partial';\n if (helperContext[0]) {\n if (helperContext[0].indexOf('[') === 0) { helperContext[0] = helperContext[0].replace(/[[\\]]/g, ''); }\n else { helperContext[0] = \"\\\"\" + (helperContext[0].replace(/\"|'/g, '')) + \"\\\"\"; }\n }\n }\n blocks.push({\n type: 'helper',\n helperName: helperName,\n contextName: helperContext,\n hash: helperHash,\n });\n }\n }\n }\n return blocks;\n },\n parseJsVariable: function parseJsVariable(expression, replace, object) {\n return expression.split(/([+ -*/^])/g).map(function (part) {\n if (part.indexOf(replace) < 0) { return part; }\n if (!object) { return JSON.stringify(''); }\n var variable = object;\n if (part.indexOf((replace + \".\")) >= 0) {\n part.split((replace + \".\"))[1].split('.').forEach(function (partName) {\n if (variable[partName]) { variable = variable[partName]; }\n else { variable = 'undefined'; }\n });\n }\n return JSON.stringify(variable);\n }).join('');\n },\n parseJsParents: function parseJsParents(expression, parents) {\n return expression.split(/([+ -*^])/g).map(function (part) {\n if (part.indexOf('../') < 0) { return part; }\n if (!parents || parents.length === 0) { return JSON.stringify(''); }\n var levelsUp = part.split('../').length - 1;\n var parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1];\n\n var variable = parentData;\n var parentPart = part.replace(/..\\//g, '');\n parentPart.split('.').forEach(function (partName) {\n if (variable[partName]) { variable = variable[partName]; }\n else { variable = 'undefined'; }\n });\n return JSON.stringify(variable);\n }).join('');\n },\n getCompileVar: function getCompileVar(name, ctx, data) {\n if ( data === void 0 ) data = 'data_1';\n\n var variable = ctx;\n var parts;\n var levelsUp = 0;\n var newDepth;\n if (name.indexOf('../') === 0) {\n levelsUp = name.split('../').length - 1;\n newDepth = variable.split('_')[1] - levelsUp;\n variable = \"ctx_\" + (newDepth >= 1 ? newDepth : 1);\n parts = name.split('../')[levelsUp].split('.');\n } else if (name.indexOf('@global') === 0) {\n variable = 'Template7.global';\n parts = name.split('@global.')[1].split('.');\n } else if (name.indexOf('@root') === 0) {\n variable = 'root';\n parts = name.split('@root.')[1].split('.');\n } else {\n parts = name.split('.');\n }\n for (var i = 0; i < parts.length; i += 1) {\n var part = parts[i];\n if (part.indexOf('@') === 0) {\n var dataLevel = data.split('_')[1];\n if (levelsUp > 0) {\n dataLevel = newDepth;\n }\n if (i > 0) {\n variable += \"[(data_\" + dataLevel + \" && data_\" + dataLevel + \".\" + (part.replace('@', '')) + \")]\";\n } else {\n variable = \"(data_\" + dataLevel + \" && data_\" + dataLevel + \".\" + (part.replace('@', '')) + \")\";\n }\n } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) {\n variable += \"[\" + part + \"]\";\n } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) {\n variable = part.replace('this', ctx);\n } else {\n variable += \".\" + part;\n }\n }\n return variable;\n },\n getCompiledArguments: function getCompiledArguments(contextArray, ctx, data) {\n var arr = [];\n for (var i = 0; i < contextArray.length; i += 1) {\n if (/^['\"]/.test(contextArray[i])) { arr.push(contextArray[i]); }\n else if (/^(true|false|\\d+)$/.test(contextArray[i])) { arr.push(contextArray[i]); }\n else {\n arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data));\n }\n }\n\n return arr.join(', ');\n },\n};\n\n/* eslint no-eval: \"off\" */\nvar Template7Helpers = {\n _partial: function _partial(partialName, options) {\n var ctx = this;\n var p = Template7Class.partials[partialName];\n if (!p || (p && !p.template)) { return ''; }\n if (!p.compiled) {\n p.compiled = new Template7Class(p.template).compile();\n }\n Object.keys(options.hash).forEach(function (hashName) {\n ctx[hashName] = options.hash[hashName];\n });\n return p.compiled(ctx, options.data, options.root);\n },\n escape: function escape(context) {\n if (typeof context !== 'string') {\n throw new Error('Template7: Passed context to \"escape\" helper should be a string');\n }\n return Template7Utils.escape(context);\n },\n if: function if$1(context, options) {\n var ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (ctx) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n unless: function unless(context, options) {\n var ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (!ctx) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n each: function each(context, options) {\n var ctx = context;\n var ret = '';\n var i = 0;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (Array.isArray(ctx)) {\n if (options.hash.reverse) {\n ctx = ctx.reverse();\n }\n for (i = 0; i < ctx.length; i += 1) {\n ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i });\n }\n if (options.hash.reverse) {\n ctx = ctx.reverse();\n }\n } else {\n // eslint-disable-next-line\n for (var key in ctx) {\n i += 1;\n ret += options.fn(ctx[key], { key: key });\n }\n }\n if (i > 0) { return ret; }\n return options.inverse(this);\n },\n with: function with$1(context, options) {\n var ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); }\n return options.fn(ctx);\n },\n join: function join(context, options) {\n var ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n return ctx.join(options.hash.delimiter || options.hash.delimeter);\n },\n js: function js(expression, options) {\n var data = options.data;\n var func;\n var execute = expression;\n ('index first last key').split(' ').forEach(function (prop) {\n if (typeof data[prop] !== 'undefined') {\n var re1 = new RegExp((\"this.@\" + prop), 'g');\n var re2 = new RegExp((\"@\" + prop), 'g');\n execute = execute\n .replace(re1, JSON.stringify(data[prop]))\n .replace(re2, JSON.stringify(data[prop]));\n }\n });\n if (options.root && execute.indexOf('@root') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@root', options.root);\n }\n if (execute.indexOf('@global') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global);\n }\n if (execute.indexOf('../') >= 0) {\n execute = Template7Utils.parseJsParents(execute, options.parents);\n }\n if (execute.indexOf('return') >= 0) {\n func = \"(function(){\" + execute + \"})\";\n } else {\n func = \"(function(){return (\" + execute + \")})\";\n }\n return eval(func).call(this);\n },\n js_if: function js_if(expression, options) {\n var data = options.data;\n var func;\n var execute = expression;\n ('index first last key').split(' ').forEach(function (prop) {\n if (typeof data[prop] !== 'undefined') {\n var re1 = new RegExp((\"this.@\" + prop), 'g');\n var re2 = new RegExp((\"@\" + prop), 'g');\n execute = execute\n .replace(re1, JSON.stringify(data[prop]))\n .replace(re2, JSON.stringify(data[prop]));\n }\n });\n if (options.root && execute.indexOf('@root') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@root', options.root);\n }\n if (execute.indexOf('@global') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@global', Template7Class.global);\n }\n if (execute.indexOf('../') >= 0) {\n execute = Template7Utils.parseJsParents(execute, options.parents);\n }\n if (execute.indexOf('return') >= 0) {\n func = \"(function(){\" + execute + \"})\";\n } else {\n func = \"(function(){return (\" + execute + \")})\";\n }\n var condition = eval(func).call(this);\n if (condition) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n};\nTemplate7Helpers.js_compare = Template7Helpers.js_if;\n\nvar Template7Options = {};\nvar Template7Partials = {};\nvar script = Template7Context.document.createElement('script');\nTemplate7Context.document.head.appendChild(script);\n\nvar Template7Class = function Template7Class(template) {\n var t = this;\n t.template = template;\n};\n\nvar staticAccessors = { options: { configurable: true },partials: { configurable: true },helpers: { configurable: true } };\nTemplate7Class.prototype.compile = function compile (template, depth) {\n if ( template === void 0 ) template = this.template;\n if ( depth === void 0 ) depth = 1;\n\n var t = this;\n if (t.compiled) { return t.compiled; }\n\n if (typeof template !== 'string') {\n throw new Error('Template7: Template must be a string');\n }\n var stringToBlocks = Template7Utils.stringToBlocks;\n var getCompileVar = Template7Utils.getCompileVar;\n var getCompiledArguments = Template7Utils.getCompiledArguments;\n\n var blocks = stringToBlocks(template);\n var ctx = \"ctx_\" + depth;\n var data = \"data_\" + depth;\n if (blocks.length === 0) {\n return function empty() { return ''; };\n }\n\n function getCompileFn(block, newDepth) {\n if (block.content) { return t.compile(block.content, newDepth); }\n return function empty() { return ''; };\n }\n function getCompileInverse(block, newDepth) {\n if (block.inverseContent) { return t.compile(block.inverseContent, newDepth); }\n return function empty() { return ''; };\n }\n\n var resultString = '';\n if (depth === 1) {\n resultString += \"(function (\" + ctx + \", \" + data + \", root) {\\n\";\n } else {\n resultString += \"(function (\" + ctx + \", \" + data + \") {\\n\";\n }\n if (depth === 1) {\n resultString += 'function isArray(arr){return Array.isArray(arr);}\\n';\n resultString += 'function isFunction(func){return (typeof func === \\'function\\');}\\n';\n resultString += 'function c(val, ctx) {if (typeof val !== \"undefined\" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return \"\";}\\n';\n resultString += 'root = root || ctx_1 || {};\\n';\n }\n resultString += 'var r = \\'\\';\\n';\n var i;\n for (i = 0; i < blocks.length; i += 1) {\n var block = blocks[i];\n // Plain block\n if (block.type === 'plain') {\n // eslint-disable-next-line\n resultString += \"r +='\" + ((block.content).replace(/\\r/g, '\\\\r').replace(/\\n/g, '\\\\n').replace(/'/g, '\\\\' + '\\'')) + \"';\";\n continue;\n }\n var variable = (void 0);\n var compiledArguments = (void 0);\n // Variable block\n if (block.type === 'variable') {\n variable = getCompileVar(block.contextName, ctx, data);\n resultString += \"r += c(\" + variable + \", \" + ctx + \");\";\n }\n // Helpers block\n if (block.type === 'helper') {\n var parents = (void 0);\n if (ctx !== 'ctx_1') {\n var level = ctx.split('_')[1];\n var parentsString = \"ctx_\" + (level - 1);\n for (var j = level - 2; j >= 1; j -= 1) {\n parentsString += \", ctx_\" + j;\n }\n parents = \"[\" + parentsString + \"]\";\n } else {\n parents = \"[\" + ctx + \"]\";\n }\n var dynamicHelper = (void 0);\n if (block.helperName.indexOf('[') === 0) {\n block.helperName = getCompileVar(block.helperName.replace(/[[\\]]/g, ''), ctx, data);\n dynamicHelper = true;\n }\n if (dynamicHelper || block.helperName in Template7Helpers) {\n compiledArguments = getCompiledArguments(block.contextName, ctx, data);\n resultString += \"r += (Template7Helpers\" + (dynamicHelper ? (\"[\" + (block.helperName) + \"]\") : (\".\" + (block.helperName))) + \").call(\" + ctx + \", \" + (compiledArguments && ((compiledArguments + \", \"))) + \"{hash:\" + (JSON.stringify(block.hash)) + \", data: \" + data + \" || {}, fn: \" + (getCompileFn(block, depth + 1)) + \", inverse: \" + (getCompileInverse(block, depth + 1)) + \", root: root, parents: \" + parents + \"});\";\n } else if (block.contextName.length > 0) {\n throw new Error((\"Template7: Missing helper: \\\"\" + (block.helperName) + \"\\\"\"));\n } else {\n variable = getCompileVar(block.helperName, ctx, data);\n resultString += \"if (\" + variable + \") {\";\n resultString += \"if (isArray(\" + variable + \")) {\";\n resultString += \"r += (Template7Helpers.each).call(\" + ctx + \", \" + variable + \", {hash:\" + (JSON.stringify(block.hash)) + \", data: \" + data + \" || {}, fn: \" + (getCompileFn(block, depth + 1)) + \", inverse: \" + (getCompileInverse(block, depth + 1)) + \", root: root, parents: \" + parents + \"});\";\n resultString += '}else {';\n resultString += \"r += (Template7Helpers.with).call(\" + ctx + \", \" + variable + \", {hash:\" + (JSON.stringify(block.hash)) + \", data: \" + data + \" || {}, fn: \" + (getCompileFn(block, depth + 1)) + \", inverse: \" + (getCompileInverse(block, depth + 1)) + \", root: root, parents: \" + parents + \"});\";\n resultString += '}}';\n }\n }\n }\n resultString += '\\nreturn r;})';\n\n if (depth === 1) {\n // eslint-disable-next-line\n t.compiled = eval(resultString);\n return t.compiled;\n }\n return resultString;\n};\nstaticAccessors.options.get = function () {\n return Template7Options;\n};\nstaticAccessors.partials.get = function () {\n return Template7Partials;\n};\nstaticAccessors.helpers.get = function () {\n return Template7Helpers;\n};\n\nObject.defineProperties( Template7Class, staticAccessors );\n\nfunction Template7() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var template = args[0];\n var data = args[1];\n if (args.length === 2) {\n var instance = new Template7Class(template);\n var rendered = instance.compile()(data);\n instance = null;\n return (rendered);\n }\n return new Template7Class(template);\n}\nTemplate7.registerHelper = function registerHelper(name, fn) {\n Template7Class.helpers[name] = fn;\n};\nTemplate7.unregisterHelper = function unregisterHelper(name) {\n Template7Class.helpers[name] = undefined;\n delete Template7Class.helpers[name];\n};\nTemplate7.registerPartial = function registerPartial(name, template) {\n Template7Class.partials[name] = { template: template };\n};\nTemplate7.unregisterPartial = function unregisterPartial(name) {\n if (Template7Class.partials[name]) {\n Template7Class.partials[name] = undefined;\n delete Template7Class.partials[name];\n }\n};\nTemplate7.compile = function compile(template, options) {\n var instance = new Template7Class(template, options);\n return instance.compile();\n};\n\nTemplate7.options = Template7Class.options;\nTemplate7.helpers = Template7Class.helpers;\nTemplate7.partials = Template7Class.partials;\n\nreturn Template7;\n\n})));\n\n//# sourceMappingURL=template7.js.map\n"]} \ No newline at end of file diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/template7/template7Helper.js b/platform/icec-static/src/main/resources/static/resource/plugins/template7/template7Helper.js new file mode 100644 index 0000000..40a936d --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/template7/template7Helper.js @@ -0,0 +1,5 @@ +Template7.registerHelper('select', function(selected, options) { + return options.fn(this).replace( + new RegExp(' value=\"' + selected + '\"'), + '$& selected="selected"'); +}); \ No newline at end of file diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/jquery.treeTable.js b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/jquery.treeTable.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/jquery.treeTable.js rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/jquery.treeTable.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/jquery.treeTable.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/jquery.treeTable.min.js similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/jquery.treeTable.min.js rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/jquery.treeTable.min.js diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/allbgs.gif b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/allbgs.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/allbgs.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/allbgs.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/allbgs.png b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/allbgs.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/allbgs.png rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/allbgs.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/treeTable.css b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/treeTable.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/treeTable.css rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/treeTable.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/treeTable.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/treeTable.min.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/default/treeTable.min.css rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/default/treeTable.min.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/allbgs.gif b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/allbgs.gif similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/allbgs.gif rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/allbgs.gif diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/allbgs.png b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/allbgs.png similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/allbgs.png rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/allbgs.png diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/allbgs.psd b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/allbgs.psd similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/allbgs.psd rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/allbgs.psd diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/treeTable.css b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/treeTable.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/treeTable.css rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/treeTable.css diff --git a/icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/treeTable.min.css b/platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/treeTable.min.css similarity index 100% rename from icec-admin/src/main/resources/static/ace/plugins/treeTable/themes/vsStyle/treeTable.min.css rename to platform/icec-static/src/main/resources/static/resource/plugins/treeTable/themes/vsStyle/treeTable.min.css diff --git a/platform/icec-static/src/main/resources/static/resource/plugins/websocket/sockjs.min.js b/platform/icec-static/src/main/resources/static/resource/plugins/websocket/sockjs.min.js new file mode 100644 index 0000000..3bf7efb --- /dev/null +++ b/platform/icec-static/src/main/resources/static/resource/plugins/websocket/sockjs.min.js @@ -0,0 +1,27 @@ +/* SockJS client, version 0.3.4, http://sockjs.org, MIT License + +Copyright (c) 2011-2012 VMware, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// JSON2 by Douglas Crockford (minified). +var JSON;JSON||(JSON={}),function(){function str(a,b){var c,d,e,f,g=gap,h,i=b[a];i&&typeof i=="object"&&typeof i.toJSON=="function"&&(i=i.toJSON(a)),typeof rep=="function"&&(i=rep.call(b,a,i));switch(typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";gap+=indent,h=[];if(Object.prototype.toString.apply(i)==="[object Array]"){f=i.length;for(c=0;c1?this._listeners[a]=d.slice(0,e).concat(d.slice(e+1)):delete this._listeners[a];return}return},d.prototype.dispatchEvent=function(a){var b=a.type,c=Array.prototype.slice.call(arguments,0);this["on"+b]&&this["on"+b].apply(this,c);if(this._listeners&&b in this._listeners)for(var d=0;d=3e3&&a<=4999},c.countRTO=function(a){var b;return a>100?b=3*a:b=a+200,b},c.log=function(){b.console&&console.log&&console.log.apply&&console.log.apply(console,arguments)},c.bind=function(a,b){return a.bind?a.bind(b):function(){return a.apply(b,arguments)}},c.flatUrl=function(a){return a.indexOf("?")===-1&&a.indexOf("#")===-1},c.amendUrl=function(b){var d=a.location;if(!b)throw new Error("Wrong url for SockJS");if(!c.flatUrl(b))throw new Error("Only basic urls are supported in SockJS");return b.indexOf("//")===0&&(b=d.protocol+b),b.indexOf("/")===0&&(b=d.protocol+"//"+d.host+b),b=b.replace(/[/]+$/,""),b},c.arrIndexOf=function(a,b){for(var c=0;c=0},c.delay=function(a,b){return typeof a=="function"&&(b=a,a=0),setTimeout(b,a)};var i=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,j={"\0":"\\u0000","\x01":"\\u0001","\x02":"\\u0002","\x03":"\\u0003","\x04":"\\u0004","\x05":"\\u0005","\x06":"\\u0006","\x07":"\\u0007","\b":"\\b","\t":"\\t","\n":"\\n","\x0b":"\\u000b","\f":"\\f","\r":"\\r","\x0e":"\\u000e","\x0f":"\\u000f","\x10":"\\u0010","\x11":"\\u0011","\x12":"\\u0012","\x13":"\\u0013","\x14":"\\u0014","\x15":"\\u0015","\x16":"\\u0016","\x17":"\\u0017","\x18":"\\u0018","\x19":"\\u0019","\x1a":"\\u001a","\x1b":"\\u001b","\x1c":"\\u001c","\x1d":"\\u001d","\x1e":"\\u001e","\x1f":"\\u001f",'"':'\\"',"\\":"\\\\","\x7f":"\\u007f","\x80":"\\u0080","\x81":"\\u0081","\x82":"\\u0082","\x83":"\\u0083","\x84":"\\u0084","\x85":"\\u0085","\x86":"\\u0086","\x87":"\\u0087","\x88":"\\u0088","\x89":"\\u0089","\x8a":"\\u008a","\x8b":"\\u008b","\x8c":"\\u008c","\x8d":"\\u008d","\x8e":"\\u008e","\x8f":"\\u008f","\x90":"\\u0090","\x91":"\\u0091","\x92":"\\u0092","\x93":"\\u0093","\x94":"\\u0094","\x95":"\\u0095","\x96":"\\u0096","\x97":"\\u0097","\x98":"\\u0098","\x99":"\\u0099","\x9a":"\\u009a","\x9b":"\\u009b","\x9c":"\\u009c","\x9d":"\\u009d","\x9e":"\\u009e","\x9f":"\\u009f","\xad":"\\u00ad","\u0600":"\\u0600","\u0601":"\\u0601","\u0602":"\\u0602","\u0603":"\\u0603","\u0604":"\\u0604","\u070f":"\\u070f","\u17b4":"\\u17b4","\u17b5":"\\u17b5","\u200c":"\\u200c","\u200d":"\\u200d","\u200e":"\\u200e","\u200f":"\\u200f","\u2028":"\\u2028","\u2029":"\\u2029","\u202a":"\\u202a","\u202b":"\\u202b","\u202c":"\\u202c","\u202d":"\\u202d","\u202e":"\\u202e","\u202f":"\\u202f","\u2060":"\\u2060","\u2061":"\\u2061","\u2062":"\\u2062","\u2063":"\\u2063","\u2064":"\\u2064","\u2065":"\\u2065","\u2066":"\\u2066","\u2067":"\\u2067","\u2068":"\\u2068","\u2069":"\\u2069","\u206a":"\\u206a","\u206b":"\\u206b","\u206c":"\\u206c","\u206d":"\\u206d","\u206e":"\\u206e","\u206f":"\\u206f","\ufeff":"\\ufeff","\ufff0":"\\ufff0","\ufff1":"\\ufff1","\ufff2":"\\ufff2","\ufff3":"\\ufff3","\ufff4":"\\ufff4","\ufff5":"\\ufff5","\ufff6":"\\ufff6","\ufff7":"\\ufff7","\ufff8":"\\ufff8","\ufff9":"\\ufff9","\ufffa":"\\ufffa","\ufffb":"\\ufffb","\ufffc":"\\ufffc","\ufffd":"\\ufffd","\ufffe":"\\ufffe","\uffff":"\\uffff"},k=/[\x00-\x1f\ud800-\udfff\ufffe\uffff\u0300-\u0333\u033d-\u0346\u034a-\u034c\u0350-\u0352\u0357-\u0358\u035c-\u0362\u0374\u037e\u0387\u0591-\u05af\u05c4\u0610-\u0617\u0653-\u0654\u0657-\u065b\u065d-\u065e\u06df-\u06e2\u06eb-\u06ec\u0730\u0732-\u0733\u0735-\u0736\u073a\u073d\u073f-\u0741\u0743\u0745\u0747\u07eb-\u07f1\u0951\u0958-\u095f\u09dc-\u09dd\u09df\u0a33\u0a36\u0a59-\u0a5b\u0a5e\u0b5c-\u0b5d\u0e38-\u0e39\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f72-\u0f76\u0f78\u0f80-\u0f83\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1939-\u193a\u1a17\u1b6b\u1cda-\u1cdb\u1dc0-\u1dcf\u1dfc\u1dfe\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fee-\u1fef\u1ff9\u1ffb\u1ffd\u2000-\u2001\u20d0-\u20d1\u20d4-\u20d7\u20e7-\u20e9\u2126\u212a-\u212b\u2329-\u232a\u2adc\u302b-\u302c\uaab2-\uaab3\uf900-\ufa0d\ufa10\ufa12\ufa15-\ufa1e\ufa20\ufa22\ufa25-\ufa26\ufa2a-\ufa2d\ufa30-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufb4e\ufff0-\uffff]/g,l,m=JSON&&JSON.stringify||function(a){return i.lastIndex=0,i.test(a)&&(a=a.replace(i,function(a){return j[a]})),'"'+a+'"'},n=function(a){var b,c={},d=[];for(b=0;b<65536;b++)d.push(String.fromCharCode(b));return a.lastIndex=0,d.join("").replace(a,function(a){return c[a]="\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4),""}),a.lastIndex=0,c};c.quote=function(a){var b=m(a);return k.lastIndex=0,k.test(b)?(l||(l=n(k)),b.replace(k,function(a){return l[a]})):b};var o=["websocket","xdr-streaming","xhr-streaming","iframe-eventsource","iframe-htmlfile","xdr-polling","xhr-polling","iframe-xhr-polling","jsonp-polling"];c.probeProtocols=function(){var a={};for(var b=0;b0&&h(a)};return c.websocket!==!1&&h(["websocket"]),d["xhr-streaming"]&&!c.null_origin?e.push("xhr-streaming"):d["xdr-streaming"]&&!c.cookie_needed&&!c.null_origin?e.push("xdr-streaming"):h(["iframe-eventsource","iframe-htmlfile"]),d["xhr-polling"]&&!c.null_origin?e.push("xhr-polling"):d["xdr-polling"]&&!c.cookie_needed&&!c.null_origin?e.push("xdr-polling"):h(["iframe-xhr-polling","jsonp-polling"]),e};var p="_sockjs_global";c.createHook=function(){var a="a"+c.random_string(8);if(!(p in b)){var d={};b[p]=function(a){return a in d||(d[a]={id:a,del:function(){delete d[a]}}),d[a]}}return b[p](a)},c.attachMessage=function(a){c.attachEvent("message",a)},c.attachEvent=function(c,d){typeof b.addEventListener!="undefined"?b.addEventListener(c,d,!1):(a.attachEvent("on"+c,d),b.attachEvent("on"+c,d))},c.detachMessage=function(a){c.detachEvent("message",a)},c.detachEvent=function(c,d){typeof b.addEventListener!="undefined"?b.removeEventListener(c,d,!1):(a.detachEvent("on"+c,d),b.detachEvent("on"+c,d))};var q={},r=!1,s=function(){for(var a in q)q[a](),delete q[a]},t=function(){if(r)return;r=!0,s()};c.attachEvent("unload",t),c.unload_add=function(a){var b=c.random_string(8);return q[b]=a,r&&c.delay(s),b},c.unload_del=function(a){a in q&&delete q[a]},c.createIframe=function(b,d){var e=a.createElement("iframe"),f,g,h=function(){clearTimeout(f);try{e.onload=null}catch(a){}e.onerror=null},i=function(){e&&(h(),setTimeout(function(){e&&e.parentNode.removeChild(e),e=null},0),c.unload_del(g))},j=function(a){e&&(i(),d(a))},k=function(a,b){try{e&&e.contentWindow&&e.contentWindow.postMessage(a,b)}catch(c){}};return e.src=b,e.style.display="none",e.style.position="absolute",e.onerror=function(){j("onerror")},e.onload=function(){clearTimeout(f),f=setTimeout(function(){j("onload timeout")},2e3)},a.body.appendChild(e),f=setTimeout(function(){j("timeout")},15e3),g=c.unload_add(i),{post:k,cleanup:i,loaded:h}},c.createHtmlfile=function(a,d){var e=new ActiveXObject("htmlfile"),f,g,i,j=function(){clearTimeout(f)},k=function(){e&&(j(),c.unload_del(g),i.parentNode.removeChild(i),i=e=null,CollectGarbage())},l=function(a){e&&(k(),d(a))},m=function(a,b){try{i&&i.contentWindow&&i.contentWindow.postMessage(a,b)}catch(c){}};e.open(),e.write(' + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icec-sys/src/main/resources/templates/common/layout.html b/platform/icec-sys/src/main/resources/templates/common/layout.html similarity index 68% rename from icec-sys/src/main/resources/templates/common/layout.html rename to platform/icec-sys/src/main/resources/templates/common/layout.html index b479a66..54e0012 100644 --- a/icec-sys/src/main/resources/templates/common/layout.html +++ b/platform/icec-sys/src/main/resources/templates/common/layout.html @@ -10,32 +10,30 @@ title - + + th:href="@{/resource/plugins/font-awesome/css/font-awesome.css}" /> - + + - - - - - + - + - + diff --git a/icec-sys/src/main/resources/templates/sys/dict/dictValueAdd.html b/platform/icec-sys/src/main/resources/templates/sys/dict/dictValueAdd.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/dict/dictValueAdd.html rename to platform/icec-sys/src/main/resources/templates/sys/dict/dictValueAdd.html diff --git a/icec-sys/src/main/resources/templates/sys/dict/dictValueEdit.html b/platform/icec-sys/src/main/resources/templates/sys/dict/dictValueEdit.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/dict/dictValueEdit.html rename to platform/icec-sys/src/main/resources/templates/sys/dict/dictValueEdit.html diff --git a/icec-sys/src/main/resources/templates/sys/environment.html b/platform/icec-sys/src/main/resources/templates/sys/environment.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/environment.html rename to platform/icec-sys/src/main/resources/templates/sys/environment.html diff --git a/icec-sys/src/main/resources/templates/sys/global/globalEdit.html b/platform/icec-sys/src/main/resources/templates/sys/global/globalEdit.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/global/globalEdit.html rename to platform/icec-sys/src/main/resources/templates/sys/global/globalEdit.html diff --git a/icec-sys/src/main/resources/templates/sys/home.html b/platform/icec-sys/src/main/resources/templates/sys/home.html similarity index 66% rename from icec-sys/src/main/resources/templates/sys/home.html rename to platform/icec-sys/src/main/resources/templates/sys/home.html index 3be75b1..ba4331f 100644 --- a/icec-sys/src/main/resources/templates/sys/home.html +++ b/platform/icec-sys/src/main/resources/templates/sys/home.html @@ -10,20 +10,30 @@
    +
    -

    通知公告

    +

    在线统计

    -
    -
    +
    + + + + + + + +
    +
    +
    -

    企业新闻

    +

    通知公告

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    User@ EmailStatus
    Alexalex@email.comPending
    Fredfred@email.comApproved -
    Jackjack@email.comPending
    Johnjohn@email.comBlocked
    Jamesjames@email.comOnline -
    -
    +
    -
    +
    -

    快速导航

    +

    故障分析

    @@ -153,9 +149,8 @@ -
    - - - + +
    + + +
      +
    • +
    + +
    + + + + + + +
    + + +
    +
    + + +
    +
    + + + +
    +
    + + +
    +
    + + + +
    +
    + +
    +
    + --  -- +
    +
    +
    +
    尝试切换至一门式服务
    +
    切换至一门式服务失败
    +
    +
    此功能需要一门式服务
    客户端才能使用
    +
    + + +
    +
    +
    +
    + +
    +
    +
    + +
    + + + diff --git a/icec-sys/src/main/resources/templates/sys/login.html b/platform/icec-sys/src/main/resources/templates/sys/login2.html similarity index 92% rename from icec-sys/src/main/resources/templates/sys/login.html rename to platform/icec-sys/src/main/resources/templates/sys/login2.html index 7718764..64e713d 100644 --- a/icec-sys/src/main/resources/templates/sys/login.html +++ b/platform/icec-sys/src/main/resources/templates/sys/login2.html @@ -1,8 +1,8 @@ -系统登录 - +环境监控系统 + @@ -16,9 +16,9 @@

    - icecream admin + 环境监控系统

    -

    © icec 2018

    +

    © 中科龙安 2018

    diff --git a/icec-sys/src/main/resources/templates/sys/menu/menuAdd.html b/platform/icec-sys/src/main/resources/templates/sys/menu/menuAdd.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/menu/menuAdd.html rename to platform/icec-sys/src/main/resources/templates/sys/menu/menuAdd.html diff --git a/icec-sys/src/main/resources/templates/sys/menu/menuEdit.html b/platform/icec-sys/src/main/resources/templates/sys/menu/menuEdit.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/menu/menuEdit.html rename to platform/icec-sys/src/main/resources/templates/sys/menu/menuEdit.html diff --git a/icec-sys/src/main/resources/templates/sys/menu/menuList.html b/platform/icec-sys/src/main/resources/templates/sys/menu/menuList.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/menu/menuList.html rename to platform/icec-sys/src/main/resources/templates/sys/menu/menuList.html diff --git a/icec-sys/src/main/resources/templates/sys/office/officeAdd.html b/platform/icec-sys/src/main/resources/templates/sys/office/officeAdd.html similarity index 96% rename from icec-sys/src/main/resources/templates/sys/office/officeAdd.html rename to platform/icec-sys/src/main/resources/templates/sys/office/officeAdd.html index e3d1e84..cf85404 100644 --- a/icec-sys/src/main/resources/templates/sys/office/officeAdd.html +++ b/platform/icec-sys/src/main/resources/templates/sys/office/officeAdd.html @@ -110,7 +110,7 @@
    \ No newline at end of file diff --git a/icec-sys/src/main/resources/templates/sys/role/roleAuth.html b/platform/icec-sys/src/main/resources/templates/sys/role/roleAuth.html similarity index 76% rename from icec-sys/src/main/resources/templates/sys/role/roleAuth.html rename to platform/icec-sys/src/main/resources/templates/sys/role/roleAuth.html index c528c9b..06c7156 100644 --- a/icec-sys/src/main/resources/templates/sys/role/roleAuth.html +++ b/platform/icec-sys/src/main/resources/templates/sys/role/roleAuth.html @@ -75,7 +75,7 @@ var roleId=[[${roleId}]]; "animation" : 0, "themes" : { "icons":true ,"stripes":false}, 'data' : { - "url" : "/jeeplus/a/sys/dataRule/treeData?roleId=1c54e003c1fc4dcd9b087ef8d48abac3", + "url" : ctx+"sys/area/treeData?roleId="+roleId, "dataType" : "json" // needed only if you do not supply JSON headers } }, @@ -93,8 +93,36 @@ var roleId=[[${roleId}]]; 'cascade' : 'undetermined|down|up' //有三个选项,up, down, undetermined; 使用前需要先禁用three_state }, + }); */ + + //数据权限 + $('#dataRuleTree').jstree({ + 'core' : { + "multiple" : true, + "animation" : 0, + "themes" : { "icons":true ,"stripes":false}, + 'data' : { + "url" : ctx+"sys/area/treeData?roleId="+roleId, + "dataType" : "json" // needed only if you do not supply JSON headers + } + }, + 'plugins' : [ "checkbox", 'types' , 'wholerow'], + "types":{ 'default' : { + 'icon' : 'fa fa-file-text-o' + }, + 'html' : { + 'icon' : 'fa fa-file-code-o' + }, + 'btn':{'icon' : 'fa fa-square'} + }, + 'checkbox' : { + // 禁用级联选中 + 'three_state' : false, + 'cascade' : 'undetermined|down|up' //有三个选项,up, down, undetermined; 使用前需要先禁用three_state + } + }); - */ + validateForm = $("#inputForm").validate({ @@ -108,6 +136,16 @@ var roleId=[[${roleId}]]; }); $("#menuIds").val(ids); + + //数据权限 + var data_ref = $('#dataRuleTree').jstree(true); + var data_ids = data_ref.get_selected(); + //取半选节点ID + $("#dataRuleTree li").has("i[class*='jstree-undetermined']").each(function(){ + data_ids+=","+$(this).attr("id"); + }); + $("#dataRuleIds").val(data_ids); + //数据权限 /* var data_ref = $('#dataRuleTree').jstree(true); var nodes = data_ref.get_selected(true); diff --git a/icec-sys/src/main/resources/templates/sys/role/roleEdit.html b/platform/icec-sys/src/main/resources/templates/sys/role/roleEdit.html similarity index 78% rename from icec-sys/src/main/resources/templates/sys/role/roleEdit.html rename to platform/icec-sys/src/main/resources/templates/sys/role/roleEdit.html index 58034fe..c2379dd 100644 --- a/icec-sys/src/main/resources/templates/sys/role/roleEdit.html +++ b/platform/icec-sys/src/main/resources/templates/sys/role/roleEdit.html @@ -7,7 +7,7 @@
    -
    +
    @@ -77,32 +77,28 @@ top.layer.close(index); }); - $().ready(function() { - $("#userAddForm").validate({ - submitHandler: function(form) { - //验证通过后 的js代码写在这里 - - $(form).ajaxSubmit({ - dataType:"json", - success:function( data ){ - if(data==1){ - top.layer.alert('保存成功') - top.layer.close(index); - top.getActiveTab()[0].contentWindow.search(); - }else{ - top.layer.alert('保存失败') - } - - - }, - error:function(xhr, status, error){ - top.layer.alert('操作失败'); - } - }); - - } - }); + function confirmSubmit() { + var result = jp.confirm('确定要修改角色信息吗?',function() { + $("#userAddForm").ajaxSubmit({ + dataType : "json", + success : function(data) { + if (data == 1) { + top.layer.alert('修改成功') + top.layer.close(index); + top.getActiveTab()[0].contentWindow.search(); + } else { + top.layer.alert('修改失败') + } + + }, + error : function(xhr, status, error) { + top.layer.alert('操作失败'); + } + }); }); + + return result; + } \ No newline at end of file diff --git a/icec-sys/src/main/resources/templates/sys/role/roleList.html b/platform/icec-sys/src/main/resources/templates/sys/role/roleList.html similarity index 95% rename from icec-sys/src/main/resources/templates/sys/role/roleList.html rename to platform/icec-sys/src/main/resources/templates/sys/role/roleList.html index 80338fa..f85a9d0 100644 --- a/icec-sys/src/main/resources/templates/sys/role/roleList.html +++ b/platform/icec-sys/src/main/resources/templates/sys/role/roleList.html @@ -21,7 +21,7 @@ - +
    - +
  • 首页 + class="menu-icon fa fa-home"> 首页
  • diff --git a/platform/icec-sys/src/main/resources/templates/sys/sysGlobalInfo.html b/platform/icec-sys/src/main/resources/templates/sys/sysGlobalInfo.html new file mode 100644 index 0000000..0861de7 --- /dev/null +++ b/platform/icec-sys/src/main/resources/templates/sys/sysGlobalInfo.html @@ -0,0 +1,97 @@ + + +系统信息 + + + +
    +
    +
    + + + + + +
    + +
    + + +
    + +
    +
    + +
    + +
    + + +
    + +
    +
    + +
    + +
    + + +
    + +
    +
    +
    +
    + + +       + +
    +
    + + + + +
    +
    + +
    +
    + + + \ No newline at end of file diff --git a/icec-sys/src/main/resources/templates/sys/user/modifyPasswd.html b/platform/icec-sys/src/main/resources/templates/sys/user/modifyPasswd.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/user/modifyPasswd.html rename to platform/icec-sys/src/main/resources/templates/sys/user/modifyPasswd.html diff --git a/icec-sys/src/main/resources/templates/sys/user/userAdd.html b/platform/icec-sys/src/main/resources/templates/sys/user/userAdd.html similarity index 92% rename from icec-sys/src/main/resources/templates/sys/user/userAdd.html rename to platform/icec-sys/src/main/resources/templates/sys/user/userAdd.html index 937e494..aa09790 100644 --- a/icec-sys/src/main/resources/templates/sys/user/userAdd.html +++ b/platform/icec-sys/src/main/resources/templates/sys/user/userAdd.html @@ -7,7 +7,7 @@
    -
    @@ -299,30 +299,28 @@ top.layer.close(index); }); - $().ready(function() { - $("#userAddForm").validate({ - submitHandler : function(form) { - //验证通过后 的js代码写在这里 - $(form).ajaxSubmit({ - dataType : "json", - success : function(data) { - if (data == 1) { - top.layer.alert('保存成功') - top.layer.close(index); - top.getActiveTab()[0].contentWindow.search(); - } else { - top.layer.alert('保存失败') - } - - }, - error : function(xhr, status, error) { - top.layer.alert('操作失败'); + function confirmSubmit() { + var result = jp.confirm('确定要保存用户信息吗?',function() { + $("#userAddForm").ajaxSubmit({ + dataType : "json", + success : function(data) { + if (data == 1) { + top.layer.alert('保存成功') + top.layer.close(index); + top.getActiveTab()[0].contentWindow.search(); + } else { + top.layer.alert('保存失败') } - }); - } + }, + error : function(xhr, status, error) { + top.layer.alert('操作失败'); + } + }); }); - }); + + return result; + } \ No newline at end of file diff --git a/icec-sys/src/main/resources/templates/sys/user/userEdit.html b/platform/icec-sys/src/main/resources/templates/sys/user/userEdit.html similarity index 90% rename from icec-sys/src/main/resources/templates/sys/user/userEdit.html rename to platform/icec-sys/src/main/resources/templates/sys/user/userEdit.html index 974759f..0240cd3 100644 --- a/icec-sys/src/main/resources/templates/sys/user/userEdit.html +++ b/platform/icec-sys/src/main/resources/templates/sys/user/userEdit.html @@ -8,7 +8,7 @@
    - \ No newline at end of file diff --git a/icec-sys/src/main/resources/templates/sys/user/userList.html b/platform/icec-sys/src/main/resources/templates/sys/user/userList.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/user/userList.html rename to platform/icec-sys/src/main/resources/templates/sys/user/userList.html diff --git a/icec-sys/src/main/resources/templates/sys/user/userSetting.html b/platform/icec-sys/src/main/resources/templates/sys/user/userSetting.html similarity index 100% rename from icec-sys/src/main/resources/templates/sys/user/userSetting.html rename to platform/icec-sys/src/main/resources/templates/sys/user/userSetting.html diff --git a/platform/icec-sys/src/main/resources/templates/websocket/test.html b/platform/icec-sys/src/main/resources/templates/websocket/test.html new file mode 100644 index 0000000..8f65f92 --- /dev/null +++ b/platform/icec-sys/src/main/resources/templates/websocket/test.html @@ -0,0 +1,39 @@ + + + + +Insert title here + + + + + + + +websocket 测试 +
    +

    +
    + + + \ No newline at end of file diff --git a/icec-sys/src/test/java/org/iece/tools/sys/UserTool.java b/platform/icec-sys/src/test/java/org/iece/tools/sys/UserTool.java similarity index 100% rename from icec-sys/src/test/java/org/iece/tools/sys/UserTool.java rename to platform/icec-sys/src/test/java/org/iece/tools/sys/UserTool.java diff --git a/pom.xml b/platform/pom.xml similarity index 57% rename from pom.xml rename to platform/pom.xml index 565bfed..06fd318 100644 --- a/pom.xml +++ b/platform/pom.xml @@ -1,18 +1,14 @@ 4.0.0 org.icec - icec + platform 0.0.1-SNAPSHOT pom + - icec-admin - icec-sys icec-parent - icec-common - icec-workflow - icec-autogen - icec-schedule - icec-oa - icec-ireport + icec-common + icec-sys + icec-static \ No newline at end of file diff --git a/icec-autogen/pom.xml b/tools/icec-autogen/pom.xml similarity index 92% rename from icec-autogen/pom.xml rename to tools/icec-autogen/pom.xml index 29e9c9d..d16caaa 100644 --- a/icec-autogen/pom.xml +++ b/tools/icec-autogen/pom.xml @@ -4,7 +4,7 @@ org.icec icec-parent - 0.0.1-SNAPSHOT + 2.0 ../icec-parent/pom.xml icec-autogen @@ -32,7 +32,6 @@ org.postgresql postgresql - 42.2.4 org.icec @@ -48,11 +47,9 @@ logback-classic - org.projectlombok lombok - 1.16.18 用来测试编写自动生成代码的地方 diff --git a/icec-autogen/src/main/java/org/icec/gen/core/AutoGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/AutoGen.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/AutoGen.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/AutoGen.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/CodeGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/CodeGen.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/CodeGen.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/CodeGen.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/ControllerCodeGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/ControllerCodeGen.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/ControllerCodeGen.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/ControllerCodeGen.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/GenConfig.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/GenConfig.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/GenConfig.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/GenConfig.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/MapperCodeGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/MapperCodeGen.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/MapperCodeGen.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/MapperCodeGen.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/ServiceCodeGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/ServiceCodeGen.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/ServiceCodeGen.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/ServiceCodeGen.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/SourceGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/SourceGen.java similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/SourceGen.java rename to tools/icec-autogen/src/main/java/org/icec/gen/core/SourceGen.java diff --git a/icec-autogen/src/main/java/org/icec/gen/core/controller.btl b/tools/icec-autogen/src/main/java/org/icec/gen/core/controller.btl similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/controller.btl rename to tools/icec-autogen/src/main/java/org/icec/gen/core/controller.btl diff --git a/icec-autogen/src/main/java/org/icec/gen/core/mapper.btl b/tools/icec-autogen/src/main/java/org/icec/gen/core/mapper.btl similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/mapper.btl rename to tools/icec-autogen/src/main/java/org/icec/gen/core/mapper.btl diff --git a/icec-autogen/src/main/java/org/icec/gen/core/md.btl b/tools/icec-autogen/src/main/java/org/icec/gen/core/md.btl similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/md.btl rename to tools/icec-autogen/src/main/java/org/icec/gen/core/md.btl diff --git a/icec-autogen/src/main/java/org/icec/gen/core/pojo.btl b/tools/icec-autogen/src/main/java/org/icec/gen/core/pojo.btl similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/pojo.btl rename to tools/icec-autogen/src/main/java/org/icec/gen/core/pojo.btl diff --git a/icec-autogen/src/main/java/org/icec/gen/core/service.btl b/tools/icec-autogen/src/main/java/org/icec/gen/core/service.btl similarity index 100% rename from icec-autogen/src/main/java/org/icec/gen/core/service.btl rename to tools/icec-autogen/src/main/java/org/icec/gen/core/service.btl diff --git a/icec-autogen/src/main/resources/logback.xml b/tools/icec-autogen/src/main/resources/logback.xml similarity index 100% rename from icec-autogen/src/main/resources/logback.xml rename to tools/icec-autogen/src/main/resources/logback.xml diff --git a/icec-autogen/src/main/resources/logback/logback-dev.xml b/tools/icec-autogen/src/main/resources/logback/logback-dev.xml similarity index 100% rename from icec-autogen/src/main/resources/logback/logback-dev.xml rename to tools/icec-autogen/src/main/resources/logback/logback-dev.xml diff --git a/icec-autogen/src/main/resources/logback/logback-level-config.xml b/tools/icec-autogen/src/main/resources/logback/logback-level-config.xml similarity index 100% rename from icec-autogen/src/main/resources/logback/logback-level-config.xml rename to tools/icec-autogen/src/main/resources/logback/logback-level-config.xml diff --git a/icec-autogen/src/main/resources/logback/logback-pro.xml b/tools/icec-autogen/src/main/resources/logback/logback-pro.xml similarity index 100% rename from icec-autogen/src/main/resources/logback/logback-pro.xml rename to tools/icec-autogen/src/main/resources/logback/logback-pro.xml diff --git a/icec-autogen/src/test/java/org/icec/gen/GenBqlTools.java b/tools/icec-autogen/src/test/java/org/icec/gen/GenBqlTools.java similarity index 100% rename from icec-autogen/src/test/java/org/icec/gen/GenBqlTools.java rename to tools/icec-autogen/src/test/java/org/icec/gen/GenBqlTools.java diff --git a/icec-autogen/src/test/resources/jdbc.properties b/tools/icec-autogen/src/test/resources/jdbc.properties similarity index 100% rename from icec-autogen/src/test/resources/jdbc.properties rename to tools/icec-autogen/src/test/resources/jdbc.properties -- Gitee From 56739bbd9db6c1fc29eb02b76f8d40e9fe091e07 Mon Sep 17 00:00:00 2001 From: xxjin <313383180@qq.com> Date: Thu, 13 Dec 2018 16:17:03 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/templates/sys/login.html | 555 +++++------------- .../main/resources/templates/sys/login2.html | 161 ----- 2 files changed, 134 insertions(+), 582 deletions(-) delete mode 100644 platform/icec-sys/src/main/resources/templates/sys/login2.html diff --git a/platform/icec-sys/src/main/resources/templates/sys/login.html b/platform/icec-sys/src/main/resources/templates/sys/login.html index f3696be..fcb3250 100644 --- a/platform/icec-sys/src/main/resources/templates/sys/login.html +++ b/platform/icec-sys/src/main/resources/templates/sys/login.html @@ -1,425 +1,138 @@ - - 系统登录 - - - - - - - - - -
    - -
    -
    - - -
    -
    - -
    - + +系统名称 + + + + +
    +
    +
    +
    + +
    + +
    + +
    + +
    + + + + + + + diff --git a/platform/icec-sys/src/main/resources/templates/sys/login2.html b/platform/icec-sys/src/main/resources/templates/sys/login2.html deleted file mode 100644 index 64e713d..0000000 --- a/platform/icec-sys/src/main/resources/templates/sys/login2.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -环境监控系统 - - - - - -
    -
    -
    -
    - -
    - -
    - -
    - -
    - - - - - - - - - - - - - - - -- Gitee From 56dba2152d403cc1247e2e728da4cbb4c34fd525 Mon Sep 17 00:00:00 2001 From: xxjin <313383180@qq.com> Date: Thu, 13 Dec 2018 17:24:17 +0800 Subject: [PATCH 04/14] =?UTF-8?q?springboot=E5=8D=87=E7=BA=A7=E5=88=B02.1.?= =?UTF-8?q?1.RELEASE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/icec/web/AdminMain.java | 4 +--- .../main/resources/application-dev.properties | 4 ++-- platform/icec-parent/pom.xml | 16 ++++++++-------- platform/icec-sys/pom.xml | 4 ++-- .../{WebMvcConfigurer.java => WebMvcConf.java} | 9 ++++----- .../CurrentUserMethodArgumentResolver.java | 2 -- .../support/aop/MainsiteErrorController.java | 16 +++++++++++++--- .../thymeleaf/dict/DictSelectProcessor.java | 2 +- .../thymeleaf/dict/DictShowProcessor.java | 2 +- .../resources/templates/sys/area/areaList.html | 4 ++-- .../resources/templates/sys/menu/menuList.html | 4 ++-- .../templates/sys/office/officeList.html | 4 ++-- .../resources/templates/sys/user/userList.html | 4 ++-- 13 files changed, 40 insertions(+), 35 deletions(-) rename platform/icec-sys/src/main/java/org/icec/web/core/config/{WebMvcConfigurer.java => WebMvcConf.java} (80%) diff --git a/application/icec-admin/src/main/java/org/icec/web/AdminMain.java b/application/icec-admin/src/main/java/org/icec/web/AdminMain.java index 50511dc..9a2e80d 100644 --- a/application/icec-admin/src/main/java/org/icec/web/AdminMain.java +++ b/application/icec-admin/src/main/java/org/icec/web/AdminMain.java @@ -3,13 +3,11 @@ package org.icec.web; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.support.SpringBootServletInitializer; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; -import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.boot.Banner; @SpringBootApplication -@EnableTransactionManagement @ComponentScan(basePackages= {"org.icec"}) public class AdminMain extends SpringBootServletInitializer { /** diff --git a/application/icec-admin/src/main/resources/application-dev.properties b/application/icec-admin/src/main/resources/application-dev.properties index 5f4c7be..89c347b 100644 --- a/application/icec-admin/src/main/resources/application-dev.properties +++ b/application/icec-admin/src/main/resources/application-dev.properties @@ -4,8 +4,8 @@ spring.thymeleaf.cache=false spring.thymeleaf.mode =HTML #:replace(dbIp,dbName,dbPassword,driver){ -datasource.driver=com.mysql.jdbc.Driver -datasource.url=jdbc:mysql://127.0.0.1:3306/icec?useUnicode=true&characterEncoding=UTF8&useSSL=false&zeroDateTimeBehavior=convertToNull& +datasource.driver=com.mysql.cj.jdbc.Driver +datasource.url=jdbc:mysql://127.0.0.1:3306/icec?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF8&useSSL=false&zeroDateTimeBehavior=convertToNull& datasource.username=icec datasource.password=icec #} diff --git a/platform/icec-parent/pom.xml b/platform/icec-parent/pom.xml index e18464a..8fcd6e2 100644 --- a/platform/icec-parent/pom.xml +++ b/platform/icec-parent/pom.xml @@ -11,14 +11,14 @@ UTF-8 1.8 - 3.0.8.RELEASE + 3.0.11.RELEASE 2.2.2 - 3.0.8.RELEASE + 3.0.11.RELEASE 1.4.0 2.6.11 2.3.2 1.2.39 - 1.5.16.RELEASE + 2.1.1.RELEASE @@ -42,22 +42,22 @@ com.alibaba druid - 1.1.3 + 1.1.12 org.thymeleaf - thymeleaf-spring4 - 3.0.8.RELEASE + thymeleaf-spring5 + ${thymeleaf-spring5.version} org.thymeleaf thymeleaf - 3.0.8.RELEASE + ${thymeleaf.version} nz.net.ultraq.thymeleaf thymeleaf-layout-dialect - 2.2.2 + 2.3.0 org.postgresql diff --git a/platform/icec-sys/pom.xml b/platform/icec-sys/pom.xml index 1e95b30..6aaef8b 100644 --- a/platform/icec-sys/pom.xml +++ b/platform/icec-sys/pom.xml @@ -42,7 +42,7 @@ org.thymeleaf - thymeleaf-spring4 + thymeleaf-spring5 nz.net.ultraq.thymeleaf @@ -52,7 +52,7 @@ org.thymeleaf - thymeleaf-spring4 + thymeleaf-spring5 org.thymeleaf diff --git a/platform/icec-sys/src/main/java/org/icec/web/core/config/WebMvcConfigurer.java b/platform/icec-sys/src/main/java/org/icec/web/core/config/WebMvcConf.java similarity index 80% rename from platform/icec-sys/src/main/java/org/icec/web/core/config/WebMvcConfigurer.java rename to platform/icec-sys/src/main/java/org/icec/web/core/config/WebMvcConf.java index cb38366..0c20d6d 100644 --- a/platform/icec-sys/src/main/java/org/icec/web/core/config/WebMvcConfigurer.java +++ b/platform/icec-sys/src/main/java/org/icec/web/core/config/WebMvcConf.java @@ -9,14 +9,13 @@ import org.springframework.boot.web.servlet.MultipartConfigFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.method.support.HandlerMethodArgumentResolver; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration -public class WebMvcConfigurer extends WebMvcConfigurerAdapter { +public class WebMvcConf implements WebMvcConfigurer { @Override public void addArgumentResolvers(List argumentResolvers) { argumentResolvers.add(currentUserMethodArgumentResolver()); - super.addArgumentResolvers(argumentResolvers); } @Bean @@ -27,8 +26,8 @@ public class WebMvcConfigurer extends WebMvcConfigurerAdapter { @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); - factory.setMaxFileSize("10MB"); - factory.setMaxRequestSize("10MB"); + /*factory.setMaxFileSize("10MB"); + factory.setMaxRequestSize("10MB");*/ return factory.createMultipartConfig(); } } diff --git a/platform/icec-sys/src/main/java/org/icec/web/core/shiro/resolvers/CurrentUserMethodArgumentResolver.java b/platform/icec-sys/src/main/java/org/icec/web/core/shiro/resolvers/CurrentUserMethodArgumentResolver.java index 33011ca..17fcdb5 100644 --- a/platform/icec-sys/src/main/java/org/icec/web/core/shiro/resolvers/CurrentUserMethodArgumentResolver.java +++ b/platform/icec-sys/src/main/java/org/icec/web/core/shiro/resolvers/CurrentUserMethodArgumentResolver.java @@ -5,13 +5,11 @@ import org.apache.shiro.SecurityUtils; import org.icec.web.core.shiro.annotation.CurrentUser; import org.icec.web.core.sys.model.SysUser; import org.springframework.core.MethodParameter; -import org.springframework.stereotype.Component; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; import org.springframework.web.multipart.support.MissingServletRequestPartException; -@Component public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver { @Override diff --git a/platform/icec-sys/src/main/java/org/icec/web/core/support/aop/MainsiteErrorController.java b/platform/icec-sys/src/main/java/org/icec/web/core/support/aop/MainsiteErrorController.java index a807451..7b0dc4b 100644 --- a/platform/icec-sys/src/main/java/org/icec/web/core/support/aop/MainsiteErrorController.java +++ b/platform/icec-sys/src/main/java/org/icec/web/core/support/aop/MainsiteErrorController.java @@ -4,12 +4,22 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.icec.common.base.tips.ErrorTip; import org.icec.common.utils.AjaxUtils; -import org.springframework.boot.autoconfigure.web.ErrorController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.web.servlet.error.AbstractErrorController; +import org.springframework.boot.web.servlet.error.DefaultErrorAttributes; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -public class MainsiteErrorController implements ErrorController { +import com.fasterxml.jackson.databind.ObjectMapper; +@Controller +public class MainsiteErrorController extends AbstractErrorController { private static final String ERROR_PATH = "/error"; - + @Autowired + ObjectMapper objectMapper; + + public MainsiteErrorController() { + super(new DefaultErrorAttributes()); + } @RequestMapping(value = ERROR_PATH) public String handleError(HttpServletRequest request, HttpServletResponse response) { if(AjaxUtils.isAjaxRequest(request)){//ajax 则返回json diff --git a/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictSelectProcessor.java b/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictSelectProcessor.java index 74a05bb..a7e60e1 100644 --- a/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictSelectProcessor.java +++ b/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictSelectProcessor.java @@ -13,7 +13,7 @@ import org.thymeleaf.model.IAttribute; import org.thymeleaf.model.IProcessableElementTag; import org.thymeleaf.processor.element.AbstractElementTagProcessor; import org.thymeleaf.processor.element.IElementTagStructureHandler; -import org.thymeleaf.spring4.context.SpringContextUtils; +import org.thymeleaf.spring5.context.SpringContextUtils; import org.thymeleaf.standard.expression.IStandardExpression; import org.thymeleaf.standard.expression.IStandardExpressionParser; import org.thymeleaf.standard.expression.StandardExpressions; diff --git a/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictShowProcessor.java b/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictShowProcessor.java index e325937..2a58771 100644 --- a/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictShowProcessor.java +++ b/platform/icec-sys/src/main/java/org/icec/web/core/support/thymeleaf/dict/DictShowProcessor.java @@ -10,7 +10,7 @@ import org.thymeleaf.context.ITemplateContext; import org.thymeleaf.model.IProcessableElementTag; import org.thymeleaf.processor.element.AbstractElementTagProcessor; import org.thymeleaf.processor.element.IElementTagStructureHandler; -import org.thymeleaf.spring4.context.SpringContextUtils; +import org.thymeleaf.spring5.context.SpringContextUtils; import org.thymeleaf.standard.expression.IStandardExpression; import org.thymeleaf.standard.expression.IStandardExpressionParser; import org.thymeleaf.standard.expression.StandardExpressions; diff --git a/platform/icec-sys/src/main/resources/templates/sys/area/areaList.html b/platform/icec-sys/src/main/resources/templates/sys/area/areaList.html index 88e291d..ac5ddb0 100644 --- a/platform/icec-sys/src/main/resources/templates/sys/area/areaList.html +++ b/platform/icec-sys/src/main/resources/templates/sys/area/areaList.html @@ -5,7 +5,7 @@ @@ -84,7 +84,7 @@
    - + + + + + + + diff --git a/tools/icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java b/tools/icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java index eed4586..89ac116 100644 --- a/tools/icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java +++ b/tools/icec-autogen/src/main/java/org/icec/gen/core/MdCodeGen.java @@ -5,6 +5,8 @@ import java.io.IOException; import org.beetl.core.Template; import org.beetl.sql.core.SQLManager; +import org.beetl.sql.core.db.DBStyle; +import org.beetl.sql.core.db.DefaultKeyWordHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,7 +22,9 @@ public class MdCodeGen { String condition = sqlManager.getDbStyle().genCondition(table); String updateSample=sqlManager.getDbStyle().genColAssignPropertyAbsolute(table); - String cols=sqlManager.getDbStyle().genColumnList(table); + DBStyle dbstyle = sqlManager.getDbStyle(); + dbstyle .setKeyWordHandler(new DefaultKeyWordHandler()); + String cols=dbstyle.genColumnList(table); template.binding("table",table); template.binding("condition",condition); template.binding("updateSample",updateSample); -- Gitee From 9187552e92b30ac73c55f404138868eed52e19be Mon Sep 17 00:00:00 2001 From: xxjin <313383180@qq.com> Date: Mon, 17 Dec 2018 14:10:59 +0800 Subject: [PATCH 06/14] =?UTF-8?q?sql=20=E5=B0=BD=E9=87=8F=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E9=80=9A=E7=94=A8sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/sql/sysArea.md | 26 +++++----- .../src/main/resources/sql/sysDict.md | 30 +++++------ .../src/main/resources/sql/sysFile.md | 28 +++++------ .../src/main/resources/sql/sysGlobal.md | 16 +++--- .../icec-sys/src/main/resources/sql/sysLog.md | 4 +- .../src/main/resources/sql/sysMenu.md | 34 ++++++------- .../src/main/resources/sql/sysOffice.md | 50 +++++++++---------- .../src/main/resources/sql/sysRole.md | 30 +++++------ .../src/main/resources/sql/sysUser.md | 18 +++---- .../resources/templates/sys/user/userAdd.html | 6 +-- .../templates/sys/user/userEdit.html | 6 +-- 11 files changed, 124 insertions(+), 124 deletions(-) diff --git a/platform/icec-sys/src/main/resources/sql/sysArea.md b/platform/icec-sys/src/main/resources/sql/sysArea.md index 5f5e736..2119115 100644 --- a/platform/icec-sys/src/main/resources/sql/sysArea.md +++ b/platform/icec-sys/src/main/resources/sql/sysArea.md @@ -32,46 +32,46 @@ cols updateSample === - `id`=#id#,`parent_id`=#parentId#,`parent_ids`=#parentIds#,`name`=#name#,`sort`=#sort#,`code`=#code#,`type`=#type#,`create_by`=#createBy#,`create_date`=#createDate#,`update_by`=#updateBy#,`update_date`=#updateDate#,`remarks`=#remarks#,`del_flag`=#delFlag# + id=#id#,parent_id=#parentId#,parent_ids=#parentIds#,name=#name#,sort=#sort#,code=#code#,type=#type#,create_by=#createBy#,create_date=#createDate#,update_by=#updateBy#,update_date=#updateDate#,remarks=#remarks#,del_flag=#delFlag# condition === 1 = 1 @if(!isEmpty(parentId)){ - and `parent_id`=#parentId# + and parent_id=#parentId# @} @if(!isEmpty(parentIds)){ - and `parent_ids`=#parentIds# + and parent_ids=#parentIds# @} @if(!isEmpty(name)){ - and `name`=#name# + and name=#name# @} @if(!isEmpty(sort)){ - and `sort`=#sort# + and sort=#sort# @} @if(!isEmpty(code)){ - and `code`=#code# + and code=#code# @} @if(!isEmpty(type)){ - and `type`=#type# + and type=#type# @} @if(!isEmpty(createBy)){ - and `create_by`=#createBy# + and create_by=#createBy# @} @if(!isEmpty(createDate)){ - and `create_date`=#createDate# + and create_date=#createDate# @} @if(!isEmpty(updateBy)){ - and `update_by`=#updateBy# + and update_by=#updateBy# @} @if(!isEmpty(updateDate)){ - and `update_date`=#updateDate# + and update_date=#updateDate# @} @if(!isEmpty(remarks)){ - and `remarks`=#remarks# + and remarks=#remarks# @} @if(!isEmpty(delFlag)){ - and `del_flag`=#delFlag# + and del_flag=#delFlag# @} diff --git a/platform/icec-sys/src/main/resources/sql/sysDict.md b/platform/icec-sys/src/main/resources/sql/sysDict.md index 12161b5..2649256 100644 --- a/platform/icec-sys/src/main/resources/sql/sysDict.md +++ b/platform/icec-sys/src/main/resources/sql/sysDict.md @@ -24,10 +24,10 @@ queryDict from sys_dict where del_flag=0 and parent_id=0 @if(!isEmpty(type)){ - and `type` like #'%'+type+'%'# + and type like #'%'+type+'%'# @} @if(!isEmpty(description)){ - and `description` like #'%'+description+'%'# + and description like #'%'+description+'%'# @} order by sort @@ -45,46 +45,46 @@ cols updateSample === - `id`=#id#,`value`=#value#,`label`=#label#,`type`=#type#,`description`=#description#,`sort`=#sort#,`parent_id`=#parentId#,`create_by`=#createBy#,`create_date`=#createDate#,`update_by`=#updateBy#,`update_date`=#updateDate#,`remarks`=#remarks#,`del_flag`=#delFlag# + id=#id#,value=#value#,label=#label#,type=#type#,description=#description#,sort=#sort#,parent_id=#parentId#,create_by=#createBy#,create_date=#createDate#,update_by=#updateBy#,update_date=#updateDate#,remarks=#remarks#,del_flag=#delFlag# condition === 1 = 1 @if(!isEmpty(value)){ - and `value`=#value# + and value=#value# @} @if(!isEmpty(label)){ - and `label`=#label# + and label=#label# @} @if(!isEmpty(type)){ - and `type`=#type# + and type=#type# @} @if(!isEmpty(description)){ - and `description`=#description# + and description=#description# @} @if(!isEmpty(sort)){ - and `sort`=#sort# + and sort=#sort# @} @if(!isEmpty(parentId)){ - and `parent_id`=#parentId# + and parent_id=#parentId# @} @if(!isEmpty(createBy)){ - and `create_by`=#createBy# + and create_by=#createBy# @} @if(!isEmpty(createDate)){ - and `create_date`=#createDate# + and create_date=#createDate# @} @if(!isEmpty(updateBy)){ - and `update_by`=#updateBy# + and update_by=#updateBy# @} @if(!isEmpty(updateDate)){ - and `update_date`=#updateDate# + and update_date=#updateDate# @} @if(!isEmpty(remarks)){ - and `remarks`=#remarks# + and remarks=#remarks# @} @if(!isEmpty(delFlag)){ - and `del_flag`=#delFlag# + and del_flag=#delFlag# @} diff --git a/platform/icec-sys/src/main/resources/sql/sysFile.md b/platform/icec-sys/src/main/resources/sql/sysFile.md index e55f87b..43917f3 100644 --- a/platform/icec-sys/src/main/resources/sql/sysFile.md +++ b/platform/icec-sys/src/main/resources/sql/sysFile.md @@ -17,49 +17,49 @@ cols updateSample === - `id`=#id#,`file_name`=#fileName#,`file_size`=#fileSize#,`file_type`=#fileType#,`file_url`=#fileUrl#,`create_time`=#createTime#,`create_by`=#createBy#,`update_time`=#updateTime#,`update_by`=#updateBy#,`busi_type`=#busiType#,`busi_no`=#busiNo#,`memo`=#memo#,`state`=#state#,`deleted`=#deleted# + id=#id#,file_name=#fileName#,file_size=#fileSize#,file_type=#fileType#,file_url=#fileUrl#,create_time=#createTime#,create_by=#createBy#,update_time=#updateTime#,update_by=#updateBy#,busi_type=#busiType#,busi_no=#busiNo#,memo=#memo#,state=#state#,deleted=#deleted# condition === 1 = 1 @if(!isEmpty(fileName)){ - and `file_name`=#fileName# + and file_name=#fileName# @} @if(!isEmpty(fileSize)){ - and `file_size`=#fileSize# + and file_size=#fileSize# @} @if(!isEmpty(fileType)){ - and `file_type`=#fileType# + and file_type=#fileType# @} @if(!isEmpty(fileUrl)){ - and `file_url`=#fileUrl# + and file_url=#fileUrl# @} @if(!isEmpty(createTime)){ - and `create_time`=#createTime# + and create_time=#createTime# @} @if(!isEmpty(createBy)){ - and `create_by`=#createBy# + and create_by=#createBy# @} @if(!isEmpty(updateTime)){ - and `update_time`=#updateTime# + and update_time=#updateTime# @} @if(!isEmpty(updateBy)){ - and `update_by`=#updateBy# + and update_by=#updateBy# @} @if(!isEmpty(busiType)){ - and `busi_type`=#busiType# + and busi_type=#busiType# @} @if(!isEmpty(busiNo)){ - and `busi_no`=#busiNo# + and busi_no=#busiNo# @} @if(!isEmpty(memo)){ - and `memo`=#memo# + and memo=#memo# @} @if(!isEmpty(state)){ - and `state`=#state# + and state=#state# @} @if(!isEmpty(deleted)){ - and `deleted`=#deleted# + and deleted=#deleted# @} diff --git a/platform/icec-sys/src/main/resources/sql/sysGlobal.md b/platform/icec-sys/src/main/resources/sql/sysGlobal.md index e865753..6f3b09a 100644 --- a/platform/icec-sys/src/main/resources/sql/sysGlobal.md +++ b/platform/icec-sys/src/main/resources/sql/sysGlobal.md @@ -23,27 +23,27 @@ cols updateSample === - `id`=#id#,`name`=#name#,`fullname`=#fullname#,`logo`=#logo#,`poweredby`=#poweredby#,`version`=#version#,`create_time`=#createTime# + id=#id#,name=#name#,fullname=#fullname#,logo=#logo#,poweredby=#poweredby#,version=#version#,create_time=#createTime# condition === - 1 = 1 + 1 = 1 @if(!isEmpty(name)){ - and `name`=#name# + and name=#name# @} @if(!isEmpty(fullname)){ - and `fullname`=#fullname# + and fullname=#fullname# @} @if(!isEmpty(logo)){ - and `logo`=#logo# + and logo=#logo# @} @if(!isEmpty(poweredby)){ - and `poweredby`=#poweredby# + and poweredby=#poweredby# @} @if(!isEmpty(version)){ - and `version`=#version# + and version=#version# @} @if(!isEmpty(createTime)){ - and `create_time`=#createTime# + and create_time=#createTime# @} diff --git a/platform/icec-sys/src/main/resources/sql/sysLog.md b/platform/icec-sys/src/main/resources/sql/sysLog.md index 8f46e78..10371b3 100644 --- a/platform/icec-sys/src/main/resources/sql/sysLog.md +++ b/platform/icec-sys/src/main/resources/sql/sysLog.md @@ -8,10 +8,10 @@ pageQuery from sys_log where 1=1 @if(!isEmpty(createBy)){ - and `create_by` like #'%'+createBy+'%'# + and create_by like #'%'+createBy+'%'# @} @if(!isEmpty(type)){ - and `type` = #type# + and type = #type# @} order by id diff --git a/platform/icec-sys/src/main/resources/sql/sysMenu.md b/platform/icec-sys/src/main/resources/sql/sysMenu.md index 5bd7a3a..005f5b7 100644 --- a/platform/icec-sys/src/main/resources/sql/sysMenu.md +++ b/platform/icec-sys/src/main/resources/sql/sysMenu.md @@ -60,58 +60,58 @@ cols updateSample === - `id`=#id#,`parent_id`=#parentId#,`parent_ids`=#parentIds#,`name`=#name#,`sort`=#sort#,`href`=#href#,`target`=#target#,`icon`=#icon#,`is_show`=#isShow#,`type`=#type#,`permission`=#permission#,`create_by`=#createBy#,`create_date`=#createDate#,`update_by`=#updateBy#,`update_date`=#updateDate#,`remarks`=#remarks#,`del_flag`=#delFlag# + id=#id#,parent_id=#parentId#,parent_ids=#parentIds#,name=#name#,sort=#sort#,href=#href#,target=#target#,icon=#icon#,is_show=#isShow#,type=#type#,permission=#permission#,create_by=#createBy#,create_date=#createDate#,update_by=#updateBy#,update_date=#updateDate#,remarks=#remarks#,del_flag=#delFlag# condition === 1 = 1 @if(!isEmpty(parentId)){ - and `parent_id`=#parentId# + and parent_id=#parentId# @} @if(!isEmpty(parentIds)){ - and `parent_ids`=#parentIds# + and parent_ids=#parentIds# @} @if(!isEmpty(name)){ - and `name`=#name# + and name=#name# @} @if(!isEmpty(sort)){ - and `sort`=#sort# + and sort=#sort# @} @if(!isEmpty(href)){ - and `href`=#href# + and href=#href# @} @if(!isEmpty(target)){ - and `target`=#target# + and target=#target# @} @if(!isEmpty(icon)){ - and `icon`=#icon# + and icon=#icon# @} @if(!isEmpty(isShow)){ - and `is_show`=#isShow# + and is_show=#isShow# @} @if(!isEmpty(type)){ - and `type`=#type# + and type=#type# @} @if(!isEmpty(permission)){ - and `permission`=#permission# + and permission=#permission# @} @if(!isEmpty(createBy)){ - and `create_by`=#createBy# + and create_by=#createBy# @} @if(!isEmpty(createDate)){ - and `create_date`=#createDate# + and create_date=#createDate# @} @if(!isEmpty(updateBy)){ - and `update_by`=#updateBy# + and update_by=#updateBy# @} @if(!isEmpty(updateDate)){ - and `update_date`=#updateDate# + and update_date=#updateDate# @} @if(!isEmpty(remarks)){ - and `remarks`=#remarks# + and remarks=#remarks# @} @if(!isEmpty(delFlag)){ - and `del_flag`=#delFlag# + and del_flag=#delFlag# @} diff --git a/platform/icec-sys/src/main/resources/sql/sysOffice.md b/platform/icec-sys/src/main/resources/sql/sysOffice.md index 35b1df8..aa6ac24 100644 --- a/platform/icec-sys/src/main/resources/sql/sysOffice.md +++ b/platform/icec-sys/src/main/resources/sql/sysOffice.md @@ -21,7 +21,7 @@ findByType select a.*,b.name as areaName from sys_office a LEFT JOIN sys_area b ON a.area_id=b.id where a.del_flag=0 @if(!isEmpty(type)){ - and a.`type`=#type# + and a.type=#type# @} order by a.parent_ids sample @@ -38,79 +38,79 @@ cols updateSample === - `id`=#id#,`parent_id`=#parentId#,`parent_ids`=#parentIds#,`name`=#name#,`sort`=#sort#,`area_id`=#areaId#,`code`=#code#,`type`=#type#,`grade`=#grade#,`address`=#address#,`zip_code`=#zipCode#,`master`=#master#,`phone`=#phone#,`fax`=#fax#,`email`=#email#,`USEABLE`=#useable#,`PRIMARY_PERSON`=#primaryPerson#,`DEPUTY_PERSON`=#deputyPerson#,`create_by`=#createBy#,`create_date`=#createDate#,`update_by`=#updateBy#,`update_date`=#updateDate#,`remarks`=#remarks#,`del_flag`=#delFlag# + id=#id#,parent_id=#parentId#,parent_ids=#parentIds#,name=#name#,sort=#sort#,area_id=#areaId#,code=#code#,type=#type#,grade=#grade#,address=#address#,zip_code=#zipCode#,master=#master#,phone=#phone#,fax=#fax#,email=#email#,USEABLE=#useable#,PRIMARY_PERSON=#primaryPerson#,DEPUTY_PERSON=#deputyPerson#,create_by=#createBy#,create_date=#createDate#,update_by=#updateBy#,update_date=#updateDate#,remarks=#remarks#,del_flag=#delFlag# condition === 1 = 1 @if(!isEmpty(parentId)){ - and `parent_id`=#parentId# + and parent_id=#parentId# @} @if(!isEmpty(parentIds)){ - and `parent_ids`=#parentIds# + and parent_ids=#parentIds# @} @if(!isEmpty(name)){ - and `name`=#name# + and name=#name# @} @if(!isEmpty(sort)){ - and `sort`=#sort# + and sort=#sort# @} @if(!isEmpty(areaId)){ - and `area_id`=#areaId# + and area_id=#areaId# @} @if(!isEmpty(code)){ - and `code`=#code# + and code=#code# @} @if(!isEmpty(type)){ - and `type`=#type# + and type=#type# @} @if(!isEmpty(grade)){ - and `grade`=#grade# + and grade=#grade# @} @if(!isEmpty(address)){ - and `address`=#address# + and address=#address# @} @if(!isEmpty(zipCode)){ - and `zip_code`=#zipCode# + and zip_code=#zipCode# @} @if(!isEmpty(master)){ - and `master`=#master# + and master=#master# @} @if(!isEmpty(phone)){ - and `phone`=#phone# + and phone=#phone# @} @if(!isEmpty(fax)){ - and `fax`=#fax# + and fax=#fax# @} @if(!isEmpty(email)){ - and `email`=#email# + and email=#email# @} @if(!isEmpty(useable)){ - and `USEABLE`=#useable# + and USEABLE=#useable# @} @if(!isEmpty(primaryPerson)){ - and `PRIMARY_PERSON`=#primaryPerson# + and PRIMARY_PERSON=#primaryPerson# @} @if(!isEmpty(deputyPerson)){ - and `DEPUTY_PERSON`=#deputyPerson# + and DEPUTY_PERSON=#deputyPerson# @} @if(!isEmpty(createBy)){ - and `create_by`=#createBy# + and create_by=#createBy# @} @if(!isEmpty(createDate)){ - and `create_date`=#createDate# + and create_date=#createDate# @} @if(!isEmpty(updateBy)){ - and `update_by`=#updateBy# + and update_by=#updateBy# @} @if(!isEmpty(updateDate)){ - and `update_date`=#updateDate# + and update_date=#updateDate# @} @if(!isEmpty(remarks)){ - and `remarks`=#remarks# + and remarks=#remarks# @} @if(!isEmpty(delFlag)){ - and `del_flag`=#delFlag# + and del_flag=#delFlag# @} diff --git a/platform/icec-sys/src/main/resources/sql/sysRole.md b/platform/icec-sys/src/main/resources/sql/sysRole.md index 3667db8..1ff0724 100644 --- a/platform/icec-sys/src/main/resources/sql/sysRole.md +++ b/platform/icec-sys/src/main/resources/sql/sysRole.md @@ -69,7 +69,7 @@ queryRole from sys_role where del_flag=0 @if(!isEmpty(name)){ - and `name` like #'%'+name+'%'# + and name like #'%'+name+'%'# @} order by id @@ -87,49 +87,49 @@ cols updateSample === - `id`=#id#,`office_id`=#officeId#,`name`=#name#,`enname`=#enname#,`role_type`=#roleType#,`data_scope`=#dataScope#,`is_sys`=#isSys#,`useable`=#useable#,`create_by`=#createBy#,`create_date`=#createDate#,`update_by`=#updateBy#,`update_date`=#updateDate#,`remarks`=#remarks#,`del_flag`=#delFlag# + id=#id#,office_id=#officeId#,name=#name#,enname=#enname#,role_type=#roleType#,data_scope=#dataScope#,is_sys=#isSys#,useable=#useable#,create_by=#createBy#,create_date=#createDate#,update_by=#updateBy#,update_date=#updateDate#,remarks=#remarks#,del_flag=#delFlag# condition === 1 = 1 @if(!isEmpty(officeId)){ - and `office_id`=#officeId# + and office_id=#officeId# @} @if(!isEmpty(name)){ - and `name`=#name# + and name=#name# @} @if(!isEmpty(enname)){ - and `enname`=#enname# + and enname=#enname# @} @if(!isEmpty(roleType)){ - and `role_type`=#roleType# + and role_type=#roleType# @} @if(!isEmpty(dataScope)){ - and `data_scope`=#dataScope# + and data_scope=#dataScope# @} @if(!isEmpty(isSys)){ - and `is_sys`=#isSys# + and is_sys=#isSys# @} @if(!isEmpty(useable)){ - and `useable`=#useable# + and useable=#useable# @} @if(!isEmpty(createBy)){ - and `create_by`=#createBy# + and create_by=#createBy# @} @if(!isEmpty(createDate)){ - and `create_date`=#createDate# + and create_date=#createDate# @} @if(!isEmpty(updateBy)){ - and `update_by`=#updateBy# + and update_by=#updateBy# @} @if(!isEmpty(updateDate)){ - and `update_date`=#updateDate# + and update_date=#updateDate# @} @if(!isEmpty(remarks)){ - and `remarks`=#remarks# + and remarks=#remarks# @} @if(!isEmpty(delFlag)){ - and `del_flag`=#delFlag# + and del_flag=#delFlag# @} diff --git a/platform/icec-sys/src/main/resources/sql/sysUser.md b/platform/icec-sys/src/main/resources/sql/sysUser.md index 8edaa7a..99e760e 100644 --- a/platform/icec-sys/src/main/resources/sql/sysUser.md +++ b/platform/icec-sys/src/main/resources/sql/sysUser.md @@ -39,10 +39,10 @@ queryUser from sys_user a LEFT JOIN sys_office b on a.office_id=b.id where a.del_flag=0 @if(!isEmpty(loginName)){ - and a.`login_name` like #'%'+loginName+'%'# + and a.login_name like #'%'+loginName+'%'# @} @if(!isEmpty(name)){ - and a.`name` like #'%'+name+'%'# + and a.name like #'%'+name+'%'# @} @if(!isEmpty(officeId)){ and CONCAT(CONCAT(b.parent_ids,b.id),',') like #officeId+'%'# @@ -64,28 +64,28 @@ cols updateSample === - `id`=#id#,`login_name`=#loginName#,`password`=#password#,`name`=#name#,`phone`=#phone#,`email`=#email#,`enabled`=#enabled# + id=#id#,login_name=#loginName#,password=#password#,name=#name#,phone=#phone#,email=#email#,enabled=#enabled# condition === 1 = 1 @if(!isEmpty(loginName)){ - and `login_name`=#loginName# + and login_name=#loginName# @} @if(!isEmpty(password)){ - and `password`=#password# + and password=#password# @} @if(!isEmpty(name)){ - and `name`=#name# + and name=#name# @} @if(!isEmpty(phone)){ - and `phone`=#phone# + and phone=#phone# @} @if(!isEmpty(email)){ - and `email`=#email# + and email=#email# @} @if(!isEmpty(enabled)){ - and `enabled`=#enabled# + and enabled=#enabled# @} diff --git a/platform/icec-sys/src/main/resources/templates/sys/user/userAdd.html b/platform/icec-sys/src/main/resources/templates/sys/user/userAdd.html index aa09790..f16d701 100644 --- a/platform/icec-sys/src/main/resources/templates/sys/user/userAdd.html +++ b/platform/icec-sys/src/main/resources/templates/sys/user/userAdd.html @@ -1,7 +1,7 @@ 新建用户 - +
    @@ -21,7 +21,7 @@
    @@ -164,7 +164,7 @@
    - + + + + \ No newline at end of file diff --git a/module/icec-sms/src/main/resources/templates/sms/templateAdd.html b/module/icec-sms/src/main/resources/templates/sms/templateAdd.html new file mode 100644 index 0000000..5368f9e --- /dev/null +++ b/module/icec-sms/src/main/resources/templates/sms/templateAdd.html @@ -0,0 +1,86 @@ + + +添加黑名单 + + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + +
    +
    + + +       + +
    +
    + + + +
    + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/module/icec-sms/src/main/resources/templates/sms/templateEdit.html b/module/icec-sms/src/main/resources/templates/sms/templateEdit.html new file mode 100644 index 0000000..6a84bc7 --- /dev/null +++ b/module/icec-sms/src/main/resources/templates/sms/templateEdit.html @@ -0,0 +1,89 @@ + + +修改黑名单 + + +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    +
    + + +       + +
    +
    +
    +
    + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/module/icec-sms/src/main/resources/templates/sms/templateList.html b/module/icec-sms/src/main/resources/templates/sms/templateList.html new file mode 100644 index 0000000..0b62885 --- /dev/null +++ b/module/icec-sms/src/main/resources/templates/sms/templateList.html @@ -0,0 +1,119 @@ + + + +短信模板 + + + + + +
    +
    +
    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + + + + + + + +
    编号模板编码模板内容 创建时间操作
    +
    + +
    + +
    + +
    + +
    + +
    + + + \ No newline at end of file -- Gitee From 6270493b09139deb7beeb1de3d52f8f08ffb76f9 Mon Sep 17 00:00:00 2001 From: xxjin <313383180@qq.com> Date: Tue, 18 Dec 2018 10:28:58 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/db/icec-mysql-all.sql | 446 ++++++++++++++++++ doc/db/mysql/cms.sql | 9 +- doc/db/mysql/sys.sql | 24 +- .../web/core/sys/controller/IndexCtrl.java | 5 + .../main/resources/templates/sys/index.html | 4 +- 5 files changed, 476 insertions(+), 12 deletions(-) create mode 100644 doc/db/icec-mysql-all.sql diff --git a/doc/db/icec-mysql-all.sql b/doc/db/icec-mysql-all.sql new file mode 100644 index 0000000..589d60f --- /dev/null +++ b/doc/db/icec-mysql-all.sql @@ -0,0 +1,446 @@ +-- 系统管理 相关的表 + +-- sys_area +/* +警告: 字段名可能非法 - type +*/ +create table `sys_area` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `parent_id` INT not null comment '父级编号', + `parent_ids` VARCHAR(2000) not null comment '所有父级编号', + `name` VARCHAR(100) not null comment '名称', + `sort` INT not null comment '排序', + `code` VARCHAR(100) comment '区域编码', + `type` VARCHAR(1) comment '区域类型', + `create_by` INT not null comment '创建者', + `create_date` DATETIME not null comment '创建时间', + `update_by` INT not null comment '更新者', + `update_date` DATETIME not null comment '更新时间', + `remarks` VARCHAR(255) comment '备注信息', + `del_flag` VARCHAR(1) default 0 not null comment '删除标记', +primary key (`id`) +); + +create index `IDX_sys_area_parent_id` on `sys_area`(`parent_id`); +create index `IDX_sys_area_del_flag` on `sys_area`(`del_flag`); +alter table `sys_area` comment= '区域表'; + +-- sys_dict +/* +警告: 字段名可能非法 - type +*/ +create table `sys_dict` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `value` VARCHAR(100) not null comment '数据值', + `label` VARCHAR(100) not null comment '标签名', + `type` VARCHAR(100) not null comment '类型', + `description` VARCHAR(100) not null comment '描述', + `sort` INT not null comment '排序(升序)', + `parent_id` INT default 0 comment '父级编号', + `create_by` INT not null comment '创建者', + `create_date` DATETIME not null comment '创建时间', + `update_by` INT not null comment '更新者', + `update_date` DATETIME not null comment '更新时间', + `remarks` VARCHAR(255) comment '备注信息', + `del_flag` VARCHAR(1) default 0 not null comment '删除标记', +primary key (`id`) +); + +create index `IDX_sys_dict_value` on `sys_dict`(`value`); +create index `IDX_sys_dict_label` on `sys_dict`(`label`); +create index `IDX_sys_dict_del_flag` on `sys_dict`(`del_flag`); +alter table `sys_dict` comment= '字典表'; + +-- sys_log +/* +警告: 字段名可能非法 - type +*/ +create table `sys_log` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `type` VARCHAR(1) default 1 comment '日志类型', + `title` VARCHAR(255) comment '日志标题', + `create_by` VARCHAR(64) comment '创建者', + `create_date` DATETIME comment '创建时间', + `remote_addr` VARCHAR(255) comment '操作IP地址', + `user_agent` VARCHAR(255) comment '用户代理', + `request_uri` VARCHAR(255) comment '请求URI', + `method` VARCHAR(5) comment '操作方式', + `lose_time` INT comment '用时', + `params` LONGBLOB comment '操作提交的数据', + `exception` LONGBLOB comment '异常信息' +,primary key (`id`) +); + +create index `IDX_sys_log_type` on `sys_log`(`type`); +create index `IDX_sys_log_create_by` on `sys_log`(`create_by`); +create index `IDX_sys_log_create_date` on `sys_log`(`create_date`); +create index `IDX_sys_log_request_uri` on `sys_log`(`request_uri`); +alter table `sys_log` comment= '日志表'; + +-- sys_mdict +create table `sys_mdict` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `parent_id` INT not null comment '父级编号', + `parent_ids` VARCHAR(2000) not null comment '所有父级编号', + `name` VARCHAR(100) not null comment '名称', + `sort` INT not null comment '排序', + `description` VARCHAR(100) comment '描述', + `create_by` INT not null comment '创建者', + `create_date` DATETIME not null comment '创建时间', + `update_by` INT not null comment '更新者', + `update_date` DATETIME not null comment '更新时间', + `remarks` VARCHAR(255) comment '备注信息', + `del_flag` VARCHAR(1) default 0 not null comment '删除标记' +,primary key (`id`) +); + +create index `IDX_sys_mdict_parent_id` on `sys_mdict`(`parent_id`); +create index `IDX_sys_mdict_del_flag` on `sys_mdict`(`del_flag`); +alter table `sys_mdict` comment= '多级字典表'; + +-- sys_menu +create table `sys_menu` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `parent_id` INT not null comment '父级编号', + `parent_ids` VARCHAR(2000) not null comment '所有父级编号', + `name` VARCHAR(100) not null comment '名称', + `sort` INT not null comment '排序', + `href` VARCHAR(2000) comment '链接', + `target` VARCHAR(20) comment '目标', + `icon` VARCHAR(100) comment '图标', + `is_show` VARCHAR(1) not null comment '是否在菜单中显示', + `permission` VARCHAR(200) comment '权限标识', + `create_by` INT not null comment '创建者', + `create_date` DATETIME not null comment '创建时间', + `update_by` INT not null comment '更新者', + `update_date` DATETIME not null comment '更新时间', + `remarks` VARCHAR(255) comment '备注信息', + `del_flag` VARCHAR(1) default 0 not null comment '删除标记', + `type` VARCHAR(1) comment '菜单类型' + +,primary key (`id`) +); + +create index `IDX_sys_menu_parent_id` on `sys_menu`(`parent_id`); +create index `IDX_sys_menu_del_flag` on `sys_menu`(`del_flag`); +alter table `sys_menu` comment= '菜单表'; + +-- sys_office +/* +警告: 字段名可能非法 - type +*/ +create table `sys_office` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `parent_id` INT not null comment '父级编号', + `parent_ids` VARCHAR(2000) not null comment '所有父级编号', + `name` VARCHAR(100) not null comment '名称', + `sort` INT not null comment '排序', + `area_id` VARCHAR(64) not null comment '归属区域', + `code` VARCHAR(100) comment '区域编码', + `type` VARCHAR(1) not null comment '机构类型', + `grade` VARCHAR(1) not null comment '机构等级', + `address` VARCHAR(255) comment '联系地址', + `zip_code` VARCHAR(100) comment '邮政编码', + `master` VARCHAR(100) comment '负责人', + `phone` VARCHAR(200) comment '电话', + `fax` VARCHAR(200) comment '传真', + `email` VARCHAR(200) comment '邮箱', + `USEABLE` VARCHAR(64) comment '是否启用', + `PRIMARY_PERSON` VARCHAR(64) comment '主负责人', + `DEPUTY_PERSON` VARCHAR(64) comment '副负责人', + `create_by` INT not null comment '创建者', + `create_date` DATETIME not null comment '创建时间', + `update_by` INT not null comment '更新者', + `update_date` DATETIME not null comment '更新时间', + `remarks` VARCHAR(255) comment '备注信息', + `del_flag` VARCHAR(1) default 0 not null comment '删除标记' +,primary key (`id`) +); + +create index `IDX_sys_office_parent_id` on `sys_office`(`parent_id`); +create index `IDX_sys_office_type` on `sys_office`(`type`); +create index `IDX_sys_office_del_flag` on `sys_office`(`del_flag`); +alter table `sys_office` comment= '机构表'; + +-- sys_role +create table `sys_role` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `office_id` VARCHAR(64) comment '归属机构', + `name` VARCHAR(100) not null comment '角色名称', + `enname` VARCHAR(255) comment '英文名称', + `role_type` VARCHAR(255) comment '角色类型', + `data_scope` VARCHAR(1) comment '数据范围', + `is_sys` VARCHAR(64) comment '是否系统数据', + `useable` VARCHAR(64) comment '是否可用', + `create_by` INT not null comment '创建者', + `create_date` DATETIME not null comment '创建时间', + `update_by` INT not null comment '更新者', + `update_date` DATETIME not null comment '更新时间', + `remarks` VARCHAR(255) comment '备注信息', + `del_flag` VARCHAR(1) default 0 not null comment '删除标记' +,primary key (`id`) +); + +create index `IDX_sys_role_enname` on `sys_role`(`enname`); +create index `IDX_sys_role_del_flag` on `sys_role`(`del_flag`); +alter table `sys_role` comment= '角色表'; + +-- sys_role_menu +create table `sys_role_menu` +( + `role_id` INT not null comment '角色编号', + `menu_id` INT not null comment '菜单编号' +); +alter table `sys_role_menu` + add constraint `PK_sys_role_menu_role_id` primary key (`role_id`,`menu_id`); +alter table `sys_role_menu` comment= '角色-菜单'; + +-- sys_role_office +create table `sys_role_office` +( + `role_id` INT not null comment '角色编号', + `office_id` INT not null comment '机构编号' +); +alter table `sys_role_office` + add constraint `PK_sys_role_office_role_id` primary key (`role_id`,`office_id`); +alter table `sys_role_office` comment= '角色-机构'; + +-- sys_user +/* +警告: 字段名可能非法 - password +警告: 字段名可能非法 - no +*/ +create table `sys_user` +( + `id` INT not null AUTO_INCREMENT comment '编号', + `company_id` INT not null comment '归属公司', + `office_id` INT not null comment '归属部门', + `login_name` VARCHAR(100) not null comment '登录名', + `password` VARCHAR(100) not null comment '密码', + `no` VARCHAR(100) comment '工号', + `name` VARCHAR(100) not null comment '姓名', + `email` VARCHAR(200) comment '邮箱', + `phone` VARCHAR(200) comment '电话', + `mobile` VARCHAR(200) comment '手机', + `user_type` VARCHAR(1) comment '用户类型', + `photo` VARCHAR(1000) comment '用户头像', + `login_ip` VARCHAR(100) comment '最后登陆IP', + `login_date` DATETIME comment '最后登陆时间', + `login_flag` VARCHAR(64) comment '是否可登录', + `create_by` INT not null comment '创建者', + `create_date` DATETIME not null comment '创建时间', + `update_by` INT not null comment '更新者', + `update_date` DATETIME not null comment '更新时间', + `remarks` VARCHAR(255) comment '备注信息', + `del_flag` VARCHAR(1) default 0 not null comment '删除标记' +,primary key (`id`) +); + +create index `IDX_sys_user_company_id` on `sys_user`(`company_id`); +create index `IDX_sys_user_office_id` on `sys_user`(`office_id`); +create index `IDX_sys_user_login_name` on `sys_user`(`login_name`); +create index `IDX_sys_user_update_date` on `sys_user`(`update_date`); +create index `IDX_sys_user_del_flag` on `sys_user`(`del_flag`); +alter table `sys_user` comment= '用户表'; + +-- sys_user_role +create table `sys_user_role` +( + `user_id` INT not null comment '用户编号', + `role_id` INT not null comment '角色编号' +); +alter table `sys_user_role` + add constraint `PK_sys_user_role_user_id` primary key (`user_id`,`role_id`); +alter table `sys_user_role` comment= '用户-角色'; + + +-- sys_file +/* + 系统文件表 +*/ + +create table `sys_file` +( + `id` INT auto_increment primary key not null comment '编号', + `file_name` VARCHAR(64) comment '文件名', + `file_size` INT comment '大小', + `file_type` VARCHAR(64) comment '类型', + `file_url` VARCHAR(512) comment '存储位置', + `create_time` DATETIME, + `create_by` NUMERIC(64), + `update_time` DATETIME, + `update_by` NUMERIC(64), + `busi_type` VARCHAR(64) comment '业务类型', + `busi_no` VARCHAR(128) comment '业务单号', + `memo` VARCHAR(512) comment '注释', + `state` INT comment '状态', + `deleted` INT comment '删除标识' +); +alter table `sys_file` comment= '系统文件管理 系统文件管理'; + + +-- data +-- ---------------------------- +-- Records of sys_user +-- ---------------------------- +INSERT INTO `sys_user` VALUES (1, '1', '1', 'admin', '$2a$10$iyy/9WyGecm9MqeSyGaxauYXcz79foBFA047EtQlrPJbau5OPBpMm', '1', '管理员', NULL, NULL, NULL, NULL, 0, NULL, NULL, '0', '1', '2017-10-21 17:12:38', '1', '2017-10-21 17:13:12', NULL, '0'); + +-- ---------------------------- +-- Records of sys_role +-- ---------------------------- +INSERT INTO `sys_role` VALUES ('1', null, '管理员', 'admin', '1', null, '1', '1', '1', '2017-10-23 15:54:40', '1', '2017-11-28 16:52:57', '', '0'); +INSERT INTO `sys_role` VALUES ('2', null, '普通用户', 'normal', '1', null, '1', '1', '1', '2017-11-28 16:52:44', '1', '2017-11-28 16:52:44', '', '0'); + + +-- ---------------------------- +-- Records of sys_user_role +-- ---------------------------- +INSERT INTO `sys_user_role` VALUES ('1', '1'); + + + + +-- ---------------------------- +-- Records of sys_menu +-- ---------------------------- +INSERT INTO `sys_menu` VALUES ('1', '0', '0,', '系统管理', '30', '', '', 'fa fa-cog', '1', '', '1', '2017-11-29 11:02:04', '1', '2017-11-29 11:02:04', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('2', '1', '0,1,', '用户管理', '30', '/sys/user/list', '', '', '1', '', '1', '2017-11-29 11:03:21', '1', '2017-11-29 11:03:21', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('3', '1', '0,1,', '角色管理', '30', '/sys/role/list', '', '', '1', '', '1', '2017-11-29 11:03:37', '1', '2017-11-29 11:03:37', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('4', '1', '0,1,', '菜单管理', '30', '/sys/menu/list', '', '', '1', '', '1', '2017-11-29 11:03:49', '1', '2017-11-29 11:03:49', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('5', '1', '0,1,', '机构管理', '30', '/sys/office/list', '', '', '1', '', '1', '2017-11-29 11:04:03', '1', '2017-11-29 11:04:03', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('6', '1', '0,1,', '区域管理', '30', '/sys/area/list', '', '', '1', '', '1', '2017-11-29 11:04:16', '1', '2017-11-29 11:04:16', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('7', '1', '0,1,', '字典管理', '30', '/sys/dict/list', '', '', '1', '', '1', '2017-11-29 11:04:29', '1', '2017-11-29 11:04:29', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('9', '1', '0,1,', '日志管理', '30', '/sys/log/list', '', '', '1', '', '1', '2017-12-01 13:53:02', '1', '2017-12-01 13:53:02', '', '0', '1'); +INSERT INTO `sys_menu` VALUES ('10', '4', '0,1,4', '编辑权限', '30', '', '', '', '1', 'menu:edit', '1', '0000-00-00 00:00:00', '1', '2017-12-05 14:52:34', '', '0', '2'); +INSERT INTO `sys_menu` VALUES ('11', '3', '0,1,3,', '编辑', '30', '', '', '', '1', 'role:edit', '1', '2017-12-05 14:54:57', '1', '2017-12-05 16:45:00', '', '0', '2'); +INSERT INTO `sys_menu` VALUES ('12', '2', '0,1,2,', '用户编辑', '30', '', '', '', '1', 'user:edit', '1', '2017-12-05 14:55:22', '1', '2017-12-05 14:55:22', '', '0', '2'); +INSERT INTO `sys_menu` VALUES ('13', '3', '0,1,3,', '查看', '30', '', '', '', '1', 'role:view', '1', '2017-12-05 15:03:15', '1', '2017-12-05 15:03:15', '', '0', '2'); +INSERT INTO `sys_menu` VALUES ('14', '4', '0,1,4,', '查看', '30', '', '', '', '1', 'menu:view', '1', '2017-12-05 15:03:35', '1', '2017-12-05 15:03:35', '', '0', '2'); +INSERT INTO `sys_menu` VALUES ('15', '3', '0,1,3,', '角色授权', '30', null, null, null, '1', 'role:auth', '1', '0000-00-00 00:00:00', '0', '0000-00-00 00:00:00', null, '0', '2'); +INSERT INTO `sys_menu` VALUES (16, 1, '0,1,', '系统参数', 30, 'sys/global/edit', '', '', '1', 'global:show', 1, '2018-7-20 16:49:19', 1, '2018-7-20 16:51:51', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (17, 16, '0,1,16,', '查看', 30, '', '', '', '1', 'global:show', 1, '2018-7-20 16:50:32', 1, '2018-7-20 16:51:45', '', '1', '2'); +INSERT INTO `sys_menu` VALUES (18, 16, '0,1,16,', '更新', 30, 'sys/global/update', '', '', '1', 'global:update', 1, '2018-7-20 16:51:23', 1, '2018-7-20 16:52:53', '', '0', '2'); +INSERT INTO `sys_menu` VALUES (19, 1, '0,1,', '运行环境', 30, 'sys/environment', '', '', '1', '', 1, '2018-7-20 16:55:10', 1, '2018-7-23 16:48:55', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (20, 1, '0,1,', '调度任务', 40, 'schedule/list', '', '', '1', '', 1, '2018-7-23 16:34:15', 1, '2018-7-23 16:34:15', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (21, 1, '0,1,', '数据库监控', 30, '/druid', '', '', '1', '', 1, '2018-12-17 13:24:55', 1, '2018-12-17 13:25:11', '', '0', '1'); + +-------模块脚本-------------- +INSERT INTO `sys_menu` VALUES (22, 0, '0,', '工作流', 30, '', '', 'fa fa-cog', '1', '', 1, '2018-7-23 16:44:00', 1, '2018-7-23 16:47:54', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (23, 22, '0,22,', '模型管理', 30, 'workflow/models/list', '', '', '1', 'act:process:edit', 1, '2018-7-23 16:44:54', 1, '2018-7-23 16:44:54', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (24, 22, '0,22,', '流程管理', 30, 'workflow/process/processDefList', '', '', '1', 'act:process:edit', 1, '2018-7-23 16:45:43', 1, '2018-7-23 16:45:43', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (25, 22, '0,22,', '待办流程', 30, 'workflow/task/todo', '', '', '1', '', 1, '2018-7-23 16:47:25', 1, '2018-7-23 16:47:25', '', '0', '1'); + +INSERT INTO `sys_menu` VALUES (26, 0, '0,', '短信平台', 30, '', '', 'ace-icon fa fa-comments', '1', '', 1, '2018-12-12 16:43:53', 1, '2018-12-12 16:57:33', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (27, 26, '0,26,', '短信查询', 30, '/sms/smsRecord/list', '', '', '1', '', 1, '2018-12-12 16:44:09', 1, '2018-12-12 16:45:58', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (28, 26, '0,26,', '短信模板', 30, 'sms/smsTemplate/list', '', '', '1', '', 1, '2018-12-12 16:44:19', 1, '2018-12-12 17:15:39', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (29, 26, '0,26,', '参数配置', 30, '', '', '', '1', '', 1, '2018-12-12 16:56:03', 1, '2018-12-12 16:56:03', '', '0', '1'); + + + + + +-- ---------------------------- +-- Records of sys_role_menu +-- ---------------------------- +INSERT INTO `sys_role_menu` VALUES ('1', '1'); +INSERT INTO `sys_role_menu` VALUES ('1', '2'); +INSERT INTO `sys_role_menu` VALUES ('1', '3'); +INSERT INTO `sys_role_menu` VALUES ('1', '4'); +INSERT INTO `sys_role_menu` VALUES ('1', '5'); +INSERT INTO `sys_role_menu` VALUES ('1', '6'); +INSERT INTO `sys_role_menu` VALUES ('1', '7'); +INSERT INTO `sys_role_menu` VALUES ('1', '8'); +INSERT INTO `sys_role_menu` VALUES ('1', '9'); +INSERT INTO `sys_role_menu` VALUES ('1', '10'); +INSERT INTO `sys_role_menu` VALUES ('1', '11'); +INSERT INTO `sys_role_menu` VALUES ('1', '12'); +INSERT INTO `sys_role_menu` VALUES ('1', '13'); +INSERT INTO `sys_role_menu` VALUES ('1', '14'); +INSERT INTO `sys_role_menu` VALUES ('1', '15'); +INSERT INTO `sys_role_menu` VALUES ('1', '16'); +INSERT INTO `sys_role_menu` VALUES ('1', '17'); +INSERT INTO `sys_role_menu` VALUES ('1', '18'); +INSERT INTO `sys_role_menu` VALUES ('1', '19'); +INSERT INTO `sys_role_menu` VALUES ('1', '20'); +INSERT INTO `sys_role_menu` VALUES ('1', '21'); + + +-- ---------------------------- +-- Records of sys_office +-- ---------------------------- +INSERT INTO `sys_office` VALUES ('1', '0', '0,', '总公司', '30', '1', '001', '', '', null, null, null, null, null, null, '0', null, null, '1', '2017-10-31 17:03:58', '1', '2017-10-31 17:04:29', '1', '0'); +INSERT INTO `sys_office` VALUES ('2', '1', '0,1,', '开发部', '30', '1', '', '', '', null, null, null, null, null, null, '0', null, null, '1', '2017-10-31 17:04:18', '1', '2017-10-31 17:04:25', '1', '0'); +INSERT INTO `sys_office` VALUES ('3', '2', '0,1,2,', '开发一部', '30', '1', '', '', '', null, null, null, null, null, null, '0', null, null, '1', '2017-10-31 17:04:47', '1', '2017-11-01 14:17:48', '', '0'); +INSERT INTO `sys_office` VALUES ('4', '0', '0,', '海外公司', '30', '1', '', '', '', null, null, null, null, null, null, '0', null, null, '1', '2017-10-31 17:05:45', '1', '2017-11-01 15:51:45', '', '0'); + + +-- ---------------------------- +-- Records of sys_area +-- ---------------------------- +INSERT INTO `sys_area` VALUES ('1', '0', '0,', '安徽', '30', '34', '', '1', '2017-10-27 12:08:26', '1', '2017-10-27 12:08:26', '啊啊啊', '0'); +INSERT INTO `sys_area` VALUES ('2', '1', '0,1,', '合肥', '30', '3423', '', '1', '2017-10-27 12:57:32', '1', '2017-10-27 12:57:32', '', '0'); +INSERT INTO `sys_area` VALUES ('3', '0', '0,', '江苏', '30', '25', '', '1', '2017-10-27 13:04:23', '1', '2017-10-27 13:04:23', '', '0'); +INSERT INTO `sys_area` VALUES ('4', '2', '0,1,2,', '蜀山', '30', '342301', '', '1', '2017-10-27 14:37:09', '1', '2017-10-27 14:37:09', '', '0'); +INSERT INTO `sys_area` VALUES ('5', '1', '0,1,', '芜湖', '30', '3426', '', '1', '2017-10-27 14:38:46', '1', '2017-10-27 14:38:46', '', '0'); +INSERT INTO `sys_area` VALUES ('6', '3', '0,3,', '南京', '30', '2523', '', '1', '2017-10-27 14:40:21', '1', '2017-10-27 14:40:21', '', '0'); + + +-- ---------------------------- +-- Records of sys_dict +-- ---------------------------- +INSERT INTO `sys_dict` VALUES ('1', '', '', 'orgType', '机构类型', '50', '0', '1', '2017-12-15 21:35:33', '1', '2017-12-15 21:35:33', '', '0'); +INSERT INTO `sys_dict` VALUES ('2', '1', '公司', '', '', '50', '1', '1', '2017-12-15 21:36:05', '1', '2017-12-15 21:36:05', '', '0'); +INSERT INTO `sys_dict` VALUES ('3', '2', '部门', '', '', '50', '1', '1', '2017-12-15 21:36:17', '1', '2017-12-15 21:36:17', '', '0'); +INSERT INTO `sys_dict` VALUES ('4', '', '', 'orgLevel', '公司级别', '50', '0', '1', '2017-12-15 22:30:54', '1', '2017-12-15 22:30:54', '', '0'); +INSERT INTO `sys_dict` VALUES ('5', '1', '一级', '', '', '50', '4', '1', '2017-12-15 22:31:08', '1', '2017-12-15 22:31:08', '', '0'); +INSERT INTO `sys_dict` VALUES ('6', '2', '二级', '', '', '50', '4', '1', '2017-12-15 22:31:20', '1', '2017-12-15 22:31:20', '', '0'); +INSERT INTO `sys_dict` VALUES ('7', '3', '三级', '', '', '50', '4', '1', '2017-12-15 22:31:29', '1', '2017-12-15 22:31:29', '', '0'); +INSERT INTO `sys_dict` VALUES ('8', '', '', 'areaType', '区域类型', '50', '0', '1', '2017-12-19 20:19:24', '1', '2017-12-19 20:19:24', '', '0'); +INSERT INTO `sys_dict` VALUES ('9', '1', '国家', '', '', '50', '8', '1', '2017-12-19 20:19:37', '1', '2017-12-19 20:19:37', '', '0'); +INSERT INTO `sys_dict` VALUES ('10', '2', '省份、直辖市', '', '', '60', '8', '1', '2017-12-19 20:20:03', '1', '2017-12-19 20:20:03', '', '0'); +INSERT INTO `sys_dict` VALUES ('11', '3', '地市', '', '', '70', '8', '1', '2017-12-19 20:20:31', '1', '2017-12-19 20:20:31', '', '0'); +INSERT INTO `sys_dict` VALUES ('12', '4', '区县', '', '', '80', '8', '1', '2017-12-19 20:20:46', '1', '2017-12-19 20:20:46', '', '0'); + + +-- sys_global 系统参数表 + +create table `sys_global` +( + `id` INT primary key not null comment '编号', + `name` VARCHAR(200) comment '名称', + `fullname` VARCHAR(200) comment '全称', + `logo` INT comment 'logo id', + `poweredby` VARCHAR(200) comment '版权', + `version` VARCHAR(4000) comment '版本', + `create_time` DATETIME comment '创建日期' +); +alter table `sys_global` comment= '全局表'; +-- sys_global_custom 系统参数扩展表 +create table `sys_global_custom` +( + `id` INT auto_increment primary key not null comment '全局自定义id', + `f_global_id` INT comment '全局id', + `f_key` VARCHAR(50) comment '键', + `f_value` VARCHAR(2000) comment '值' +); + +alter table `sys_global_custom` + add constraint `FK_sys_glotom_f_global_id9DA3` foreign key (`f_global_id`) + references `sys_global`(`id`); +alter table `sys_global_custom` comment= '全局自定义表'; + + +-- ---------------------------- +-- Records of sys_global +-- ---------------------------- +INSERT INTO `sys_global` VALUES ('1', 'icec', 'icec admin', '0', '©2018 icec', '1.0', '2018-01-16 16:25:23'); + + + diff --git a/doc/db/mysql/cms.sql b/doc/db/mysql/cms.sql index 71535a8..51d43b6 100644 --- a/doc/db/mysql/cms.sql +++ b/doc/db/mysql/cms.sql @@ -25,14 +25,7 @@ alter table `sys_global_custom` references `sys_global`(`id`); alter table `sys_global_custom` comment= '全局自定义表'; - - - - - - - - + -- ---------------------------- -- Records of sys_global -- ---------------------------- diff --git a/doc/db/mysql/sys.sql b/doc/db/mysql/sys.sql index 36797a6..6cd3586 100644 --- a/doc/db/mysql/sys.sql +++ b/doc/db/mysql/sys.sql @@ -324,7 +324,23 @@ INSERT INTO `sys_menu` VALUES ('12', '2', '0,1,2,', '用户编辑', '30', '', '' INSERT INTO `sys_menu` VALUES ('13', '3', '0,1,3,', '查看', '30', '', '', '', '1', 'role:view', '1', '2017-12-05 15:03:15', '1', '2017-12-05 15:03:15', '', '0', '2'); INSERT INTO `sys_menu` VALUES ('14', '4', '0,1,4,', '查看', '30', '', '', '', '1', 'menu:view', '1', '2017-12-05 15:03:35', '1', '2017-12-05 15:03:35', '', '0', '2'); INSERT INTO `sys_menu` VALUES ('15', '3', '0,1,3,', '角色授权', '30', null, null, null, '1', 'role:auth', '1', '0000-00-00 00:00:00', '0', '0000-00-00 00:00:00', null, '0', '2'); +INSERT INTO `sys_menu` VALUES (16, 1, '0,1,', '系统参数', 30, 'sys/global/edit', '', '', '1', 'global:show', 1, '2018-7-20 16:49:19', 1, '2018-7-20 16:51:51', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (17, 16, '0,1,16,', '查看', 30, '', '', '', '1', 'global:show', 1, '2018-7-20 16:50:32', 1, '2018-7-20 16:51:45', '', '1', '2'); +INSERT INTO `sys_menu` VALUES (18, 16, '0,1,16,', '更新', 30, 'sys/global/update', '', '', '1', 'global:update', 1, '2018-7-20 16:51:23', 1, '2018-7-20 16:52:53', '', '0', '2'); +INSERT INTO `sys_menu` VALUES (19, 1, '0,1,', '运行环境', 30, 'sys/environment', '', '', '1', '', 1, '2018-7-20 16:55:10', 1, '2018-7-23 16:48:55', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (20, 1, '0,1,', '调度任务', 40, 'schedule/list', '', '', '1', '', 1, '2018-7-23 16:34:15', 1, '2018-7-23 16:34:15', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (21, 1, '0,1,', '数据库监控', 30, '/druid', '', '', '1', '', 1, '2018-12-17 13:24:55', 1, '2018-12-17 13:25:11', '', '0', '1'); +-------模块脚本-------------- +INSERT INTO `sys_menu` VALUES (22, 0, '0,', '工作流', 30, '', '', 'fa fa-cog', '1', '', 1, '2018-7-23 16:44:00', 1, '2018-7-23 16:47:54', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (23, 22, '0,22,', '模型管理', 30, 'workflow/models/list', '', '', '1', 'act:process:edit', 1, '2018-7-23 16:44:54', 1, '2018-7-23 16:44:54', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (24, 22, '0,22,', '流程管理', 30, 'workflow/process/processDefList', '', '', '1', 'act:process:edit', 1, '2018-7-23 16:45:43', 1, '2018-7-23 16:45:43', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (25, 22, '0,22,', '待办流程', 30, 'workflow/task/todo', '', '', '1', '', 1, '2018-7-23 16:47:25', 1, '2018-7-23 16:47:25', '', '0', '1'); + +INSERT INTO `sys_menu` VALUES (26, 0, '0,', '短信平台', 30, '', '', 'ace-icon fa fa-comments', '1', '', 1, '2018-12-12 16:43:53', 1, '2018-12-12 16:57:33', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (27, 26, '0,26,', '短信查询', 30, '/sms/smsRecord/list', '', '', '1', '', 1, '2018-12-12 16:44:09', 1, '2018-12-12 16:45:58', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (28, 26, '0,26,', '短信模板', 30, 'sms/smsTemplate/list', '', '', '1', '', 1, '2018-12-12 16:44:19', 1, '2018-12-12 17:15:39', '', '0', '1'); +INSERT INTO `sys_menu` VALUES (29, 26, '0,26,', '参数配置', 30, '', '', '', '1', '', 1, '2018-12-12 16:56:03', 1, '2018-12-12 16:56:03', '', '0', '1'); @@ -348,8 +364,12 @@ INSERT INTO `sys_role_menu` VALUES ('1', '12'); INSERT INTO `sys_role_menu` VALUES ('1', '13'); INSERT INTO `sys_role_menu` VALUES ('1', '14'); INSERT INTO `sys_role_menu` VALUES ('1', '15'); - - +INSERT INTO `sys_role_menu` VALUES ('1', '16'); +INSERT INTO `sys_role_menu` VALUES ('1', '17'); +INSERT INTO `sys_role_menu` VALUES ('1', '18'); +INSERT INTO `sys_role_menu` VALUES ('1', '19'); +INSERT INTO `sys_role_menu` VALUES ('1', '20'); +INSERT INTO `sys_role_menu` VALUES ('1', '21'); -- ---------------------------- diff --git a/platform/icec-sys/src/main/java/org/icec/web/core/sys/controller/IndexCtrl.java b/platform/icec-sys/src/main/java/org/icec/web/core/sys/controller/IndexCtrl.java index eb13b21..c1ab2db 100644 --- a/platform/icec-sys/src/main/java/org/icec/web/core/sys/controller/IndexCtrl.java +++ b/platform/icec-sys/src/main/java/org/icec/web/core/sys/controller/IndexCtrl.java @@ -59,6 +59,11 @@ public class IndexCtrl extends BaseController{ return "redirect:"+homeUrl; } + @RequestMapping({ "/main" }) + public String main() { + return "sys/home"; + } + @RequestMapping({ "/error2" }) public String error() { throw new IcecException(500, "Sam 错误"); diff --git a/platform/icec-sys/src/main/resources/templates/sys/index.html b/platform/icec-sys/src/main/resources/templates/sys/index.html index 9e87dc0..eeba170 100644 --- a/platform/icec-sys/src/main/resources/templates/sys/index.html +++ b/platform/icec-sys/src/main/resources/templates/sys/index.html @@ -1,7 +1,7 @@ -环境监测系统 +icec-admin @@ -19,7 +19,7 @@ @@ -43,7 +48,7 @@ 编号 手机号码 - 模板类别 + 模板名称 短信内容 创建时间 @@ -90,7 +95,26 @@ function search(){ $('#usertable').bootstrapTable('refresh'); } - + /** + *一键删除未发送短信 + **/ + function delSms(){ + jp.confirm('确定要删除选择吗?', function (){ + jp.loading(); + $.get(ctx+"sms/smsRecord/deleteSms", function(data){ + if(data){ + $('#usertable').bootstrapTable('refresh'); + jp.success("删除成功"); + }else{ + jp.error("删除失败"); + } + }) + + } + + ); + + } \ No newline at end of file diff --git a/module/icec-sms/src/main/resources/templates/sms/templateAdd.html b/module/icec-sms/src/main/resources/templates/sms/templateAdd.html index 5368f9e..d5f0ad3 100644 --- a/module/icec-sms/src/main/resources/templates/sms/templateAdd.html +++ b/module/icec-sms/src/main/resources/templates/sms/templateAdd.html @@ -1,31 +1,46 @@ -添加黑名单 +添加短信模板
    - + method="post" th:action="@{/sms/smsTemplate/save}"> + - - - - + + + + + - - - - + + + + - - - - - - + + + + + + + + + +
    - + \n\ +snippet scriptsrc\n\ + \n\ +snippet newscript\n\ + \n\ +snippet newscriptsrc\n\ + \n\ +snippet section\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet section.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet section#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet select\n\ + \n\ +snippet select.\n\ + \n\ +snippet select+\n\ + \n\ +snippet small\n\ + ${1}\n\ +snippet source\n\ + \n\ +snippet span\n\ + ${1}\n\ +snippet strong\n\ + ${1}\n\ +snippet style\n\ + \n\ +snippet sub\n\ + ${1}\n\ +snippet summary\n\ + \n\ + ${1}\n\ + \n\ +snippet sup\n\ + ${1}\n\ +snippet table\n\ + \n\ + ${2}\n\ +
    \n\ +snippet table.\n\ + \n\ + ${3}\n\ +
    \n\ +snippet table#\n\ + \n\ + ${3}\n\ +
    \n\ +snippet tbody\n\ + \n\ + ${1}\n\ + \n\ +snippet td\n\ + ${1}\n\ +snippet td.\n\ + ${2}\n\ +snippet td#\n\ + ${2}\n\ +snippet td+\n\ + ${1}\n\ + td+${2}\n\ +snippet textarea\n\ + ${6}\n\ +snippet tfoot\n\ + \n\ + ${1}\n\ + \n\ +snippet th\n\ + ${1}\n\ +snippet th.\n\ + ${2}\n\ +snippet th#\n\ + ${2}\n\ +snippet th+\n\ + ${1}\n\ + th+${2}\n\ +snippet thead\n\ + \n\ + ${1}\n\ + \n\ +snippet time\n\ + \n\ +snippet title\n\ + ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}\n\ +snippet tr\n\ + \n\ + ${1}\n\ + \n\ +snippet tr+\n\ + \n\ + ${1}\n\ + td+${2}\n\ + \n\ +snippet track\n\ + ${5}${6}\n\ +snippet ul\n\ +
      \n\ + ${1}\n\ +
    \n\ +snippet ul.\n\ +
      \n\ + ${2}\n\ +
    \n\ +snippet ul#\n\ +
      \n\ + ${2}\n\ +
    \n\ +snippet ul+\n\ +
      \n\ +
    • ${1}
    • \n\ + li+${2}\n\ +
    \n\ +snippet var\n\ + ${1}\n\ +snippet video\n\ + ${8}\n\ +snippet wbr\n\ + ${1}\n\ +"; +exports.scope = "html"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/html_elixir.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/html_elixir.js new file mode 100644 index 0000000..4535c5e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/html_elixir.js @@ -0,0 +1,7 @@ +define("ace/snippets/html_elixir",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "html_elixir"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/html_ruby.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/html_ruby.js new file mode 100644 index 0000000..7a781d8 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/html_ruby.js @@ -0,0 +1,7 @@ +define("ace/snippets/html_ruby",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "html_ruby"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ini.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ini.js new file mode 100644 index 0000000..bc5bc93 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ini.js @@ -0,0 +1,7 @@ +define("ace/snippets/ini",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "ini"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/io.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/io.js new file mode 100644 index 0000000..743b5d2 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/io.js @@ -0,0 +1,69 @@ +define("ace/snippets/io",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippets = [ + { + "content": "assertEquals(${1:expected}, ${2:expr})", + "name": "assertEquals", + "scope": "io", + "tabTrigger": "ae" + }, + { + "content": "${1:${2:newValue} := ${3:Object} }clone do(\n\t$0\n)", + "name": "clone do", + "scope": "io", + "tabTrigger": "cdo" + }, + { + "content": "docSlot(\"${1:slotName}\", \"${2:documentation}\")", + "name": "docSlot", + "scope": "io", + "tabTrigger": "ds" + }, + { + "content": "(${1:header,}\n\t${2:body}\n)$0", + "keyEquivalent": "@(", + "name": "Indented Bracketed Line", + "scope": "io", + "tabTrigger": "(" + }, + { + "content": "\n\t$0\n", + "keyEquivalent": "\r", + "name": "Special: Return Inside Empty Parenthesis", + "scope": "io meta.empty-parenthesis.io, io meta.comma-parenthesis.io" + }, + { + "content": "${1:methodName} := method(${2:args,}\n\t$0\n)", + "name": "method", + "scope": "io", + "tabTrigger": "m" + }, + { + "content": "newSlot(\"${1:slotName}\", ${2:defaultValue}, \"${3:docString}\")$0", + "name": "newSlot", + "scope": "io", + "tabTrigger": "ns" + }, + { + "content": "${1:name} := Object clone do(\n\t$0\n)", + "name": "Object clone do", + "scope": "io", + "tabTrigger": "ocdo" + }, + { + "content": "test${1:SomeFeature} := method(\n\t$0\n)", + "name": "testMethod", + "scope": "io", + "tabTrigger": "ts" + }, + { + "content": "${1:Something}Test := ${2:UnitTest} clone do(\n\t$0\n)", + "name": "UnitTest", + "scope": "io", + "tabTrigger": "ut" + } +]; +exports.scope = "io"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jack.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jack.js new file mode 100644 index 0000000..154a0b0 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jack.js @@ -0,0 +1,7 @@ +define("ace/snippets/jack",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "jack"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jade.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jade.js new file mode 100644 index 0000000..f96faee --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jade.js @@ -0,0 +1,7 @@ +define("ace/snippets/jade",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "jade"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/java.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/java.js new file mode 100644 index 0000000..0f000c7 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/java.js @@ -0,0 +1,247 @@ +define("ace/snippets/java",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "## Access Modifiers\n\ +snippet po\n\ + protected\n\ +snippet pu\n\ + public\n\ +snippet pr\n\ + private\n\ +##\n\ +## Annotations\n\ +snippet before\n\ + @Before\n\ + static void ${1:intercept}(${2:args}) { ${3} }\n\ +snippet mm\n\ + @ManyToMany\n\ + ${1}\n\ +snippet mo\n\ + @ManyToOne\n\ + ${1}\n\ +snippet om\n\ + @OneToMany${1:(cascade=CascadeType.ALL)}\n\ + ${2}\n\ +snippet oo\n\ + @OneToOne\n\ + ${1}\n\ +##\n\ +## Basic Java packages and import\n\ +snippet im\n\ + import\n\ +snippet j.b\n\ + java.beans.\n\ +snippet j.i\n\ + java.io.\n\ +snippet j.m\n\ + java.math.\n\ +snippet j.n\n\ + java.net.\n\ +snippet j.u\n\ + java.util.\n\ +##\n\ +## Class\n\ +snippet cl\n\ + class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\ +snippet in\n\ + interface ${1:`Filename(\"\", \"untitled\")`} ${2:extends Parent}${3}\n\ +snippet tc\n\ + public class ${1:`Filename()`} extends ${2:TestCase}\n\ +##\n\ +## Class Enhancements\n\ +snippet ext\n\ + extends \n\ +snippet imp\n\ + implements\n\ +##\n\ +## Comments\n\ +snippet /*\n\ + /*\n\ + * ${1}\n\ + */\n\ +##\n\ +## Constants\n\ +snippet co\n\ + static public final ${1:String} ${2:var} = ${3};${4}\n\ +snippet cos\n\ + static public final String ${1:var} = \"${2}\";${3}\n\ +##\n\ +## Control Statements\n\ +snippet case\n\ + case ${1}:\n\ + ${2}\n\ +snippet def\n\ + default:\n\ + ${2}\n\ +snippet el\n\ + else\n\ +snippet elif\n\ + else if (${1}) ${2}\n\ +snippet if\n\ + if (${1}) ${2}\n\ +snippet sw\n\ + switch (${1}) {\n\ + ${2}\n\ + }\n\ +##\n\ +## Create a Method\n\ +snippet m\n\ + ${1:void} ${2:method}(${3}) ${4:throws }${5}\n\ +##\n\ +## Create a Variable\n\ +snippet v\n\ + ${1:String} ${2:var}${3: = null}${4};${5}\n\ +##\n\ +## Enhancements to Methods, variables, classes, etc.\n\ +snippet ab\n\ + abstract\n\ +snippet fi\n\ + final\n\ +snippet st\n\ + static\n\ +snippet sy\n\ + synchronized\n\ +##\n\ +## Error Methods\n\ +snippet err\n\ + System.err.print(\"${1:Message}\");\n\ +snippet errf\n\ + System.err.printf(\"${1:Message}\", ${2:exception});\n\ +snippet errln\n\ + System.err.println(\"${1:Message}\");\n\ +##\n\ +## Exception Handling\n\ +snippet as\n\ + assert ${1:test} : \"${2:Failure message}\";${3}\n\ +snippet ca\n\ + catch(${1:Exception} ${2:e}) ${3}\n\ +snippet thr\n\ + throw\n\ +snippet ths\n\ + throws\n\ +snippet try\n\ + try {\n\ + ${3}\n\ + } catch(${1:Exception} ${2:e}) {\n\ + }\n\ +snippet tryf\n\ + try {\n\ + ${3}\n\ + } catch(${1:Exception} ${2:e}) {\n\ + } finally {\n\ + }\n\ +##\n\ +## Find Methods\n\ +snippet findall\n\ + List<${1:listName}> ${2:items} = ${1}.findAll();${3}\n\ +snippet findbyid\n\ + ${1:var} ${2:item} = ${1}.findById(${3});${4}\n\ +##\n\ +## Javadocs\n\ +snippet /**\n\ + /**\n\ + * ${1}\n\ + */\n\ +snippet @au\n\ + @author `system(\"grep \\`id -un\\` /etc/passwd | cut -d \\\":\\\" -f5 | cut -d \\\",\\\" -f1\")`\n\ +snippet @br\n\ + @brief ${1:Description}\n\ +snippet @fi\n\ + @file ${1:`Filename()`}.java\n\ +snippet @pa\n\ + @param ${1:param}\n\ +snippet @re\n\ + @return ${1:param}\n\ +##\n\ +## Logger Methods\n\ +snippet debug\n\ + Logger.debug(${1:param});${2}\n\ +snippet error\n\ + Logger.error(${1:param});${2}\n\ +snippet info\n\ + Logger.info(${1:param});${2}\n\ +snippet warn\n\ + Logger.warn(${1:param});${2}\n\ +##\n\ +## Loops\n\ +snippet enfor\n\ + for (${1} : ${2}) ${3}\n\ +snippet for\n\ + for (${1}; ${2}; ${3}) ${4}\n\ +snippet wh\n\ + while (${1}) ${2}\n\ +##\n\ +## Main method\n\ +snippet main\n\ + public static void main (String[] args) {\n\ + ${1:/* code */}\n\ + }\n\ +##\n\ +## Print Methods\n\ +snippet print\n\ + System.out.print(\"${1:Message}\");\n\ +snippet printf\n\ + System.out.printf(\"${1:Message}\", ${2:args});\n\ +snippet println\n\ + System.out.println(${1});\n\ +##\n\ +## Render Methods\n\ +snippet ren\n\ + render(${1:param});${2}\n\ +snippet rena\n\ + renderArgs.put(\"${1}\", ${2});${3}\n\ +snippet renb\n\ + renderBinary(${1:param});${2}\n\ +snippet renj\n\ + renderJSON(${1:param});${2}\n\ +snippet renx\n\ + renderXml(${1:param});${2}\n\ +##\n\ +## Setter and Getter Methods\n\ +snippet set\n\ + ${1:public} void set${3:}(${2:String} ${4:}){\n\ + this.$4 = $4;\n\ + }\n\ +snippet get\n\ + ${1:public} ${2:String} get${3:}(){\n\ + return this.${4:};\n\ + }\n\ +##\n\ +## Terminate Methods or Loops\n\ +snippet re\n\ + return\n\ +snippet br\n\ + break;\n\ +##\n\ +## Test Methods\n\ +snippet t\n\ + public void test${1:Name}() throws Exception {\n\ + ${2}\n\ + }\n\ +snippet test\n\ + @Test\n\ + public void test${1:Name}() throws Exception {\n\ + ${2}\n\ + }\n\ +##\n\ +## Utils\n\ +snippet Sc\n\ + Scanner\n\ +##\n\ +## Miscellaneous\n\ +snippet action\n\ + public static void ${1:index}(${2:args}) { ${3} }\n\ +snippet rnf\n\ + notFound(${1:param});${2}\n\ +snippet rnfin\n\ + notFoundIfNull(${1:param});${2}\n\ +snippet rr\n\ + redirect(${1:param});${2}\n\ +snippet ru\n\ + unauthorized(${1:param});${2}\n\ +snippet unless\n\ + (unless=${1:param});${2}\n\ +"; +exports.scope = "java"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/javascript.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/javascript.js new file mode 100644 index 0000000..01355e1 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/javascript.js @@ -0,0 +1,202 @@ +define("ace/snippets/javascript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Prototype\n\ +snippet proto\n\ + ${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\n\ + ${4:// body...}\n\ + };\n\ +# Function\n\ +snippet fun\n\ + function ${1?:function_name}(${2:argument}) {\n\ + ${3:// body...}\n\ + }\n\ +# Anonymous Function\n\ +regex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/\n\ +snippet f\n\ + function${M1?: ${1:functionName}}($2) {\n\ + ${0:$TM_SELECTED_TEXT}\n\ + }${M2?;}${M3?,}${M4?)}\n\ +# Immediate function\n\ +trigger \\(?f\\(\n\ +endTrigger \\)?\n\ +snippet f(\n\ + (function(${1}) {\n\ + ${0:${TM_SELECTED_TEXT:/* code */}}\n\ + }(${1}));\n\ +# if\n\ +snippet if\n\ + if (${1:true}) {\n\ + ${0}\n\ + }\n\ +# if ... else\n\ +snippet ife\n\ + if (${1:true}) {\n\ + ${2}\n\ + } else {\n\ + ${0}\n\ + }\n\ +# tertiary conditional\n\ +snippet ter\n\ + ${1:/* condition */} ? ${2:a} : ${3:b}\n\ +# switch\n\ +snippet switch\n\ + switch (${1:expression}) {\n\ + case '${3:case}':\n\ + ${4:// code}\n\ + break;\n\ + ${5}\n\ + default:\n\ + ${2:// code}\n\ + }\n\ +# case\n\ +snippet case\n\ + case '${1:case}':\n\ + ${2:// code}\n\ + break;\n\ + ${3}\n\ +\n\ +# while (...) {...}\n\ +snippet wh\n\ + while (${1:/* condition */}) {\n\ + ${0:/* code */}\n\ + }\n\ +# try\n\ +snippet try\n\ + try {\n\ + ${0:/* code */}\n\ + } catch (e) {}\n\ +# do...while\n\ +snippet do\n\ + do {\n\ + ${2:/* code */}\n\ + } while (${1:/* condition */});\n\ +# Object Method\n\ +snippet :f\n\ +regex /([,{[])|^\\s*/:f/\n\ + ${1:method_name}: function(${2:attribute}) {\n\ + ${0}\n\ + }${3:,}\n\ +# setTimeout function\n\ +snippet setTimeout\n\ +regex /\\b/st|timeout|setTimeo?u?t?/\n\ + setTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\n\ +# Get Elements\n\ +snippet gett\n\ + getElementsBy${1:TagName}('${2}')${3}\n\ +# Get Element\n\ +snippet get\n\ + getElementBy${1:Id}('${2}')${3}\n\ +# console.log (Firebug)\n\ +snippet cl\n\ + console.log(${1});\n\ +# return\n\ +snippet ret\n\ + return ${1:result}\n\ +# for (property in object ) { ... }\n\ +snippet fori\n\ + for (var ${1:prop} in ${2:Things}) {\n\ + ${0:$2[$1]}\n\ + }\n\ +# hasOwnProperty\n\ +snippet has\n\ + hasOwnProperty(${1})\n\ +# docstring\n\ +snippet /**\n\ + /**\n\ + * ${1:description}\n\ + *\n\ + */\n\ +snippet @par\n\ +regex /^\\s*\\*\\s*/@(para?m?)?/\n\ + @param {${1:type}} ${2:name} ${3:description}\n\ +snippet @ret\n\ + @return {${1:type}} ${2:description}\n\ +# JSON.parse\n\ +snippet jsonp\n\ + JSON.parse(${1:jstr});\n\ +# JSON.stringify\n\ +snippet jsons\n\ + JSON.stringify(${1:object});\n\ +# self-defining function\n\ +snippet sdf\n\ + var ${1:function_name} = function(${2:argument}) {\n\ + ${3:// initial code ...}\n\ +\n\ + $1 = function($2) {\n\ + ${4:// main code}\n\ + };\n\ + }\n\ +# singleton\n\ +snippet sing\n\ + function ${1:Singleton} (${2:argument}) {\n\ + // the cached instance\n\ + var instance;\n\ +\n\ + // rewrite the constructor\n\ + $1 = function $1($2) {\n\ + return instance;\n\ + };\n\ + \n\ + // carry over the prototype properties\n\ + $1.prototype = this;\n\ +\n\ + // the instance\n\ + instance = new $1();\n\ +\n\ + // reset the constructor pointer\n\ + instance.constructor = $1;\n\ +\n\ + ${3:// code ...}\n\ +\n\ + return instance;\n\ + }\n\ +# class\n\ +snippet class\n\ +regex /^\\s*/clas{0,2}/\n\ + var ${1:class} = function(${20}) {\n\ + $40$0\n\ + };\n\ + \n\ + (function() {\n\ + ${60:this.prop = \"\"}\n\ + }).call(${1:class}.prototype);\n\ + \n\ + exports.${1:class} = ${1:class};\n\ +# \n\ +snippet for-\n\ + for (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\n\ + ${0:${2:Things}[${1:i}];}\n\ + }\n\ +# for (...) {...}\n\ +snippet for\n\ + for (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\n\ + ${3:$2[$1]}$0\n\ + }\n\ +# for (...) {...} (Improved Native For-Loop)\n\ +snippet forr\n\ + for (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\n\ + ${3:$2[$1]}$0\n\ + }\n\ +\n\ +\n\ +#modules\n\ +snippet def\n\ + define(function(require, exports, module) {\n\ + \"use strict\";\n\ + var ${1/.*\\///} = require(\"${1}\");\n\ + \n\ + $TM_SELECTED_TEXT\n\ + });\n\ +snippet req\n\ +guard ^\\s*\n\ + var ${1/.*\\///} = require(\"${1}\");\n\ + $0\n\ +snippet requ\n\ +guard ^\\s*\n\ + var ${1/.*\\/(.)/\\u$1/} = require(\"${1}\").${1/.*\\/(.)/\\u$1/};\n\ + $0\n\ +"; +exports.scope = "javascript"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/json.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/json.js new file mode 100644 index 0000000..88a63c1 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/json.js @@ -0,0 +1,7 @@ +define("ace/snippets/json",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "json"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsoniq.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsoniq.js new file mode 100644 index 0000000..7b03669 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsoniq.js @@ -0,0 +1,68 @@ +define("ace/snippets/jsoniq",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet for\n\ + for $${1:item} in ${2:expr}\n\ +snippet return\n\ + return ${1:expr}\n\ +snippet import\n\ + import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\ +snippet some\n\ + some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet every\n\ + every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet if\n\ + if(${1:true}) then ${2:expr} else ${3:true}\n\ +snippet switch\n\ + switch(${1:\"foo\"})\n\ + case ${2:\"foo\"}\n\ + return ${3:true}\n\ + default return ${4:false}\n\ +snippet try\n\ + try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\ +snippet tumbling\n\ + for tumbling window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet sliding\n\ + for sliding window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet let\n\ + let $${1:varname} := ${2:expr}\n\ +snippet group\n\ + group by $${1:varname} := ${2:expr}\n\ +snippet order\n\ + order by ${1:expr} ${2:descending}\n\ +snippet stable\n\ + stable order by ${1:expr}\n\ +snippet count\n\ + count $${1:varname}\n\ +snippet ordered\n\ + ordered { ${1:expr} }\n\ +snippet unordered\n\ + unordered { ${1:expr} }\n\ +snippet treat \n\ + treat as ${1:expr}\n\ +snippet castable\n\ + castable as ${1:atomicType}\n\ +snippet cast\n\ + cast as ${1:atomicType}\n\ +snippet typeswitch\n\ + typeswitch(${1:expr})\n\ + case ${2:type} return ${3:expr}\n\ + default return ${4:expr}\n\ +snippet var\n\ + declare variable $${1:varname} := ${2:expr};\n\ +snippet fn\n\ + declare function ${1:ns}:${2:name}(){\n\ + ${3:expr}\n\ + };\n\ +snippet module\n\ + module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\ +"; +exports.scope = "jsoniq"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsp.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsp.js new file mode 100644 index 0000000..2aff156 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsp.js @@ -0,0 +1,106 @@ +define("ace/snippets/jsp",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet @page\n\ + <%@page contentType=\"text/html\" pageEncoding=\"UTF-8\"%>\n\ +snippet jstl\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\n\ +snippet jstl:c\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\n\ +snippet jstl:fn\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\n\ +snippet cpath\n\ + ${pageContext.request.contextPath}\n\ +snippet cout\n\ + \n\ +snippet cset\n\ + \n\ +snippet cremove\n\ + \n\ +snippet ccatch\n\ + \n\ +snippet cif\n\ + \n\ + ${2}\n\ + \n\ +snippet cchoose\n\ + \n\ + ${1}\n\ + \n\ +snippet cwhen\n\ + \n\ + ${2}\n\ + \n\ +snippet cother\n\ + \n\ + ${1}\n\ + \n\ +snippet cfore\n\ + \n\ + ${4:}\n\ + \n\ +snippet cfort\n\ + ${2:item1,item2,item3}\n\ + \n\ + ${5:}\n\ + \n\ +snippet cparam\n\ + \n\ +snippet cparam+\n\ + \n\ + cparam+${3}\n\ +snippet cimport\n\ + \n\ +snippet cimport+\n\ + \n\ + \n\ + cparam+${4}\n\ + \n\ +snippet curl\n\ + \n\ + ${3}\n\ +snippet curl+\n\ + \n\ + \n\ + cparam+${6}\n\ + \n\ + ${3}\n\ +snippet credirect\n\ + \n\ +snippet contains\n\ + ${fn:contains(${1:string}, ${2:substr})}\n\ +snippet contains:i\n\ + ${fn:containsIgnoreCase(${1:string}, ${2:substr})}\n\ +snippet endswith\n\ + ${fn:endsWith(${1:string}, ${2:suffix})}\n\ +snippet escape\n\ + ${fn:escapeXml(${1:string})}\n\ +snippet indexof\n\ + ${fn:indexOf(${1:string}, ${2:substr})}\n\ +snippet join\n\ + ${fn:join(${1:collection}, ${2:delims})}\n\ +snippet length\n\ + ${fn:length(${1:collection_or_string})}\n\ +snippet replace\n\ + ${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\n\ +snippet split\n\ + ${fn:split(${1:string}, ${2:delims})}\n\ +snippet startswith\n\ + ${fn:startsWith(${1:string}, ${2:prefix})}\n\ +snippet substr\n\ + ${fn:substring(${1:string}, ${2:begin}, ${3:end})}\n\ +snippet substr:a\n\ + ${fn:substringAfter(${1:string}, ${2:substr})}\n\ +snippet substr:b\n\ + ${fn:substringBefore(${1:string}, ${2:substr})}\n\ +snippet lc\n\ + ${fn:toLowerCase(${1:string})}\n\ +snippet uc\n\ + ${fn:toUpperCase(${1:string})}\n\ +snippet trim\n\ + ${fn:trim(${1:string})}\n\ +"; +exports.scope = "jsp"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jssm.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jssm.js new file mode 100644 index 0000000..a8be36e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jssm.js @@ -0,0 +1,7 @@ +define("ace/snippets/jssm",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsx.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsx.js new file mode 100644 index 0000000..5e9957d --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/jsx.js @@ -0,0 +1,7 @@ +define("ace/snippets/jsx",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "jsx"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/julia.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/julia.js new file mode 100644 index 0000000..17a6554 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/julia.js @@ -0,0 +1,7 @@ +define("ace/snippets/julia",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "julia"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/kotlin.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/kotlin.js new file mode 100644 index 0000000..e40b6ba --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/kotlin.js @@ -0,0 +1,7 @@ +define("ace/snippets/kotlin",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/latex.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/latex.js new file mode 100644 index 0000000..5e152b3 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/latex.js @@ -0,0 +1,7 @@ +define("ace/snippets/latex",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "latex"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lean.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lean.js new file mode 100644 index 0000000..21eec75 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lean.js @@ -0,0 +1,7 @@ +define("ace/snippets/lean",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "lean"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/less.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/less.js new file mode 100644 index 0000000..af4ce7c --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/less.js @@ -0,0 +1,7 @@ +define("ace/snippets/less",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "less"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/liquid.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/liquid.js new file mode 100644 index 0000000..a86117c --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/liquid.js @@ -0,0 +1,7 @@ +define("ace/snippets/liquid",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "liquid"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lisp.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lisp.js new file mode 100644 index 0000000..c02fd8d --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lisp.js @@ -0,0 +1,7 @@ +define("ace/snippets/lisp",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "lisp"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/live_script.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/live_script.js new file mode 100644 index 0000000..9ab3376 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/live_script.js @@ -0,0 +1,7 @@ +define("ace/snippets/live_script",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/livescript.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/livescript.js new file mode 100644 index 0000000..4a254bd --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/livescript.js @@ -0,0 +1,7 @@ +define("ace/snippets/livescript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "livescript"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/logiql.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/logiql.js new file mode 100644 index 0000000..9a6b792 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/logiql.js @@ -0,0 +1,7 @@ +define("ace/snippets/logiql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "logiql"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lsl.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lsl.js new file mode 100644 index 0000000..6fbdc9f --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lsl.js @@ -0,0 +1,1239 @@ +define("ace/snippets/lsl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet @\n\ + @${1:label};\n\ +snippet CAMERA_ACTIVE\n\ + CAMERA_ACTIVE, ${1:integer isActive}, $0\n\ +snippet CAMERA_BEHINDNESS_ANGLE\n\ + CAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\n\ +snippet CAMERA_BEHINDNESS_LAG\n\ + CAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\n\ +snippet CAMERA_DISTANCE\n\ + CAMERA_DISTANCE, ${1:float meters}, $0\n\ +snippet CAMERA_FOCUS\n\ + CAMERA_FOCUS, ${1:vector position}, $0\n\ +snippet CAMERA_FOCUS_LAG\n\ + CAMERA_FOCUS_LAG, ${1:float seconds}, $0\n\ +snippet CAMERA_FOCUS_LOCKED\n\ + CAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\n\ +snippet CAMERA_FOCUS_OFFSET\n\ + CAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\n\ +snippet CAMERA_FOCUS_THRESHOLD\n\ + CAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\n\ +snippet CAMERA_PITCH\n\ + CAMERA_PITCH, ${1:float degrees}, $0\n\ +snippet CAMERA_POSITION\n\ + CAMERA_POSITION, ${1:vector position}, $0\n\ +snippet CAMERA_POSITION_LAG\n\ + CAMERA_POSITION_LAG, ${1:float seconds}, $0\n\ +snippet CAMERA_POSITION_LOCKED\n\ + CAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\n\ +snippet CAMERA_POSITION_THRESHOLD\n\ + CAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\n\ +snippet CHARACTER_AVOIDANCE_MODE\n\ + CHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\n\ +snippet CHARACTER_DESIRED_SPEED\n\ + CHARACTER_DESIRED_SPEED, ${1:float speed}, $0\n\ +snippet CHARACTER_DESIRED_TURN_SPEED\n\ + CHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\n\ +snippet CHARACTER_LENGTH\n\ + CHARACTER_LENGTH, ${1:float length}, $0\n\ +snippet CHARACTER_MAX_TURN_RADIUS\n\ + CHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\n\ +snippet CHARACTER_ORIENTATION\n\ + CHARACTER_ORIENTATION, ${1:integer orientation}, $0\n\ +snippet CHARACTER_RADIUS\n\ + CHARACTER_RADIUS, ${1:float radius}, $0\n\ +snippet CHARACTER_STAY_WITHIN_PARCEL\n\ + CHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\n\ +snippet CHARACTER_TYPE\n\ + CHARACTER_TYPE, ${1:integer type}, $0\n\ +snippet HTTP_BODY_MAXLENGTH\n\ + HTTP_BODY_MAXLENGTH, ${1:integer length}, $0\n\ +snippet HTTP_CUSTOM_HEADER\n\ + HTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\n\ +snippet HTTP_METHOD\n\ + HTTP_METHOD, ${1:string method}, $0\n\ +snippet HTTP_MIMETYPE\n\ + HTTP_MIMETYPE, ${1:string mimeType}, $0\n\ +snippet HTTP_PRAGMA_NO_CACHE\n\ + HTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\n\ +snippet HTTP_VERBOSE_THROTTLE\n\ + HTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\n\ +snippet HTTP_VERIFY_CERT\n\ + HTTP_VERIFY_CERT, ${1:integer verify}, $0\n\ +snippet RC_DATA_FLAGS\n\ + RC_DATA_FLAGS, ${1:integer flags}, $0\n\ +snippet RC_DETECT_PHANTOM\n\ + RC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\n\ +snippet RC_MAX_HITS\n\ + RC_MAX_HITS, ${1:integer maxHits}, $0\n\ +snippet RC_REJECT_TYPES\n\ + RC_REJECT_TYPES, ${1:integer filterMask}, $0\n\ +snippet at_rot_target\n\ + at_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\n\ + {\n\ + $0\n\ + }\n\ +snippet at_target\n\ + at_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\n\ + {\n\ + $0\n\ + }\n\ +snippet attach\n\ + attach(${1:key id})\n\ + {\n\ + $0\n\ + }\n\ +snippet changed\n\ + changed(${1:integer change})\n\ + {\n\ + $0\n\ + }\n\ +snippet collision\n\ + collision(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet collision_end\n\ + collision_end(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet collision_start\n\ + collision_start(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet control\n\ + control(${1:key id}, ${2:integer level}, ${3:integer edge})\n\ + {\n\ + $0\n\ + }\n\ +snippet dataserver\n\ + dataserver(${1:key query_id}, ${2:string data})\n\ + {\n\ + $0\n\ + }\n\ +snippet do\n\ + do\n\ + {\n\ + $0\n\ + }\n\ + while (${1:condition});\n\ +snippet else\n\ + else\n\ + {\n\ + $0\n\ + }\n\ +snippet email\n\ + email(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\n\ + {\n\ + $0\n\ + }\n\ +snippet experience_permissions\n\ + experience_permissions(${1:key agent_id})\n\ + {\n\ + $0\n\ + }\n\ +snippet experience_permissions_denied\n\ + experience_permissions_denied(${1:key agent_id}, ${2:integer reason})\n\ + {\n\ + $0\n\ + }\n\ +snippet for\n\ + for (${1:start}; ${3:condition}; ${3:step})\n\ + {\n\ + $0\n\ + }\n\ +snippet http_request\n\ + http_request(${1:key request_id}, ${2:string method}, ${3:string body})\n\ + {\n\ + $0\n\ + }\n\ +snippet http_response\n\ + http_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\n\ + {\n\ + $0\n\ + }\n\ +snippet if\n\ + if (${1:condition})\n\ + {\n\ + $0\n\ + }\n\ +snippet jump\n\ + jump ${1:label};\n\ +snippet land_collision\n\ + land_collision(${1:vector pos})\n\ + {\n\ + $0\n\ + }\n\ +snippet land_collision_end\n\ + land_collision_end(${1:vector pos})\n\ + {\n\ + $0\n\ + }\n\ +snippet land_collision_start\n\ + land_collision_start(${1:vector pos})\n\ + {\n\ + $0\n\ + }\n\ +snippet link_message\n\ + link_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\n\ + {\n\ + $0\n\ + }\n\ +snippet listen\n\ + listen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\n\ + {\n\ + $0\n\ + }\n\ +snippet llAbs\n\ + llAbs(${1:integer val})\n\ +snippet llAcos\n\ + llAcos(${1:float val})\n\ +snippet llAddToLandBanList\n\ + llAddToLandBanList(${1:key agent}, ${2:float hours});\n\ + $0\n\ +snippet llAddToLandPassList\n\ + llAddToLandPassList(${1:key agent}, ${2:float hours});\n\ + $0\n\ +snippet llAdjustSoundVolume\n\ + llAdjustSoundVolume(${1:float volume});\n\ + $0\n\ +snippet llAgentInExperience\n\ + llAgentInExperience(${1:key agent})\n\ +snippet llAllowInventoryDrop\n\ + llAllowInventoryDrop(${1:integer add});\n\ + $0\n\ +snippet llAngleBetween\n\ + llAngleBetween(${1:rotation a}, ${2:rotation b})\n\ +snippet llApplyImpulse\n\ + llApplyImpulse(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llApplyRotationalImpulse\n\ + llApplyRotationalImpulse(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llAsin\n\ + llAsin(${1:float val})\n\ +snippet llAtan2\n\ + llAtan2(${1:float y}, ${2:float x})\n\ +snippet llAttachToAvatar\n\ + llAttachToAvatar(${1:integer attach_point});\n\ + $0\n\ +snippet llAttachToAvatarTemp\n\ + llAttachToAvatarTemp(${1:integer attach_point});\n\ + $0\n\ +snippet llAvatarOnLinkSitTarget\n\ + llAvatarOnLinkSitTarget(${1:integer link})\n\ +snippet llAvatarOnSitTarget\n\ + llAvatarOnSitTarget()\n\ +snippet llAxes2Rot\n\ + llAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\n\ +snippet llAxisAngle2Rot\n\ + llAxisAngle2Rot(${1:vector axis}, ${2:float angle})\n\ +snippet llBase64ToInteger\n\ + llBase64ToInteger(${1:string str})\n\ +snippet llBase64ToString\n\ + llBase64ToString(${1:string str})\n\ +snippet llBreakAllLinks\n\ + llBreakAllLinks();\n\ + $0\n\ +snippet llBreakLink\n\ + llBreakLink(${1:integer link});\n\ + $0\n\ +snippet llCastRay\n\ + llCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\n\ + $0\n\ +snippet llCeil\n\ + llCeil(${1:float val})\n\ +snippet llClearCameraParams\n\ + llClearCameraParams();\n\ + $0\n\ +snippet llClearLinkMedia\n\ + llClearLinkMedia(${1:integer link}, ${2:integer face});\n\ + $0\n\ +snippet llClearPrimMedia\n\ + llClearPrimMedia(${1:integer face});\n\ + $0\n\ +snippet llCloseRemoteDataChannel\n\ + llCloseRemoteDataChannel(${1:key channel});\n\ + $0\n\ +snippet llCollisionFilter\n\ + llCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\n\ + $0\n\ +snippet llCollisionSound\n\ + llCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\n\ + $0\n\ +snippet llCos\n\ + llCos(${1:float theta})\n\ +snippet llCreateCharacter\n\ + llCreateCharacter(${1:list options});\n\ + $0\n\ +snippet llCreateKeyValue\n\ + llCreateKeyValue(${1:string k})\n\ +snippet llCreateLink\n\ + llCreateLink(${1:key target}, ${2:integer parent});\n\ + $0\n\ +snippet llCSV2List\n\ + llCSV2List(${1:string src})\n\ +snippet llDataSizeKeyValue\n\ + llDataSizeKeyValue()\n\ +snippet llDeleteCharacter\n\ + llDeleteCharacter();\n\ + $0\n\ +snippet llDeleteKeyValue\n\ + llDeleteKeyValue(${1:string k})\n\ +snippet llDeleteSubList\n\ + llDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\n\ +snippet llDeleteSubString\n\ + llDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\n\ +snippet llDetachFromAvatar\n\ + llDetachFromAvatar();\n\ + $0\n\ +snippet llDetectedGrab\n\ + llDetectedGrab(${1:integer number})\n\ +snippet llDetectedGroup\n\ + llDetectedGroup(${1:integer number})\n\ +snippet llDetectedKey\n\ + llDetectedKey(${1:integer number})\n\ +snippet llDetectedLinkNumber\n\ + llDetectedLinkNumber(${1:integer number})\n\ +snippet llDetectedName\n\ + llDetectedName(${1:integer number})\n\ +snippet llDetectedOwner\n\ + llDetectedOwner(${1:integer number})\n\ +snippet llDetectedPos\n\ + llDetectedPosl(${1:integer number})\n\ +snippet llDetectedRot\n\ + llDetectedRot(${1:integer number})\n\ +snippet llDetectedTouchBinormal\n\ + llDetectedTouchBinormal(${1:integer number})\n\ +snippet llDetectedTouchFace\n\ + llDetectedTouchFace(${1:integer number})\n\ +snippet llDetectedTouchNormal\n\ + llDetectedTouchNormal(${1:integer number})\n\ +snippet llDetectedTouchPos\n\ + llDetectedTouchPos(${1:integer number})\n\ +snippet llDetectedTouchST\n\ + llDetectedTouchST(${1:integer number})\n\ +snippet llDetectedTouchUV\n\ + llDetectedTouchUV(${1:integer number})\n\ +snippet llDetectedType\n\ + llDetectedType(${1:integer number})\n\ +snippet llDetectedVel\n\ + llDetectedVel(${1:integer number})\n\ +snippet llDialog\n\ + llDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\n\ + $0\n\ +snippet llDie\n\ + llDie();\n\ + $0\n\ +snippet llDumpList2String\n\ + llDumpList2String(${1:list src}, ${2:string separator})\n\ +snippet llEdgeOfWorld\n\ + llEdgeOfWorld(${1:vector pos}, ${2:vector dir})\n\ +snippet llEjectFromLand\n\ + llEjectFromLand(${1:key agent});\n\ + $0\n\ +snippet llEmail\n\ + llEmail(${1:string address}, ${2:string subject}, ${3:string message});\n\ + $0\n\ +snippet llEscapeURL\n\ + llEscapeURL(${1:string url})\n\ +snippet llEuler2Rot\n\ + llEuler2Rot(${1:vector v})\n\ +snippet llExecCharacterCmd\n\ + llExecCharacterCmd(${1:integer command}, ${2:list options});\n\ + $0\n\ +snippet llEvade\n\ + llEvade(${1:key target}, ${2:list options});\n\ + $0\n\ +snippet llFabs\n\ + llFabs(${1:float val})\n\ +snippet llFleeFrom\n\ + llFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\n\ + $0\n\ +snippet llFloor\n\ + llFloor(${1:float val})\n\ +snippet llForceMouselook\n\ + llForceMouselook(${1:integer mouselook});\n\ + $0\n\ +snippet llFrand\n\ + llFrand(${1:float mag})\n\ +snippet llGenerateKey\n\ + llGenerateKey()\n\ +snippet llGetAccel\n\ + llGetAccel()\n\ +snippet llGetAgentInfo\n\ + llGetAgentInfo(${1:key id})\n\ +snippet llGetAgentLanguage\n\ + llGetAgentLanguage(${1:key agent})\n\ +snippet llGetAgentList\n\ + llGetAgentList(${1:integer scope}, ${2:list options})\n\ +snippet llGetAgentSize\n\ + llGetAgentSize(${1:key agent})\n\ +snippet llGetAlpha\n\ + llGetAlpha(${1:integer face})\n\ +snippet llGetAndResetTime\n\ + llGetAndResetTime()\n\ +snippet llGetAnimation\n\ + llGetAnimation(${1:key id})\n\ +snippet llGetAnimationList\n\ + llGetAnimationList(${1:key agent})\n\ +snippet llGetAnimationOverride\n\ + llGetAnimationOverride(${1:string anim_state})\n\ +snippet llGetAttached\n\ + llGetAttached()\n\ +snippet llGetAttachedList\n\ + llGetAttachedList(${1:key id})\n\ +snippet llGetBoundingBox\n\ + llGetBoundingBox(${1:key object})\n\ +snippet llGetCameraPos\n\ + llGetCameraPos()\n\ +snippet llGetCameraRot\n\ + llGetCameraRot()\n\ +snippet llGetCenterOfMass\n\ + llGetCenterOfMass()\n\ +snippet llGetClosestNavPoint\n\ + llGetClosestNavPoint(${1:vector point}, ${2:list options})\n\ +snippet llGetColor\n\ + llGetColor(${1:integer face})\n\ +snippet llGetCreator\n\ + llGetCreator()\n\ +snippet llGetDate\n\ + llGetDate()\n\ +snippet llGetDisplayName\n\ + llGetDisplayName(${1:key id})\n\ +snippet llGetEnergy\n\ + llGetEnergy()\n\ +snippet llGetEnv\n\ + llGetEnv(${1:string name})\n\ +snippet llGetExperienceDetails\n\ + llGetExperienceDetails(${1:key experience_id})\n\ +snippet llGetExperienceErrorMessage\n\ + llGetExperienceErrorMessage(${1:integer error})\n\ +snippet llGetForce\n\ + llGetForce()\n\ +snippet llGetFreeMemory\n\ + llGetFreeMemory()\n\ +snippet llGetFreeURLs\n\ + llGetFreeURLs()\n\ +snippet llGetGeometricCenter\n\ + llGetGeometricCenter()\n\ +snippet llGetGMTclock\n\ + llGetGMTclock()\n\ +snippet llGetHTTPHeader\n\ + llGetHTTPHeader(${1:key request_id}, ${2:string header})\n\ +snippet llGetInventoryCreator\n\ + llGetInventoryCreator(${1:string item})\n\ +snippet llGetInventoryKey\n\ + llGetInventoryKey(${1:string name})\n\ +snippet llGetInventoryName\n\ + llGetInventoryName(${1:integer type}, ${2:integer number})\n\ +snippet llGetInventoryNumber\n\ + llGetInventoryNumber(${1:integer type})\n\ +snippet llGetInventoryPermMask\n\ + llGetInventoryPermMask(${1:string item}, ${2:integer mask})\n\ +snippet llGetInventoryType\n\ + llGetInventoryType(${1:string name})\n\ +snippet llGetKey\n\ + llGetKey()\n\ +snippet llGetLandOwnerAt\n\ + llGetLandOwnerAt(${1:vector pos})\n\ +snippet llGetLinkKey\n\ + llGetLinkKey(${1:integer link})\n\ +snippet llGetLinkMedia\n\ + llGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\n\ +snippet llGetLinkName\n\ + llGetLinkName(${1:integer link})\n\ +snippet llGetLinkNumber\n\ + llGetLinkNumber()\n\ +snippet llGetLinkNumberOfSides\n\ + llGetLinkNumberOfSides(${1:integer link})\n\ +snippet llGetLinkPrimitiveParams\n\ + llGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\n\ +snippet llGetListEntryType\n\ + llGetListEntryType(${1:list src}, ${2:integer index})\n\ +snippet llGetListLength\n\ + llGetListLength(${1:list src})\n\ +snippet llGetLocalPos\n\ + llGetLocalPos()\n\ +snippet llGetLocalRot\n\ + llGetLocalRot()\n\ +snippet llGetMass\n\ + llGetMass()\n\ +snippet llGetMassMKS\n\ + llGetMassMKS()\n\ +snippet llGetMaxScaleFactor\n\ + llGetMaxScaleFactor()\n\ +snippet llGetMemoryLimit\n\ + llGetMemoryLimit()\n\ +snippet llGetMinScaleFactor\n\ + llGetMinScaleFactor()\n\ +snippet llGetNextEmail\n\ + llGetNextEmail(${1:string address}, ${2:string subject});\n\ + $0\n\ +snippet llGetNotecardLine\n\ + llGetNotecardLine(${1:string name}, ${2:integer line})\n\ +snippet llGetNumberOfNotecardLines\n\ + llGetNumberOfNotecardLines(${1:string name})\n\ +snippet llGetNumberOfPrims\n\ + llGetNumberOfPrims()\n\ +snippet llGetNumberOfSides\n\ + llGetNumberOfSides()\n\ +snippet llGetObjectDesc\n\ + llGetObjectDesc()\n\ +snippet llGetObjectDetails\n\ + llGetObjectDetails(${1:key id}, ${2:list params})\n\ +snippet llGetObjectMass\n\ + llGetObjectMass(${1:key id})\n\ +snippet llGetObjectName\n\ + llGetObjectName()\n\ +snippet llGetObjectPermMask\n\ + llGetObjectPermMask(${1:integer mask})\n\ +snippet llGetObjectPrimCount\n\ + llGetObjectPrimCount(${1:key prim})\n\ +snippet llGetOmega\n\ + llGetOmega()\n\ +snippet llGetOwner\n\ + llGetOwner()\n\ +snippet llGetOwnerKey\n\ + llGetOwnerKey(${1:key id})\n\ +snippet llGetParcelDetails\n\ + llGetParcelDetails(${1:vector pos}, ${2:list params})\n\ +snippet llGetParcelFlags\n\ + llGetParcelFlags(${1:vector pos})\n\ +snippet llGetParcelMaxPrims\n\ + llGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\n\ +snippet llGetParcelMusicURL\n\ + llGetParcelMusicURL()\n\ +snippet llGetParcelPrimCount\n\ + llGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\n\ +snippet llGetParcelPrimOwners\n\ + llGetParcelPrimOwners(${1:vector pos})\n\ +snippet llGetPermissions\n\ + llGetPermissions()\n\ +snippet llGetPermissionsKey\n\ + llGetPermissionsKey()\n\ +snippet llGetPhysicsMaterial\n\ + llGetPhysicsMaterial()\n\ +snippet llGetPos\n\ + llGetPos()\n\ +snippet llGetPrimitiveParams\n\ + llGetPrimitiveParams(${1:list params})\n\ +snippet llGetPrimMediaParams\n\ + llGetPrimMediaParams(${1:integer face}, ${2:list params})\n\ +snippet llGetRegionAgentCount\n\ + llGetRegionAgentCount()\n\ +snippet llGetRegionCorner\n\ + llGetRegionCorner()\n\ +snippet llGetRegionFlags\n\ + llGetRegionFlags()\n\ +snippet llGetRegionFPS\n\ + llGetRegionFPS()\n\ +snippet llGetRegionName\n\ + llGetRegionName()\n\ +snippet llGetRegionTimeDilation\n\ + llGetRegionTimeDilation()\n\ +snippet llGetRootPosition\n\ + llGetRootPosition()\n\ +snippet llGetRootRotation\n\ + llGetRootRotation()\n\ +snippet llGetRot\n\ + llGetRot()\n\ +snippet llGetScale\n\ + llGetScale()\n\ +snippet llGetScriptName\n\ + llGetScriptName()\n\ +snippet llGetScriptState\n\ + llGetScriptState(${1:string script})\n\ +snippet llGetSimStats\n\ + llGetSimStats(${1:integer stat_type})\n\ +snippet llGetSimulatorHostname\n\ + llGetSimulatorHostname()\n\ +snippet llGetSPMaxMemory\n\ + llGetSPMaxMemory()\n\ +snippet llGetStartParameter\n\ + llGetStartParameter()\n\ +snippet llGetStaticPath\n\ + llGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\n\ +snippet llGetStatus\n\ + llGetStatus(${1:integer status})\n\ +snippet llGetSubString\n\ + llGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\n\ +snippet llGetSunDirection\n\ + llGetSunDirection()\n\ +snippet llGetTexture\n\ + llGetTexture(${1:integer face})\n\ +snippet llGetTextureOffset\n\ + llGetTextureOffset(${1:integer face})\n\ +snippet llGetTextureRot\n\ + llGetTextureRot(${1:integer face})\n\ +snippet llGetTextureScale\n\ + llGetTextureScale(${1:integer face})\n\ +snippet llGetTime\n\ + llGetTime()\n\ +snippet llGetTimeOfDay\n\ + llGetTimeOfDay()\n\ +snippet llGetTimestamp\n\ + llGetTimestamp()\n\ +snippet llGetTorque\n\ + llGetTorque()\n\ +snippet llGetUnixTime\n\ + llGetUnixTime()\n\ +snippet llGetUsedMemory\n\ + llGetUsedMemory()\n\ +snippet llGetUsername\n\ + llGetUsername(${1:key id})\n\ +snippet llGetVel\n\ + llGetVel()\n\ +snippet llGetWallclock\n\ + llGetWallclock()\n\ +snippet llGiveInventory\n\ + llGiveInventory(${1:key destination}, ${2:string inventory});\n\ + $0\n\ +snippet llGiveInventoryList\n\ + llGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\n\ + $0\n\ +snippet llGiveMoney\n\ + llGiveMoney(${1:key destination}, ${2:integer amount})\n\ +snippet llGround\n\ + llGround(${1:vector offset})\n\ +snippet llGroundContour\n\ + llGroundContour(${1:vector offset})\n\ +snippet llGroundNormal\n\ + llGroundNormal(${1:vector offset})\n\ +snippet llGroundRepel\n\ + llGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\n\ + $0\n\ +snippet llGroundSlope\n\ + llGroundSlope(${1:vector offset})\n\ +snippet llHTTPRequest\n\ + llHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\n\ +snippet llHTTPResponse\n\ + llHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\n\ + $0\n\ +snippet llInsertString\n\ + llInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\n\ +snippet llInstantMessage\n\ + llInstantMessage(${1:key user}, ${2:string message});\n\ + $0\n\ +snippet llIntegerToBase64\n\ + llIntegerToBase64(${1:integer number})\n\ +snippet llJson2List\n\ + llJson2List(${1:string json})\n\ +snippet llJsonGetValue\n\ + llJsonGetValue(${1:string json}, ${2:list specifiers})\n\ +snippet llJsonSetValue\n\ + llJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\n\ +snippet llJsonValueType\n\ + llJsonValueType(${1:string json}, ${2:list specifiers})\n\ +snippet llKey2Name\n\ + llKey2Name(${1:key id})\n\ +snippet llKeyCountKeyValue\n\ + llKeyCountKeyValue()\n\ +snippet llKeysKeyValue\n\ + llKeysKeyValue(${1:integer first}, ${2:integer count})\n\ +snippet llLinkParticleSystem\n\ + llLinkParticleSystem(${1:integer link}, ${2:list rules});\n\ + $0\n\ +snippet llLinkSitTarget\n\ + llLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\n\ + $0\n\ +snippet llList2CSV\n\ + llList2CSV(${1:list src})\n\ +snippet llList2Float\n\ + llList2Float(${1:list src}, ${2:integer index})\n\ +snippet llList2Integer\n\ + llList2Integer(${1:list src}, ${2:integer index})\n\ +snippet llList2Json\n\ + llList2Json(${1:string type}, ${2:list values})\n\ +snippet llList2Key\n\ + llList2Key(${1:list src}, ${2:integer index})\n\ +snippet llList2List\n\ + llList2List(${1:list src}, ${2:integer start}, ${3:integer end})\n\ +snippet llList2ListStrided\n\ + llList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\n\ +snippet llList2Rot\n\ + llList2Rot(${1:list src}, ${2:integer index})\n\ +snippet llList2String\n\ + llList2String(${1:list src}, ${2:integer index})\n\ +snippet llList2Vector\n\ + llList2Vector(${1:list src}, ${2:integer index})\n\ +snippet llListen\n\ + llListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\n\ +snippet llListenControl\n\ + llListenControl(${1:integer handle}, ${2:integer active});\n\ + $0\n\ +snippet llListenRemove\n\ + llListenRemove(${1:integer handle});\n\ + $0\n\ +snippet llListFindList\n\ + llListFindList(${1:list src}, ${2:list test})\n\ +snippet llListInsertList\n\ + llListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\n\ +snippet llListRandomize\n\ + llListRandomize(${1:list src}, ${2:integer stride})\n\ +snippet llListReplaceList\n\ + llListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\n\ +snippet llListSort\n\ + llListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\n\ +snippet llListStatistics\n\ + llListStatistics(${1:integer operation}, ${2:list src})\n\ +snippet llLoadURL\n\ + llLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\n\ + $0\n\ +snippet llLog\n\ + llLog(${1:float val})\n\ +snippet llLog10\n\ + llLog10(${1:float val})\n\ +snippet llLookAt\n\ + llLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\n\ + $0\n\ +snippet llLoopSound\n\ + llLoopSound(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llLoopSoundMaster\n\ + llLoopSoundMaster(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llLoopSoundSlave\n\ + llLoopSoundSlave(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llManageEstateAccess\n\ + llManageEstateAccess(${1:integer action}, ${2:key agent})\n\ +snippet llMapDestination\n\ + llMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\n\ + $0\n\ +snippet llMD5String\n\ + llMD5String(${1:string src}, ${2:integer nonce})\n\ +snippet llMessageLinked\n\ + llMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\n\ + $0\n\ +snippet llMinEventDelay\n\ + llMinEventDelay(${1:float delay});\n\ + $0\n\ +snippet llModifyLand\n\ + llModifyLand(${1:integer action}, ${2:integer brush});\n\ + $0\n\ +snippet llModPow\n\ + llModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\n\ +snippet llMoveToTarget\n\ + llMoveToTarget(${1:vector target}, ${2:float tau});\n\ + $0\n\ +snippet llNavigateTo\n\ + llNavigateTo(${1:vector pos}, ${2:list options});\n\ + $0\n\ +snippet llOffsetTexture\n\ + llOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\n\ + $0\n\ +snippet llOpenRemoteDataChannel\n\ + llOpenRemoteDataChannel();\n\ + $0\n\ +snippet llOverMyLand\n\ + llOverMyLand(${1:key id})\n\ +snippet llOwnerSay\n\ + llOwnerSay(${1:string msg});\n\ + $0\n\ +snippet llParcelMediaCommandList\n\ + llParcelMediaCommandList(${1:list commandList});\n\ + $0\n\ +snippet llParcelMediaQuery\n\ + llParcelMediaQuery(${1:list query})\n\ +snippet llParseString2List\n\ + llParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\n\ +snippet llParseStringKeepNulls\n\ + llParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\n\ +snippet llParticleSystem\n\ + llParticleSystem(${1:list rules});\n\ + $0\n\ +snippet llPassCollisions\n\ + llPassCollisions(${1:integer pass});\n\ + $0\n\ +snippet llPassTouches\n\ + llPassTouches(${1:integer pass});\n\ + $0\n\ +snippet llPatrolPoints\n\ + llPatrolPoints(${1:list patrolPoints}, ${2:list options});\n\ + $0\n\ +snippet llPlaySound\n\ + llPlaySound(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llPlaySoundSlave\n\ + llPlaySoundSlave(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llPow\n\ + llPow(${1:float base}, ${2:float exponent})\n\ +snippet llPreloadSound\n\ + llPreloadSound(${1:string sound});\n\ + $0\n\ +snippet llPursue\n\ + llPursue(${1:key target}, ${2:list options});\n\ + $0\n\ +snippet llPushObject\n\ + llPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\n\ + $0\n\ +snippet llReadKeyValue\n\ + llReadKeyValue(${1:string k})\n\ +snippet llRegionSay\n\ + llRegionSay(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llRegionSayTo\n\ + llRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\n\ + $0\n\ +snippet llReleaseControls\n\ + llReleaseControls();\n\ + $0\n\ +snippet llReleaseURL\n\ + llReleaseURL(${1:string url});\n\ + $0\n\ +snippet llRemoteDataReply\n\ + llRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\n\ + $0\n\ +snippet llRemoteLoadScriptPin\n\ + llRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\n\ + $0\n\ +snippet llRemoveFromLandBanList\n\ + llRemoveFromLandBanList(${1:key agent});\n\ + $0\n\ +snippet llRemoveFromLandPassList\n\ + llRemoveFromLandPassList(${1:key agent});\n\ + $0\n\ +snippet llRemoveInventory\n\ + llRemoveInventory(${1:string item});\n\ + $0\n\ +snippet llRemoveVehicleFlags\n\ + llRemoveVehicleFlags(${1:integer flags});\n\ + $0\n\ +snippet llRequestAgentData\n\ + llRequestAgentData(${1:key id}, ${2:integer data})\n\ +snippet llRequestDisplayName\n\ + llRequestDisplayName(${1:key id})\n\ +snippet llRequestExperiencePermissions\n\ + llRequestExperiencePermissions(${1:key agent}, ${2:string name})\n\ +snippet llRequestInventoryData\n\ + llRequestInventoryData(${1:string name})\n\ +snippet llRequestPermissions\n\ + llRequestPermissions(${1:key agent}, ${2:integer permissions})\n\ +snippet llRequestSecureURL\n\ + llRequestSecureURL()\n\ +snippet llRequestSimulatorData\n\ + llRequestSimulatorData(${1:string region}, ${2:integer data})\n\ +snippet llRequestURL\n\ + llRequestURL()\n\ +snippet llRequestUsername\n\ + llRequestUsername(${1:key id})\n\ +snippet llResetAnimationOverride\n\ + llResetAnimationOverride(${1:string anim_state});\n\ + $0\n\ +snippet llResetLandBanList\n\ + llResetLandBanList();\n\ + $0\n\ +snippet llResetLandPassList\n\ + llResetLandPassList();\n\ + $0\n\ +snippet llResetOtherScript\n\ + llResetOtherScript(${1:string name});\n\ + $0\n\ +snippet llResetScript\n\ + llResetScript();\n\ + $0\n\ +snippet llResetTime\n\ + llResetTime();\n\ + $0\n\ +snippet llReturnObjectsByID\n\ + llReturnObjectsByID(${1:list objects})\n\ +snippet llReturnObjectsByOwner\n\ + llReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\n\ +snippet llRezAtRoot\n\ + llRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\n\ + $0\n\ +snippet llRezObject\n\ + llRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\n\ + $0\n\ +snippet llRot2Angle\n\ + llRot2Angle(${1:rotation rot})\n\ +snippet llRot2Axis\n\ + llRot2Axis(${1:rotation rot})\n\ +snippet llRot2Euler\n\ + llRot2Euler(${1:rotation quat})\n\ +snippet llRot2Fwd\n\ + llRot2Fwd(${1:rotation q})\n\ +snippet llRot2Left\n\ + llRot2Left(${1:rotation q})\n\ +snippet llRot2Up\n\ + llRot2Up(${1:rotation q})\n\ +snippet llRotateTexture\n\ + llRotateTexture(${1:float angle}, ${2:integer face});\n\ + $0\n\ +snippet llRotBetween\n\ + llRotBetween(${1:vector start}, ${2:vector end})\n\ +snippet llRotLookAt\n\ + llRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\n\ + $0\n\ +snippet llRotTarget\n\ + llRotTarget(${1:rotation rot}, ${2:float error})\n\ +snippet llRotTargetRemove\n\ + llRotTargetRemove(${1:integer handle});\n\ + $0\n\ +snippet llRound\n\ + llRound(${1:float val})\n\ +snippet llSameGroup\n\ + llSameGroup(${1:key group})\n\ +snippet llSay\n\ + llSay(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llScaleByFactor\n\ + llScaleByFactor(${1:float scaling_factor})\n\ +snippet llScaleTexture\n\ + llScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\n\ + $0\n\ +snippet llScriptDanger\n\ + llScriptDanger(${1:vector pos})\n\ +snippet llScriptProfiler\n\ + llScriptProfiler(${1:integer flags});\n\ + $0\n\ +snippet llSendRemoteData\n\ + llSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\n\ +snippet llSensor\n\ + llSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\n\ + $0\n\ +snippet llSensorRepeat\n\ + llSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\n\ + $0\n\ +snippet llSetAlpha\n\ + llSetAlpha(${1:float alpha}, ${2:integer face});\n\ + $0\n\ +snippet llSetAngularVelocity\n\ + llSetAngularVelocity(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llSetAnimationOverride\n\ + llSetAnimationOverride(${1:string anim_state}, ${2:string anim})\n\ +snippet llSetBuoyancy\n\ + llSetBuoyancy(${1:float buoyancy});\n\ + $0\n\ +snippet llSetCameraAtOffset\n\ + llSetCameraAtOffset(${1:vector offset});\n\ + $0\n\ +snippet llSetCameraEyeOffset\n\ + llSetCameraEyeOffset(${1:vector offset});\n\ + $0\n\ +snippet llSetCameraParams\n\ + llSetCameraParams(${1:list rules});\n\ + $0\n\ +snippet llSetClickAction\n\ + llSetClickAction(${1:integer action});\n\ + $0\n\ +snippet llSetColor\n\ + llSetColor(${1:vector color}, ${2:integer face});\n\ + $0\n\ +snippet llSetContentType\n\ + llSetContentType(${1:key request_id}, ${2:integer content_type});\n\ + $0\n\ +snippet llSetDamage\n\ + llSetDamage(${1:float damage});\n\ + $0\n\ +snippet llSetForce\n\ + llSetForce(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llSetForceAndTorque\n\ + llSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\n\ + $0\n\ +snippet llSetHoverHeight\n\ + llSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\n\ + $0\n\ +snippet llSetKeyframedMotion\n\ + llSetKeyframedMotion(${1:list keyframes}, ${2:list options});\n\ + $0\n\ +snippet llSetLinkAlpha\n\ + llSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\n\ + $0\n\ +snippet llSetLinkCamera\n\ + llSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\n\ + $0\n\ +snippet llSetLinkColor\n\ + llSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\n\ + $0\n\ +snippet llSetLinkMedia\n\ + llSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\n\ + $0\n\ +snippet llSetLinkPrimitiveParams\n\ + llSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\n\ + $0\n\ +snippet llSetLinkPrimitiveParamsFast\n\ + llSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\n\ + $0\n\ +snippet llSetLinkTexture\n\ + llSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\n\ + $0\n\ +snippet llSetLinkTextureAnim\n\ + llSetLinkTextureAnim(${1:integer link}, ${2:integer mode}, ${3:integer face}, ${4:integer sizex}, ${5:integer sizey}, ${6:float start}, ${7:float length}, ${8:float rate});\n\ + $0\n\ +snippet llSetLocalRot\n\ + llSetLocalRot(${1:rotation rot});\n\ + $0\n\ +snippet llSetMemoryLimit\n\ + llSetMemoryLimit(${1:integer limit})\n\ +snippet llSetObjectDesc\n\ + llSetObjectDesc(${1:string description});\n\ + $0\n\ +snippet llSetObjectName\n\ + llSetObjectName(${1:string name});\n\ + $0\n\ +snippet llSetParcelMusicURL\n\ + llSetParcelMusicURL(${1:string url});\n\ + $0\n\ +snippet llSetPayPrice\n\ + llSetPayPrice(${1:integer price}, [${2:integer price_button_a}, ${3:integer price_button_b}, ${4:integer price_button_c}, ${5:integer price_button_d}]);\n\ + $0\n\ +snippet llSetPhysicsMaterial\n\ + llSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\n\ + $0\n\ +snippet llSetPos\n\ + llSetPos(${1:vector pos});\n\ + $0\n\ +snippet llSetPrimitiveParams\n\ + llSetPrimitiveParams(${1:list rules});\n\ + $0\n\ +snippet llSetPrimMediaParams\n\ + llSetPrimMediaParams(${1:integer face}, ${2:list params});\n\ + $0\n\ +snippet llSetRegionPos\n\ + llSetRegionPos(${1:vector position})\n\ +snippet llSetRemoteScriptAccessPin\n\ + llSetRemoteScriptAccessPin(${1:integer pin});\n\ + $0\n\ +snippet llSetRot\n\ + llSetRot(${1:rotation rot});\n\ + $0\n\ +snippet llSetScale\n\ + llSetScale(${1:vector size});\n\ + $0\n\ +snippet llSetScriptState\n\ + llSetScriptState(${1:string name}, ${2:integer run});\n\ + $0\n\ +snippet llSetSitText\n\ + llSetSitText(${1:string text});\n\ + $0\n\ +snippet llSetSoundQueueing\n\ + llSetSoundQueueing(${1:integer queue});\n\ + $0\n\ +snippet llSetSoundRadius\n\ + llSetSoundRadius(${1:float radius});\n\ + $0\n\ +snippet llSetStatus\n\ + llSetStatus(${1:integer status}, ${2:integer value});\n\ + $0\n\ +snippet llSetText\n\ + llSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\n\ + $0\n\ +snippet llSetTexture\n\ + llSetTexture(${1:string texture}, ${2:integer face});\n\ + $0\n\ +snippet llSetTextureAnim\n\ + llSetTextureAnim(${1:integer mode}, ${2:integer face}, ${3:integer sizex}, ${4:integer sizey}, ${5:float start}, ${6:float length}, ${7:float rate});\n\ + $0\n\ +snippet llSetTimerEvent\n\ + llSetTimerEvent(${1:float sec});\n\ + $0\n\ +snippet llSetTorque\n\ + llSetTorque(${1:vector torque}, ${2:integer local});\n\ + $0\n\ +snippet llSetTouchText\n\ + llSetTouchText(${1:string text});\n\ + $0\n\ +snippet llSetVehicleFlags\n\ + llSetVehicleFlags(${1:integer flags});\n\ + $0\n\ +snippet llSetVehicleFloatParam\n\ + llSetVehicleFloatParam(${1:integer param}, ${2:float value});\n\ + $0\n\ +snippet llSetVehicleRotationParam\n\ + llSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\n\ + $0\n\ +snippet llSetVehicleType\n\ + llSetVehicleType(${1:integer type});\n\ + $0\n\ +snippet llSetVehicleVectorParam\n\ + llSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\n\ + $0\n\ +snippet llSetVelocity\n\ + llSetVelocity(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llSHA1String\n\ + llSHA1String(${1:string src})\n\ +snippet llShout\n\ + llShout(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llSin\n\ + llSin(${1:float theta})\n\ +snippet llSitTarget\n\ + llSitTarget(${1:vector offset}, ${2:rotation rot});\n\ + $0\n\ +snippet llSleep\n\ + llSleep(${1:float sec});\n\ + $0\n\ +snippet llSqrt\n\ + llSqrt(${1:float val})\n\ +snippet llStartAnimation\n\ + llStartAnimation(${1:string anim});\n\ + $0\n\ +snippet llStopAnimation\n\ + llStopAnimation(${1:string anim});\n\ + $0\n\ +snippet llStopHover\n\ + llStopHover();\n\ + $0\n\ +snippet llStopLookAt\n\ + llStopLookAt();\n\ + $0\n\ +snippet llStopMoveToTarget\n\ + llStopMoveToTarget();\n\ + $0\n\ +snippet llStopSound\n\ + llStopSound();\n\ + $0\n\ +snippet llStringLength\n\ + llStringLength(${1:string str})\n\ +snippet llStringToBase64\n\ + llStringToBase64(${1:string str})\n\ +snippet llStringTrim\n\ + llStringTrim(${1:string src}, ${2:integer type})\n\ +snippet llSubStringIndex\n\ + llSubStringIndex(${1:string source}, ${2:string pattern})\n\ +snippet llTakeControls\n\ + llTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\n\ + $0\n\ +snippet llTan\n\ + llTan(${1:float theta})\n\ +snippet llTarget\n\ + llTarget(${1:vector position}, ${2:float range})\n\ +snippet llTargetOmega\n\ + llTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\n\ + $0\n\ +snippet llTargetRemove\n\ + llTargetRemove(${1:integer handle});\n\ + $0\n\ +snippet llTeleportAgent\n\ + llTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\n\ + $0\n\ +snippet llTeleportAgentGlobalCoords\n\ + llTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\n\ + $0\n\ +snippet llTeleportAgentHome\n\ + llTeleportAgentHome(${1:key agent});\n\ + $0\n\ +snippet llTextBox\n\ + llTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\n\ + $0\n\ +snippet llToLower\n\ + llToLower(${1:string src})\n\ +snippet llToUpper\n\ + llToUpper(${1:string src})\n\ +snippet llTransferLindenDollars\n\ + llTransferLindenDollars(${1:key destination}, ${2:integer amount})\n\ +snippet llTriggerSound\n\ + llTriggerSound(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llTriggerSoundLimited\n\ + llTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\n\ + $0\n\ +snippet llUnescapeURL\n\ + llUnescapeURL(${1:string url})\n\ +snippet llUnSit\n\ + llUnSit(${1:key id});\n\ + $0\n\ +snippet llUpdateCharacter\n\ + llUpdateCharacter(${1:list options})\n\ +snippet llUpdateKeyValue\n\ + llUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\n\ +snippet llVecDist\n\ + llVecDist(${1:vector vec_a}, ${2:vector vec_b})\n\ +snippet llVecMag\n\ + llVecMag(${1:vector vec})\n\ +snippet llVecNorm\n\ + llVecNorm(${1:vector vec})\n\ +snippet llVolumeDetect\n\ + llVolumeDetect(${1:integer detect});\n\ + $0\n\ +snippet llWanderWithin\n\ + llWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\n\ + $0\n\ +snippet llWater\n\ + llWater(${1:vector offset});\n\ + $0\n\ +snippet llWhisper\n\ + llWhisper(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llWind\n\ + llWind(${1:vector offset});\n\ + $0\n\ +snippet llXorBase64\n\ + llXorBase64(${1:string str1}, ${2:string str2})\n\ +snippet money\n\ + money(${1:key id}, ${2:integer amount})\n\ + {\n\ + $0\n\ + }\n\ +snippet object_rez\n\ + object_rez(${1:key id})\n\ + {\n\ + $0\n\ + }\n\ +snippet on_rez\n\ + on_rez(${1:integer start_param})\n\ + {\n\ + $0\n\ + }\n\ +snippet path_update\n\ + path_update(${1:integer type}, ${2:list reserved})\n\ + {\n\ + $0\n\ + }\n\ +snippet remote_data\n\ + remote_data(${1:integer event_type}, ${2:key channel}, ${3:key message_id}, ${4:string sender}, ${5:integer idata}, ${6:string sdata})\n\ + {\n\ + $0\n\ + }\n\ +snippet run_time_permissions\n\ + run_time_permissions(${1:integer perm})\n\ + {\n\ + $0\n\ + }\n\ +snippet sensor\n\ + sensor(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet state\n\ + state ${1:name}\n\ +snippet touch\n\ + touch(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet touch_end\n\ + touch_end(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet touch_start\n\ + touch_start(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet transaction_result\n\ + transaction_result(${1:key id}, ${2:integer success}, ${3:string data})\n\ + {\n\ + $0\n\ + }\n\ +snippet while\n\ + while (${1:condition})\n\ + {\n\ + $0\n\ + }\n\ +"; +exports.scope = "lsl"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lua.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lua.js new file mode 100644 index 0000000..a4678bb --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lua.js @@ -0,0 +1,28 @@ +define("ace/snippets/lua",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet #!\n\ + #!/usr/bin/env lua\n\ + $1\n\ +snippet local\n\ + local ${1:x} = ${2:1}\n\ +snippet fun\n\ + function ${1:fname}(${2:...})\n\ + ${3:-- body}\n\ + end\n\ +snippet for\n\ + for ${1:i}=${2:1},${3:10} do\n\ + ${4:print(i)}\n\ + end\n\ +snippet forp\n\ + for ${1:i},${2:v} in pairs(${3:table_name}) do\n\ + ${4:-- body}\n\ + end\n\ +snippet fori\n\ + for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\ + ${4:-- body}\n\ + end\n\ +"; +exports.scope = "lua"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/luapage.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/luapage.js new file mode 100644 index 0000000..02134aa --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/luapage.js @@ -0,0 +1,7 @@ +define("ace/snippets/luapage",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "luapage"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lucene.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lucene.js new file mode 100644 index 0000000..47151fc --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/lucene.js @@ -0,0 +1,7 @@ +define("ace/snippets/lucene",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "lucene"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/makefile.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/makefile.js new file mode 100644 index 0000000..a1f4099 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/makefile.js @@ -0,0 +1,11 @@ +define("ace/snippets/makefile",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet ifeq\n\ + ifeq (${1:cond0},${2:cond1})\n\ + ${3:code}\n\ + endif\n\ +"; +exports.scope = "makefile"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/markdown.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/markdown.js new file mode 100644 index 0000000..0eceaca --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/markdown.js @@ -0,0 +1,95 @@ +define("ace/snippets/markdown",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Markdown\n\ +\n\ +# Includes octopress (http://octopress.org/) snippets\n\ +\n\ +snippet [\n\ + [${1:text}](http://${2:address} \"${3:title}\")\n\ +snippet [*\n\ + [${1:link}](${2:`@*`} \"${3:title}\")${4}\n\ +\n\ +snippet [:\n\ + [${1:id}]: http://${2:url} \"${3:title}\"\n\ +snippet [:*\n\ + [${1:id}]: ${2:`@*`} \"${3:title}\"\n\ +\n\ +snippet ![\n\ + ![${1:alttext}](${2:/images/image.jpg} \"${3:title}\")\n\ +snippet ![*\n\ + ![${1:alt}](${2:`@*`} \"${3:title}\")${4}\n\ +\n\ +snippet ![:\n\ + ![${1:id}]: ${2:url} \"${3:title}\"\n\ +snippet ![:*\n\ + ![${1:id}]: ${2:`@*`} \"${3:title}\"\n\ +\n\ +snippet ===\n\ +regex /^/=+/=*//\n\ + ${PREV_LINE/./=/g}\n\ + \n\ + ${0}\n\ +snippet ---\n\ +regex /^/-+/-*//\n\ + ${PREV_LINE/./-/g}\n\ + \n\ + ${0}\n\ +snippet blockquote\n\ + {% blockquote %}\n\ + ${1:quote}\n\ + {% endblockquote %}\n\ +\n\ +snippet blockquote-author\n\ + {% blockquote ${1:author}, ${2:title} %}\n\ + ${3:quote}\n\ + {% endblockquote %}\n\ +\n\ +snippet blockquote-link\n\ + {% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n\ + ${4:quote}\n\ + {% endblockquote %}\n\ +\n\ +snippet bt-codeblock-short\n\ + ```\n\ + ${1:code_snippet}\n\ + ```\n\ +\n\ +snippet bt-codeblock-full\n\ + ``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n\ + ${5:code_snippet}\n\ + ```\n\ +\n\ +snippet codeblock-short\n\ + {% codeblock %}\n\ + ${1:code_snippet}\n\ + {% endcodeblock %}\n\ +\n\ +snippet codeblock-full\n\ + {% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n\ + ${5:code_snippet}\n\ + {% endcodeblock %}\n\ +\n\ +snippet gist-full\n\ + {% gist ${1:gist_id} ${2:filename} %}\n\ +\n\ +snippet gist-short\n\ + {% gist ${1:gist_id} %}\n\ +\n\ +snippet img\n\ + {% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\ +\n\ +snippet youtube\n\ + {% youtube ${1:video_id} %}\n\ +\n\ +# The quote should appear only once in the text. It is inherently part of it.\n\ +# See http://octopress.org/docs/plugins/pullquote/ for more info.\n\ +\n\ +snippet pullquote\n\ + {% pullquote %}\n\ + ${1:text} {\" ${2:quote} \"} ${3:text}\n\ + {% endpullquote %}\n\ +"; +exports.scope = "markdown"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mask.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mask.js new file mode 100644 index 0000000..c03d2a0 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mask.js @@ -0,0 +1,7 @@ +define("ace/snippets/mask",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mask"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/matlab.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/matlab.js new file mode 100644 index 0000000..15b63a8 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/matlab.js @@ -0,0 +1,7 @@ +define("ace/snippets/matlab",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "matlab"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/maze.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/maze.js new file mode 100644 index 0000000..019d1de --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/maze.js @@ -0,0 +1,16 @@ +define("ace/snippets/maze",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet >\n\ +description assignment\n\ +scope maze\n\ + -> ${1}= ${2}\n\ +\n\ +snippet >\n\ +description if\n\ +scope maze\n\ + -> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n\ +"; +exports.scope = "maze"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mel.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mel.js new file mode 100644 index 0000000..cda7165 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mel.js @@ -0,0 +1,7 @@ +define("ace/snippets/mel",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mel"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mips_assembler.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mips_assembler.js new file mode 100644 index 0000000..9ced920 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mips_assembler.js @@ -0,0 +1,7 @@ +define("ace/snippets/mips_assembler",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mips_assembler"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mipsassembler.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mipsassembler.js new file mode 100644 index 0000000..7c06b69 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mipsassembler.js @@ -0,0 +1,7 @@ +define("ace/snippets/mipsassembler",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mushcode.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mushcode.js new file mode 100644 index 0000000..2efb023 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mushcode.js @@ -0,0 +1,7 @@ +define("ace/snippets/mushcode",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mushcode"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mysql.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mysql.js new file mode 100644 index 0000000..5c810d0 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/mysql.js @@ -0,0 +1,7 @@ +define("ace/snippets/mysql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mysql"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/nix.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/nix.js new file mode 100644 index 0000000..ff78960 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/nix.js @@ -0,0 +1,7 @@ +define("ace/snippets/nix",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "nix"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/nsis.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/nsis.js new file mode 100644 index 0000000..6ee73f0 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/nsis.js @@ -0,0 +1,7 @@ +define("ace/snippets/nsis",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/objectivec.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/objectivec.js new file mode 100644 index 0000000..7270a4f --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/objectivec.js @@ -0,0 +1,7 @@ +define("ace/snippets/objectivec",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "objectivec"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ocaml.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ocaml.js new file mode 100644 index 0000000..bf2fba9 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ocaml.js @@ -0,0 +1,7 @@ +define("ace/snippets/ocaml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "ocaml"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pascal.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pascal.js new file mode 100644 index 0000000..c585501 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pascal.js @@ -0,0 +1,7 @@ +define("ace/snippets/pascal",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "pascal"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/perl.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/perl.js new file mode 100644 index 0000000..e5da0bc --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/perl.js @@ -0,0 +1,354 @@ +define("ace/snippets/perl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# #!/usr/bin/perl\n\ +snippet #!\n\ + #!/usr/bin/env perl\n\ +\n\ +# Hash Pointer\n\ +snippet .\n\ + =>\n\ +# Function\n\ +snippet sub\n\ + sub ${1:function_name} {\n\ + ${2:#body ...}\n\ + }\n\ +# Conditional\n\ +snippet if\n\ + if (${1}) {\n\ + ${2:# body...}\n\ + }\n\ +# Conditional if..else\n\ +snippet ife\n\ + if (${1}) {\n\ + ${2:# body...}\n\ + }\n\ + else {\n\ + ${3:# else...}\n\ + }\n\ +# Conditional if..elsif..else\n\ +snippet ifee\n\ + if (${1}) {\n\ + ${2:# body...}\n\ + }\n\ + elsif (${3}) {\n\ + ${4:# elsif...}\n\ + }\n\ + else {\n\ + ${5:# else...}\n\ + }\n\ +# Conditional One-line\n\ +snippet xif\n\ + ${1:expression} if ${2:condition};${3}\n\ +# Unless conditional\n\ +snippet unless\n\ + unless (${1}) {\n\ + ${2:# body...}\n\ + }\n\ +# Unless conditional One-line\n\ +snippet xunless\n\ + ${1:expression} unless ${2:condition};${3}\n\ +# Try/Except\n\ +snippet eval\n\ + local $@;\n\ + eval {\n\ + ${1:# do something risky...}\n\ + };\n\ + if (my $e = $@) {\n\ + ${2:# handle failure...}\n\ + }\n\ +# While Loop\n\ +snippet wh\n\ + while (${1}) {\n\ + ${2:# body...}\n\ + }\n\ +# While Loop One-line\n\ +snippet xwh\n\ + ${1:expression} while ${2:condition};${3}\n\ +# C-style For Loop\n\ +snippet cfor\n\ + for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\ + ${4:# body...}\n\ + }\n\ +# For loop one-line\n\ +snippet xfor\n\ + ${1:expression} for @${2:array};${3}\n\ +# Foreach Loop\n\ +snippet for\n\ + foreach my $${1:x} (@${2:array}) {\n\ + ${3:# body...}\n\ + }\n\ +# Foreach Loop One-line\n\ +snippet fore\n\ + ${1:expression} foreach @${2:array};${3}\n\ +# Package\n\ +snippet package\n\ + package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`};\n\ +\n\ + ${2}\n\ +\n\ + 1;\n\ +\n\ + __END__\n\ +# Package syntax perl >= 5.14\n\ +snippet packagev514\n\ + package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`} ${2:0.99};\n\ +\n\ + ${3}\n\ +\n\ + 1;\n\ +\n\ + __END__\n\ +#moose\n\ +snippet moose\n\ + use Moose;\n\ + use namespace::autoclean;\n\ + ${1:#}BEGIN {extends '${2:ParentClass}'};\n\ +\n\ + ${3}\n\ +# parent\n\ +snippet parent\n\ + use parent qw(${1:Parent Class});\n\ +# Read File\n\ +snippet slurp\n\ + my $${1:var} = do { local $/; open my $file, '<', \"${2:file}\"; <$file> };\n\ + ${3}\n\ +# strict warnings\n\ +snippet strwar\n\ + use strict;\n\ + use warnings;\n\ +# older versioning with perlcritic bypass\n\ +snippet vers\n\ + ## no critic\n\ + our $VERSION = '${1:version}';\n\ + eval $VERSION;\n\ + ## use critic\n\ +# new 'switch' like feature\n\ +snippet switch\n\ + use feature 'switch';\n\ +\n\ +# Anonymous subroutine\n\ +snippet asub\n\ + sub {\n\ + ${1:# body }\n\ + }\n\ +\n\ +\n\ +\n\ +# Begin block\n\ +snippet begin\n\ + BEGIN {\n\ + ${1:# begin body}\n\ + }\n\ +\n\ +# call package function with some parameter\n\ +snippet pkgmv\n\ + __PACKAGE__->${1:package_method}(${2:var})\n\ +\n\ +# call package function without a parameter\n\ +snippet pkgm\n\ + __PACKAGE__->${1:package_method}()\n\ +\n\ +# call package \"get_\" function without a parameter\n\ +snippet pkget\n\ + __PACKAGE__->get_${1:package_method}()\n\ +\n\ +# call package function with a parameter\n\ +snippet pkgetv\n\ + __PACKAGE__->get_${1:package_method}(${2:var})\n\ +\n\ +# complex regex\n\ +snippet qrx\n\ + qr/\n\ + ${1:regex}\n\ + /xms\n\ +\n\ +#simpler regex\n\ +snippet qr/\n\ + qr/${1:regex}/x\n\ +\n\ +#given\n\ +snippet given\n\ + given ($${1:var}) {\n\ + ${2:# cases}\n\ + ${3:# default}\n\ + }\n\ +\n\ +# switch-like case\n\ +snippet when\n\ + when (${1:case}) {\n\ + ${2:# body}\n\ + }\n\ +\n\ +# hash slice\n\ +snippet hslice\n\ + @{ ${1:hash} }{ ${2:array} }\n\ +\n\ +\n\ +# map\n\ +snippet map\n\ + map { ${2: body } } ${1: @array } ;\n\ +\n\ +\n\ +\n\ +# Pod stub\n\ +snippet ppod\n\ + =head1 NAME\n\ +\n\ + ${1:ClassName} - ${2:ShortDesc}\n\ +\n\ + =head1 SYNOPSIS\n\ +\n\ + use $1;\n\ +\n\ + ${3:# synopsis...}\n\ +\n\ + =head1 DESCRIPTION\n\ +\n\ + ${4:# longer description...}\n\ +\n\ +\n\ + =head1 INTERFACE\n\ +\n\ +\n\ + =head1 DEPENDENCIES\n\ +\n\ +\n\ + =head1 SEE ALSO\n\ +\n\ +\n\ +# Heading for a subroutine stub\n\ +snippet psub\n\ + =head2 ${1:MethodName}\n\ +\n\ + ${2:Summary....}\n\ +\n\ +# Heading for inline subroutine pod\n\ +snippet psubi\n\ + =head2 ${1:MethodName}\n\ +\n\ + ${2:Summary...}\n\ +\n\ +\n\ + =cut\n\ +# inline documented subroutine\n\ +snippet subpod\n\ + =head2 $1\n\ +\n\ + Summary of $1\n\ +\n\ + =cut\n\ +\n\ + sub ${1:subroutine_name} {\n\ + ${2:# body...}\n\ + }\n\ +# Subroutine signature\n\ +snippet parg\n\ + =over 2\n\ +\n\ + =item\n\ + Arguments\n\ +\n\ +\n\ + =over 3\n\ +\n\ + =item\n\ + C<${1:DataStructure}>\n\ +\n\ + ${2:Sample}\n\ +\n\ +\n\ + =back\n\ +\n\ +\n\ + =item\n\ + Return\n\ +\n\ + =over 3\n\ +\n\ +\n\ + =item\n\ + C<${3:...return data}>\n\ +\n\ +\n\ + =back\n\ +\n\ +\n\ + =back\n\ +\n\ +\n\ +\n\ +# Moose has\n\ +snippet has\n\ + has ${1:attribute} => (\n\ + is => '${2:ro|rw}',\n\ + isa => '${3:Str|Int|HashRef|ArrayRef|etc}',\n\ + default => sub {\n\ + ${4:defaultvalue}\n\ + },\n\ + ${5:# other attributes}\n\ + );\n\ +\n\ +\n\ +# override\n\ +snippet override\n\ + override ${1:attribute} => sub {\n\ + ${2:# my $self = shift;};\n\ + ${3:# my ($self, $args) = @_;};\n\ + };\n\ +\n\ +\n\ +# use test classes\n\ +snippet tuse\n\ + use Test::More;\n\ + use Test::Deep; # (); # uncomment to stop prototype errors\n\ + use Test::Exception;\n\ +\n\ +# local test lib\n\ +snippet tlib\n\ + use lib qw{ ./t/lib };\n\ +\n\ +#test methods\n\ +snippet tmeths\n\ + $ENV{TEST_METHOD} = '${1:regex}';\n\ +\n\ +# runtestclass\n\ +snippet trunner\n\ + use ${1:test_class};\n\ + $1->runtests();\n\ +\n\ +# Test::Class-style test\n\ +snippet tsub\n\ + sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\n\ + my $self = shift;\n\ + ${4:# body}\n\ +\n\ + }\n\ +\n\ +# Test::Routine-style test\n\ +snippet trsub\n\ + test ${1:test_name} => { description => '${2:Description of test.}'} => sub {\n\ + my ($self) = @_;\n\ + ${3:# test code}\n\ + };\n\ +\n\ +#prep test method\n\ +snippet tprep\n\ + sub prep${1:number}_${2:test_case} :Test(startup) {\n\ + my $self = shift;\n\ + ${4:# body}\n\ + }\n\ +\n\ +# cause failures to print stack trace\n\ +snippet debug_trace\n\ + use Carp; # 'verbose';\n\ + # cloak \"die\"\n\ + # warn \"warning\"\n\ + $SIG{'__DIE__'} = sub {\n\ + require Carp; Carp::confess\n\ + };\n\ +\n\ +"; +exports.scope = "perl"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pgsql.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pgsql.js new file mode 100644 index 0000000..2fea6cc --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pgsql.js @@ -0,0 +1,7 @@ +define("ace/snippets/pgsql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "pgsql"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/php.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/php.js new file mode 100644 index 0000000..9671254 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/php.js @@ -0,0 +1,384 @@ +define("ace/snippets/php",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet \n\ +# this one is for php5.4\n\ +snippet \n\ +snippet ns\n\ + namespace ${1:Foo\\Bar\\Baz};\n\ + ${2}\n\ +snippet use\n\ + use ${1:Foo\\Bar\\Baz};\n\ + ${2}\n\ +snippet c\n\ + ${1:abstract }class ${2:$FILENAME}\n\ + {\n\ + ${3}\n\ + }\n\ +snippet i\n\ + interface ${1:$FILENAME}\n\ + {\n\ + ${2}\n\ + }\n\ +snippet t.\n\ + $this->${1}\n\ +snippet f\n\ + function ${1:foo}(${2:array }${3:$bar})\n\ + {\n\ + ${4}\n\ + }\n\ +# method\n\ +snippet m\n\ + ${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\n\ + {\n\ + ${7}\n\ + }\n\ +# setter method\n\ +snippet sm \n\ + /**\n\ + * Sets the value of ${1:foo}\n\ + *\n\ + * @param ${2:$1} $$1 ${3:description}\n\ + *\n\ + * @return ${4:$FILENAME}\n\ + */\n\ + ${5:public} function set${6:$2}(${7:$2 }$$1)\n\ + {\n\ + $this->${8:$1} = $$1;\n\ + return $this;\n\ + }${9}\n\ +# getter method\n\ +snippet gm\n\ + /**\n\ + * Gets the value of ${1:foo}\n\ + *\n\ + * @return ${2:$1}\n\ + */\n\ + ${3:public} function get${4:$2}()\n\ + {\n\ + return $this->${5:$1};\n\ + }${6}\n\ +#setter\n\ +snippet $s\n\ + ${1:$foo}->set${2:Bar}(${3});\n\ +#getter\n\ +snippet $g\n\ + ${1:$foo}->get${2:Bar}();\n\ +\n\ +# Tertiary conditional\n\ +snippet =?:\n\ + $${1:foo} = ${2:true} ? ${3:a} : ${4};\n\ +snippet ?:\n\ + ${1:true} ? ${2:a} : ${3}\n\ +\n\ +snippet C\n\ + $_COOKIE['${1:variable}']${2}\n\ +snippet E\n\ + $_ENV['${1:variable}']${2}\n\ +snippet F\n\ + $_FILES['${1:variable}']${2}\n\ +snippet G\n\ + $_GET['${1:variable}']${2}\n\ +snippet P\n\ + $_POST['${1:variable}']${2}\n\ +snippet R\n\ + $_REQUEST['${1:variable}']${2}\n\ +snippet S\n\ + $_SERVER['${1:variable}']${2}\n\ +snippet SS\n\ + $_SESSION['${1:variable}']${2}\n\ + \n\ +# the following are old ones\n\ +snippet inc\n\ + include '${1:file}';${2}\n\ +snippet inc1\n\ + include_once '${1:file}';${2}\n\ +snippet req\n\ + require '${1:file}';${2}\n\ +snippet req1\n\ + require_once '${1:file}';${2}\n\ +# Start Docblock\n\ +snippet /*\n\ + /**\n\ + * ${1}\n\ + */\n\ +# Class - post doc\n\ +snippet doc_cp\n\ + /**\n\ + * ${1:undocumented class}\n\ + *\n\ + * @package ${2:default}\n\ + * @subpackage ${3:default}\n\ + * @author ${4:`g:snips_author`}\n\ + */${5}\n\ +# Class Variable - post doc\n\ +snippet doc_vp\n\ + /**\n\ + * ${1:undocumented class variable}\n\ + *\n\ + * @var ${2:string}\n\ + */${3}\n\ +# Class Variable\n\ +snippet doc_v\n\ + /**\n\ + * ${3:undocumented class variable}\n\ + *\n\ + * @var ${4:string}\n\ + */\n\ + ${1:var} $${2};${5}\n\ +# Class\n\ +snippet doc_c\n\ + /**\n\ + * ${3:undocumented class}\n\ + *\n\ + * @package ${4:default}\n\ + * @subpackage ${5:default}\n\ + * @author ${6:`g:snips_author`}\n\ + */\n\ + ${1:}class ${2:}\n\ + {\n\ + ${7}\n\ + } // END $1class $2\n\ +# Constant Definition - post doc\n\ +snippet doc_dp\n\ + /**\n\ + * ${1:undocumented constant}\n\ + */${2}\n\ +# Constant Definition\n\ +snippet doc_d\n\ + /**\n\ + * ${3:undocumented constant}\n\ + */\n\ + define(${1}, ${2});${4}\n\ +# Function - post doc\n\ +snippet doc_fp\n\ + /**\n\ + * ${1:undocumented function}\n\ + *\n\ + * @return ${2:void}\n\ + * @author ${3:`g:snips_author`}\n\ + */${4}\n\ +# Function signature\n\ +snippet doc_s\n\ + /**\n\ + * ${4:undocumented function}\n\ + *\n\ + * @return ${5:void}\n\ + * @author ${6:`g:snips_author`}\n\ + */\n\ + ${1}function ${2}(${3});${7}\n\ +# Function\n\ +snippet doc_f\n\ + /**\n\ + * ${4:undocumented function}\n\ + *\n\ + * @return ${5:void}\n\ + * @author ${6:`g:snips_author`}\n\ + */\n\ + ${1}function ${2}(${3})\n\ + {${7}\n\ + }\n\ +# Header\n\ +snippet doc_h\n\ + /**\n\ + * ${1}\n\ + *\n\ + * @author ${2:`g:snips_author`}\n\ + * @version ${3:$Id$}\n\ + * @copyright ${4:$2}, `strftime('%d %B, %Y')`\n\ + * @package ${5:default}\n\ + */\n\ + \n\ +# Interface\n\ +snippet interface\n\ + /**\n\ + * ${2:undocumented class}\n\ + *\n\ + * @package ${3:default}\n\ + * @author ${4:`g:snips_author`}\n\ + */\n\ + interface ${1:$FILENAME}\n\ + {\n\ + ${5}\n\ + }\n\ +# class ...\n\ +snippet class\n\ + /**\n\ + * ${1}\n\ + */\n\ + class ${2:$FILENAME}\n\ + {\n\ + ${3}\n\ + /**\n\ + * ${4}\n\ + */\n\ + ${5:public} function ${6:__construct}(${7:argument})\n\ + {\n\ + ${8:// code...}\n\ + }\n\ + }\n\ +# define(...)\n\ +snippet def\n\ + define('${1}'${2});${3}\n\ +# defined(...)\n\ +snippet def?\n\ + ${1}defined('${2}')${3}\n\ +snippet wh\n\ + while (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + }\n\ +# do ... while\n\ +snippet do\n\ + do {\n\ + ${2:// code... }\n\ + } while (${1:/* condition */});\n\ +snippet if\n\ + if (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + }\n\ +snippet ifil\n\ + \n\ + ${2:}\n\ + \n\ +snippet ife\n\ + if (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + } else {\n\ + ${3:// code...}\n\ + }\n\ + ${4}\n\ +snippet ifeil\n\ + \n\ + ${2:}\n\ + \n\ + ${3:}\n\ + \n\ + ${4}\n\ +snippet else\n\ + else {\n\ + ${1:// code...}\n\ + }\n\ +snippet elseif\n\ + elseif (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + }\n\ +snippet switch\n\ + switch ($${1:variable}) {\n\ + case '${2:value}':\n\ + ${3:// code...}\n\ + break;\n\ + ${5}\n\ + default:\n\ + ${4:// code...}\n\ + break;\n\ + }\n\ +snippet case\n\ + case '${1:value}':\n\ + ${2:// code...}\n\ + break;${3}\n\ +snippet for\n\ + for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\ + ${4: // code...}\n\ + }\n\ +snippet foreach\n\ + foreach ($${1:variable} as $${2:value}) {\n\ + ${3:// code...}\n\ + }\n\ +snippet foreachil\n\ + \n\ + ${3:}\n\ + \n\ +snippet foreachk\n\ + foreach ($${1:variable} as $${2:key} => $${3:value}) {\n\ + ${4:// code...}\n\ + }\n\ +snippet foreachkil\n\ + $${3:value}): ?>\n\ + ${4:}\n\ + \n\ +# $... = array (...)\n\ +snippet array\n\ + $${1:arrayName} = array('${2}' => ${3});${4}\n\ +snippet try\n\ + try {\n\ + ${2}\n\ + } catch (${1:Exception} $e) {\n\ + }\n\ +# lambda with closure\n\ +snippet lambda\n\ + ${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\n\ + ${4}\n\ + };\n\ +# pre_dump();\n\ +snippet pd\n\ + echo '
    '; var_dump(${1}); echo '
    ';\n\ +# pre_dump(); die();\n\ +snippet pdd\n\ + echo '
    '; var_dump(${1}); echo '
    '; die(${2:});\n\ +snippet vd\n\ + var_dump(${1});\n\ +snippet vdd\n\ + var_dump(${1}); die(${2:});\n\ +snippet http_redirect\n\ + header (\"HTTP/1.1 301 Moved Permanently\"); \n\ + header (\"Location: \".URL); \n\ + exit();\n\ +# Getters & Setters\n\ +snippet gs\n\ + /**\n\ + * Gets the value of ${1:foo}\n\ + *\n\ + * @return ${2:$1}\n\ + */\n\ + public function get${3:$2}()\n\ + {\n\ + return $this->${4:$1};\n\ + }\n\ +\n\ + /**\n\ + * Sets the value of $1\n\ + *\n\ + * @param $2 $$1 ${5:description}\n\ + *\n\ + * @return ${6:$FILENAME}\n\ + */\n\ + public function set$3(${7:$2 }$$1)\n\ + {\n\ + $this->$4 = $$1;\n\ + return $this;\n\ + }${8}\n\ +# anotation, get, and set, useful for doctrine\n\ +snippet ags\n\ + /**\n\ + * ${1:description}\n\ + * \n\ + * @${7}\n\ + */\n\ + ${2:protected} $${3:foo};\n\ +\n\ + public function get${4:$3}()\n\ + {\n\ + return $this->$3;\n\ + }\n\ +\n\ + public function set$4(${5:$4 }$${6:$3})\n\ + {\n\ + $this->$3 = $$6;\n\ + return $this;\n\ + }\n\ +snippet rett\n\ + return true;\n\ +snippet retf\n\ + return false;\n\ +"; +exports.scope = "php"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pig.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pig.js new file mode 100644 index 0000000..d1b6fc0 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/pig.js @@ -0,0 +1,7 @@ +define("ace/snippets/pig",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "pig"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/plain_text.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/plain_text.js new file mode 100644 index 0000000..d0309cf --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/plain_text.js @@ -0,0 +1,7 @@ +define("ace/snippets/plain_text",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "plain_text"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/powershell.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/powershell.js new file mode 100644 index 0000000..b1c2037 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/powershell.js @@ -0,0 +1,7 @@ +define("ace/snippets/powershell",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "powershell"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/praat.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/praat.js new file mode 100644 index 0000000..d688531 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/praat.js @@ -0,0 +1,7 @@ +define("ace/snippets/praat",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "praat"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/prolog.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/prolog.js new file mode 100644 index 0000000..3330832 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/prolog.js @@ -0,0 +1,7 @@ +define("ace/snippets/prolog",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "prolog"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/properties.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/properties.js new file mode 100644 index 0000000..1362709 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/properties.js @@ -0,0 +1,7 @@ +define("ace/snippets/properties",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "properties"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/protobuf.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/protobuf.js new file mode 100644 index 0000000..ca88cb0 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/protobuf.js @@ -0,0 +1,7 @@ +define("ace/snippets/protobuf",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = ""; +exports.scope = "protobuf"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/python.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/python.js new file mode 100644 index 0000000..8bc443a --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/python.js @@ -0,0 +1,165 @@ +define("ace/snippets/python",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet #!\n\ + #!/usr/bin/env python\n\ +snippet imp\n\ + import ${1:module}\n\ +snippet from\n\ + from ${1:package} import ${2:module}\n\ +# Module Docstring\n\ +snippet docs\n\ + '''\n\ + File: ${1:FILENAME:file_name}\n\ + Author: ${2:author}\n\ + Description: ${3}\n\ + '''\n\ +snippet wh\n\ + while ${1:condition}:\n\ + ${2:# TODO: write code...}\n\ +# dowh - does the same as do...while in other languages\n\ +snippet dowh\n\ + while True:\n\ + ${1:# TODO: write code...}\n\ + if ${2:condition}:\n\ + break\n\ +snippet with\n\ + with ${1:expr} as ${2:var}:\n\ + ${3:# TODO: write code...}\n\ +# New Class\n\ +snippet cl\n\ + class ${1:ClassName}(${2:object}):\n\ + \"\"\"${3:docstring for $1}\"\"\"\n\ + def __init__(self, ${4:arg}):\n\ + ${5:super($1, self).__init__()}\n\ + self.$4 = $4\n\ + ${6}\n\ +# New Function\n\ +snippet def\n\ + def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\n\ + \"\"\"${3:docstring for $1}\"\"\"\n\ + ${4:# TODO: write code...}\n\ +snippet deff\n\ + def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\n\ + ${3:# TODO: write code...}\n\ +# New Method\n\ +snippet defs\n\ + def ${1:mname}(self, ${2:arg}):\n\ + ${3:# TODO: write code...}\n\ +# New Property\n\ +snippet property\n\ + def ${1:foo}():\n\ + doc = \"${2:The $1 property.}\"\n\ + def fget(self):\n\ + ${3:return self._$1}\n\ + def fset(self, value):\n\ + ${4:self._$1 = value}\n\ +# Ifs\n\ +snippet if\n\ + if ${1:condition}:\n\ + ${2:# TODO: write code...}\n\ +snippet el\n\ + else:\n\ + ${1:# TODO: write code...}\n\ +snippet ei\n\ + elif ${1:condition}:\n\ + ${2:# TODO: write code...}\n\ +# For\n\ +snippet for\n\ + for ${1:item} in ${2:items}:\n\ + ${3:# TODO: write code...}\n\ +# Encodes\n\ +snippet cutf8\n\ + # -*- coding: utf-8 -*-\n\ +snippet clatin1\n\ + # -*- coding: latin-1 -*-\n\ +snippet cascii\n\ + # -*- coding: ascii -*-\n\ +# Lambda\n\ +snippet ld\n\ + ${1:var} = lambda ${2:vars} : ${3:action}\n\ +snippet .\n\ + self.\n\ +snippet try Try/Except\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ +snippet try Try/Except/Else\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ + else:\n\ + ${5:# TODO: write code...}\n\ +snippet try Try/Except/Finally\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ + finally:\n\ + ${5:# TODO: write code...}\n\ +snippet try Try/Except/Else/Finally\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ + else:\n\ + ${5:# TODO: write code...}\n\ + finally:\n\ + ${6:# TODO: write code...}\n\ +# if __name__ == '__main__':\n\ +snippet ifmain\n\ + if __name__ == '__main__':\n\ + ${1:main()}\n\ +# __magic__\n\ +snippet _\n\ + __${1:init}__${2}\n\ +# python debugger (pdb)\n\ +snippet pdb\n\ + import pdb; pdb.set_trace()\n\ +# ipython debugger (ipdb)\n\ +snippet ipdb\n\ + import ipdb; ipdb.set_trace()\n\ +# ipython debugger (pdbbb)\n\ +snippet pdbbb\n\ + import pdbpp; pdbpp.set_trace()\n\ +snippet pprint\n\ + import pprint; pprint.pprint(${1})${2}\n\ +snippet \"\n\ + \"\"\"\n\ + ${1:doc}\n\ + \"\"\"\n\ +# test function/method\n\ +snippet test\n\ + def test_${1:description}(${2:self}):\n\ + ${3:# TODO: write code...}\n\ +# test case\n\ +snippet testcase\n\ + class ${1:ExampleCase}(unittest.TestCase):\n\ + \n\ + def test_${2:description}(self):\n\ + ${3:# TODO: write code...}\n\ +snippet fut\n\ + from __future__ import ${1}\n\ +#getopt\n\ +snippet getopt\n\ + try:\n\ + # Short option syntax: \"hv:\"\n\ + # Long option syntax: \"help\" or \"verbose=\"\n\ + opts, args = getopt.getopt(sys.argv[1:], \"${1:short_options}\", [${2:long_options}])\n\ + \n\ + except getopt.GetoptError, err:\n\ + # Print debug info\n\ + print str(err)\n\ + ${3:error_action}\n\ +\n\ + for option, argument in opts:\n\ + if option in (\"-h\", \"--help\"):\n\ + ${4}\n\ + elif option in (\"-v\", \"--verbose\"):\n\ + verbose = argument\n\ +"; +exports.scope = "python"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/r.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/r.js new file mode 100644 index 0000000..080739d --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/r.js @@ -0,0 +1,128 @@ +define("ace/snippets/r",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet #!\n\ + #!/usr/bin/env Rscript\n\ +\n\ +# includes\n\ +snippet lib\n\ + library(${1:package})\n\ +snippet req\n\ + require(${1:package})\n\ +snippet source\n\ + source('${1:file}')\n\ +\n\ +# conditionals\n\ +snippet if\n\ + if (${1:condition}) {\n\ + ${2:code}\n\ + }\n\ +snippet el\n\ + else {\n\ + ${1:code}\n\ + }\n\ +snippet ei\n\ + else if (${1:condition}) {\n\ + ${2:code}\n\ + }\n\ +\n\ +# functions\n\ +snippet fun\n\ + ${1:name} = function (${2:variables}) {\n\ + ${3:code}\n\ + }\n\ +snippet ret\n\ + return(${1:code})\n\ +\n\ +# dataframes, lists, etc\n\ +snippet df\n\ + ${1:name}[${2:rows}, ${3:cols}]\n\ +snippet c\n\ + c(${1:items})\n\ +snippet li\n\ + list(${1:items})\n\ +snippet mat\n\ + matrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\n\ +\n\ +# apply functions\n\ +snippet apply\n\ + apply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet lapply\n\ + lapply(${1:list}, ${2:function})\n\ +snippet sapply\n\ + sapply(${1:list}, ${2:function})\n\ +snippet vapply\n\ + vapply(${1:list}, ${2:function}, ${3:type})\n\ +snippet mapply\n\ + mapply(${1:function}, ${2:...})\n\ +snippet tapply\n\ + tapply(${1:vector}, ${2:index}, ${3:function})\n\ +snippet rapply\n\ + rapply(${1:list}, ${2:function})\n\ +\n\ +# plyr functions\n\ +snippet dd\n\ + ddply(${1:frame}, ${2:variables}, ${3:function})\n\ +snippet dl\n\ + dlply(${1:frame}, ${2:variables}, ${3:function})\n\ +snippet da\n\ + daply(${1:frame}, ${2:variables}, ${3:function})\n\ +snippet d_\n\ + d_ply(${1:frame}, ${2:variables}, ${3:function})\n\ +\n\ +snippet ad\n\ + adply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet al\n\ + alply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet aa\n\ + aaply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet a_\n\ + a_ply(${1:array}, ${2:margin}, ${3:function})\n\ +\n\ +snippet ld\n\ + ldply(${1:list}, ${2:function})\n\ +snippet ll\n\ + llply(${1:list}, ${2:function})\n\ +snippet la\n\ + laply(${1:list}, ${2:function})\n\ +snippet l_\n\ + l_ply(${1:list}, ${2:function})\n\ +\n\ +snippet md\n\ + mdply(${1:matrix}, ${2:function})\n\ +snippet ml\n\ + mlply(${1:matrix}, ${2:function})\n\ +snippet ma\n\ + maply(${1:matrix}, ${2:function})\n\ +snippet m_\n\ + m_ply(${1:matrix}, ${2:function})\n\ +\n\ +# plot functions\n\ +snippet pl\n\ + plot(${1:x}, ${2:y})\n\ +snippet ggp\n\ + ggplot(${1:data}, aes(${2:aesthetics}))\n\ +snippet img\n\ + ${1:(jpeg,bmp,png,tiff)}(filename=\"${2:filename}\", width=${3}, height=${4}, unit=\"${5}\")\n\ + ${6:plot}\n\ + dev.off()\n\ +\n\ +# statistical test functions\n\ +snippet fis\n\ + fisher.test(${1:x}, ${2:y})\n\ +snippet chi\n\ + chisq.test(${1:x}, ${2:y})\n\ +snippet tt\n\ + t.test(${1:x}, ${2:y})\n\ +snippet wil\n\ + wilcox.test(${1:x}, ${2:y})\n\ +snippet cor\n\ + cor.test(${1:x}, ${2:y})\n\ +snippet fte\n\ + var.test(${1:x}, ${2:y})\n\ +snippet kvt \n\ + kv.test(${1:x}, ${2:y})\n\ +"; +exports.scope = "r"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/razor.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/razor.js new file mode 100644 index 0000000..d7cc436 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/razor.js @@ -0,0 +1,10 @@ +define("ace/snippets/razor",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet if\n\ +(${1} == ${2}) {\n\ + ${3}\n\ +}"; +exports.scope = "razor"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rdoc.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rdoc.js new file mode 100644 index 0000000..ba41d28 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rdoc.js @@ -0,0 +1,7 @@ +define("ace/snippets/rdoc",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "rdoc"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/red.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/red.js new file mode 100644 index 0000000..1409679 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/red.js @@ -0,0 +1,7 @@ +define("ace/snippets/red",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = " "; +exports.scope = "red"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rhtml.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rhtml.js new file mode 100644 index 0000000..3b8e686 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rhtml.js @@ -0,0 +1,7 @@ +define("ace/snippets/rhtml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "rhtml"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rst.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rst.js new file mode 100644 index 0000000..e75294e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rst.js @@ -0,0 +1,29 @@ +define("ace/snippets/rst",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# rst\n\ +\n\ +snippet :\n\ + :${1:field name}: ${2:field body}\n\ +snippet *\n\ + *${1:Emphasis}*\n\ +snippet **\n\ + **${1:Strong emphasis}**\n\ +snippet _\n\ + \\`${1:hyperlink-name}\\`_\n\ + .. _\\`$1\\`: ${2:link-block}\n\ +snippet =\n\ + ${1:Title}\n\ + =====${2:=}\n\ + ${3}\n\ +snippet -\n\ + ${1:Title}\n\ + -----${2:-}\n\ + ${3}\n\ +snippet cont:\n\ + .. contents::\n\ + \n\ +"; +exports.scope = "rst"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ruby.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ruby.js new file mode 100644 index 0000000..d6e21c3 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/ruby.js @@ -0,0 +1,935 @@ +define("ace/snippets/ruby",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "########################################\n\ +# Ruby snippets - for Rails, see below #\n\ +########################################\n\ +\n\ +# encoding for Ruby 1.9\n\ +snippet enc\n\ + # encoding: utf-8\n\ +\n\ +# #!/usr/bin/env ruby\n\ +snippet #!\n\ + #!/usr/bin/env ruby\n\ + # encoding: utf-8\n\ +\n\ +# New Block\n\ +snippet =b\n\ + =begin rdoc\n\ + ${1}\n\ + =end\n\ +snippet y\n\ + :yields: ${1:arguments}\n\ +snippet rb\n\ + #!/usr/bin/env ruby -wKU\n\ +snippet beg\n\ + begin\n\ + ${3}\n\ + rescue ${1:Exception} => ${2:e}\n\ + end\n\ +\n\ +snippet req require\n\ + require \"${1}\"${2}\n\ +snippet #\n\ + # =>\n\ +snippet end\n\ + __END__\n\ +snippet case\n\ + case ${1:object}\n\ + when ${2:condition}\n\ + ${3}\n\ + end\n\ +snippet when\n\ + when ${1:condition}\n\ + ${2}\n\ +snippet def\n\ + def ${1:method_name}\n\ + ${2}\n\ + end\n\ +snippet deft\n\ + def test_${1:case_name}\n\ + ${2}\n\ + end\n\ +snippet if\n\ + if ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet ife\n\ + if ${1:condition}\n\ + ${2}\n\ + else\n\ + ${3}\n\ + end\n\ +snippet elsif\n\ + elsif ${1:condition}\n\ + ${2}\n\ +snippet unless\n\ + unless ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet while\n\ + while ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet for\n\ + for ${1:e} in ${2:c}\n\ + ${3}\n\ + end\n\ +snippet until\n\ + until ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet cla class .. end\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + ${2}\n\ + end\n\ +snippet cla class .. initialize .. end\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + def initialize(${2:args})\n\ + ${3}\n\ + end\n\ + end\n\ +snippet cla class .. < ParentClass .. initialize .. end\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < ${2:ParentClass}\n\ + def initialize(${3:args})\n\ + ${4}\n\ + end\n\ + end\n\ +snippet cla ClassName = Struct .. do .. end\n\ + ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} = Struct.new(:${2:attr_names}) do\n\ + def ${3:method_name}\n\ + ${4}\n\ + end\n\ + end\n\ +snippet cla class BlankSlate .. initialize .. end\n\ + class ${1:BlankSlate}\n\ + instance_methods.each { |meth| undef_method(meth) unless meth =~ /\\A__/ }\n\ + end\n\ +snippet cla class << self .. end\n\ + class << ${1:self}\n\ + ${2}\n\ + end\n\ +# class .. < DelegateClass .. initialize .. end\n\ +snippet cla-\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < DelegateClass(${2:ParentClass})\n\ + def initialize(${3:args})\n\ + super(${4:del_obj})\n\ +\n\ + ${5}\n\ + end\n\ + end\n\ +snippet mod module .. end\n\ + module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + ${2}\n\ + end\n\ +snippet mod module .. module_function .. end\n\ + module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + module_function\n\ +\n\ + ${2}\n\ + end\n\ +snippet mod module .. ClassMethods .. end\n\ + module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + module ClassMethods\n\ + ${2}\n\ + end\n\ +\n\ + module InstanceMethods\n\ +\n\ + end\n\ +\n\ + def self.included(receiver)\n\ + receiver.extend ClassMethods\n\ + receiver.send :include, InstanceMethods\n\ + end\n\ + end\n\ +# attr_reader\n\ +snippet r\n\ + attr_reader :${1:attr_names}\n\ +# attr_writer\n\ +snippet w\n\ + attr_writer :${1:attr_names}\n\ +# attr_accessor\n\ +snippet rw\n\ + attr_accessor :${1:attr_names}\n\ +snippet atp\n\ + attr_protected :${1:attr_names}\n\ +snippet ata\n\ + attr_accessible :${1:attr_names}\n\ +# include Enumerable\n\ +snippet Enum\n\ + include Enumerable\n\ +\n\ + def each(&block)\n\ + ${1}\n\ + end\n\ +# include Comparable\n\ +snippet Comp\n\ + include Comparable\n\ +\n\ + def <=>(other)\n\ + ${1}\n\ + end\n\ +# extend Forwardable\n\ +snippet Forw-\n\ + extend Forwardable\n\ +# def self\n\ +snippet defs\n\ + def self.${1:class_method_name}\n\ + ${2}\n\ + end\n\ +# def method_missing\n\ +snippet defmm\n\ + def method_missing(meth, *args, &blk)\n\ + ${1}\n\ + end\n\ +snippet defd\n\ + def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\n\ +snippet defds\n\ + def_delegators :${1:@del_obj}, :${2:del_methods}\n\ +snippet am\n\ + alias_method :${1:new_name}, :${2:old_name}\n\ +snippet app\n\ + if __FILE__ == $PROGRAM_NAME\n\ + ${1}\n\ + end\n\ +# usage_if()\n\ +snippet usai\n\ + if ARGV.${1}\n\ + abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\ + end\n\ +# usage_unless()\n\ +snippet usau\n\ + unless ARGV.${1}\n\ + abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\ + end\n\ +snippet array\n\ + Array.new(${1:10}) { |${2:i}| ${3} }\n\ +snippet hash\n\ + Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\n\ +snippet file File.foreach() { |line| .. }\n\ + File.foreach(${1:\"path/to/file\"}) { |${2:line}| ${3} }\n\ +snippet file File.read()\n\ + File.read(${1:\"path/to/file\"})${2}\n\ +snippet Dir Dir.global() { |file| .. }\n\ + Dir.glob(${1:\"dir/glob/*\"}) { |${2:file}| ${3} }\n\ +snippet Dir Dir[\"..\"]\n\ + Dir[${1:\"glob/**/*.rb\"}]${2}\n\ +snippet dir\n\ + Filename.dirname(__FILE__)\n\ +snippet deli\n\ + delete_if { |${1:e}| ${2} }\n\ +snippet fil\n\ + fill(${1:range}) { |${2:i}| ${3} }\n\ +# flatten_once()\n\ +snippet flao\n\ + inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\n\ +snippet zip\n\ + zip(${1:enums}) { |${2:row}| ${3} }\n\ +# downto(0) { |n| .. }\n\ +snippet dow\n\ + downto(${1:0}) { |${2:n}| ${3} }\n\ +snippet ste\n\ + step(${1:2}) { |${2:n}| ${3} }\n\ +snippet tim\n\ + times { |${1:n}| ${2} }\n\ +snippet upt\n\ + upto(${1:1.0/0.0}) { |${2:n}| ${3} }\n\ +snippet loo\n\ + loop { ${1} }\n\ +snippet ea\n\ + each { |${1:e}| ${2} }\n\ +snippet ead\n\ + each do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet eab\n\ + each_byte { |${1:byte}| ${2} }\n\ +snippet eac- each_char { |chr| .. }\n\ + each_char { |${1:chr}| ${2} }\n\ +snippet eac- each_cons(..) { |group| .. }\n\ + each_cons(${1:2}) { |${2:group}| ${3} }\n\ +snippet eai\n\ + each_index { |${1:i}| ${2} }\n\ +snippet eaid\n\ + each_index do |${1:i}|\n\ + ${2}\n\ + end\n\ +snippet eak\n\ + each_key { |${1:key}| ${2} }\n\ +snippet eakd\n\ + each_key do |${1:key}|\n\ + ${2}\n\ + end\n\ +snippet eal\n\ + each_line { |${1:line}| ${2} }\n\ +snippet eald\n\ + each_line do |${1:line}|\n\ + ${2}\n\ + end\n\ +snippet eap\n\ + each_pair { |${1:name}, ${2:val}| ${3} }\n\ +snippet eapd\n\ + each_pair do |${1:name}, ${2:val}|\n\ + ${3}\n\ + end\n\ +snippet eas-\n\ + each_slice(${1:2}) { |${2:group}| ${3} }\n\ +snippet easd-\n\ + each_slice(${1:2}) do |${2:group}|\n\ + ${3}\n\ + end\n\ +snippet eav\n\ + each_value { |${1:val}| ${2} }\n\ +snippet eavd\n\ + each_value do |${1:val}|\n\ + ${2}\n\ + end\n\ +snippet eawi\n\ + each_with_index { |${1:e}, ${2:i}| ${3} }\n\ +snippet eawid\n\ + each_with_index do |${1:e},${2:i}|\n\ + ${3}\n\ + end\n\ +snippet reve\n\ + reverse_each { |${1:e}| ${2} }\n\ +snippet reved\n\ + reverse_each do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet inj\n\ + inject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\n\ +snippet injd\n\ + inject(${1:init}) do |${2:mem}, ${3:var}|\n\ + ${4}\n\ + end\n\ +snippet map\n\ + map { |${1:e}| ${2} }\n\ +snippet mapd\n\ + map do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet mapwi-\n\ + enum_with_index.map { |${1:e}, ${2:i}| ${3} }\n\ +snippet sor\n\ + sort { |a, b| ${1} }\n\ +snippet sorb\n\ + sort_by { |${1:e}| ${2} }\n\ +snippet ran\n\ + sort_by { rand }\n\ +snippet all\n\ + all? { |${1:e}| ${2} }\n\ +snippet any\n\ + any? { |${1:e}| ${2} }\n\ +snippet cl\n\ + classify { |${1:e}| ${2} }\n\ +snippet col\n\ + collect { |${1:e}| ${2} }\n\ +snippet cold\n\ + collect do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet det\n\ + detect { |${1:e}| ${2} }\n\ +snippet detd\n\ + detect do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet fet\n\ + fetch(${1:name}) { |${2:key}| ${3} }\n\ +snippet fin\n\ + find { |${1:e}| ${2} }\n\ +snippet find\n\ + find do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet fina\n\ + find_all { |${1:e}| ${2} }\n\ +snippet finad\n\ + find_all do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet gre\n\ + grep(${1:/pattern/}) { |${2:match}| ${3} }\n\ +snippet sub\n\ + ${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\n\ +snippet sca\n\ + scan(${1:/pattern/}) { |${2:match}| ${3} }\n\ +snippet scad\n\ + scan(${1:/pattern/}) do |${2:match}|\n\ + ${3}\n\ + end\n\ +snippet max\n\ + max { |a, b| ${1} }\n\ +snippet min\n\ + min { |a, b| ${1} }\n\ +snippet par\n\ + partition { |${1:e}| ${2} }\n\ +snippet pard\n\ + partition do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet rej\n\ + reject { |${1:e}| ${2} }\n\ +snippet rejd\n\ + reject do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet sel\n\ + select { |${1:e}| ${2} }\n\ +snippet seld\n\ + select do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet lam\n\ + lambda { |${1:args}| ${2} }\n\ +snippet doo\n\ + do\n\ + ${1}\n\ + end\n\ +snippet dov\n\ + do |${1:variable}|\n\ + ${2}\n\ + end\n\ +snippet :\n\ + :${1:key} => ${2:\"value\"}${3}\n\ +snippet ope\n\ + open(${1:\"path/or/url/or/pipe\"}, \"${2:w}\") { |${3:io}| ${4} }\n\ +# path_from_here()\n\ +snippet fpath\n\ + File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\n\ +# unix_filter {}\n\ +snippet unif\n\ + ARGF.each_line${1} do |${2:line}|\n\ + ${3}\n\ + end\n\ +# option_parse {}\n\ +snippet optp\n\ + require \"optparse\"\n\ +\n\ + options = {${1:default => \"args\"}}\n\ +\n\ + ARGV.options do |opts|\n\ + opts.banner = \"Usage: #{File.basename($PROGRAM_NAME)}\n\ +snippet opt\n\ + opts.on( \"-${1:o}\", \"--${2:long-option-name}\", ${3:String},\n\ + \"${4:Option description.}\") do |${5:opt}|\n\ + ${6}\n\ + end\n\ +snippet tc\n\ + require \"test/unit\"\n\ +\n\ + require \"${1:library_file_name}\"\n\ +\n\ + class Test${2:$1} < Test::Unit::TestCase\n\ + def test_${3:case_name}\n\ + ${4}\n\ + end\n\ + end\n\ +snippet ts\n\ + require \"test/unit\"\n\ +\n\ + require \"tc_${1:test_case_file}\"\n\ + require \"tc_${2:test_case_file}\"${3}\n\ +snippet as\n\ + assert ${1:test}, \"${2:Failure message.}\"${3}\n\ +snippet ase\n\ + assert_equal ${1:expected}, ${2:actual}${3}\n\ +snippet asne\n\ + assert_not_equal ${1:unexpected}, ${2:actual}${3}\n\ +snippet asid\n\ + assert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\n\ +snippet asio\n\ + assert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\n\ +snippet asko\n\ + assert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\n\ +snippet asn\n\ + assert_nil ${1:instance}${2}\n\ +snippet asnn\n\ + assert_not_nil ${1:instance}${2}\n\ +snippet asm\n\ + assert_match /${1:expected_pattern}/, ${2:actual_string}${3}\n\ +snippet asnm\n\ + assert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\n\ +snippet aso\n\ + assert_operator ${1:left}, :${2:operator}, ${3:right}${4}\n\ +snippet asr\n\ + assert_raise ${1:Exception} { ${2} }\n\ +snippet asrd\n\ + assert_raise ${1:Exception} do\n\ + ${2}\n\ + end\n\ +snippet asnr\n\ + assert_nothing_raised ${1:Exception} { ${2} }\n\ +snippet asnrd\n\ + assert_nothing_raised ${1:Exception} do\n\ + ${2}\n\ + end\n\ +snippet asrt\n\ + assert_respond_to ${1:object}, :${2:method}${3}\n\ +snippet ass assert_same(..)\n\ + assert_same ${1:expected}, ${2:actual}${3}\n\ +snippet ass assert_send(..)\n\ + assert_send [${1:object}, :${2:message}, ${3:args}]${4}\n\ +snippet asns\n\ + assert_not_same ${1:unexpected}, ${2:actual}${3}\n\ +snippet ast\n\ + assert_throws :${1:expected} { ${2} }\n\ +snippet astd\n\ + assert_throws :${1:expected} do\n\ + ${2}\n\ + end\n\ +snippet asnt\n\ + assert_nothing_thrown { ${1} }\n\ +snippet asntd\n\ + assert_nothing_thrown do\n\ + ${1}\n\ + end\n\ +snippet fl\n\ + flunk \"${1:Failure message.}\"${2}\n\ +# Benchmark.bmbm do .. end\n\ +snippet bm-\n\ + TESTS = ${1:10_000}\n\ + Benchmark.bmbm do |results|\n\ + ${2}\n\ + end\n\ +snippet rep\n\ + results.report(\"${1:name}:\") { TESTS.times { ${2} }}\n\ +# Marshal.dump(.., file)\n\ +snippet Md\n\ + File.open(${1:\"path/to/file.dump\"}, \"wb\") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\n\ +# Mashal.load(obj)\n\ +snippet Ml\n\ + File.open(${1:\"path/to/file.dump\"}, \"rb\") { |${2:file}| Marshal.load($2) }${3}\n\ +# deep_copy(..)\n\ +snippet deec\n\ + Marshal.load(Marshal.dump(${1:obj_to_copy}))${2}\n\ +snippet Pn-\n\ + PStore.new(${1:\"file_name.pstore\"})${2}\n\ +snippet tra\n\ + transaction(${1:true}) { ${2} }\n\ +# xmlread(..)\n\ +snippet xml-\n\ + REXML::Document.new(File.read(${1:\"path/to/file\"}))${2}\n\ +# xpath(..) { .. }\n\ +snippet xpa\n\ + elements.each(${1:\"//Xpath\"}) do |${2:node}|\n\ + ${3}\n\ + end\n\ +# class_from_name()\n\ +snippet clafn\n\ + split(\"::\").inject(Object) { |par, const| par.const_get(const) }\n\ +# singleton_class()\n\ +snippet sinc\n\ + class << self; self end\n\ +snippet nam\n\ + namespace :${1:`Filename()`} do\n\ + ${2}\n\ + end\n\ +snippet tas\n\ + desc \"${1:Task description}\"\n\ + task :${2:task_name => [:dependent, :tasks]} do\n\ + ${3}\n\ + end\n\ +# block\n\ +snippet b\n\ + { |${1:var}| ${2} }\n\ +snippet begin\n\ + begin\n\ + raise 'A test exception.'\n\ + rescue Exception => e\n\ + puts e.message\n\ + puts e.backtrace.inspect\n\ + else\n\ + # other exception\n\ + ensure\n\ + # always executed\n\ + end\n\ +\n\ +#debugging\n\ +snippet debug\n\ + require 'ruby-debug'; debugger; true;\n\ +snippet pry\n\ + require 'pry'; binding.pry\n\ +\n\ +#############################################\n\ +# Rails snippets - for pure Ruby, see above #\n\ +#############################################\n\ +snippet art\n\ + assert_redirected_to ${1::action => \"${2:index}\"}\n\ +snippet artnp\n\ + assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\n\ +snippet artnpp\n\ + assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\n\ +snippet artp\n\ + assert_redirected_to ${1:model}_path(${2:@$1})\n\ +snippet artpp\n\ + assert_redirected_to ${1:model}s_path\n\ +snippet asd\n\ + assert_difference \"${1:Model}.${2:count}\", $1 do\n\ + ${3}\n\ + end\n\ +snippet asnd\n\ + assert_no_difference \"${1:Model}.${2:count}\" do\n\ + ${3}\n\ + end\n\ +snippet asre\n\ + assert_response :${1:success}, @response.body${2}\n\ +snippet asrj\n\ + assert_rjs :${1:replace}, \"${2:dom id}\"\n\ +snippet ass assert_select(..)\n\ + assert_select '${1:path}', :${2:text} => '${3:inner_html' ${4:do}\n\ +snippet bf\n\ + before_filter :${1:method}\n\ +snippet bt\n\ + belongs_to :${1:association}\n\ +snippet crw\n\ + cattr_accessor :${1:attr_names}\n\ +snippet defcreate\n\ + def create\n\ + @${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\n\ +\n\ + respond_to do |wants|\n\ + if @$1.save\n\ + flash[:notice] = '$2 was successfully created.'\n\ + wants.html { redirect_to(@$1) }\n\ + wants.xml { render :xml => @$1, :status => :created, :location => @$1 }\n\ + else\n\ + wants.html { render :action => \"new\" }\n\ + wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\ + end\n\ + end\n\ + end${3}\n\ +snippet defdestroy\n\ + def destroy\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ + @$1.destroy\n\ +\n\ + respond_to do |wants|\n\ + wants.html { redirect_to($1s_url) }\n\ + wants.xml { head :ok }\n\ + end\n\ + end${3}\n\ +snippet defedit\n\ + def edit\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ + end\n\ +snippet defindex\n\ + def index\n\ + @${1:model_class_name} = ${2:ModelClassName}.all\n\ +\n\ + respond_to do |wants|\n\ + wants.html # index.html.erb\n\ + wants.xml { render :xml => @$1s }\n\ + end\n\ + end${3}\n\ +snippet defnew\n\ + def new\n\ + @${1:model_class_name} = ${2:ModelClassName}.new\n\ +\n\ + respond_to do |wants|\n\ + wants.html # new.html.erb\n\ + wants.xml { render :xml => @$1 }\n\ + end\n\ + end${3}\n\ +snippet defshow\n\ + def show\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ +\n\ + respond_to do |wants|\n\ + wants.html # show.html.erb\n\ + wants.xml { render :xml => @$1 }\n\ + end\n\ + end${3}\n\ +snippet defupdate\n\ + def update\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ +\n\ + respond_to do |wants|\n\ + if @$1.update_attributes(params[:$1])\n\ + flash[:notice] = '$2 was successfully updated.'\n\ + wants.html { redirect_to(@$1) }\n\ + wants.xml { head :ok }\n\ + else\n\ + wants.html { render :action => \"edit\" }\n\ + wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\ + end\n\ + end\n\ + end${3}\n\ +snippet flash\n\ + flash[:${1:notice}] = \"${2}\"\n\ +snippet habtm\n\ + has_and_belongs_to_many :${1:object}, :join_table => \"${2:table_name}\", :foreign_key => \"${3}_id\"${4}\n\ +snippet hm\n\ + has_many :${1:object}\n\ +snippet hmd\n\ + has_many :${1:other}s, :class_name => \"${2:$1}\", :foreign_key => \"${3:$1}_id\", :dependent => :destroy${4}\n\ +snippet hmt\n\ + has_many :${1:object}, :through => :${2:object}\n\ +snippet ho\n\ + has_one :${1:object}\n\ +snippet i18\n\ + I18n.t('${1:type.key}')${2}\n\ +snippet ist\n\ + <%= image_submit_tag(\"${1:agree.png}\", :id => \"${2:id}\"${3} %>\n\ +snippet log\n\ + Rails.logger.${1:debug} ${2}\n\ +snippet log2\n\ + RAILS_DEFAULT_LOGGER.${1:debug} ${2}\n\ +snippet logd\n\ + logger.debug { \"${1:message}\" }${2}\n\ +snippet loge\n\ + logger.error { \"${1:message}\" }${2}\n\ +snippet logf\n\ + logger.fatal { \"${1:message}\" }${2}\n\ +snippet logi\n\ + logger.info { \"${1:message}\" }${2}\n\ +snippet logw\n\ + logger.warn { \"${1:message}\" }${2}\n\ +snippet mapc\n\ + ${1:map}.${2:connect} '${3:controller/:action/:id}'\n\ +snippet mapca\n\ + ${1:map}.catch_all \"*${2:anything}\", :controller => \"${3:default}\", :action => \"${4:error}\"${5}\n\ +snippet mapr\n\ + ${1:map}.resource :${2:resource}\n\ +snippet maprs\n\ + ${1:map}.resources :${2:resource}\n\ +snippet mapwo\n\ + ${1:map}.with_options :${2:controller} => '${3:thing}' do |$3|\n\ + ${4}\n\ + end\n\ +snippet mbs\n\ + before_save :${1:method}\n\ +snippet mcht\n\ + change_table :${1:table_name} do |t|\n\ + ${2}\n\ + end\n\ +snippet mp\n\ + map(&:${1:id})\n\ +snippet mrw\n\ + mattr_accessor :${1:attr_names}\n\ +snippet oa\n\ + order(\"${1:field}\")\n\ +snippet od\n\ + order(\"${1:field} DESC\")\n\ +snippet pa\n\ + params[:${1:id}]${2}\n\ +snippet ra\n\ + render :action => \"${1:action}\"\n\ +snippet ral\n\ + render :action => \"${1:action}\", :layout => \"${2:layoutname}\"\n\ +snippet rest\n\ + respond_to do |wants|\n\ + wants.${1:html} { ${2} }\n\ + end\n\ +snippet rf\n\ + render :file => \"${1:filepath}\"\n\ +snippet rfu\n\ + render :file => \"${1:filepath}\", :use_full_path => ${2:false}\n\ +snippet ri\n\ + render :inline => \"${1:<%= 'hello' %>}\"\n\ +snippet ril\n\ + render :inline => \"${1:<%= 'hello' %>}\", :locals => { ${2::name} => \"${3:value}\"${4} }\n\ +snippet rit\n\ + render :inline => \"${1:<%= 'hello' %>}\", :type => ${2::rxml}\n\ +snippet rjson\n\ + render :json => ${1:text to render}\n\ +snippet rl\n\ + render :layout => \"${1:layoutname}\"\n\ +snippet rn\n\ + render :nothing => ${1:true}\n\ +snippet rns\n\ + render :nothing => ${1:true}, :status => ${2:401}\n\ +snippet rp\n\ + render :partial => \"${1:item}\"\n\ +snippet rpc\n\ + render :partial => \"${1:item}\", :collection => ${2:@$1s}\n\ +snippet rpl\n\ + render :partial => \"${1:item}\", :locals => { :${2:$1} => ${3:@$1}\n\ +snippet rpo\n\ + render :partial => \"${1:item}\", :object => ${2:@$1}\n\ +snippet rps\n\ + render :partial => \"${1:item}\", :status => ${2:500}\n\ +snippet rt\n\ + render :text => \"${1:text to render}\"\n\ +snippet rtl\n\ + render :text => \"${1:text to render}\", :layout => \"${2:layoutname}\"\n\ +snippet rtlt\n\ + render :text => \"${1:text to render}\", :layout => ${2:true}\n\ +snippet rts\n\ + render :text => \"${1:text to render}\", :status => ${2:401}\n\ +snippet ru\n\ + render :update do |${1:page}|\n\ + $1.${2}\n\ + end\n\ +snippet rxml\n\ + render :xml => ${1:text to render}\n\ +snippet sc\n\ + scope :${1:name}, :where(:@${2:field} => ${3:value})\n\ +snippet sl\n\ + scope :${1:name}, lambda do |${2:value}|\n\ + where(\"${3:field = ?}\", ${4:bind var})\n\ + end\n\ +snippet sha1\n\ + Digest::SHA1.hexdigest(${1:string})\n\ +snippet sweeper\n\ + class ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\n\ + observe $1\n\ +\n\ + def after_save(${2:model_class_name})\n\ + expire_cache($2)\n\ + end\n\ +\n\ + def after_destroy($2)\n\ + expire_cache($2)\n\ + end\n\ +\n\ + def expire_cache($2)\n\ + expire_page\n\ + end\n\ + end\n\ +snippet tcb\n\ + t.boolean :${1:title}\n\ + ${2}\n\ +snippet tcbi\n\ + t.binary :${1:title}, :limit => ${2:2}.megabytes\n\ + ${3}\n\ +snippet tcd\n\ + t.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\n\ + ${4}\n\ +snippet tcda\n\ + t.date :${1:title}\n\ + ${2}\n\ +snippet tcdt\n\ + t.datetime :${1:title}\n\ + ${2}\n\ +snippet tcf\n\ + t.float :${1:title}\n\ + ${2}\n\ +snippet tch\n\ + t.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\n\ + ${5}\n\ +snippet tci\n\ + t.integer :${1:title}\n\ + ${2}\n\ +snippet tcl\n\ + t.integer :lock_version, :null => false, :default => 0\n\ + ${1}\n\ +snippet tcr\n\ + t.references :${1:taggable}, :polymorphic => { :default => '${2:Photo}' }\n\ + ${3}\n\ +snippet tcs\n\ + t.string :${1:title}\n\ + ${2}\n\ +snippet tct\n\ + t.text :${1:title}\n\ + ${2}\n\ +snippet tcti\n\ + t.time :${1:title}\n\ + ${2}\n\ +snippet tcts\n\ + t.timestamp :${1:title}\n\ + ${2}\n\ +snippet tctss\n\ + t.timestamps\n\ + ${1}\n\ +snippet va\n\ + validates_associated :${1:attribute}\n\ +snippet vao\n\ + validates_acceptance_of :${1:terms}\n\ +snippet vc\n\ + validates_confirmation_of :${1:attribute}\n\ +snippet ve\n\ + validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\n\ +snippet vf\n\ + validates_format_of :${1:attribute}, :with => /${2:regex}/\n\ +snippet vi\n\ + validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\n\ +snippet vl\n\ + validates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\n\ +snippet vn\n\ + validates_numericality_of :${1:attribute}\n\ +snippet vpo\n\ + validates_presence_of :${1:attribute}\n\ +snippet vu\n\ + validates_uniqueness_of :${1:attribute}\n\ +snippet wants\n\ + wants.${1:js|xml|html} { ${2} }\n\ +snippet wc\n\ + where(${1:\"conditions\"}${2:, bind_var})\n\ +snippet wh\n\ + where(${1:field} => ${2:value})\n\ +snippet xdelete\n\ + xhr :delete, :${1:destroy}, :id => ${2:1}${3}\n\ +snippet xget\n\ + xhr :get, :${1:show}, :id => ${2:1}${3}\n\ +snippet xpost\n\ + xhr :post, :${1:create}, :${2:object} => { ${3} }\n\ +snippet xput\n\ + xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\n\ +snippet test\n\ + test \"should ${1:do something}\" do\n\ + ${2}\n\ + end\n\ +#migrations\n\ +snippet mac\n\ + add_column :${1:table_name}, :${2:column_name}, :${3:data_type}\n\ +snippet mrc\n\ + remove_column :${1:table_name}, :${2:column_name}\n\ +snippet mrnc\n\ + rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\n\ +snippet mcc\n\ + change_column :${1:table}, :${2:column}, :${3:type}\n\ +snippet mccc\n\ + t.column :${1:title}, :${2:string}\n\ +snippet mct\n\ + create_table :${1:table_name} do |t|\n\ + t.column :${2:name}, :${3:type}\n\ + end\n\ +snippet migration\n\ + class ${1:class_name} < ActiveRecord::Migration\n\ + def self.up\n\ + ${2}\n\ + end\n\ +\n\ + def self.down\n\ + end\n\ + end\n\ +\n\ +snippet trc\n\ + t.remove :${1:column}\n\ +snippet tre\n\ + t.rename :${1:old_column_name}, :${2:new_column_name}\n\ + ${3}\n\ +snippet tref\n\ + t.references :${1:model}\n\ +\n\ +#rspec\n\ +snippet it\n\ + it \"${1:spec_name}\" do\n\ + ${2}\n\ + end\n\ +snippet itp\n\ + it \"${1:spec_name}\"\n\ + ${2}\n\ +snippet desc\n\ + describe ${1:class_name} do\n\ + ${2}\n\ + end\n\ +snippet cont\n\ + context \"${1:message}\" do\n\ + ${2}\n\ + end\n\ +snippet bef\n\ + before :${1:each} do\n\ + ${2}\n\ + end\n\ +snippet aft\n\ + after :${1:each} do\n\ + ${2}\n\ + end\n\ +"; +exports.scope = "ruby"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rust.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rust.js new file mode 100644 index 0000000..4d14a2d --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/rust.js @@ -0,0 +1,7 @@ +define("ace/snippets/rust",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "rust"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sass.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sass.js new file mode 100644 index 0000000..336c9b9 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sass.js @@ -0,0 +1,7 @@ +define("ace/snippets/sass",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "sass"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scad.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scad.js new file mode 100644 index 0000000..40449e8 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scad.js @@ -0,0 +1,7 @@ +define("ace/snippets/scad",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scad"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scala.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scala.js new file mode 100644 index 0000000..99c4057 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scala.js @@ -0,0 +1,7 @@ +define("ace/snippets/scala",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scala"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scheme.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scheme.js new file mode 100644 index 0000000..6d3dab8 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scheme.js @@ -0,0 +1,7 @@ +define("ace/snippets/scheme",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scheme"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scss.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scss.js new file mode 100644 index 0000000..3dc9a06 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/scss.js @@ -0,0 +1,7 @@ +define("ace/snippets/scss",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scss"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sh.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sh.js new file mode 100644 index 0000000..436c196 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sh.js @@ -0,0 +1,90 @@ +define("ace/snippets/sh",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\n\ +snippet #!\n\ + #!/usr/bin/env bash\n\ + \n\ +snippet if\n\ + if [[ ${1:condition} ]]; then\n\ + ${2:#statements}\n\ + fi\n\ +snippet elif\n\ + elif [[ ${1:condition} ]]; then\n\ + ${2:#statements}\n\ +snippet for\n\ + for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\n\ + ${3:#statements}\n\ + done\n\ +snippet fori\n\ + for ${1:needle} in ${2:haystack} ; do\n\ + ${3:#statements}\n\ + done\n\ +snippet wh\n\ + while [[ ${1:condition} ]]; do\n\ + ${2:#statements}\n\ + done\n\ +snippet until\n\ + until [[ ${1:condition} ]]; do\n\ + ${2:#statements}\n\ + done\n\ +snippet case\n\ + case ${1:word} in\n\ + ${2:pattern})\n\ + ${3};;\n\ + esac\n\ +snippet go \n\ + while getopts '${1:o}' ${2:opts} \n\ + do \n\ + case $$2 in\n\ + ${3:o0})\n\ + ${4:#staments};;\n\ + esac\n\ + done\n\ +# Set SCRIPT_DIR variable to directory script is located.\n\ +snippet sdir\n\ + SCRIPT_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\n\ +# getopt\n\ +snippet getopt\n\ + __ScriptVersion=\"${1:version}\"\n\ +\n\ + #=== FUNCTION ================================================================\n\ + # NAME: usage\n\ + # DESCRIPTION: Display usage information.\n\ + #===============================================================================\n\ + function usage ()\n\ + {\n\ + cat <<- EOT\n\ +\n\ + Usage : $${0:0} [options] [--] \n\ +\n\ + Options: \n\ + -h|help Display this message\n\ + -v|version Display script version\n\ +\n\ + EOT\n\ + } # ---------- end of function usage ----------\n\ +\n\ + #-----------------------------------------------------------------------\n\ + # Handle command line arguments\n\ + #-----------------------------------------------------------------------\n\ +\n\ + while getopts \":hv\" opt\n\ + do\n\ + case $opt in\n\ +\n\ + h|help ) usage; exit 0 ;;\n\ +\n\ + v|version ) echo \"$${0:0} -- Version $__ScriptVersion\"; exit 0 ;;\n\ +\n\ + \\? ) echo -e \"\\n Option does not exist : $OPTARG\\n\"\n\ + usage; exit 1 ;;\n\ +\n\ + esac # --- end of case ---\n\ + done\n\ + shift $(($OPTIND-1))\n\ +\n\ +"; +exports.scope = "sh"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sjs.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sjs.js new file mode 100644 index 0000000..e81ff84 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sjs.js @@ -0,0 +1,7 @@ +define("ace/snippets/sjs",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "sjs"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/smarty.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/smarty.js new file mode 100644 index 0000000..9f43a82 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/smarty.js @@ -0,0 +1,7 @@ +define("ace/snippets/smarty",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "smarty"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/snippets.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/snippets.js new file mode 100644 index 0000000..2d5917e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/snippets.js @@ -0,0 +1,16 @@ +define("ace/snippets/snippets",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# snippets for making snippets :)\n\ +snippet snip\n\ + snippet ${1:trigger}\n\ + ${2}\n\ +snippet msnip\n\ + snippet ${1:trigger} ${2:description}\n\ + ${3}\n\ +snippet v\n\ + {VISUAL}\n\ +"; +exports.scope = "snippets"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/soy_template.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/soy_template.js new file mode 100644 index 0000000..487f240 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/soy_template.js @@ -0,0 +1,7 @@ +define("ace/snippets/soy_template",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "soy_template"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/space.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/space.js new file mode 100644 index 0000000..c97ec60 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/space.js @@ -0,0 +1,7 @@ +define("ace/snippets/space",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "space"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sparql.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sparql.js new file mode 100644 index 0000000..622fbdc --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sparql.js @@ -0,0 +1,7 @@ +define("ace/snippets/sparql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sql.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sql.js new file mode 100644 index 0000000..7440ce4 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sql.js @@ -0,0 +1,33 @@ +define("ace/snippets/sql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet tbl\n\ + create table ${1:table} (\n\ + ${2:columns}\n\ + );\n\ +snippet col\n\ + ${1:name} ${2:type} ${3:default ''} ${4:not null}\n\ +snippet ccol\n\ + ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\n\ +snippet ncol\n\ + ${1:name} number ${3:default 0} ${4:not null}\n\ +snippet dcol\n\ + ${1:name} date ${3:default sysdate} ${4:not null}\n\ +snippet ind\n\ + create index ${3:$1_$2} on ${1:table}(${2:column});\n\ +snippet uind\n\ + create unique index ${1:name} on ${2:table}(${3:column});\n\ +snippet tblcom\n\ + comment on table ${1:table} is '${2:comment}';\n\ +snippet colcom\n\ + comment on column ${1:table}.${2:column} is '${3:comment}';\n\ +snippet addcol\n\ + alter table ${1:table} add (${2:column} ${3:type});\n\ +snippet seq\n\ + create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\n\ +snippet s*\n\ + select * from ${1:table}\n\ +"; +exports.scope = "sql"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sqlserver.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sqlserver.js new file mode 100644 index 0000000..133c663 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/sqlserver.js @@ -0,0 +1,76 @@ +define("ace/snippets/sqlserver",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# ISNULL\n\ +snippet isnull\n\ + ISNULL(${1:check_expression}, ${2:replacement_value})\n\ +# FORMAT\n\ +snippet format\n\ + FORMAT(${1:value}, ${2:format})\n\ +# CAST\n\ +snippet cast\n\ + CAST(${1:expression} AS ${2:data_type})\n\ +# CONVERT\n\ +snippet convert\n\ + CONVERT(${1:data_type}, ${2:expression})\n\ +# DATEPART\n\ +snippet datepart\n\ + DATEPART(${1:datepart}, ${2:date})\n\ +# DATEDIFF\n\ +snippet datediff\n\ + DATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\n\ +# DATEADD\n\ +snippet dateadd\n\ + DATEADD(${1:datepart}, ${2:number}, ${3:date})\n\ +# DATEFROMPARTS \n\ +snippet datefromparts\n\ + DATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\n\ +# OBJECT_DEFINITION\n\ +snippet objectdef\n\ + SELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\n\ +# STUFF XML\n\ +snippet stuffxml\n\ + STUFF((SELECT ', ' + ${1:ColumnName}\n\ + FROM ${2:TableName}\n\ + WHERE ${3:WhereClause}\n\ + FOR XML PATH('')), 1, 1, '') AS ${4:Alias}\n\ + ${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\n\ +# Create Procedure\n\ +snippet createproc\n\ + -- =============================================\n\ + -- Author: ${1:Author}\n\ + -- Create date: ${2:Date}\n\ + -- Description: ${3:Description}\n\ + -- =============================================\n\ + CREATE PROCEDURE ${4:Procedure_Name}\n\ + ${5:/*Add the parameters for the stored procedure here*/}\n\ + AS\n\ + BEGIN\n\ + -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\n\ + SET NOCOUNT ON;\n\ + \n\ + ${6:/*Add the T-SQL statements to compute the return value here*/}\n\ + \n\ + END\n\ + GO\n\ +# Create Scalar Function\n\ +snippet createfn\n\ + -- =============================================\n\ + -- Author: ${1:Author}\n\ + -- Create date: ${2:Date}\n\ + -- Description: ${3:Description}\n\ + -- =============================================\n\ + CREATE FUNCTION ${4:Scalar_Function_Name}\n\ + -- Add the parameters for the function here\n\ + RETURNS ${5:Function_Data_Type}\n\ + AS\n\ + BEGIN\n\ + DECLARE @Result ${5:Function_Data_Type}\n\ + \n\ + ${6:/*Add the T-SQL statements to compute the return value here*/}\n\ + \n\ + END\n\ + GO"; +exports.scope = "sqlserver"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/stylus.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/stylus.js new file mode 100644 index 0000000..1a67e55 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/stylus.js @@ -0,0 +1,7 @@ +define("ace/snippets/stylus",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "stylus"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/svg.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/svg.js new file mode 100644 index 0000000..a163691 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/svg.js @@ -0,0 +1,7 @@ +define("ace/snippets/svg",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "svg"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/swift.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/swift.js new file mode 100644 index 0000000..d7aa6b8 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/swift.js @@ -0,0 +1,7 @@ +define("ace/snippets/swift",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "swift"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/swig.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/swig.js new file mode 100644 index 0000000..825e6b2 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/swig.js @@ -0,0 +1,7 @@ +define("ace/snippets/swig",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "swig"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tcl.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tcl.js new file mode 100644 index 0000000..9a266ad --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tcl.js @@ -0,0 +1,99 @@ +define("ace/snippets/tcl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# #!/usr/bin/env tclsh\n\ +snippet #!\n\ + #!/usr/bin/env tclsh\n\ + \n\ +# Process\n\ +snippet pro\n\ + proc ${1:function_name} {${2:args}} {\n\ + ${3:#body ...}\n\ + }\n\ +#xif\n\ +snippet xif\n\ + ${1:expr}? ${2:true} : ${3:false}\n\ +# Conditional\n\ +snippet if\n\ + if {${1}} {\n\ + ${2:# body...}\n\ + }\n\ +# Conditional if..else\n\ +snippet ife\n\ + if {${1}} {\n\ + ${2:# body...}\n\ + } else {\n\ + ${3:# else...}\n\ + }\n\ +# Conditional if..elsif..else\n\ +snippet ifee\n\ + if {${1}} {\n\ + ${2:# body...}\n\ + } elseif {${3}} {\n\ + ${4:# elsif...}\n\ + } else {\n\ + ${5:# else...}\n\ + }\n\ +# If catch then\n\ +snippet ifc\n\ + if { [catch {${1:#do something...}} ${2:err}] } {\n\ + ${3:# handle failure...}\n\ + }\n\ +# Catch\n\ +snippet catch\n\ + catch {${1}} ${2:err} ${3:options}\n\ +# While Loop\n\ +snippet wh\n\ + while {${1}} {\n\ + ${2:# body...}\n\ + }\n\ +# For Loop\n\ +snippet for\n\ + for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\n\ + ${4:# body...}\n\ + }\n\ +# Foreach Loop\n\ +snippet fore\n\ + foreach ${1:x} {${2:#list}} {\n\ + ${3:# body...}\n\ + }\n\ +# after ms script...\n\ +snippet af\n\ + after ${1:ms} ${2:#do something}\n\ +# after cancel id\n\ +snippet afc\n\ + after cancel ${1:id or script}\n\ +# after idle\n\ +snippet afi\n\ + after idle ${1:script}\n\ +# after info id\n\ +snippet afin\n\ + after info ${1:id}\n\ +# Expr\n\ +snippet exp\n\ + expr {${1:#expression here}}\n\ +# Switch\n\ +snippet sw\n\ + switch ${1:var} {\n\ + ${3:pattern 1} {\n\ + ${4:#do something}\n\ + }\n\ + default {\n\ + ${2:#do something}\n\ + }\n\ + }\n\ +# Case\n\ +snippet ca\n\ + ${1:pattern} {\n\ + ${2:#do something}\n\ + }${3}\n\ +# Namespace eval\n\ +snippet ns\n\ + namespace eval ${1:path} {${2:#script...}}\n\ +# Namespace current\n\ +snippet nsc\n\ + namespace current\n\ +"; +exports.scope = "tcl"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tex.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tex.js new file mode 100644 index 0000000..7ee645a --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tex.js @@ -0,0 +1,197 @@ +define("ace/snippets/tex",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "#PREAMBLE\n\ +#newcommand\n\ +snippet nc\n\ + \\newcommand{\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\n\ +#usepackage\n\ +snippet up\n\ + \\usepackage[${1:[options}]{${2:package}}\n\ +#newunicodechar\n\ +snippet nuc\n\ + \\newunicodechar{${1}}{${2:\\ensuremath}${3:tex-substitute}}}\n\ +#DeclareMathOperator\n\ +snippet dmo\n\ + \\DeclareMathOperator{${1}}{${2}}\n\ +\n\ +#DOCUMENT\n\ +# \\begin{}...\\end{}\n\ +snippet begin\n\ + \\begin{${1:env}}\n\ + ${2}\n\ + \\end{$1}\n\ +# Tabular\n\ +snippet tab\n\ + \\begin{${1:tabular}}{${2:c}}\n\ + ${3}\n\ + \\end{$1}\n\ +snippet thm\n\ + \\begin[${1:author}]{${2:thm}}\n\ + ${3}\n\ + \\end{$1}\n\ +snippet center\n\ + \\begin{center}\n\ + ${1}\n\ + \\end{center}\n\ +# Align(ed)\n\ +snippet ali\n\ + \\begin{align${1:ed}}\n\ + ${2}\n\ + \\end{align$1}\n\ +# Gather(ed)\n\ +snippet gat\n\ + \\begin{gather${1:ed}}\n\ + ${2}\n\ + \\end{gather$1}\n\ +# Equation\n\ +snippet eq\n\ + \\begin{equation}\n\ + ${1}\n\ + \\end{equation}\n\ +# Equation\n\ +snippet eq*\n\ + \\begin{equation*}\n\ + ${1}\n\ + \\end{equation*}\n\ +# Unnumbered Equation\n\ +snippet \\\n\ + \\[\n\ + ${1}\n\ + \\]\n\ +# Enumerate\n\ +snippet enum\n\ + \\begin{enumerate}\n\ + \\item ${1}\n\ + \\end{enumerate}\n\ +# Itemize\n\ +snippet itemize\n\ + \\begin{itemize}\n\ + \\item ${1}\n\ + \\end{itemize}\n\ +# Description\n\ +snippet desc\n\ + \\begin{description}\n\ + \\item[${1}] ${2}\n\ + \\end{description}\n\ +# Matrix\n\ +snippet mat\n\ + \\begin{${1:p/b/v/V/B/small}matrix}\n\ + ${2}\n\ + \\end{$1matrix}\n\ +# Cases\n\ +snippet cas\n\ + \\begin{cases}\n\ + ${1:equation}, &\\text{ if }${2:case}\\\\\n\ + ${3}\n\ + \\end{cases}\n\ +# Split\n\ +snippet spl\n\ + \\begin{split}\n\ + ${1}\n\ + \\end{split}\n\ +# Part\n\ +snippet part\n\ + \\part{${1:part name}} % (fold)\n\ + \\label{prt:${2:$1}}\n\ + ${3}\n\ + % part $2 (end)\n\ +# Chapter\n\ +snippet cha\n\ + \\chapter{${1:chapter name}}\n\ + \\label{cha:${2:$1}}\n\ + ${3}\n\ +# Section\n\ +snippet sec\n\ + \\section{${1:section name}}\n\ + \\label{sec:${2:$1}}\n\ + ${3}\n\ +# Sub Section\n\ +snippet sub\n\ + \\subsection{${1:subsection name}}\n\ + \\label{sub:${2:$1}}\n\ + ${3}\n\ +# Sub Sub Section\n\ +snippet subs\n\ + \\subsubsection{${1:subsubsection name}}\n\ + \\label{ssub:${2:$1}}\n\ + ${3}\n\ +# Paragraph\n\ +snippet par\n\ + \\paragraph{${1:paragraph name}}\n\ + \\label{par:${2:$1}}\n\ + ${3}\n\ +# Sub Paragraph\n\ +snippet subp\n\ + \\subparagraph{${1:subparagraph name}}\n\ + \\label{subp:${2:$1}}\n\ + ${3}\n\ +#References\n\ +snippet itd\n\ + \\item[${1:description}] ${2:item}\n\ +snippet figure\n\ + ${1:Figure}~\\ref{${2:fig:}}${3}\n\ +snippet table\n\ + ${1:Table}~\\ref{${2:tab:}}${3}\n\ +snippet listing\n\ + ${1:Listing}~\\ref{${2:list}}${3}\n\ +snippet section\n\ + ${1:Section}~\\ref{${2:sec:}}${3}\n\ +snippet page\n\ + ${1:page}~\\pageref{${2}}${3}\n\ +snippet index\n\ + \\index{${1:index}}${2}\n\ +#Citations\n\ +snippet cite\n\ + \\cite[${1}]{${2}}${3}\n\ +snippet fcite\n\ + \\footcite[${1}]{${2}}${3}\n\ +#Formating text: italic, bold, underline, small capital, emphase ..\n\ +snippet it\n\ + \\textit{${1:text}}\n\ +snippet bf\n\ + \\textbf{${1:text}}\n\ +snippet under\n\ + \\underline{${1:text}}\n\ +snippet emp\n\ + \\emph{${1:text}}\n\ +snippet sc\n\ + \\textsc{${1:text}}\n\ +#Choosing font\n\ +snippet sf\n\ + \\textsf{${1:text}}\n\ +snippet rm\n\ + \\textrm{${1:text}}\n\ +snippet tt\n\ + \\texttt{${1:text}}\n\ +#misc\n\ +snippet ft\n\ + \\footnote{${1:text}}\n\ +snippet fig\n\ + \\begin{figure}\n\ + \\begin{center}\n\ + \\includegraphics[scale=${1}]{Figures/${2}}\n\ + \\end{center}\n\ + \\caption{${3}}\n\ + \\label{fig:${4}}\n\ + \\end{figure}\n\ +snippet tikz\n\ + \\begin{figure}\n\ + \\begin{center}\n\ + \\begin{tikzpicture}[scale=${1:1}]\n\ + ${2}\n\ + \\end{tikzpicture}\n\ + \\end{center}\n\ + \\caption{${3}}\n\ + \\label{fig:${4}}\n\ + \\end{figure}\n\ +#math\n\ +snippet stackrel\n\ + \\stackrel{${1:above}}{${2:below}} ${3}\n\ +snippet frac\n\ + \\frac{${1:num}}{${2:denom}}\n\ +snippet sum\n\ + \\sum^{${1:n}}_{${2:i=1}}{${3}}"; +exports.scope = "tex"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/text.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/text.js new file mode 100644 index 0000000..4253030 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/text.js @@ -0,0 +1,7 @@ +define("ace/snippets/text",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "text"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/textile.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/textile.js new file mode 100644 index 0000000..5fb5306 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/textile.js @@ -0,0 +1,37 @@ +define("ace/snippets/textile",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Jekyll post header\n\ +snippet header\n\ + ---\n\ + title: ${1:title}\n\ + layout: post\n\ + date: ${2:date} ${3:hour:minute:second} -05:00\n\ + ---\n\ +\n\ +# Image\n\ +snippet img\n\ + !${1:url}(${2:title}):${3:link}!\n\ +\n\ +# Table\n\ +snippet |\n\ + |${1}|${2}\n\ +\n\ +# Link\n\ +snippet link\n\ + \"${1:link text}\":${2:url}\n\ +\n\ +# Acronym\n\ +snippet (\n\ + (${1:Expand acronym})${2}\n\ +\n\ +# Footnote\n\ +snippet fn\n\ + [${1:ref number}] ${3}\n\ +\n\ + fn$1. ${2:footnote}\n\ + \n\ +"; +exports.scope = "textile"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/toml.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/toml.js new file mode 100644 index 0000000..dfe8f6b --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/toml.js @@ -0,0 +1,7 @@ +define("ace/snippets/toml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "toml"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tsx.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tsx.js new file mode 100644 index 0000000..b78f629 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/tsx.js @@ -0,0 +1,7 @@ +define("ace/snippets/tsx",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "tsx"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/turtle.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/turtle.js new file mode 100644 index 0000000..c560e27 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/turtle.js @@ -0,0 +1,7 @@ +define("ace/snippets/turtle",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/twig.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/twig.js new file mode 100644 index 0000000..ec656ea --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/twig.js @@ -0,0 +1,7 @@ +define("ace/snippets/twig",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "twig"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/typescript.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/typescript.js new file mode 100644 index 0000000..144d3be --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/typescript.js @@ -0,0 +1,7 @@ +define("ace/snippets/typescript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "typescript"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vala.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vala.js new file mode 100644 index 0000000..57f6627 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vala.js @@ -0,0 +1,193 @@ +define("ace/snippets/vala",["require","exports","module"], function(require, exports, module) { +"use strict"; +exports.snippets = [ + { + "content": "case ${1:condition}:\n\t$0\n\tbreak;\n", + "name": "case", + "scope": "vala", + "tabTrigger": "case" + }, + { + "content": "/**\n * ${6}\n */\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\n\n\t/**\n\t * ${7}\n\t */\n\tpublic ${2}(${4}) {\n\t\t${5}\n\t}\n\n\t$0\n}", + "name": "class", + "scope": "vala", + "tabTrigger": "class" + }, + { + "content": "(${1}) => {\n\t${0}\n}\n", + "name": "closure", + "scope": "vala", + "tabTrigger": "=>" + }, + { + "content": "/*\n * $0\n */", + "name": "Comment (multiline)", + "scope": "vala", + "tabTrigger": "/*" + }, + { + "content": "Console.WriteLine($1);\n$0", + "name": "Console.WriteLine (writeline)", + "scope": "vala", + "tabTrigger": "writeline" + }, + { + "content": "[DBus(name = \"$0\")]", + "name": "DBus annotation", + "scope": "vala", + "tabTrigger": "[DBus" + }, + { + "content": "delegate ${1:void} ${2:DelegateName}($0);", + "name": "delegate", + "scope": "vala", + "tabTrigger": "delegate" + }, + { + "content": "do {\n\t$0\n} while ($1);\n", + "name": "do while", + "scope": "vala", + "tabTrigger": "dowhile" + }, + { + "content": "/**\n * $0\n */", + "name": "DocBlock", + "scope": "vala", + "tabTrigger": "/**" + }, + { + "content": "else if ($1) {\n\t$0\n}\n", + "name": "else if (elseif)", + "scope": "vala", + "tabTrigger": "elseif" + }, + { + "content": "else {\n\t$0\n}", + "name": "else", + "scope": "vala", + "tabTrigger": "else" + }, + { + "content": "enum {$1:EnumName} {\n\t$0\n}", + "name": "enum", + "scope": "vala", + "tabTrigger": "enum" + }, + { + "content": "public errordomain ${1:Error} {\n\t$0\n}", + "name": "error domain", + "scope": "vala", + "tabTrigger": "errordomain" + }, + { + "content": "for ($1;$2;$3) {\n\t$0\n}", + "name": "for", + "scope": "vala", + "tabTrigger": "for" + }, + { + "content": "foreach ($1 in $2) {\n\t$0\n}", + "name": "foreach", + "scope": "vala", + "tabTrigger": "foreach" + }, + { + "content": "Gee.ArrayList<${1:G}>($0);", + "name": "Gee.ArrayList", + "scope": "vala", + "tabTrigger": "ArrayList" + }, + { + "content": "Gee.HashMap<${1:K},${2:V}>($0);", + "name": "Gee.HashMap", + "scope": "vala", + "tabTrigger": "HashMap" + }, + { + "content": "Gee.HashSet<${1:G}>($0);", + "name": "Gee.HashSet", + "scope": "vala", + "tabTrigger": "HashSet" + }, + { + "content": "if ($1) {\n\t$0\n}", + "name": "if", + "scope": "vala", + "tabTrigger": "if" + }, + { + "content": "interface ${1:InterfaceName}{$2: : SuperInterface} {\n\t$0\n}", + "name": "interface", + "scope": "vala", + "tabTrigger": "interface" + }, + { + "content": "public static int main(string [] argv) {\n\t${0}\n\treturn 0;\n}", + "name": "Main function", + "scope": "vala", + "tabTrigger": "main" + }, + { + "content": "namespace $1 {\n\t$0\n}\n", + "name": "namespace (ns)", + "scope": "vala", + "tabTrigger": "ns" + }, + { + "content": "stdout.printf($0);", + "name": "printf", + "scope": "vala", + "tabTrigger": "printf" + }, + { + "content": "${1:public} ${2:Type} ${3:Name} {\n\tset {\n\t\t$0\n\t}\n\tget {\n\n\t}\n}", + "name": "property (prop)", + "scope": "vala", + "tabTrigger": "prop" + }, + { + "content": "${1:public} ${2:Type} ${3:Name} {\n\tget {\n\t\t$0\n\t}\n}", + "name": "read-only property (roprop)", + "scope": "vala", + "tabTrigger": "roprop" + }, + { + "content": "@\"${1:\\$var}\"", + "name": "String template (@)", + "scope": "vala", + "tabTrigger": "@" + }, + { + "content": "struct ${1:StructName} {\n\t$0\n}", + "name": "struct", + "scope": "vala", + "tabTrigger": "struct" + }, + { + "content": "switch ($1) {\n\t$0\n}", + "name": "switch", + "scope": "vala", + "tabTrigger": "switch" + }, + { + "content": "try {\n\t$2\n} catch (${1:Error} e) {\n\t$0\n}", + "name": "try/catch", + "scope": "vala", + "tabTrigger": "try" + }, + { + "content": "\"\"\"$0\"\"\";", + "name": "Verbatim string (\"\"\")", + "scope": "vala", + "tabTrigger": "verbatim" + }, + { + "content": "while ($1) {\n\t$0\n}", + "name": "while", + "scope": "vala", + "tabTrigger": "while" + } +]; +exports.scope = ""; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vbscript.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vbscript.js new file mode 100644 index 0000000..02b94ce --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vbscript.js @@ -0,0 +1,7 @@ +define("ace/snippets/vbscript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "vbscript"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/velocity.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/velocity.js new file mode 100644 index 0000000..ad945bd --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/velocity.js @@ -0,0 +1,36 @@ +define("ace/snippets/velocity",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# macro\n\ +snippet #macro\n\ + #macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n\ + ${3:## macro code}\n\ + #end\n\ +# foreach\n\ +snippet #foreach\n\ + #foreach ( ${1:\\$item} in ${2:\\$collection} )\n\ + ${3:## foreach code}\n\ + #end\n\ +# if\n\ +snippet #if\n\ + #if ( ${1:true} )\n\ + ${0}\n\ + #end\n\ +# if ... else\n\ +snippet #ife\n\ + #if ( ${1:true} )\n\ + ${2}\n\ + #else\n\ + ${0}\n\ + #end\n\ +#import\n\ +snippet #import\n\ + #import ( \"${1:path/to/velocity/format}\" )\n\ +# set\n\ +snippet #set\n\ + #set ( $${1:var} = ${0} )\n\ +"; +exports.scope = "velocity"; +exports.includeScopes = ["html", "javascript", "css"]; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/verilog.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/verilog.js new file mode 100644 index 0000000..fa3db8e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/verilog.js @@ -0,0 +1,7 @@ +define("ace/snippets/verilog",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "verilog"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vhdl.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vhdl.js new file mode 100644 index 0000000..e06d2cf --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/vhdl.js @@ -0,0 +1,7 @@ +define("ace/snippets/vhdl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "vhdl"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/wollok.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/wollok.js new file mode 100644 index 0000000..a859c6e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/wollok.js @@ -0,0 +1,91 @@ +define("ace/snippets/wollok",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "##\n\ +## Basic Java packages and import\n\ +snippet im\n\ + import\n\ +snippet w.l\n\ + wollok.lang\n\ +snippet w.i\n\ + wollok.lib\n\ +\n\ +## Class and object\n\ +snippet cl\n\ + class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\ +snippet obj\n\ + object ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\n\ +snippet te\n\ + test ${1:`Filename(\"\", \"untitled\")`}\n\ +\n\ +##\n\ +## Enhancements\n\ +snippet inh\n\ + inherits\n\ +\n\ +##\n\ +## Comments\n\ +snippet /*\n\ + /*\n\ + * ${1}\n\ + */\n\ +\n\ +##\n\ +## Control Statements\n\ +snippet el\n\ + else\n\ +snippet if\n\ + if (${1}) ${2}\n\ +\n\ +##\n\ +## Create a Method\n\ +snippet m\n\ + method ${1:method}(${2}) ${5}\n\ +\n\ +## \n\ +## Tests\n\ +snippet as\n\ + assert.equals(${1:expected}, ${2:actual})\n\ +\n\ +##\n\ +## Exceptions\n\ +snippet ca\n\ + catch ${1:e} : (${2:Exception} ) ${3}\n\ +snippet thr\n\ + throw\n\ +snippet try\n\ + try {\n\ + ${3}\n\ + } catch ${1:e} : ${2:Exception} {\n\ + }\n\ +\n\ +##\n\ +## Javadocs\n\ +snippet /**\n\ + /**\n\ + * ${1}\n\ + */\n\ +\n\ +##\n\ +## Print Methods\n\ +snippet print\n\ + console.println(\"${1:Message}\")\n\ +\n\ +##\n\ +## Setter and Getter Methods\n\ +snippet set\n\ + method set${1:}(${2:}) {\n\ + $1 = $2\n\ + }\n\ +snippet get\n\ + method get${1:}() {\n\ + return ${1:};\n\ + }\n\ +\n\ +##\n\ +## Terminate Methods or Loops\n\ +snippet re\n\ + return"; +exports.scope = "wollok"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/xml.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/xml.js new file mode 100644 index 0000000..de14ce0 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/xml.js @@ -0,0 +1,7 @@ +define("ace/snippets/xml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "xml"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/xquery.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/xquery.js new file mode 100644 index 0000000..c45681f --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/xquery.js @@ -0,0 +1,68 @@ +define("ace/snippets/xquery",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet for\n\ + for $${1:item} in ${2:expr}\n\ +snippet return\n\ + return ${1:expr}\n\ +snippet import\n\ + import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\ +snippet some\n\ + some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet every\n\ + every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet if\n\ + if(${1:true}) then ${2:expr} else ${3:true}\n\ +snippet switch\n\ + switch(${1:\"foo\"})\n\ + case ${2:\"foo\"}\n\ + return ${3:true}\n\ + default return ${4:false}\n\ +snippet try\n\ + try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\ +snippet tumbling\n\ + for tumbling window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet sliding\n\ + for sliding window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet let\n\ + let $${1:varname} := ${2:expr}\n\ +snippet group\n\ + group by $${1:varname} := ${2:expr}\n\ +snippet order\n\ + order by ${1:expr} ${2:descending}\n\ +snippet stable\n\ + stable order by ${1:expr}\n\ +snippet count\n\ + count $${1:varname}\n\ +snippet ordered\n\ + ordered { ${1:expr} }\n\ +snippet unordered\n\ + unordered { ${1:expr} }\n\ +snippet treat \n\ + treat as ${1:expr}\n\ +snippet castable\n\ + castable as ${1:atomicType}\n\ +snippet cast\n\ + cast as ${1:atomicType}\n\ +snippet typeswitch\n\ + typeswitch(${1:expr})\n\ + case ${2:type} return ${3:expr}\n\ + default return ${4:expr}\n\ +snippet var\n\ + declare variable $${1:varname} := ${2:expr};\n\ +snippet fn\n\ + declare function ${1:ns}:${2:name}(){\n\ + ${3:expr}\n\ + };\n\ +snippet module\n\ + module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\ +"; +exports.scope = "xquery"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/yaml.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/yaml.js new file mode 100644 index 0000000..f3f31fe --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/snippets/yaml.js @@ -0,0 +1,7 @@ +define("ace/snippets/yaml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "yaml"; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-ambiance.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-ambiance.js new file mode 100644 index 0000000..7f71e01 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-ambiance.js @@ -0,0 +1,182 @@ +define("ace/theme/ambiance",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-ambiance"; +exports.cssText = ".ace-ambiance .ace_gutter {\ +background-color: #3d3d3d;\ +background-image: -moz-linear-gradient(left, #3D3D3D, #333);\ +background-image: -ms-linear-gradient(left, #3D3D3D, #333);\ +background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3D3D3D), to(#333));\ +background-image: -webkit-linear-gradient(left, #3D3D3D, #333);\ +background-image: -o-linear-gradient(left, #3D3D3D, #333);\ +background-image: linear-gradient(left, #3D3D3D, #333);\ +background-repeat: repeat-x;\ +border-right: 1px solid #4d4d4d;\ +text-shadow: 0px 1px 1px #4d4d4d;\ +color: #222;\ +}\ +.ace-ambiance .ace_gutter-layer {\ +background: repeat left top;\ +}\ +.ace-ambiance .ace_gutter-active-line {\ +background-color: #3F3F3F;\ +}\ +.ace-ambiance .ace_fold-widget {\ +text-align: center;\ +}\ +.ace-ambiance .ace_fold-widget:hover {\ +color: #777;\ +}\ +.ace-ambiance .ace_fold-widget.ace_start,\ +.ace-ambiance .ace_fold-widget.ace_end,\ +.ace-ambiance .ace_fold-widget.ace_closed{\ +background: none;\ +border: none;\ +box-shadow: none;\ +}\ +.ace-ambiance .ace_fold-widget.ace_start:after {\ +content: '▾'\ +}\ +.ace-ambiance .ace_fold-widget.ace_end:after {\ +content: '▴'\ +}\ +.ace-ambiance .ace_fold-widget.ace_closed:after {\ +content: '‣'\ +}\ +.ace-ambiance .ace_print-margin {\ +border-left: 1px dotted #2D2D2D;\ +right: 0;\ +background: #262626;\ +}\ +.ace-ambiance .ace_scroller {\ +-webkit-box-shadow: inset 0 0 10px black;\ +-moz-box-shadow: inset 0 0 10px black;\ +-o-box-shadow: inset 0 0 10px black;\ +box-shadow: inset 0 0 10px black;\ +}\ +.ace-ambiance {\ +color: #E6E1DC;\ +background-color: #202020;\ +}\ +.ace-ambiance .ace_cursor {\ +border-left: 1px solid #7991E8;\ +}\ +.ace-ambiance .ace_overwrite-cursors .ace_cursor {\ +border: 1px solid #FFE300;\ +background: #766B13;\ +}\ +.ace-ambiance.normal-mode .ace_cursor-layer {\ +z-index: 0;\ +}\ +.ace-ambiance .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20);\ +}\ +.ace-ambiance .ace_marker-layer .ace_selected-word {\ +border-radius: 4px;\ +border: 8px solid #3f475d;\ +box-shadow: 0 0 4px black;\ +}\ +.ace-ambiance .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174);\ +}\ +.ace-ambiance .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.25);\ +}\ +.ace-ambiance .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.031);\ +}\ +.ace-ambiance .ace_invisible {\ +color: #333;\ +}\ +.ace-ambiance .ace_paren {\ +color: #24C2C7;\ +}\ +.ace-ambiance .ace_keyword {\ +color: #cda869;\ +}\ +.ace-ambiance .ace_keyword.ace_operator {\ +color: #fa8d6a;\ +}\ +.ace-ambiance .ace_punctuation.ace_operator {\ +color: #fa8d6a;\ +}\ +.ace-ambiance .ace_identifier {\ +}\ +.ace-ambiance .ace-statement {\ +color: #cda869;\ +}\ +.ace-ambiance .ace_constant {\ +color: #CF7EA9;\ +}\ +.ace-ambiance .ace_constant.ace_language {\ +color: #CF7EA9;\ +}\ +.ace-ambiance .ace_constant.ace_library {\ +}\ +.ace-ambiance .ace_constant.ace_numeric {\ +color: #78CF8A;\ +}\ +.ace-ambiance .ace_invalid {\ +text-decoration: underline;\ +}\ +.ace-ambiance .ace_invalid.ace_illegal {\ +color:#F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75);\ +}\ +.ace-ambiance .ace_invalid,\ +.ace-ambiance .ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #D2A8A1;\ +}\ +.ace-ambiance .ace_support {\ +color: #9B859D;\ +}\ +.ace-ambiance .ace_support.ace_function {\ +color: #DAD085;\ +}\ +.ace-ambiance .ace_function.ace_buildin {\ +color: #9b859d;\ +}\ +.ace-ambiance .ace_string {\ +color: #8f9d6a;\ +}\ +.ace-ambiance .ace_string.ace_regexp {\ +color: #DAD085;\ +}\ +.ace-ambiance .ace_comment {\ +font-style: italic;\ +color: #555;\ +}\ +.ace-ambiance .ace_comment.ace_doc {\ +}\ +.ace-ambiance .ace_comment.ace_doc.ace_tag {\ +color: #666;\ +font-style: normal;\ +}\ +.ace-ambiance .ace_definition,\ +.ace-ambiance .ace_type {\ +color: #aac6e3;\ +}\ +.ace-ambiance .ace_variable {\ +color: #9999cc;\ +}\ +.ace-ambiance .ace_variable.ace_language {\ +color: #9b859d;\ +}\ +.ace-ambiance .ace_xml-pe {\ +color: #494949;\ +}\ +.ace-ambiance .ace_gutter-layer,\ +.ace-ambiance .ace_text-layer {\ +background-image: url(\"data:image/png;base64,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\");\ +}\ +.ace-ambiance .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-chaos.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-chaos.js new file mode 100644 index 0000000..2f5ff56 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-chaos.js @@ -0,0 +1,156 @@ +define("ace/theme/chaos",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-chaos"; +exports.cssText = ".ace-chaos .ace_gutter {\ +background: #141414;\ +color: #595959;\ +border-right: 1px solid #282828;\ +}\ +.ace-chaos .ace_gutter-cell.ace_warning {\ +background-image: none;\ +background: #FC0;\ +border-left: none;\ +padding-left: 0;\ +color: #000;\ +}\ +.ace-chaos .ace_gutter-cell.ace_error {\ +background-position: -6px center;\ +background-image: none;\ +background: #F10;\ +border-left: none;\ +padding-left: 0;\ +color: #000;\ +}\ +.ace-chaos .ace_print-margin {\ +border-left: 1px solid #555;\ +right: 0;\ +background: #1D1D1D;\ +}\ +.ace-chaos {\ +background-color: #161616;\ +color: #E6E1DC;\ +}\ +.ace-chaos .ace_cursor {\ +border-left: 2px solid #FFFFFF;\ +}\ +.ace-chaos .ace_cursor.ace_overwrite {\ +border-left: 0px;\ +border-bottom: 1px solid #FFFFFF;\ +}\ +.ace-chaos .ace_marker-layer .ace_selection {\ +background: #494836;\ +}\ +.ace-chaos .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174);\ +}\ +.ace-chaos .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #FCE94F;\ +}\ +.ace-chaos .ace_marker-layer .ace_active-line {\ +background: #333;\ +}\ +.ace-chaos .ace_gutter-active-line {\ +background-color: #222;\ +}\ +.ace-chaos .ace_invisible {\ +color: #404040;\ +}\ +.ace-chaos .ace_keyword {\ +color:#00698F;\ +}\ +.ace-chaos .ace_keyword.ace_operator {\ +color:#FF308F;\ +}\ +.ace-chaos .ace_constant {\ +color:#1EDAFB;\ +}\ +.ace-chaos .ace_constant.ace_language {\ +color:#FDC251;\ +}\ +.ace-chaos .ace_constant.ace_library {\ +color:#8DFF0A;\ +}\ +.ace-chaos .ace_constant.ace_numeric {\ +color:#58C554;\ +}\ +.ace-chaos .ace_invalid {\ +color:#FFFFFF;\ +background-color:#990000;\ +}\ +.ace-chaos .ace_invalid.ace_deprecated {\ +color:#FFFFFF;\ +background-color:#990000;\ +}\ +.ace-chaos .ace_support {\ +color: #999;\ +}\ +.ace-chaos .ace_support.ace_function {\ +color:#00AEEF;\ +}\ +.ace-chaos .ace_function {\ +color:#00AEEF;\ +}\ +.ace-chaos .ace_string {\ +color:#58C554;\ +}\ +.ace-chaos .ace_comment {\ +color:#555;\ +font-style:italic;\ +padding-bottom: 0px;\ +}\ +.ace-chaos .ace_variable {\ +color:#997744;\ +}\ +.ace-chaos .ace_meta.ace_tag {\ +color:#BE53E6;\ +}\ +.ace-chaos .ace_entity.ace_other.ace_attribute-name {\ +color:#FFFF89;\ +}\ +.ace-chaos .ace_markup.ace_underline {\ +text-decoration: underline;\ +}\ +.ace-chaos .ace_fold-widget {\ +text-align: center;\ +}\ +.ace-chaos .ace_fold-widget:hover {\ +color: #777;\ +}\ +.ace-chaos .ace_fold-widget.ace_start,\ +.ace-chaos .ace_fold-widget.ace_end,\ +.ace-chaos .ace_fold-widget.ace_closed{\ +background: none;\ +border: none;\ +box-shadow: none;\ +}\ +.ace-chaos .ace_fold-widget.ace_start:after {\ +content: '▾'\ +}\ +.ace-chaos .ace_fold-widget.ace_end:after {\ +content: '▴'\ +}\ +.ace-chaos .ace_fold-widget.ace_closed:after {\ +content: '‣'\ +}\ +.ace-chaos .ace_indent-guide {\ +border-right:1px dotted #333;\ +margin-right:-1px;\ +}\ +.ace-chaos .ace_fold { \ +background: #222; \ +border-radius: 3px; \ +color: #7AF; \ +border: none; \ +}\ +.ace-chaos .ace_fold:hover {\ +background: #CCC; \ +color: #000;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-chrome.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-chrome.js new file mode 100644 index 0000000..3b3b6cf --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-chrome.js @@ -0,0 +1,128 @@ +define("ace/theme/chrome",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-chrome"; +exports.cssText = ".ace-chrome .ace_gutter {\ +background: #ebebeb;\ +color: #333;\ +overflow : hidden;\ +}\ +.ace-chrome .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-chrome {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-chrome .ace_cursor {\ +color: black;\ +}\ +.ace-chrome .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-chrome .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-chrome .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-chrome .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-chrome .ace_invalid {\ +background-color: rgb(153, 0, 0);\ +color: white;\ +}\ +.ace-chrome .ace_fold {\ +}\ +.ace-chrome .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-chrome .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-chrome .ace_support.ace_type,\ +.ace-chrome .ace_support.ace_class\ +.ace-chrome .ace_support.ace_other {\ +color: rgb(109, 121, 222);\ +}\ +.ace-chrome .ace_variable.ace_parameter {\ +font-style:italic;\ +color:#FD971F;\ +}\ +.ace-chrome .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-chrome .ace_comment {\ +color: #236e24;\ +}\ +.ace-chrome .ace_comment.ace_doc {\ +color: #236e24;\ +}\ +.ace-chrome .ace_comment.ace_doc.ace_tag {\ +color: #236e24;\ +}\ +.ace-chrome .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-chrome .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-chrome .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-chrome .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-chrome .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-chrome .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-chrome .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-chrome .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-chrome .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-chrome .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-chrome .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-chrome .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-chrome .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-chrome .ace_storage,\ +.ace-chrome .ace_keyword,\ +.ace-chrome .ace_meta.ace_tag {\ +color: rgb(147, 15, 128);\ +}\ +.ace-chrome .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-chrome .ace_string {\ +color: #1A1AA6;\ +}\ +.ace-chrome .ace_entity.ace_other.ace_attribute-name {\ +color: #994409;\ +}\ +.ace-chrome .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-clouds.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-clouds.js new file mode 100644 index 0000000..0afddfc --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-clouds.js @@ -0,0 +1,95 @@ +define("ace/theme/clouds",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-clouds"; +exports.cssText = ".ace-clouds .ace_gutter {\ +background: #ebebeb;\ +color: #333\ +}\ +.ace-clouds .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-clouds {\ +background-color: #FFFFFF;\ +color: #000000\ +}\ +.ace-clouds .ace_cursor {\ +color: #000000\ +}\ +.ace-clouds .ace_marker-layer .ace_selection {\ +background: #BDD5FC\ +}\ +.ace-clouds.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FFFFFF;\ +}\ +.ace-clouds .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-clouds .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #BFBFBF\ +}\ +.ace-clouds .ace_marker-layer .ace_active-line {\ +background: #FFFBD1\ +}\ +.ace-clouds .ace_gutter-active-line {\ +background-color : #dcdcdc\ +}\ +.ace-clouds .ace_marker-layer .ace_selected-word {\ +border: 1px solid #BDD5FC\ +}\ +.ace-clouds .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-clouds .ace_keyword,\ +.ace-clouds .ace_meta,\ +.ace-clouds .ace_support.ace_constant.ace_property-value {\ +color: #AF956F\ +}\ +.ace-clouds .ace_keyword.ace_operator {\ +color: #484848\ +}\ +.ace-clouds .ace_keyword.ace_other.ace_unit {\ +color: #96DC5F\ +}\ +.ace-clouds .ace_constant.ace_language {\ +color: #39946A\ +}\ +.ace-clouds .ace_constant.ace_numeric {\ +color: #46A609\ +}\ +.ace-clouds .ace_constant.ace_character.ace_entity {\ +color: #BF78CC\ +}\ +.ace-clouds .ace_invalid {\ +background-color: #FF002A\ +}\ +.ace-clouds .ace_fold {\ +background-color: #AF956F;\ +border-color: #000000\ +}\ +.ace-clouds .ace_storage,\ +.ace-clouds .ace_support.ace_class,\ +.ace-clouds .ace_support.ace_function,\ +.ace-clouds .ace_support.ace_other,\ +.ace-clouds .ace_support.ace_type {\ +color: #C52727\ +}\ +.ace-clouds .ace_string {\ +color: #5D90CD\ +}\ +.ace-clouds .ace_comment {\ +color: #BCC8BA\ +}\ +.ace-clouds .ace_entity.ace_name.ace_tag,\ +.ace-clouds .ace_entity.ace_other.ace_attribute-name {\ +color: #606060\ +}\ +.ace-clouds .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-clouds_midnight.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-clouds_midnight.js new file mode 100644 index 0000000..6d439f5 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-clouds_midnight.js @@ -0,0 +1,96 @@ +define("ace/theme/clouds_midnight",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-clouds-midnight"; +exports.cssText = ".ace-clouds-midnight .ace_gutter {\ +background: #232323;\ +color: #929292\ +}\ +.ace-clouds-midnight .ace_print-margin {\ +width: 1px;\ +background: #232323\ +}\ +.ace-clouds-midnight {\ +background-color: #191919;\ +color: #929292\ +}\ +.ace-clouds-midnight .ace_cursor {\ +color: #7DA5DC\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_selection {\ +background: #000000\ +}\ +.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #191919;\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #BFBFBF\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_active-line {\ +background: rgba(215, 215, 215, 0.031)\ +}\ +.ace-clouds-midnight .ace_gutter-active-line {\ +background-color: rgba(215, 215, 215, 0.031)\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_selected-word {\ +border: 1px solid #000000\ +}\ +.ace-clouds-midnight .ace_invisible {\ +color: #666\ +}\ +.ace-clouds-midnight .ace_keyword,\ +.ace-clouds-midnight .ace_meta,\ +.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {\ +color: #927C5D\ +}\ +.ace-clouds-midnight .ace_keyword.ace_operator {\ +color: #4B4B4B\ +}\ +.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {\ +color: #366F1A\ +}\ +.ace-clouds-midnight .ace_constant.ace_language {\ +color: #39946A\ +}\ +.ace-clouds-midnight .ace_constant.ace_numeric {\ +color: #46A609\ +}\ +.ace-clouds-midnight .ace_constant.ace_character.ace_entity {\ +color: #A165AC\ +}\ +.ace-clouds-midnight .ace_invalid {\ +color: #FFFFFF;\ +background-color: #E92E2E\ +}\ +.ace-clouds-midnight .ace_fold {\ +background-color: #927C5D;\ +border-color: #929292\ +}\ +.ace-clouds-midnight .ace_storage,\ +.ace-clouds-midnight .ace_support.ace_class,\ +.ace-clouds-midnight .ace_support.ace_function,\ +.ace-clouds-midnight .ace_support.ace_other,\ +.ace-clouds-midnight .ace_support.ace_type {\ +color: #E92E2E\ +}\ +.ace-clouds-midnight .ace_string {\ +color: #5D90CD\ +}\ +.ace-clouds-midnight .ace_comment {\ +color: #3C403B\ +}\ +.ace-clouds-midnight .ace_entity.ace_name.ace_tag,\ +.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\ +color: #606060\ +}\ +.ace-clouds-midnight .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-cobalt.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-cobalt.js new file mode 100644 index 0000000..e013de5 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-cobalt.js @@ -0,0 +1,113 @@ +define("ace/theme/cobalt",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-cobalt"; +exports.cssText = ".ace-cobalt .ace_gutter {\ +background: #011e3a;\ +color: rgb(128,145,160)\ +}\ +.ace-cobalt .ace_print-margin {\ +width: 1px;\ +background: #555555\ +}\ +.ace-cobalt {\ +background-color: #002240;\ +color: #FFFFFF\ +}\ +.ace-cobalt .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-cobalt .ace_marker-layer .ace_selection {\ +background: rgba(179, 101, 57, 0.75)\ +}\ +.ace-cobalt.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002240;\ +}\ +.ace-cobalt .ace_marker-layer .ace_step {\ +background: rgb(127, 111, 19)\ +}\ +.ace-cobalt .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.15)\ +}\ +.ace-cobalt .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.35)\ +}\ +.ace-cobalt .ace_gutter-active-line {\ +background-color: rgba(0, 0, 0, 0.35)\ +}\ +.ace-cobalt .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(179, 101, 57, 0.75)\ +}\ +.ace-cobalt .ace_invisible {\ +color: rgba(255, 255, 255, 0.15)\ +}\ +.ace-cobalt .ace_keyword,\ +.ace-cobalt .ace_meta {\ +color: #FF9D00\ +}\ +.ace-cobalt .ace_constant,\ +.ace-cobalt .ace_constant.ace_character,\ +.ace-cobalt .ace_constant.ace_character.ace_escape,\ +.ace-cobalt .ace_constant.ace_other {\ +color: #FF628C\ +}\ +.ace-cobalt .ace_invalid {\ +color: #F8F8F8;\ +background-color: #800F00\ +}\ +.ace-cobalt .ace_support {\ +color: #80FFBB\ +}\ +.ace-cobalt .ace_support.ace_constant {\ +color: #EB939A\ +}\ +.ace-cobalt .ace_fold {\ +background-color: #FF9D00;\ +border-color: #FFFFFF\ +}\ +.ace-cobalt .ace_support.ace_function {\ +color: #FFB054\ +}\ +.ace-cobalt .ace_storage {\ +color: #FFEE80\ +}\ +.ace-cobalt .ace_entity {\ +color: #FFDD00\ +}\ +.ace-cobalt .ace_string {\ +color: #3AD900\ +}\ +.ace-cobalt .ace_string.ace_regexp {\ +color: #80FFC2\ +}\ +.ace-cobalt .ace_comment {\ +font-style: italic;\ +color: #0088FF\ +}\ +.ace-cobalt .ace_heading,\ +.ace-cobalt .ace_markup.ace_heading {\ +color: #C8E4FD;\ +background-color: #001221\ +}\ +.ace-cobalt .ace_list,\ +.ace-cobalt .ace_markup.ace_list {\ +background-color: #130D26\ +}\ +.ace-cobalt .ace_variable {\ +color: #CCCCCC\ +}\ +.ace-cobalt .ace_variable.ace_language {\ +color: #FF80E1\ +}\ +.ace-cobalt .ace_meta.ace_tag {\ +color: #9EFFFF\ +}\ +.ace-cobalt .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-crimson_editor.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-crimson_editor.js new file mode 100644 index 0000000..a71cf6a --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-crimson_editor.js @@ -0,0 +1,118 @@ +define("ace/theme/crimson_editor",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +exports.isDark = false; +exports.cssText = ".ace-crimson-editor .ace_gutter {\ +background: #ebebeb;\ +color: #333;\ +overflow : hidden;\ +}\ +.ace-crimson-editor .ace_gutter-layer {\ +width: 100%;\ +text-align: right;\ +}\ +.ace-crimson-editor .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-crimson-editor {\ +background-color: #FFFFFF;\ +color: rgb(64, 64, 64);\ +}\ +.ace-crimson-editor .ace_cursor {\ +color: black;\ +}\ +.ace-crimson-editor .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-crimson-editor .ace_identifier {\ +color: black;\ +}\ +.ace-crimson-editor .ace_keyword {\ +color: blue;\ +}\ +.ace-crimson-editor .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-crimson-editor .ace_constant.ace_language {\ +color: rgb(255, 156, 0);\ +}\ +.ace-crimson-editor .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-crimson-editor .ace_invalid {\ +text-decoration: line-through;\ +color: rgb(224, 0, 0);\ +}\ +.ace-crimson-editor .ace_fold {\ +}\ +.ace-crimson-editor .ace_support.ace_function {\ +color: rgb(192, 0, 0);\ +}\ +.ace-crimson-editor .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-crimson-editor .ace_support.ace_type,\ +.ace-crimson-editor .ace_support.ace_class {\ +color: rgb(109, 121, 222);\ +}\ +.ace-crimson-editor .ace_keyword.ace_operator {\ +color: rgb(49, 132, 149);\ +}\ +.ace-crimson-editor .ace_string {\ +color: rgb(128, 0, 128);\ +}\ +.ace-crimson-editor .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-crimson-editor .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-crimson-editor .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-crimson-editor .ace_constant.ace_numeric {\ +color: rgb(0, 0, 64);\ +}\ +.ace-crimson-editor .ace_variable {\ +color: rgb(0, 64, 128);\ +}\ +.ace-crimson-editor .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_active-line {\ +background: rgb(232, 242, 254);\ +}\ +.ace-crimson-editor .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-crimson-editor .ace_meta.ace_tag {\ +color:rgb(28, 2, 255);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-crimson-editor .ace_string.ace_regex {\ +color: rgb(192, 0, 192);\ +}\ +.ace-crimson-editor .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + +exports.cssClass = "ace-crimson-editor"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dawn.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dawn.js new file mode 100644 index 0000000..ffbc2b8 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dawn.js @@ -0,0 +1,108 @@ +define("ace/theme/dawn",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-dawn"; +exports.cssText = ".ace-dawn .ace_gutter {\ +background: #ebebeb;\ +color: #333\ +}\ +.ace-dawn .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-dawn {\ +background-color: #F9F9F9;\ +color: #080808\ +}\ +.ace-dawn .ace_cursor {\ +color: #000000\ +}\ +.ace-dawn .ace_marker-layer .ace_selection {\ +background: rgba(39, 95, 255, 0.30)\ +}\ +.ace-dawn.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #F9F9F9;\ +}\ +.ace-dawn .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-dawn .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(75, 75, 126, 0.50)\ +}\ +.ace-dawn .ace_marker-layer .ace_active-line {\ +background: rgba(36, 99, 180, 0.12)\ +}\ +.ace-dawn .ace_gutter-active-line {\ +background-color : #dcdcdc\ +}\ +.ace-dawn .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(39, 95, 255, 0.30)\ +}\ +.ace-dawn .ace_invisible {\ +color: rgba(75, 75, 126, 0.50)\ +}\ +.ace-dawn .ace_keyword,\ +.ace-dawn .ace_meta {\ +color: #794938\ +}\ +.ace-dawn .ace_constant,\ +.ace-dawn .ace_constant.ace_character,\ +.ace-dawn .ace_constant.ace_character.ace_escape,\ +.ace-dawn .ace_constant.ace_other {\ +color: #811F24\ +}\ +.ace-dawn .ace_invalid.ace_illegal {\ +text-decoration: underline;\ +font-style: italic;\ +color: #F8F8F8;\ +background-color: #B52A1D\ +}\ +.ace-dawn .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #B52A1D\ +}\ +.ace-dawn .ace_support {\ +color: #691C97\ +}\ +.ace-dawn .ace_support.ace_constant {\ +color: #B4371F\ +}\ +.ace-dawn .ace_fold {\ +background-color: #794938;\ +border-color: #080808\ +}\ +.ace-dawn .ace_list,\ +.ace-dawn .ace_markup.ace_list,\ +.ace-dawn .ace_support.ace_function {\ +color: #693A17\ +}\ +.ace-dawn .ace_storage {\ +font-style: italic;\ +color: #A71D5D\ +}\ +.ace-dawn .ace_string {\ +color: #0B6125\ +}\ +.ace-dawn .ace_string.ace_regexp {\ +color: #CF5628\ +}\ +.ace-dawn .ace_comment {\ +font-style: italic;\ +color: #5A525F\ +}\ +.ace-dawn .ace_heading,\ +.ace-dawn .ace_markup.ace_heading {\ +color: #19356D\ +}\ +.ace-dawn .ace_variable {\ +color: #234A97\ +}\ +.ace-dawn .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dracula.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dracula.js new file mode 100644 index 0000000..c1ac363 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dracula.js @@ -0,0 +1,121 @@ +define("ace/theme/dracula",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-dracula"; +exports.cssText = "\ +ace-dracula .ace_gutter {\ +background: #282a36;\ +color: rgb(144,145,148)\ +}\ +.ace-dracula .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-dracula {\ +background-color: #282a36;\ +color: #f8f8f2\ +}\ +.ace-dracula .ace_cursor {\ +color: #f8f8f0\ +}\ +.ace-dracula .ace_marker-layer .ace_selection {\ +background: #44475a\ +}\ +.ace-dracula.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #282a36;\ +border-radius: 2px\ +}\ +.ace-dracula .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174)\ +}\ +.ace-dracula .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #3B3A32\ +}\ +.ace-dracula .ace_marker-layer .ace_active-line {\ +background: #44475a\ +}\ +.ace-dracula .ace_gutter-active-line {\ +background-color: #44475a\ +}\ +.ace-dracula .ace_marker-layer .ace_selected-word {\ +border: 1px solid #44475a\ +}\ +.ace-dracula .ace_fold {\ +background-color: #50fa7b;\ +border-color: #f8f8f2\ +}\ +.ace-dracula .ace_keyword {\ +color: #ff79c6\ +}\ +.ace-dracula .ace_constant.ace_language {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_constant.ace_numeric {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_constant.ace_character {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_constant.ace_character.ace_escape {\ +color: #ff79c6\ +}\ +.ace-dracula .ace_constant.ace_other {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_support.ace_function {\ +color: #8be9fd\ +}\ +.ace-dracula .ace_support.ace_constant {\ +color: #6be5fd\ +}\ +.ace-dracula .ace_support.ace_class {\ +font-style: italic;\ +color: #66d9ef\ +}\ +.ace-dracula .ace_support.ace_type {\ +font-style: italic;\ +color: #66d9ef\ +}\ +.ace-dracula .ace_storage {\ +color: #ff79c6\ +}\ +.ace-dracula .ace_storage.ace_type {\ +font-style: italic;\ +color: #8be9fd\ +}\ +.ace-dracula .ace_invalid {\ +color: #F8F8F0;\ +background-color: #ff79c6\ +}\ +.ace-dracula .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #bd93f9\ +}\ +.ace-dracula .ace_string {\ +color: #f1fa8c\ +}\ +.ace-dracula .ace_comment {\ +color: #6272a4\ +}\ +.ace-dracula .ace_variable {\ +color: #50fa7b\ +}\ +.ace-dracula .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #ffb86c\ +}\ +.ace-dracula .ace_entity.ace_other.ace_attribute-name {\ +color: #50fa7b\ +}\ +.ace-dracula .ace_entity.ace_name.ace_function {\ +color: #50fa7b\ +}\ +.ace-dracula .ace_entity.ace_name.ace_tag {\ +color: #ff79c6\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dreamweaver.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dreamweaver.js new file mode 100644 index 0000000..ea347bc --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-dreamweaver.js @@ -0,0 +1,141 @@ +define("ace/theme/dreamweaver",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +exports.isDark = false; +exports.cssClass = "ace-dreamweaver"; +exports.cssText = ".ace-dreamweaver .ace_gutter {\ +background: #e8e8e8;\ +color: #333;\ +}\ +.ace-dreamweaver .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-dreamweaver {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-dreamweaver .ace_fold {\ +background-color: #757AD8;\ +}\ +.ace-dreamweaver .ace_cursor {\ +color: black;\ +}\ +.ace-dreamweaver .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-dreamweaver .ace_storage,\ +.ace-dreamweaver .ace_keyword {\ +color: blue;\ +}\ +.ace-dreamweaver .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-dreamweaver .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-dreamweaver .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-dreamweaver .ace_invalid {\ +background-color: rgb(153, 0, 0);\ +color: white;\ +}\ +.ace-dreamweaver .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-dreamweaver .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-dreamweaver .ace_support.ace_type,\ +.ace-dreamweaver .ace_support.ace_class {\ +color: #009;\ +}\ +.ace-dreamweaver .ace_support.ace_php_tag {\ +color: #f00;\ +}\ +.ace-dreamweaver .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-dreamweaver .ace_string {\ +color: #00F;\ +}\ +.ace-dreamweaver .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-dreamweaver .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-dreamweaver .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-dreamweaver .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-dreamweaver .ace_variable {\ +color: #06F\ +}\ +.ace-dreamweaver .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-dreamweaver .ace_entity.ace_name.ace_function {\ +color: #00F;\ +}\ +.ace-dreamweaver .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-dreamweaver .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-dreamweaver .ace_gutter-active-line {\ +background-color : #DCDCDC;\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-dreamweaver .ace_meta.ace_tag {\ +color:#009;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {\ +color:#060;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_form {\ +color:#F90;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_image {\ +color:#909;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_script {\ +color:#900;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_style {\ +color:#909;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_table {\ +color:#099;\ +}\ +.ace-dreamweaver .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-dreamweaver .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-eclipse.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-eclipse.js new file mode 100644 index 0000000..2ad2b9f --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-eclipse.js @@ -0,0 +1,98 @@ +define("ace/theme/eclipse",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +exports.isDark = false; +exports.cssText = ".ace-eclipse .ace_gutter {\ +background: #ebebeb;\ +border-right: 1px solid rgb(159, 159, 159);\ +color: rgb(136, 136, 136);\ +}\ +.ace-eclipse .ace_print-margin {\ +width: 1px;\ +background: #ebebeb;\ +}\ +.ace-eclipse {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-eclipse .ace_fold {\ +background-color: rgb(60, 76, 114);\ +}\ +.ace-eclipse .ace_cursor {\ +color: black;\ +}\ +.ace-eclipse .ace_storage,\ +.ace-eclipse .ace_keyword,\ +.ace-eclipse .ace_variable {\ +color: rgb(127, 0, 85);\ +}\ +.ace-eclipse .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-eclipse .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-eclipse .ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-eclipse .ace_string {\ +color: rgb(42, 0, 255);\ +}\ +.ace-eclipse .ace_comment {\ +color: rgb(113, 150, 130);\ +}\ +.ace-eclipse .ace_comment.ace_doc {\ +color: rgb(63, 95, 191);\ +}\ +.ace-eclipse .ace_comment.ace_doc.ace_tag {\ +color: rgb(127, 159, 191);\ +}\ +.ace-eclipse .ace_constant.ace_numeric {\ +color: darkblue;\ +}\ +.ace-eclipse .ace_tag {\ +color: rgb(25, 118, 116);\ +}\ +.ace-eclipse .ace_type {\ +color: rgb(127, 0, 127);\ +}\ +.ace-eclipse .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-eclipse .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-eclipse .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-eclipse .ace_meta.ace_tag {\ +color:rgb(25, 118, 116);\ +}\ +.ace-eclipse .ace_invisible {\ +color: #ddd;\ +}\ +.ace-eclipse .ace_entity.ace_other.ace_attribute-name {\ +color:rgb(127, 0, 127);\ +}\ +.ace-eclipse .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0);\ +}\ +.ace-eclipse .ace_active-line {\ +background: rgb(232, 242, 254);\ +}\ +.ace-eclipse .ace_gutter-active-line {\ +background-color : #DADADA;\ +}\ +.ace-eclipse .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgb(181, 213, 255);\ +}\ +.ace-eclipse .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + +exports.cssClass = "ace-eclipse"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-github.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-github.js new file mode 100644 index 0000000..b2cf5da --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-github.js @@ -0,0 +1,103 @@ +define("ace/theme/github",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-github"; +exports.cssText = "\ +.ace-github .ace_gutter {\ +background: #e8e8e8;\ +color: #AAA;\ +}\ +.ace-github {\ +background: #fff;\ +color: #000;\ +}\ +.ace-github .ace_keyword {\ +font-weight: bold;\ +}\ +.ace-github .ace_string {\ +color: #D14;\ +}\ +.ace-github .ace_variable.ace_class {\ +color: teal;\ +}\ +.ace-github .ace_constant.ace_numeric {\ +color: #099;\ +}\ +.ace-github .ace_constant.ace_buildin {\ +color: #0086B3;\ +}\ +.ace-github .ace_support.ace_function {\ +color: #0086B3;\ +}\ +.ace-github .ace_comment {\ +color: #998;\ +font-style: italic;\ +}\ +.ace-github .ace_variable.ace_language {\ +color: #0086B3;\ +}\ +.ace-github .ace_paren {\ +font-weight: bold;\ +}\ +.ace-github .ace_boolean {\ +font-weight: bold;\ +}\ +.ace-github .ace_string.ace_regexp {\ +color: #009926;\ +font-weight: normal;\ +}\ +.ace-github .ace_variable.ace_instance {\ +color: teal;\ +}\ +.ace-github .ace_constant.ace_language {\ +font-weight: bold;\ +}\ +.ace-github .ace_cursor {\ +color: black;\ +}\ +.ace-github.ace_focus .ace_marker-layer .ace_active-line {\ +background: rgb(255, 255, 204);\ +}\ +.ace-github .ace_marker-layer .ace_active-line {\ +background: rgb(245, 245, 245);\ +}\ +.ace-github .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-github.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px white;\ +}\ +.ace-github.ace_nobold .ace_line > span {\ +font-weight: normal !important;\ +}\ +.ace-github .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-github .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-github .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-github .ace_gutter-active-line {\ +background-color : rgba(0, 0, 0, 0.07);\ +}\ +.ace-github .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-github .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-github .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-github .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-gob.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-gob.js new file mode 100644 index 0000000..2614dae --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-gob.js @@ -0,0 +1,112 @@ +define("ace/theme/gob",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-gob"; +exports.cssText = ".ace-gob .ace_gutter {\ +background: #0B1818;\ +color: #03EE03\ +}\ +.ace-gob .ace_print-margin {\ +width: 1px;\ +background: #131313\ +}\ +.ace-gob {\ +background-color: #0B0B0B;\ +color: #00FF00\ +}\ +.ace-gob .ace_cursor {\ +border-color: rgba(16, 248, 255, 0.90);\ +background-color: rgba(16, 240, 248, 0.70);\ +opacity: 0.4;\ +}\ +.ace-gob .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20)\ +}\ +.ace-gob.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #141414;\ +}\ +.ace-gob .ace_marker-layer .ace_step {\ +background: rgb(16, 128, 0)\ +}\ +.ace-gob .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(64, 255, 255, 0.25)\ +}\ +.ace-gob .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.04)\ +}\ +.ace-gob .ace_gutter-active-line {\ +background-color: rgba(255, 255, 255, 0.04)\ +}\ +.ace-gob .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(192, 240, 255, 0.20)\ +}\ +.ace-gob .ace_invisible {\ +color: rgba(255, 255, 255, 0.25)\ +}\ +.ace-gob .ace_keyword,\ +.ace-gob .ace_meta {\ +color: #10D8E8\ +}\ +.ace-gob .ace_constant,\ +.ace-gob .ace_constant.ace_character,\ +.ace-gob .ace_constant.ace_character.ace_escape,\ +.ace-gob .ace_constant.ace_other,\ +.ace-gob .ace_heading,\ +.ace-gob .ace_markup.ace_heading,\ +.ace-gob .ace_support.ace_constant {\ +color: #10F0A0\ +}\ +.ace-gob .ace_invalid.ace_illegal {\ +color: #F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75)\ +}\ +.ace-gob .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #20F8C0\ +}\ +.ace-gob .ace_support {\ +color: #20E8B0\ +}\ +.ace-gob .ace_fold {\ +background-color: #50B8B8;\ +border-color: #70F8F8\ +}\ +.ace-gob .ace_support.ace_function {\ +color: #00F800\ +}\ +.ace-gob .ace_list,\ +.ace-gob .ace_markup.ace_list,\ +.ace-gob .ace_storage {\ +color: #10FF98\ +}\ +.ace-gob .ace_entity.ace_name.ace_function,\ +.ace-gob .ace_meta.ace_tag,\ +.ace-gob .ace_variable {\ +color: #00F868\ +}\ +.ace-gob .ace_string {\ +color: #10F060\ +}\ +.ace-gob .ace_string.ace_regexp {\ +color: #20F090;\ +}\ +.ace-gob .ace_comment {\ +font-style: italic;\ +color: #00E060;\ +}\ +.ace-gob .ace_variable {\ +color: #00F888;\ +}\ +.ace-gob .ace_xml-pe {\ +color: #488858;\ +}\ +.ace-gob .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-gruvbox.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-gruvbox.js new file mode 100644 index 0000000..2c54443 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-gruvbox.js @@ -0,0 +1,82 @@ +define("ace/theme/gruvbox",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-gruvbox"; +exports.cssText = ".ace-gruvbox .ace_gutter-active-line {\ +background-color: #3C3836;\ +}\ +.ace-gruvbox {\ +color: #EBDAB4;\ +background-color: #1D2021;\ +}\ +.ace-gruvbox .ace_invisible {\ +color: #504945;\ +}\ +.ace-gruvbox .ace_marker-layer .ace_selection {\ +background: rgba(179, 101, 57, 0.75)\ +}\ +.ace-gruvbox.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002240;\ +}\ +.ace-gruvbox .ace_keyword {\ +color: #8ec07c;\ +}\ +.ace-gruvbox .ace_comment {\ +font-style: italic;\ +color: #928375;\ +}\ +.ace-gruvbox .ace-statement {\ +color: red;\ +}\ +.ace-gruvbox .ace_variable {\ +color: #84A598;\ +}\ +.ace-gruvbox .ace_variable.ace_language {\ +color: #D2879B;\ +}\ +.ace-gruvbox .ace_constant {\ +color: #C2859A;\ +}\ +.ace-gruvbox .ace_constant.ace_language {\ +color: #C2859A;\ +}\ +.ace-gruvbox .ace_constant.ace_numeric {\ +color: #C2859A;\ +}\ +.ace-gruvbox .ace_string {\ +color: #B8BA37;\ +}\ +.ace-gruvbox .ace_support {\ +color: #F9BC41;\ +}\ +.ace-gruvbox .ace_support.ace_function {\ +color: #F84B3C;\ +}\ +.ace-gruvbox .ace_storage {\ +color: #8FBF7F;\ +}\ +.ace-gruvbox .ace_keyword.ace_operator {\ +color: #EBDAB4;\ +}\ +.ace-gruvbox .ace_punctuation.ace_operator {\ +color: yellow;\ +}\ +.ace-gruvbox .ace_marker-layer .ace_active-line {\ +background: #3C3836;\ +}\ +.ace-gruvbox .ace_marker-layer .ace_selected-word {\ +border-radius: 4px;\ +border: 8px solid #3f475d;\ +}\ +.ace-gruvbox .ace_print-margin {\ +width: 5px;\ +background: #3C3836;\ +}\ +.ace-gruvbox .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-idle_fingers.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-idle_fingers.js new file mode 100644 index 0000000..221cca1 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-idle_fingers.js @@ -0,0 +1,96 @@ +define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-idle-fingers"; +exports.cssText = ".ace-idle-fingers .ace_gutter {\ +background: #3b3b3b;\ +color: rgb(153,153,153)\ +}\ +.ace-idle-fingers .ace_print-margin {\ +width: 1px;\ +background: #3b3b3b\ +}\ +.ace-idle-fingers {\ +background-color: #323232;\ +color: #FFFFFF\ +}\ +.ace-idle-fingers .ace_cursor {\ +color: #91FF00\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_selection {\ +background: rgba(90, 100, 126, 0.88)\ +}\ +.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #323232;\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_active-line {\ +background: #353637\ +}\ +.ace-idle-fingers .ace_gutter-active-line {\ +background-color: #353637\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(90, 100, 126, 0.88)\ +}\ +.ace-idle-fingers .ace_invisible {\ +color: #404040\ +}\ +.ace-idle-fingers .ace_keyword,\ +.ace-idle-fingers .ace_meta {\ +color: #CC7833\ +}\ +.ace-idle-fingers .ace_constant,\ +.ace-idle-fingers .ace_constant.ace_character,\ +.ace-idle-fingers .ace_constant.ace_character.ace_escape,\ +.ace-idle-fingers .ace_constant.ace_other,\ +.ace-idle-fingers .ace_support.ace_constant {\ +color: #6C99BB\ +}\ +.ace-idle-fingers .ace_invalid {\ +color: #FFFFFF;\ +background-color: #FF0000\ +}\ +.ace-idle-fingers .ace_fold {\ +background-color: #CC7833;\ +border-color: #FFFFFF\ +}\ +.ace-idle-fingers .ace_support.ace_function {\ +color: #B83426\ +}\ +.ace-idle-fingers .ace_variable.ace_parameter {\ +font-style: italic\ +}\ +.ace-idle-fingers .ace_string {\ +color: #A5C261\ +}\ +.ace-idle-fingers .ace_string.ace_regexp {\ +color: #CCCC33\ +}\ +.ace-idle-fingers .ace_comment {\ +font-style: italic;\ +color: #BC9458\ +}\ +.ace-idle-fingers .ace_meta.ace_tag {\ +color: #FFE5BB\ +}\ +.ace-idle-fingers .ace_entity.ace_name {\ +color: #FFC66D\ +}\ +.ace-idle-fingers .ace_collab.ace_user1 {\ +color: #323232;\ +background-color: #FFF980\ +}\ +.ace-idle-fingers .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-iplastic.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-iplastic.js new file mode 100644 index 0000000..774a097 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-iplastic.js @@ -0,0 +1,121 @@ +define("ace/theme/iplastic",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-iplastic"; +exports.cssText = ".ace-iplastic .ace_gutter {\ +background: #dddddd;\ +color: #666666\ +}\ +.ace-iplastic .ace_print-margin {\ +width: 1px;\ +background: #bbbbbb\ +}\ +.ace-iplastic {\ +background-color: #eeeeee;\ +color: #333333\ +}\ +.ace-iplastic .ace_cursor {\ +color: #333\ +}\ +.ace-iplastic .ace_marker-layer .ace_selection {\ +background: #BAD6FD;\ +}\ +.ace-iplastic.ace_multiselect .ace_selection.ace_start {\ +border-radius: 4px\ +}\ +.ace-iplastic .ace_marker-layer .ace_step {\ +background: #444444\ +}\ +.ace-iplastic .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E;\ +background: #FFF799\ +}\ +.ace-iplastic .ace_marker-layer .ace_active-line {\ +background: #e5e5e5\ +}\ +.ace-iplastic .ace_gutter-active-line {\ +background-color: #eeeeee\ +}\ +.ace-iplastic .ace_marker-layer .ace_selected-word {\ +border: 1px solid #555555;\ +border-radius:4px\ +}\ +.ace-iplastic .ace_invisible {\ +color: #999999\ +}\ +.ace-iplastic .ace_entity.ace_name.ace_tag,\ +.ace-iplastic .ace_keyword,\ +.ace-iplastic .ace_meta.ace_tag,\ +.ace-iplastic .ace_storage {\ +color: #0000FF\ +}\ +.ace-iplastic .ace_punctuation,\ +.ace-iplastic .ace_punctuation.ace_tag {\ +color: #000\ +}\ +.ace-iplastic .ace_constant {\ +color: #333333;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_constant.ace_character,\ +.ace-iplastic .ace_constant.ace_language,\ +.ace-iplastic .ace_constant.ace_numeric,\ +.ace-iplastic .ace_constant.ace_other {\ +color: #0066FF;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_constant.ace_numeric{\ +font-weight: 100\ +}\ +.ace-iplastic .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-iplastic .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-iplastic .ace_support.ace_constant,\ +.ace-iplastic .ace_support.ace_function {\ +color: #333333;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_fold {\ +background-color: #464646;\ +border-color: #F8F8F2\ +}\ +.ace-iplastic .ace_storage.ace_type,\ +.ace-iplastic .ace_support.ace_class,\ +.ace-iplastic .ace_support.ace_type {\ +color: #3333fc;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_entity.ace_name.ace_function,\ +.ace-iplastic .ace_entity.ace_other,\ +.ace-iplastic .ace_entity.ace_other.ace_attribute-name,\ +.ace-iplastic .ace_variable {\ +color: #3366cc;\ +font-style: italic\ +}\ +.ace-iplastic .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #2469E0\ +}\ +.ace-iplastic .ace_string {\ +color: #a55f03\ +}\ +.ace-iplastic .ace_comment {\ +color: #777777;\ +font-style: italic\ +}\ +.ace-iplastic .ace_fold-widget {\ +background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==);\ +}\ +.ace-iplastic .ace_indent-guide {\ +background: url(data:image/png;base64,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) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-katzenmilch.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-katzenmilch.js new file mode 100644 index 0000000..cb4f873 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-katzenmilch.js @@ -0,0 +1,121 @@ +define("ace/theme/katzenmilch",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-katzenmilch"; +exports.cssText = ".ace-katzenmilch .ace_gutter,\ +.ace-katzenmilch .ace_gutter {\ +background: #e8e8e8;\ +color: #333\ +}\ +.ace-katzenmilch .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-katzenmilch {\ +background-color: #f3f2f3;\ +color: rgba(15, 0, 9, 1.0)\ +}\ +.ace-katzenmilch .ace_cursor {\ +border-left: 2px solid #100011\ +}\ +.ace-katzenmilch .ace_overwrite-cursors .ace_cursor {\ +border-left: 0px;\ +border-bottom: 1px solid #100011\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_selection {\ +background: rgba(100, 5, 208, 0.27)\ +}\ +.ace-katzenmilch.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #f3f2f3;\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174)\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(0, 0, 0, 0.33);\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_active-line {\ +background: rgb(232, 242, 254)\ +}\ +.ace-katzenmilch .ace_gutter-active-line {\ +background-color: rgb(232, 242, 254)\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(100, 5, 208, 0.27)\ +}\ +.ace-katzenmilch .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-katzenmilch .ace_fold {\ +background-color: rgba(2, 95, 73, 0.97);\ +border-color: rgba(15, 0, 9, 1.0)\ +}\ +.ace-katzenmilch .ace_keyword {\ +color: #674Aa8;\ +rbackground-color: rgba(163, 170, 216, 0.055)\ +}\ +.ace-katzenmilch .ace_constant.ace_language {\ +color: #7D7e52;\ +rbackground-color: rgba(189, 190, 130, 0.059)\ +}\ +.ace-katzenmilch .ace_constant.ace_numeric {\ +color: rgba(79, 130, 123, 0.93);\ +rbackground-color: rgba(119, 194, 187, 0.059)\ +}\ +.ace-katzenmilch .ace_constant.ace_character,\ +.ace-katzenmilch .ace_constant.ace_other {\ +color: rgba(2, 95, 105, 1.0);\ +rbackground-color: rgba(127, 34, 153, 0.063)\ +}\ +.ace-katzenmilch .ace_support.ace_function {\ +color: #9D7e62;\ +rbackground-color: rgba(189, 190, 130, 0.039)\ +}\ +.ace-katzenmilch .ace_support.ace_class {\ +color: rgba(239, 106, 167, 1.0);\ +rbackground-color: rgba(239, 106, 167, 0.063)\ +}\ +.ace-katzenmilch .ace_storage {\ +color: rgba(123, 92, 191, 1.0);\ +rbackground-color: rgba(139, 93, 223, 0.051)\ +}\ +.ace-katzenmilch .ace_invalid {\ +color: #DFDFD5;\ +rbackground-color: #CC1B27\ +}\ +.ace-katzenmilch .ace_string {\ +color: #5a5f9b;\ +rbackground-color: rgba(170, 175, 219, 0.035)\ +}\ +.ace-katzenmilch .ace_comment {\ +font-style: italic;\ +color: rgba(64, 79, 80, 0.67);\ +rbackground-color: rgba(95, 15, 255, 0.0078)\ +}\ +.ace-katzenmilch .ace_entity.ace_name.ace_function,\ +.ace-katzenmilch .ace_variable {\ +color: rgba(2, 95, 73, 0.97);\ +rbackground-color: rgba(34, 255, 73, 0.12)\ +}\ +.ace-katzenmilch .ace_variable.ace_language {\ +color: #316fcf;\ +rbackground-color: rgba(58, 175, 255, 0.039)\ +}\ +.ace-katzenmilch .ace_variable.ace_parameter {\ +font-style: italic;\ +color: rgba(51, 150, 159, 0.87);\ +rbackground-color: rgba(5, 214, 249, 0.043)\ +}\ +.ace-katzenmilch .ace_entity.ace_other.ace_attribute-name {\ +color: rgba(73, 70, 194, 0.93);\ +rbackground-color: rgba(73, 134, 194, 0.035)\ +}\ +.ace-katzenmilch .ace_entity.ace_name.ace_tag {\ +color: #3976a2;\ +rbackground-color: rgba(73, 166, 210, 0.039)\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-kr_theme.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-kr_theme.js new file mode 100644 index 0000000..8cf914e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-kr_theme.js @@ -0,0 +1,104 @@ +define("ace/theme/kr_theme",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-kr-theme"; +exports.cssText = ".ace-kr-theme .ace_gutter {\ +background: #1c1917;\ +color: #FCFFE0\ +}\ +.ace-kr-theme .ace_print-margin {\ +width: 1px;\ +background: #1c1917\ +}\ +.ace-kr-theme {\ +background-color: #0B0A09;\ +color: #FCFFE0\ +}\ +.ace-kr-theme .ace_cursor {\ +color: #FF9900\ +}\ +.ace-kr-theme .ace_marker-layer .ace_selection {\ +background: rgba(170, 0, 255, 0.45)\ +}\ +.ace-kr-theme.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #0B0A09;\ +}\ +.ace-kr-theme .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-kr-theme .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 177, 111, 0.32)\ +}\ +.ace-kr-theme .ace_marker-layer .ace_active-line {\ +background: #38403D\ +}\ +.ace-kr-theme .ace_gutter-active-line {\ +background-color : #38403D\ +}\ +.ace-kr-theme .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(170, 0, 255, 0.45)\ +}\ +.ace-kr-theme .ace_invisible {\ +color: rgba(255, 177, 111, 0.32)\ +}\ +.ace-kr-theme .ace_keyword,\ +.ace-kr-theme .ace_meta {\ +color: #949C8B\ +}\ +.ace-kr-theme .ace_constant,\ +.ace-kr-theme .ace_constant.ace_character,\ +.ace-kr-theme .ace_constant.ace_character.ace_escape,\ +.ace-kr-theme .ace_constant.ace_other {\ +color: rgba(210, 117, 24, 0.76)\ +}\ +.ace-kr-theme .ace_invalid {\ +color: #F8F8F8;\ +background-color: #A41300\ +}\ +.ace-kr-theme .ace_support {\ +color: #9FC28A\ +}\ +.ace-kr-theme .ace_support.ace_constant {\ +color: #C27E66\ +}\ +.ace-kr-theme .ace_fold {\ +background-color: #949C8B;\ +border-color: #FCFFE0\ +}\ +.ace-kr-theme .ace_support.ace_function {\ +color: #85873A\ +}\ +.ace-kr-theme .ace_storage {\ +color: #FFEE80\ +}\ +.ace-kr-theme .ace_string {\ +color: rgba(164, 161, 181, 0.8)\ +}\ +.ace-kr-theme .ace_string.ace_regexp {\ +color: rgba(125, 255, 192, 0.65)\ +}\ +.ace-kr-theme .ace_comment {\ +font-style: italic;\ +color: #706D5B\ +}\ +.ace-kr-theme .ace_variable {\ +color: #D1A796\ +}\ +.ace-kr-theme .ace_list,\ +.ace-kr-theme .ace_markup.ace_list {\ +background-color: #0F0040\ +}\ +.ace-kr-theme .ace_variable.ace_language {\ +color: #FF80E1\ +}\ +.ace-kr-theme .ace_meta.ace_tag {\ +color: #BABD9C\ +}\ +.ace-kr-theme .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-kuroir.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-kuroir.js new file mode 100644 index 0000000..49d5b00 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-kuroir.js @@ -0,0 +1,61 @@ +define("ace/theme/kuroir",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-kuroir"; +exports.cssText = "\ +.ace-kuroir .ace_gutter {\ +background: #e8e8e8;\ +color: #333;\ +}\ +.ace-kuroir .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-kuroir {\ +background-color: #E8E9E8;\ +color: #363636;\ +}\ +.ace-kuroir .ace_cursor {\ +color: #202020;\ +}\ +.ace-kuroir .ace_marker-layer .ace_selection {\ +background: rgba(245, 170, 0, 0.57);\ +}\ +.ace-kuroir.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #E8E9E8;\ +}\ +.ace-kuroir .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174);\ +}\ +.ace-kuroir .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(0, 0, 0, 0.29);\ +}\ +.ace-kuroir .ace_marker-layer .ace_active-line {\ +background: rgba(203, 220, 47, 0.22);\ +}\ +.ace-kuroir .ace_gutter-active-line {\ +background-color: rgba(203, 220, 47, 0.22);\ +}\ +.ace-kuroir .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(245, 170, 0, 0.57);\ +}\ +.ace-kuroir .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-kuroir .ace_fold {\ +border-color: #363636;\ +}\ +.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;\ +background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;\ +font-style:italic;\ +color:#FD1732;\ +background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;\ +background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);\ +background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;\ +background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-merbivore.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-merbivore.js new file mode 100644 index 0000000..37f4d13 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-merbivore.js @@ -0,0 +1,95 @@ +define("ace/theme/merbivore",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-merbivore"; +exports.cssText = ".ace-merbivore .ace_gutter {\ +background: #202020;\ +color: #E6E1DC\ +}\ +.ace-merbivore .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace-merbivore {\ +background-color: #161616;\ +color: #E6E1DC\ +}\ +.ace-merbivore .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-merbivore .ace_marker-layer .ace_selection {\ +background: #454545\ +}\ +.ace-merbivore.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #161616;\ +}\ +.ace-merbivore .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-merbivore .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-merbivore .ace_marker-layer .ace_active-line {\ +background: #333435\ +}\ +.ace-merbivore .ace_gutter-active-line {\ +background-color: #333435\ +}\ +.ace-merbivore .ace_marker-layer .ace_selected-word {\ +border: 1px solid #454545\ +}\ +.ace-merbivore .ace_invisible {\ +color: #404040\ +}\ +.ace-merbivore .ace_entity.ace_name.ace_tag,\ +.ace-merbivore .ace_keyword,\ +.ace-merbivore .ace_meta,\ +.ace-merbivore .ace_meta.ace_tag,\ +.ace-merbivore .ace_storage,\ +.ace-merbivore .ace_support.ace_function {\ +color: #FC6F09\ +}\ +.ace-merbivore .ace_constant,\ +.ace-merbivore .ace_constant.ace_character,\ +.ace-merbivore .ace_constant.ace_character.ace_escape,\ +.ace-merbivore .ace_constant.ace_other,\ +.ace-merbivore .ace_support.ace_type {\ +color: #1EDAFB\ +}\ +.ace-merbivore .ace_constant.ace_character.ace_escape {\ +color: #519F50\ +}\ +.ace-merbivore .ace_constant.ace_language {\ +color: #FDC251\ +}\ +.ace-merbivore .ace_constant.ace_library,\ +.ace-merbivore .ace_string,\ +.ace-merbivore .ace_support.ace_constant {\ +color: #8DFF0A\ +}\ +.ace-merbivore .ace_constant.ace_numeric {\ +color: #58C554\ +}\ +.ace-merbivore .ace_invalid {\ +color: #FFFFFF;\ +background-color: #990000\ +}\ +.ace-merbivore .ace_fold {\ +background-color: #FC6F09;\ +border-color: #E6E1DC\ +}\ +.ace-merbivore .ace_comment {\ +font-style: italic;\ +color: #AD2EA4\ +}\ +.ace-merbivore .ace_entity.ace_other.ace_attribute-name {\ +color: #FFFF89\ +}\ +.ace-merbivore .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-merbivore_soft.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-merbivore_soft.js new file mode 100644 index 0000000..e7e398c --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-merbivore_soft.js @@ -0,0 +1,96 @@ +define("ace/theme/merbivore_soft",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-merbivore-soft"; +exports.cssText = ".ace-merbivore-soft .ace_gutter {\ +background: #262424;\ +color: #E6E1DC\ +}\ +.ace-merbivore-soft .ace_print-margin {\ +width: 1px;\ +background: #262424\ +}\ +.ace-merbivore-soft {\ +background-color: #1C1C1C;\ +color: #E6E1DC\ +}\ +.ace-merbivore-soft .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_selection {\ +background: #494949\ +}\ +.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #1C1C1C;\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_active-line {\ +background: #333435\ +}\ +.ace-merbivore-soft .ace_gutter-active-line {\ +background-color: #333435\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_selected-word {\ +border: 1px solid #494949\ +}\ +.ace-merbivore-soft .ace_invisible {\ +color: #404040\ +}\ +.ace-merbivore-soft .ace_entity.ace_name.ace_tag,\ +.ace-merbivore-soft .ace_keyword,\ +.ace-merbivore-soft .ace_meta,\ +.ace-merbivore-soft .ace_meta.ace_tag,\ +.ace-merbivore-soft .ace_storage {\ +color: #FC803A\ +}\ +.ace-merbivore-soft .ace_constant,\ +.ace-merbivore-soft .ace_constant.ace_character,\ +.ace-merbivore-soft .ace_constant.ace_character.ace_escape,\ +.ace-merbivore-soft .ace_constant.ace_other,\ +.ace-merbivore-soft .ace_support.ace_type {\ +color: #68C1D8\ +}\ +.ace-merbivore-soft .ace_constant.ace_character.ace_escape {\ +color: #B3E5B4\ +}\ +.ace-merbivore-soft .ace_constant.ace_language {\ +color: #E1C582\ +}\ +.ace-merbivore-soft .ace_constant.ace_library,\ +.ace-merbivore-soft .ace_string,\ +.ace-merbivore-soft .ace_support.ace_constant {\ +color: #8EC65F\ +}\ +.ace-merbivore-soft .ace_constant.ace_numeric {\ +color: #7FC578\ +}\ +.ace-merbivore-soft .ace_invalid,\ +.ace-merbivore-soft .ace_invalid.ace_deprecated {\ +color: #FFFFFF;\ +background-color: #FE3838\ +}\ +.ace-merbivore-soft .ace_fold {\ +background-color: #FC803A;\ +border-color: #E6E1DC\ +}\ +.ace-merbivore-soft .ace_comment,\ +.ace-merbivore-soft .ace_meta {\ +font-style: italic;\ +color: #AC4BB8\ +}\ +.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\ +color: #EAF1A3\ +}\ +.ace-merbivore-soft .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkpLyZfD09PwPAAfYAnaStpHRAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-mono_industrial.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-mono_industrial.js new file mode 100644 index 0000000..4d1d93a --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-mono_industrial.js @@ -0,0 +1,107 @@ +define("ace/theme/mono_industrial",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-mono-industrial"; +exports.cssText = ".ace-mono-industrial .ace_gutter {\ +background: #1d2521;\ +color: #C5C9C9\ +}\ +.ace-mono-industrial .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace-mono-industrial {\ +background-color: #222C28;\ +color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_selection {\ +background: rgba(145, 153, 148, 0.40)\ +}\ +.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #222C28;\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(102, 108, 104, 0.50)\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_active-line {\ +background: rgba(12, 13, 12, 0.25)\ +}\ +.ace-mono-industrial .ace_gutter-active-line {\ +background-color: rgba(12, 13, 12, 0.25)\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(145, 153, 148, 0.40)\ +}\ +.ace-mono-industrial .ace_invisible {\ +color: rgba(102, 108, 104, 0.50)\ +}\ +.ace-mono-industrial .ace_string {\ +background-color: #151C19;\ +color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_keyword,\ +.ace-mono-industrial .ace_meta {\ +color: #A39E64\ +}\ +.ace-mono-industrial .ace_constant,\ +.ace-mono-industrial .ace_constant.ace_character,\ +.ace-mono-industrial .ace_constant.ace_character.ace_escape,\ +.ace-mono-industrial .ace_constant.ace_numeric,\ +.ace-mono-industrial .ace_constant.ace_other {\ +color: #E98800\ +}\ +.ace-mono-industrial .ace_entity.ace_name.ace_function,\ +.ace-mono-industrial .ace_keyword.ace_operator,\ +.ace-mono-industrial .ace_variable {\ +color: #A8B3AB\ +}\ +.ace-mono-industrial .ace_invalid {\ +color: #FFFFFF;\ +background-color: rgba(153, 0, 0, 0.68)\ +}\ +.ace-mono-industrial .ace_support.ace_constant {\ +color: #C87500\ +}\ +.ace-mono-industrial .ace_fold {\ +background-color: #A8B3AB;\ +border-color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_support.ace_function {\ +color: #588E60\ +}\ +.ace-mono-industrial .ace_entity.ace_name,\ +.ace-mono-industrial .ace_support.ace_class,\ +.ace-mono-industrial .ace_support.ace_type {\ +color: #5778B6\ +}\ +.ace-mono-industrial .ace_storage {\ +color: #C23B00\ +}\ +.ace-mono-industrial .ace_variable.ace_language,\ +.ace-mono-industrial .ace_variable.ace_parameter {\ +color: #648BD2\ +}\ +.ace-mono-industrial .ace_comment {\ +color: #666C68;\ +background-color: #151C19\ +}\ +.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {\ +color: #909993\ +}\ +.ace-mono-industrial .ace_entity.ace_name.ace_tag {\ +color: #A65EFF\ +}\ +.ace-mono-industrial .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ1NbwZfALD/4PAAlTArlEC4r/AAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-monokai.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-monokai.js new file mode 100644 index 0000000..b2f9df6 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-monokai.js @@ -0,0 +1,105 @@ +define("ace/theme/monokai",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-monokai"; +exports.cssText = ".ace-monokai .ace_gutter {\ +background: #2F3129;\ +color: #8F908A\ +}\ +.ace-monokai .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace-monokai {\ +background-color: #272822;\ +color: #F8F8F2\ +}\ +.ace-monokai .ace_cursor {\ +color: #F8F8F0\ +}\ +.ace-monokai .ace_marker-layer .ace_selection {\ +background: #49483E\ +}\ +.ace-monokai.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #272822;\ +}\ +.ace-monokai .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-monokai .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E\ +}\ +.ace-monokai .ace_marker-layer .ace_active-line {\ +background: #202020\ +}\ +.ace-monokai .ace_gutter-active-line {\ +background-color: #272727\ +}\ +.ace-monokai .ace_marker-layer .ace_selected-word {\ +border: 1px solid #49483E\ +}\ +.ace-monokai .ace_invisible {\ +color: #52524d\ +}\ +.ace-monokai .ace_entity.ace_name.ace_tag,\ +.ace-monokai .ace_keyword,\ +.ace-monokai .ace_meta.ace_tag,\ +.ace-monokai .ace_storage {\ +color: #F92672\ +}\ +.ace-monokai .ace_punctuation,\ +.ace-monokai .ace_punctuation.ace_tag {\ +color: #fff\ +}\ +.ace-monokai .ace_constant.ace_character,\ +.ace-monokai .ace_constant.ace_language,\ +.ace-monokai .ace_constant.ace_numeric,\ +.ace-monokai .ace_constant.ace_other {\ +color: #AE81FF\ +}\ +.ace-monokai .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-monokai .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-monokai .ace_support.ace_constant,\ +.ace-monokai .ace_support.ace_function {\ +color: #66D9EF\ +}\ +.ace-monokai .ace_fold {\ +background-color: #A6E22E;\ +border-color: #F8F8F2\ +}\ +.ace-monokai .ace_storage.ace_type,\ +.ace-monokai .ace_support.ace_class,\ +.ace-monokai .ace_support.ace_type {\ +font-style: italic;\ +color: #66D9EF\ +}\ +.ace-monokai .ace_entity.ace_name.ace_function,\ +.ace-monokai .ace_entity.ace_other,\ +.ace-monokai .ace_entity.ace_other.ace_attribute-name,\ +.ace-monokai .ace_variable {\ +color: #A6E22E\ +}\ +.ace-monokai .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F\ +}\ +.ace-monokai .ace_string {\ +color: #E6DB74\ +}\ +.ace-monokai .ace_comment {\ +color: #75715E\ +}\ +.ace-monokai .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-pastel_on_dark.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-pastel_on_dark.js new file mode 100644 index 0000000..7348aeb --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-pastel_on_dark.js @@ -0,0 +1,108 @@ +define("ace/theme/pastel_on_dark",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-pastel-on-dark"; +exports.cssText = ".ace-pastel-on-dark .ace_gutter {\ +background: #353030;\ +color: #8F938F\ +}\ +.ace-pastel-on-dark .ace_print-margin {\ +width: 1px;\ +background: #353030\ +}\ +.ace-pastel-on-dark {\ +background-color: #2C2828;\ +color: #8F938F\ +}\ +.ace-pastel-on-dark .ace_cursor {\ +color: #A7A7A7\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20)\ +}\ +.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #2C2828;\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.25)\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.031)\ +}\ +.ace-pastel-on-dark .ace_gutter-active-line {\ +background-color: rgba(255, 255, 255, 0.031)\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(221, 240, 255, 0.20)\ +}\ +.ace-pastel-on-dark .ace_invisible {\ +color: rgba(255, 255, 255, 0.25)\ +}\ +.ace-pastel-on-dark .ace_keyword,\ +.ace-pastel-on-dark .ace_meta {\ +color: #757aD8\ +}\ +.ace-pastel-on-dark .ace_constant,\ +.ace-pastel-on-dark .ace_constant.ace_character,\ +.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,\ +.ace-pastel-on-dark .ace_constant.ace_other {\ +color: #4FB7C5\ +}\ +.ace-pastel-on-dark .ace_keyword.ace_operator {\ +color: #797878\ +}\ +.ace-pastel-on-dark .ace_constant.ace_character {\ +color: #AFA472\ +}\ +.ace-pastel-on-dark .ace_constant.ace_language {\ +color: #DE8E30\ +}\ +.ace-pastel-on-dark .ace_constant.ace_numeric {\ +color: #CCCCCC\ +}\ +.ace-pastel-on-dark .ace_invalid,\ +.ace-pastel-on-dark .ace_invalid.ace_illegal {\ +color: #F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75)\ +}\ +.ace-pastel-on-dark .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #D2A8A1\ +}\ +.ace-pastel-on-dark .ace_fold {\ +background-color: #757aD8;\ +border-color: #8F938F\ +}\ +.ace-pastel-on-dark .ace_support.ace_function {\ +color: #AEB2F8\ +}\ +.ace-pastel-on-dark .ace_string {\ +color: #66A968\ +}\ +.ace-pastel-on-dark .ace_string.ace_regexp {\ +color: #E9C062\ +}\ +.ace-pastel-on-dark .ace_comment {\ +color: #A6C6FF\ +}\ +.ace-pastel-on-dark .ace_variable {\ +color: #BEBF55\ +}\ +.ace-pastel-on-dark .ace_variable.ace_language {\ +color: #C1C144\ +}\ +.ace-pastel-on-dark .ace_xml-pe {\ +color: #494949\ +}\ +.ace-pastel-on-dark .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYIiPj/8PAARgAh2NTMh8AAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-solarized_dark.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-solarized_dark.js new file mode 100644 index 0000000..6052e88 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-solarized_dark.js @@ -0,0 +1,88 @@ +define("ace/theme/solarized_dark",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-solarized-dark"; +exports.cssText = ".ace-solarized-dark .ace_gutter {\ +background: #01313f;\ +color: #d0edf7\ +}\ +.ace-solarized-dark .ace_print-margin {\ +width: 1px;\ +background: #33555E\ +}\ +.ace-solarized-dark {\ +background-color: #002B36;\ +color: #93A1A1\ +}\ +.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,\ +.ace-solarized-dark .ace_storage {\ +color: #93A1A1\ +}\ +.ace-solarized-dark .ace_cursor,\ +.ace-solarized-dark .ace_string.ace_regexp {\ +color: #D30102\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_active-line,\ +.ace-solarized-dark .ace_marker-layer .ace_selection {\ +background: rgba(255, 255, 255, 0.1)\ +}\ +.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002B36;\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-dark .ace_gutter-active-line {\ +background-color: #0d3440\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_selected-word {\ +border: 1px solid #073642\ +}\ +.ace-solarized-dark .ace_invisible {\ +color: rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-dark .ace_keyword,\ +.ace-solarized-dark .ace_meta,\ +.ace-solarized-dark .ace_support.ace_class,\ +.ace-solarized-dark .ace_support.ace_type {\ +color: #859900\ +}\ +.ace-solarized-dark .ace_constant.ace_character,\ +.ace-solarized-dark .ace_constant.ace_other {\ +color: #CB4B16\ +}\ +.ace-solarized-dark .ace_constant.ace_language {\ +color: #B58900\ +}\ +.ace-solarized-dark .ace_constant.ace_numeric {\ +color: #D33682\ +}\ +.ace-solarized-dark .ace_fold {\ +background-color: #268BD2;\ +border-color: #93A1A1\ +}\ +.ace-solarized-dark .ace_entity.ace_name.ace_function,\ +.ace-solarized-dark .ace_entity.ace_name.ace_tag,\ +.ace-solarized-dark .ace_support.ace_function,\ +.ace-solarized-dark .ace_variable,\ +.ace-solarized-dark .ace_variable.ace_language {\ +color: #268BD2\ +}\ +.ace-solarized-dark .ace_string {\ +color: #2AA198\ +}\ +.ace-solarized-dark .ace_comment {\ +font-style: italic;\ +color: #657B83\ +}\ +.ace-solarized-dark .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db1ZVCxc/sPAAd4AlUHlLenAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-solarized_light.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-solarized_light.js new file mode 100644 index 0000000..aa70c77 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-solarized_light.js @@ -0,0 +1,91 @@ +define("ace/theme/solarized_light",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-solarized-light"; +exports.cssText = ".ace-solarized-light .ace_gutter {\ +background: #fbf1d3;\ +color: #333\ +}\ +.ace-solarized-light .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-solarized-light {\ +background-color: #FDF6E3;\ +color: #586E75\ +}\ +.ace-solarized-light .ace_cursor {\ +color: #000000\ +}\ +.ace-solarized-light .ace_marker-layer .ace_selection {\ +background: rgba(7, 54, 67, 0.09)\ +}\ +.ace-solarized-light.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FDF6E3;\ +}\ +.ace-solarized-light .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-solarized-light .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-light .ace_marker-layer .ace_active-line {\ +background: #EEE8D5\ +}\ +.ace-solarized-light .ace_gutter-active-line {\ +background-color : #EDE5C1\ +}\ +.ace-solarized-light .ace_marker-layer .ace_selected-word {\ +border: 1px solid #073642\ +}\ +.ace-solarized-light .ace_invisible {\ +color: rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-light .ace_keyword,\ +.ace-solarized-light .ace_meta,\ +.ace-solarized-light .ace_support.ace_class,\ +.ace-solarized-light .ace_support.ace_type {\ +color: #859900\ +}\ +.ace-solarized-light .ace_constant.ace_character,\ +.ace-solarized-light .ace_constant.ace_other {\ +color: #CB4B16\ +}\ +.ace-solarized-light .ace_constant.ace_language {\ +color: #B58900\ +}\ +.ace-solarized-light .ace_constant.ace_numeric {\ +color: #D33682\ +}\ +.ace-solarized-light .ace_fold {\ +background-color: #268BD2;\ +border-color: #586E75\ +}\ +.ace-solarized-light .ace_entity.ace_name.ace_function,\ +.ace-solarized-light .ace_entity.ace_name.ace_tag,\ +.ace-solarized-light .ace_support.ace_function,\ +.ace-solarized-light .ace_variable,\ +.ace-solarized-light .ace_variable.ace_language {\ +color: #268BD2\ +}\ +.ace-solarized-light .ace_storage {\ +color: #073642\ +}\ +.ace-solarized-light .ace_string {\ +color: #2AA198\ +}\ +.ace-solarized-light .ace_string.ace_regexp {\ +color: #D30102\ +}\ +.ace-solarized-light .ace_comment,\ +.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {\ +color: #93A1A1\ +}\ +.ace-solarized-light .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-sqlserver.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-sqlserver.js new file mode 100644 index 0000000..5c1b36e --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-sqlserver.js @@ -0,0 +1,138 @@ +define("ace/theme/sqlserver",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-sqlserver"; +exports.cssText = ".ace-sqlserver .ace_gutter {\ +background: #ebebeb;\ +color: #333;\ +overflow: hidden;\ +}\ +.ace-sqlserver .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-sqlserver {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-sqlserver .ace_identifier {\ +color: black;\ +}\ +.ace-sqlserver .ace_keyword {\ +color: #0000FF;\ +}\ +.ace-sqlserver .ace_numeric {\ +color: black;\ +}\ +.ace-sqlserver .ace_storage {\ +color: #11B7BE;\ +}\ +.ace-sqlserver .ace_keyword.ace_operator,\ +.ace-sqlserver .ace_lparen,\ +.ace-sqlserver .ace_rparen,\ +.ace-sqlserver .ace_punctuation {\ +color: #808080;\ +}\ +.ace-sqlserver .ace_set.ace_statement {\ +color: #0000FF;\ +text-decoration: underline;\ +}\ +.ace-sqlserver .ace_cursor {\ +color: black;\ +}\ +.ace-sqlserver .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-sqlserver .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-sqlserver .ace_constant.ace_language {\ +color: #979797;\ +}\ +.ace-sqlserver .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-sqlserver .ace_invalid {\ +background-color: rgb(153, 0, 0);\ +color: white;\ +}\ +.ace-sqlserver .ace_support.ace_function {\ +color: #FF00FF;\ +}\ +.ace-sqlserver .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-sqlserver .ace_class {\ +color: #008080;\ +}\ +.ace-sqlserver .ace_support.ace_other {\ +color: #6D79DE;\ +}\ +.ace-sqlserver .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F;\ +}\ +.ace-sqlserver .ace_comment {\ +color: #008000;\ +}\ +.ace-sqlserver .ace_constant.ace_numeric {\ +color: black;\ +}\ +.ace-sqlserver .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-sqlserver .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-sqlserver .ace_support.ace_storedprocedure {\ +color: #800000;\ +}\ +.ace-sqlserver .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-sqlserver .ace_list {\ +color: rgb(185, 6, 144);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-sqlserver .ace_gutter-active-line {\ +background-color: #dcdcdc;\ +}\ +.ace-sqlserver .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-sqlserver .ace_meta.ace_tag {\ +color: #0000FF;\ +}\ +.ace-sqlserver .ace_string.ace_regex {\ +color: #FF0000;\ +}\ +.ace-sqlserver .ace_string {\ +color: #FF0000;\ +}\ +.ace-sqlserver .ace_entity.ace_other.ace_attribute-name {\ +color: #994409;\ +}\ +.ace-sqlserver .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-terminal.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-terminal.js new file mode 100644 index 0000000..76379d4 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-terminal.js @@ -0,0 +1,114 @@ +define("ace/theme/terminal",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-terminal-theme"; +exports.cssText = ".ace-terminal-theme .ace_gutter {\ +background: #1a0005;\ +color: steelblue\ +}\ +.ace-terminal-theme .ace_print-margin {\ +width: 1px;\ +background: #1a1a1a\ +}\ +.ace-terminal-theme {\ +background-color: black;\ +color: #DEDEDE\ +}\ +.ace-terminal-theme .ace_cursor {\ +color: #9F9F9F\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_selection {\ +background: #424242\ +}\ +.ace-terminal-theme.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px black;\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_step {\ +background: rgb(0, 0, 0)\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_bracket {\ +background: #090;\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_bracket-start {\ +background: #090;\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_bracket-unmatched {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #900\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_active-line {\ +background: #2A2A2A\ +}\ +.ace-terminal-theme .ace_gutter-active-line {\ +background-color: #2A112A\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_selected-word {\ +border: 1px solid #424242\ +}\ +.ace-terminal-theme .ace_invisible {\ +color: #343434\ +}\ +.ace-terminal-theme .ace_keyword,\ +.ace-terminal-theme .ace_meta,\ +.ace-terminal-theme .ace_storage,\ +.ace-terminal-theme .ace_storage.ace_type,\ +.ace-terminal-theme .ace_support.ace_type {\ +color: tomato\ +}\ +.ace-terminal-theme .ace_keyword.ace_operator {\ +color: deeppink\ +}\ +.ace-terminal-theme .ace_constant.ace_character,\ +.ace-terminal-theme .ace_constant.ace_language,\ +.ace-terminal-theme .ace_constant.ace_numeric,\ +.ace-terminal-theme .ace_keyword.ace_other.ace_unit,\ +.ace-terminal-theme .ace_support.ace_constant,\ +.ace-terminal-theme .ace_variable.ace_parameter {\ +color: #E78C45\ +}\ +.ace-terminal-theme .ace_constant.ace_other {\ +color: gold\ +}\ +.ace-terminal-theme .ace_invalid {\ +color: yellow;\ +background-color: red\ +}\ +.ace-terminal-theme .ace_invalid.ace_deprecated {\ +color: #CED2CF;\ +background-color: #B798BF\ +}\ +.ace-terminal-theme .ace_fold {\ +background-color: #7AA6DA;\ +border-color: #DEDEDE\ +}\ +.ace-terminal-theme .ace_entity.ace_name.ace_function,\ +.ace-terminal-theme .ace_support.ace_function,\ +.ace-terminal-theme .ace_variable {\ +color: #7AA6DA\ +}\ +.ace-terminal-theme .ace_support.ace_class,\ +.ace-terminal-theme .ace_support.ace_type {\ +color: #E7C547\ +}\ +.ace-terminal-theme .ace_heading,\ +.ace-terminal-theme .ace_string {\ +color: #B9CA4A\ +}\ +.ace-terminal-theme .ace_entity.ace_name.ace_tag,\ +.ace-terminal-theme .ace_entity.ace_other.ace_attribute-name,\ +.ace-terminal-theme .ace_meta.ace_tag,\ +.ace-terminal-theme .ace_string.ace_regexp,\ +.ace-terminal-theme .ace_variable {\ +color: #D54E53\ +}\ +.ace-terminal-theme .ace_comment {\ +color: orangered\ +}\ +.ace-terminal-theme .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLBWV/8PAAK4AYnhiq+xAAAAAElFTkSuQmCC) right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-textmate.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-textmate.js new file mode 100644 index 0000000..b1d1a99 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-textmate.js @@ -0,0 +1,129 @@ +define("ace/theme/textmate",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +exports.isDark = false; +exports.cssClass = "ace-tm"; +exports.cssText = ".ace-tm .ace_gutter {\ +background: #f0f0f0;\ +color: #333;\ +}\ +.ace-tm .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-tm .ace_fold {\ +background-color: #6B72E6;\ +}\ +.ace-tm {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-tm .ace_cursor {\ +color: black;\ +}\ +.ace-tm .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-tm .ace_storage,\ +.ace-tm .ace_keyword {\ +color: blue;\ +}\ +.ace-tm .ace_constant {\ +color: rgb(197, 6, 11);\ +}\ +.ace-tm .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-tm .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-tm .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_invalid {\ +background-color: rgba(255, 0, 0, 0.1);\ +color: red;\ +}\ +.ace-tm .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-tm .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_support.ace_type,\ +.ace-tm .ace_support.ace_class {\ +color: rgb(109, 121, 222);\ +}\ +.ace-tm .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-tm .ace_string {\ +color: rgb(3, 106, 7);\ +}\ +.ace-tm .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-tm .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-tm .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-tm .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-tm .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-tm .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-tm .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-tm .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-tm .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-tm .ace_meta.ace_tag {\ +color:rgb(0, 22, 142);\ +}\ +.ace-tm .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-tm .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-tm.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px white;\ +}\ +.ace-tm .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-tm .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-tm .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-tm .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-tm .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-tm .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-tm .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow.js new file mode 100644 index 0000000..91adb57 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow.js @@ -0,0 +1,108 @@ +define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-tomorrow"; +exports.cssText = ".ace-tomorrow .ace_gutter {\ +background: #f6f6f6;\ +color: #4D4D4C\ +}\ +.ace-tomorrow .ace_print-margin {\ +width: 1px;\ +background: #f6f6f6\ +}\ +.ace-tomorrow {\ +background-color: #FFFFFF;\ +color: #4D4D4C\ +}\ +.ace-tomorrow .ace_cursor {\ +color: #AEAFAD\ +}\ +.ace-tomorrow .ace_marker-layer .ace_selection {\ +background: #D6D6D6\ +}\ +.ace-tomorrow.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FFFFFF;\ +}\ +.ace-tomorrow .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-tomorrow .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #D1D1D1\ +}\ +.ace-tomorrow .ace_marker-layer .ace_active-line {\ +background: #EFEFEF\ +}\ +.ace-tomorrow .ace_gutter-active-line {\ +background-color : #dcdcdc\ +}\ +.ace-tomorrow .ace_marker-layer .ace_selected-word {\ +border: 1px solid #D6D6D6\ +}\ +.ace-tomorrow .ace_invisible {\ +color: #D1D1D1\ +}\ +.ace-tomorrow .ace_keyword,\ +.ace-tomorrow .ace_meta,\ +.ace-tomorrow .ace_storage,\ +.ace-tomorrow .ace_storage.ace_type,\ +.ace-tomorrow .ace_support.ace_type {\ +color: #8959A8\ +}\ +.ace-tomorrow .ace_keyword.ace_operator {\ +color: #3E999F\ +}\ +.ace-tomorrow .ace_constant.ace_character,\ +.ace-tomorrow .ace_constant.ace_language,\ +.ace-tomorrow .ace_constant.ace_numeric,\ +.ace-tomorrow .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow .ace_support.ace_constant,\ +.ace-tomorrow .ace_variable.ace_parameter {\ +color: #F5871F\ +}\ +.ace-tomorrow .ace_constant.ace_other {\ +color: #666969\ +}\ +.ace-tomorrow .ace_invalid {\ +color: #FFFFFF;\ +background-color: #C82829\ +}\ +.ace-tomorrow .ace_invalid.ace_deprecated {\ +color: #FFFFFF;\ +background-color: #8959A8\ +}\ +.ace-tomorrow .ace_fold {\ +background-color: #4271AE;\ +border-color: #4D4D4C\ +}\ +.ace-tomorrow .ace_entity.ace_name.ace_function,\ +.ace-tomorrow .ace_support.ace_function,\ +.ace-tomorrow .ace_variable {\ +color: #4271AE\ +}\ +.ace-tomorrow .ace_support.ace_class,\ +.ace-tomorrow .ace_support.ace_type {\ +color: #C99E00\ +}\ +.ace-tomorrow .ace_heading,\ +.ace-tomorrow .ace_markup.ace_heading,\ +.ace-tomorrow .ace_string {\ +color: #718C00\ +}\ +.ace-tomorrow .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow .ace_meta.ace_tag,\ +.ace-tomorrow .ace_string.ace_regexp,\ +.ace-tomorrow .ace_variable {\ +color: #C82829\ +}\ +.ace-tomorrow .ace_comment {\ +color: #8E908C\ +}\ +.ace-tomorrow .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night.js new file mode 100644 index 0000000..abfa875 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night.js @@ -0,0 +1,108 @@ +define("ace/theme/tomorrow_night",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night"; +exports.cssText = ".ace-tomorrow-night .ace_gutter {\ +background: #25282c;\ +color: #C5C8C6\ +}\ +.ace-tomorrow-night .ace_print-margin {\ +width: 1px;\ +background: #25282c\ +}\ +.ace-tomorrow-night {\ +background-color: #1D1F21;\ +color: #C5C8C6\ +}\ +.ace-tomorrow-night .ace_cursor {\ +color: #AEAFAD\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_selection {\ +background: #373B41\ +}\ +.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #1D1F21;\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #4B4E55\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_active-line {\ +background: #282A2E\ +}\ +.ace-tomorrow-night .ace_gutter-active-line {\ +background-color: #282A2E\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_selected-word {\ +border: 1px solid #373B41\ +}\ +.ace-tomorrow-night .ace_invisible {\ +color: #4B4E55\ +}\ +.ace-tomorrow-night .ace_keyword,\ +.ace-tomorrow-night .ace_meta,\ +.ace-tomorrow-night .ace_storage,\ +.ace-tomorrow-night .ace_storage.ace_type,\ +.ace-tomorrow-night .ace_support.ace_type {\ +color: #B294BB\ +}\ +.ace-tomorrow-night .ace_keyword.ace_operator {\ +color: #8ABEB7\ +}\ +.ace-tomorrow-night .ace_constant.ace_character,\ +.ace-tomorrow-night .ace_constant.ace_language,\ +.ace-tomorrow-night .ace_constant.ace_numeric,\ +.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night .ace_support.ace_constant,\ +.ace-tomorrow-night .ace_variable.ace_parameter {\ +color: #DE935F\ +}\ +.ace-tomorrow-night .ace_constant.ace_other {\ +color: #CED1CF\ +}\ +.ace-tomorrow-night .ace_invalid {\ +color: #CED2CF;\ +background-color: #DF5F5F\ +}\ +.ace-tomorrow-night .ace_invalid.ace_deprecated {\ +color: #CED2CF;\ +background-color: #B798BF\ +}\ +.ace-tomorrow-night .ace_fold {\ +background-color: #81A2BE;\ +border-color: #C5C8C6\ +}\ +.ace-tomorrow-night .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night .ace_support.ace_function,\ +.ace-tomorrow-night .ace_variable {\ +color: #81A2BE\ +}\ +.ace-tomorrow-night .ace_support.ace_class,\ +.ace-tomorrow-night .ace_support.ace_type {\ +color: #F0C674\ +}\ +.ace-tomorrow-night .ace_heading,\ +.ace-tomorrow-night .ace_markup.ace_heading,\ +.ace-tomorrow-night .ace_string {\ +color: #B5BD68\ +}\ +.ace-tomorrow-night .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night .ace_meta.ace_tag,\ +.ace-tomorrow-night .ace_string.ace_regexp,\ +.ace-tomorrow-night .ace_variable {\ +color: #CC6666\ +}\ +.ace-tomorrow-night .ace_comment {\ +color: #969896\ +}\ +.ace-tomorrow-night .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_blue.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_blue.js new file mode 100644 index 0000000..03f3af1 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_blue.js @@ -0,0 +1,106 @@ +define("ace/theme/tomorrow_night_blue",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-blue"; +exports.cssText = ".ace-tomorrow-night-blue .ace_gutter {\ +background: #00204b;\ +color: #7388b5\ +}\ +.ace-tomorrow-night-blue .ace_print-margin {\ +width: 1px;\ +background: #00204b\ +}\ +.ace-tomorrow-night-blue {\ +background-color: #002451;\ +color: #FFFFFF\ +}\ +.ace-tomorrow-night-blue .ace_constant.ace_other,\ +.ace-tomorrow-night-blue .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {\ +background: #003F8E\ +}\ +.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002451;\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_step {\ +background: rgb(127, 111, 19)\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404F7D\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {\ +background: #00346E\ +}\ +.ace-tomorrow-night-blue .ace_gutter-active-line {\ +background-color: #022040\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {\ +border: 1px solid #003F8E\ +}\ +.ace-tomorrow-night-blue .ace_invisible {\ +color: #404F7D\ +}\ +.ace-tomorrow-night-blue .ace_keyword,\ +.ace-tomorrow-night-blue .ace_meta,\ +.ace-tomorrow-night-blue .ace_storage,\ +.ace-tomorrow-night-blue .ace_storage.ace_type,\ +.ace-tomorrow-night-blue .ace_support.ace_type {\ +color: #EBBBFF\ +}\ +.ace-tomorrow-night-blue .ace_keyword.ace_operator {\ +color: #99FFFF\ +}\ +.ace-tomorrow-night-blue .ace_constant.ace_character,\ +.ace-tomorrow-night-blue .ace_constant.ace_language,\ +.ace-tomorrow-night-blue .ace_constant.ace_numeric,\ +.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night-blue .ace_support.ace_constant,\ +.ace-tomorrow-night-blue .ace_variable.ace_parameter {\ +color: #FFC58F\ +}\ +.ace-tomorrow-night-blue .ace_invalid {\ +color: #FFFFFF;\ +background-color: #F99DA5\ +}\ +.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {\ +color: #FFFFFF;\ +background-color: #EBBBFF\ +}\ +.ace-tomorrow-night-blue .ace_fold {\ +background-color: #BBDAFF;\ +border-color: #FFFFFF\ +}\ +.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night-blue .ace_support.ace_function,\ +.ace-tomorrow-night-blue .ace_variable {\ +color: #BBDAFF\ +}\ +.ace-tomorrow-night-blue .ace_support.ace_class,\ +.ace-tomorrow-night-blue .ace_support.ace_type {\ +color: #FFEEAD\ +}\ +.ace-tomorrow-night-blue .ace_heading,\ +.ace-tomorrow-night-blue .ace_markup.ace_heading,\ +.ace-tomorrow-night-blue .ace_string {\ +color: #D1F1A9\ +}\ +.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night-blue .ace_meta.ace_tag,\ +.ace-tomorrow-night-blue .ace_string.ace_regexp,\ +.ace-tomorrow-night-blue .ace_variable {\ +color: #FF9DA4\ +}\ +.ace-tomorrow-night-blue .ace_comment {\ +color: #7285B7\ +}\ +.ace-tomorrow-night-blue .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_bright.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_bright.js new file mode 100644 index 0000000..ed2d068 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_bright.js @@ -0,0 +1,121 @@ +define("ace/theme/tomorrow_night_bright",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-bright"; +exports.cssText = ".ace-tomorrow-night-bright .ace_gutter {\ +background: #1a1a1a;\ +color: #DEDEDE\ +}\ +.ace-tomorrow-night-bright .ace_print-margin {\ +width: 1px;\ +background: #1a1a1a\ +}\ +.ace-tomorrow-night-bright {\ +background-color: #000000;\ +color: #DEDEDE\ +}\ +.ace-tomorrow-night-bright .ace_cursor {\ +color: #9F9F9F\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {\ +background: #424242\ +}\ +.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #000000;\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #888888\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_highlight {\ +border: 1px solid rgb(110, 119, 0);\ +border-bottom: 0;\ +box-shadow: inset 0 -1px rgb(110, 119, 0);\ +margin: -1px 0 0 -1px;\ +background: rgba(255, 235, 0, 0.1)\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {\ +background: #2A2A2A\ +}\ +.ace-tomorrow-night-bright .ace_gutter-active-line {\ +background-color: #2A2A2A\ +}\ +.ace-tomorrow-night-bright .ace_stack {\ +background-color: rgb(66, 90, 44)\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {\ +border: 1px solid #888888\ +}\ +.ace-tomorrow-night-bright .ace_invisible {\ +color: #343434\ +}\ +.ace-tomorrow-night-bright .ace_keyword,\ +.ace-tomorrow-night-bright .ace_meta,\ +.ace-tomorrow-night-bright .ace_storage,\ +.ace-tomorrow-night-bright .ace_storage.ace_type,\ +.ace-tomorrow-night-bright .ace_support.ace_type {\ +color: #C397D8\ +}\ +.ace-tomorrow-night-bright .ace_keyword.ace_operator {\ +color: #70C0B1\ +}\ +.ace-tomorrow-night-bright .ace_constant.ace_character,\ +.ace-tomorrow-night-bright .ace_constant.ace_language,\ +.ace-tomorrow-night-bright .ace_constant.ace_numeric,\ +.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night-bright .ace_support.ace_constant,\ +.ace-tomorrow-night-bright .ace_variable.ace_parameter {\ +color: #E78C45\ +}\ +.ace-tomorrow-night-bright .ace_constant.ace_other {\ +color: #EEEEEE\ +}\ +.ace-tomorrow-night-bright .ace_invalid {\ +color: #CED2CF;\ +background-color: #DF5F5F\ +}\ +.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {\ +color: #CED2CF;\ +background-color: #B798BF\ +}\ +.ace-tomorrow-night-bright .ace_fold {\ +background-color: #7AA6DA;\ +border-color: #DEDEDE\ +}\ +.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night-bright .ace_support.ace_function,\ +.ace-tomorrow-night-bright .ace_variable {\ +color: #7AA6DA\ +}\ +.ace-tomorrow-night-bright .ace_support.ace_class,\ +.ace-tomorrow-night-bright .ace_support.ace_type {\ +color: #E7C547\ +}\ +.ace-tomorrow-night-bright .ace_heading,\ +.ace-tomorrow-night-bright .ace_markup.ace_heading,\ +.ace-tomorrow-night-bright .ace_string {\ +color: #B9CA4A\ +}\ +.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night-bright .ace_meta.ace_tag,\ +.ace-tomorrow-night-bright .ace_string.ace_regexp,\ +.ace-tomorrow-night-bright .ace_variable {\ +color: #D54E53\ +}\ +.ace-tomorrow-night-bright .ace_comment {\ +color: #969896\ +}\ +.ace-tomorrow-night-bright .ace_c9searchresults.ace_keyword {\ +color: #C2C280\ +}\ +.ace-tomorrow-night-bright .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_eighties.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_eighties.js new file mode 100644 index 0000000..fe25a65 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-tomorrow_night_eighties.js @@ -0,0 +1,108 @@ +define("ace/theme/tomorrow_night_eighties",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-eighties"; +exports.cssText = ".ace-tomorrow-night-eighties .ace_gutter {\ +background: #272727;\ +color: #CCC\ +}\ +.ace-tomorrow-night-eighties .ace_print-margin {\ +width: 1px;\ +background: #272727\ +}\ +.ace-tomorrow-night-eighties {\ +background-color: #2D2D2D;\ +color: #CCCCCC\ +}\ +.ace-tomorrow-night-eighties .ace_constant.ace_other,\ +.ace-tomorrow-night-eighties .ace_cursor {\ +color: #CCCCCC\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {\ +background: #515151\ +}\ +.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #2D2D2D;\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #6A6A6A\ +}\ +.ace-tomorrow-night-bright .ace_stack {\ +background: rgb(66, 90, 44)\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {\ +background: #393939\ +}\ +.ace-tomorrow-night-eighties .ace_gutter-active-line {\ +background-color: #393939\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {\ +border: 1px solid #515151\ +}\ +.ace-tomorrow-night-eighties .ace_invisible {\ +color: #6A6A6A\ +}\ +.ace-tomorrow-night-eighties .ace_keyword,\ +.ace-tomorrow-night-eighties .ace_meta,\ +.ace-tomorrow-night-eighties .ace_storage,\ +.ace-tomorrow-night-eighties .ace_storage.ace_type,\ +.ace-tomorrow-night-eighties .ace_support.ace_type {\ +color: #CC99CC\ +}\ +.ace-tomorrow-night-eighties .ace_keyword.ace_operator {\ +color: #66CCCC\ +}\ +.ace-tomorrow-night-eighties .ace_constant.ace_character,\ +.ace-tomorrow-night-eighties .ace_constant.ace_language,\ +.ace-tomorrow-night-eighties .ace_constant.ace_numeric,\ +.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night-eighties .ace_support.ace_constant,\ +.ace-tomorrow-night-eighties .ace_variable.ace_parameter {\ +color: #F99157\ +}\ +.ace-tomorrow-night-eighties .ace_invalid {\ +color: #CDCDCD;\ +background-color: #F2777A\ +}\ +.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {\ +color: #CDCDCD;\ +background-color: #CC99CC\ +}\ +.ace-tomorrow-night-eighties .ace_fold {\ +background-color: #6699CC;\ +border-color: #CCCCCC\ +}\ +.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night-eighties .ace_support.ace_function,\ +.ace-tomorrow-night-eighties .ace_variable {\ +color: #6699CC\ +}\ +.ace-tomorrow-night-eighties .ace_support.ace_class,\ +.ace-tomorrow-night-eighties .ace_support.ace_type {\ +color: #FFCC66\ +}\ +.ace-tomorrow-night-eighties .ace_heading,\ +.ace-tomorrow-night-eighties .ace_markup.ace_heading,\ +.ace-tomorrow-night-eighties .ace_string {\ +color: #99CC99\ +}\ +.ace-tomorrow-night-eighties .ace_comment {\ +color: #999999\ +}\ +.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night-eighties .ace_meta.ace_tag,\ +.ace-tomorrow-night-eighties .ace_variable {\ +color: #F2777A\ +}\ +.ace-tomorrow-night-eighties .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-twilight.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-twilight.js new file mode 100644 index 0000000..68c58be --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-twilight.js @@ -0,0 +1,109 @@ +define("ace/theme/twilight",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-twilight"; +exports.cssText = ".ace-twilight .ace_gutter {\ +background: #232323;\ +color: #E2E2E2\ +}\ +.ace-twilight .ace_print-margin {\ +width: 1px;\ +background: #232323\ +}\ +.ace-twilight {\ +background-color: #141414;\ +color: #F8F8F8\ +}\ +.ace-twilight .ace_cursor {\ +color: #A7A7A7\ +}\ +.ace-twilight .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20)\ +}\ +.ace-twilight.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #141414;\ +}\ +.ace-twilight .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-twilight .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.25)\ +}\ +.ace-twilight .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.031)\ +}\ +.ace-twilight .ace_gutter-active-line {\ +background-color: rgba(255, 255, 255, 0.031)\ +}\ +.ace-twilight .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(221, 240, 255, 0.20)\ +}\ +.ace-twilight .ace_invisible {\ +color: rgba(255, 255, 255, 0.25)\ +}\ +.ace-twilight .ace_keyword,\ +.ace-twilight .ace_meta {\ +color: #CDA869\ +}\ +.ace-twilight .ace_constant,\ +.ace-twilight .ace_constant.ace_character,\ +.ace-twilight .ace_constant.ace_character.ace_escape,\ +.ace-twilight .ace_constant.ace_other,\ +.ace-twilight .ace_heading,\ +.ace-twilight .ace_markup.ace_heading,\ +.ace-twilight .ace_support.ace_constant {\ +color: #CF6A4C\ +}\ +.ace-twilight .ace_invalid.ace_illegal {\ +color: #F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75)\ +}\ +.ace-twilight .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #D2A8A1\ +}\ +.ace-twilight .ace_support {\ +color: #9B859D\ +}\ +.ace-twilight .ace_fold {\ +background-color: #AC885B;\ +border-color: #F8F8F8\ +}\ +.ace-twilight .ace_support.ace_function {\ +color: #DAD085\ +}\ +.ace-twilight .ace_list,\ +.ace-twilight .ace_markup.ace_list,\ +.ace-twilight .ace_storage {\ +color: #F9EE98\ +}\ +.ace-twilight .ace_entity.ace_name.ace_function,\ +.ace-twilight .ace_meta.ace_tag,\ +.ace-twilight .ace_variable {\ +color: #AC885B\ +}\ +.ace-twilight .ace_string {\ +color: #8F9D6A\ +}\ +.ace-twilight .ace_string.ace_regexp {\ +color: #E9C062\ +}\ +.ace-twilight .ace_comment {\ +font-style: italic;\ +color: #5F5A60\ +}\ +.ace-twilight .ace_variable {\ +color: #7587A6\ +}\ +.ace-twilight .ace_xml-pe {\ +color: #494949\ +}\ +.ace-twilight .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-vibrant_ink.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-vibrant_ink.js new file mode 100644 index 0000000..4396935 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-vibrant_ink.js @@ -0,0 +1,94 @@ +define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-vibrant-ink"; +exports.cssText = ".ace-vibrant-ink .ace_gutter {\ +background: #1a1a1a;\ +color: #BEBEBE\ +}\ +.ace-vibrant-ink .ace_print-margin {\ +width: 1px;\ +background: #1a1a1a\ +}\ +.ace-vibrant-ink {\ +background-color: #0F0F0F;\ +color: #FFFFFF\ +}\ +.ace-vibrant-ink .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_selection {\ +background: #6699CC\ +}\ +.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #0F0F0F;\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_active-line {\ +background: #333333\ +}\ +.ace-vibrant-ink .ace_gutter-active-line {\ +background-color: #333333\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_selected-word {\ +border: 1px solid #6699CC\ +}\ +.ace-vibrant-ink .ace_invisible {\ +color: #404040\ +}\ +.ace-vibrant-ink .ace_keyword,\ +.ace-vibrant-ink .ace_meta {\ +color: #FF6600\ +}\ +.ace-vibrant-ink .ace_constant,\ +.ace-vibrant-ink .ace_constant.ace_character,\ +.ace-vibrant-ink .ace_constant.ace_character.ace_escape,\ +.ace-vibrant-ink .ace_constant.ace_other {\ +color: #339999\ +}\ +.ace-vibrant-ink .ace_constant.ace_numeric {\ +color: #99CC99\ +}\ +.ace-vibrant-ink .ace_invalid,\ +.ace-vibrant-ink .ace_invalid.ace_deprecated {\ +color: #CCFF33;\ +background-color: #000000\ +}\ +.ace-vibrant-ink .ace_fold {\ +background-color: #FFCC00;\ +border-color: #FFFFFF\ +}\ +.ace-vibrant-ink .ace_entity.ace_name.ace_function,\ +.ace-vibrant-ink .ace_support.ace_function,\ +.ace-vibrant-ink .ace_variable {\ +color: #FFCC00\ +}\ +.ace-vibrant-ink .ace_variable.ace_parameter {\ +font-style: italic\ +}\ +.ace-vibrant-ink .ace_string {\ +color: #66FF00\ +}\ +.ace-vibrant-ink .ace_string.ace_regexp {\ +color: #44B4CC\ +}\ +.ace-vibrant-ink .ace_comment {\ +color: #9933CC\ +}\ +.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\ +font-style: italic;\ +color: #99CC99\ +}\ +.ace-vibrant-ink .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-xcode.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-xcode.js new file mode 100644 index 0000000..973cf41 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/theme-xcode.js @@ -0,0 +1,88 @@ +define("ace/theme/xcode",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-xcode"; +exports.cssText = "\ +.ace-xcode .ace_gutter {\ +background: #e8e8e8;\ +color: #333\ +}\ +.ace-xcode .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-xcode {\ +background-color: #FFFFFF;\ +color: #000000\ +}\ +.ace-xcode .ace_cursor {\ +color: #000000\ +}\ +.ace-xcode .ace_marker-layer .ace_selection {\ +background: #B5D5FF\ +}\ +.ace-xcode.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FFFFFF;\ +}\ +.ace-xcode .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174)\ +}\ +.ace-xcode .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #BFBFBF\ +}\ +.ace-xcode .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.071)\ +}\ +.ace-xcode .ace_gutter-active-line {\ +background-color: rgba(0, 0, 0, 0.071)\ +}\ +.ace-xcode .ace_marker-layer .ace_selected-word {\ +border: 1px solid #B5D5FF\ +}\ +.ace-xcode .ace_constant.ace_language,\ +.ace-xcode .ace_keyword,\ +.ace-xcode .ace_meta,\ +.ace-xcode .ace_variable.ace_language {\ +color: #C800A4\ +}\ +.ace-xcode .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-xcode .ace_constant.ace_character,\ +.ace-xcode .ace_constant.ace_other {\ +color: #275A5E\ +}\ +.ace-xcode .ace_constant.ace_numeric {\ +color: #3A00DC\ +}\ +.ace-xcode .ace_entity.ace_other.ace_attribute-name,\ +.ace-xcode .ace_support.ace_constant,\ +.ace-xcode .ace_support.ace_function {\ +color: #450084\ +}\ +.ace-xcode .ace_fold {\ +background-color: #C800A4;\ +border-color: #000000\ +}\ +.ace-xcode .ace_entity.ace_name.ace_tag,\ +.ace-xcode .ace_support.ace_class,\ +.ace-xcode .ace_support.ace_type {\ +color: #790EAD\ +}\ +.ace-xcode .ace_storage {\ +color: #C900A4\ +}\ +.ace-xcode .ace_string {\ +color: #DF0002\ +}\ +.ace-xcode .ace_comment {\ +color: #008E00\ +}\ +.ace-xcode .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/worker-coffee.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/worker-coffee.js new file mode 100644 index 0000000..6b421a7 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/worker-coffee.js @@ -0,0 +1,2157 @@ +"no use strict"; +!(function(window) { +if (typeof window.window != "undefined" && window.document) + return; +if (window.require && window.define) + return; + +if (!window.console) { + window.console = function() { + var msgs = Array.prototype.slice.call(arguments, 0); + postMessage({type: "log", data: msgs}); + }; + window.console.error = + window.console.warn = + window.console.log = + window.console.trace = window.console; +} +window.window = window; +window.ace = window; + +window.onerror = function(message, file, line, col, err) { + postMessage({type: "error", data: { + message: message, + data: err.data, + file: file, + line: line, + col: col, + stack: err.stack + }}); +}; + +window.normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = (base ? base + "/" : "") + moduleName; + + while (moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + + return moduleName; +}; + +window.require = function require(parentId, id) { + if (!id) { + id = parentId; + parentId = null; + } + if (!id.charAt) + throw new Error("worker.js require() accepts only (parentId, id) as arguments"); + + id = window.normalizeModule(parentId, id); + + var module = window.require.modules[id]; + if (module) { + if (!module.initialized) { + module.initialized = true; + module.exports = module.factory().exports; + } + return module.exports; + } + + if (!window.require.tlns) + return console.log("unable to load " + id); + + var path = resolveModuleId(id, window.require.tlns); + if (path.slice(-3) != ".js") path += ".js"; + + window.require.id = id; + window.require.modules[id] = {}; // prevent infinite loop on broken modules + importScripts(path); + return window.require(parentId, id); +}; +function resolveModuleId(id, paths) { + var testPath = id, tail = ""; + while (testPath) { + var alias = paths[testPath]; + if (typeof alias == "string") { + return alias + tail; + } else if (alias) { + return alias.location.replace(/\/*$/, "/") + (tail || alias.main || alias.name); + } else if (alias === false) { + return ""; + } + var i = testPath.lastIndexOf("/"); + if (i === -1) break; + tail = testPath.substr(i) + tail; + testPath = testPath.slice(0, i); + } + return id; +} +window.require.modules = {}; +window.require.tlns = {}; + +window.define = function(id, deps, factory) { + if (arguments.length == 2) { + factory = deps; + if (typeof id != "string") { + deps = id; + id = window.require.id; + } + } else if (arguments.length == 1) { + factory = id; + deps = []; + id = window.require.id; + } + + if (typeof factory != "function") { + window.require.modules[id] = { + exports: factory, + initialized: true + }; + return; + } + + if (!deps.length) + // If there is no dependencies, we inject "require", "exports" and + // "module" as dependencies, to provide CommonJS compatibility. + deps = ["require", "exports", "module"]; + + var req = function(childId) { + return window.require(id, childId); + }; + + window.require.modules[id] = { + exports: {}, + factory: function() { + var module = this; + var returnExports = factory.apply(this, deps.map(function(dep) { + switch (dep) { + // Because "require", "exports" and "module" aren't actual + // dependencies, we must handle them seperately. + case "require": return req; + case "exports": return module.exports; + case "module": return module; + // But for all other dependencies, we can just go ahead and + // require them. + default: return req(dep); + } + })); + if (returnExports) + module.exports = returnExports; + return module; + } + }; +}; +window.define.amd = {}; +require.tlns = {}; +window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { + for (var i in topLevelNamespaces) + require.tlns[i] = topLevelNamespaces[i]; +}; + +window.initSender = function initSender() { + + var EventEmitter = window.require("ace/lib/event_emitter").EventEmitter; + var oop = window.require("ace/lib/oop"); + + var Sender = function() {}; + + (function() { + + oop.implement(this, EventEmitter); + + this.callback = function(data, callbackId) { + postMessage({ + type: "call", + id: callbackId, + data: data + }); + }; + + this.emit = function(name, data) { + postMessage({ + type: "event", + name: name, + data: data + }); + }; + + }).call(Sender.prototype); + + return new Sender(); +}; + +var main = window.main = null; +var sender = window.sender = null; + +window.onmessage = function(e) { + var msg = e.data; + if (msg.event && sender) { + sender._signal(msg.event, msg.data); + } + else if (msg.command) { + if (main[msg.command]) + main[msg.command].apply(main, msg.args); + else if (window[msg.command]) + window[msg.command].apply(window, msg.args); + else + throw new Error("Unknown command:" + msg.command); + } + else if (msg.init) { + window.initBaseUrls(msg.tlns); + require("ace/lib/es5-shim"); + sender = window.sender = window.initSender(); + var clazz = require(msg.module)[msg.classname]; + main = window.main = new clazz(sender); + } +}; +})(this); + +define("ace/lib/oop",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } + return obj; +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +define("ace/range",["require","exports","module"], function(require, exports, module) { +"use strict"; +var comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; +var Range = function(startRow, startColumn, endRow, endColumn) { + this.start = { + row: startRow, + column: startColumn + }; + + this.end = { + row: endRow, + column: endColumn + }; +}; + +(function() { + this.isEqual = function(range) { + return this.start.row === range.start.row && + this.end.row === range.end.row && + this.start.column === range.start.column && + this.end.column === range.end.column; + }; + this.toString = function() { + return ("Range: [" + this.start.row + "/" + this.start.column + + "] -> [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + }; + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + }; + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + }; + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + }; + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + }; + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + }; + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + }; + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + }; + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + } + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + }; + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) + var end = {row: lastRow + 1, column: 0}; + else if (this.end.row < firstRow) + var end = {row: firstRow, column: 0}; + + if (this.start.row > lastRow) + var start = {row: lastRow + 1, column: 0}; + else if (this.start.row < firstRow) + var start = {row: firstRow, column: 0}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row === this.end.row && this.start.column === this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0); + else + return new Range(this.start.row, 0, this.end.row, 0); + }; + this.toScreenRange = function(session) { + var screenPosStart = session.documentToScreenPosition(this.start); + var screenPosEnd = session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + this.moveBy = function(row, column) { + this.start.row += row; + this.start.column += column; + this.end.row += row; + this.end.column += column; + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; +Range.comparePoints = comparePoints; + +Range.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; + + +exports.Range = Range; +}); + +define("ace/apply_delta",["require","exports","module"], function(require, exports, module) { +"use strict"; + +function throwDeltaError(delta, errorText){ + console.log("Invalid Delta:", delta); + throw "Invalid Delta: " + errorText; +} + +function positionInDocument(docLines, position) { + return position.row >= 0 && position.row < docLines.length && + position.column >= 0 && position.column <= docLines[position.row].length; +} + +function validateDelta(docLines, delta) { + if (delta.action != "insert" && delta.action != "remove") + throwDeltaError(delta, "delta.action must be 'insert' or 'remove'"); + if (!(delta.lines instanceof Array)) + throwDeltaError(delta, "delta.lines must be an Array"); + if (!delta.start || !delta.end) + throwDeltaError(delta, "delta.start/end must be an present"); + var start = delta.start; + if (!positionInDocument(docLines, delta.start)) + throwDeltaError(delta, "delta.start must be contained in document"); + var end = delta.end; + if (delta.action == "remove" && !positionInDocument(docLines, end)) + throwDeltaError(delta, "delta.end must contained in document for 'remove' actions"); + var numRangeRows = end.row - start.row; + var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0)); + if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars) + throwDeltaError(delta, "delta.range must match delta lines"); +} + +exports.applyDelta = function(docLines, delta, doNotValidate) { + + var row = delta.start.row; + var startColumn = delta.start.column; + var line = docLines[row] || ""; + switch (delta.action) { + case "insert": + var lines = delta.lines; + if (lines.length === 1) { + docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn); + } else { + var args = [row, 1].concat(delta.lines); + docLines.splice.apply(docLines, args); + docLines[row] = line.substring(0, startColumn) + docLines[row]; + docLines[row + delta.lines.length - 1] += line.substring(startColumn); + } + break; + case "remove": + var endColumn = delta.end.column; + var endRow = delta.end.row; + if (row === endRow) { + docLines[row] = line.substring(0, startColumn) + line.substring(endColumn); + } else { + docLines.splice( + row, endRow - row + 1, + line.substring(0, startColumn) + docLines[endRow].substring(endColumn) + ); + } + break; + } +}; +}); + +define("ace/lib/event_emitter",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; +var stopPropagation = function() { this.propagationStopped = true; }; +var preventDefault = function() { this.defaultPrevented = true; }; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry || (this._eventRegistry = {}); + this._defaultHandlers || (this._defaultHandlers = {}); + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + if (typeof e != "object" || !e) + e = {}; + + if (!e.type) + e.type = eventName; + if (!e.stopPropagation) + e.stopPropagation = stopPropagation; + if (!e.preventDefault) + e.preventDefault = preventDefault; + + listeners = listeners.slice(); + for (var i=0; i this.row) + return; + + var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight); + this.setPosition(point.row, point.column, true); + }; + + function $pointsInOrder(point1, point2, equalPointsInOrder) { + var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column; + return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter); + } + + function $getTransformedPoint(delta, point, moveIfEqual) { + var deltaIsInsert = delta.action == "insert"; + var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row); + var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column); + var deltaStart = delta.start; + var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range. + if ($pointsInOrder(point, deltaStart, moveIfEqual)) { + return { + row: point.row, + column: point.column + }; + } + if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) { + return { + row: point.row + deltaRowShift, + column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0) + }; + } + + return { + row: deltaStart.row, + column: deltaStart.column + }; + } + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._signal("change", { + old: old, + value: pos + }); + }; + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + this.attach = function(doc) { + this.document = doc || this.document; + this.document.on("change", this.$onChange); + }; + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var applyDelta = require("./apply_delta").applyDelta; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +var Document = function(textOrLines) { + this.$lines = [""]; + if (textOrLines.length === 0) { + this.$lines = [""]; + } else if (Array.isArray(textOrLines)) { + this.insertMergedLines({row: 0, column: 0}, textOrLines); + } else { + this.insert({row: 0, column:0}, textOrLines); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength() - 1; + this.remove(new Range(0, 0, len, this.getLine(len).length)); + this.insert({row: 0, column: 0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + if ("aaa".split(/a/).length === 0) { + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + }; + } else { + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + } + + + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + this.$autoNewLine = match ? match[1] : "\n"; + this._signal("changeNewLineMode"); + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + case "unix": + return "\n"; + default: + return this.$autoNewLine || "\n"; + } + }; + + this.$autoNewLine = ""; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + this._signal("changeNewLineMode"); + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + return this.getLinesForRange(range).join(this.getNewLineCharacter()); + }; + this.getLinesForRange = function(range) { + var lines; + if (range.start.row === range.end.row) { + lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)]; + } else { + lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + } + return lines; + }; + this.insertLines = function(row, lines) { + console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."); + return this.insertFullLines(row, lines); + }; + this.removeLines = function(firstRow, lastRow) { + console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."); + return this.removeFullLines(firstRow, lastRow); + }; + this.insertNewLine = function(position) { + console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."); + return this.insertMergedLines(position, ["", ""]); + }; + this.insert = function(position, text) { + if (this.getLength() <= 1) + this.$detectNewLine(text); + + return this.insertMergedLines(position, this.$split(text)); + }; + this.insertInLine = function(position, text) { + var start = this.clippedPos(position.row, position.column); + var end = this.pos(position.row, position.column + text.length); + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: [text] + }, true); + + return this.clonePos(end); + }; + + this.clippedPos = function(row, column) { + var length = this.getLength(); + if (row === undefined) { + row = length; + } else if (row < 0) { + row = 0; + } else if (row >= length) { + row = length - 1; + column = undefined; + } + var line = this.getLine(row); + if (column == undefined) + column = line.length; + column = Math.min(Math.max(column, 0), line.length); + return {row: row, column: column}; + }; + + this.clonePos = function(pos) { + return {row: pos.row, column: pos.column}; + }; + + this.pos = function(row, column) { + return {row: row, column: column}; + }; + + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length - 1).length; + } else { + position.row = Math.max(0, position.row); + position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length); + } + return position; + }; + this.insertFullLines = function(row, lines) { + row = Math.min(Math.max(row, 0), this.getLength()); + var column = 0; + if (row < this.getLength()) { + lines = lines.concat([""]); + column = 0; + } else { + lines = [""].concat(lines); + row--; + column = this.$lines[row].length; + } + this.insertMergedLines({row: row, column: column}, lines); + }; + this.insertMergedLines = function(position, lines) { + var start = this.clippedPos(position.row, position.column); + var end = { + row: start.row + lines.length - 1, + column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length + }; + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: lines + }); + + return this.clonePos(end); + }; + this.remove = function(range) { + var start = this.clippedPos(range.start.row, range.start.column); + var end = this.clippedPos(range.end.row, range.end.column); + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }); + return this.clonePos(start); + }; + this.removeInLine = function(row, startColumn, endColumn) { + var start = this.clippedPos(row, startColumn); + var end = this.clippedPos(row, endColumn); + + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }, true); + + return this.clonePos(start); + }; + this.removeFullLines = function(firstRow, lastRow) { + firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1); + lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1); + var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0; + var deleteLastNewLine = lastRow < this.getLength() - 1; + var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow ); + var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 ); + var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow ); + var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); + var range = new Range(startRow, startCol, endRow, endCol); + var deletedLines = this.$lines.slice(firstRow, lastRow + 1); + + this.applyDelta({ + start: range.start, + end: range.end, + action: "remove", + lines: this.getLinesForRange(range) + }); + return deletedLines; + }; + this.removeNewLine = function(row) { + if (row < this.getLength() - 1 && row >= 0) { + this.applyDelta({ + start: this.pos(row, this.getLine(row).length), + end: this.pos(row + 1, 0), + action: "remove", + lines: ["", ""] + }); + } + }; + this.replace = function(range, text) { + if (!(range instanceof Range)) + range = Range.fromPoints(range.start, range.end); + if (text.length === 0 && range.isEmpty()) + return range.start; + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + var end; + if (text) { + end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + this.revertDelta(deltas[i]); + } + }; + this.applyDelta = function(delta, doNotValidate) { + var isInsert = delta.action == "insert"; + if (isInsert ? delta.lines.length <= 1 && !delta.lines[0] + : !Range.comparePoints(delta.start, delta.end)) { + return; + } + + if (isInsert && delta.lines.length > 20000) + this.$splitAndapplyLargeDelta(delta, 20000); + applyDelta(this.$lines, delta, doNotValidate); + this._signal("change", delta); + }; + + this.$splitAndapplyLargeDelta = function(delta, MAX) { + var lines = delta.lines; + var l = lines.length; + var row = delta.start.row; + var column = delta.start.column; + var from = 0, to = 0; + do { + from = to; + to += MAX - 1; + var chunk = lines.slice(from, to); + if (to > l) { + delta.lines = chunk; + delta.start.row = row + from; + delta.start.column = column; + break; + } + chunk.push(""); + this.applyDelta({ + start: this.pos(row + from, column), + end: this.pos(row + to, column = 0), + action: delta.action, + lines: chunk + }, true); + } while(true); + }; + this.revertDelta = function(delta) { + this.applyDelta({ + start: this.clonePos(delta.start), + end: this.clonePos(delta.end), + action: (delta.action == "insert" ? "remove" : "insert"), + lines: delta.lines.slice() + }); + }; + this.indexToPosition = function(index, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + for (var i = startRow || 0, l = lines.length; i < l; i++) { + index -= lines[i].length + newlineLength; + if (index < 0) + return {row: i, column: index + lines[i].length + newlineLength}; + } + return {row: l-1, column: lines[l-1].length}; + }; + this.positionToIndex = function(pos, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + var index = 0; + var row = Math.min(pos.row, lines.length); + for (var i = startRow || 0; i < row; ++i) + index += lines[i].length + newlineLength; + + return index + pos.column; + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +define("ace/lib/lang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.last = function(a) { + return a[a.length - 1]; +}; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + var result = ''; + while (count > 0) { + if (count & 1) + result += string; + + if (count >>= 1) + string += string; + } + return result; +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,s;for(n=[],r=0,s=e.length;s>r;r++)t=e[r],t instanceof Array?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i;for(n=0,i=this.length;i>n;n++)if(t=this[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,s,o;for(s=e.split("\n"),o=[],n=0,r=s.length;r>n;n++)t=s[n],i&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?o.push(t):(i=/^\s*$/.test(t))?o.push(t):o.push("# "+t);return o}(),n.join("\n")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?t.first_line+1+":"+(t.first_column+1)+"-"+(t.last_line+1+":"+(t.last_column+1)):"No location data"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\|\//:/\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(".")>=0?(i=e.split("."),i.pop(),"coffee"===i[i.length-1]&&i.length>1&&i.pop(),i.join(".")):e},e.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},e.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=""+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},o=function(){var e,t,n,i,r,o,a,c,h,l,u,p,d,f,m;return this.code&&this.location?(u=this.location,a=u.first_line,o=u.first_column,h=u.last_line,c=u.last_column,null==h&&(h=a),null==c&&(c=o),r=this.filename||"[stdin]",e=this.code.split("\n")[a],m=o,i=a===h?c+1:e.length,l=e.slice(0,m).replace(/[^\s]/g," ")+s("^",i-m),"undefined"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return""+e+""},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),l=t(l)),r+":"+(a+1)+":"+(o+1)+": error: "+this.message+"\n"+e+"\n"+l):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case" ":return"space";case"\n":return"newline";case"\r":return"carriage return";case" ":return"tab";default:return e}}}.call(this),t.exports}(),_dereq_["./rewriter"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,o,a,c,h;for(h=this.tokens,i=0;c=h[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);o=c[0],k.call(s,o)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],"TERMINATOR"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return")"===(n=e[0])||"CALL_END"===n||"OUTDENT"===e[0]&&")"===this.tag(t-1)},e=function(e,t){return this.tokens["OUTDENT"===e[0]?t-1:t][0]="CALL_END"},this.scanTokens(function(n,i){return"CALL_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return"]"===(t=e[0])||"INDEX_END"===t},e=function(e){return e[0]="INDEX_END"},this.scanTokens(function(n,i){return"INDEX_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,s,o;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,s=r.length;s>=0?s>i:i>s;n=s>=0?++i:--i){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&("string"==typeof r[n]&&(r[n]=[r[n]]),o=this.tag(t+n+e),0>k.call(r[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,"@",null,":")>-1||this.indexOfTag(e,null,":")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),":"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,o,a,c,h,l;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(s,c)||this.tokens[e].generated)&&(h=this.tag(e),0>k.call(u,h))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),o=this.tag(e),k.call(s,o)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),k.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,l,p){var d,m,g,v,y,b,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U;if(U=i[0],F=(N=l>0?p[l-1]:[])[0],C=(p.length-1>l?p[l+1]:[])[0],j=function(){return e[e.length-1]},M=l,g=function(e){return l-M+e},v=function(){var e,t;return null!=(e=j())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return v()&&"("===(null!=(e=j())?e[0]:void 0)},w=function(){var e;return v()&&"{"===(null!=(e=j())?e[0]:void 0)},b=function(){var e;return v&&"CONTROL"===(null!=(e=j())?e[0]:void 0)},B=function(t){var n;return n=null!=t?t:l,e.push(["(",n,{ours:!0}]),p.splice(n,0,f("CALL_START","(")),null==t?l+=1:void 0},d=function(){return e.pop(),p.splice(l,0,f("CALL_END",")",["","end of input",i[2]])),l+=1},V=function(t,n){var r,s;return null==n&&(n=!0),r=null!=t?t:l,e.push(["{",r,{sameLine:!0,startsLine:n,ours:!0}]),s=new String("{"),s.generated=!0,p.splice(r,0,f("{",s,i)),null==t?l+=1:void 0},m=function(t){return t=null!=t?t:l,e.pop(),p.splice(t,0,f("}","}",i)),l+=1},y()&&("IF"===U||"TRY"===U||"FINALLY"===U||"CATCH"===U||"CLASS"===U||"SWITCH"===U))return e.push(["CONTROL",l,{ours:!0}]),g(1);if("INDENT"===U&&v()){if("=>"!==F&&"->"!==F&&"["!==F&&"("!==F&&","!==F&&"{"!==F&&"TRY"!==F&&"ELSE"!==F&&"="!==F)for(;y();)d();return b()&&e.pop(),e.push([U,l]),g(1)}if(k.call(s,U)>=0)return e.push([U,l]),g(1);if(k.call(r,U)>=0){for(;v();)y()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||"?"===U&&l>0&&!p[l-1].spaced)&&(k.call(o,C)>=0||k.call(h,C)>=0&&!(null!=(L=p[l+1])?L.spaced:void 0)&&!(null!=(x=p[l+1])?x.newLine:void 0)))return"?"===U&&(U=i[0]="FUNC_EXIST"),B(l+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(l+1,"INDENT")>-1&&this.looksObjectish(l+2)&&!this.findTagsBackwards(l,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return B(l+1),e.push(["INDENT",l+2]),g(3);if(":"===U){for(I=function(){var e;switch(!1){case e=this.tag(l-1),0>k.call(r,e):return t[1];case"@"!==this.tag(l-2):return l-2;default:return l-1}}.call(this);"HERECOMMENT"===this.tag(I-2);)I-=2;return this.insideForDeclaration="FOR"===C,P=0===I||(S=this.tag(I-1),k.call(u,S)>=0)||p[I-1].newLine,j()&&(D=j(),$=D[0],O=D[1],("{"===$||"INDENT"===$&&"{"===this.tag(O-1))&&(P||","===this.tag(I-1)||"{"===this.tag(I-1)))?g(1):(V(I,!!P),g(2))}if(w()&&k.call(u,U)>=0&&(j()[2].sameLine=!1),T="OUTDENT"===F||N.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;v();)if(R=j(),$=R[0],O=R[1],A=R[2],_=A.sameLine,P=A.startsLine,y()&&","!==F)d();else if(w()&&!this.insideForDeclaration&&_&&"TERMINATOR"!==U&&":"!==F)m();else{if(!w()||"TERMINATOR"!==U||","===F||P&&this.looksObjectish(l+1))break;if("HERECOMMENT"===C)return g(1);m()}if(!(","!==U||this.looksObjectish(l+1)||!w()||this.insideForDeclaration||"TERMINATOR"===C&&this.looksObjectish(l+2)))for(E="OUTDENT"===C?1:0;w();)m(l+E);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,s,o,a,c;return e[2]?1:e.generated||e.explicit?("{"===e[0]&&(s=null!=(a=n[t+1])?a[2]:void 0)?(r=s.first_line,i=s.first_column):(o=null!=(c=n[t-1])?c[2]:void 0)?(r=o.last_line,i=o.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,s,o;return o=r=s=null,t=function(e,t){var r,s,a,c;return";"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(s=this.tag(t+1),k.call(i,s)>=0))&&!("ELSE"===e[0]&&"THEN"!==o)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==o&&"=>"!==o)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,a,c){var h,l,u,p,f,m;if(m=n[0],"TERMINATOR"===m){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(u=this.tag(a+1),k.call(i,u)>=0)return c.splice(a,1),0}if("CATCH"===m)for(h=l=1;2>=l;h=++l)if("OUTDENT"===(p=this.tag(a+h))||"TERMINATOR"===p||"FINALLY"===p)return c.splice.apply(c,[a+h,0].concat(w.call(this.indentation()))),2+h;return k.call(d,m)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==m||"IF"!==this.tag(a+1))?(o=m,f=this.indentation(c[a]),r=f[0],s=f[1],"THEN"===o&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),"THEN"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],"TERMINATOR"===i||"INDENT"===i&&0>k.call(d,n)},e=function(e){return"INDENT"!==e[0]||e.generated&&!e.fromThen?n[0]="POST_"+n[0]:void 0},this.scanTokens(function(i,r){return"IF"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=["INDENT",2],n=["OUTDENT",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]],e.INVERSES=l={},s=[],r=[],m=0,v=t.length;v>m;m++)y=t[m],g=y[0],b=y[1],s.push(l[b]=g),r.push(l[g]=b);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],o=["IDENTIFIER","NUMBER","STRING","STRING_START","JS","REGEX","REGEX_START","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","BOOL","NULL","UNDEFINED","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],h=["+","-"],a=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],d=["ELSE","->","=>","TRY","FINALLY","THEN"],p=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],u=["TERMINATOR","INDENT","OUTDENT"],n=[".","?.","::","?::"]}.call(this),t.exports}(),_dereq_["./lexer"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};ot=_dereq_("./rewriter"),P=ot.Rewriter,w=ot.INVERSES,at=_dereq_("./helpers"),nt=at.count,ht=at.starts,tt=at.compact,ct=at.repeat,it=at.invertLiterate,st=at.locationDataToString,lt=at.throwSyntaxError,e.Lexer=S=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new P).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(z,""),et.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=it(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,h,l,u,p,d,f,m,g,y,b;return(l=v.exec(this.chunk))?(h=l[0],r=l[1],t=l[2],c=r.length,u=void 0,"own"===r&&"FOR"===this.tag()?(this.token("OWN",r),r.length):"from"===r&&"YIELD"===this.tag()?(this.token("FROM",r),r.length):(d=this.tokens,p=d[d.length-1],i=t||null!=p&&("."===(f=p[0])||"?."===f||"::"===f||"?::"===f||!p.spaced&&"@"===p[0]),y="IDENTIFIER",!i&&(ut.call(E,r)>=0||ut.call(a,r)>=0)&&(y=r.toUpperCase(),"WHEN"===y&&(m=this.tag(),ut.call(N,m)>=0)?y="LEADING_WHEN":"FOR"===y?this.seenFor=!0:"UNLESS"===y?y="IF":ut.call(J,y)>=0?y="UNARY":ut.call(B,y)>=0&&("INSTANCEOF"!==y&&this.seenFor?(y="FOR"+y,this.seenFor=!1):(y="RELATION","!"===this.value()&&(u=this.tokens.pop(),r="!"+r)))),ut.call(C,r)>=0&&(i?(y="IDENTIFIER",r=new String(r),r.reserved=!0):ut.call(V,r)>=0&&this.error("reserved word '"+r+"'",{length:r.length})),i||(ut.call(s,r)>=0&&(e=r,r=o[r]),y=function(){switch(r){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return y}}()),b=this.token(y,r,0,c),e&&(b.origin=[y,e,b[2]]),b.variable=!i,u&&(g=[u[2].first_line,u[2].first_column],b[2].first_line=g[0],b[2].first_column=g[1]),t&&(n=h.lastIndexOf(":"),this.token(":",":",n,t.length)),h.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r;return(n=I.exec(this.chunk))?(i=n[0],t=i.length,/^0[BOX]/.test(i)?this.error("radix prefix in '"+i+"' must be lowercase",{offset:1}):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation in '"+i+"' must be indicated with a lowercase 'e'",{offset:i.indexOf("E")}):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'",{length:t}):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'",{length:t}),(r=/^0o([0-7]+)/.exec(i))&&(i="0x"+parseInt(r[1],8).toString(16)),(e=/^0b([01]+)/.exec(i))&&(i="0x"+parseInt(e[1],2).toString(16)),this.token("NUMBER",i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,s,o,a,c,h,l,u,m,g,v,y;if(l=(Y.exec(this.chunk)||[])[0],!l)return 0;if(g=function(){switch(l){case"'":return W;case'"':return q;case"'''":return f;case'"""':return p}}(),s=3===l.length,u=this.matchWithInterpolations(g,l),y=u.tokens,r=u.index,e=y.length-1,n=l.charAt(0),s){for(a=null,i=function(){var e,t,n;for(n=[],o=e=0,t=y.length;t>e;o=++e)v=y[o],"NEOSTRING"===v[0]&&n.push(v[1]);return n}().join("#{}");h=d.exec(i);)t=h[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp("^"+a,"gm")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),0===i&&(n=n.replace(F,"")),i===e&&(n=n.replace(K,"")),c&&(n=n.replace(c,"")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(G,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?"":" "})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=u.exec(e))&&this.error("block comments cannot contain "+n[0],{offset:n.index,length:n[0].length}),t.indexOf("\n")>=0&&(t=t.replace(RegExp("\\n"+ct(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,s,o,a,c,h,l,u,p,d;switch(!1){case!(o=M.exec(this.chunk)):this.error("regular expressions cannot begin with "+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(m,"///")):d=o.tokens,s=o.index;break;case!(o=$.exec(this.chunk)):if(p=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=p.length,h=this.tokens,c=h[h.length-1],c)if(c.spaced&&(l=c[0],ut.call(i,l)>=0)){if(!t||O.test(p))return 0}else if(u=c[0],ut.call(A,u)>=0)return 0;t||this.error("missing / (unclosed regex)");break;default:return 0}switch(r=j.exec(this.chunk.slice(s))[0],n=s+r.length,a=this.makeToken("REGEX",null,0,n),!1){case!!Z.test(r):this.error("invalid regular expression flags "+r,{offset:s,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token("REGEX",""+this.makeDelimitedLiteral(e,{delimiter:"/"})+r,0,n,a);break;default:this.token("REGEX_START","(",0,0,a),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(d,{delimiter:'"',"double":!0},this.formatHeregex),r&&(this.token(",",",",s,0),this.token("STRING",'"'+r+'"',s,r.length)),this.token(")",")",n,0),this.token("REGEX_END",")",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=R.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf("\n"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token("INDENT",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,s,o;for(i=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(r=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ut.call(y,o)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);";"===this.value();)this.tokens.pop();return"TERMINATOR"===this.tag()||t||this.token("TERMINATOR","\n",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=et.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;";"===this.value();)this.tokens.pop();return"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return"\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,a,c,u,p,d;if((e=_.exec(this.chunk))?(d=e[0],r.test(d)&&this.tagParameters()):d=this.chunk.charAt(0),u=d,n=this.tokens,t=n[n.length-1],"="===d&&t&&(!t[1].reserved&&(s=t[1],ut.call(C,s)>=0)&&(t.origin&&(t=t.origin),this.error("reserved word '"+t[1]+"' can't be assigned",t[2])),"||"===(o=t[1])||"&&"===o))return t[0]="COMPOUND_ASSIGN",t[1]+="=",d.length;if(";"===d)this.seenFor=!1,u="TERMINATOR";else if(ut.call(D,d)>=0)u="MATH";else if(ut.call(h,d)>=0)u="COMPARE";else if(ut.call(l,d)>=0)u="COMPOUND_ASSIGN";else if(ut.call(J,d)>=0)u="UNARY";else if(ut.call(Q,d)>=0)u="UNARY_MATH";else if(ut.call(U,d)>=0)u="SHIFT";else if(ut.call(x,d)>=0||"?"===d&&(null!=t?t.spaced:void 0))u="LOGIC";else if(t&&!t.spaced)if("("===d&&(a=t[0],ut.call(i,a)>=0))"?"===t[0]&&(t[0]="FUNC_EXIST"),u="CALL_START";else if("["===d&&(c=t[0],ut.call(b,c)>=0))switch(u="INDEX_START",t[0]){case"?":t[0]="INDEX_SOAK"}switch(p=this.makeToken(u,d),d){case"(":case"{":case"[":this.ends.push({tag:w[d],origin:p});break;case")":case"}":case"]":this.pair(d)}return this.tokens.push(p),d.length},e.prototype.tagParameters=function(){var e,t,n,i;if(")"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]="PARAM_END";n=i[--e];)switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return"("===n[0]?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;if(v=[],l=n.length,this.chunk.slice(0,l)!==n)return null;for(m=this.chunk.slice(l);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:"/"===n.charAt(0),offsetInChunk:l}),v.push(this.makeToken("NEOSTRING",g,l)),m=m.slice(g.length),l+=g.length,"#{"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(l+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),h=d.tokens,o=d.index,o+=1,u=h[0],i=h[h.length-1],u[0]=u[1]="(",i[0]=i[1]=")",i.origin=["","end of interpolation",i[2]],"TERMINATOR"===(null!=(f=h[1])?f[0]:void 0)&&h.splice(1,1),v.push(["TOKENS",h]),m=m.slice(o),l+=o}return m.slice(0,n.length)!==n&&this.error("missing "+n,{length:n.length}),s=v[0],a=v[v.length-1],s[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:v,index:l+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y;for(e.length>1&&(u=this.token("STRING_START","(",0,0)),s=this.tokens.length,o=a=0,h=e.length;h>a;o=++a){switch(g=e[o],m=g[0],y=g[1],m){case"TOKENS":if(2===y.length)continue;l=y[0],v=y;break;case"NEOSTRING":if(i=n(g[1],o),0===i.length){if(0!==o)continue;r=this.tokens.length}2===o&&null!=r&&this.tokens.splice(r,2),g[0]="STRING",g[1]=this.makeDelimitedLiteral(i,t),l=g,v=[g]}this.tokens.length>s&&(p=this.token("+","+"),p[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line,last_column:l[2].first_column}),(d=this.tokens).push.apply(d,v)}return u?(c=e[e.length-1],u.origin=["STRING",null,{first_line:u[2].first_line,first_column:u[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token("STRING_END",")"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,s;return i=this.ends,n=i[i.length-1],e!==(s=null!=n?n.tag:void 0)?("OUTDENT"!==s&&this.error("unmatched "+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=nt(s,"\n"),t=this.chunkColumn,i>0?(r=s.split("\n"),n=r[r.length-1],t=n.length):t+=s.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,s,o,a,c;return null==n&&(n=0),null==i&&(i=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],r=Math.max(0,i-1),a=this.getLineAndColumnFromChunk(n+r),s.last_line=a[0],s.last_column=a[1],c=[e,t,s]},e.prototype.token=function(e,t,n,i,r){var s;return s=this.makeToken(e,t,n,i),r&&(s.origin=r),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return L.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"YIELD"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.formatString=function(e){return e.replace(X,"$1")},e.prototype.formatHeregex=function(e){return e.replace(g,"$1$2")},e.prototype.validateEscapes=function(e,t){var n,i,r,s,o,a,c,h;return null==t&&(t={}),s=k.exec(e),!s||(s[0],n=s[1],a=s[2],i=s[3],h=s[4],t.isRegex&&a&&"0"!==a.charAt(0))?void 0:(o=a?"octal escape sequences are not allowed":"invalid escape sequence",r="\\"+(a||i||h),this.error(o+" "+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+s.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),""===e&&"/"===t.delimiter&&(e="(?:)"),n=RegExp("(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?("+t.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),e=e.replace(n,function(e,n,i,r,s,o,a,c,h){switch(!1){case!n:return t.double?n+n:n;case!i:return"\\x00";case!r:return"\\"+r;case!s:return"\\n";case!o:return"\\r";case!a:return"\\u2028";case!c:return"\\u2029";case!h:return t.double?"\\"+h:h}}),""+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,s,o,a;return null==t&&(t={}),r="first_line"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),i=o[0],n=o[1],o,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),lt(e,r)},e}(),E=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","if","else","switch","for","while","do","try","catch","finally","class","extends","super"],a=["undefined","then","unless","until","loop","of","by","when"],o={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s=function(){var e;e=[];for(rt in o)e.push(rt);return e}(),a=a.concat(s),V=["case","default","function","var","void","with","const","let","enum","export","import","native","implements","interface","package","private","protected","public","static"],H=["arguments","eval","yield*"],C=E.concat(V).concat(H),e.RESERVED=V.concat(E).concat(a).concat(H),e.STRICT_PROSCRIBED=H,t=65279,v=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,_=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,et=/^[^\n\S]+/,c=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,r=/^[-=]>/,R=/^(?:\n[^\n\S]*)+/,T=/^`[^\\`]*(?:\\.[^\\`]*)*`/,Y=/^(?:'''|"""|'|")/,W=/^(?:[^\\']|\\[\s\S])*/,q=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/,f=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/,X=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g,G=/\s*\n\s*/g,d=/\n+([^\n\S]*)(?=\S)/g,$=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,j=/^\w*/,Z=/^(?!.*(.).*\1)[imgy]*$/,m=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/,g=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g,M=/^(\/|\/{3}\s*)(\*)/,O=/^\/=?\s/,u=/\*\//,L=/^\s*(?:,|\??\.(?![.\d])|::)/,k=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/,F=/^[^\n\S]*\n/,K=/\n[^\n\S]*$/,z=/\s+$/,l=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],J=["NEW","TYPEOF","DELETE","DO"],Q=["!","~"],x=["&&","||","&","|","^"],U=["<<",">>",">>>"],h=["==","!=","<",">","<=",">="],D=["*","/","%","//","%%"],B=["IN","OF","INSTANCEOF"],n=["TRUE","FALSE"],i=["IDENTIFIER",")","]","?","@","THIS","SUPER"],b=i.concat(["NUMBER","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::"]),A=b.concat(["++","--"]),N=["INDENT","OUTDENT","TERMINATOR"],y=[")","}","]"]}.call(this),t.exports}(),_dereq_["./parser"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,20],i=[1,75],r=[1,71],s=[1,76],o=[1,77],a=[1,73],c=[1,74],h=[1,50],l=[1,52],u=[1,53],p=[1,54],d=[1,55],f=[1,45],m=[1,46],g=[1,27],v=[1,60],y=[1,61],b=[1,70],k=[1,43],w=[1,26],T=[1,58],C=[1,59],E=[1,57],F=[1,38],N=[1,44],L=[1,56],x=[1,65],S=[1,66],D=[1,67],R=[1,68],A=[1,42],I=[1,64],_=[1,29],O=[1,30],$=[1,31],j=[1,32],M=[1,33],B=[1,34],V=[1,35],P=[1,78],U=[1,6,26,34,108],G=[1,88],H=[1,81],q=[1,80],X=[1,79],W=[1,82],Y=[1,83],K=[1,84],z=[1,85],J=[1,86],Q=[1,87],Z=[1,91],et=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],tt=[1,97],nt=[1,98],it=[1,99],rt=[1,100],st=[1,102],ot=[1,103],at=[1,96],ct=[2,112],ht=[1,6,25,26,34,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],lt=[2,79],ut=[1,108],pt=[2,58],dt=[1,112],ft=[1,117],mt=[1,118],gt=[1,120],vt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],yt=[2,76],bt=[1,6,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],kt=[1,155],wt=[1,157],Tt=[1,152],Ct=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,132,135,136,139,140,141,142,143,144,145,146,147,148],Et=[2,95],Ft=[1,6,25,26,34,49,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Nt=[1,6,25,26,34,46,49,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,139,140,141,142,143,144,145,146,147,148],Lt=[1,206],xt=[1,205],St=[1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Dt=[2,56],Rt=[1,216],At=[6,25,26,55,60],It=[6,25,26,46,55,60,63],_t=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,144,145,146,147],Ot=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132],$t=[72,73,74,75,77,80,90,91],jt=[1,235],Mt=[2,133],Bt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,141,142,143,144,145,146,147],Vt=[1,244],Pt=[6,25,26,60,92,97],Ut=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,117,132],Gt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,111,117,132],Ht=[123,124],qt=[60,123,124],Xt=[1,255],Wt=[6,25,26,60,84],Yt=[6,25,26,49,60,84],Kt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,144,145,146,147],zt=[11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,79,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt=[2,122],Qt=[6,25,26],Zt=[2,57],en=[1,268],tn=[1,269],nn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,105,108,110,111,112,116,117,127,129,132,135,136,141,142,143,144,145,146,147],rn=[26,127,129],sn=[1,6,26,34,55,60,63,79,84,92,97,99,108,111,117,132],on=[2,71],an=[1,291],cn=[1,292],hn=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,127,132,135,136,141,142,143,144,145,146,147],ln=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,117,132],un=[1,303],pn=[1,304],dn=[6,25,26,60],fn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],mn=[25,60],gn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,String:31,STRING:32,STRING_START:33,STRING_END:34,Regex:35,REGEX:36,REGEX_START:37,REGEX_END:38,Literal:39,JS:40,DEBUGGER:41,UNDEFINED:42,NULL:43,BOOL:44,Assignable:45,"=":46,AssignObj:47,ObjAssignable:48,":":49,ThisProperty:50,RETURN:51,HERECOMMENT:52,PARAM_START:53,ParamList:54,PARAM_END:55,FuncGlyph:56,"->":57,"=>":58,OptComma:59,",":60,Param:61,ParamVar:62,"...":63,Array:64,Object:65,Splat:66,SimpleAssignable:67,Accessor:68,Parenthetical:69,Range:70,This:71,".":72,"?.":73,"::":74,"?::":75,Index:76,INDEX_START:77,IndexValue:78,INDEX_END:79,INDEX_SOAK:80,Slice:81,"{":82,AssignList:83,"}":84,CLASS:85,EXTENDS:86,OptFuncExist:87,Arguments:88,SUPER:89,FUNC_EXIST:90,CALL_START:91,CALL_END:92,ArgList:93,THIS:94,"@":95,"[":96,"]":97,RangeDots:98,"..":99,Arg:100,SimpleArgs:101,TRY:102,Catch:103,FINALLY:104,CATCH:105,THROW:106,"(":107,")":108,WhileSource:109,WHILE:110,WHEN:111,UNTIL:112,Loop:113,LOOP:114,ForBody:115,FOR:116,BY:117,ForStart:118,ForSource:119,ForVariables:120,OWN:121,ForValue:122,FORIN:123,FOROF:124,SWITCH:125,Whens:126,ELSE:127,When:128,LEADING_WHEN:129,IfBlock:130,IF:131,POST_IF:132,UNARY:133,UNARY_MATH:134,"-":135,"+":136,YIELD:137,FROM:138,"--":139,"++":140,"?":141,MATH:142,"**":143,SHIFT:144,COMPARE:145,LOGIC:146,RELATION:147,COMPOUND_ASSIGN:148,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",32:"STRING",33:"STRING_START",34:"STRING_END",36:"REGEX",37:"REGEX_START",38:"REGEX_END",40:"JS",41:"DEBUGGER",42:"UNDEFINED",43:"NULL",44:"BOOL",46:"=",49:":",51:"RETURN",52:"HERECOMMENT",53:"PARAM_START",55:"PARAM_END",57:"->",58:"=>",60:",",63:"...",72:".",73:"?.",74:"::",75:"?::",77:"INDEX_START",79:"INDEX_END",80:"INDEX_SOAK",82:"{",84:"}",85:"CLASS",86:"EXTENDS",89:"SUPER",90:"FUNC_EXIST",91:"CALL_START",92:"CALL_END",94:"THIS",95:"@",96:"[",97:"]",99:"..",102:"TRY",104:"FINALLY",105:"CATCH",106:"THROW",107:"(",108:")",110:"WHILE",111:"WHEN",112:"UNTIL",114:"LOOP",116:"FOR",117:"BY",121:"OWN",123:"FORIN",124:"FOROF",125:"SWITCH",127:"ELSE",129:"LEADING_WHEN",131:"IF",132:"POST_IF",133:"UNARY",134:"UNARY_MATH",135:"-",136:"+",137:"YIELD",138:"FROM",139:"--",140:"++",141:"?",142:"MATH",143:"**",144:"SHIFT",145:"COMPARE",146:"LOGIC",147:"RELATION",148:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,1],[48,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[56,1],[56,1],[59,0],[59,1],[54,0],[54,1],[54,3],[54,4],[54,6],[61,1],[61,2],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[66,2],[67,1],[67,2],[67,2],[67,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[68,2],[68,2],[68,2],[68,2],[68,1],[68,1],[76,3],[76,2],[78,1],[78,1],[65,4],[83,0],[83,1],[83,3],[83,4],[83,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[87,0],[87,1],[88,2],[88,4],[71,1],[71,1],[50,2],[64,2],[64,4],[98,1],[98,1],[70,5],[81,3],[81,2],[81,2],[81,1],[93,1],[93,3],[93,4],[93,4],[93,6],[100,1],[100,1],[100,1],[101,1],[101,3],[18,2],[18,3],[18,4],[18,5],[103,3],[103,3],[103,2],[23,2],[69,3],[69,5],[109,2],[109,4],[109,2],[109,4],[19,2],[19,2],[19,2],[19,1],[113,2],[113,2],[20,2],[20,2],[20,2],[115,2],[115,4],[115,2],[118,2],[118,3],[122,1],[122,1],[122,1],[122,1],[120,1],[120,3],[119,2],[119,2],[119,4],[119,4],[119,4],[119,6],[119,6],[21,5],[21,7],[21,4],[21,6],[126,1],[126,2],[128,3],[128,4],[130,3],[130,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(e,t,n,i,r,s,o){var a=s.length-1; +switch(r){case 1:return this.$=i.addLocationDataFn(o[a],o[a])(new i.Block);case 2:return this.$=s[a];case 3:this.$=i.addLocationDataFn(o[a],o[a])(i.Block.wrap([s[a]]));break;case 4:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].push(s[a]));break;case 5:this.$=s[a-1];break;case 6:case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 27:case 32:case 34:case 45:case 46:case 47:case 48:case 56:case 57:case 67:case 68:case 69:case 70:case 75:case 76:case 79:case 83:case 89:case 133:case 134:case 136:case 166:case 167:case 183:case 189:this.$=s[a];break;case 10:case 25:case 26:case 28:case 30:case 33:case 35:this.$=i.addLocationDataFn(o[a],o[a])(new i.Literal(s[a]));break;case 23:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Block);break;case 24:case 31:case 90:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-1]);break;case 29:case 146:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Parens(s[a-1]));break;case 36:this.$=i.addLocationDataFn(o[a],o[a])(new i.Undefined);break;case 37:this.$=i.addLocationDataFn(o[a],o[a])(new i.Null);break;case 38:this.$=i.addLocationDataFn(o[a],o[a])(new i.Bool(s[a]));break;case 39:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a]));break;case 40:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a]));break;case 41:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1]));break;case 42:case 72:case 77:case 78:case 80:case 81:case 82:case 168:case 169:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(s[a]));break;case 43:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],"object"));break;case 44:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],"object"));break;case 49:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Return(s[a]));break;case 50:this.$=i.addLocationDataFn(o[a],o[a])(new i.Return);break;case 51:this.$=i.addLocationDataFn(o[a],o[a])(new i.Comment(s[a]));break;case 52:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Code(s[a-3],s[a],s[a-1]));break;case 53:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Code([],s[a],s[a-1]));break;case 54:this.$=i.addLocationDataFn(o[a],o[a])("func");break;case 55:this.$=i.addLocationDataFn(o[a],o[a])("boundfunc");break;case 58:case 95:this.$=i.addLocationDataFn(o[a],o[a])([]);break;case 59:case 96:case 128:case 170:this.$=i.addLocationDataFn(o[a],o[a])([s[a]]);break;case 60:case 97:case 129:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].concat(s[a]));break;case 61:case 98:case 130:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-3].concat(s[a]));break;case 62:case 99:case 132:this.$=i.addLocationDataFn(o[a-5],o[a])(s[a-5].concat(s[a-2]));break;case 63:this.$=i.addLocationDataFn(o[a],o[a])(new i.Param(s[a]));break;case 64:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Param(s[a-1],null,!0));break;case 65:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Param(s[a-2],s[a]));break;case 66:case 135:this.$=i.addLocationDataFn(o[a],o[a])(new i.Expansion);break;case 71:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Splat(s[a-1]));break;case 73:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].add(s[a]));break;case 74:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(s[a-1],[].concat(s[a])));break;case 84:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a]));break;case 85:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a],"soak"));break;case 86:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"))),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 87:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"),"soak")),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 88:this.$=i.addLocationDataFn(o[a],o[a])(new i.Access(new i.Literal("prototype")));break;case 91:this.$=i.addLocationDataFn(o[a-1],o[a])(i.extend(s[a],{soak:!0}));break;case 92:this.$=i.addLocationDataFn(o[a],o[a])(new i.Index(s[a]));break;case 93:this.$=i.addLocationDataFn(o[a],o[a])(new i.Slice(s[a]));break;case 94:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Obj(s[a-2],s[a-3].generated));break;case 100:this.$=i.addLocationDataFn(o[a],o[a])(new i.Class);break;case 101:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(null,null,s[a]));break;case 102:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(null,s[a]));break;case 103:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(null,s[a-1],s[a]));break;case 104:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(s[a]));break;case 105:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(s[a-1],null,s[a]));break;case 106:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(s[a-2],s[a]));break;case 107:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Class(s[a-3],s[a-1],s[a]));break;case 108:case 109:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Call(s[a-2],s[a],s[a-1]));break;case 110:this.$=i.addLocationDataFn(o[a],o[a])(new i.Call("super",[new i.Splat(new i.Literal("arguments"))]));break;case 111:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Call("super",s[a]));break;case 112:this.$=i.addLocationDataFn(o[a],o[a])(!1);break;case 113:this.$=i.addLocationDataFn(o[a],o[a])(!0);break;case 114:this.$=i.addLocationDataFn(o[a-1],o[a])([]);break;case 115:case 131:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-2]);break;case 116:case 117:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(new i.Literal("this")));break;case 118:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(i.addLocationDataFn(o[a-1])(new i.Literal("this")),[i.addLocationDataFn(o[a])(new i.Access(s[a]))],"this"));break;case 119:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Arr([]));break;case 120:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Arr(s[a-2]));break;case 121:this.$=i.addLocationDataFn(o[a],o[a])("inclusive");break;case 122:this.$=i.addLocationDataFn(o[a],o[a])("exclusive");break;case 123:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Range(s[a-3],s[a-1],s[a-2]));break;case 124:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Range(s[a-2],s[a],s[a-1]));break;case 125:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(s[a-1],null,s[a]));break;case 126:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(null,s[a],s[a-1]));break;case 127:this.$=i.addLocationDataFn(o[a],o[a])(new i.Range(null,null,s[a]));break;case 137:this.$=i.addLocationDataFn(o[a-2],o[a])([].concat(s[a-2],s[a]));break;case 138:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Try(s[a]));break;case 139:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Try(s[a-1],s[a][0],s[a][1]));break;case 140:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Try(s[a-2],null,null,s[a]));break;case 141:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Try(s[a-3],s[a-2][0],s[a-2][1],s[a]));break;case 142:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-1],s[a]]);break;case 143:this.$=i.addLocationDataFn(o[a-2],o[a])([i.addLocationDataFn(o[a-1])(new i.Value(s[a-1])),s[a]]);break;case 144:this.$=i.addLocationDataFn(o[a-1],o[a])([null,s[a]]);break;case 145:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Throw(s[a]));break;case 147:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Parens(s[a-2]));break;case 148:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a]));break;case 149:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{guard:s[a]}));break;case 150:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a],{invert:!0}));break;case 151:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{invert:!0,guard:s[a]}));break;case 152:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].addBody(s[a]));break;case 153:case 154:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a].addBody(i.addLocationDataFn(o[a-1])(i.Block.wrap([s[a-1]]))));break;case 155:this.$=i.addLocationDataFn(o[a],o[a])(s[a]);break;case 156:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(s[a]));break;case 157:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(i.addLocationDataFn(o[a])(i.Block.wrap([s[a]]))));break;case 158:case 159:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a-1],s[a]));break;case 160:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a],s[a-1]));break;case 161:this.$=i.addLocationDataFn(o[a-1],o[a])({source:i.addLocationDataFn(o[a])(new i.Value(s[a]))});break;case 162:this.$=i.addLocationDataFn(o[a-3],o[a])({source:i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),step:s[a]});break;case 163:this.$=i.addLocationDataFn(o[a-1],o[a])(function(){return s[a].own=s[a-1].own,s[a].name=s[a-1][0],s[a].index=s[a-1][1],s[a]}());break;case 164:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a]);break;case 165:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return s[a].own=!0,s[a]}());break;case 171:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-2],s[a]]);break;case 172:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a]});break;case 173:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a],object:!0});break;case 174:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a]});break;case 175:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a],object:!0});break;case 176:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],step:s[a]});break;case 177:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],guard:s[a-2],step:s[a]});break;case 178:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],step:s[a-2],guard:s[a]});break;case 179:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Switch(s[a-3],s[a-1]));break;case 180:this.$=i.addLocationDataFn(o[a-6],o[a])(new i.Switch(s[a-5],s[a-3],s[a-1]));break;case 181:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Switch(null,s[a-1]));break;case 182:this.$=i.addLocationDataFn(o[a-5],o[a])(new i.Switch(null,s[a-3],s[a-1]));break;case 184:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].concat(s[a]));break;case 185:this.$=i.addLocationDataFn(o[a-2],o[a])([[s[a-1],s[a]]]);break;case 186:this.$=i.addLocationDataFn(o[a-3],o[a])([[s[a-2],s[a-1]]]);break;case 187:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}));break;case 188:this.$=i.addLocationDataFn(o[a-4],o[a])(s[a-4].addElse(i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}))));break;case 190:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].addElse(s[a]));break;case 191:case 192:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a],i.addLocationDataFn(o[a-2])(i.Block.wrap([s[a-2]])),{type:s[a-1],statement:!0}));break;case 193:case 194:case 197:case 198:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(s[a-1],s[a]));break;case 195:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("-",s[a]));break;case 196:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("+",s[a]));break;case 199:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-2].concat(s[a-1]),s[a]));break;case 200:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a]));break;case 201:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a]));break;case 202:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a-1],null,!0));break;case 203:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a-1],null,!0));break;case 204:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Existence(s[a-1]));break;case 205:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("+",s[a-2],s[a]));break;case 206:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("-",s[a-2],s[a]));break;case 207:case 208:case 209:case 210:case 211:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-1],s[a-2],s[a]));break;case 212:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return"!"===s[a-1].charAt(0)?new i.Op(s[a-1].slice(1),s[a-2],s[a]).invert():new i.Op(s[a-1],s[a-2],s[a])}());break;case 213:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a],s[a-1]));break;case 214:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1],s[a-3]));break;case 215:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a],s[a-2]));break;case 216:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Extends(s[a-2],s[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{1:[3]},{1:[2,2],6:P},t(U,[2,3]),t(U,[2,6],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(U,[2,7],{118:69,109:92,115:93,110:x,112:S,116:R,132:Z}),t(et,[2,11],{87:94,68:95,76:101,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,12],{76:101,87:104,68:105,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,13]),t(et,[2,14]),t(et,[2,15]),t(et,[2,16]),t(et,[2,17]),t(et,[2,18]),t(et,[2,19]),t(et,[2,20]),t(et,[2,21]),t(et,[2,22]),t(et,[2,8]),t(et,[2,9]),t(et,[2,10]),t(ht,lt,{46:[1,106]}),t(ht,[2,80]),t(ht,[2,81]),t(ht,[2,82]),t(ht,[2,83]),t([1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],[2,110],{88:107,91:ut}),t([6,25,55,60],pt,{54:109,61:110,62:111,27:113,50:114,64:115,65:116,28:i,63:dt,82:b,95:ft,96:mt}),{24:119,25:gt},{7:121,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:123,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:124,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:125,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:127,8:126,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,138:[1,128],139:B,140:V},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:129,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:133,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(vt,yt,{86:[1,137],139:[1,134],140:[1,135],148:[1,136]}),t(et,[2,189],{127:[1,138]}),{24:139,25:gt},{24:140,25:gt},t(et,[2,155]),{24:141,25:gt},{7:142,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,100],{39:22,69:23,70:24,71:25,64:47,65:48,29:49,35:51,27:62,50:63,31:72,12:130,13:131,45:132,24:144,67:146,25:gt,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,82:b,86:[1,145],89:w,94:T,95:C,96:E,107:L}),{7:147,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,141,142,143,144,145,146,147],[2,50],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,7:148,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,114:D,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,51]),t(vt,[2,77]),t(vt,[2,78]),t(ht,[2,32]),t(ht,[2,33]),t(ht,[2,34]),t(ht,[2,35]),t(ht,[2,36]),t(ht,[2,37]),t(ht,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:151,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,116]),t(ht,[2,117],{27:158,28:i}),{25:[2,54]},{25:[2,55]},t(Ct,[2,72]),t(Ct,[2,75]),{7:159,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:160,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:161,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:163,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:gt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{27:168,28:i,50:169,64:170,65:171,70:164,82:b,95:ft,96:E,120:165,121:[1,166],122:167},{119:172,123:[1,173],124:[1,174]},t([6,25,60,84],Et,{31:72,83:175,47:176,48:177,10:178,27:179,29:180,50:181,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Ft,[2,26]),t(Ft,[2,27]),t(ht,[2,30]),{12:130,13:182,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:183,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(Nt,[2,25]),t(Ft,[2,28]),{4:184,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(U,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,5:185,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,204]),{7:186,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:187,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:188,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:189,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:190,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:191,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:192,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:193,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:194,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,154]),t(et,[2,159]),{7:195,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,153]),t(et,[2,158]),{88:196,91:ut},t(Ct,[2,73]),{91:[2,113]},{27:197,28:i},{27:198,28:i},t(Ct,[2,88],{27:199,28:i}),{27:200,28:i},t(Ct,[2,89]),{7:202,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:Lt,64:47,65:48,67:36,69:23,70:24,71:25,78:201,81:203,82:b,85:k,89:w,94:T,95:C,96:E,98:204,99:xt,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{76:207,77:st,80:ot},{88:208,91:ut},t(Ct,[2,74]),{6:[1,210],7:209,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,211],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,111]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,92:[1,212],93:213,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25],Dt,{59:217,55:[1,215],60:Rt}),t(At,[2,59]),t(At,[2,63],{46:[1,219],63:[1,218]}),t(At,[2,66]),t(It,[2,67]),t(It,[2,68]),t(It,[2,69]),t(It,[2,70]),{27:158,28:i},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,53]),{4:221,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,220],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,143,144,145,146,147],[2,193],{118:69,109:89,115:90,141:X}),{109:92,110:x,112:S,115:93,116:R,118:69,132:Z},t(_t,[2,194],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,195],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,196],{118:69,109:89,115:90,141:X,143:Y}),t(et,[2,197],{118:69,109:92,115:93}),t(Ot,[2,198],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:222,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,200],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),{68:95,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:94,90:at,91:ct},{68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,lt),t(et,[2,201],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),t(et,[2,202]),t(et,[2,203]),{6:[1,225],7:223,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,224],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:226,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{24:227,25:gt,131:[1,228]},t(et,[2,138],{103:229,104:[1,230],105:[1,231]}),t(et,[2,152]),t(et,[2,160]),{25:[1,232],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{126:233,128:234,129:jt},t(et,[2,101]),{7:236,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,104],{24:237,25:gt,72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt,86:[1,238]}),t(Ot,[2,145],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,49],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:P,108:[1,239]},{4:240,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,60,97],Mt,{118:69,109:89,115:90,98:241,63:[1,242],99:xt,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Bt,[2,119]),t([6,25,97],Dt,{59:243,60:Vt}),t(Pt,[2,128]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:245,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,134]),t(Pt,[2,135]),t(Nt,[2,118]),{24:246,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ut,[2,148],{118:69,109:89,115:90,110:x,111:[1,247],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ut,[2,150],{118:69,109:89,115:90,110:x,111:[1,248],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,156]),t(Gt,[2,157],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132,135,136,141,142,143,144,145,146,147],[2,161],{117:[1,249]}),t(Ht,[2,164]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,120:250,122:167},t(Ht,[2,170],{60:[1,251]}),t(qt,[2,166]),t(qt,[2,167]),t(qt,[2,168]),t(qt,[2,169]),t(et,[2,163]),{7:252,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:253,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,84],Dt,{59:254,60:Xt}),t(Wt,[2,96]),t(Wt,[2,42],{49:[1,256]}),t(Wt,[2,45]),t(Yt,[2,46]),t(Yt,[2,47]),t(Yt,[2,48]),{38:[1,257],68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,yt),{6:P,34:[1,258]},t(U,[2,4]),t(Kt,[2,205],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(Kt,[2,206],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(_t,[2,207],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,208],{118:69,109:89,115:90,141:X,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,144,145,146,147],[2,209],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146],[2,210],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,146],[2,211],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146,147],[2,212],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K}),t(Gt,[2,192],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,191],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(St,[2,108]),t(Ct,[2,84]),t(Ct,[2,85]),t(Ct,[2,86]),t(Ct,[2,87]),{79:[1,259]},{63:Lt,79:[2,92],98:260,99:xt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{79:[2,93]},{7:261,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,127],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(zt,[2,121]),t(zt,Jt),t(Ct,[2,91]),t(St,[2,109]),t(Ot,[2,39],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:262,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:263,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,114]),t([6,25,92],Dt,{59:264,60:Vt}),t(Pt,Mt,{118:69,109:89,115:90,63:[1,265],110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{56:266,57:v,58:y},t(Qt,Zt,{62:111,27:113,50:114,64:115,65:116,61:267,28:i,63:dt,82:b,95:ft,96:mt}),{6:en,25:tn},t(At,[2,64]),{7:270,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(nn,[2,23]),{6:P,26:[1,271]},t(Ot,[2,199],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,213],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:272,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:273,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ot,[2,216],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,190]),{7:274,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,139],{104:[1,275]}),{24:276,25:gt},{24:279,25:gt,27:277,28:i,65:278,82:b},{126:280,128:234,129:jt},{26:[1,281],127:[1,282],128:283,129:jt},t(rn,[2,183]),{7:285,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,101:284,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(sn,[2,102],{118:69,109:89,115:90,24:286,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,105]),{7:287,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,146]),{6:P,26:[1,288]},{7:289,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt,{6:on,25:on,60:on,97:on}),{6:an,25:cn,97:[1,290]},t([6,25,26,92,97],Zt,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,66:156,7:214,100:293,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,63:wt,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(Qt,Dt,{59:294,60:Vt}),t(hn,[2,187]),{7:295,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:296,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:297,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ht,[2,165]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,122:298},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,132],[2,172],{118:69,109:89,115:90,111:[1,299],117:[1,300],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,173],{118:69,109:89,115:90,111:[1,301],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:un,25:pn,84:[1,302]},t([6,25,26,84],Zt,{31:72,48:177,10:178,27:179,29:180,50:181,47:305,28:i,30:r,32:s,33:o,52:m,95:ft}),{7:306,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,307],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,31]),t(Ft,[2,29]),t(Ct,[2,90]),{7:308,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,125],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,126],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,40],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{26:[1,309],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:an,25:cn,92:[1,310]},t(Pt,on),{24:311,25:gt},t(At,[2,60]),{27:113,28:i,50:114,61:312,62:111,63:dt,64:115,65:116,82:b,95:ft,96:mt},t(dn,pt,{61:110,62:111,27:113,50:114,64:115,65:116,54:313,28:i,63:dt,82:b,95:ft,96:mt}),t(At,[2,65],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(nn,[2,24]),{26:[1,314],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,215],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{24:315,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{24:316,25:gt},t(et,[2,140]),{24:317,25:gt},{24:318,25:gt},t(fn,[2,144]),{26:[1,319],127:[1,320],128:283,129:jt},t(et,[2,181]),{24:321,25:gt},t(rn,[2,184]),{24:322,25:gt,60:[1,323]},t(mn,[2,136],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,103]),t(sn,[2,106],{118:69,109:89,115:90,24:324,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{108:[1,325]},{97:[1,326],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Bt,[2,120]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,100:327,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:328,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,129]),{6:an,25:cn,26:[1,329]},t(Gt,[2,149],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,151],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,162],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ht,[2,171]),{7:330,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:331,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:332,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Bt,[2,94]),{10:178,27:179,28:i,29:180,30:r,31:72,32:s,33:o,47:333,48:177,50:181,52:m,95:ft},t(dn,Et,{31:72,47:176,48:177,10:178,27:179,29:180,50:181,83:334,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Wt,[2,97]),t(Wt,[2,43],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:335,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,124],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(et,[2,41]),t(St,[2,115]),t(et,[2,52]),t(At,[2,61]),t(Qt,Dt,{59:336,60:Rt}),t(et,[2,214]),t(hn,[2,188]),t(et,[2,141]),t(fn,[2,142]),t(fn,[2,143]),t(et,[2,179]),{24:337,25:gt},{26:[1,338]},t(rn,[2,185],{6:[1,339]}),{7:340,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,107]),t(ht,[2,147]),t(ht,[2,123]),t(Pt,[2,130]),t(Qt,Dt,{59:341,60:Vt}),t(Pt,[2,131]),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132],[2,174],{118:69,109:89,115:90,117:[1,342],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,176],{118:69,109:89,115:90,111:[1,343],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,175],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,98]),t(Qt,Dt,{59:344,60:Xt}),{26:[1,345],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:en,25:tn,26:[1,346]},{26:[1,347]},t(et,[2,182]),t(rn,[2,186]),t(mn,[2,137],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:an,25:cn,26:[1,348]},{7:349,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:350,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{6:un,25:pn,26:[1,351]},t(Wt,[2,44]),t(At,[2,62]),t(et,[2,180]),t(Pt,[2,132]),t(Ot,[2,177],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,178],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,99])],defaultActions:{60:[2,54],61:[2,55],96:[2,113],203:[2,93]},parseError:function(e,t){if(!t.recoverable)throw Error(e); +this.trace(e)},parse:function(e){function t(){var e;return e=f.lex()||p,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,i=[0],r=[null],s=[],o=this.table,a="",c=0,h=0,l=0,u=2,p=1,d=s.slice.call(arguments,1),f=Object.create(this.lexer),m={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(m.yy[g]=this.yy[g]);f.setInput(e,m.yy),m.yy.lexer=f,m.yy.parser=this,f.yylloc===void 0&&(f.yylloc={});var v=f.yylloc;s.push(v);var y=f.options&&f.options.ranges;this.parseError="function"==typeof m.yy.parseError?m.yy.parseError:Object.getPrototypeOf(this).parseError;for(var b,k,w,T,C,E,F,N,L,x={};;){if(w=i[i.length-1],this.defaultActions[w]?T=this.defaultActions[w]:((null===b||b===void 0)&&(b=t()),T=o[w]&&o[w][b]),T===void 0||!T.length||!T[0]){var S="";L=[];for(E in o[w])this.terminals_[E]&&E>u&&L.push("'"+this.terminals_[E]+"'");S=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(b==p?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(S,{text:f.match,token:this.terminals_[b]||b,line:f.yylineno,loc:v,expected:L})}if(T[0]instanceof Array&&T.length>1)throw Error("Parse Error: multiple actions possible at state: "+w+", token: "+b);switch(T[0]){case 1:i.push(b),r.push(f.yytext),s.push(f.yylloc),i.push(T[1]),b=null,k?(b=k,k=null):(h=f.yyleng,a=f.yytext,c=f.yylineno,v=f.yylloc,l>0&&l--);break;case 2:if(F=this.productions_[T[1]][1],x.$=r[r.length-F],x._$={first_line:s[s.length-(F||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(F||1)].first_column,last_column:s[s.length-1].last_column},y&&(x._$.range=[s[s.length-(F||1)].range[0],s[s.length-1].range[1]]),C=this.performAction.apply(x,[a,h,c,m.yy,T[1],r,s].concat(d)),C!==void 0)return C;F&&(i=i.slice(0,2*-1*F),r=r.slice(0,-1*F),s=s.slice(0,-1*F)),i.push(this.productions_[T[1]][0]),r.push(x.$),s.push(x._$),N=o[i[i.length-2]][i[i.length-1]],i.push(N);break;case 3:return!0}}return!0}};return e.prototype=gn,gn.Parser=e,new e}();return _dereq_!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var n=_dereq_("fs").readFileSync(_dereq_("path").normalize(t[1]),"utf8");return e.parser.parse(n)},t!==void 0&&_dereq_.main===t&&e.main(process.argv.slice(1))),t.exports}(),_dereq_["./scope"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(s=this.parent)?s.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){return null==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\d/g,"a"):e+(t||"")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,s;for(null==t&&(t={}),i=0;;){if(s=this.temporary(e,i,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(s,"var",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],"var"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+" = "+r.type.value);return i},e}()}.call(this),t.exports}(),_dereq_["./nodes"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut,pt,dt,ft,mt,gt,vt,yt,bt,kt=function(e,t){function n(){this.constructor=e}for(var i in t)wt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},wt={}.hasOwnProperty,Tt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ct=[].slice;Error.stackTraceLimit=1/0,P=_dereq_("./scope").Scope,dt=_dereq_("./lexer"),$=dt.RESERVED,V=dt.STRICT_PROSCRIBED,ft=_dereq_("./helpers"),et=ft.compact,rt=ft.flatten,it=ft.extend,lt=ft.merge,tt=ft.del,gt=ft.starts,nt=ft.ends,mt=ft.some,Z=ft.addLocationDataFn,ht=ft.locationDataToString,vt=ft.throwSyntaxError,e.extend=it,e.addLocationDataFn=Z,Q=function(){return!0},D=function(){return!1},X=function(){return this},S=function(){return this.negated=!this.negated,this},e.CodeFragment=h=function(){function e(e,t){var n;this.code=""+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+ht(this.locationData):"")},e}(),st=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join("")},e.Base=r=function(){function e(){}return e.prototype.compile=function(e,t){return st(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=it({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==L&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,a,h,l,u;return(a=this.jumps())&&a.error("cannot use a pure statement in an expression"),e.sharedScope=!0,r=new c([],s.wrap([this])),n=[],((i=this.contains(at))||this.contains(ct))&&(n=[new x("this")],i?(h="apply",n.push(new x("arguments"))):h="call",r=new z(r,[new t(new x(h))])),l=new o(r,n).compileNode(e),(r.isGenerator||(null!=(u=r.base)?u.isGenerator:void 0))&&(l.unshift(this.makeCode("(yield* ")),l.push(this.makeCode(")"))),l},e.prototype.cache=function(e,t,n){var r,s,o;return r=null!=n?n(this):this.isComplex(),r?(s=new x(e.scope.freeVariable("ref")),o=new i(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[st(e[0]),st(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new o(new x(e+".push"),[t]):new M(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof l))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=""),null==t&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+q)}),n},e.prototype.eachChild=function(e){var t,n,i,r,s,o,a,c;if(!this.children)return this;for(a=this.children,i=0,s=a.length;s>i;i++)if(t=a[i],this[t])for(c=rt([this[t]]),r=0,o=c.length;o>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new I("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=D,e.prototype.jumps=D,e.prototype.isComplex=Q,e.prototype.isChainable=D,e.prototype.isAssignable=D,e.prototype.unwrap=X,e.prototype.unfoldSoak=D,e.prototype.assigns=D,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return vt(e,this.locationData)},e.prototype.makeCode=function(e){return new h(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,s,o;for(n=[],r=s=0,o=e.length;o>s;r=++s)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=s=function(e){function t(e){this.expressions=et(rt(e||[]))}return kt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,s;for(s=this.expressions,n=0,r=s.length;r>n;n++)if(t=s[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof l)){this.expressions[n]=t.makeReturn(e),t instanceof M&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,s,o,a,c,h,l;for(this.tab=e.indent,l=e.level===L,i=[],h=this.expressions,s=o=0,a=h.length;a>o;s=++o)c=h[s],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):l?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(c.compileToFragments(e,E));return l?this.spaced?[].concat(this.joinFragmentArrays(i,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(i,"\n"):(n=i.length?this.joinFragmentArrays(i,", "):[this.makeCode("void 0")],i.length>1&&e.level>=E?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,s,o,a,c,h,u,p;for(e.indent=e.bare?"":q,e.level=L,this.spaced=!0,e.scope=new P(null,this,null,null!=(h=e.referencedVars)?h:[]),u=e.locals||[],r=0,s=u.length;s>r;r++)o=u[r],e.scope.parameter(o);return a=[],e.bare||(c=function(){var e,n,r,s;for(r=this.expressions,s=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof l);i=++e)s.push(t);return s}.call(this),p=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(lt(e,{indent:""})),a.push(this.makeCode("\n"))),this.expressions=p),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,s,o,a,c,h,u,p,d,f,m;for(r=[],c=[],h=this.expressions,s=o=0,a=h.length;a>o&&(i=h[s],i=i.unwrap(),i instanceof l||i instanceof x);s=++o);return e=lt(e,{level:L}),s&&(d=this.expressions.splice(s,9e9),u=[this.spaced,!1],m=u[0],this.spaced=u[1],p=[this.compileNode(e),m],r=p[0],this.spaced=p[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(s&&r.push(this.makeCode("\n")),r.push(this.makeCode(this.tab+"var ")),n&&r.push(this.makeCode(f.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+q))),r.push(this.makeCode(f.assignedVariables().join(",\n"+(this.tab+q))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&c.length&&r.push(this.makeCode("\n"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(r),e.Literal=x=function(e){function t(e){this.value=e}return kt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return g.test(this.value)},t.prototype.isStatement=function(){var e;return"break"===(e=this.value)||"continue"===e||"debugger"===e},t.prototype.isComplex=D,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){return"break"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?"continue"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(e){var t,n,i;return n="this"===this.value?(null!=(i=e.scope.method)?i.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'"'+this.value+'"':this.value,t=this.isStatement()?""+this.tab+n+";":n,[this.makeCode(t)]},t.prototype.toString=function(){return' "'+this.value+'"'},t}(r),e.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=T?"(void 0)":"void 0")]},t}(r),e.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode("null")]},t}(r),e.Bool=function(e){function t(e){this.val=e}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(r),e.Return=M=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.jumps=X,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t,n,i;return t=[],n=null!=(i=this.expression)?"function"==typeof i.isYieldReturn?i.isYieldReturn():void 0:void 0,n||t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,N))),n||t.push(this.makeCode(";")),t},t}(r),e.Value=z=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return kt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(j)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(x)&&B.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(x)&&y.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(x)&&v.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof o)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof A&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof U},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&"prototype"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,s,o,a;return a=this.properties,s=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=s?s.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new x(e.scope.freeVariable("base")),n=new t(new O(new i(r,n)))),s?(s.isComplex()&&(o=new x(e.scope.freeVariable("name")),s=new w(new i(o,s.index)),o=new w(o)),[n.add(s),new t(r||n.base,[o||s])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?T:null),(this.base instanceof O||s.length)&&B.test(st(t))&&t.push(this.makeCode(".")),n=0,i=s.length;i>n;n++)r=s[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,s,o,a,c,h,l,p,d,f;if(o=n.base.unfoldSoak(e))return(p=o.body.properties).push.apply(p,n.properties),o;for(d=n.properties,s=a=0,c=d.length;c>a;s=++a)if(h=d[s],h.soak)return h.soak=!1,r=new t(n.base,n.properties.slice(0,s)),f=new t(n.base,n.properties.slice(s)),r.isComplex()&&(l=new x(e.scope.freeVariable("ref")),r=new O(new i(l,r)),f.base=l),new b(new u(r),f,{soak:!0});return!1}}(this)()},t}(r),e.Comment=l=function(e){function t(e){this.comment=e}return kt(t,e),t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *"),n="/*"+ut(i,this.tab)+(Tt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===L&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(r),e.Call=o=function(e){function n(e,t,n){this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.isSuper="super"===e,this.variable=this.isSuper?null:e,e instanceof z&&e.isNotCallable()&&e.error("literal is not a function")}return kt(n,e),n.prototype.children=["variable","args"],n.prototype.newInstance=function(){var e,t;return e=(null!=(t=this.variable)?t.base:void 0)||this.variable,e instanceof n&&!e.isNew?e.newInstance():this.isNew=!0,this},n.prototype.superReference=function(e){var n,r,s,o,a,c,h,l;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(o=a.klass,c=a.name,l=a.variable,o.isComplex()&&(s=new x(e.scope.parent.freeVariable("base")),r=new z(new O(new i(s,o))),l.base=r,l.properties.splice(0,o.properties.length)),(c.isComplex()||c instanceof w&&c.index.isAssignable())&&(h=new x(e.scope.parent.freeVariable("name")),c=new w(new i(h,c.index)),l.properties.pop(),l.properties.push(c)),n=[new t(new x("__super__"))],a["static"]&&n.push(new t(new x("constructor"))),n.push(null!=h?new w(h):c),new z(null!=s?s:o,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},n.prototype.unfoldSoak=function(e){var t,i,r,s,o,a,c,h,l;if(this.soak){if(this.variable){if(i=yt(e,this,"variable"))return i;c=new z(this.variable).cacheReference(e),s=c[0],l=c[1]}else s=new x(this.superReference(e)),l=new z(s);return l=new n(l,this.args),l.isNew=this.isNew,s=new x("typeof "+s.compile(e)+' === "function"'),new b(s,new z(l),{soak:!0})}for(t=this,a=[];;)if(t.variable instanceof n)a.push(t),t=t.variable;else{if(!(t.variable instanceof z))break;if(a.push(t),!((t=t.variable.base)instanceof n))break}for(h=a.reverse(),r=0,o=h.length;o>r;r++)t=h[r],i&&(t.variable instanceof n?t.variable=i:t.variable.base=i),i=yt(e,t,"variable");return i},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l;if(null!=(h=this.variable)&&(h.front=this.front),r=G.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],l=this.args,n=o=0,a=l.length;a>o;n=++o)t=l[n],n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,E));return s=[],this.isSuper?(c=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(c+=", "),s.push(this.makeCode(c))):(this.isNew&&s.push(this.makeCode("new ")),s.push.apply(s,this.variable.compileToFragments(e,T)),s.push(this.makeCode("("))),s.push.apply(s,i),s.push(this.makeCode(")")),s},n.prototype.compileSplat=function(e,t){var n,i,r,s,o,a;return this.isSuper?[].concat(this.makeCode(this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(s=this.tab+q,[].concat(this.makeCode("(function(func, args, ctor) {\n"+s+"ctor.prototype = func.prototype;\n"+s+"var child = new ctor, result = func.apply(child, args);\n"+s+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,E),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new z(this.variable),(o=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,E),this.makeCode(")"),o.compileToFragments(e))):(r=i.compileToFragments(e,T),B.test(st(r))&&(r=this.wrapInBraces(r)),o?(a=st(r),r.push.apply(r,o.compileToFragments(e))):a="null",n=n.concat(r)),n=n.concat(this.makeCode(".apply("+a+", "),t,this.makeCode(")")))},n}(r),e.Extends=d=function(e){function t(e,t){this.child=e,this.parent=t}return kt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new o(new z(new x(bt("extend",e))),[this.child,this.parent]).compileToFragments(e)},t}(r),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak="soak"===t}return kt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),g.test(st(t))?t.unshift(this.makeCode(".")):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.isComplex=D,t}(r),e.Index=w=function(e){function t(e){this.index=e}return kt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,N),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(r),e.Range=j=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive="exclusive"===n,this.equals=this.exclusive?"":"="}return kt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,s,o;return e=lt(e,{top:!0}),t=tt(e,"isComplex"),n=this.cacheToCodeFragments(this.from.cache(e,E,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,E,t)),this.toC=i[0],this.toVar=i[1],(o=tt(e,"step"))&&(r=this.cacheToCodeFragments(o.cache(e,E,t)),this.step=r[0],this.stepVar=r[1]),s=[this.fromVar.match(R),this.toVar.match(R)],this.fromNum=s[0],this.toNum=s[1],this.stepVar?this.stepNum=this.stepVar.match(R):void 0},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=this.fromNum&&this.toNum,s=tt(e,"index"),o=tt(e,"name"),h=o&&o!==s,f=s+" = "+this.fromC,this.toC!==this.toVar&&(f+=", "+this.toC),this.step!==this.stepVar&&(f+=", "+this.step),l=[s+" <"+this.equals,s+" >"+this.equals],c=l[0],r=l[1],n=this.stepNum?pt(this.stepNum[0])>0?c+" "+this.toVar:r+" "+this.toVar:a?(u=[pt(this.fromNum[0]),pt(this.toNum[0])],i=u[0],d=u[1],u,d>=i?c+" "+d:r+" "+d):(t=this.stepVar?this.stepVar+" > 0":this.fromVar+" <= "+this.toVar,t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),p=this.stepVar?s+" += "+this.stepVar:a?h?d>=i?"++"+s:"--"+s:d>=i?s+"++":s+"--":h?t+" ? ++"+s+" : --"+s:t+" ? "+s+"++ : "+s+"--",h&&(f=o+" = "+f),h&&(p=o+" = "+p),[this.makeCode(f+"; "+n+"; "+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(h=function(){p=[];for(var e=l=+this.fromNum,t=+this.toNum;t>=l?t>=e:e>=t;t>=l?e++:e--)p.push(e);return p}.apply(this),this.exclusive&&h.pop(),[this.makeCode("["+h.join(", ")+"]")]):(o=this.tab+q,s=e.scope.freeVariable("i",{single:!0}),u=e.scope.freeVariable("results"),c="\n"+o+u+" = [];",this.fromNum&&this.toNum?(e.index=s,n=st(this.compileNode(e))):(d=s+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=this.fromVar+" <= "+this.toVar,n="var "+d+"; "+i+" ? "+s+" <"+this.equals+" "+this.toVar+" : "+s+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+s+"++ : "+s+"--"),a="{ "+u+".push("+s+"); }\n"+o+"return "+u+";\n"+e.indent,r=function(e){return null!=e?e.contains(at):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+c+"\n"+o+"for ("+n+")"+a+"}).apply(this"+(null!=t?t:"")+")")])},t}(r),e.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return kt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;return s=this.range,o=s.to,i=s.from,r=i&&i.compileToFragments(e,N)||[this.makeCode("0")],o&&(t=o.compileToFragments(e,N),n=st(t),(this.range.exclusive||-1!==+n)&&(a=", "+(this.range.exclusive?n:B.test(n)?""+(+n+1):(t=o.compileToFragments(e,T),"+"+st(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+st(r)+(a||"")+")")]},t}(r),e.Obj=A=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return kt(n,e),n.prototype.children=["properties"],n.prototype.compileNode=function(e){var n,r,s,o,a,c,h,u,p,d,f,m,g,v,y,b,k,w,T,C,E;if(T=this.properties,this.generated)for(h=0,g=T.length;g>h;h++)b=T[h],b instanceof z&&b.error("cannot have an implicit value in an implicit object");for(r=p=0,v=T.length;v>p&&(w=T[r],!((w.variable||w).base instanceof O));r=++p);for(s=T.length>r,a=e.indent+=q,m=this.lastNonComment(this.properties),n=[],s&&(k=e.scope.freeVariable("obj"),n.push(this.makeCode("(\n"+a+k+" = "))),n.push(this.makeCode("{"+(0===T.length||0===r?"}":"\n"))),o=f=0,y=T.length;y>f;o=++f)w=T[o],o===r&&(0!==o&&n.push(this.makeCode("\n"+a+"}")),n.push(this.makeCode(",\n"))),u=o===T.length-1||o===r-1?"":w===m||w instanceof l?"\n":",\n",c=w instanceof l?"":a,s&&r>o&&(c+=q),w instanceof i&&w.variable instanceof z&&w.variable.hasProperties()&&w.variable.error("invalid object key"),w instanceof z&&w["this"]&&(w=new i(w.properties[0].name,w,"object")),w instanceof l||(r>o?(w instanceof i||(w=new i(w,w,"object")),(w.variable.base||w.variable).asKey=!0):(w instanceof i?(d=w.variable,E=w.value):(C=w.base.cache(e),d=C[0],E=C[1]),w=new i(new z(new x(k),[new t(d)]),E))),c&&n.push(this.makeCode(c)),n.push.apply(n,w.compileToFragments(e,L)),u&&n.push(this.makeCode(u));return s?n.push(this.makeCode(",\n"+a+k+"\n"+this.tab+")")):0!==T.length&&n.push(this.makeCode("\n"+this.tab+"}")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(r),e.Arr=n=function(e){function t(e){this.objects=e||[]}return kt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;if(!this.objects.length)return[this.makeCode("[]")];if(e.indent+=q,t=G.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,E));return r}.call(this),r=s=0,o=n.length;o>s;r=++s)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return st(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(r),e.Class=a=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new s,this.boundFuncs=[],this.body.classBody=!0}return kt(n,e),n.prototype.children=["variable","parent","body"],n.prototype.determineName=function(){var e,n,i;return this.variable?(n=this.variable.properties,i=n[n.length-1],e=i?i instanceof t&&i.name.value:this.variable.base.value,Tt.call(V,e)>=0&&this.variable.error("class variable name may not be "+e),e&&(e=g.test(e)&&e)):null},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof x&&"this"===t.value?t.value=e:t instanceof c&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,s,o;for(o=this.boundFuncs,i=0,r=o.length;r>i;i++)n=o[i],s=new z(new x("this"),[new t(n)]).compile(e),this.ctor.body.unshift(new x(s+" = "+bt("bind",e)+"("+s+", this)"))},n.prototype.addProperties=function(e,n,r){var s,o,a,h,l,u;return u=e.base.properties.slice(0),h=function(){var e;for(e=[];o=u.shift();)o instanceof i&&(a=o.variable.base,delete o.context,l=o.value,"constructor"===a.value?(this.ctor&&o.error("cannot define more than one constructor in a class"),l.bound&&o.error("cannot define a constructor as a bound function"),l instanceof c?o=this.ctor=l:(this.externalCtor=r.classScope.freeVariable("class"),o=new i(new x(this.externalCtor),l))):o.variable["this"]?l["static"]=!0:(s=a.isComplex()?new w(a):new t(a),o.variable=new z(new x(n),[new t(new x("prototype")),s]),l instanceof c&&l.bound&&(this.boundFuncs.push(a),l.bound=!1))),e.push(o);return e}.call(this),et(h)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(o){var a,c,h,l,u,p,d;if(a=!0,o instanceof n)return!1;if(o instanceof s){for(d=c=o.expressions,h=l=0,u=d.length;u>l;h=++l)p=d[h],p instanceof i&&p.variable.looksStatic(e)?p.value["static"]=!0:p instanceof z&&p.isObject(!0)&&(a=!1,c[h]=r.addProperties(p,e,t));o.expressions=c=rt(c)}return a&&!(o instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof l||n instanceof z&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new c,this.externalCtor?this.ctor.body.push(new x(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new x(e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,a,h,l,u,p,f;return(a=this.body.jumps())&&a.error("Class bodies cannot contain pure statements"),(n=this.body.contains(at))&&n.error("Class bodies shouldn't reference arguments"),u=this.determineName()||"_Class",u.reserved&&(u="_"+u),l=new x(u),r=new c([],s.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(u),this.walkBody(u,e),this.ensureConstructor(u),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(l),this.parent&&(f=new x(e.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new d(l,f)),r.params.push(new _(f)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),h=new O(new o(r,t)),this.variable&&(h=new i(this.variable,h)),h.compileToFragments(e)},n}(r),e.Assign=i=function(e){function n(e,t,n,i){var r,s,o;this.variable=e,this.value=t,this.context=n,this.param=i&&i.param,this.subpattern=i&&i.subpattern,o=s=this.variable.unwrapAll().value,r=Tt.call(V,o)>=0,r&&"object"!==this.context&&this.variable.error('variable name may not be "'+s+'"')}return kt(n,e),n.prototype.children=["variable","value"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===L&&null!=this.context&&Tt.call(this.context,"?")>=0 +},n.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){return yt(e,this,"variable")},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,h,l,u,p,d,f,m;if(i=this.variable instanceof z){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if("||="===(h=this.context)||"&&="===h||"?="===h)return this.compileConditional(e);if("**="===(l=this.context)||"//="===l||"%%="===l)return this.compileSpecialMath(e)}return this.value instanceof c&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(u=this.variable.properties)?u.length:void 0)>=2&&(p=this.variable.properties,o=p.length>=3?Ct.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],s=p[r++],"prototype"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new z(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(m=this.variable.unwrapAll(),m.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned'),("function"==typeof m.hasProperties?m.hasProperties():void 0)||(this.param?e.scope.add(m.value,"var"):e.scope.find(m.value))),f=this.value.compileToFragments(e,E),n=this.variable.compileToFragments(e,E),"object"===this.context?n.concat(this.makeCode(": "),f):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),f),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,s,o,a,c,h,l,u,d,f,m,v,y,b,k,T,C,N,S,D,R,A,I,_,j,M,B;if(I=e.level===L,j=this.value,y=this.variable.base.objects,!(b=y.length))return s=j.compileToFragments(e),e.level>=F?this.wrapInBraces(s):s;if(l=this.variable.isObject(),I&&1===b&&!((v=y[0])instanceof G))return v instanceof n?(T=v,C=T.variable,h=C.base,v=T.value):h=l?v["this"]?v.properties[0].name:v:new x(0),i=g.test(h.unwrap().value||0),j=new z(j),j.properties.push(new(i?t:w)(h)),N=v.unwrap().value,Tt.call($,N)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),new n(v,j,null,{param:this.param}).compileToFragments(e,L);for(M=j.compileToFragments(e,E),B=st(M),r=[],o=!1,(!g.test(B)||this.variable.assigns(B))&&(r.push([this.makeCode((k=e.scope.freeVariable("ref"))+" = ")].concat(Ct.call(M))),M=[this.makeCode(k)],B=k),c=d=0,f=y.length;f>d;c=++d){if(v=y[c],h=c,l&&(v instanceof n?(S=v,D=S.variable,h=D.base,v=S.value):v.base instanceof O?(R=new z(v.unwrapAll()).cacheReference(e),v=R[0],h=R[1]):h=v["this"]?v.properties[0].name:v),!o&&v instanceof G)m=v.name.unwrap().value,v=v.unwrap(),_=b+" <= "+B+".length ? "+bt("slice",e)+".call("+B+", "+c,(A=b-c-1)?(u=e.scope.freeVariable("i",{single:!0}),_+=", "+u+" = "+B+".length - "+A+") : ("+u+" = "+c+", [])"):_+=") : []",_=new x(_),o=u+"++";else{if(!o&&v instanceof p){(A=b-c-1)&&(1===A?o=B+".length - 1":(u=e.scope.freeVariable("i",{single:!0}),_=new x(u+" = "+B+".length - "+A),o=u+"++",r.push(_.compileToFragments(e,E))));continue}m=v.unwrap().value,(v instanceof G||v instanceof p)&&v.error("multiple splats/expansions are disallowed in an assignment"),"number"==typeof h?(h=new x(o||h),i=!1):i=l&&g.test(h.unwrap().value||0),_=new z(new x(B),[new(i?t:w)(h)])}null!=m&&Tt.call($,m)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),r.push(new n(v,_,null,{param:this.param,subpattern:!0}).compileToFragments(e,E))}return I||this.subpattern||r.push(M),a=this.joinFragmentArrays(r,", "),E>e.level?a:this.wrapInBraces(a)},n.prototype.compileConditional=function(e){var t,i,r,s;return r=this.variable.cacheReference(e),i=r[0],s=r[1],!i.properties.length&&i.base instanceof x&&"this"!==i.base.value&&!e.scope.check(i.base.value)&&this.variable.error('the variable "'+i.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),Tt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new b(new u(i),s,{type:"if"}).addElse(new n(s,this.value,"=")).compileToFragments(e)):(t=new I(this.context.slice(0,-1),i,new n(s,this.value,"=")).compileToFragments(e),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new I(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;return a=this.variable.properties.pop().range,i=a.from,l=a.to,n=a.exclusive,o=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,F)),r=c[0],s=c[1]):r=s="0",l?i instanceof z&&i.isSimpleNumber()&&l instanceof z&&l.isSimpleNumber()?(l=l.compile(e)-s,n||(l+=1)):(l=l.compile(e,T)+" - "+s,n||(l+=" + 1")):l="9e9",h=this.value.cache(e,E),u=h[0],p=h[1],t=[].concat(this.makeCode("[].splice.apply("+o+", ["+r+", "+l+"].concat("),u,this.makeCode(")), "),p),e.level>L?this.wrapInBraces(t):t},n}(r),e.Code=c=function(e){function t(e,t,n){this.params=e||[],this.body=t||new s,this.bound="boundfunc"===n,this.isGenerator=!!this.body.contains(function(e){var t;return e instanceof I&&("yield"===(t=e.operator)||"yield*"===t)})}return kt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=D,t.prototype.makeScope=function(e){return new P(e,this.body,this)},t.prototype.compileNode=function(e){var r,a,c,h,l,u,d,f,m,g,v,y,k,w,C,E,F,N,L,S,D,R,A,O,$,j,M,B,V,P,U,G,H;if(this.bound&&(null!=(A=e.scope.method)?A.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",H=new t([new _(new x(this.context))],new s([this])),a=new o(H,[new x("this")]),a.updateLocationDataIfMissing(this.locationData),a.compileNode(e);for(e.scope=tt(e,"classScope")||this.makeScope(e.scope),e.scope.shared=tt(e,"sharedScope"),e.indent+=q,delete e.bare,delete e.isExistentialEquals,L=[],h=[],O=this.params,u=0,m=O.length;m>u;u++)N=O[u],N instanceof p||e.scope.parameter(N.asReference(e));for($=this.params,d=0,g=$.length;g>d;d++)if(N=$[d],N.splat||N instanceof p){for(j=this.params,f=0,v=j.length;v>f;f++)F=j[f],F instanceof p||!F.name.value||e.scope.add(F.name.value,"var",!0);V=new i(new z(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)F=i[n],r.push(F.asReference(e));return r}.call(this))),new z(new x("arguments")));break}for(M=this.params,E=0,y=M.length;y>E;E++)N=M[E],N.isComplex()?(U=R=N.asReference(e),N.value&&(U=new I("?",R,N.value)),h.push(new i(new z(N.name),U,"=",{param:!0}))):(R=N,N.value&&(C=new x(R.name.value+" == null"),U=new i(new z(N.name),N.value,"="),h.push(new b(C,U)))),V||L.push(R);for(G=this.body.isEmpty(),V&&h.unshift(V),h.length&&(B=this.body.expressions).unshift.apply(B,h),l=S=0,k=L.length;k>S;l=++S)F=L[l],L[l]=F.compileToFragments(e),e.scope.parameter(st(L[l]));for(P=[],this.eachParamName(function(e,t){return Tt.call(P,e)>=0&&t.error("multiple parameters named "+e),P.push(e)}),G||this.noReturn||this.body.makeReturn(),c="function",this.isGenerator&&(c+="*"),this.ctor&&(c+=" "+this.name),c+="(",r=[this.makeCode(c)],l=D=0,w=L.length;w>D;l=++D)F=L[l],l&&r.push(this.makeCode(", ")),r.push.apply(r,F);return r.push(this.makeCode(") {")),this.body.isEmpty()||(r=r.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),r.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Ct.call(r)):this.front||e.level>=T?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,s;for(r=this.params,s=[],t=0,n=r.length;n>t;t++)i=r[t],s.push(i.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(r),e.Param=_=function(e){function t(e,t,n){var i,r;this.name=e,this.value=t,this.splat=n,r=i=this.name.unwrapAll().value,Tt.call(V,r)>=0&&this.name.error('parameter name "'+i+'" is not allowed')}return kt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,E)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n["this"]?(t=n.properties[0].name.value,t.reserved&&(t="_"+t),n=new x(e.scope.freeVariable(t))):n.isComplex()&&(n=new x(e.scope.freeVariable("arg"))),n=new z(n),this.splat&&(n=new G(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,s,o,a,c;if(null==t&&(t=this.name),n=function(t){return e("@"+t.properties[0].name.value,t)},t instanceof x)return e(t.value,t);if(t instanceof z)return n(t);for(c=t.objects,r=0,s=c.length;s>r;r++)a=c[r],a instanceof i?this.eachName(e,a.value.unwrap()):a instanceof G?(o=a.name.unwrap(),e(o.value,o)):a instanceof z?a.isArray()||a.isObject()?this.eachName(e,a.base):a["this"]?n(a):e(a.base.value,a.base):a instanceof p||a.error("illegal parameter "+a.compile())},t}(r),e.Splat=G=function(e){function t(e){this.name=e.compile?e:new x(e)}return kt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=Q,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,s,o,a,c,h,l,u,p,d,f;for(l=-1;(f=n[++l])&&!(f instanceof t););if(l>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,E),i?c:[].concat(f.makeCode(bt("slice",e)+".call("),c,f.makeCode(")"));for(r=n.slice(l),h=u=0,d=r.length;d>u;h=++u)f=r[h],o=f.compileToFragments(e,E),r[h]=f instanceof t?[].concat(f.makeCode(bt("slice",e)+".call("),o,f.makeCode(")")):[].concat(f.makeCode("["),o,f.makeCode("]"));return 0===l?(f=n[0],a=f.joinFragmentArrays(r.slice(1),", "),r[0].concat(f.makeCode(".concat("),a,f.makeCode(")"))):(s=function(){var t,i,r,s;for(r=n.slice(0,l),s=[],t=0,i=r.length;i>t;t++)f=r[t],s.push(f.compileToFragments(e,E));return s}(),s=n[0].joinFragmentArrays(s,", "),a=n[l].joinFragmentArrays(r,", "),p=n[n.length-1],[].concat(n[0].makeCode("["),s,n[l].makeCode("].concat("),a,p.makeCode(")")))},t}(r),e.Expansion=p=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isComplex=D,t.prototype.compileNode=function(){return this.error("Expansion must be used inside a destructuring assignment or parameter list")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(r),e.While=J=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return kt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=Q,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=q,r="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(i=e.scope.freeVariable("results")),r=""+this.tab+i+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new b(new O(this.guard).invert(),new x("continue"))):this.guard&&(n=s.wrap([new b(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,L),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,N),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+i+";")),t},t}(r),e.Op=I=function(e){function n(e,t,n,i){if("in"===e)return new k(t,n);if("do"===e)return this.generateDo(t);if("new"===e){if(t instanceof o&&!t["do"]&&!t.isNew)return t.newInstance();(t instanceof c&&t.bound||t["do"])&&(t=new O(t))}return this.operator=r[e]||e,this.first=t,this.second=n,this.flip=!!i,this}var r,s;return kt(n,e),r={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},s={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isSimpleNumber=D,n.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},n.prototype.isYieldReturn=function(){return this.isYield()&&this.first instanceof M},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){var e;return!(this.isUnary()&&("+"===(e=this.operator)||"-"===e)&&this.first instanceof z&&this.first.isSimpleNumber())},n.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},n.prototype.invert=function(){var e,t,i,r,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return new O(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(r=s[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new O(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof n&&("!"===(o=i.operator)||"in"===o||"instanceof"===o)?i:new n("!",this)},n.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&yt(e,this,"first")},n.prototype.generateDo=function(e){var t,n,r,s,a,h,l,u;for(h=[],n=e instanceof i&&(l=e.value.unwrap())instanceof c?l:e,u=n.params||[],r=0,s=u.length;s>r;r++)a=u[r],a.value?(h.push(a.value),delete a.value):h.push(a);return t=new o(e,h),t["do"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),"delete"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),("--"===(r=this.operator)||"++"===r)&&(s=this.first.unwrapAll().value,Tt.call(V,s)>=0)&&this.error('cannot increment/decrement "'+this.first.unwrapAll().value+'"'),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case"?":return this.compileExistence(e);case"**":return this.compilePower(e);case"//":return this.compileFloorDivision(e);case"%%":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,F),o=this.second.compileToFragments(e,F),t=[].concat(i,this.makeCode(" "+this.operator+" "),o),F>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,F),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,F)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new x(e.scope.freeVariable("ref")),t=new O(new i(n,this.first))):(t=this.first,n=t),new b(new u(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),"!"===t&&this.first instanceof u?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=T?new O(this).compileToFragments(e):(r="+"===t||"-"===t,("new"===t||"typeof"===t||"delete"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof n||"new"===t&&this.first.isStatement(e))&&(this.first=new O(this.first)),i.push(this.first.compileToFragments(e,F)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},n.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield statements must occur within a function generator."),Tt.call(Object.keys(this.first),"expression")>=0&&!(this.first instanceof W)?this.isYieldReturn()?n.push(this.first.compileToFragments(e,L)):null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,F)):(n.push([this.makeCode("("+t+" ")]),n.push(this.first.compileToFragments(e,F)),n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},n.prototype.compilePower=function(e){var n;return n=new z(new x("Math"),[new t(new x("pow"))]),new o(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new z(new x("Math"),[new t(new x("floor"))]),i=new n("/",this.first,this.second),new o(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new z(new x(bt("modulo",e))),new o(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},n}(r),e.In=k=function(e){function t(e,t){this.object=e,this.array=t}return kt(t,e),t.prototype.children=["object","array"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r,s;if(this.array instanceof z&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,i=s.length;i>n;n++)if(r=s[n],r instanceof G){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;for(c=this.object.cache(e,F),u=c[0],a=c[1],h=this.negated?[" !== "," && "]:[" === "," || "],t=h[0],n=h[1],p=[],l=this.array.base.objects,i=s=0,o=l.length;o>s;i=++s)r=l[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:u,this.makeCode(t),r.compileToFragments(e,T));return F>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,E),r=i[0],n=i[1],t=[].concat(this.makeCode(bt("indexOf",e)+".call("),this.array.compileToFragments(e,E),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),st(r)===st(n)?t:(t=r.concat(this.makeCode(", "),t),E>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(r),e.Try=Y=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return kt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,s;return e.indent+=q,s=this.attempt.compileToFragments(e,L),t=this.recovery?(r=new x("_error"),this.errorVariable?this.recovery.unshift(new i(this.errorVariable,r)):void 0,[].concat(this.makeCode(" catch ("),r.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:[this.makeCode(" catch (_error) {}")],n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(this.tab+"try {\n"),s,this.makeCode("\n"+this.tab+"}"),t,n)},t}(r),e.Throw=W=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.jumps=D,t.prototype.makeReturn=X,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(r),e.Existence=u=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,F),g.test(i)&&!e.scope.check(i)?(r=this.negated?["===","||"]:["!==","&&"],t=r[0],n=r[1],i="typeof "+i+" "+t+' "undefined" '+n+" "+i+" "+t+" null"):i=i+" "+(this.negated?"==":"!=")+" null",[this.makeCode(C>=e.level?i:"("+i+")")]},t}(r),e.Parens=O=function(e){function t(e){this.body=e}return kt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof z&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,N),t=F>e.level&&(n instanceof I||n instanceof o||n instanceof f&&n.returns),t?i:this.wrapInBraces(i))},t}(r),e.For=f=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=s.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof z&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof z&&this.source.base instanceof j&&!this.source.properties.length,this.pattern=this.name instanceof z,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return kt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,o,a,c,h,l,u,p,d,f,m,v,y,k,w,T,C,F,N,S,D,A,I,_,$,j,B,V,P,U,G,H;return t=s.wrap([this.body]),D=t.expressions,T=D[D.length-1],(null!=T?T.jumps():void 0)instanceof M&&(this.returns=!1),B=this.range?this.source.base:this.source,j=e.scope,this.pattern||(F=this.name&&this.name.compile(e,E)),v=this.index&&this.index.compile(e,E),F&&!this.pattern&&j.find(F),v&&j.find(v),this.returns&&($=j.freeVariable("results")),y=this.object&&v||j.freeVariable("i",{single:!0}),k=this.range&&F||v||y,w=k!==y?k+" = ":"",this.step&&!this.range&&(A=this.cacheToCodeFragments(this.step.cache(e,E,ot)),V=A[0],U=A[1],P=U.match(R)),this.pattern&&(F=y),H="",d="",h="",f=this.tab+q,this.range?p=B.compileToFragments(lt(e,{index:y,name:F,step:this.step,isComplex:ot})):(G=this.source.compile(e,E),!F&&!this.own||g.test(G)||(h+=""+this.tab+(S=j.freeVariable("ref"))+" = "+G+";\n",G=S),F&&!this.pattern&&(N=F+" = "+G+"["+k+"]"),this.object||(V!==U&&(h+=""+this.tab+V+";\n"),this.step&&P&&(u=0>pt(P[0]))||(C=j.freeVariable("len")),a=""+w+y+" = 0, "+C+" = "+G+".length",c=""+w+y+" = "+G+".length - 1",r=y+" < "+C,o=y+" >= 0",this.step?(P?u&&(r=o,a=c):(r=U+" > 0 ? "+r+" : "+o,a="("+U+" > 0 ? ("+a+") : "+c+")"),m=y+" += "+U):m=""+(k!==y?"++"+y:y+"++"),p=[this.makeCode(a+"; "+r+"; "+w+m)])),this.returns&&(I=""+this.tab+$+" = [];\n",_="\n"+this.tab+"return "+$+";",t.makeReturn($)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new b(new O(this.guard).invert(),new x("continue"))):this.guard&&(t=s.wrap([new b(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new x(G+"["+k+"]"))),l=[].concat(this.makeCode(h),this.pluckDirectCall(e,t)),N&&(H="\n"+f+N+";"),this.object&&(p=[this.makeCode(k+" in "+G)],this.own&&(d="\n"+f+"if (!"+bt("hasProp",e)+".call("+G+", "+k+")) continue;")),n=t.compileToFragments(lt(e,{indent:f}),L),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(l,this.makeCode(""+(I||"")+this.tab+"for ("),p,this.makeCode(") {"+d+H),n,this.makeCode(this.tab+"}"+(_||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,s,a,h,l,u,p,d,f,m,g,v,y,b,k;for(r=[],d=t.expressions,h=l=0,u=d.length;u>l;h=++l)s=d[h],s=s.unwrapAll(),s instanceof o&&(k=null!=(f=s.variable)?f.unwrapAll():void 0,(k instanceof c||k instanceof z&&(null!=(m=k.base)?m.unwrapAll():void 0)instanceof c&&1===k.properties.length&&("call"===(g=null!=(v=k.properties[0].name)?v.value:void 0)||"apply"===g))&&(a=(null!=(y=k.base)?y.unwrapAll():void 0)||k,p=new x(e.scope.freeVariable("fn")),n=new z(p),k.base&&(b=[n,k],k.base=b[0],n=b[1]),t.expressions[h]=new o(n,s.args),r=r.concat(this.makeCode(this.tab),new i(p,a).compileToFragments(e,L),this.makeCode(";\n"))));return r},t}(J),e.Switch=H=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return kt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t,n,i,r,s,o,a,c;for(null==e&&(e={block:!0}),o=this.cases,i=0,s=o.length;s>i;i++)if(a=o[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,o;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new s([new x("void 0")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g;for(c=e.indent+q,h=e.indent=c+q,o=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,N):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=l=0,p=f.length;p>l;a=++l){for(m=f[a],r=m[0],t=m[1],g=rt([r]),u=0,d=g.length;d>u;u++)i=g[u],this.subject||(i=i.invert()),o=o.concat(this.makeCode(c+"case "),i.compileToFragments(e,N),this.makeCode(":\n"));if((n=t.compileToFragments(e,L)).length>0&&(o=o.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof M||s instanceof x&&s.jumps()&&"debugger"!==s.value||o.push(i.makeCode(h+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(c+"default:\n")].concat(Ct.call(this.otherwise.compileToFragments(e,L)),[this.makeCode("\n")])),o.push(this.makeCode(this.tab+"}")),o},t}(r),e.If=b=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition="unless"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return kt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===L||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new s([new x("void 0")]))),this.body&&(this.body=new s([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new s([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof s?e:new s([e])},t.prototype.compileStatement=function(e){var n,i,r,s,o,a,c;return r=tt(e,"chainChild"),(o=tt(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+q,s=this.condition.compileToFragments(e,N),i=this.ensureBlock(this.body).compileToFragments(lt(e,{indent:c})),a=[].concat(this.makeCode("if ("),s,this.makeCode(") {\n"),i,this.makeCode("\n"+this.tab+"}")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,L))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(lt(e,{indent:c}),L),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,C),n=this.bodyNode().compileToFragments(e,E),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,E):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=C?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(r),K={extend:function(e){return"function(child, parent) { for (var key in parent) { if ("+bt("hasProp",e)+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b = +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},L=1,N=2,E=3,C=4,F=5,T=6,q=" ",g=/^(?!\d)[$\w\x7f-\uffff]+$/,B=/^[+-]?\d+$/,m=/^[+-]?0x[\da-f]+/i,R=/^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i,y=/^['"]/,v=/^\//,bt=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,K[e](t)),i.utilities[e]=n)},ut=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},pt=function(e){return null==e?0:e.match(m)?parseInt(e,16):parseFloat(e)},at=function(e){return e instanceof x&&"arguments"===e.value&&!e.asKey},ct=function(e){return e instanceof x&&"this"===e.value&&!e.asKey||e instanceof c&&e.bound||e instanceof o&&e.isSuper},ot=function(e){return e.isComplex()||("function"==typeof e.isAssignable?e.isAssignable():void 0)},yt=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new z(t),i}}.call(this),t.exports}(),_dereq_["./sourcemap"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,s;return t.prototype.add=function(t,n,i){var r,s,o,a;return null==i&&(i={}),o=n[0],s=n[1],a=(r=this.lines)[o]||(r[o]=new e(o)),a.add(s,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;for(null==e&&(e={}),null==t&&(t=null),v=0,s=0,a=0,o=0,d=!1,n="",f=this.lines,u=i=0,c=f.length;c>i;u=++i)if(l=f[u])for(m=l.columns,r=0,h=m.length;h>r;r++)if(p=m[r]){for(;p.line>v;)s=0,d=!1,n+=";",v++;d&&(n+=",",d=!1),n+=this.encodeVlq(p.column-s),s=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-o),o=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inline&&(g.sourcesContent=[t]),JSON.stringify(g,null,2)},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+o;a||!t;)n=a&s,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e)}()},t}(),t.exports=n}.call(this),t.exports}(),_dereq_["./coffee-script"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b={}.hasOwnProperty,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(a=_dereq_("fs"),v=_dereq_("vm"),f=_dereq_("path"),t=_dereq_("./lexer").Lexer,d=_dereq_("./parser").parser,h=_dereq_("./helpers"),n=_dereq_("./sourcemap"),e.VERSION="1.9.3",e.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md"],e.helpers=h,y=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n) +}catch(r){if(i=r,"string"!=typeof t)throw i;throw h.updateSyntaxError(i,t,n.filename)}}},e.compile=r=y(function(e,t){var i,r,s,o,a,c,l,u,f,m,g,v,y,b,k;for(v=h.merge,o=h.extend,t=o({},t),t.sourceMap&&(g=new n),k=p.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=k.length;t>e;e++)b=k[e],b.variable&&n.push(b[1]);return n}(),c=d.parse(k).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),r=0,f="",u=0,m=c.length;m>u;u++)a=c[u],t.sourceMap&&(a.locationData&&!/^[;\s]*$/.test(a.code)&&g.add([a.locationData.first_line,a.locationData.first_column],[s,r],{noReplace:!0}),y=h.count(a.code,"\n"),s+=y,y?r=a.code.length-(a.code.lastIndexOf("\n")+1):r+=a.code.length),f+=a.code;return t.header&&(l="Generated by CoffeeScript "+this.VERSION,f="// "+l+"\n"+f),t.sourceMap?(i={js:f},i.sourceMap=g,i.v3SourceMap=g.generate(t,e),i):f}),e.tokens=y(function(e,t){return p.tokenize(e,t)}),e.nodes=y(function(e,t){return"string"==typeof e?d.parse(p.tokenize(e,t)):d.parse(e)}),e.run=function(e,t){var n,i,s,o;return null==t&&(t={}),s=_dereq_.main,s.filename=process.argv[1]=t.filename?a.realpathSync(t.filename):".",s.moduleCache&&(s.moduleCache={}),i=t.filename?f.dirname(a.realpathSync(t.filename)):a.realpathSync("."),s.paths=_dereq_("module")._nodeModulePaths(i),(!h.isCoffee(s.filename)||_dereq_.extensions)&&(n=r(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,i,s,o,a,c,h,l,u,p,d,m,g,y,k,w,T;if(null==t&&(t={}),e=e.trim()){if(o=null!=(m=v.Script.createContext)?m:v.createContext,c=null!=(g=v.isContext)?g:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=o(),y=t.sandbox;for(l in y)b.call(y,l)&&(T=y[l],w[l]=T)}w.global=w.root=w.GLOBAL=w}else w=global;if(w.__filename=t.filename||"eval",w.__dirname=f.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=_dereq_("module"),w.module=i=new n(t.modulename||"eval"),w.require=s=function(e){return n._load(e,i,!0)},i.filename=w.__filename,k=Object.getOwnPropertyNames(_dereq_),a=0,u=k.length;u>a;a++)d=k[a],"paths"!==d&&(s[d]=_dereq_[d]);s.paths=i.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,i)}}}p={};for(l in t)b.call(t,l)&&(T=t[l],p[l]=T);return p.bare=!0,h=r(e,p),w===global?v.runInThisContext(h):v.runInContext(h,w)}},e.register=function(){return _dereq_("./register")},_dereq_.extensions)for(m=this.FILE_EXTENSIONS,l=0,u=m.length;u>l;l++)s=m[l],null==(i=_dereq_.extensions)[s]&&(i[s]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+s+" files.")});e._compileFile=function(e,t){var n,i,s,o;null==t&&(t=!1),s=a.readFileSync(e,"utf8"),o=65279===s.charCodeAt(0)?s.substring(1):s;try{n=r(o,{filename:e,sourceMap:t,literate:h.isLiterate(e)})}catch(c){throw i=c,h.updateSyntaxError(i,o,e)}return n},p=new t,d.lexer={lex:function(){var e,t;return t=d.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],d.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return d.tokens=e,this.pos=0},upcomingInput:function(){return""}},d.yy=_dereq_("./nodes"),d.yy.parseError=function(e,t){var n,i,r,s,o,a;return o=t.token,s=d.errorToken,a=d.tokens,i=s[0],r=s[1],n=s[2],r=function(){switch(!1){case s!==a[a.length-1]:return"end of input";case"INDENT"!==i&&"OUTDENT"!==i:return"indentation";case"IDENTIFIER"!==i&&"NUMBER"!==i&&"STRING"!==i&&"STRING_START"!==i&&"REGEX"!==i&&"REGEX_START"!==i:return i.replace(/_START$/,"").toLowerCase();default:return h.nameWhitespaceCharacter(r)}}(),h.throwSyntaxError("unexpected "+r,n)},o=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d;return s=void 0,r="",e.isNative()?r="native":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(r=e.getEvalOrigin()+", ")):s=e.getFileName(),s||(s=""),h=e.getLineNumber(),i=e.getColumnNumber(),u=t(s,h,i),r=u?s+":"+u[0]+":"+u[1]:s+":"+h+":"+i),o=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(l=e.getMethodName(),d=e.getTypeName(),o?(p=n="",d&&o.indexOf(d)&&(p=d+"."),l&&o.indexOf("."+l)!==o.length-l.length-1&&(n=" [as "+l+"]"),""+p+o+n+" ("+r+")"):d+"."+(l||"")+" ("+r+")"):a?"new "+(o||"")+" ("+r+")":o?o+" ("+r+")":r},g={},c=function(t){var n,i;if(g[t])return g[t];if(i=null!=f?f.extname(t):void 0,!(0>k.call(e.FILE_EXTENSIONS,i)))return n=e._compileFile(t,!0),g[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var i,r,s;return s=function(e,t,n){var i,r;return r=c(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var t,r,a;for(a=[],t=0,r=n.length;r>t&&(i=n[t],i.getFunction()!==e.run);t++)a.push(" at "+o(i,s));return a}(),""+t+"\n"+r.join("\n")+"\n"}}.call(this),t.exports}(),_dereq_["./browser"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=_dereq_("./coffee-script"),CoffeeScript.require=_dereq_,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&"undefined"!=typeof unescape&&null!==unescape&&"undefined"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,i,r;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,i=CoffeeScript.compile(e,t),n=i.js,r=i.v3SourceMap,n+"\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(r)))+"\n//# sourceURL=coffeescript"}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var s,o;if(4===r.readyState){if(0!==(o=r.status)&&200!==o)throw Error("Could not load "+e);if(s=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},r.send(null)},runScripts=function(){var e,t,n,i,r,s,o,a,c,h,l;for(l=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=l.length;n>e;e++)c=l[e],i=c.type,indexOf.call(t,i)>=0&&r.push(c);return r}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},i=function(i,r){var s,o;return s={literate:i.type===t[1]},o=i.src||i.getAttribute("data-src"),o?CoffeeScript.load(o,function(t){return e[r]=t,n()},s,!0):(s.sourceFiles=["embedded"],e[r]=[i.innerHTML,s])},r=o=0,a=e.length;a>o;r=++o)h=e[r],i(h,r);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts))}.call(this),module.exports}(),_dereq_["./coffee-script"]}();"function"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript})(this); +}); + +define("ace/mode/coffee_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/coffee/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var Mirror = require("../worker/mirror").Mirror; +var coffee = require("../mode/coffee/coffee"); + +window.addEventListener = function() {}; + + +var Worker = exports.Worker = function(sender) { + Mirror.call(this, sender); + this.setTimeout(250); +}; + +oop.inherits(Worker, Mirror); + +(function() { + + this.onUpdate = function() { + var value = this.doc.getValue(); + var errors = []; + try { + coffee.compile(value); + } catch(e) { + var loc = e.location; + if (loc) { + errors.push({ + row: loc.first_line, + column: loc.first_column, + endRow: loc.last_line, + endColumn: loc.last_column, + text: e.message, + type: "error" + }); + } + } + this.sender.emit("annotate", errors); + }; + +}).call(Worker.prototype); + +}); + +define("ace/lib/es5-shim",["require","exports","module"], function(require, exports, module) { + +function Empty() {} + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + var target = this; + if (typeof target != "function") { + throw new TypeError("Function.prototype.bind called on incompatible " + target); + } + var args = slice.call(arguments, 1); // for normal call + var bound = function () { + + if (this instanceof bound) { + + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + if(target.prototype) { + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; +} +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var _toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} +if ([1,2].splice(0).length != 2) { + if(function() { // test IE < 9 to splice bug - see issue #138 + function makeArray(l) { + var a = new Array(l+2); + a[0] = a[1] = 0; + return a; + } + var array = [], lengthBefore; + + array.splice.apply(array, makeArray(20)); + array.splice.apply(array, makeArray(26)); + + lengthBefore = array.length; //46 + array.splice(5, 0, "XXX"); // add one element + + lengthBefore + 1 == array.length + + if (lengthBefore + 1 == array.length) { + return true;// has right splice implementation without bugs + } + }()) {//IE 6/7 + var array_splice = Array.prototype.splice; + Array.prototype.splice = function(start, deleteCount) { + if (!arguments.length) { + return []; + } else { + return array_splice.apply(this, [ + start === void 0 ? 0 : start, + deleteCount === void 0 ? (this.length - start) : deleteCount + ].concat(slice.call(arguments, 2))) + } + }; + } else {//IE8 + Array.prototype.splice = function(pos, removeCount){ + var length = this.length; + if (pos > 0) { + if (pos > length) + pos = length; + } else if (pos == void 0) { + pos = 0; + } else if (pos < 0) { + pos = Math.max(length + pos, 0); + } + + if (!(pos+removeCount < length)) + removeCount = length - pos; + + var removed = this.slice(pos, pos+removeCount); + var insert = slice.call(arguments, 2); + var add = insert.length; + if (pos === length) { + if (add) { + this.push.apply(this, insert); + } + } else { + var remove = Math.min(removeCount, length - pos); + var tailOldPos = pos + remove; + var tailNewPos = tailOldPos + add - remove; + var tailCount = length - tailOldPos; + var lengthAfterRemove = length - remove; + + if (tailNewPos < tailOldPos) { // case A + for (var i = 0; i < tailCount; ++i) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } else if (tailNewPos > tailOldPos) { // case B + for (i = tailCount; i--; ) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } // else, add == remove (nothing to do) + + if (add && pos === lengthAfterRemove) { + this.length = lengthAfterRemove; // truncate array + this.push.apply(this, insert); + } else { + this.length = lengthAfterRemove + add; // reserves space + for (i = 0; i < add; ++i) { + this[pos+i] = insert[i]; + } + } + } + return removed; + }; + } +} +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return _toString(obj) == "[object Array]"; + }; +} +var boxedString = Object("a"), + splitString = boxedString[0] != "a" || !(0 in boxedString); + +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + thisp = arguments[1], + i = -1, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (++i < length) { + if (i in self) { + fun.call(thisp, self[i], i, object); + } + } + }; +} +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, object); + } + return result; + }; +} +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = [], + value, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) { + value = self[i]; + if (fun.call(thisp, value, i, object)) { + result.push(value); + } + } + } + return result; + }; +} +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, object)) { + return false; + } + } + return true; + }; +} +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, object)) { + return true; + } + } + return false; + }; +} +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduce of empty array with no initial value"); + } + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + if (++i >= length) { + throw new TypeError("reduce of empty array with no initial value"); + } + } while (true); + } + + for (; i < length; i++) { + if (i in self) { + result = fun.call(void 0, result, self[i], i, object); + } + } + + return result; + }; +} +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + if (--i < 0) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + } while (true); + } + + do { + if (i in this) { + result = fun.call(void 0, result, self[i], i, object); + } + } while (i--); + + return result; + }; +} +if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + + var i = 0; + if (arguments.length > 1) { + i = toInteger(arguments[1]); + } + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} +if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + var i = length - 1; + if (arguments.length > 1) { + i = Math.min(i, toInteger(arguments[1])); + } + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) { + return i; + } + } + return -1; + }; +} +if (!Object.getPrototypeOf) { + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + descriptor = { enumerable: true, configurable: true }; + if (supportsAccessors) { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + return descriptor; + } + } + descriptor.value = object[property]; + return descriptor; + }; +} +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} +if (!Object.create) { + var createEmpty; + if (Object.prototype.__proto__ === null) { + createEmpty = function () { + return { "__proto__": null }; + }; + } else { + createEmpty = function () { + var empty = {}; + for (var i in empty) + empty[i] = null; + empty.constructor = + empty.hasOwnProperty = + empty.propertyIsEnumerable = + empty.isPrototypeOf = + empty.toLocaleString = + empty.toString = + empty.valueOf = + empty.__proto__ = null; + return empty; + } + } + + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = createEmpty(); + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + } +} +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + } + } + if (owns(descriptor, "value")) { + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + delete object[property]; + object[property] = descriptor.value; + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} +if (!Object.seal) { + Object.seal = function seal(object) { + return object; + }; +} +if (!Object.freeze) { + Object.freeze = function freeze(object) { + return object; + }; +} +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + return object; + }; +} +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} +if (!Object.keys) { + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) { + hasDontEnumBug = false; + } + + Object.keys = function keys(object) { + + if ( + (typeof object != "object" && typeof object != "function") || + object === null + ) { + throw new TypeError("Object.keys called on a non-object"); + } + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + return keys; + }; + +} +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +function toInteger(n) { + n = +n; + if (n !== n) { // isNaN + n = 0; + } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + return n; +} + +function isPrimitive(input) { + var type = typeof input; + return ( + input === null || + type === "undefined" || + type === "boolean" || + type === "number" || + type === "string" + ); +} + +function toPrimitive(input) { + var val, valueOf, toString; + if (isPrimitive(input)) { + return input; + } + valueOf = input.valueOf; + if (typeof valueOf === "function") { + val = valueOf.call(input); + if (isPrimitive(val)) { + return val; + } + } + toString = input.toString; + if (typeof toString === "function") { + val = toString.call(input); + if (isPrimitive(val)) { + return val; + } + } + throw new TypeError(); +} +var toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError("can't convert "+o+" to object"); + } + return Object(o); +}; + +}); diff --git a/module/icec-fileManager/src/main/resources/static/elfinder/ace/worker-css.js b/module/icec-fileManager/src/main/resources/static/elfinder/ace/worker-css.js new file mode 100644 index 0000000..bb86bd7 --- /dev/null +++ b/module/icec-fileManager/src/main/resources/static/elfinder/ace/worker-css.js @@ -0,0 +1,8761 @@ +"no use strict"; +!(function(window) { +if (typeof window.window != "undefined" && window.document) + return; +if (window.require && window.define) + return; + +if (!window.console) { + window.console = function() { + var msgs = Array.prototype.slice.call(arguments, 0); + postMessage({type: "log", data: msgs}); + }; + window.console.error = + window.console.warn = + window.console.log = + window.console.trace = window.console; +} +window.window = window; +window.ace = window; + +window.onerror = function(message, file, line, col, err) { + postMessage({type: "error", data: { + message: message, + data: err.data, + file: file, + line: line, + col: col, + stack: err.stack + }}); +}; + +window.normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = (base ? base + "/" : "") + moduleName; + + while (moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + + return moduleName; +}; + +window.require = function require(parentId, id) { + if (!id) { + id = parentId; + parentId = null; + } + if (!id.charAt) + throw new Error("worker.js require() accepts only (parentId, id) as arguments"); + + id = window.normalizeModule(parentId, id); + + var module = window.require.modules[id]; + if (module) { + if (!module.initialized) { + module.initialized = true; + module.exports = module.factory().exports; + } + return module.exports; + } + + if (!window.require.tlns) + return console.log("unable to load " + id); + + var path = resolveModuleId(id, window.require.tlns); + if (path.slice(-3) != ".js") path += ".js"; + + window.require.id = id; + window.require.modules[id] = {}; // prevent infinite loop on broken modules + importScripts(path); + return window.require(parentId, id); +}; +function resolveModuleId(id, paths) { + var testPath = id, tail = ""; + while (testPath) { + var alias = paths[testPath]; + if (typeof alias == "string") { + return alias + tail; + } else if (alias) { + return alias.location.replace(/\/*$/, "/") + (tail || alias.main || alias.name); + } else if (alias === false) { + return ""; + } + var i = testPath.lastIndexOf("/"); + if (i === -1) break; + tail = testPath.substr(i) + tail; + testPath = testPath.slice(0, i); + } + return id; +} +window.require.modules = {}; +window.require.tlns = {}; + +window.define = function(id, deps, factory) { + if (arguments.length == 2) { + factory = deps; + if (typeof id != "string") { + deps = id; + id = window.require.id; + } + } else if (arguments.length == 1) { + factory = id; + deps = []; + id = window.require.id; + } + + if (typeof factory != "function") { + window.require.modules[id] = { + exports: factory, + initialized: true + }; + return; + } + + if (!deps.length) + // If there is no dependencies, we inject "require", "exports" and + // "module" as dependencies, to provide CommonJS compatibility. + deps = ["require", "exports", "module"]; + + var req = function(childId) { + return window.require(id, childId); + }; + + window.require.modules[id] = { + exports: {}, + factory: function() { + var module = this; + var returnExports = factory.apply(this, deps.map(function(dep) { + switch (dep) { + // Because "require", "exports" and "module" aren't actual + // dependencies, we must handle them seperately. + case "require": return req; + case "exports": return module.exports; + case "module": return module; + // But for all other dependencies, we can just go ahead and + // require them. + default: return req(dep); + } + })); + if (returnExports) + module.exports = returnExports; + return module; + } + }; +}; +window.define.amd = {}; +require.tlns = {}; +window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { + for (var i in topLevelNamespaces) + require.tlns[i] = topLevelNamespaces[i]; +}; + +window.initSender = function initSender() { + + var EventEmitter = window.require("ace/lib/event_emitter").EventEmitter; + var oop = window.require("ace/lib/oop"); + + var Sender = function() {}; + + (function() { + + oop.implement(this, EventEmitter); + + this.callback = function(data, callbackId) { + postMessage({ + type: "call", + id: callbackId, + data: data + }); + }; + + this.emit = function(name, data) { + postMessage({ + type: "event", + name: name, + data: data + }); + }; + + }).call(Sender.prototype); + + return new Sender(); +}; + +var main = window.main = null; +var sender = window.sender = null; + +window.onmessage = function(e) { + var msg = e.data; + if (msg.event && sender) { + sender._signal(msg.event, msg.data); + } + else if (msg.command) { + if (main[msg.command]) + main[msg.command].apply(main, msg.args); + else if (window[msg.command]) + window[msg.command].apply(window, msg.args); + else + throw new Error("Unknown command:" + msg.command); + } + else if (msg.init) { + window.initBaseUrls(msg.tlns); + require("ace/lib/es5-shim"); + sender = window.sender = window.initSender(); + var clazz = require(msg.module)[msg.classname]; + main = window.main = new clazz(sender); + } +}; +})(this); + +define("ace/lib/oop",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } + return obj; +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +define("ace/lib/lang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.last = function(a) { + return a[a.length - 1]; +}; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + var result = ''; + while (count > 0) { + if (count & 1) + result += string; + + if (count >>= 1) + string += string; + } + return result; +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + }; + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + }; + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + }; + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + }; + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + }; + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + }; + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + }; + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + }; + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + } + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + }; + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) + var end = {row: lastRow + 1, column: 0}; + else if (this.end.row < firstRow) + var end = {row: firstRow, column: 0}; + + if (this.start.row > lastRow) + var start = {row: lastRow + 1, column: 0}; + else if (this.start.row < firstRow) + var start = {row: firstRow, column: 0}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row === this.end.row && this.start.column === this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0); + else + return new Range(this.start.row, 0, this.end.row, 0); + }; + this.toScreenRange = function(session) { + var screenPosStart = session.documentToScreenPosition(this.start); + var screenPosEnd = session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + this.moveBy = function(row, column) { + this.start.row += row; + this.start.column += column; + this.end.row += row; + this.end.column += column; + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; +Range.comparePoints = comparePoints; + +Range.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; + + +exports.Range = Range; +}); + +define("ace/apply_delta",["require","exports","module"], function(require, exports, module) { +"use strict"; + +function throwDeltaError(delta, errorText){ + console.log("Invalid Delta:", delta); + throw "Invalid Delta: " + errorText; +} + +function positionInDocument(docLines, position) { + return position.row >= 0 && position.row < docLines.length && + position.column >= 0 && position.column <= docLines[position.row].length; +} + +function validateDelta(docLines, delta) { + if (delta.action != "insert" && delta.action != "remove") + throwDeltaError(delta, "delta.action must be 'insert' or 'remove'"); + if (!(delta.lines instanceof Array)) + throwDeltaError(delta, "delta.lines must be an Array"); + if (!delta.start || !delta.end) + throwDeltaError(delta, "delta.start/end must be an present"); + var start = delta.start; + if (!positionInDocument(docLines, delta.start)) + throwDeltaError(delta, "delta.start must be contained in document"); + var end = delta.end; + if (delta.action == "remove" && !positionInDocument(docLines, end)) + throwDeltaError(delta, "delta.end must contained in document for 'remove' actions"); + var numRangeRows = end.row - start.row; + var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0)); + if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars) + throwDeltaError(delta, "delta.range must match delta lines"); +} + +exports.applyDelta = function(docLines, delta, doNotValidate) { + + var row = delta.start.row; + var startColumn = delta.start.column; + var line = docLines[row] || ""; + switch (delta.action) { + case "insert": + var lines = delta.lines; + if (lines.length === 1) { + docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn); + } else { + var args = [row, 1].concat(delta.lines); + docLines.splice.apply(docLines, args); + docLines[row] = line.substring(0, startColumn) + docLines[row]; + docLines[row + delta.lines.length - 1] += line.substring(startColumn); + } + break; + case "remove": + var endColumn = delta.end.column; + var endRow = delta.end.row; + if (row === endRow) { + docLines[row] = line.substring(0, startColumn) + line.substring(endColumn); + } else { + docLines.splice( + row, endRow - row + 1, + line.substring(0, startColumn) + docLines[endRow].substring(endColumn) + ); + } + break; + } +}; +}); + +define("ace/lib/event_emitter",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; +var stopPropagation = function() { this.propagationStopped = true; }; +var preventDefault = function() { this.defaultPrevented = true; }; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry || (this._eventRegistry = {}); + this._defaultHandlers || (this._defaultHandlers = {}); + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + if (typeof e != "object" || !e) + e = {}; + + if (!e.type) + e.type = eventName; + if (!e.stopPropagation) + e.stopPropagation = stopPropagation; + if (!e.preventDefault) + e.preventDefault = preventDefault; + + listeners = listeners.slice(); + for (var i=0; i this.row) + return; + + var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight); + this.setPosition(point.row, point.column, true); + }; + + function $pointsInOrder(point1, point2, equalPointsInOrder) { + var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column; + return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter); + } + + function $getTransformedPoint(delta, point, moveIfEqual) { + var deltaIsInsert = delta.action == "insert"; + var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row); + var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column); + var deltaStart = delta.start; + var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range. + if ($pointsInOrder(point, deltaStart, moveIfEqual)) { + return { + row: point.row, + column: point.column + }; + } + if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) { + return { + row: point.row + deltaRowShift, + column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0) + }; + } + + return { + row: deltaStart.row, + column: deltaStart.column + }; + } + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._signal("change", { + old: old, + value: pos + }); + }; + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + this.attach = function(doc) { + this.document = doc || this.document; + this.document.on("change", this.$onChange); + }; + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var applyDelta = require("./apply_delta").applyDelta; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +var Document = function(textOrLines) { + this.$lines = [""]; + if (textOrLines.length === 0) { + this.$lines = [""]; + } else if (Array.isArray(textOrLines)) { + this.insertMergedLines({row: 0, column: 0}, textOrLines); + } else { + this.insert({row: 0, column:0}, textOrLines); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength() - 1; + this.remove(new Range(0, 0, len, this.getLine(len).length)); + this.insert({row: 0, column: 0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + if ("aaa".split(/a/).length === 0) { + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + }; + } else { + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + } + + + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + this.$autoNewLine = match ? match[1] : "\n"; + this._signal("changeNewLineMode"); + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + case "unix": + return "\n"; + default: + return this.$autoNewLine || "\n"; + } + }; + + this.$autoNewLine = ""; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + this._signal("changeNewLineMode"); + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + return this.getLinesForRange(range).join(this.getNewLineCharacter()); + }; + this.getLinesForRange = function(range) { + var lines; + if (range.start.row === range.end.row) { + lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)]; + } else { + lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + } + return lines; + }; + this.insertLines = function(row, lines) { + console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."); + return this.insertFullLines(row, lines); + }; + this.removeLines = function(firstRow, lastRow) { + console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."); + return this.removeFullLines(firstRow, lastRow); + }; + this.insertNewLine = function(position) { + console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."); + return this.insertMergedLines(position, ["", ""]); + }; + this.insert = function(position, text) { + if (this.getLength() <= 1) + this.$detectNewLine(text); + + return this.insertMergedLines(position, this.$split(text)); + }; + this.insertInLine = function(position, text) { + var start = this.clippedPos(position.row, position.column); + var end = this.pos(position.row, position.column + text.length); + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: [text] + }, true); + + return this.clonePos(end); + }; + + this.clippedPos = function(row, column) { + var length = this.getLength(); + if (row === undefined) { + row = length; + } else if (row < 0) { + row = 0; + } else if (row >= length) { + row = length - 1; + column = undefined; + } + var line = this.getLine(row); + if (column == undefined) + column = line.length; + column = Math.min(Math.max(column, 0), line.length); + return {row: row, column: column}; + }; + + this.clonePos = function(pos) { + return {row: pos.row, column: pos.column}; + }; + + this.pos = function(row, column) { + return {row: row, column: column}; + }; + + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length - 1).length; + } else { + position.row = Math.max(0, position.row); + position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length); + } + return position; + }; + this.insertFullLines = function(row, lines) { + row = Math.min(Math.max(row, 0), this.getLength()); + var column = 0; + if (row < this.getLength()) { + lines = lines.concat([""]); + column = 0; + } else { + lines = [""].concat(lines); + row--; + column = this.$lines[row].length; + } + this.insertMergedLines({row: row, column: column}, lines); + }; + this.insertMergedLines = function(position, lines) { + var start = this.clippedPos(position.row, position.column); + var end = { + row: start.row + lines.length - 1, + column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length + }; + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: lines + }); + + return this.clonePos(end); + }; + this.remove = function(range) { + var start = this.clippedPos(range.start.row, range.start.column); + var end = this.clippedPos(range.end.row, range.end.column); + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }); + return this.clonePos(start); + }; + this.removeInLine = function(row, startColumn, endColumn) { + var start = this.clippedPos(row, startColumn); + var end = this.clippedPos(row, endColumn); + + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }, true); + + return this.clonePos(start); + }; + this.removeFullLines = function(firstRow, lastRow) { + firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1); + lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1); + var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0; + var deleteLastNewLine = lastRow < this.getLength() - 1; + var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow ); + var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 ); + var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow ); + var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); + var range = new Range(startRow, startCol, endRow, endCol); + var deletedLines = this.$lines.slice(firstRow, lastRow + 1); + + this.applyDelta({ + start: range.start, + end: range.end, + action: "remove", + lines: this.getLinesForRange(range) + }); + return deletedLines; + }; + this.removeNewLine = function(row) { + if (row < this.getLength() - 1 && row >= 0) { + this.applyDelta({ + start: this.pos(row, this.getLine(row).length), + end: this.pos(row + 1, 0), + action: "remove", + lines: ["", ""] + }); + } + }; + this.replace = function(range, text) { + if (!(range instanceof Range)) + range = Range.fromPoints(range.start, range.end); + if (text.length === 0 && range.isEmpty()) + return range.start; + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + var end; + if (text) { + end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + this.revertDelta(deltas[i]); + } + }; + this.applyDelta = function(delta, doNotValidate) { + var isInsert = delta.action == "insert"; + if (isInsert ? delta.lines.length <= 1 && !delta.lines[0] + : !Range.comparePoints(delta.start, delta.end)) { + return; + } + + if (isInsert && delta.lines.length > 20000) + this.$splitAndapplyLargeDelta(delta, 20000); + applyDelta(this.$lines, delta, doNotValidate); + this._signal("change", delta); + }; + + this.$splitAndapplyLargeDelta = function(delta, MAX) { + var lines = delta.lines; + var l = lines.length; + var row = delta.start.row; + var column = delta.start.column; + var from = 0, to = 0; + do { + from = to; + to += MAX - 1; + var chunk = lines.slice(from, to); + if (to > l) { + delta.lines = chunk; + delta.start.row = row + from; + delta.start.column = column; + break; + } + chunk.push(""); + this.applyDelta({ + start: this.pos(row + from, column), + end: this.pos(row + to, column = 0), + action: delta.action, + lines: chunk + }, true); + } while(true); + }; + this.revertDelta = function(delta) { + this.applyDelta({ + start: this.clonePos(delta.start), + end: this.clonePos(delta.end), + action: (delta.action == "insert" ? "remove" : "insert"), + lines: delta.lines.slice() + }); + }; + this.indexToPosition = function(index, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + for (var i = startRow || 0, l = lines.length; i < l; i++) { + index -= lines[i].length + newlineLength; + if (index < 0) + return {row: i, column: index + lines[i].length + newlineLength}; + } + return {row: l-1, column: lines[l-1].length}; + }; + this.positionToIndex = function(pos, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + var index = 0; + var row = Math.min(pos.row, lines.length); + for (var i = startRow || 0; i < row; ++i) + index += lines[i].length + newlineLength; + + return index + pos.column; + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var Document = require("../document").Document; +var lang = require("../lib/lang"); + +var Mirror = exports.Mirror = function(sender) { + this.sender = sender; + var doc = this.doc = new Document(""); + + var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); + + var _self = this; + sender.on("change", function(e) { + var data = e.data; + if (data[0].start) { + doc.applyDeltas(data); + } else { + for (var i = 0; i < data.length; i += 2) { + if (Array.isArray(data[i+1])) { + var d = {action: "insert", start: data[i], lines: data[i+1]}; + } else { + var d = {action: "remove", start: data[i], end: data[i+1]}; + } + doc.applyDelta(d, true); + } + } + if (_self.$timeout) + return deferredUpdate.schedule(_self.$timeout); + _self.onUpdate(); + }); +}; + +(function() { + + this.$timeout = 500; + + this.setTimeout = function(timeout) { + this.$timeout = timeout; + }; + + this.setValue = function(value) { + this.doc.setValue(value); + this.deferredUpdate.schedule(this.$timeout); + }; + + this.getValue = function(callbackId) { + this.sender.callback(this.doc.getValue(), callbackId); + }; + + this.onUpdate = function() { + }; + + this.isPending = function() { + return this.deferredUpdate.isPending(); + }; + +}).call(Mirror.prototype); + +}); + +define("ace/mode/css/csslint",["require","exports","module"], function(require, exports, module) { +var parserlib = {}; +(function(){ +function EventTarget(){ + this._listeners = {}; +} + +EventTarget.prototype = { + constructor: EventTarget, + addListener: function(type, listener){ + if (!this._listeners[type]){ + this._listeners[type] = []; + } + + this._listeners[type].push(listener); + }, + fire: function(event){ + if (typeof event == "string"){ + event = { type: event }; + } + if (typeof event.target != "undefined"){ + event.target = this; + } + + if (typeof event.type == "undefined"){ + throw new Error("Event object missing 'type' property."); + } + + if (this._listeners[event.type]){ + var listeners = this._listeners[event.type].concat(); + for (var i=0, len=listeners.length; i < len; i++){ + listeners[i].call(this, event); + } + } + }, + removeListener: function(type, listener){ + if (this._listeners[type]){ + var listeners = this._listeners[type]; + for (var i=0, len=listeners.length; i < len; i++){ + if (listeners[i] === listener){ + listeners.splice(i, 1); + break; + } + } + + + } + } +}; +function StringReader(text){ + this._input = text.replace(/\n\r?/g, "\n"); + this._line = 1; + this._col = 1; + this._cursor = 0; +} + +StringReader.prototype = { + constructor: StringReader, + getCol: function(){ + return this._col; + }, + getLine: function(){ + return this._line ; + }, + eof: function(){ + return (this._cursor == this._input.length); + }, + peek: function(count){ + var c = null; + count = (typeof count == "undefined" ? 1 : count); + if (this._cursor < this._input.length){ + c = this._input.charAt(this._cursor + count - 1); + } + + return c; + }, + read: function(){ + var c = null; + if (this._cursor < this._input.length){ + if (this._input.charAt(this._cursor) == "\n"){ + this._line++; + this._col=1; + } else { + this._col++; + } + c = this._input.charAt(this._cursor++); + } + + return c; + }, + mark: function(){ + this._bookmark = { + cursor: this._cursor, + line: this._line, + col: this._col + }; + }, + + reset: function(){ + if (this._bookmark){ + this._cursor = this._bookmark.cursor; + this._line = this._bookmark.line; + this._col = this._bookmark.col; + delete this._bookmark; + } + }, + readTo: function(pattern){ + + var buffer = "", + c; + while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) != buffer.length - pattern.length){ + c = this.read(); + if (c){ + buffer += c; + } else { + throw new Error("Expected \"" + pattern + "\" at line " + this._line + ", col " + this._col + "."); + } + } + + return buffer; + + }, + readWhile: function(filter){ + + var buffer = "", + c = this.read(); + + while(c !== null && filter(c)){ + buffer += c; + c = this.read(); + } + + return buffer; + + }, + readMatch: function(matcher){ + + var source = this._input.substring(this._cursor), + value = null; + if (typeof matcher == "string"){ + if (source.indexOf(matcher) === 0){ + value = this.readCount(matcher.length); + } + } else if (matcher instanceof RegExp){ + if (matcher.test(source)){ + value = this.readCount(RegExp.lastMatch.length); + } + } + + return value; + }, + readCount: function(count){ + var buffer = ""; + + while(count--){ + buffer += this.read(); + } + + return buffer; + } + +}; +function SyntaxError(message, line, col){ + this.col = col; + this.line = line; + this.message = message; + +} +SyntaxError.prototype = new Error(); +function SyntaxUnit(text, line, col, type){ + this.col = col; + this.line = line; + this.text = text; + this.type = type; +} +SyntaxUnit.fromToken = function(token){ + return new SyntaxUnit(token.value, token.startLine, token.startCol); +}; + +SyntaxUnit.prototype = { + constructor: SyntaxUnit, + valueOf: function(){ + return this.text; + }, + toString: function(){ + return this.text; + } + +}; +function TokenStreamBase(input, tokenData){ + this._reader = input ? new StringReader(input.toString()) : null; + this._token = null; + this._tokenData = tokenData; + this._lt = []; + this._ltIndex = 0; + + this._ltIndexCache = []; +} +TokenStreamBase.createTokenData = function(tokens){ + + var nameMap = [], + typeMap = {}, + tokenData = tokens.concat([]), + i = 0, + len = tokenData.length+1; + + tokenData.UNKNOWN = -1; + tokenData.unshift({name:"EOF"}); + + for (; i < len; i++){ + nameMap.push(tokenData[i].name); + tokenData[tokenData[i].name] = i; + if (tokenData[i].text){ + typeMap[tokenData[i].text] = i; + } + } + + tokenData.name = function(tt){ + return nameMap[tt]; + }; + + tokenData.type = function(c){ + return typeMap[c]; + }; + + return tokenData; +}; + +TokenStreamBase.prototype = { + constructor: TokenStreamBase, + match: function(tokenTypes, channel){ + if (!(tokenTypes instanceof Array)){ + tokenTypes = [tokenTypes]; + } + + var tt = this.get(channel), + i = 0, + len = tokenTypes.length; + + while(i < len){ + if (tt == tokenTypes[i++]){ + return true; + } + } + this.unget(); + return false; + }, + mustMatch: function(tokenTypes, channel){ + + var token; + if (!(tokenTypes instanceof Array)){ + tokenTypes = [tokenTypes]; + } + + if (!this.match.apply(this, arguments)){ + token = this.LT(1); + throw new SyntaxError("Expected " + this._tokenData[tokenTypes[0]].name + + " at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); + } + }, + advance: function(tokenTypes, channel){ + + while(this.LA(0) !== 0 && !this.match(tokenTypes, channel)){ + this.get(); + } + + return this.LA(0); + }, + get: function(channel){ + + var tokenInfo = this._tokenData, + reader = this._reader, + value, + i =0, + len = tokenInfo.length, + found = false, + token, + info; + if (this._lt.length && this._ltIndex >= 0 && this._ltIndex < this._lt.length){ + + i++; + this._token = this._lt[this._ltIndex++]; + info = tokenInfo[this._token.type]; + while((info.channel !== undefined && channel !== info.channel) && + this._ltIndex < this._lt.length){ + this._token = this._lt[this._ltIndex++]; + info = tokenInfo[this._token.type]; + i++; + } + if ((info.channel === undefined || channel === info.channel) && + this._ltIndex <= this._lt.length){ + this._ltIndexCache.push(i); + return this._token.type; + } + } + token = this._getToken(); + if (token.type > -1 && !tokenInfo[token.type].hide){ + token.channel = tokenInfo[token.type].channel; + this._token = token; + this._lt.push(token); + this._ltIndexCache.push(this._lt.length - this._ltIndex + i); + if (this._lt.length > 5){ + this._lt.shift(); + } + if (this._ltIndexCache.length > 5){ + this._ltIndexCache.shift(); + } + this._ltIndex = this._lt.length; + } + info = tokenInfo[token.type]; + if (info && + (info.hide || + (info.channel !== undefined && channel !== info.channel))){ + return this.get(channel); + } else { + return token.type; + } + }, + LA: function(index){ + var total = index, + tt; + if (index > 0){ + if (index > 5){ + throw new Error("Too much lookahead."); + } + while(total){ + tt = this.get(); + total--; + } + while(total < index){ + this.unget(); + total++; + } + } else if (index < 0){ + + if(this._lt[this._ltIndex+index]){ + tt = this._lt[this._ltIndex+index].type; + } else { + throw new Error("Too much lookbehind."); + } + + } else { + tt = this._token.type; + } + + return tt; + + }, + LT: function(index){ + this.LA(index); + return this._lt[this._ltIndex+index-1]; + }, + peek: function(){ + return this.LA(1); + }, + token: function(){ + return this._token; + }, + tokenName: function(tokenType){ + if (tokenType < 0 || tokenType > this._tokenData.length){ + return "UNKNOWN_TOKEN"; + } else { + return this._tokenData[tokenType].name; + } + }, + tokenType: function(tokenName){ + return this._tokenData[tokenName] || -1; + }, + unget: function(){ + if (this._ltIndexCache.length){ + this._ltIndex -= this._ltIndexCache.pop();//--; + this._token = this._lt[this._ltIndex - 1]; + } else { + throw new Error("Too much lookahead."); + } + } + +}; + + +parserlib.util = { +StringReader: StringReader, +SyntaxError : SyntaxError, +SyntaxUnit : SyntaxUnit, +EventTarget : EventTarget, +TokenStreamBase : TokenStreamBase +}; +})(); +(function(){ +var EventTarget = parserlib.util.EventTarget, +TokenStreamBase = parserlib.util.TokenStreamBase, +StringReader = parserlib.util.StringReader, +SyntaxError = parserlib.util.SyntaxError, +SyntaxUnit = parserlib.util.SyntaxUnit; + +var Colors = { + aliceblue :"#f0f8ff", + antiquewhite :"#faebd7", + aqua :"#00ffff", + aquamarine :"#7fffd4", + azure :"#f0ffff", + beige :"#f5f5dc", + bisque :"#ffe4c4", + black :"#000000", + blanchedalmond :"#ffebcd", + blue :"#0000ff", + blueviolet :"#8a2be2", + brown :"#a52a2a", + burlywood :"#deb887", + cadetblue :"#5f9ea0", + chartreuse :"#7fff00", + chocolate :"#d2691e", + coral :"#ff7f50", + cornflowerblue :"#6495ed", + cornsilk :"#fff8dc", + crimson :"#dc143c", + cyan :"#00ffff", + darkblue :"#00008b", + darkcyan :"#008b8b", + darkgoldenrod :"#b8860b", + darkgray :"#a9a9a9", + darkgrey :"#a9a9a9", + darkgreen :"#006400", + darkkhaki :"#bdb76b", + darkmagenta :"#8b008b", + darkolivegreen :"#556b2f", + darkorange :"#ff8c00", + darkorchid :"#9932cc", + darkred :"#8b0000", + darksalmon :"#e9967a", + darkseagreen :"#8fbc8f", + darkslateblue :"#483d8b", + darkslategray :"#2f4f4f", + darkslategrey :"#2f4f4f", + darkturquoise :"#00ced1", + darkviolet :"#9400d3", + deeppink :"#ff1493", + deepskyblue :"#00bfff", + dimgray :"#696969", + dimgrey :"#696969", + dodgerblue :"#1e90ff", + firebrick :"#b22222", + floralwhite :"#fffaf0", + forestgreen :"#228b22", + fuchsia :"#ff00ff", + gainsboro :"#dcdcdc", + ghostwhite :"#f8f8ff", + gold :"#ffd700", + goldenrod :"#daa520", + gray :"#808080", + grey :"#808080", + green :"#008000", + greenyellow :"#adff2f", + honeydew :"#f0fff0", + hotpink :"#ff69b4", + indianred :"#cd5c5c", + indigo :"#4b0082", + ivory :"#fffff0", + khaki :"#f0e68c", + lavender :"#e6e6fa", + lavenderblush :"#fff0f5", + lawngreen :"#7cfc00", + lemonchiffon :"#fffacd", + lightblue :"#add8e6", + lightcoral :"#f08080", + lightcyan :"#e0ffff", + lightgoldenrodyellow :"#fafad2", + lightgray :"#d3d3d3", + lightgrey :"#d3d3d3", + lightgreen :"#90ee90", + lightpink :"#ffb6c1", + lightsalmon :"#ffa07a", + lightseagreen :"#20b2aa", + lightskyblue :"#87cefa", + lightslategray :"#778899", + lightslategrey :"#778899", + lightsteelblue :"#b0c4de", + lightyellow :"#ffffe0", + lime :"#00ff00", + limegreen :"#32cd32", + linen :"#faf0e6", + magenta :"#ff00ff", + maroon :"#800000", + mediumaquamarine:"#66cdaa", + mediumblue :"#0000cd", + mediumorchid :"#ba55d3", + mediumpurple :"#9370d8", + mediumseagreen :"#3cb371", + mediumslateblue :"#7b68ee", + mediumspringgreen :"#00fa9a", + mediumturquoise :"#48d1cc", + mediumvioletred :"#c71585", + midnightblue :"#191970", + mintcream :"#f5fffa", + mistyrose :"#ffe4e1", + moccasin :"#ffe4b5", + navajowhite :"#ffdead", + navy :"#000080", + oldlace :"#fdf5e6", + olive :"#808000", + olivedrab :"#6b8e23", + orange :"#ffa500", + orangered :"#ff4500", + orchid :"#da70d6", + palegoldenrod :"#eee8aa", + palegreen :"#98fb98", + paleturquoise :"#afeeee", + palevioletred :"#d87093", + papayawhip :"#ffefd5", + peachpuff :"#ffdab9", + peru :"#cd853f", + pink :"#ffc0cb", + plum :"#dda0dd", + powderblue :"#b0e0e6", + purple :"#800080", + red :"#ff0000", + rosybrown :"#bc8f8f", + royalblue :"#4169e1", + saddlebrown :"#8b4513", + salmon :"#fa8072", + sandybrown :"#f4a460", + seagreen :"#2e8b57", + seashell :"#fff5ee", + sienna :"#a0522d", + silver :"#c0c0c0", + skyblue :"#87ceeb", + slateblue :"#6a5acd", + slategray :"#708090", + slategrey :"#708090", + snow :"#fffafa", + springgreen :"#00ff7f", + steelblue :"#4682b4", + tan :"#d2b48c", + teal :"#008080", + thistle :"#d8bfd8", + tomato :"#ff6347", + turquoise :"#40e0d0", + violet :"#ee82ee", + wheat :"#f5deb3", + white :"#ffffff", + whitesmoke :"#f5f5f5", + yellow :"#ffff00", + yellowgreen :"#9acd32", + activeBorder :"Active window border.", + activecaption :"Active window caption.", + appworkspace :"Background color of multiple document interface.", + background :"Desktop background.", + buttonface :"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.", + buttonhighlight :"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.", + buttonshadow :"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.", + buttontext :"Text on push buttons.", + captiontext :"Text in caption, size box, and scrollbar arrow box.", + graytext :"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.", + greytext :"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.", + highlight :"Item(s) selected in a control.", + highlighttext :"Text of item(s) selected in a control.", + inactiveborder :"Inactive window border.", + inactivecaption :"Inactive window caption.", + inactivecaptiontext :"Color of text in an inactive caption.", + infobackground :"Background color for tooltip controls.", + infotext :"Text color for tooltip controls.", + menu :"Menu background.", + menutext :"Text in menus.", + scrollbar :"Scroll bar gray area.", + threeddarkshadow :"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedface :"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedhighlight :"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedlightshadow :"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedshadow :"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + window :"Window background.", + windowframe :"Window frame.", + windowtext :"Text in windows." +}; +function Combinator(text, line, col){ + + SyntaxUnit.call(this, text, line, col, Parser.COMBINATOR_TYPE); + this.type = "unknown"; + if (/^\s+$/.test(text)){ + this.type = "descendant"; + } else if (text == ">"){ + this.type = "child"; + } else if (text == "+"){ + this.type = "adjacent-sibling"; + } else if (text == "~"){ + this.type = "sibling"; + } + +} + +Combinator.prototype = new SyntaxUnit(); +Combinator.prototype.constructor = Combinator; +function MediaFeature(name, value){ + + SyntaxUnit.call(this, "(" + name + (value !== null ? ":" + value : "") + ")", name.startLine, name.startCol, Parser.MEDIA_FEATURE_TYPE); + this.name = name; + this.value = value; +} + +MediaFeature.prototype = new SyntaxUnit(); +MediaFeature.prototype.constructor = MediaFeature; +function MediaQuery(modifier, mediaType, features, line, col){ + + SyntaxUnit.call(this, (modifier ? modifier + " ": "") + (mediaType ? mediaType : "") + (mediaType && features.length > 0 ? " and " : "") + features.join(" and "), line, col, Parser.MEDIA_QUERY_TYPE); + this.modifier = modifier; + this.mediaType = mediaType; + this.features = features; + +} + +MediaQuery.prototype = new SyntaxUnit(); +MediaQuery.prototype.constructor = MediaQuery; +function Parser(options){ + EventTarget.call(this); + + + this.options = options || {}; + + this._tokenStream = null; +} +Parser.DEFAULT_TYPE = 0; +Parser.COMBINATOR_TYPE = 1; +Parser.MEDIA_FEATURE_TYPE = 2; +Parser.MEDIA_QUERY_TYPE = 3; +Parser.PROPERTY_NAME_TYPE = 4; +Parser.PROPERTY_VALUE_TYPE = 5; +Parser.PROPERTY_VALUE_PART_TYPE = 6; +Parser.SELECTOR_TYPE = 7; +Parser.SELECTOR_PART_TYPE = 8; +Parser.SELECTOR_SUB_PART_TYPE = 9; + +Parser.prototype = function(){ + + var proto = new EventTarget(), //new prototype + prop, + additions = { + constructor: Parser, + DEFAULT_TYPE : 0, + COMBINATOR_TYPE : 1, + MEDIA_FEATURE_TYPE : 2, + MEDIA_QUERY_TYPE : 3, + PROPERTY_NAME_TYPE : 4, + PROPERTY_VALUE_TYPE : 5, + PROPERTY_VALUE_PART_TYPE : 6, + SELECTOR_TYPE : 7, + SELECTOR_PART_TYPE : 8, + SELECTOR_SUB_PART_TYPE : 9, + + _stylesheet: function(){ + + var tokenStream = this._tokenStream, + charset = null, + count, + token, + tt; + + this.fire("startstylesheet"); + this._charset(); + + this._skipCruft(); + while (tokenStream.peek() == Tokens.IMPORT_SYM){ + this._import(); + this._skipCruft(); + } + while (tokenStream.peek() == Tokens.NAMESPACE_SYM){ + this._namespace(); + this._skipCruft(); + } + tt = tokenStream.peek(); + while(tt > Tokens.EOF){ + + try { + + switch(tt){ + case Tokens.MEDIA_SYM: + this._media(); + this._skipCruft(); + break; + case Tokens.PAGE_SYM: + this._page(); + this._skipCruft(); + break; + case Tokens.FONT_FACE_SYM: + this._font_face(); + this._skipCruft(); + break; + case Tokens.KEYFRAMES_SYM: + this._keyframes(); + this._skipCruft(); + break; + case Tokens.VIEWPORT_SYM: + this._viewport(); + this._skipCruft(); + break; + case Tokens.UNKNOWN_SYM: //unknown @ rule + tokenStream.get(); + if (!this.options.strict){ + this.fire({ + type: "error", + error: null, + message: "Unknown @ rule: " + tokenStream.LT(0).value + ".", + line: tokenStream.LT(0).startLine, + col: tokenStream.LT(0).startCol + }); + count=0; + while (tokenStream.advance([Tokens.LBRACE, Tokens.RBRACE]) == Tokens.LBRACE){ + count++; //keep track of nesting depth + } + + while(count){ + tokenStream.advance([Tokens.RBRACE]); + count--; + } + + } else { + throw new SyntaxError("Unknown @ rule.", tokenStream.LT(0).startLine, tokenStream.LT(0).startCol); + } + break; + case Tokens.S: + this._readWhitespace(); + break; + default: + if(!this._ruleset()){ + switch(tt){ + case Tokens.CHARSET_SYM: + token = tokenStream.LT(1); + this._charset(false); + throw new SyntaxError("@charset not allowed here.", token.startLine, token.startCol); + case Tokens.IMPORT_SYM: + token = tokenStream.LT(1); + this._import(false); + throw new SyntaxError("@import not allowed here.", token.startLine, token.startCol); + case Tokens.NAMESPACE_SYM: + token = tokenStream.LT(1); + this._namespace(false); + throw new SyntaxError("@namespace not allowed here.", token.startLine, token.startCol); + default: + tokenStream.get(); //get the last token + this._unexpectedToken(tokenStream.token()); + } + + } + } + } catch(ex) { + if (ex instanceof SyntaxError && !this.options.strict){ + this.fire({ + type: "error", + error: ex, + message: ex.message, + line: ex.line, + col: ex.col + }); + } else { + throw ex; + } + } + + tt = tokenStream.peek(); + } + + if (tt != Tokens.EOF){ + this._unexpectedToken(tokenStream.token()); + } + + this.fire("endstylesheet"); + }, + + _charset: function(emit){ + var tokenStream = this._tokenStream, + charset, + token, + line, + col; + + if (tokenStream.match(Tokens.CHARSET_SYM)){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.STRING); + + token = tokenStream.token(); + charset = token.value; + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.SEMICOLON); + + if (emit !== false){ + this.fire({ + type: "charset", + charset:charset, + line: line, + col: col + }); + } + } + }, + + _import: function(emit){ + + var tokenStream = this._tokenStream, + tt, + uri, + importToken, + mediaList = []; + tokenStream.mustMatch(Tokens.IMPORT_SYM); + importToken = tokenStream.token(); + this._readWhitespace(); + + tokenStream.mustMatch([Tokens.STRING, Tokens.URI]); + uri = tokenStream.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/, "$1"); + + this._readWhitespace(); + + mediaList = this._media_query_list(); + tokenStream.mustMatch(Tokens.SEMICOLON); + this._readWhitespace(); + + if (emit !== false){ + this.fire({ + type: "import", + uri: uri, + media: mediaList, + line: importToken.startLine, + col: importToken.startCol + }); + } + + }, + + _namespace: function(emit){ + + var tokenStream = this._tokenStream, + line, + col, + prefix, + uri; + tokenStream.mustMatch(Tokens.NAMESPACE_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + this._readWhitespace(); + if (tokenStream.match(Tokens.IDENT)){ + prefix = tokenStream.token().value; + this._readWhitespace(); + } + + tokenStream.mustMatch([Tokens.STRING, Tokens.URI]); + uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1"); + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.SEMICOLON); + this._readWhitespace(); + + if (emit !== false){ + this.fire({ + type: "namespace", + prefix: prefix, + uri: uri, + line: line, + col: col + }); + } + + }, + + _media: function(){ + var tokenStream = this._tokenStream, + line, + col, + mediaList;// = []; + tokenStream.mustMatch(Tokens.MEDIA_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + mediaList = this._media_query_list(); + + tokenStream.mustMatch(Tokens.LBRACE); + this._readWhitespace(); + + this.fire({ + type: "startmedia", + media: mediaList, + line: line, + col: col + }); + + while(true) { + if (tokenStream.peek() == Tokens.PAGE_SYM){ + this._page(); + } else if (tokenStream.peek() == Tokens.FONT_FACE_SYM){ + this._font_face(); + } else if (tokenStream.peek() == Tokens.VIEWPORT_SYM){ + this._viewport(); + } else if (!this._ruleset()){ + break; + } + } + + tokenStream.mustMatch(Tokens.RBRACE); + this._readWhitespace(); + + this.fire({ + type: "endmedia", + media: mediaList, + line: line, + col: col + }); + }, + _media_query_list: function(){ + var tokenStream = this._tokenStream, + mediaList = []; + + + this._readWhitespace(); + + if (tokenStream.peek() == Tokens.IDENT || tokenStream.peek() == Tokens.LPAREN){ + mediaList.push(this._media_query()); + } + + while(tokenStream.match(Tokens.COMMA)){ + this._readWhitespace(); + mediaList.push(this._media_query()); + } + + return mediaList; + }, + _media_query: function(){ + var tokenStream = this._tokenStream, + type = null, + ident = null, + token = null, + expressions = []; + + if (tokenStream.match(Tokens.IDENT)){ + ident = tokenStream.token().value.toLowerCase(); + if (ident != "only" && ident != "not"){ + tokenStream.unget(); + ident = null; + } else { + token = tokenStream.token(); + } + } + + this._readWhitespace(); + + if (tokenStream.peek() == Tokens.IDENT){ + type = this._media_type(); + if (token === null){ + token = tokenStream.token(); + } + } else if (tokenStream.peek() == Tokens.LPAREN){ + if (token === null){ + token = tokenStream.LT(1); + } + expressions.push(this._media_expression()); + } + + if (type === null && expressions.length === 0){ + return null; + } else { + this._readWhitespace(); + while (tokenStream.match(Tokens.IDENT)){ + if (tokenStream.token().value.toLowerCase() != "and"){ + this._unexpectedToken(tokenStream.token()); + } + + this._readWhitespace(); + expressions.push(this._media_expression()); + } + } + + return new MediaQuery(ident, type, expressions, token.startLine, token.startCol); + }, + _media_type: function(){ + return this._media_feature(); + }, + _media_expression: function(){ + var tokenStream = this._tokenStream, + feature = null, + token, + expression = null; + + tokenStream.mustMatch(Tokens.LPAREN); + this._readWhitespace(); + + feature = this._media_feature(); + this._readWhitespace(); + + if (tokenStream.match(Tokens.COLON)){ + this._readWhitespace(); + token = tokenStream.LT(1); + expression = this._expression(); + } + + tokenStream.mustMatch(Tokens.RPAREN); + this._readWhitespace(); + + return new MediaFeature(feature, (expression ? new SyntaxUnit(expression, token.startLine, token.startCol) : null)); + }, + _media_feature: function(){ + var tokenStream = this._tokenStream; + + tokenStream.mustMatch(Tokens.IDENT); + + return SyntaxUnit.fromToken(tokenStream.token()); + }, + _page: function(){ + var tokenStream = this._tokenStream, + line, + col, + identifier = null, + pseudoPage = null; + tokenStream.mustMatch(Tokens.PAGE_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + if (tokenStream.match(Tokens.IDENT)){ + identifier = tokenStream.token().value; + if (identifier.toLowerCase() === "auto"){ + this._unexpectedToken(tokenStream.token()); + } + } + if (tokenStream.peek() == Tokens.COLON){ + pseudoPage = this._pseudo_page(); + } + + this._readWhitespace(); + + this.fire({ + type: "startpage", + id: identifier, + pseudo: pseudoPage, + line: line, + col: col + }); + + this._readDeclarations(true, true); + + this.fire({ + type: "endpage", + id: identifier, + pseudo: pseudoPage, + line: line, + col: col + }); + + }, + _margin: function(){ + var tokenStream = this._tokenStream, + line, + col, + marginSym = this._margin_sym(); + + if (marginSym){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this.fire({ + type: "startpagemargin", + margin: marginSym, + line: line, + col: col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endpagemargin", + margin: marginSym, + line: line, + col: col + }); + return true; + } else { + return false; + } + }, + _margin_sym: function(){ + + var tokenStream = this._tokenStream; + + if(tokenStream.match([Tokens.TOPLEFTCORNER_SYM, Tokens.TOPLEFT_SYM, + Tokens.TOPCENTER_SYM, Tokens.TOPRIGHT_SYM, Tokens.TOPRIGHTCORNER_SYM, + Tokens.BOTTOMLEFTCORNER_SYM, Tokens.BOTTOMLEFT_SYM, + Tokens.BOTTOMCENTER_SYM, Tokens.BOTTOMRIGHT_SYM, + Tokens.BOTTOMRIGHTCORNER_SYM, Tokens.LEFTTOP_SYM, + Tokens.LEFTMIDDLE_SYM, Tokens.LEFTBOTTOM_SYM, Tokens.RIGHTTOP_SYM, + Tokens.RIGHTMIDDLE_SYM, Tokens.RIGHTBOTTOM_SYM])) + { + return SyntaxUnit.fromToken(tokenStream.token()); + } else { + return null; + } + + }, + + _pseudo_page: function(){ + + var tokenStream = this._tokenStream; + + tokenStream.mustMatch(Tokens.COLON); + tokenStream.mustMatch(Tokens.IDENT); + + return tokenStream.token().value; + }, + + _font_face: function(){ + var tokenStream = this._tokenStream, + line, + col; + tokenStream.mustMatch(Tokens.FONT_FACE_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + this.fire({ + type: "startfontface", + line: line, + col: col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endfontface", + line: line, + col: col + }); + }, + + _viewport: function(){ + var tokenStream = this._tokenStream, + line, + col; + + tokenStream.mustMatch(Tokens.VIEWPORT_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + this.fire({ + type: "startviewport", + line: line, + col: col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endviewport", + line: line, + col: col + }); + + }, + + _operator: function(inFunction){ + + var tokenStream = this._tokenStream, + token = null; + + if (tokenStream.match([Tokens.SLASH, Tokens.COMMA]) || + (inFunction && tokenStream.match([Tokens.PLUS, Tokens.STAR, Tokens.MINUS]))){ + token = tokenStream.token(); + this._readWhitespace(); + } + return token ? PropertyValuePart.fromToken(token) : null; + + }, + + _combinator: function(){ + + var tokenStream = this._tokenStream, + value = null, + token; + + if(tokenStream.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE])){ + token = tokenStream.token(); + value = new Combinator(token.value, token.startLine, token.startCol); + this._readWhitespace(); + } + + return value; + }, + + _unary_operator: function(){ + + var tokenStream = this._tokenStream; + + if (tokenStream.match([Tokens.MINUS, Tokens.PLUS])){ + return tokenStream.token().value; + } else { + return null; + } + }, + + _property: function(){ + + var tokenStream = this._tokenStream, + value = null, + hack = null, + tokenValue, + token, + line, + col; + if (tokenStream.peek() == Tokens.STAR && this.options.starHack){ + tokenStream.get(); + token = tokenStream.token(); + hack = token.value; + line = token.startLine; + col = token.startCol; + } + + if(tokenStream.match(Tokens.IDENT)){ + token = tokenStream.token(); + tokenValue = token.value; + if (tokenValue.charAt(0) == "_" && this.options.underscoreHack){ + hack = "_"; + tokenValue = tokenValue.substring(1); + } + + value = new PropertyName(tokenValue, hack, (line||token.startLine), (col||token.startCol)); + this._readWhitespace(); + } + + return value; + }, + _ruleset: function(){ + + var tokenStream = this._tokenStream, + tt, + selectors; + try { + selectors = this._selectors_group(); + } catch (ex){ + if (ex instanceof SyntaxError && !this.options.strict){ + this.fire({ + type: "error", + error: ex, + message: ex.message, + line: ex.line, + col: ex.col + }); + tt = tokenStream.advance([Tokens.RBRACE]); + if (tt == Tokens.RBRACE){ + } else { + throw ex; + } + + } else { + throw ex; + } + return true; + } + if (selectors){ + + this.fire({ + type: "startrule", + selectors: selectors, + line: selectors[0].line, + col: selectors[0].col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endrule", + selectors: selectors, + line: selectors[0].line, + col: selectors[0].col + }); + + } + + return selectors; + + }, + _selectors_group: function(){ + var tokenStream = this._tokenStream, + selectors = [], + selector; + + selector = this._selector(); + if (selector !== null){ + + selectors.push(selector); + while(tokenStream.match(Tokens.COMMA)){ + this._readWhitespace(); + selector = this._selector(); + if (selector !== null){ + selectors.push(selector); + } else { + this._unexpectedToken(tokenStream.LT(1)); + } + } + } + + return selectors.length ? selectors : null; + }, + _selector: function(){ + + var tokenStream = this._tokenStream, + selector = [], + nextSelector = null, + combinator = null, + ws = null; + nextSelector = this._simple_selector_sequence(); + if (nextSelector === null){ + return null; + } + + selector.push(nextSelector); + + do { + combinator = this._combinator(); + + if (combinator !== null){ + selector.push(combinator); + nextSelector = this._simple_selector_sequence(); + if (nextSelector === null){ + this._unexpectedToken(tokenStream.LT(1)); + } else { + selector.push(nextSelector); + } + } else { + if (this._readWhitespace()){ + ws = new Combinator(tokenStream.token().value, tokenStream.token().startLine, tokenStream.token().startCol); + combinator = this._combinator(); + nextSelector = this._simple_selector_sequence(); + if (nextSelector === null){ + if (combinator !== null){ + this._unexpectedToken(tokenStream.LT(1)); + } + } else { + + if (combinator !== null){ + selector.push(combinator); + } else { + selector.push(ws); + } + + selector.push(nextSelector); + } + } else { + break; + } + + } + } while(true); + + return new Selector(selector, selector[0].line, selector[0].col); + }, + _simple_selector_sequence: function(){ + + var tokenStream = this._tokenStream, + elementName = null, + modifiers = [], + selectorText= "", + components = [ + function(){ + return tokenStream.match(Tokens.HASH) ? + new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) : + null; + }, + this._class, + this._attrib, + this._pseudo, + this._negation + ], + i = 0, + len = components.length, + component = null, + found = false, + line, + col; + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol; + + elementName = this._type_selector(); + if (!elementName){ + elementName = this._universal(); + } + + if (elementName !== null){ + selectorText += elementName; + } + + while(true){ + if (tokenStream.peek() === Tokens.S){ + break; + } + while(i < len && component === null){ + component = components[i++].call(this); + } + + if (component === null){ + if (selectorText === ""){ + return null; + } else { + break; + } + } else { + i = 0; + modifiers.push(component); + selectorText += component.toString(); + component = null; + } + } + + + return selectorText !== "" ? + new SelectorPart(elementName, modifiers, selectorText, line, col) : + null; + }, + _type_selector: function(){ + + var tokenStream = this._tokenStream, + ns = this._namespace_prefix(), + elementName = this._element_name(); + + if (!elementName){ + if (ns){ + tokenStream.unget(); + if (ns.length > 1){ + tokenStream.unget(); + } + } + + return null; + } else { + if (ns){ + elementName.text = ns + elementName.text; + elementName.col -= ns.length; + } + return elementName; + } + }, + _class: function(){ + + var tokenStream = this._tokenStream, + token; + + if (tokenStream.match(Tokens.DOT)){ + tokenStream.mustMatch(Tokens.IDENT); + token = tokenStream.token(); + return new SelectorSubPart("." + token.value, "class", token.startLine, token.startCol - 1); + } else { + return null; + } + + }, + _element_name: function(){ + + var tokenStream = this._tokenStream, + token; + + if (tokenStream.match(Tokens.IDENT)){ + token = tokenStream.token(); + return new SelectorSubPart(token.value, "elementName", token.startLine, token.startCol); + + } else { + return null; + } + }, + _namespace_prefix: function(){ + var tokenStream = this._tokenStream, + value = ""; + if (tokenStream.LA(1) === Tokens.PIPE || tokenStream.LA(2) === Tokens.PIPE){ + + if(tokenStream.match([Tokens.IDENT, Tokens.STAR])){ + value += tokenStream.token().value; + } + + tokenStream.mustMatch(Tokens.PIPE); + value += "|"; + + } + + return value.length ? value : null; + }, + _universal: function(){ + var tokenStream = this._tokenStream, + value = "", + ns; + + ns = this._namespace_prefix(); + if(ns){ + value += ns; + } + + if(tokenStream.match(Tokens.STAR)){ + value += "*"; + } + + return value.length ? value : null; + + }, + _attrib: function(){ + + var tokenStream = this._tokenStream, + value = null, + ns, + token; + + if (tokenStream.match(Tokens.LBRACKET)){ + token = tokenStream.token(); + value = token.value; + value += this._readWhitespace(); + + ns = this._namespace_prefix(); + + if (ns){ + value += ns; + } + + tokenStream.mustMatch(Tokens.IDENT); + value += tokenStream.token().value; + value += this._readWhitespace(); + + if(tokenStream.match([Tokens.PREFIXMATCH, Tokens.SUFFIXMATCH, Tokens.SUBSTRINGMATCH, + Tokens.EQUALS, Tokens.INCLUDES, Tokens.DASHMATCH])){ + + value += tokenStream.token().value; + value += this._readWhitespace(); + + tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]); + value += tokenStream.token().value; + value += this._readWhitespace(); + } + + tokenStream.mustMatch(Tokens.RBRACKET); + + return new SelectorSubPart(value + "]", "attribute", token.startLine, token.startCol); + } else { + return null; + } + }, + _pseudo: function(){ + + var tokenStream = this._tokenStream, + pseudo = null, + colons = ":", + line, + col; + + if (tokenStream.match(Tokens.COLON)){ + + if (tokenStream.match(Tokens.COLON)){ + colons += ":"; + } + + if (tokenStream.match(Tokens.IDENT)){ + pseudo = tokenStream.token().value; + line = tokenStream.token().startLine; + col = tokenStream.token().startCol - colons.length; + } else if (tokenStream.peek() == Tokens.FUNCTION){ + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol - colons.length; + pseudo = this._functional_pseudo(); + } + + if (pseudo){ + pseudo = new SelectorSubPart(colons + pseudo, "pseudo", line, col); + } + } + + return pseudo; + }, + _functional_pseudo: function(){ + + var tokenStream = this._tokenStream, + value = null; + + if(tokenStream.match(Tokens.FUNCTION)){ + value = tokenStream.token().value; + value += this._readWhitespace(); + value += this._expression(); + tokenStream.mustMatch(Tokens.RPAREN); + value += ")"; + } + + return value; + }, + _expression: function(){ + + var tokenStream = this._tokenStream, + value = ""; + + while(tokenStream.match([Tokens.PLUS, Tokens.MINUS, Tokens.DIMENSION, + Tokens.NUMBER, Tokens.STRING, Tokens.IDENT, Tokens.LENGTH, + Tokens.FREQ, Tokens.ANGLE, Tokens.TIME, + Tokens.RESOLUTION, Tokens.SLASH])){ + + value += tokenStream.token().value; + value += this._readWhitespace(); + } + + return value.length ? value : null; + + }, + _negation: function(){ + + var tokenStream = this._tokenStream, + line, + col, + value = "", + arg, + subpart = null; + + if (tokenStream.match(Tokens.NOT)){ + value = tokenStream.token().value; + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + value += this._readWhitespace(); + arg = this._negation_arg(); + value += arg; + value += this._readWhitespace(); + tokenStream.match(Tokens.RPAREN); + value += tokenStream.token().value; + + subpart = new SelectorSubPart(value, "not", line, col); + subpart.args.push(arg); + } + + return subpart; + }, + _negation_arg: function(){ + + var tokenStream = this._tokenStream, + args = [ + this._type_selector, + this._universal, + function(){ + return tokenStream.match(Tokens.HASH) ? + new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) : + null; + }, + this._class, + this._attrib, + this._pseudo + ], + arg = null, + i = 0, + len = args.length, + elementName, + line, + col, + part; + + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol; + + while(i < len && arg === null){ + + arg = args[i].call(this); + i++; + } + if (arg === null){ + this._unexpectedToken(tokenStream.LT(1)); + } + if (arg.type == "elementName"){ + part = new SelectorPart(arg, [], arg.toString(), line, col); + } else { + part = new SelectorPart(null, [arg], arg.toString(), line, col); + } + + return part; + }, + + _declaration: function(){ + + var tokenStream = this._tokenStream, + property = null, + expr = null, + prio = null, + error = null, + invalid = null, + propertyName= ""; + + property = this._property(); + if (property !== null){ + + tokenStream.mustMatch(Tokens.COLON); + this._readWhitespace(); + + expr = this._expr(); + if (!expr || expr.length === 0){ + this._unexpectedToken(tokenStream.LT(1)); + } + + prio = this._prio(); + propertyName = property.toString(); + if (this.options.starHack && property.hack == "*" || + this.options.underscoreHack && property.hack == "_") { + + propertyName = property.text; + } + + try { + this._validateProperty(propertyName, expr); + } catch (ex) { + invalid = ex; + } + + this.fire({ + type: "property", + property: property, + value: expr, + important: prio, + line: property.line, + col: property.col, + invalid: invalid + }); + + return true; + } else { + return false; + } + }, + + _prio: function(){ + + var tokenStream = this._tokenStream, + result = tokenStream.match(Tokens.IMPORTANT_SYM); + + this._readWhitespace(); + return result; + }, + + _expr: function(inFunction){ + + var tokenStream = this._tokenStream, + values = [], + value = null, + operator = null; + + value = this._term(inFunction); + if (value !== null){ + + values.push(value); + + do { + operator = this._operator(inFunction); + if (operator){ + values.push(operator); + } /*else { + values.push(new PropertyValue(valueParts, valueParts[0].line, valueParts[0].col)); + valueParts = []; + }*/ + + value = this._term(inFunction); + + if (value === null){ + break; + } else { + values.push(value); + } + } while(true); + } + + return values.length > 0 ? new PropertyValue(values, values[0].line, values[0].col) : null; + }, + + _term: function(inFunction){ + + var tokenStream = this._tokenStream, + unary = null, + value = null, + endChar = null, + token, + line, + col; + unary = this._unary_operator(); + if (unary !== null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + if (tokenStream.peek() == Tokens.IE_FUNCTION && this.options.ieFilters){ + + value = this._ie_function(); + if (unary === null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + } else if (inFunction && tokenStream.match([Tokens.LPAREN, Tokens.LBRACE, Tokens.LBRACKET])){ + + token = tokenStream.token(); + endChar = token.endChar; + value = token.value + this._expr(inFunction).text; + if (unary === null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + tokenStream.mustMatch(Tokens.type(endChar)); + value += endChar; + this._readWhitespace(); + } else if (tokenStream.match([Tokens.NUMBER, Tokens.PERCENTAGE, Tokens.LENGTH, + Tokens.ANGLE, Tokens.TIME, + Tokens.FREQ, Tokens.STRING, Tokens.IDENT, Tokens.URI, Tokens.UNICODE_RANGE])){ + + value = tokenStream.token().value; + if (unary === null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + this._readWhitespace(); + } else { + token = this._hexcolor(); + if (token === null){ + if (unary === null){ + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol; + } + if (value === null){ + if (tokenStream.LA(3) == Tokens.EQUALS && this.options.ieFilters){ + value = this._ie_function(); + } else { + value = this._function(); + } + } + + } else { + value = token.value; + if (unary === null){ + line = token.startLine; + col = token.startCol; + } + } + + } + + return value !== null ? + new PropertyValuePart(unary !== null ? unary + value : value, line, col) : + null; + + }, + + _function: function(){ + + var tokenStream = this._tokenStream, + functionText = null, + expr = null, + lt; + + if (tokenStream.match(Tokens.FUNCTION)){ + functionText = tokenStream.token().value; + this._readWhitespace(); + expr = this._expr(true); + functionText += expr; + if (this.options.ieFilters && tokenStream.peek() == Tokens.EQUALS){ + do { + + if (this._readWhitespace()){ + functionText += tokenStream.token().value; + } + if (tokenStream.LA(0) == Tokens.COMMA){ + functionText += tokenStream.token().value; + } + + tokenStream.match(Tokens.IDENT); + functionText += tokenStream.token().value; + + tokenStream.match(Tokens.EQUALS); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){ + tokenStream.get(); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + } + } while(tokenStream.match([Tokens.COMMA, Tokens.S])); + } + + tokenStream.match(Tokens.RPAREN); + functionText += ")"; + this._readWhitespace(); + } + + return functionText; + }, + + _ie_function: function(){ + + var tokenStream = this._tokenStream, + functionText = null, + expr = null, + lt; + if (tokenStream.match([Tokens.IE_FUNCTION, Tokens.FUNCTION])){ + functionText = tokenStream.token().value; + + do { + + if (this._readWhitespace()){ + functionText += tokenStream.token().value; + } + if (tokenStream.LA(0) == Tokens.COMMA){ + functionText += tokenStream.token().value; + } + + tokenStream.match(Tokens.IDENT); + functionText += tokenStream.token().value; + + tokenStream.match(Tokens.EQUALS); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){ + tokenStream.get(); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + } + } while(tokenStream.match([Tokens.COMMA, Tokens.S])); + + tokenStream.match(Tokens.RPAREN); + functionText += ")"; + this._readWhitespace(); + } + + return functionText; + }, + + _hexcolor: function(){ + + var tokenStream = this._tokenStream, + token = null, + color; + + if(tokenStream.match(Tokens.HASH)){ + + token = tokenStream.token(); + color = token.value; + if (!/#[a-f0-9]{3,6}/i.test(color)){ + throw new SyntaxError("Expected a hex color but found '" + color + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); + } + this._readWhitespace(); + } + + return token; + }, + + _keyframes: function(){ + var tokenStream = this._tokenStream, + token, + tt, + name, + prefix = ""; + + tokenStream.mustMatch(Tokens.KEYFRAMES_SYM); + token = tokenStream.token(); + if (/^@\-([^\-]+)\-/.test(token.value)) { + prefix = RegExp.$1; + } + + this._readWhitespace(); + name = this._keyframe_name(); + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.LBRACE); + + this.fire({ + type: "startkeyframes", + name: name, + prefix: prefix, + line: token.startLine, + col: token.startCol + }); + + this._readWhitespace(); + tt = tokenStream.peek(); + while(tt == Tokens.IDENT || tt == Tokens.PERCENTAGE) { + this._keyframe_rule(); + this._readWhitespace(); + tt = tokenStream.peek(); + } + + this.fire({ + type: "endkeyframes", + name: name, + prefix: prefix, + line: token.startLine, + col: token.startCol + }); + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.RBRACE); + + }, + + _keyframe_name: function(){ + var tokenStream = this._tokenStream, + token; + + tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]); + return SyntaxUnit.fromToken(tokenStream.token()); + }, + + _keyframe_rule: function(){ + var tokenStream = this._tokenStream, + token, + keyList = this._key_list(); + + this.fire({ + type: "startkeyframerule", + keys: keyList, + line: keyList[0].line, + col: keyList[0].col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endkeyframerule", + keys: keyList, + line: keyList[0].line, + col: keyList[0].col + }); + + }, + + _key_list: function(){ + var tokenStream = this._tokenStream, + token, + key, + keyList = []; + keyList.push(this._key()); + + this._readWhitespace(); + + while(tokenStream.match(Tokens.COMMA)){ + this._readWhitespace(); + keyList.push(this._key()); + this._readWhitespace(); + } + + return keyList; + }, + + _key: function(){ + + var tokenStream = this._tokenStream, + token; + + if (tokenStream.match(Tokens.PERCENTAGE)){ + return SyntaxUnit.fromToken(tokenStream.token()); + } else if (tokenStream.match(Tokens.IDENT)){ + token = tokenStream.token(); + + if (/from|to/i.test(token.value)){ + return SyntaxUnit.fromToken(token); + } + + tokenStream.unget(); + } + this._unexpectedToken(tokenStream.LT(1)); + }, + _skipCruft: function(){ + while(this._tokenStream.match([Tokens.S, Tokens.CDO, Tokens.CDC])){ + } + }, + _readDeclarations: function(checkStart, readMargins){ + var tokenStream = this._tokenStream, + tt; + + + this._readWhitespace(); + + if (checkStart){ + tokenStream.mustMatch(Tokens.LBRACE); + } + + this._readWhitespace(); + + try { + + while(true){ + + if (tokenStream.match(Tokens.SEMICOLON) || (readMargins && this._margin())){ + } else if (this._declaration()){ + if (!tokenStream.match(Tokens.SEMICOLON)){ + break; + } + } else { + break; + } + this._readWhitespace(); + } + + tokenStream.mustMatch(Tokens.RBRACE); + this._readWhitespace(); + + } catch (ex) { + if (ex instanceof SyntaxError && !this.options.strict){ + this.fire({ + type: "error", + error: ex, + message: ex.message, + line: ex.line, + col: ex.col + }); + tt = tokenStream.advance([Tokens.SEMICOLON, Tokens.RBRACE]); + if (tt == Tokens.SEMICOLON){ + this._readDeclarations(false, readMargins); + } else if (tt != Tokens.RBRACE){ + throw ex; + } + + } else { + throw ex; + } + } + + }, + _readWhitespace: function(){ + + var tokenStream = this._tokenStream, + ws = ""; + + while(tokenStream.match(Tokens.S)){ + ws += tokenStream.token().value; + } + + return ws; + }, + _unexpectedToken: function(token){ + throw new SyntaxError("Unexpected token '" + token.value + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); + }, + _verifyEnd: function(){ + if (this._tokenStream.LA(1) != Tokens.EOF){ + this._unexpectedToken(this._tokenStream.LT(1)); + } + }, + _validateProperty: function(property, value){ + Validation.validate(property, value); + }, + + parse: function(input){ + this._tokenStream = new TokenStream(input, Tokens); + this._stylesheet(); + }, + + parseStyleSheet: function(input){ + return this.parse(input); + }, + + parseMediaQuery: function(input){ + this._tokenStream = new TokenStream(input, Tokens); + var result = this._media_query(); + this._verifyEnd(); + return result; + }, + parsePropertyValue: function(input){ + + this._tokenStream = new TokenStream(input, Tokens); + this._readWhitespace(); + + var result = this._expr(); + this._readWhitespace(); + this._verifyEnd(); + return result; + }, + parseRule: function(input){ + this._tokenStream = new TokenStream(input, Tokens); + this._readWhitespace(); + + var result = this._ruleset(); + this._readWhitespace(); + this._verifyEnd(); + return result; + }, + parseSelector: function(input){ + + this._tokenStream = new TokenStream(input, Tokens); + this._readWhitespace(); + + var result = this._selector(); + this._readWhitespace(); + this._verifyEnd(); + return result; + }, + parseStyleAttribute: function(input){ + input += "}"; // for error recovery in _readDeclarations() + this._tokenStream = new TokenStream(input, Tokens); + this._readDeclarations(); + } + }; + for (prop in additions){ + if (additions.hasOwnProperty(prop)){ + proto[prop] = additions[prop]; + } + } + + return proto; +}(); +var Properties = { + "align-items" : "flex-start | flex-end | center | baseline | stretch", + "align-content" : "flex-start | flex-end | center | space-between | space-around | stretch", + "align-self" : "auto | flex-start | flex-end | center | baseline | stretch", + "-webkit-align-items" : "flex-start | flex-end | center | baseline | stretch", + "-webkit-align-content" : "flex-start | flex-end | center | space-between | space-around | stretch", + "-webkit-align-self" : "auto | flex-start | flex-end | center | baseline | stretch", + "alignment-adjust" : "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | | ", + "alignment-baseline" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical", + "animation" : 1, + "animation-delay" : { multi: "

    Qd9rx&y(=zT$>O0RW@_dh>$G+c0 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 literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/pc-icon-g.png b/platform/icec-static/src/main/resources/static/resource/css/login/image/pc-icon-g.png new file mode 100644 index 0000000000000000000000000000000000000000..b76497d67fb015c3f6ae369166dcb8548ac5927d GIT binary patch literal 669 zcmV;O0%HA%P)uL#j44HD-uUNg^p01w$wZ zLe-Rzf?!$U=xrsB5A~O#YIBT1 zOr(9!*@WKLig@?^KK5x-WNnT);XV(OWx$tK>6eT>o6vkyB01u4h6Sm@vMUz|98s$3uvK!95JTg zB680bSD_21Gl);zkt)S~%U!awQl*5PA(>LbLP3@ka~n%V4x1zfF?DP!j}}rHk1@@+ z>+?5IO0l$d89(U`_qoRn-|$z65Q5z73eI_Mah=y7Ca(D(%Z+VbHyJ0bi@0&N0Jmky z{|S!U=(L$=Dg;eJNei4g+8xDXN00000NkvXXu0mjf Da3COB literal 0 HcmV?d00001 diff --git a/platform/icec-static/src/main/resources/static/resource/css/login/image/pic-j.png b/platform/icec-static/src/main/resources/static/resource/css/login/image/pic-j.png new file mode 100644 index 0000000000000000000000000000000000000000..4d650f663c8550572e73d09e39af382dc159956b GIT binary patch literal 317226 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%0D@}c1<76NnFZvcMoGB=WRneT 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