From 2227ae5ce7050bc445a0d173c849c8aeb84d2c66 Mon Sep 17 00:00:00 2001 From: Julius Sula Date: Mon, 15 May 2023 14:14:02 +0200 Subject: [PATCH] init push --- backend/.gitignore | 36 + backend/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 58727 bytes backend/.mvn/wrapper/maven-wrapper.properties | 2 + backend/libs/rsso-agent-all.jar | Bin 0 -> 564231 bytes backend/libs/rsso-client-impl.jar | Bin 0 -> 5579 bytes backend/libs/rsso-sdk-atsso.jar | Bin 0 -> 8411 bytes backend/mvnw | 316 + backend/mvnw.cmd | 188 + backend/pom.xml | 178 + backend/rsso-configs/web.xml | 69 + .../main/java/com/nttdata/ErrorResponse.java | 58 + .../com/nttdata/calender/ApiApplication.java | 28 + .../com/nttdata/calender/WebMvcConfig.java | 22 + .../calender/api/CorsConfiguration.java | 77 + .../calender/api/KalenderRestController.java | 258 + .../java/com/nttdata/calender/api/Query.java | 223 + .../nttdata/calender/api/RemedyJavaAPI.java | 311 + .../com/nttdata/calender/api/rsso/Rsso.java | 44 + .../calender/api/rsso/RssoInterceptor.java | 48 + .../calender/api/rsso/RssoResponse.java | 50 + .../nttdata/calender/approval/Approval.java | 93 + .../approval/ApprovalUpdateRequest.java | 65 + .../com/nttdata/calender/changes/Change.java | 231 + .../nttdata/calender/changes/ChangeItem.java | 561 ++ .../calender/changes/ChangeRequest.java | 169 + .../calender/changes/ChangeResponse.java | 64 + .../calender/changes/ChangeUpdateRequest.java | 77 + .../calender/changes/query/Filter.java | 65 + .../nttdata/calender/changes/query/Sort.java | 78 + .../nttdata/calender/contracts/Contract.java | 97 + .../contracts/ContractGetResponse.java | 54 + .../calender/implementer/Implementer.java | 90 + .../implementer/ImplementerGetRequest.java | 46 + .../implementer/ImplementerGetResponse.java | 90 + .../implementer/ImplementerUpdateRequest.java | 66 + .../calender/packageType/PackageItems.java | 84 + .../calender/packageType/PackageType.java | 77 + .../com/nttdata/calender/states/State.java | 279 + .../nttdata/calender/states/StateChange.java | 53 + .../calender/states/StateChangeRequest.java | 66 + .../calender/states/StateResponse.java | 30 + .../calender/supportgroup/SupportGroup.java | 119 + .../supportgroup/SupportGroupGetResponse.java | 51 + .../src/main/resources/application.properties | 2 + backend/src/main/resources/log4j2.xml | 45 + .../src/main/resources/rsso-agent.properties | 50 + .../resources/rsso-authenticator.properties | 1 + backend/src/main/resources/rsso-log.cfg | 11 + backend/src/main/resources/sso-sdk.properties | 5 + frontend/.browserslistrc | 16 + frontend/.editorconfig | 16 + frontend/.gitignore | 42 + frontend/.vscode/extensions.json | 4 + frontend/.vscode/launch.json | 20 + frontend/.vscode/tasks.json | 42 + frontend/README.md | 27 + frontend/angular.json | 111 + frontend/documentation/coverage.html | 137 + frontend/documentation/dependencies.html | 150 + frontend/documentation/fonts/ionicons.eot | Bin 0 -> 112650 bytes frontend/documentation/fonts/ionicons.svg | 2090 ++++ frontend/documentation/fonts/ionicons.ttf | Bin 0 -> 112472 bytes frontend/documentation/fonts/ionicons.woff | Bin 0 -> 65912 bytes frontend/documentation/fonts/ionicons.woff2 | Bin 0 -> 50632 bytes .../fonts/roboto-v15-latin-300.eot | Bin 0 -> 16205 bytes .../fonts/roboto-v15-latin-300.svg | 314 + .../fonts/roboto-v15-latin-300.ttf | Bin 0 -> 32664 bytes .../fonts/roboto-v15-latin-300.woff | Bin 0 -> 18520 bytes .../fonts/roboto-v15-latin-300.woff2 | Bin 0 -> 14524 bytes .../fonts/roboto-v15-latin-700.eot | Bin 0 -> 16208 bytes .../fonts/roboto-v15-latin-700.svg | 310 + .../fonts/roboto-v15-latin-700.ttf | Bin 0 -> 32500 bytes .../fonts/roboto-v15-latin-700.woff | Bin 0 -> 18568 bytes .../fonts/roboto-v15-latin-700.woff2 | Bin 0 -> 14552 bytes .../fonts/roboto-v15-latin-italic.eot | Bin 0 -> 17534 bytes .../fonts/roboto-v15-latin-italic.svg | 323 + .../fonts/roboto-v15-latin-italic.ttf | Bin 0 -> 33404 bytes .../fonts/roboto-v15-latin-italic.woff | Bin 0 -> 19880 bytes .../fonts/roboto-v15-latin-italic.woff2 | Bin 0 -> 11500 bytes .../fonts/roboto-v15-latin-regular.eot | Bin 0 -> 16227 bytes .../fonts/roboto-v15-latin-regular.svg | 308 + .../fonts/roboto-v15-latin-regular.ttf | Bin 0 -> 32652 bytes .../fonts/roboto-v15-latin-regular.woff | Bin 0 -> 18520 bytes .../fonts/roboto-v15-latin-regular.woff2 | Bin 0 -> 14584 bytes frontend/documentation/graph/dependencies.svg | 14 + .../images/compodoc-vectorise-inverted.png | Bin 0 -> 21782 bytes .../images/compodoc-vectorise-inverted.svg | 201 + .../images/compodoc-vectorise.png | Bin 0 -> 21325 bytes .../images/compodoc-vectorise.svg | 201 + .../images/coverage-badge-documentation.svg | 9 + frontend/documentation/images/favicon.ico | Bin 0 -> 1150 bytes frontend/documentation/index.html | 127 + frontend/documentation/js/compodoc.js | 14 + frontend/documentation/js/lazy-load-graphs.js | 44 + .../documentation/js/libs/EventDispatcher.js | 5 + .../documentation/js/libs/bootstrap-native.js | 2 + .../documentation/js/libs/clipboard.min.js | 7 + .../js/libs/custom-elements-es5-adapter.js | 15 + .../js/libs/custom-elements.min.js | 38 + frontend/documentation/js/libs/d3.v3.min.js | 2 + .../documentation/js/libs/deep-iterator.js | 2 + .../documentation/js/libs/es6-shim.min.js | 11 + frontend/documentation/js/libs/htmlparser.js | 23 + frontend/documentation/js/libs/innersvg.js | 9 + frontend/documentation/js/libs/lit-html.js | 1 + frontend/documentation/js/libs/prism.js | 46 + frontend/documentation/js/libs/promise.min.js | 6 + .../documentation/js/libs/svg-pan-zoom.min.js | 3 + .../documentation/js/libs/tablesort.min.js | 6 + .../js/libs/tablesort.number.min.js | 6 + frontend/documentation/js/libs/vis.min.js | 46 + frontend/documentation/js/libs/zepto.min.js | 2 + frontend/documentation/js/menu-wc.js | 62 + frontend/documentation/js/menu-wc_es5.js | 42 + frontend/documentation/js/menu.js | 321 + frontend/documentation/js/routes.js | 280 + frontend/documentation/js/search/lunr.min.js | 6 + .../documentation/js/search/search-lunr.js | 67 + frontend/documentation/js/search/search.js | 268 + .../documentation/js/search/search_index.js | 4 + frontend/documentation/js/sourceCode.js | 58 + .../documentation/js/svg-pan-zoom.controls.js | 53 + frontend/documentation/js/tabs.js | 21 + frontend/documentation/js/tree.js | 147 + frontend/documentation/modules.html | 119 + frontend/documentation/overview.html | 121 + frontend/documentation/properties.html | 119 + .../documentation/styles/bootstrap-card.css | 219 + .../documentation/styles/bootstrap.min.css | 6 + frontend/documentation/styles/compodoc.css | 1082 ++ frontend/documentation/styles/dark.css | 117 + .../documentation/styles/ionicons.min.css | 11 + frontend/documentation/styles/laravel.css | 113 + frontend/documentation/styles/material.css | 131 + frontend/documentation/styles/original.css | 51 + frontend/documentation/styles/postmark.css | 238 + frontend/documentation/styles/prism.css | 301 + frontend/documentation/styles/readthedocs.css | 117 + frontend/documentation/styles/reset.css | 129 + frontend/documentation/styles/stripe.css | 106 + frontend/documentation/styles/style.css | 7 + frontend/documentation/styles/tablesort.css | 33 + frontend/documentation/styles/vagrant.css | 130 + frontend/karma.conf.js | 44 + frontend/package-lock.json | 8943 +++++++++++++++++ frontend/package.json | 46 + frontend/src/app/app-routing.module.ts | 15 + frontend/src/app/app.component.css | 6 + frontend/src/app/app.component.html | 68 + frontend/src/app/app.component.spec.ts | 35 + frontend/src/app/app.component.ts | 25 + frontend/src/app/app.module.ts | 84 + frontend/src/app/data.service.spec.ts | 16 + frontend/src/app/data.service.ts | 359 + .../filter-component.component.css | 7 + .../filter-component.component.html | 8 + .../filter-component.component.spec.ts | 23 + .../filter-component.component.ts | 60 + .../filter-dialog/filter-dialog.component.css | 3 + .../filter-dialog.component.html | 56 + .../filter-dialog.component.spec.ts | 23 + .../filter-dialog/filter-dialog.component.ts | 170 + .../implementer-dialog.component.css | 0 .../implementer-dialog.component.html | 17 + .../implementer-dialog.component.spec.ts | 23 + .../implementer-dialog.component.ts | 126 + .../multiselect-autocomplete.component.css | 7 + .../multiselect-autocomplete.component.html | 42 + ...multiselect-autocomplete.component.spec.ts | 23 + .../multiselect-autocomplete.component.ts | 107 + .../state-dialog/state-dialog.component.css | 0 .../state-dialog/state-dialog.component.html | 16 + .../state-dialog.component.spec.ts | 23 + .../state-dialog/state-dialog.component.ts | 133 + frontend/src/assets/.gitkeep | 0 frontend/src/data.ts | 1323 +++ frontend/src/environments/environment.prod.ts | 3 + frontend/src/environments/environment.ts | 16 + frontend/src/favicon.ico | Bin 0 -> 948 bytes frontend/src/index.html | 13 + frontend/src/main.ts | 14 + .../src/ntt-gantt/ntt-gantt.component.css | 39 + .../src/ntt-gantt/ntt-gantt.component.html | 181 + .../src/ntt-gantt/ntt-gantt.component.spec.ts | 23 + frontend/src/ntt-gantt/ntt-gantt.component.ts | 833 ++ frontend/src/polyfills.ts | 53 + frontend/src/styles.css | 16 + frontend/src/test.ts | 26 + frontend/tsconfig.app.json | 15 + frontend/tsconfig.json | 32 + frontend/tsconfig.spec.json | 18 + 191 files changed, 26969 insertions(+) create mode 100644 backend/.gitignore create mode 100644 backend/.mvn/wrapper/maven-wrapper.jar create mode 100644 backend/.mvn/wrapper/maven-wrapper.properties create mode 100644 backend/libs/rsso-agent-all.jar create mode 100644 backend/libs/rsso-client-impl.jar create mode 100644 backend/libs/rsso-sdk-atsso.jar create mode 100644 backend/mvnw create mode 100644 backend/mvnw.cmd create mode 100644 backend/pom.xml create mode 100644 backend/rsso-configs/web.xml create mode 100644 backend/src/main/java/com/nttdata/ErrorResponse.java create mode 100644 backend/src/main/java/com/nttdata/calender/ApiApplication.java create mode 100644 backend/src/main/java/com/nttdata/calender/WebMvcConfig.java create mode 100644 backend/src/main/java/com/nttdata/calender/api/CorsConfiguration.java create mode 100644 backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java create mode 100644 backend/src/main/java/com/nttdata/calender/api/Query.java create mode 100644 backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java create mode 100644 backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java create mode 100644 backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java create mode 100644 backend/src/main/java/com/nttdata/calender/api/rsso/RssoResponse.java create mode 100644 backend/src/main/java/com/nttdata/calender/approval/Approval.java create mode 100644 backend/src/main/java/com/nttdata/calender/approval/ApprovalUpdateRequest.java create mode 100644 backend/src/main/java/com/nttdata/calender/changes/Change.java create mode 100644 backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java create mode 100644 backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java create mode 100644 backend/src/main/java/com/nttdata/calender/changes/ChangeResponse.java create mode 100644 backend/src/main/java/com/nttdata/calender/changes/ChangeUpdateRequest.java create mode 100644 backend/src/main/java/com/nttdata/calender/changes/query/Filter.java create mode 100644 backend/src/main/java/com/nttdata/calender/changes/query/Sort.java create mode 100644 backend/src/main/java/com/nttdata/calender/contracts/Contract.java create mode 100644 backend/src/main/java/com/nttdata/calender/contracts/ContractGetResponse.java create mode 100644 backend/src/main/java/com/nttdata/calender/implementer/Implementer.java create mode 100644 backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetRequest.java create mode 100644 backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetResponse.java create mode 100644 backend/src/main/java/com/nttdata/calender/implementer/ImplementerUpdateRequest.java create mode 100644 backend/src/main/java/com/nttdata/calender/packageType/PackageItems.java create mode 100644 backend/src/main/java/com/nttdata/calender/packageType/PackageType.java create mode 100644 backend/src/main/java/com/nttdata/calender/states/State.java create mode 100644 backend/src/main/java/com/nttdata/calender/states/StateChange.java create mode 100644 backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java create mode 100644 backend/src/main/java/com/nttdata/calender/states/StateResponse.java create mode 100644 backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java create mode 100644 backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroupGetResponse.java create mode 100644 backend/src/main/resources/application.properties create mode 100644 backend/src/main/resources/log4j2.xml create mode 100644 backend/src/main/resources/rsso-agent.properties create mode 100644 backend/src/main/resources/rsso-authenticator.properties create mode 100644 backend/src/main/resources/rsso-log.cfg create mode 100644 backend/src/main/resources/sso-sdk.properties create mode 100644 frontend/.browserslistrc create mode 100644 frontend/.editorconfig create mode 100644 frontend/.gitignore create mode 100644 frontend/.vscode/extensions.json create mode 100644 frontend/.vscode/launch.json create mode 100644 frontend/.vscode/tasks.json create mode 100644 frontend/README.md create mode 100644 frontend/angular.json create mode 100644 frontend/documentation/coverage.html create mode 100644 frontend/documentation/dependencies.html create mode 100644 frontend/documentation/fonts/ionicons.eot create mode 100644 frontend/documentation/fonts/ionicons.svg create mode 100644 frontend/documentation/fonts/ionicons.ttf create mode 100644 frontend/documentation/fonts/ionicons.woff create mode 100644 frontend/documentation/fonts/ionicons.woff2 create mode 100644 frontend/documentation/fonts/roboto-v15-latin-300.eot create mode 100644 frontend/documentation/fonts/roboto-v15-latin-300.svg create mode 100644 frontend/documentation/fonts/roboto-v15-latin-300.ttf create mode 100644 frontend/documentation/fonts/roboto-v15-latin-300.woff create mode 100644 frontend/documentation/fonts/roboto-v15-latin-300.woff2 create mode 100644 frontend/documentation/fonts/roboto-v15-latin-700.eot create mode 100644 frontend/documentation/fonts/roboto-v15-latin-700.svg create mode 100644 frontend/documentation/fonts/roboto-v15-latin-700.ttf create mode 100644 frontend/documentation/fonts/roboto-v15-latin-700.woff create mode 100644 frontend/documentation/fonts/roboto-v15-latin-700.woff2 create mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.eot create mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.svg create mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.ttf create mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.woff create mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.woff2 create mode 100644 frontend/documentation/fonts/roboto-v15-latin-regular.eot create mode 100644 frontend/documentation/fonts/roboto-v15-latin-regular.svg create mode 100644 frontend/documentation/fonts/roboto-v15-latin-regular.ttf create mode 100644 frontend/documentation/fonts/roboto-v15-latin-regular.woff create mode 100644 frontend/documentation/fonts/roboto-v15-latin-regular.woff2 create mode 100644 frontend/documentation/graph/dependencies.svg create mode 100644 frontend/documentation/images/compodoc-vectorise-inverted.png create mode 100644 frontend/documentation/images/compodoc-vectorise-inverted.svg create mode 100644 frontend/documentation/images/compodoc-vectorise.png create mode 100644 frontend/documentation/images/compodoc-vectorise.svg create mode 100644 frontend/documentation/images/coverage-badge-documentation.svg create mode 100644 frontend/documentation/images/favicon.ico create mode 100644 frontend/documentation/index.html create mode 100644 frontend/documentation/js/compodoc.js create mode 100644 frontend/documentation/js/lazy-load-graphs.js create mode 100644 frontend/documentation/js/libs/EventDispatcher.js create mode 100644 frontend/documentation/js/libs/bootstrap-native.js create mode 100644 frontend/documentation/js/libs/clipboard.min.js create mode 100644 frontend/documentation/js/libs/custom-elements-es5-adapter.js create mode 100644 frontend/documentation/js/libs/custom-elements.min.js create mode 100644 frontend/documentation/js/libs/d3.v3.min.js create mode 100644 frontend/documentation/js/libs/deep-iterator.js create mode 100644 frontend/documentation/js/libs/es6-shim.min.js create mode 100644 frontend/documentation/js/libs/htmlparser.js create mode 100644 frontend/documentation/js/libs/innersvg.js create mode 100644 frontend/documentation/js/libs/lit-html.js create mode 100644 frontend/documentation/js/libs/prism.js create mode 100644 frontend/documentation/js/libs/promise.min.js create mode 100644 frontend/documentation/js/libs/svg-pan-zoom.min.js create mode 100644 frontend/documentation/js/libs/tablesort.min.js create mode 100644 frontend/documentation/js/libs/tablesort.number.min.js create mode 100644 frontend/documentation/js/libs/vis.min.js create mode 100644 frontend/documentation/js/libs/zepto.min.js create mode 100644 frontend/documentation/js/menu-wc.js create mode 100644 frontend/documentation/js/menu-wc_es5.js create mode 100644 frontend/documentation/js/menu.js create mode 100644 frontend/documentation/js/routes.js create mode 100644 frontend/documentation/js/search/lunr.min.js create mode 100644 frontend/documentation/js/search/search-lunr.js create mode 100644 frontend/documentation/js/search/search.js create mode 100644 frontend/documentation/js/search/search_index.js create mode 100644 frontend/documentation/js/sourceCode.js create mode 100644 frontend/documentation/js/svg-pan-zoom.controls.js create mode 100644 frontend/documentation/js/tabs.js create mode 100644 frontend/documentation/js/tree.js create mode 100644 frontend/documentation/modules.html create mode 100644 frontend/documentation/overview.html create mode 100644 frontend/documentation/properties.html create mode 100644 frontend/documentation/styles/bootstrap-card.css create mode 100644 frontend/documentation/styles/bootstrap.min.css create mode 100644 frontend/documentation/styles/compodoc.css create mode 100644 frontend/documentation/styles/dark.css create mode 100644 frontend/documentation/styles/ionicons.min.css create mode 100644 frontend/documentation/styles/laravel.css create mode 100644 frontend/documentation/styles/material.css create mode 100644 frontend/documentation/styles/original.css create mode 100644 frontend/documentation/styles/postmark.css create mode 100644 frontend/documentation/styles/prism.css create mode 100644 frontend/documentation/styles/readthedocs.css create mode 100644 frontend/documentation/styles/reset.css create mode 100644 frontend/documentation/styles/stripe.css create mode 100644 frontend/documentation/styles/style.css create mode 100644 frontend/documentation/styles/tablesort.css create mode 100644 frontend/documentation/styles/vagrant.css create mode 100644 frontend/karma.conf.js create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/src/app/app-routing.module.ts create mode 100644 frontend/src/app/app.component.css create mode 100644 frontend/src/app/app.component.html create mode 100644 frontend/src/app/app.component.spec.ts create mode 100644 frontend/src/app/app.component.ts create mode 100644 frontend/src/app/app.module.ts create mode 100644 frontend/src/app/data.service.spec.ts create mode 100644 frontend/src/app/data.service.ts create mode 100644 frontend/src/app/filter-component/filter-component.component.css create mode 100644 frontend/src/app/filter-component/filter-component.component.html create mode 100644 frontend/src/app/filter-component/filter-component.component.spec.ts create mode 100644 frontend/src/app/filter-component/filter-component.component.ts create mode 100644 frontend/src/app/filter-dialog/filter-dialog.component.css create mode 100644 frontend/src/app/filter-dialog/filter-dialog.component.html create mode 100644 frontend/src/app/filter-dialog/filter-dialog.component.spec.ts create mode 100644 frontend/src/app/filter-dialog/filter-dialog.component.ts create mode 100644 frontend/src/app/implementer-dialog/implementer-dialog.component.css create mode 100644 frontend/src/app/implementer-dialog/implementer-dialog.component.html create mode 100644 frontend/src/app/implementer-dialog/implementer-dialog.component.spec.ts create mode 100644 frontend/src/app/implementer-dialog/implementer-dialog.component.ts create mode 100644 frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.css create mode 100644 frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.html create mode 100644 frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.spec.ts create mode 100644 frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.ts create mode 100644 frontend/src/app/state-dialog/state-dialog.component.css create mode 100644 frontend/src/app/state-dialog/state-dialog.component.html create mode 100644 frontend/src/app/state-dialog/state-dialog.component.spec.ts create mode 100644 frontend/src/app/state-dialog/state-dialog.component.ts create mode 100644 frontend/src/assets/.gitkeep create mode 100644 frontend/src/data.ts create mode 100644 frontend/src/environments/environment.prod.ts create mode 100644 frontend/src/environments/environment.ts create mode 100644 frontend/src/favicon.ico create mode 100644 frontend/src/index.html create mode 100644 frontend/src/main.ts create mode 100644 frontend/src/ntt-gantt/ntt-gantt.component.css create mode 100644 frontend/src/ntt-gantt/ntt-gantt.component.html create mode 100644 frontend/src/ntt-gantt/ntt-gantt.component.spec.ts create mode 100644 frontend/src/ntt-gantt/ntt-gantt.component.ts create mode 100644 frontend/src/polyfills.ts create mode 100644 frontend/src/styles.css create mode 100644 frontend/src/test.ts create mode 100644 frontend/tsconfig.app.json create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.spec.json diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..843b5a5 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,36 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Logs ### +log \ No newline at end of file diff --git a/backend/.mvn/wrapper/maven-wrapper.jar b/backend/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..c1dd12f17644411d6e840bd5a10c6ecda0175f18 GIT binary patch literal 58727 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%0ANsA|A3-jj|r`KAo%oTajX3>^E` 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 YM{}PByk10KD_nuQ4E7Du?}+~TKh4V)`~Uy| literal 0 HcmV?d00001 diff --git a/backend/.mvn/wrapper/maven-wrapper.properties b/backend/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..b74bf7f --- /dev/null +++ b/backend/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar diff --git a/backend/libs/rsso-agent-all.jar b/backend/libs/rsso-agent-all.jar new file mode 100644 index 0000000000000000000000000000000000000000..e04f2c0f64486280ff8b96b6934ad11a1ae3acf9 GIT binary patch literal 564231 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

X*qwKRN)*Fip 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

k0nCA}yjL`?t)*yuQPvFn+4ruRFbnGi64uV!g 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�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 z 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

uUlN_jHDo(ey? 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
+gl*Sn_*duo6!tYWk~+$oWXfDA0m&t@V^_+H1Io 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/backend/mvnw.cmd b/backend/mvnw.cmd new file mode 100644 index 0000000..1d8ab01 --- /dev/null +++ b/backend/mvnw.cmd @@ -0,0 +1,188 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/backend/pom.xml b/backend/pom.xml new file mode 100644 index 0000000..513f649 --- /dev/null +++ b/backend/pom.xml @@ -0,0 +1,178 @@ + + + 4.0.0 + + com.nttdata.calender + api + 0.0.1-SNAPSHOT + war + api + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 2.7.8 + + + + 11 + + + + + javax.servlet + javax.servlet-api + + + + com.github.ben-manes.caffeine + caffeine + + + + + + + commons-codec + commons-codec + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + io.jsonwebtoken + jjwt-gson + 0.11.5 + + + + + + junit + junit + + + org.mockito + mockito-core + + + com.bmc.rsso + rsso-agent-all + 1.0.0 + + + org.apache.oltu.oauth2 + org.apache.oltu.oauth2.client + 1.0.2 + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-logging + + + + + + org.springframework.session + spring-session-core + + + + org.springframework.boot + spring-boot-starter-webflux + + + + + org.slf4j + slf4j-api + 2.0.5 + + + + org.apache.logging.log4j + log4j-slf4j2-impl + 2.20.0 + + + + org.apache.logging.log4j + log4j-core + 2.20.0 + + + + org.apache.logging.log4j + log4j-api + 2.20.0 + + + + org.apache.logging.log4j + log4j-1.2-api + 2.20.0 + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.bmc + arapi + 91_build009 + + + + + backend + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-war-plugin + 3.3.1 + + + + rsso-configs + WEB-INF/ + + **/* + + + + + + + + + + diff --git a/backend/rsso-configs/web.xml b/backend/rsso-configs/web.xml new file mode 100644 index 0000000..c7bf65b --- /dev/null +++ b/backend/rsso-configs/web.xml @@ -0,0 +1,69 @@ + + + + Backend + + + + + logLevel + WARN + + + + + Files + rsso-agent-all.jar,rsso-sdk-atsso.jar,rsso-client-impl.jar + + + + RSSOFilter + com.bmc.rsso.agent.RSSOFilter + + + RSSOFilter + /* + + + + + + com.bmc.rsso.agent.RSSOListener + + + + dispatcherServlet + org.springframework.web.servlet.DispatcherServlet + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + contextConfigLocation + com.nttdata.calender.MyConfiguration + + 1 + + + + + dispatcherServlet + / + + + \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/ErrorResponse.java b/backend/src/main/java/com/nttdata/ErrorResponse.java new file mode 100644 index 0000000..62178f5 --- /dev/null +++ b/backend/src/main/java/com/nttdata/ErrorResponse.java @@ -0,0 +1,58 @@ +package com.nttdata; + +/** + * The ErrorResponse class represents an error response that can be returned by + * the Rest Controller. It contains an error message and additional details + * associated with the error. + */ +public class ErrorResponse { + private String message; + private String details; + + /** + * Constructs an ErrorResponse instance with the provided message and details. + * + * @param message String representing the error message + * @param details String providing additional details about the error + */ + public ErrorResponse(String message, String details) { + this.message = message; + this.details = details; + } + + /** + * Gets the error message. + * + * @return String representing the error message + */ + public String getMessage() { + return message; + } + + /** + * Gets the additional details associated with the error. + * + * @return String providing additional details about the error + */ + public String getDetails() { + return details; + } + + /** + * Sets the error message. + * + * @param message String representing the error message + */ + public void setMessage(String message) { + this.message = message; + } + + /** + * Sets the additional details associated with the error. + * + * @param details String providing additional details about the error + */ + public void setDetails(String details) { + this.details = details; + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/ApiApplication.java b/backend/src/main/java/com/nttdata/calender/ApiApplication.java new file mode 100644 index 0000000..7be7950 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/ApiApplication.java @@ -0,0 +1,28 @@ +package com.nttdata.calender; + +import java.util.concurrent.ConcurrentHashMap; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.context.annotation.Bean; +import org.springframework.session.MapSessionRepository; + +@SpringBootApplication +public class ApiApplication extends SpringBootServletInitializer { + + public static void main(String[] args) { + SpringApplication.run(ApiApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return builder.sources(ApiApplication.class); + } + + @Bean + public MapSessionRepository sessionRepository() { + return new MapSessionRepository(new ConcurrentHashMap<>()); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/WebMvcConfig.java b/backend/src/main/java/com/nttdata/calender/WebMvcConfig.java new file mode 100644 index 0000000..5e45d13 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/WebMvcConfig.java @@ -0,0 +1,22 @@ +package com.nttdata.calender; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import com.nttdata.calender.api.rsso.RssoInterceptor; + +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + + private final RssoInterceptor sessionInterceptor; + + public WebMvcConfig(RssoInterceptor sessionInterceptor) { + this.sessionInterceptor = sessionInterceptor; + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(sessionInterceptor); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/api/CorsConfiguration.java b/backend/src/main/java/com/nttdata/calender/api/CorsConfiguration.java new file mode 100644 index 0000000..2118565 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/api/CorsConfiguration.java @@ -0,0 +1,77 @@ +// package com.nttdata.calender.api; + +// import javax.servlet.FilterChain; +// import javax.servlet.ServletException; +// import javax.servlet.http.HttpServletRequest; +// import javax.servlet.http.HttpServletResponse; +// import java.io.IOException; + +// import org.springframework.boot.web.servlet.FilterRegistrationBean; +// import org.springframework.context.annotation.Bean; +// import org.springframework.context.annotation.Configuration; +// import org.springframework.web.servlet.config.annotation.CorsRegistry; +// import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +// import org.springframework.web.filter.OncePerRequestFilter; + +// @Configuration +// public class CorsConfiguration { + +// @Bean +// public WebMvcConfigurer corsConfigurer() { +// return new WebMvcConfigurer() { +// @Override +// public void addCorsMappings(CorsRegistry registry) { +// registry.addMapping("/**") +// .allowedOrigins("http://calender.at.softlab.net:8080") +// .allowedMethods("GET", "POST", "PUT", "DELETE") +// .allowedHeaders("*"); +// } +// }; +// } + +// /** +// * Registration of the {@link CustomCorsFilter} +// * +// * @return +// */ +// @Bean +// public FilterRegistrationBean +// customCorsFilterRegistrationBean() { +// FilterRegistrationBean registrationBean = new +// FilterRegistrationBean<>(); +// registrationBean.setFilter(new CustomCorsFilter()); +// registrationBean.addUrlPatterns("/*"); +// registrationBean.setOrder(0); // Set the order to 0 or a low value to ensure +// it runs before other filters +// return registrationBean; +// } + +// /** +// * Filters all of the requests that do not have a Origin header set, returns +// Bad +// * Request Error. +// * If the Origin header is set, it has to be the allowed origin only else +// return +// * Forbidden Error. +// */ +// public class CustomCorsFilter extends OncePerRequestFilter { +// @Override +// protected void doFilterInternal(HttpServletRequest request, +// HttpServletResponse response, +// FilterChain filterChain) throws ServletException, IOException { +// if (request.getHeader("Origin") == null) { +// response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing CORS header: +// Origin"); +// return; +// } +// if +// (!request.getHeader("Origin").startsWith("http://calender.at.softlab.net:8080")) +// { +// response.sendError(HttpServletResponse.SC_FORBIDDEN, "Invalid CORS header: +// Origin"); +// return; +// } +// filterChain.doFilter(request, response); +// } +// } +// } diff --git a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java new file mode 100644 index 0000000..9c6a9df --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java @@ -0,0 +1,258 @@ +package com.nttdata.calender.api; + +import java.lang.annotation.Repeatable; +import java.util.ArrayList; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import com.bmc.arsys.api.ARException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.nttdata.ErrorResponse; +import com.nttdata.calender.api.rsso.Rsso; +import com.nttdata.calender.approval.Approval; +import com.nttdata.calender.approval.ApprovalUpdateRequest; +import com.nttdata.calender.changes.Change; +import com.nttdata.calender.changes.ChangeRequest; +import com.nttdata.calender.changes.ChangeResponse; +import com.nttdata.calender.changes.ChangeUpdateRequest; +import com.nttdata.calender.contracts.Contract; +import com.nttdata.calender.contracts.ContractGetResponse; +import com.nttdata.calender.implementer.Implementer; +import com.nttdata.calender.implementer.ImplementerGetRequest; +import com.nttdata.calender.implementer.ImplementerGetResponse; +import com.nttdata.calender.implementer.ImplementerUpdateRequest; +import com.nttdata.calender.packageType.PackageItems; +import com.nttdata.calender.packageType.PackageType; +import com.nttdata.calender.states.State; +import com.nttdata.calender.states.StateChange; +import com.nttdata.calender.states.StateChangeRequest; +import com.nttdata.calender.states.StateResponse; +import com.nttdata.calender.supportgroup.SupportGroup; + +/** + * REST Controller for Remedy Data + */ +@RestController +public class KalenderRestController { + private final RemedyJavaAPI javaAPI; + private final Change change; + private final Implementer implementer; + private final PackageType packageType; + private final Approval approval; + + @Autowired + public KalenderRestController(RemedyJavaAPI javaAPI, Change change, Implementer implementer, + PackageType packageType, Approval approval) { + this.javaAPI = javaAPI; + this.change = change; + this.implementer = implementer; + this.packageType = packageType; + this.approval = approval; + } + + /** + * Handles GET request to retrieve all the states and their actual and possible + * states and results a JSON array. + * + * @return JSON Array of states with actualState, possibleStates, stateNameEN, + * stateNameDE + * @throws JsonProcessingException if an exception occurs during JSON processing + */ + @GetMapping("/api/getStates") + @ResponseBody + public ArrayList printState() throws JsonProcessingException { + var state = State.getInstance(); + return state.returnJson(); + } + + @GetMapping("/api/getMany") + @ResponseBody + public void getMany() { + var query = new Query.QueryBuilder("ASF:WI_CFG_CIMaintenanceRel").addFieldId("something", 666000001).build(); + try { + var entries = javaAPI.queryFieldsById("", query.getFieldIds(), query.getFormName(), null, 0, 2003); + System.out.println(entries.size()); + } catch (ARException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + /** + * Handles GET request to retrieve all support groups. + * + * @return List of support groups if not empty, otherwise error message in + * response body + * @throws ARException if an AR exception occurs + */ + @GetMapping("/api/getSupportGroups") + @ResponseBody + public ResponseEntity getSupportGroups() throws ARException { + var supportGroup = SupportGroup.getInstance(); + if (supportGroup.get() != null) + return ResponseEntity.ok(supportGroup.get()); + return ResponseEntity.internalServerError().body("Support Groups couldnt be fetched."); + } + + /** + * + * Handles a GET request to retrieve the user's support group. + * + * @return Support group of user if not empty, otherwise error message in + * response body + * @throws ARException if an error occurs during the retrieval of the user's + * support group. + */ + @GetMapping("/api/getUserSupportGroup") + @ResponseBody + public ResponseEntity getUserSupportGroup() throws ARException { + var user = SupportGroup.getInstance().getUserSG(javaAPI); + return (user != null) ? ResponseEntity.ok(user) + : ResponseEntity.internalServerError().body("User doesn't have a support group."); + } + + /** + * Handles GET request to retrieve a list of all contracts. + * + * @return {@link ArrayList} of {@link ContractGetResponse} objects + * @throws ARException if an AR exception occurs + */ + @GetMapping("/api/getContracts") + @ResponseBody + public ArrayList getContracts() throws ARException { + var contract = Contract.getInstance(); + return contract.get(); + } + + /** + * Handles GET request to retrieve a list of all package types. + * + * @return {@link ArrayList} of {@link PackageItems} objects + * @throws ARException if an AR exception occurs + */ + @GetMapping("/api/getPackageTypes") + @ResponseBody + public ArrayList getPackageTypes() throws ARException { + return packageType.get(); + } + + /** + * This method is used only in development to reset all dates coming from + * Remedy. + * It will be deleted when going to production. + * + * @return "OK" as the status message + * @throws ARException if an AR exception occurs + */ + @GetMapping("/api/resetDates") + public String first_Api() throws ARException { + // TODO: is this still needed? + return "OK"; + } + + /** + * Handles GET request to retrieve a List of all {@link Change} objects + * + * @param request the request object + * @return {@link ChangeResponse} containing the JSON array of all changes + * @throws ARException if an AR exception occurs + */ + @PostMapping("/api/getChanges") + @ResponseBody + public ChangeResponse getChanges(@RequestBody ChangeRequest request) + throws ARException { + return change.get(request); + } + + /** + * Handles POST request to update the date for a specific {@link Change} object. + * + * @param request the request object containing the ID of the change entry and + * the new timestamp + * @return the updated {@link ChangeUpdateRequest} object + * @throws ARException if an AR exception occurs + */ + @PostMapping("/api/updateChange") + @ResponseBody + public ChangeUpdateRequest updateChange(@RequestBody ChangeUpdateRequest request) throws ARException { + change.modifyTimestamp(request); + return request; + } + + /** + * Updates the state based on the provided {@link StateChangeRequest} object. + * Returns a response entity with the updated state value. + * + * @param request the {@link StateChangeRequest} object containing the + * necessary information + * @param stateChange the autowired {@link StateChange} object for state change + * operations + * @return a response entity with the updated state value as a string + * @throws ARException if an AR exception occurs + */ + @PostMapping("/api/updateState") + public ResponseEntity updateState(@RequestBody StateChangeRequest request, + @Autowired StateChange stateChange) throws ARException { + var response = stateChange.createStateChange(request); + return ResponseEntity.ok(response); + } + + /** + * Updates an implementer based on the data sent in the request. + * Returns an error when the action is not possible or the request has an + * incorrect format. + * + * @param request the request object + * @return {@link ResponseEntity} with the updated state value "OK" + * @throws ARException if an AR exception occurs + */ + @PostMapping("api/updateImplementer") + public ResponseEntity updateImplementer(@RequestBody ImplementerUpdateRequest request) throws ARException { + var response = implementer.update(request); + return ResponseEntity.ok(response); + } + + @PostMapping("api/updateApproval") + @ResponseBody + public ResponseEntity updateApproval(@RequestBody ApprovalUpdateRequest request) throws ARException { + var response = approval.update(request); + return ResponseEntity.ok(response); + } + + /** + * Returns all the members of the support group assigned to the specific change + * provided by the entryId of {@link ImplementerGetRequest}. + * + * @param request the request object + * @return the {@link ImplementerGetResponse} containing the response + * @throws ARException if an AR exception occurs + */ + @PostMapping("api/getImplementer") + public ImplementerGetResponse getImplementer(@RequestBody ImplementerGetRequest request) throws ARException { + return implementer.get(request); + } + + /** + * Handles the exception raised by ARException. + * + * @param e the ARException raised + * @return an {@link ErrorResponse} with the error message + */ + @ExceptionHandler(ARException.class) + public ResponseEntity handleARException(ARException e) { + var errorResponse = new ErrorResponse("Error occured", e.getMessage()); + javaAPI.handleException(e, e.getMessage()); + return new ResponseEntity(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/api/Query.java b/backend/src/main/java/com/nttdata/calender/api/Query.java new file mode 100644 index 0000000..e097d49 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/api/Query.java @@ -0,0 +1,223 @@ +package com.nttdata.calender.api; + +import java.util.Collection; +import java.util.HashMap; + +import com.bmc.arsys.api.Value; +import com.bmc.arsys.api.Entry; + +/** + * Query class that can be used as a builder for queries used in the retrieval + * of {@link Entry}. Follows the Builder Pattern. + * A retrieval involves specifying what fields of an entry should be retrieved + * by + * the database number. These are identified by a variable name in the hashmap, + * and the formname has to be specified for ease of use. + */ +public class Query { + private String formName; + private HashMap fieldIds; + + /** + * Private constructor that gets called when the {@link QueryBuilder} gets + * built. + * + * @param builder the QueryBuilder instance + */ + private Query(QueryBuilder builder) { + this.formName = builder.formName; + this.fieldIds = builder.fieldIds; + } + + /** + * Sets the fields of the query object. + * + * @param fieldIds the field IDs + */ + public void setFieldIds(HashMap fieldIds) { + this.fieldIds = fieldIds; + } + + /** + * Sets the formName of the Query object. + * + * @param formName the name of the form + */ + public void setFormName(String formName) { + this.formName = formName; + } + + /** + * Returns the field IDs as an integer array. + * + * @return the field IDs as an integer array + */ + public int[] getFieldIds() { + return this.fieldIds.values().stream().mapToInt(i -> i.getFieldId()).toArray(); + } + + /** + * Returns a collection of all the {@link QueryValues}. + * + * @return collection of field IDs + */ + public Collection getFieldValues() { + return this.fieldIds.values(); + } + + /** + * Returns the {@link Value} of a field identified by its description. + * + * @param description description + * @return the value of the field + */ + public Value getFieldValue(String description) { + return this.fieldIds.get(description).getValue(); + } + + /** + * Returns a specific field ID given its natural language specifier. + * + * @param description natural language specifier + * @return the integer encoding of field ID + */ + public int getFieldId(String description) { + return this.fieldIds.get(description).getFieldId(); + } + + /** + * Returns name of the form. + * + * @return the name of the form + */ + public String getFormName() { + return this.formName; + } + + /** + * Builder class for the {@link Query} class. It gets initialized with a form + * name + * and adds pairs of descriptions and field IDs for the fields. + */ + public static class QueryBuilder { + private String formName; + private HashMap fieldIds; + + /** + * Constructs a new QueryBuilder with the specified form name. + * + * @param formName the name of the form + */ + public QueryBuilder(String formName) { + this.formName = formName; + this.fieldIds = new HashMap(); + } + + /** + * Adds a field ID with the natural language specifier and its integer encoding. + * + * @param description the natural language specifier + * @param fieldId the integer encoding + * @return the QueryBuilder instance + */ + public QueryBuilder addFieldId(String description, Integer fieldId) { + var queryValue = new QueryValues(null, fieldId); + this.fieldIds.putIfAbsent(description, queryValue); + return this; + } + + /** + * Adds a field ID with the natural language specifier, its integer encoding, + * and + * a {@link Value}. + * + * @param description the description + * @param fieldId the field ID + * @param value the value + * @return the QueryBuilder instance + */ + public QueryBuilder addFieldValue(String description, Integer fieldId, Value value) { + var queryValue = this.fieldIds.get(description); + if (queryValue != null && queryValue.getValue() == null) { + queryValue.setValue(value); + } else if (queryValue == null) { + var newQueryValue = new QueryValues(value, fieldId); + this.fieldIds.putIfAbsent(description, newQueryValue); + } + return this; + } + + /** + * Sets the name of the form. + * + * @param formName the name of the form + */ + public void setFormName(String formName) { + this.formName = formName; + } + + /** + * Builds the {@link Query} object with the data of the Builder. + * + * @return the Query object + */ + public Query build() { + return new Query(this); + } + } + + /** + * Holds values and field IDs of fields represented in the hashmap. + */ + public static class QueryValues { + Value value; + Integer fieldId; + + /** + * Initializes the {@link QueryValues} with a field ID and a value. + * + * @param value the value + * @param fieldId the field ID + */ + QueryValues(Value value, Integer fieldId) { + this.value = value; + this.fieldId = fieldId; + } + + /** + * Sets the field ID of the specific {@link QueryValues}. + * + * @param fieldId the field ID + */ + public void setFieldId(Integer fieldId) { + this.fieldId = fieldId; + } + + /** + * Sets the {@link Value} of the specific {@link QueryValues}. + * + * @param value the value + */ + public void setValue(Value value) { + this.value = value; + } + + /** + * Gets the field ID of the specific {@link QueryValues}. + * + * @return the field ID + */ + public Integer getFieldId() { + return fieldId; + } + + /** + * Gets the {@link Value} of the specific {@link QueryValues}. + * + * @return the value + */ + public Value getValue() { + return value; + } + } +} diff --git a/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java new file mode 100644 index 0000000..dc871e1 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java @@ -0,0 +1,311 @@ +package com.nttdata.calender.api; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.stereotype.Service; + +import com.bmc.arsys.api.ARException; +import com.bmc.arsys.api.ARServerUser; +import com.bmc.arsys.api.Constants; +import com.bmc.arsys.api.Entry; +import com.bmc.arsys.api.Field; +import com.bmc.arsys.api.OutputInteger; +import com.bmc.arsys.api.QualifierInfo; +import com.bmc.arsys.api.SortInfo; +import com.bmc.arsys.api.StatusInfo; +import com.bmc.arsys.api.Timestamp; +import com.bmc.arsys.api.Value; +import com.nttdata.calender.changes.Change; +import com.nttdata.calender.contracts.Contract; +import com.nttdata.calender.states.State; +import com.nttdata.calender.supportgroup.SupportGroup; + +/** + * Java API for Remedy + */ +@Service +public class RemedyJavaAPI { + + private ARServerUser server; + private String formName = "ASF:WI_TAS_Paket"; + private static Logger logger = LogManager.getLogger("logger"); + // TODO: work with form CTM:Support Group + private static final String QUALSTR = "\'Request ID\' != \"\""; + + /** + * Sets up the Remedy API with the server and admin user/password. + */ + public RemedyJavaAPI() { + server = new ARServerUser(); + server.setServer("itsm-app-dev.asfinag.at"); + server.setUser("changecalender_integration"); + server.setPassword("VXrvLm4q#8P#MXthfZNc"); + server.setPort(50000); + this.connect(); + + // TODO: move to APIApplication.java or State.java - see where it fits + State.getInstance().queryState(this); + SupportGroup.getInstance().querySupportGroups(this); + Contract.getInstance().queryContracts(this); + } + + public ARServerUser getServer() { + return this.server; + } + + /** + * Connects the current user to the server. + */ + void connect() { + logger.info("Connecting to AR Server"); + try { + server.verifyUser(); + } catch (ARException e) { + // This exception is triggered by a bad server, password or, + // if guest access is turned off, by an unknown username. + logger.error(e + "| Cannot verify user " + + server.getUser() + "."); + handleException(e, "Cannot verify user " + + server.getUser() + "."); + System.exit(1); + } + logger.info("Connected to AR Server " + + server.getServer()); + } + + /** + * Calls to impersonate a user with the provided username. + * + * @param userName the username + * @throws ARException when the user is unknown + */ + public void impersonateUser(String userName) throws ARException { + server.impersonateUser(userName); + } + + /** + * Frees up the impersonated user and sets it to null. + */ + public void freeImpersonatedUser() { + server.setImpersonatedUser(null); + } + + /** + * Returns the currently impersonated user. + * + * @return the impersonated user + */ + public String getUser() { + return server.getImpersonatedUser(); + } + + /** + * Retrieves the name of the field in the database for the provided field ID and + * form name. + * This is necessary for the filters used in the `get` method of {@link Change}. + * + * @param formName the form name + * @param fieldId the field ID + * @return the database name + * @throws ARException when an ARException occurs + */ + public String getFieldDatabaseName(String formName, int fieldId) throws ARException { + return server.getField(formName, fieldId).getName(); + } + + /** + * Creates an entry in a form using the given field values. + * + * @param query the query + * @return the message indicating the entry has been created + * @throws ARException when an ARException occurs + */ + public String createEntry(Query query) throws ARException { + var formName = query.getFormName(); + var values = query.getFieldValues(); + var entry = new Entry(); + + values.forEach(value -> { + entry.put(value.getFieldId(), value.getValue()); + }); + + var entryIdOut = server.createEntry(formName, entry); + logger.info("Entry created. The id # is " + + entryIdOut); + + var lastStatus = server.getLastStatus(); + if (!server.getLastStatus().isEmpty()) { + logger.info("Warning: " + lastStatus); + return lastStatus.toString(); + } + + return "Entry created successfully. ID: " + entryIdOut; + } + + /** + * Takes an entry ID and a {@link Query} object with values and updates the + * selected entry with the values provided in the query. + * + * @param entryId the entry ID + * @param updates the updates + * @throws ARException when an ARException occurs + */ + public void modifyEntry(String entryId, Query updates) throws ARException { + var values = updates.getFieldValues(); + var entry = server.getEntry(updates.getFormName(), entryId, updates.getFieldIds()); + + values.forEach(value -> { + entry.put(value.getFieldId(), value.getValue()); + }); + server.setEntry(updates.getFormName(), entryId, entry, null, 0); + } + + /** + * Returns an entry given an entry ID with the fields specified in the + * {@link Query} object. + * + * @param entryId the entry ID + * @param query the query + * @return the entry + * @throws ARException when an ARException occurs + */ + public Entry getEntry(String entryId, Query query) throws ARException { + return server.getEntry(query.getFormName(), entryId, query.getFieldIds()); + } + + /** + * Retrieves a list of {@link Entry} objects that match the specified qualifier, + * field IDs, and form name. + * + * @param qualStr the qualifier passed as a string + * @param fieldIds an array of integers representing the field IDs + * @param formName the name of the form to query from + * @param sorting the sort info + * @return list of {@link Entry} objects that match the criteria + * @throws ARException when an ARException occurs + */ + public List queryFieldsById(String qualStr, int[] fieldIds, String formName, SortInfo sorting, + int sliceStart, int sliceEnd) + throws ARException { + if (qualStr.isEmpty()) + qualStr = QUALSTR; + + logger.info("Retrieving entries from Form :" + formName + " with qualification " + + qualStr); + // Retrieve the detail info of all fields from the form. + List fields = server.getListFieldObjects(formName); + // Create the search qualifier. + QualifierInfo qual = server.parseQualification(qualStr, + fields, null, Constants.AR_QUALCONTEXT_DEFAULT); + OutputInteger nMatches = new OutputInteger(); + List sortOrder = new ArrayList(); + if (sorting == null) { + sortOrder.add(new SortInfo(2, + Constants.AR_SORT_DESCENDING)); + } else { + sortOrder.add(sorting); + } + // Retrieve entries from the form using the given + // qualification. + var settingMaxEntries = new int[] { Constants.AR_SERVER_INFO_MAX_ENTRIES }; + var serverSettings = server.getServerInfo(settingMaxEntries); + var maxEntriesNumber = serverSettings.get(Constants.AR_SERVER_INFO_MAX_ENTRIES).getIntValue(); + + List entries = new ArrayList(); + List fetched = new ArrayList(); + var toFetchNumber = maxEntriesNumber; + if (sliceEnd != 0) { + toFetchNumber = sliceEnd; + } + do { + fetched = server.getListEntryObjects( + formName, qual, sliceStart, + sliceEnd, + sortOrder, fieldIds, true, nMatches); + entries.addAll(fetched); + sliceStart = entries.size(); + if (sliceEnd != 0) { + toFetchNumber = toFetchNumber - entries.size(); + } + } while (fetched.size() == toFetchNumber); + + return entries; + + } + + /** + * Exception handling method that logs errors, prints a stack trace, and outputs + * the last server status. + * + * @param e the ARException + * @param errMessage the error message + */ + public void handleException(ARException e, String errMessage) { + logger.error(errMessage, e); + logger.error(server.getLastStatus()); + e.printStackTrace(); + } + + /** + * Prints a specific status type depending on the status list. + * + * @param statusList the information about the status + */ + public void printStatusList(List statusList) { + if (statusList == null || statusList.size() == 0) { + System.out.println("Status List is empty."); + return; + } + System.out.print("Message type: "); + switch (statusList.get(0).getMessageType()) { + case Constants.AR_RETURN_OK: + System.out.println("Note"); + break; + case Constants.AR_RETURN_WARNING: + System.out.println("Warning"); + break; + case Constants.AR_RETURN_ERROR: + System.out.println("Error"); + break; + case Constants.AR_RETURN_FATAL: + System.out.println("Fatal Error"); + break; + default: + System.out.println("Unknown (" + + statusList.get(0).getMessageType() + ")"); + break; + } + System.out.println("Status List:"); + for (int i = 0; i < statusList.size(); i++) { + + System.out.println(statusList.get(i).getMessageText()); + + System.out.println(statusList.get(i).getAppendedText()); + } + } + + /** + * Modifies entries by entry ID and field ID with a new date. + * + * @param entryId the ID of the entry + * @param date the new date to be modified + * @param fieldId the ID of the field + */ + void modifyEntryForReset(String entryId, Date date, int fieldId) { + Timestamp ts = new Timestamp(date); + try { + Entry entry = server.getEntry(formName, entryId, null); + entry.put(fieldId, new Value(ts)); + if (entry.get(fieldId) != null) { + server.setEntry(formName, entryId, entry, null, 0); + System.out.println("Entry #" + entryId + " modified successfully."); + } + } catch (ARException e) { + handleException(e, "Cannot modify the entry. "); + } + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java b/backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java new file mode 100644 index 0000000..198bf7c --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java @@ -0,0 +1,44 @@ +package com.nttdata.calender.api.rsso; + +import javax.servlet.http.HttpSession; + +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.reactive.function.client.WebClient; + +import com.bmc.arsys.api.ARException; +import com.bmc.thirdparty.org.springframework.beans.factory.annotation.Autowired; +import com.nttdata.calender.api.RemedyJavaAPI; + +@Service +public class Rsso { + private final RemedyJavaAPI javaAPI; + + @Autowired + public Rsso(RemedyJavaAPI javaAPI) { + this.javaAPI = javaAPI; + } + + public ResponseEntity createSession(String token, HttpSession session) throws ARException { + var response = validateToken(token); + switch (response.getResponseSessionStatus()) { + case "sessionStatus-OK": + session.setAttribute("user", response.getUserId()); + javaAPI.impersonateUser(response.getUserId()); + return ResponseEntity.ok().body("Session created"); + case "sessionStatus-notFound": + return ResponseEntity.badRequest().body("SessionToken not found"); + case "sessionStatus-timeoutOccured": + return ResponseEntity.internalServerError().body("Timeout occured"); + } + return ResponseEntity.internalServerError().body("Token could not be processed"); + } + + public RssoResponse validateToken(String token) { + var server = javaAPI.getServer(); + var webclient = WebClient.create(); + String url = String.format("http://%s.at.softlab.net/rsso/checktoken?token=%s", server.getServer(), + token); + return webclient.get().uri(url).retrieve().bodyToMono(RssoResponse.class).block(); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java new file mode 100644 index 0000000..a64fb45 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java @@ -0,0 +1,48 @@ +package com.nttdata.calender.api.rsso; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import com.bmc.thirdparty.org.springframework.beans.factory.annotation.Autowired; + +@Component +public class RssoInterceptor implements HandlerInterceptor { + private final static boolean DEBUG = true; + private final Rsso rsso; + + @Autowired + public RssoInterceptor(Rsso rsso) { + this.rsso = rsso; + } + + // TODO: what if there is no cookie? what if no rssotoken in cookie? what if + // createSession throws Exception? + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) + throws Exception { + // Check if a session exists, create one if not + if (DEBUG) { + return true; + } + + var session = request.getSession(true); + var user = session.getAttribute("user"); + if (user == null) { + var cookies = request.getCookies(); + + if (cookies != null) { + for (var cookie : cookies) { + if (cookie.getName().startsWith("sso_")) { + rsso.createSession(cookie.getValue(), session); + return true; + } + } + } + throw new Exception("no cookies set"); + } + return true; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoResponse.java b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoResponse.java new file mode 100644 index 0000000..17792b2 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoResponse.java @@ -0,0 +1,50 @@ +package com.nttdata.calender.api.rsso; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class RssoResponse { + @JsonProperty("realm") + private String realm; + + @JsonProperty("user-id") + private String userId; + + @JsonProperty("tenant-id") + private String tenantId; + + @JsonProperty("response-sessionStatus") + private String responseSessionStatus; + + public String getRealm() { + return this.realm; + } + + public void setRealm(String realm) { + this.realm = realm; + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getTenantId() { + return this.tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getResponseSessionStatus() { + return this.responseSessionStatus; + } + + public void setResponseSessionStatus(String responseSessionStatus) { + this.responseSessionStatus = responseSessionStatus; + } + +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/approval/Approval.java b/backend/src/main/java/com/nttdata/calender/approval/Approval.java new file mode 100644 index 0000000..bcb253c --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/approval/Approval.java @@ -0,0 +1,93 @@ +package com.nttdata.calender.approval; + +import org.springframework.stereotype.Service; + +import com.bmc.arsys.api.ARException; +import com.bmc.arsys.api.Entry; +import com.bmc.arsys.api.Value; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * This class handles approval-related operations. + */ +@Service +public class Approval { + private RemedyJavaAPI remedyJavaAPI; + + /** + * Constructor for the Approval class. + * + * @param remedyJavaAPI An instance of RemedyJavaAPI. + */ + public Approval(RemedyJavaAPI remedyJavaAPI) { + this.remedyJavaAPI = remedyJavaAPI; + } + + /** + * Updates the approval status of a change request. + * + * @param request The approval update request + * @return A string indicating the result of the update operation + * @throws ARException If an error occurs during the update + */ + public String update(ApprovalUpdateRequest request) throws ARException { + remedyJavaAPI.impersonateUser("ext_StanzPa"); + String user = remedyJavaAPI.getUser(); + String action = "APPROVAL"; + + var queryUpdate = new Query.QueryBuilder("ASF:CHG_CAL_Interactions") + .addFieldValue("ChangeNr", 666000002, request.getChangeNrValue()) + .addFieldValue("Action", 666000001, new Value(action)) + .addFieldValue("ApprovalAction", 1000003264, request.getApprovalActionValue()) + .build(); + + var queryChanges = new Query.QueryBuilder("ASF:WI_TAS_Paket") + .addFieldId("ChangeNr", 1000000182) + .addFieldId("ActualStatus", 7) + .build(); + + Entry change = remedyJavaAPI + .queryFieldsById("\'Infrastructure Change ID\' = \"" + request.getChangeNrValue().toString() + "\"", + queryChanges.getFieldIds(), queryChanges.getFormName(), null, 0, 0) + .get(0); + + int approvalAction = queryUpdate.getFieldValue("ApprovalAction").getIntValue(); + var actualStatus = change.get(queryChanges.getFieldId("ActualStatus")); + + if (approvalAction == 1 || approvalAction == 2) { + if (inApprovalList(user, request.getChangeNr())) + return this.remedyJavaAPI.createEntry(queryUpdate); + else + return "user (" + user + ") has no authorization for approval."; + } else if (approvalAction == 3) { + if (request.getChangeNr().contains("PKG") && actualStatus.getIntValue() == 1) + return this.remedyJavaAPI.createEntry(queryUpdate); + else + return request.getChangeNr().contains("PKG") + ? "actual status not set to 'request for authorization'." + : "is not a package (PKG)"; + } else { + return "invalid approval status (must be 1, 2 or 3)"; + } + } + + /** + * Checks if a user is in the approval list for a specific change. + * + * @param user The username of the user + * @param changeNr The change number + * @return True if the user is in the approval list, false otherwise + * @throws ARException If an error occurs during the query + */ + public boolean inApprovalList(String user, String changeNr) throws ARException { + var queryApprovalList = new Query.QueryBuilder("ASF:OverviewConsole_TicketsJoinAPDetailSignature") + .addFieldId("Approvers", 13207).build(); + + var approversOI = remedyJavaAPI.queryFieldsById("\'Ticketnumber\' = \"" + changeNr + "\"", + queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); + + String approvers = approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); + return approvers.contains(user); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/approval/ApprovalUpdateRequest.java b/backend/src/main/java/com/nttdata/calender/approval/ApprovalUpdateRequest.java new file mode 100644 index 0000000..ca29119 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/approval/ApprovalUpdateRequest.java @@ -0,0 +1,65 @@ +package com.nttdata.calender.approval; + +import com.bmc.arsys.api.Value; + +/** + * This class represents a request to update the approval status of a change. + */ +public class ApprovalUpdateRequest { + private String changeNr; + private int approvalAction; + + /** + * Sets the change number. + * + * @param changeNr The change number + */ + public void setChangeNr(String changeNr) { + this.changeNr = changeNr; + } + + /** + * Sets the approval action. + * + * @param approvalAction The approval action + */ + public void setApprovalAction(int approvalAction) { + this.approvalAction = approvalAction; + } + + /** + * Retrieves the change number. + * + * @return The change number + */ + public String getChangeNr() { + return this.changeNr; + } + + /** + * Retrieves the approval action. + * + * @return The approval action + */ + public int getApprovalAction() { + return this.approvalAction; + } + + /** + * Retrieves the change number as a Value object. + * + * @return The change number as a Value object + */ + public Value getChangeNrValue() { + return new Value(this.changeNr); + } + + /** + * Retrieves the approval action as a Value object. + * + * @return The approval action as a Value object + */ + public Value getApprovalActionValue() { + return new Value(this.approvalAction); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java new file mode 100644 index 0000000..16a73c7 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -0,0 +1,231 @@ +package com.nttdata.calender.changes; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Optional; +import java.util.Set; +import java.util.TimeZone; +import java.util.stream.Collectors; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.bmc.arsys.api.ARException; +import com.bmc.arsys.api.Entry; +import com.bmc.arsys.api.Timestamp; +import com.bmc.arsys.api.Value; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * Class representing the change with all of the change specific attributes. + */ +@Service +public class Change { + private Query queryChange; + private RemedyJavaAPI api; + private final static String formName = "ASF:WI_TAS_Paket"; + private static Logger logger = LogManager.getLogger("logger"); + + /** + * Constructor for the {@link Change} class which gets autowired with the + * {@link RemedyJavaAPI} api. + * + * @param api the RemedyJavaAPI instance to be injected + */ + @Autowired + public Change(RemedyJavaAPI api) { + this.api = api; + // TODO: Contract + this.queryChange = new Query.QueryBuilder(formName) + .addFieldId("ChangeNr", 1000000182) + .addFieldId("SupportGroup", 1000000015) + .addFieldId("State", 7) + .addFieldId("ResourceName", 1000000000) + .addFieldId("D1", 1000000349) + .addFieldId("D2", 1000000350) + .addFieldId("D3", 666000350) + .addFieldId("D4", 1000000364) + .addFieldId("StatusReason", 1000000150) + .addFieldId("ApprovalStatus", 1000003264) + .addFieldId("CoordinatorSg", 1000003229) + .addFieldId("CoordinatorSgId", 1000003234) + .addFieldId("ChangeCoordinator", 1000003230) + .addFieldId("SupportGroupId", 1000000079) + .addFieldId("ProviderCluster", 610020002) + .addFieldId("ChangeImplementer", 610023230) + .addFieldId("ChangeImplementerLogin", 610023231) + .addFieldId("ChangeImplementerPersonId", 610023232) + .addFieldId("PackageType", 670031016) + .addFieldId("Contract", 670031002) + .build(); + } + + /** + * Retrieve entries from the form using the given qualification. With the + * returned entry set, + * print out the ID of each entry and the contents in its shortDescription + * field. + * + * @param request the defined qualifier for specific selection + * @return a List of {@link Change} for every entry found + * @throws ARException if an error occurs during the retrieval process + */ + public ChangeResponse get(ChangeRequest request) throws ARException { + api.impersonateUser("ext_StanzPa"); + + // Queries for SupportGroup of impersonated User + var queryPerson = new Query.QueryBuilder("CTM:Support Group Association") + .addFieldId("FullName", 1000000017) + .addFieldId("SupportGroupId", 1000000079) + .build(); + var peopleInfos = api.queryFieldsById("\'Login ID\' = \"" + api.getUser() + "\"", + queryPerson.getFieldIds(), + queryPerson.getFormName(), null, 0, 0); + if (peopleInfos.isEmpty()) { + throw new RuntimeException("No user found with this loginId"); + } + + // constructs set of supportGroups and full name of impersonated User + Set peopleSupportGroup = peopleInfos.stream() + .map(entry -> entry.get(queryPerson.getFieldId("SupportGroupId")).toString()) + .collect(Collectors.toSet()); + var peopleFullName = peopleInfos.get(0).get(queryPerson.getFieldId("FullName")).toString(); + + var qualifier = ""; + if (request.getFilter() != null) { + qualifier = request.constructQualifier(queryChange, api); + } + + var entries = api.queryFieldsById(qualifier, this.queryChange.getFieldIds(), + this.queryChange.getFormName(), + request.getSort().getSortInfo(queryChange), request.getSliceStart(), + request.getSliceEnd()); + entries.removeIf(entry -> !peopleSupportGroup.contains(getValueStringByID(entry, "SupportGroupId"))); + + var changes = new ArrayList(); + entries.forEach(entry -> { + var change = new ChangeItem(entry.getEntryId()); + change.setChangeNr(getValueStringByID(entry, "ChangeNr")); + change.setSupportGroup(getValueStringByID(entry, "SupportGroup")); + change.setState(Optional.ofNullable(getValue(entry, "State")) + .map(Value::getIntValue) + .orElse(-1)); + change.setResourceName(getValueStringByID(entry, "ResourceName")); + change.setD1(timestampToDateById(entry, "D1")); + change.setD2(timestampToDateById(entry, "D2")); + change.setD3(timestampToDateById(entry, "D3")); + change.setD4(timestampToDateById(entry, "D4")); + change.setStatusReason(getValueStringByID(entry, "StatusReason")); + change.setApprovalStatus(getValueStringByID(entry, "ApprovalStatus")); + change.setCoordinatorSg(getValueStringByID(entry, "CoordinatorSg")); + change.setCoordinatorSgId(getValueStringByID(entry, "CoordinatorSgId")); + change.setSupportGroupId(getValueStringByID(entry, "SupportGroupId")); + change.setProviderCluster(getValueStringByID(entry, "ProviderCluster")); + change.setChangeImplementer(getValueStringByID(entry, "ChangeImplementer")); + change.setChangeImplementerLogin(getValueStringByID(entry, "ChangeImplementerLogin")); + change.setChangeImplementerPersonId(getValueStringByID(entry, "ChangeImplementerPersonId")); + change.setPackageType(getValueStringByID(entry, "PackageType")); + change.setContract(getValueStringByID(entry, "Contract")); + + change.setImplementerEdit( + Optional.ofNullable(entry.get(queryChange.getFieldId("ChangeCoordinator"))) + .map(Object::toString) + .filter(peopleFullName::equals) + .isPresent()); + changes.add(change); + }); + + api.freeImpersonatedUser(); + + return new ChangeResponse(entries.size(), changes); + } + + /** + * Returns the {@link Value} of an entry based on the provided description. + * + * @param entry the {@link Entry} from which a value will be retrieved + * @param description the name of the field from which the value should be + * retrieved + * @return the value of the entry + */ + private Value getValue(Entry entry, String description) { + return entry.get(this.queryChange.getFieldId(description)); + } + + /** + * Converts a {@link Timestamp} to a {@link Date} format or returns null if the + * timestamp is null. + * + * @param entry the {@link Entry} containing the timestamp value + * @param description the description of the field containing the timestamp + * value + * @return the converted {@link Date} or null if the timestamp is null + */ + private Date timestampToDateById(Entry entry, String description) { + return Optional.ofNullable(getValue(entry, description)) + .map(Value::getValue) + .map(Timestamp.class::cast) + .map(Timestamp::toDate) + .orElse(null); + } + + /** + * Remaps a {@link Value} to a String if possible, or returns null. + * + * @param entry the {@link Entry} from which the value should be retrieved + * @param description the description of the field containing the value + * @return the value as a {@link String} or null + */ + private String getValueStringByID(Entry entry, String description) { + return Optional.ofNullable(getValue(entry, description)) + .map(Value::toString) + .orElse(""); + } + + /** + * Updates the timestamp of a change entry or modifies the short description + * field on the specified entry. + * Extracts data from the request object. + * Builds the query to update the d2 field. + * Modifies the entry on one of two forms according to the state. + * + * @param request the object containing the ID of the change entry and the new + * timestamp + * @throws ARException if an error occurs during the modification process + */ + public void modifyTimestamp(ChangeUpdateRequest request) throws ARException { + String entryId = request.getResourceId(); + String d2 = request.getD2(); + int state = request.getState(); + String changeNr = request.getChangeNr(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'"); + sdf.setTimeZone(TimeZone.getTimeZone("GMT")); + + try { + Timestamp ts = new Timestamp(sdf.parse(d2)); + if (state == 0) { + Query query = new Query.QueryBuilder("ASF:WI_TAS_Paket") + .addFieldValue("d2", 1000000350, new Value(ts)).build(); + api.modifyEntry(entryId, query); + } else { + Query queryInfrastructureChange = new Query.QueryBuilder("CHG:Infrastructure Change") + .addFieldValue("d2", 1000000350, new Value(ts)).build(); + + var change = api.queryFieldsById("\'Infrastructure Change ID\' = \"" + changeNr + "\"", + queryInfrastructureChange.getFieldIds(), + queryInfrastructureChange.getFormName(), null, 0, 0); + + api.modifyEntry(change.get(0).getEntryId(), queryInfrastructureChange); + } + + } catch (ParseException e) { + logger.error(e, e); + } + } +} diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java new file mode 100644 index 0000000..f9214fd --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java @@ -0,0 +1,561 @@ +package com.nttdata.calender.changes; + +import java.util.Date; + +/** + * The {@link ChangeItem} class defines a model for a change item. A change item + * is an object that represents a specific change in the Gantt system, and + * contains information about the change such as the resource id, name, state, + * contract, support group, coordinator, provider cluster, approval status, and + * implementation details. + */ +public class ChangeItem { + private String resourceId; + private String resourceName; + private String changeNr; + private int state; + private String contract; + private String supportGroup; + private String coordinatorSgId; + private String coordinatorSg; + private String supportGroupId; + private String providerCluster; + private String approvalStatus; + private String statusReason; + private String changeImplementer; + private String changeImplementerLogin; + private String changeImplementerPersonId; + private boolean implementerEdit; + private String packageType; + private Date D1; + private Date D2; + private Date D3; + private Date D4; + + /** + * + * Constructs a new ChangeItem object with a given resourceId. + * + * @param resourceId a string that represents the resource id of the change + * item. + */ + public ChangeItem(String resourceId) { + this.resourceId = resourceId; + } + + /** + * + * Constructs a new ChangeItem object with a given resourceId, resourceName and + * D2. + * + * @param resourceId a string that represents the resource id of the change + * item. + * @param resourceName a string that represents the resource name of the change + * item. + * @param D2 a date that represents a date related to the change item. + */ + public ChangeItem(String resourceId, String resourceName, Date D2) { + this.resourceId = resourceName; + this.resourceName = resourceName; + this.D2 = D2; + } + + /** + * + * Constructs a new ChangeItem object with a given resourceId, resourceName, + * state, + * contract, supportGroup, tasks, and D2. + * + * @param resourceId a string that represents the resource id of the change + * item. + * @param resourceName a string that represents the resource name of the change + * item. + * @param state an integer that represents the state of the change item. + * @param contract a string that represents the contract of the change item. + * @param supportGroup a string that represents the support group of the change + * item. + * @param tasks a string that represents the tasks of the change item. + * @param D2 a date that represents a date related to the change item. + */ + public ChangeItem(String resourceId, String resourceName, int state, String contract, String supportGroup, + String tasks, + Date D2) { + this.resourceId = resourceId; + this.resourceName = resourceName; + this.state = state; + this.contract = contract; + this.supportGroup = supportGroup; + this.D2 = D2; + } + + /** + * + * Constructs a new ChangeItem object with a given set of member variables. + * + * @param resourceId a string that represents the resource id of + * the change item. + * @param resourceName a string that represents the resource name + * of the change item. + * @param changeNr a string that represents the change number + * of the change item. + * @param state an integer that represents the state of the + * change item. + * @param contract a string that represents the contract of the + * change item. + * @param supportGroup a string that represents the support group + * of the change item. + * @param coordinatorSgId a string that represents the coordinator + * support group id of the change item. + * @param coordinatorSg a string that represents the coordinator + * support group of the change item. + * @param supportGroupId a string that represents the support group + * id of the change item. + * @param providerCluster a string that represents the provider + * cluster of the change item. + * @param approvalStatus a string that represents the approval status + * of the change item. + * @param statusReason a string that represents the status reason + * of the change item. + * @param D1 a date that represents a date related to the + * change item. + * @param D2 a date that represents a date related to the + * change item. + * @param D3 a date that represents a date related to the + * change item. + * @param D4 a date that represents a date related to the + * change item. + * @param changeImplementer a string that represents the change + * implementer of the change item. + * @param changeImplementerLogin a string that represents the login of the + * change implementer of the change item. + * @param changeImplementerPersonId a string that represents the person id of + * the change implementer of the change item. + */ + public ChangeItem(String resourceId, String resourceName, String changeNr, int state, String contract, + String supportGroup, String coordinatorSgId, String coordinatorSg, String supportGroupId, + String providerCluster, String approvalStatus, String statusReason, Date D1, Date D2, Date D3, Date D4, + String changeImplementer, String changeImplementerLogin, String changeImplementerPersonId) { + this.resourceId = resourceId; + this.resourceName = resourceName; + this.changeNr = changeNr; + this.state = state; + this.contract = contract; + this.supportGroup = supportGroup; + this.coordinatorSgId = coordinatorSgId; + this.coordinatorSg = coordinatorSg; + this.supportGroupId = supportGroupId; + this.providerCluster = providerCluster; + this.approvalStatus = approvalStatus; + this.statusReason = statusReason; + this.D1 = D1; + this.D2 = D2; + this.D3 = D3; + this.D4 = D4; + this.changeImplementer = changeImplementer; + this.changeImplementerLogin = changeImplementerLogin; + this.changeImplementerPersonId = changeImplementerPersonId; + } + + /** + * + * Gets the status reason of the change item. + * + * @return String that represents the status reason of the change item. + */ + public String getStatusReason() { + return this.statusReason; + } + + /** + * + * Sets the status reason of the change item. + * + * @param statusReason String that represents the status reason of the change + * item. + */ + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + /** + * + * Gets the approval status of the change item. + * + * @return String that represents the approval status of the change item. + */ + public String getApprovalStatus() { + return this.approvalStatus; + } + + /** + * + * Sets the approval status of the change item. + * + * @param approvalStatus String that represents the approval status of the + * change item. + */ + public void setApprovalStatus(String approvalStatus) { + this.approvalStatus = approvalStatus; + } + + /** + * + * Gets the change number of the change item. + * + * @return String that represents the change number of the change item. + */ + public String getChangeNr() { + return this.changeNr; + } + + /** + * + * Sets the change number of the change item. + * + * @param changeNr String that represents the change number of the change + * item. + */ + public void setChangeNr(String changeNr) { + this.changeNr = changeNr; + } + + /** + * + * Gets the resource id of the change item. + * + * @return String that represents the resource id of the change item. + */ + public String getResourceId() { + return this.resourceId; + } + + /** + * + * Sets the resource id of the change item. + * + * @param resourceId String that represents the resource id of the change + * item. + */ + public void setResourceId(String resourceId) { + this.resourceId = resourceId; + } + + /** + * + * Gets the resource name of the change item. + * + * @return String that represents the resource name of the change item. + */ + public String getResourceName() { + return this.resourceName; + } + + /** + * + * Sets the resource name of the change item. + * + * @param resourceName String that represents the resource name of the change + * item. + */ + public void setResourceName(String resourceName) { + this.resourceName = resourceName; + } + + /** + * + * Gets a date related to the change item. + * + * @return Date that represents a date related to the change item. + */ + public Date getD1() { + return this.D1; + } + + /** + * + * Sets a date related to the change item. + * + * @param D1 Date that represents a date related to the change item. + */ + public void setD1(Date D1) { + this.D1 = D1; + } + + /** + * + * Gets a date related to the change item. + * + * @return Date that represents a date related to the change item. + */ + public Date getD3() { + return this.D3; + } + + /** + * + * Sets a date related to the change item. + * + * @param D3 Date that represents a date related to the change item. + */ + public void setD3(Date D3) { + this.D3 = D3; + } + + /** + * + * Gets a date related to the change item. + * + * @return Date that represents a date related to the change item. + */ + public Date getD4() { + return this.D4; + } + + /** + * + * Sets a date related to the change item. + * + * @param D4 Date that represents a date related to the change item. + */ + public void setD4(Date D4) { + this.D4 = D4; + } + + /** + * Returns the implementer edit status. + * + * @return true if the implementer is allowed to edit, false otherwise. + */ + public boolean getImplementerEdit() { + return this.implementerEdit; + } + + /** + * Sets the implementer edit status. + * + * @param implementerEdit Boolean representing the implementer edit status. + */ + public void setImplementerEdit(boolean implementerEdit) { + this.implementerEdit = implementerEdit; + } + + /** + * Returns the state of the object. + * + * @return an int representing the state. + */ + public int getState() { + return this.state; + } + + /** + * Sets the state of the object. + * + * @param state an int representing the state. + */ + public void setState(int state) { + this.state = state; + } + + /** + * Returns the contract associated with the object. + * + * @return String representing the contract. + */ + public String getContract() { + return this.contract; + } + + /** + * Sets the contract associated with the object. + * + * @param vertrag String representing the contract. + */ + public void setContract(String vertrag) { + this.contract = vertrag; + } + + /** + * Returns the support group associated with the object. + * + * @return String representing the support group. + */ + public String getSupportGroup() { + return this.supportGroup; + } + + /** + * Sets the support group associated with the object. + * + * @param supportGroup String representing the support group. + */ + public void setSupportGroup(String supportGroup) { + this.supportGroup = supportGroup; + } + + /** + * Returns the coordinator support group ID. + * + * @return String representing the coordinator support group ID. + */ + public String getCoordinatorSgId() { + return this.coordinatorSgId; + } + + /** + * Sets the coordinator support group ID. + * + * @param coordinatorSgId String representing the coordinator support group + * ID. + */ + public void setCoordinatorSgId(String coordinatorSgId) { + this.coordinatorSgId = coordinatorSgId; + } + + /** + * Returns the coordinator support group. + * + * @return String representing the coordinator support group. + */ + public String getCoordinatorSg() { + return this.coordinatorSg; + } + + /** + * Sets the coordinator support group. + * + * @param coordinatorSg String representing the coordinator support group. + */ + public void setCoordinatorSg(String coordinatorSg) { + this.coordinatorSg = coordinatorSg; + } + + /** + * Returns the support group ID. + * + * @return String representing the support group ID. + */ + public String getSupportGroupId() { + return this.supportGroupId; + } + + /** + * Sets the support group ID. + * + * @param supportGroupId String representing the support group ID. + */ + public void setSupportGroupId(String supportGroupId) { + this.supportGroupId = supportGroupId; + } + + /** + * Returns the provider cluster. + * + * @return String representing the provider cluster. + */ + public String getProviderCluster() { + return this.providerCluster; + } + + /** + * Sets the provider cluster. + * + * @param providerCluster String representing the provider cluster. + */ + public void setProviderCluster(String providerCluster) { + this.providerCluster = providerCluster; + } + + /** + * Returns the D2 date. + * + * @return Date object representing the D2 date. + */ + public Date getD2() { + return this.D2; + } + + /** + * Sets the D2 date. + * + * @param D2 Date object representing the D2 date. + */ + public void setD2(Date D2) { + this.D2 = D2; + } + + /** + * Returns the change implementer. + * + * @return String representing the change implementer. + */ + public String getChangeImplementer() { + return this.changeImplementer; + } + + /** + * Sets the change implementer. + * + * @param changeImplementer String representing the change implementer. + */ + public void setChangeImplementer(String changeImplementer) { + this.changeImplementer = changeImplementer; + } + + /** + * Returns the change implementer login. + * + * @return String representing the change implementer login. + */ + public String getChangeImplementerLogin() { + return this.changeImplementerLogin; + } + + /** + * Sets the change implementer login. + * + * @param changeImplementerLogin String representing the change implementer + * login. + */ + public void setChangeImplementerLogin(String changeImplementerLogin) { + this.changeImplementerLogin = changeImplementerLogin; + } + + /** + * Returns the change implementer person ID. + * + * @return String representing the change implementer person ID. + */ + public String getChangeImplementerPersonId() { + return this.changeImplementerPersonId; + } + + /** + * Sets the change implementer person ID. + * + * @param changeImplementerPersonId String representing the change implementer + * person ID. + */ + public void setChangeImplementerPersonId(String changeImplementerPersonId) { + this.changeImplementerPersonId = changeImplementerPersonId; + } + + /** + * Returns the package type. + * + * @return String representing the package type. + */ + public String getPackageType() { + return this.packageType; + } + + /** + * Sets the package type. + * + * @param packageType String representing the package type. + */ + public void setPackageType(String packageType) { + this.packageType = packageType; + } + +} diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java new file mode 100644 index 0000000..ec19d44 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java @@ -0,0 +1,169 @@ +package com.nttdata.calender.changes; + +import com.bmc.arsys.api.ARException; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; +import com.nttdata.calender.changes.query.Filter; +import com.nttdata.calender.changes.query.Sort; + +/** + * Represents a change request object that stores information about slice start, + * slice end, + * filter criteria, and sorting options. + */ +public class ChangeRequest { + private int sliceStart; + private int sliceEnd; + private Filter[] filter; + private Sort sort; + + /** + * Returns the starting index of the slice. + * + * @return an int representing the slice start index. + */ + public int getSliceStart() { + return this.sliceStart; + } + + /** + * Sets the starting index of the slice. + * + * @param sliceStart an int representing the slice start index. + */ + public void setSliceStart(int sliceStart) { + this.sliceStart = sliceStart; + } + + /** + * Returns the ending index of the slice. + * + * @return an int representing the slice end index. + */ + public int getSliceEnd() { + return this.sliceEnd; + } + + /** + * Sets the ending index of the slice. + * + * @param sliceEnd an int representing the slice end index. + */ + public void setSliceEnd(int sliceEnd) { + this.sliceEnd = sliceEnd; + } + + /** + * Returns the array of filter criteria. + * + * @return an array of {@link Filter} objects representing the filter criteria. + */ + public Filter[] getFilter() { + return this.filter; + } + + /** + * Sets the array of filter criteria. + * + * @param filter an array of {@link Filter} objects representing the filter + * criteria. + */ + public void setFilter(Filter[] filter) { + this.filter = filter; + } + + /** + * Returns the sorting options for the change request. + * + * @return a {@link Sort} object representing the sorting options. + */ + public Sort getSort() { + return this.sort; + } + + /** + * Sets the sorting options for the change request. + * + * @param sort a {@link Sort} object representing the sorting options. + */ + public void setSort(Sort sort) { + this.sort = sort; + } + + /** + * Constructs a qualifier based on the filters defined in the object and the + * given Query object. + * + * @param query the {@link Query} object containing form and field information. + * @param api the {@link RemedyJavaAPI} object used for accessing the AR + * System API. + * @return a String representing the constructed qualifier. + * @throws ARException if an error occurs while constructing the qualifier or an + * invalid filter is provided. + */ + // TODO: Exception handling (unsuppoprted qualifier) + public String constructQualifier(Query query, RemedyJavaAPI api) throws ARException { + var qualifier = ""; + + for (int i = 0; i < this.filter.length; i++) { + var column = this.filter[i].getColumn(); + if (!column.isEmpty()) { + var inner_qualifier = ""; + + if (column.equals("D2")) { + var startFrom = filter[i].getCriteria()[0]; + var startTo = filter[i].getCriteria()[1]; + if (!startFrom.isEmpty() && !startTo.isEmpty()) { + var dateColumn = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column)); + + // Same day changes need to startFrom=day and startTo=day+24h 60m 60s + if (startFrom.equals(startTo)) { + startTo = "\' < (\"" + startTo + "\"" + " + (24 * (60 * 60)))"; + } else + startTo = "\' <= \"" + startTo + "\""; + + qualifier += "\'" + dateColumn + "\' >= \"" + startFrom + "\" AND "; + qualifier += "\'" + dateColumn + startTo; + } + qualifier = "(" + qualifier + ")"; + continue; + } + + column = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column)); + + var inner_filter = "\'" + column + "\' "; + var criterias = filter[i].getCriteria(); + var inner_concat = " OR "; + var inner_criteria_prefix = ""; + + switch (filter[i].getFilter()) { + case "equals": + inner_filter += "= "; + break; + case "contains": + inner_filter += "LIKE "; + inner_concat = " AND "; + inner_criteria_prefix = "%"; + break; + default: + throw new ARException(); + } + + for (int j = 0; j < criterias.length; j++) { + criterias[j] = inner_criteria_prefix + criterias[j] + inner_criteria_prefix; + inner_qualifier += "(" + inner_filter + "\"" + criterias[j] + "\")"; + if (j < criterias.length - 1) { + inner_qualifier += inner_concat; + } + } + + qualifier += "(" + inner_qualifier + ")"; + if (i < filter.length - 1) { + qualifier += " AND "; + } + } + } + + return qualifier; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeResponse.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeResponse.java new file mode 100644 index 0000000..0f0cf00 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeResponse.java @@ -0,0 +1,64 @@ +package com.nttdata.calender.changes; + +import java.util.ArrayList; + +/** + * Represents a change response object that stores information about the total + * size of the change items + * and a list of change items. + */ +public class ChangeResponse { + private int totalSize; + private ArrayList changes; + + /** + * Constructs a ChangeResponse object with the given total size and list of + * change items. + * + * @param totalSize an int representing the total size of the change items. + * @param changes an {@link ArrayList} of {@link ChangeItem} objects + * representing the list of change items. + */ + public ChangeResponse(int totalSize, ArrayList changes) { + this.totalSize = totalSize; + this.changes = changes; + } + + /** + * Returns the total size of the change items. + * + * @return an int representing the total size of the change items. + */ + public int getTotalSize() { + return totalSize; + } + + /** + * Sets the total size of the change items. + * + * @param totalSize an int representing the total size of the change items. + */ + public void setTotalSize(int totalSize) { + this.totalSize = totalSize; + } + + /** + * Returns the list of change items. + * + * @return an {@link ArrayList} of {@link ChangeItem} objects representing the + * list of change items. + */ + public ArrayList getChanges() { + return changes; + } + + /** + * Sets the list of change items. + * + * @param changes an {@link ArrayList} of {@link ChangeItem} objects + * representing the list of change items. + */ + public void setChanges(ArrayList changes) { + this.changes = changes; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeUpdateRequest.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeUpdateRequest.java new file mode 100644 index 0000000..346bb1d --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeUpdateRequest.java @@ -0,0 +1,77 @@ +package com.nttdata.calender.changes; + +/** + * Represents a change update request object that stores information about + * the changeNr, state and d2 values and the resource ID. + */ +public class ChangeUpdateRequest { + + private String resourceId; + private String changeNr; + private String d2; + private int state; + + /** + * Sets the d2 value for the change update request. + * @param d2 String representing the d2 value + */ + public void setD2(String d2) { + this.d2 = d2; + } + + /** + * Sets the resource ID for the change update request. + * @param resourceId String representing the resource ID + */ + public void setResourceId(String resourceId) { + this.resourceId = resourceId; + } + + /** + * Sets the change number for the change update request. + * @param changeNr String representing the change number + */ + public void setChangeNr(String changeNr) { + this.changeNr = changeNr; + } + + /** + * Sets the state for the change update request. + * @param state An integer representing the state + */ + public void setState(int state) { + this.state = state; + } + + /** + * Returns the d2 value for the change update request. + * @return String representing the d2 value + */ + public String getD2() { + return this.d2; + } + + /** + * Returns the resource ID for the change update request. + * @return String representing the resource ID + */ + public String getResourceId() { + return this.resourceId; + } + + /** + * Returns the change number for the change update request. + * @return String representing the change number + */ + public String getChangeNr() { + return this.changeNr; + } + + /** + * Returns the state for the change update request. + * @return An integer representing the state + */ + public int getState() { + return this.state; + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/changes/query/Filter.java b/backend/src/main/java/com/nttdata/calender/changes/query/Filter.java new file mode 100644 index 0000000..96411df --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/changes/query/Filter.java @@ -0,0 +1,65 @@ +package com.nttdata.calender.changes.query; +import com.nttdata.calender.changes.Change; + +/** + * Defines the filter objects used in the retrieval of {@link Change}. + */ +public class Filter { + private String column; + private String filter; + private String[] criteria; + + /** + * Returns column of {@link Filter} + * + * @return the column + */ + public String getColumn() { + return this.column; + } + + /** + * Sets column of {@link Filter} + * + * @param column the column to set + */ + public void setColumn(String column) { + this.column = column; + } + + /** + * Returns filter of {@link Filter} + * + * @return the filter + */ + public String getFilter() { + return this.filter; + } + + /** + * Sets filter of {@link Filter} + * + * @param filter the filter to set + */ + public void setFilter(String filter) { + this.filter = filter; + } + + /** + * Returns the criterias of {@link Filter}. + * + * @return the criteria + */ + public String[] getCriteria() { + return this.criteria; + } + + /** + * Sets the criteria of the {@link Filter}. + * + * @param criteria the criteria to set + */ + public void setCriteria(String[] criteria) { + this.criteria = criteria; + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/changes/query/Sort.java b/backend/src/main/java/com/nttdata/calender/changes/query/Sort.java new file mode 100644 index 0000000..3e19245 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/changes/query/Sort.java @@ -0,0 +1,78 @@ +package com.nttdata.calender.changes.query; + +import com.bmc.arsys.api.Constants; +import com.bmc.arsys.api.SortInfo; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.changes.Change; + +/** + * Defines the sort object needed for the retrieval of {@link Change}. + */ +public class Sort { + private String column; + private String mode; + + /** + * Returns the column of the {@link Sort}. + * + * @return the column + */ + public String getColumn() { + return this.column; + } + + /** + * Sets the column of the {@link Sort}. + * + * @param column the column to set + */ + public void setColumn(String column) { + this.column = column; + } + + /** + * Returns the mode of the {@link Sort}. + * + * @return the mode + */ + public String getMode() { + return this.mode; + } + + /** + * Sets the mode of the {@link Sort}. + * + * @param mode the mode to set + */ + public void setMode(String mode) { + this.mode = mode; + } + + /** + * Constructs a {@link SortInfo} object based on the parameters of the + * {@link Sort} object. + * This {@link SortInfo} object is used to query the changes with the specified + * sort order. + * + * @param changeQuery the {@link Query} object used to retrieve the fieldId of + * the column + * @return the constructed SortInfo object + */ + public SortInfo getSortInfo(Query changeQuery) { + var column = changeQuery.getFieldId(this.column); + // TODO: handle default of sortOrder + int sortOrder = 0; + + switch (this.mode) { + case "asc": + sortOrder = Constants.AR_SORT_ASCENDING; + break; + case "dsc": + sortOrder = Constants.AR_SORT_DESCENDING; + break; + } + + return new SortInfo(column, sortOrder); + } + +} diff --git a/backend/src/main/java/com/nttdata/calender/contracts/Contract.java b/backend/src/main/java/com/nttdata/calender/contracts/Contract.java new file mode 100644 index 0000000..59ccead --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/contracts/Contract.java @@ -0,0 +1,97 @@ +package com.nttdata.calender.contracts; + +import java.util.ArrayList; +import java.util.stream.Collectors; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.bmc.arsys.api.ARException; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * Represents a singleton instance of the Contract class, which provides + * functionality for querying Remedy for contracts and changes data, + * and retrieving a list of contracts based on matching id's. + */ +public class Contract { + private static final String formName_changes = "ASF:WI_TAS_Paket"; + private static final String formName_contracts = "CTR:ContractBase"; + private static final Contract INSTANCE = new Contract(); + private static final Logger logger = LogManager.getLogger("logger"); + private ArrayList contracts; + + /** + * Private constructor that creates a new empty ArrayList of contracts. + */ + private Contract() { + this.contracts = new ArrayList(); + } + + /** + * @return the singleton instance of the Contract class. + */ + public static Contract getInstance() { + return INSTANCE; + } + + /** + * Queries the Remedy AR Server using the provided `api` object to retrieve + * Contract IDs from both changes and contracts forms, compares the IDs, and + * stores the matching ones in the `contracts` list. + * + * @param api RemedyJavaAPI object used to connect to the Remedy AR Server + */ + + public void queryContracts(RemedyJavaAPI api) { + try { + ArrayList allChanges = new ArrayList(); + ArrayList allContracts = new ArrayList(); + + var queryChanges = new Query.QueryBuilder(formName_changes) + .addFieldId("Contract", 670031002).build(); + + allChanges = api.queryFieldsById("", queryChanges.getFieldIds(), formName_changes, null, 0, 0) + .stream() + .map(entry -> new ContractGetResponse(null, + entry.get(queryChanges.getFieldId("Contract")).toString())) + .distinct() + .collect(Collectors.toCollection(ArrayList::new)); + + var queryContracts = new Query.QueryBuilder(formName_contracts) + .addFieldId("Id", 179) + .addFieldId("Name", 8).build(); + + allContracts = api + .queryFieldsById("\'Contract ID+\' != \"\"", queryContracts.getFieldIds(), formName_contracts, null, + 0, 0) + .stream() + .map(entry -> new ContractGetResponse( + entry.get(queryContracts.getFieldId("Name")).toString(), + entry.get(queryContracts.getFieldId("Id")).toString())) + .distinct() + .collect(Collectors.toCollection(ArrayList::new)); + + for (var change : allChanges) { + for (var contract : allContracts) { + if (change.id.equals(contract.id)) { + this.contracts.add(contract); + break; + } + } + } + + } catch (ARException e) { + logger.error("An error occured while querying: " + e.getMessage()); + e.printStackTrace(); + } + } + + /** + * @return the list of contracts + */ + public ArrayList get() { + return contracts; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/contracts/ContractGetResponse.java b/backend/src/main/java/com/nttdata/calender/contracts/ContractGetResponse.java new file mode 100644 index 0000000..9431f73 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/contracts/ContractGetResponse.java @@ -0,0 +1,54 @@ +package com.nttdata.calender.contracts; + +import java.util.Objects; + +/** + * Represents the response object for a Contract get request, containing + * the contract ID and name. + */ +public class ContractGetResponse { + public String name; + public String id; + + /** + * Constructs a ContractGetResponse object with the given contract ID and name. + * + * @param id ID of the contract + * @param name Name of the contract + */ + public ContractGetResponse(String name, String id) { + this.name = name; + this.id = id; + } + + /** + * Checks if this ContractGetResponse object is equal to another object. + * Two ContractGetResponse objects are considered equal if they have the + * same contract ID. + * + * @param obj the object to compare to this ContractGetResponse object + * @return true if the objects are equal, false otherwise + */ + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof ContractGetResponse)) { + return false; + } + ContractGetResponse other = (ContractGetResponse) obj; + return Objects.equals(id, other.id); + } + + /** + * Generates a hash code for this ContractGetResponse object based on its + * contract ID. + * + * @return an int representing the hash code for this object + */ + @Override + public int hashCode() { + return Objects.hash(id); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/implementer/Implementer.java b/backend/src/main/java/com/nttdata/calender/implementer/Implementer.java new file mode 100644 index 0000000..d662657 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/implementer/Implementer.java @@ -0,0 +1,90 @@ +package com.nttdata.calender.implementer; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.bmc.arsys.api.ARException; +import com.bmc.arsys.api.Value; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * The Implementer class is a Spring component responsible for handling + * implementer related + * operations, such as updating implementers and retrieving implementer + * information. + */ +@Service +public class Implementer { + private RemedyJavaAPI remedyJavaAPI; + private static final String formName = "ASF:WI_TAS_Paket"; + + /** + * Initialization of the Implementer class with autowiring of RemedyJavaAPI. + * + * @param remedyJavaAPI RemedyJavaAPI instance + */ + @Autowired + public Implementer(RemedyJavaAPI remedyJavaAPI) { + this.remedyJavaAPI = remedyJavaAPI; + } + + /** + * Updates the implementer based on the ImplementerUpdateRequest. + * + * @param request ImplementerUpdateRequest object + * @return Entry creation result + * @throws ARException if an ARException occurs + */ + public String update(ImplementerUpdateRequest request) throws ARException { + var action = "SETCHGIMPLEMENTER"; + var queryUpdate = new Query.QueryBuilder("ASF:CHG_CAL_Interactions") + .addFieldValue("ChangeNr", 666000002, request.getPkgIdValue()) + .addFieldValue("Action", 666000001, new Value(action)) + .addFieldValue("LoginId", 666000005, request.getLoginIdValue()) + .build(); + return this.remedyJavaAPI.createEntry(queryUpdate); + } + + /** + * Retrieves all the implementers that are part of the support group of a + * specific change. + * + * @param request Specifies the change through the entryId + * @return ImplementerGetResponse containing the response + * @throws ARException when the entry is not found or there is no permission by + * the user + */ + // TODO: support group is not needed here - it's sufficient to have the entryId + // support group is retrieved through that + public ImplementerGetResponse get(ImplementerGetRequest request) throws ARException { + var query = new Query.QueryBuilder(formName) + .addFieldId("Company", 1000003228) + .addFieldId("SupportOrganization", 1000003227) + .addFieldId("SupportGroupName", 1000003229) + .build(); + + var assignmentInfos = remedyJavaAPI.getEntry(request.getEntryId(), query); + var qualAssoc = "(\'Company\' = \"" + assignmentInfos.get(query.getFieldId("Company")).toString() + + "\" ) AND (\'Support Organization\' =\"" + + assignmentInfos.get(query.getFieldId("SupportOrganization")).toString() + + "\" ) AND (\'Support Group Name\' = \"" + + assignmentInfos.get(query.getFieldId("SupportGroupName")).toString() + + "\" ) AND (\'Status-SGP\' =\"Enabled\") AND (\'Status-SGA\' = \"Enabled\") AND (\'Assignment Availability\' = \"Yes\")"; + var queryPerson = new Query.QueryBuilder("CTM:Support Group Assoc LookUp") + .addFieldId("PersonId", 1000000080) + .addFieldId("FullName", 1000000017) + .addFieldId("LoginId", 4) + .build(); + + var peopleInfos = remedyJavaAPI.queryFieldsById(qualAssoc, queryPerson.getFieldIds(), + queryPerson.getFormName(), null, 0, 0); + var response = new ImplementerGetResponse(); + peopleInfos.stream().forEach(entry -> { + response.addMember(entry.get(queryPerson.getFieldId("FullName")).toString(), + entry.get(queryPerson.getFieldId("PersonId")).toString(), + entry.get(queryPerson.getFieldId("LoginId")).toString()); + }); + return response; + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetRequest.java b/backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetRequest.java new file mode 100644 index 0000000..d419b51 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetRequest.java @@ -0,0 +1,46 @@ +package com.nttdata.calender.implementer; + +/** + * Represents an implementer get request object that stores information about + * the entry ID and support group. + */ +public class ImplementerGetRequest { + private String entryId; + private String supportGroup; + + /** + * Sets the entry ID for the implementer get request. + * + * @param entryId String representing the entry ID + */ + public void setEntryId(String entryId) { + this.entryId = entryId; + } + + /** + * Sets the support group for the implementer get request. + * + * @param supportGruppe String representing the support group + */ + public void setSupportGroup(String supportGruppe) { + this.supportGroup = supportGruppe; + } + + /** + * Returns the entry ID for the implementer get request. + * + * @return String representing the entry ID + */ + public String getEntryId() { + return entryId; + } + + /** + * Returns the support group for the implementer get request. + * + * @return String representing the support group + */ + public String getSupportGroup() { + return supportGroup; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetResponse.java b/backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetResponse.java new file mode 100644 index 0000000..cb4e1ad --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/implementer/ImplementerGetResponse.java @@ -0,0 +1,90 @@ +package com.nttdata.calender.implementer; + +import java.util.ArrayList; + +/** + * Represents an implementer get response object that stores a list of members. + */ +public class ImplementerGetResponse { + ArrayList members; + + /** + * Constructs an ImplementerGetResponse object initializing an empty list of + * members. + */ + ImplementerGetResponse() { + this.members = new ArrayList<>(); + } + + /** + * Returns the list of members in the implementer get response. + * + * @return an {@link ArrayList} of {@link Member} objects representing the list + * of members + */ + public ArrayList getMembers() { + return members; + } + + /** + * Adds a new member to the implementer get response. + * + * @param memberName a String representing the member name + * @param memberId a String representing the member ID + * @param loginId a String representing the member's login ID + */ + public void addMember(String memberName, String memberId, String loginId) { + this.members.add(new Member(memberName, memberId, loginId)); + } + + /** + * Represents a Member object containing information about the member name, + * member ID, and login ID. + */ + private class Member { + String memberName; + String memberId; + String loginId; + + /** + * Constructs a Member object with the given member name, member ID, and login + * ID. + * + * @param memberName String representing the member name + * @param memberId String representing the member ID + * @param loginId String representing the member's login ID + */ + Member(String memberName, String memberId, String loginId) { + this.memberName = memberName; + this.memberId = memberId; + this.loginId = loginId; + } + + /** + * Returns the member ID. + * + * @return String representing the member ID + */ + public String getMemberId() { + return memberId; + } + + /** + * Returns the member name. + * + * @return String representing the member name + */ + public String getMemberName() { + return memberName; + } + + /** + * Returns the member's login ID. + * + * @return String representing the member's login ID + */ + public String getLoginId() { + return loginId; + } + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/implementer/ImplementerUpdateRequest.java b/backend/src/main/java/com/nttdata/calender/implementer/ImplementerUpdateRequest.java new file mode 100644 index 0000000..0ea16a5 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/implementer/ImplementerUpdateRequest.java @@ -0,0 +1,66 @@ +package com.nttdata.calender.implementer; + +import com.bmc.arsys.api.Value; + +/** + * Represents an implementer update request object that stores information about + * the package ID and login ID. + */ +public class ImplementerUpdateRequest { + private String pkgId; + private String loginId; + + /** + * Sets the login ID for the implementer update request. + * + * @param loginId String representing the login ID + */ + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + /** + * Sets the package ID for the implementer update request. + * + * @param pkgId String representing the package ID + */ + public void setPkgId(String pkgId) { + this.pkgId = pkgId; + } + + /** + * Returns the login ID for the implementer update request. + * + * @return String representing the login ID + */ + public String getLoginId() { + return loginId; + } + + /** + * Returns the package ID for the implementer update request. + * + * @return String representing the package ID + */ + public String getPkgId() { + return pkgId; + } + + /** + * Returns the login ID as a {@link Value} object. + * + * @return {@link Value} object representing the login ID + */ + public Value getLoginIdValue() { + return new Value(this.loginId); + } + + /** + * Returns the package ID as a {@link Value} object. + * + * @return {@link Value} object representing the package ID + */ + public Value getPkgIdValue() { + return new Value(this.pkgId); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/packageType/PackageItems.java b/backend/src/main/java/com/nttdata/calender/packageType/PackageItems.java new file mode 100644 index 0000000..8add260 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/packageType/PackageItems.java @@ -0,0 +1,84 @@ +package com.nttdata.calender.packageType; + +import java.util.Objects; + +/** + * Represents a package item with a name and ID. + */ +public class PackageItems { + private String name; + private String id; + + /** + * Constructs a PackageItems object with the provided name and ID. + * + * @param name the name of the package item + * @param id the ID of the package item + */ + public PackageItems(String name, String id) { + this.name = name; + this.id = id; + } + + /** + * Returns the ID of the package item. + * + * @return the ID of the package item + */ + public String getId() { + return this.id; + } + + /** + * Sets the ID of the package item. + * + * @param id the ID of the package item to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * Returns the name of the package item. + * + * @return the name of the package item + */ + public String getName() { + return this.name; + } + + /** + * Sets the name of the package item. + * + * @param name the name of the package item to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * Checks whether two PackageItems objects are equal based on their ID. + * + * @param o the object to compare to this PackageItems object + * @return true if the objects are equal, false otherwise + */ + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof PackageItems)) + return false; + PackageItems other = (PackageItems) o; + return Objects.equals(id, other.id); + } + + /** + * Generates a hash code based on the ID of the package item. + * + * @return the hash code of the package item object + */ + @Override + public int hashCode() { + return Objects.hash(id); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/packageType/PackageType.java b/backend/src/main/java/com/nttdata/calender/packageType/PackageType.java new file mode 100644 index 0000000..1eaebfe --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/packageType/PackageType.java @@ -0,0 +1,77 @@ +package com.nttdata.calender.packageType; + +import java.util.ArrayList; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Service; + +import com.bmc.arsys.api.ARException; +import com.bmc.thirdparty.org.springframework.beans.factory.annotation.Autowired; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * The PackageType class provides methods to query and retrieve the package + * types. + */ +@Service +public class PackageType { + private RemedyJavaAPI api; + private ArrayList packageTypes; + private Query queryPackageItems, queryChanges; + + /** + * Constructor to initialize the PackageType instance. + * + * @param api RemedyJavaAPI object used to connect to the Remedy AR Server + */ + @Autowired + public PackageType(RemedyJavaAPI api) { + this.api = api; + this.packageTypes = new ArrayList<>(); + this.queryPackageItems = new Query.QueryBuilder("CTR:GenericContractJoinCFG_Package") + .addFieldId("RequestId", 1) + .addFieldId("PackageTypeId", 666000179) + .addFieldId("PackageTypeName", 200000020).build(); + this.queryChanges = new Query.QueryBuilder("ASF:WI_TAS_Paket") + .addFieldId("PackageType", 670031016).build(); + } + + /** + * Method to retrieve the package types from the Remedy AR Server, + * where the package type id in changes is the same as in package items. + * + * @return an {@link ArrayList} of {@link PackageItems} objects + * representing the list of package types + * @throws ARException if an error occurs while querying the Remedy AR Server + */ + public ArrayList get() throws ARException { + ArrayList allChanges = api + .queryFieldsById("", queryChanges.getFieldIds(), queryChanges.getFormName(), null, 0, 0) + .stream() + .map(entry -> new PackageItems(null, + entry.get(queryChanges.getFieldId("PackageType")).toString())) + .distinct() + .collect(Collectors.toCollection(ArrayList::new)); + + ArrayList packageItems = api + .queryFieldsById("", queryPackageItems.getFieldIds(), queryPackageItems.getFormName(), + null, 0, 0) + .stream() + .map(entry -> new PackageItems( + entry.get(queryPackageItems.getFieldId("PackageTypeName")).toString(), + entry.get(queryPackageItems.getFieldId("PackageTypeId")).toString())) + .distinct() + .collect(Collectors.toCollection(ArrayList::new)); + + for (var change : allChanges) { + for (var packageItem : packageItems) { + if (change.getId().equals(packageItem.getId())) { + this.packageTypes.add(packageItem); + break; + } + } + } + return packageTypes; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/states/State.java b/backend/src/main/java/com/nttdata/calender/states/State.java new file mode 100644 index 0000000..2ffccad --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/states/State.java @@ -0,0 +1,279 @@ +package com.nttdata.calender.states; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Optional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.bmc.arsys.api.ARException; +import com.bmc.arsys.api.Entry; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * The State class is a singleton class responsible for managing and querying + * state-related information. It handles the retrieval and storage of state + * names in english and german and possible state transitions. + * The states get fetched once at the start of the server. + */ +public class State { + private HashMap state; + private static final State INSTANCE = new State(); + private static final Logger logger = LogManager.getLogger("logger"); + + /** + * Initializes the state with an empty HashMap. + */ + private State() { + this.state = new HashMap<>(); + } + + /** + * Returns the Singleton instance of the State. + * + * @return the Singleton instance of State + */ + public static State getInstance() { + return INSTANCE; + } + + /** + * Returns the state. + * + * @return the state + */ + public HashMap getState() { + return state; + } + + /** + * Sets the state. + * + * @param state the state to set + */ + public void setState(HashMap state) { + this.state = state; + } + + /** + * Query for all the information about the state. First, the possible state + * transitions are queried by {@code queryPossibleStates()}. The query consists + * of + * the actual state, the possible state, and the English state name. Then, the + * state names in English and German are queried by {@code queryStateNames()}. + * These pieces of information are then merged and saved into the {@link #state} + * HashMap. + * + * @param api Remedy API object + */ + public void queryState(RemedyJavaAPI api) { + + try { + queryStateNames(api); + queryPossibleStates(api); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Query the specified form for the possible states. A state is encoded with an + * integer and has one or multiple states that it could transition to. The state + * and possible states are encoded as integers and saved as {@link StateInfo}. + * Additionally, the English state name is queried and saved into the + * {@link StateInfo}. + * + * @param api Remedy API object + * @throws ARException if an error occurs during the query + */ + public void queryPossibleStates(RemedyJavaAPI api) throws ARException { + var configurationQuery = new Query.QueryBuilder("ITSM:Configuration") + .addFieldId("stateTransitionField", 700003001) + .addFieldId("englishName", 700003002) + .addFieldId("possibleState", 700003006) + .addFieldId("actualState", 700003005) + .build(); + + var stateFields = api.queryFieldsById("\'Menu\' = \"CHANGE_CALENDER_STATUS_TRANSITIONS\"", + configurationQuery.getFieldIds(), + configurationQuery.getFormName(), null, 0, 0); + updatePossibleStates(stateFields, configurationQuery); + } + + /** + * Takes the relevant data about possible states out of the {@code List} + * and processes them to be saved into the State. + * + * @param stateFields List of Entry to be processed + * @param configurationQuery Query object of stateFields + */ + public void updatePossibleStates(List stateFields, Query configurationQuery) { + stateFields.stream().forEach(entry -> { + var actualState = entry.get(configurationQuery.getFieldId("actualState")).getIntValue(); + var possibleState = entry.get(configurationQuery.getFieldId("possibleState")).getIntValue(); + this.getState().get(actualState).addPossibleState(possibleState); + }); + } + + /** + * Query the German state name from the specified form. The German name in the + * form is associated with the English one. For merging the names into the + * {@link StateInfo}, we return a HashMap that is composed of the English state + * name as the key and the German state name as the value. + * + * @param api Remedy API object + * @throws ARException if an error occurs during the query + */ + private void queryStateNames(RemedyJavaAPI api) throws ARException { + var nameQuery = new Query.QueryBuilder("SYS:Menu Items Locale LkUp") + .addFieldId("englishName", 1000004339) + .addFieldId("germanName", 1000004338) + .addFieldId("Locale", 1000004342) + .addFieldId("SelectionCode", 1000004336) + .build(); + + var stateNames = api.queryFieldsById("\'Menu Type\' = \"Change Status Values\"", + nameQuery.getFieldIds(), + nameQuery.getFormName(), null, 0, 0); + + updateStateNames(stateNames, nameQuery); + + } + + /** + * Takes the relevant data about state names out of the {@code List} and + * processes them to be saved into the State. + * + * @param stateFields List of Entry to be processed + * @param nameQuery Query object of stateFields + */ + public void updateStateNames(List stateFields, Query nameQuery) { + try { + stateFields.stream() + .filter(entry -> Optional.ofNullable(entry.get(nameQuery.getFieldId("Locale"))) + .map(Object::toString) + .orElse("") + .equals("de")) + .forEach( + entry -> { + var selectionCode = nameQuery.getFieldId("SelectionCode"); + var englishName = nameQuery.getFieldId("englishName"); + var germanName = nameQuery.getFieldId("germanName"); + + this.getState().put(entry.get(selectionCode).getIntValue(), + new StateInfo(entry.get(englishName).toString(), + entry.get(germanName).toString())); + }); + } catch (Exception e) { + logger.error("Database entries for stateName in english and german in bad state"); + e.printStackTrace(); + } + } + + /** + * Generate an Array of JSON objects that consists of all the state information. + * These are the integer representation of the actual state, an Array of integer + * representations of possible states, the English name of the actual state, and + * the German name of the actual state. + * + * @return Array of JSON objects with integer representation of state and + * {@link StateInfo} + * @throws JsonProcessingException if an error occurs during JSON processing + */ + public ArrayList returnJson() throws JsonProcessingException { + var response = new ArrayList(); + this.state.forEach((key, value) -> { + response.add(new StateResponse(key, value.possibleState, value.stateNameEN, value.stateNameDE)); + }); + return response; + } + + /** + * Represents the state info of a state. + */ + public class StateInfo { + String stateNameEN; + String stateNameDE; + ArrayList possibleState; + + /** + * Initializes an instance of the {@link StateInfo} class. + * + * @param possibleState possible state encoded as an integer + * @param stateNameEN state name in English + * @param stateNameDE state name in German + */ + public StateInfo(int possibleState, String stateNameEN, String stateNameDE) { + this.possibleState = new ArrayList<>(); + this.possibleState.add(possibleState); + this.stateNameDE = stateNameDE; + this.stateNameEN = stateNameEN; + } + + /** + * Initializes an instance of the {@link StateInfo} class. + * + * @param stateNameEN state name in English + * @param stateNameDE state name in German + */ + public StateInfo(String stateNameEN, String stateNameDE) { + this.possibleState = new ArrayList<>(); + this.stateNameEN = stateNameEN; + this.stateNameDE = stateNameDE; + } + + /** + * Adds a possible state to transition to, encoded as an integer, to the + * {@link StateInfo}. + * + * @param possibleState possible state + */ + public void addPossibleState(int possibleState) { + if (!this.possibleState.contains(possibleState)) { + this.possibleState.add(possibleState); + } + } + + /** + * Get the state name in English. + * + * @return the state name in English + */ + public String getStateNameEN() { + return stateNameEN; + } + + /** + * Get the state name in German. + * + * @return the state name in German + */ + public String getStateNameDE() { + return stateNameDE; + } + + /** + * Set the state name in German. + * + * @param stateNameDE the state name in German + */ + public void setStateNameDE(String stateNameDE) { + this.stateNameDE = stateNameDE; + } + + /** + * Set the state name in English. + * + * @param stateNameEN the state name in English + */ + public void setStateNameEN(String stateNameEN) { + this.stateNameEN = stateNameEN; + } + + } +} diff --git a/backend/src/main/java/com/nttdata/calender/states/StateChange.java b/backend/src/main/java/com/nttdata/calender/states/StateChange.java new file mode 100644 index 0000000..dbd5b04 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/states/StateChange.java @@ -0,0 +1,53 @@ +package com.nttdata.calender.states; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.bmc.arsys.api.ARException; +import com.bmc.arsys.api.Value; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * The StateChange class is a Spring Component responsible for creating state + * change entries on Remedy. It handles the logic of creating a new + * entry with the required field values. + */ +@Component +public class StateChange { + static final String ACTION = "STATUSCHANGE"; + static final String formName = "ASF:CHG_CAL_Interactions"; + private RemedyJavaAPI remedyJavaAPI; + + /** + * Initializes the StateChange class with a RemedyJavaAPI instance. + * + * @param remedyJavaAPI RemedyJavaAPI instance + */ + @Autowired + public StateChange(RemedyJavaAPI remedyJavaAPI) { + this.remedyJavaAPI = remedyJavaAPI; + } + + /** + * Creates a new state change entry in the RemedyJavaAPI with the given + * request data. + * + * @param request a StateChangeRequest object containing the required + * information + * for creating a new state change entry + * @return String representing the created entry ID + * @throws ARException when there's an error creating the entry + */ + // TODO: implement changes from implementerChange + public String createStateChange(StateChangeRequest request) throws ARException { + var query = new Query.QueryBuilder(formName) + .addFieldValue("ChangeNr", 666000002, new Value(request.getChangeNr())) + .addFieldValue("CurrentState", 666000003, new Value(request.getCurrentState())) + .addFieldValue("NextState", 666000004, new Value(request.getNextState())) + .addFieldValue("Action", 666000001, new Value(ACTION)) + .build(); + + return remedyJavaAPI.createEntry(query); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java b/backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java new file mode 100644 index 0000000..4c5e94b --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java @@ -0,0 +1,66 @@ +package com.nttdata.calender.states; + +/** + * The StateChangeRequest class represents a request for a state change. + * It contains the necessary information for creating a new state change entry, + * such as change number, current state, and next state. + */ +public class StateChangeRequest { + private String changeNr; + private int currentState; + private int nextState; + + /** + * Sets the change number. + * + * @param changeNr String to set representing the change number + */ + public void setChangeNr(String changeNr) { + this.changeNr = changeNr; + } + + /** + * Sets the current state. + * + * @param currentState an int to set representing the current state + */ + public void setCurrentState(int currentState) { + this.currentState = currentState; + } + + /** + * Sets the next state. + * + * @param nextState an int representing the next state + */ + public void setNextState(int nextState) { + this.nextState = nextState; + } + + /** + * Gets the change number. + * + * @return String representing the change number + */ + public String getChangeNr() { + return changeNr; + } + + /** + * Gets the current state. + * + * @return int representing the current state + */ + public int getCurrentState() { + return currentState; + } + + /** + * Gets the next state. + * + * @return int representing the next state + */ + public int getNextState() { + return nextState; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/states/StateResponse.java b/backend/src/main/java/com/nttdata/calender/states/StateResponse.java new file mode 100644 index 0000000..4252145 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/states/StateResponse.java @@ -0,0 +1,30 @@ +package com.nttdata.calender.states; + +import java.util.ArrayList; + +/** + * Representation of state with all its information for a JSON object. + */ +public class StateResponse { + public int actualState; + public ArrayList possibleStates; + public String stateNameEN; + public String stateNameDE; + + /** + * Initialize the instance of the JSON response. + * + * @param actualState actual state encoded as integer + * @param possibleState array of possible states encoded as integer + * @param stateNameEN state name in english + * @param stateNameDE state name in german + */ + public StateResponse(int actualState, ArrayList possibleState, String stateNameEN, + String stateNameDE) { + this.actualState = actualState; + this.possibleStates = possibleState; + this.stateNameEN = stateNameEN; + this.stateNameDE = stateNameDE; + } + +} diff --git a/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java b/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java new file mode 100644 index 0000000..326359c --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java @@ -0,0 +1,119 @@ +package com.nttdata.calender.supportgroup; + +import java.util.ArrayList; +import java.util.stream.Collectors; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.bmc.arsys.api.ARException; +import com.nttdata.calender.api.Query; +import com.nttdata.calender.api.RemedyJavaAPI; + +/** + * The SupportGroup class represents a singleton object that holds information + * about support groups queried from a Remedy AR Server using the RemedyJavaAPI. + * It provides methods to query and retrieve the support groups. + */ +public class SupportGroup { + private static final String formName = "CTM:Support Group"; + private static final SupportGroup INSTANCE = new SupportGroup(); + private static final Logger logger = LogManager.getLogger("logger"); + private ArrayList supportGroups; + private SupportGroupGetResponse userSupportGroup; + + /** + * Private constructor to ensure that no other instances of SupportGroup + * can be created. + */ + private SupportGroup() { + this.supportGroups = new ArrayList(); + } + + /** + * @return the singleton instance of the SupportGroup class. + */ + public static SupportGroup getInstance() { + return INSTANCE; + } + + /** + * Queries the Remedy AR Server using the provided api object to retrieve + * information about support groups and populates the supportGroups list + * with the results. + * + * @param api RemedyJavaAPI object used to connect to the Remedy AR Server. + */ + public void querySupportGroups(RemedyJavaAPI api) { + try { + var querySupportGroups = new Query.QueryBuilder(formName) + .addFieldId("SupportGroup", 1000000015) + .addFieldId("SupportGroupId", 1) + .build(); + + this.supportGroups = api + .queryFieldsById("\'Support Group ID\' != \"\"", querySupportGroups.getFieldIds(), + querySupportGroups.getFormName(), null, 0, 0) + .stream() + .map(entry -> new SupportGroupGetResponse( + entry.get(querySupportGroups.getFieldId("SupportGroup")).toString(), + entry.get(querySupportGroups.getFieldId("SupportGroupId")).toString())) + .distinct() + .collect(Collectors.toCollection(ArrayList::new)); + + } catch (ARException e) { + logger.error("An error occured while querying support groups: " + e.getMessage()); + e.printStackTrace(); + } + } + + /** + * Queries the Remedy AR Server using the provided api object to retrieve + * information about the user's support group and sets the userSupportGroup + * field with the result. + * + * @param api A RemedyJavaAPI object used to connect to the Remedy AR Server + * @throws ARException if an error occurs during the query + */ + public void queryUserSupportGroup(RemedyJavaAPI api) throws ARException { + var querySupportGroups = new Query.QueryBuilder("CTM:Support Group Association") + .addFieldId("SupportGroup", 1000000017) + .addFieldId("SupportGroupId", 1000000079) + .build(); + + api.impersonateUser("ext_StanzPa"); + var supportGroupUser = api.queryFieldsById("\'Login ID\' = \"" + api.getUser() + "\"", + querySupportGroups.getFieldIds(), querySupportGroups.getFormName(), null, 0, 0); + + var result = supportGroupUser.isEmpty() ? null : supportGroupUser.get(0); + if (result != null) { + String supportGroupName = result.get(querySupportGroups.getFieldId("SupportGroup")).toString(); + String supportGroupId = result.get(querySupportGroups.getFieldId("SupportGroupId")).toString(); + this.userSupportGroup = new SupportGroupGetResponse(supportGroupName, supportGroupId); + } + } + + /** + * Returns the list of support groups. + * + * @return an {@link ArrayList} of {@link SupportGroupGetResponse} objects + * representing the list of support groups. + */ + public ArrayList get() { + return this.supportGroups; + } + + /** + * Queries the Remedy AR Server to retrieve the user's support group and returns + * it as a {@link SupportGroupGetResponse} object. + * + * @param api A RemedyJavaAPI object used to connect to the Remedy AR Server + * @return {@link SupportGroupGetResponse} object representing the user's + * support group + * @throws ARException if an error occurs during the query + */ + public SupportGroupGetResponse getUserSG(RemedyJavaAPI api) throws ARException { + queryUserSupportGroup(api); + return this.userSupportGroup; + } +} diff --git a/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroupGetResponse.java b/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroupGetResponse.java new file mode 100644 index 0000000..e14260e --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroupGetResponse.java @@ -0,0 +1,51 @@ +package com.nttdata.calender.supportgroup; + +import java.util.Objects; + +/** + * Represents the response object for a SupportGroup get request, containing + * the support group name and ID. + */ +public class SupportGroupGetResponse { + public String name; + public String id; + + /** + * Constructs a SupportGroupGetResponse object with the given support group name and ID. + * + * @param name + * @param id + */ + public SupportGroupGetResponse(String name, String id) { + this.name = name; + this.id = id; + } + + /** + * Checks if this SupportGroupGetResponse object is equal to another object. + * Two SupportGroupGetResponse objects are considered equal if they have the + * same support group name and ID. + * + * @param o the object to compare to this SupportGroupGetResponse object + * @return true if the objects are equal, false otherwise + */ + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SupportGroupGetResponse that = (SupportGroupGetResponse) o; + return Objects.equals(name, that.name) && + Objects.equals(id, that.id); + } + + /** + * Generates a hash code for this SupportGroupGetResponse object based on its + * support group name and ID. + * + * @return an int representing the hash code for this object + */ + @Override + public int hashCode() { + return Objects.hash(name, id); + } +} diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties new file mode 100644 index 0000000..600806b --- /dev/null +++ b/backend/src/main/resources/application.properties @@ -0,0 +1,2 @@ +#server.servlet.context-path=/test +server.servlet.session.timeout=24h \ No newline at end of file diff --git a/backend/src/main/resources/log4j2.xml b/backend/src/main/resources/log4j2.xml new file mode 100644 index 0000000..9c2862d --- /dev/null +++ b/backend/src/main/resources/log4j2.xml @@ -0,0 +1,45 @@ + + + + + + %d{yyyy-MM-dd-HH:mm:ss} %-5p %m%n%ex{full} + + + + + + + + %d{yyyy-MM-dd-HH:mm:ss} %-5p %m%n%ex{full} + + + + + + + + %d{yyyy-MM-dd-HH:mm:ss} %-5p %m%n + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/src/main/resources/rsso-agent.properties b/backend/src/main/resources/rsso-agent.properties new file mode 100644 index 0000000..78ecad1 --- /dev/null +++ b/backend/src/main/resources/rsso-agent.properties @@ -0,0 +1,50 @@ +# The value for agent-id represents an application protected by RSSO and should be different for different applications. +# The same instances of application should share the same agent id. +# E.g. agent-id=midtier +agent-id=tomcatSMIT +# Application URL to trigger the RSSO logout process. +logout-urls=/shared/loggedout.jsp +# Application URL patterns which are not going through RSSO filter. +excluded-url-pattern=.*\\.xml|.*\\.gif|.*\\.css|.*\\.ico|/shared/config/.*|/WSDL/.*|/shared/error.jsp|/shared/timer/.*|/shared/login_commn.jsp|/shared/view_form.jsp|/shared/ar_url_encoder.jsp|/ThirdPartyJars/.*|/shared/logout.jsp|/shared/doc/.*|/shared/images/.*|/shared/login.jsp|/services/.*|/shared/file_not_found.jsp|/plugins/.*|/shared/wait.jsp|/servlet/GoatConfigServlet|/servlet/ConfigServlet|/shared/HTTPPost.class|/shared/FileUpload.jar|/BackChannel.*|/servlet/LicenseReleaseServlet.* +# If this property set to true the application context name will not be excluded for checking excluded url pattern +#context-included=false +# RSSO webapp external url for redirection +# To support multiple RSSO servers, set the value to a comma separated string: each represents a 'domain to server url' mapping, with the format of :, e.g. domain1:https://server1:8443/rsso,domain2:https://server2:8443/rsso +sso-external-url=http://vie-vm-266.at.softlab.net/rsso +# RSSO webapp internal url for service calls. +# To support multiple RSSO servers, set the value to a comma separated string, each represents a 'domain to server url' mapping, with the format of :, e.g. domain1:http://server1:8080/rsso,domain2:http://server2:8080/rsso +sso-service-url=http://vie-vm-266.at.softlab.net/rsso + +# Time during that cached token status will be used without verified at SSO server side. Default value is 3 min. +token-status-cache-timeout=20 + +# MSP-related flags +# Flag to show realm-entry-page for the MSP deployments +#msp-deployment=true +#msp-always-show-domain-entry-page=true + +# To disable Remedy SSO Agent set the value to true. In this case, all requests will not be processed by the Remedy SSO Agent. +#skip-filter=false + +# That property is mandatory for preauthentication. Put one of the following possible values: GET or POST +# preauth-type=GET + +# Action path mask. If agent detects /_rsso in servlet path. Default value is: /_rsso +# action-path-mask=/_rsso +# e.g. application.bmc.com:8080/arsys/_rsso/server/change-password - change password action. + +# Old-style behavior to support user-agents that don't handle formRedirect using auto-post. +# Agent responses 302 in redirect-mode=true +# redirect-mode=true + +# Allows to choose between HttpSession and in-memory cache to store token data. +# Option can't be changed at run time +# use-in-memory-cache=false + +# Allows multiple domain feature. +# multi-domain-support=true +# oauth-client-id= +# oauth-client-secret= + +# Allows to skip verification of SSL/TLS certificate for https communication (also could be set as system property) +com.bmc.rsso.tls.disable.checks=true diff --git a/backend/src/main/resources/rsso-authenticator.properties b/backend/src/main/resources/rsso-authenticator.properties new file mode 100644 index 0000000..ff60da7 --- /dev/null +++ b/backend/src/main/resources/rsso-authenticator.properties @@ -0,0 +1 @@ +ignore-tenant=true \ No newline at end of file diff --git a/backend/src/main/resources/rsso-log.cfg b/backend/src/main/resources/rsso-log.cfg new file mode 100644 index 0000000..0e20595 --- /dev/null +++ b/backend/src/main/resources/rsso-log.cfg @@ -0,0 +1,11 @@ +rsso.log.thread.info.on=false +rsso.log.console.out.off=false +#rsso.log.include= +#rsso.log.exclude= +rsso.log.name.format=rsso.%g.log +rsso.log.level=FINE +rsso.log.roll=1 +rsso.log.limit=10485760 +rsso.log.dir="C:\\Program Files\\Apache Software Foundation\\Tomcat 9.0\\logs" +#catalina.base= +#rsso.io.tmpdir= \ No newline at end of file diff --git a/backend/src/main/resources/sso-sdk.properties b/backend/src/main/resources/sso-sdk.properties new file mode 100644 index 0000000..8c3f688 --- /dev/null +++ b/backend/src/main/resources/sso-sdk.properties @@ -0,0 +1,5 @@ +# Filter implementation. Full qualified class name which implements javax.servlet.Filter +filter-impl=com.bmc.rsso.agent.RSSOFilter +# SSOClient implementation. Full qualified class name which implements com.bmc.sso.SSOClient +client-impl=com.bmc.rsso.client.impl.RSSOClient +ignore-tenant=true diff --git a/frontend/.browserslistrc b/frontend/.browserslistrc new file mode 100644 index 0000000..4f9ac26 --- /dev/null +++ b/frontend/.browserslistrc @@ -0,0 +1,16 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR diff --git a/frontend/.editorconfig b/frontend/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/frontend/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..0711527 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/frontend/.vscode/extensions.json b/frontend/.vscode/extensions.json new file mode 100644 index 0000000..77b3745 --- /dev/null +++ b/frontend/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/frontend/.vscode/launch.json b/frontend/.vscode/launch.json new file mode 100644 index 0000000..740e35a --- /dev/null +++ b/frontend/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "pwa-chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/frontend/.vscode/tasks.json b/frontend/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/frontend/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..ad13d7a --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,27 @@ +# SyncfusionGantt + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.2.5. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/frontend/angular.json b/frontend/angular.json new file mode 100644 index 0000000..a377bf2 --- /dev/null +++ b/frontend/angular.json @@ -0,0 +1,111 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + + + "projects": { + "syncfusion-gantt": { + + "projectType": "application", + "schematics": {}, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/syncfusion-gantt", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css", + "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", + "./node_modules/@syncfusion/ej2-material-theme/styles/material.css" + ], + "scripts" :["./node_modules/jquery/dist/jquery.min.js"] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "13mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "browserTarget": "syncfusion-gantt:build:production" + }, + "development": { + "browserTarget": "syncfusion-gantt:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "syncfusion-gantt:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css", + "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", + "./node_modules/@syncfusion/ej2-material-theme/styles/material.css" + ], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": "fa8ee0f3-ac94-4ed8-96dd-0ac0e10f2e65" + } +} diff --git a/frontend/documentation/coverage.html b/frontend/documentation/coverage.html new file mode 100644 index 0000000..3092715 --- /dev/null +++ b/frontend/documentation/coverage.html @@ -0,0 +1,137 @@ + + + + + + syncfusion-gantt documentation + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
FileTypeIdentifierStatements
+ + + + + +
+
+

results matching ""

+
    +
    +
    +

    No results matching ""

    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/dependencies.html b/frontend/documentation/dependencies.html new file mode 100644 index 0000000..0ef6088 --- /dev/null +++ b/frontend/documentation/dependencies.html @@ -0,0 +1,150 @@ + + + + + + syncfusion-gantt documentation + + + + + + + + + + + + + +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + +
      +
    • + @angular/animations : ^14.2.0
    • +
    • + @angular/cdk : ^14.2.0
    • +
    • + @angular/common : ^14.2.0
    • +
    • + @angular/compiler : ^14.2.0
    • +
    • + @angular/core : ^14.2.0
    • +
    • + @angular/forms : ^14.2.0
    • +
    • + @angular/material : ^14.2.0
    • +
    • + @angular/platform-browser : ^14.2.0
    • +
    • + @angular/platform-browser-dynamic : ^14.2.0
    • +
    • + @angular/router : ^14.2.0
    • +
    • + @syncfusion/ej2-angular-gantt : ^20.3.50
    • +
    • + @syncfusion/ej2-material-theme : ~20.3.50
    • +
    • + jquery : ^3.6.1
    • +
    • + rxjs : ~7.5.0
    • +
    • + tslib : ^2.3.0
    • +
    • + zone.js : ~0.11.4
    • +
    + + + + + + + +
    +
    +

    results matching ""

    +
      +
      +
      +

      No results matching ""

      +
      +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/fonts/ionicons.eot b/frontend/documentation/fonts/ionicons.eot new file mode 100644 index 0000000000000000000000000000000000000000..4b1fd0f48c9fa50401fa6dd1514fac66c0e92b06 GIT binary patch literal 112650 zcmeFadz>6qoi|*k?pc%^Aqh!HLVyqk2pB@Z5CX<< z8v$d42mt}P83si}L_`RPpfcj>!?Nh2vdF57Sr#v=sAMuCB6i;I?^N~7B(VGJ`@a7@ zpJ&pi&b6w}<#&GfQ!$=m!uqc>feE5Of1;pBJb{vZj8e;1I(fl%W7If*?Pv6Cu9Z#4 zws3;*Vc{a-eBm4(UxF%2SS_3@d`P%d*eaYQY)462Scj7B!X;=&t2$tw(<3oD0v|cE{ea zNkK607X)?bIhXB73jwxB5Q1-^UjEQomux$71W#gLFCwphXzNGMd#CT_w*?`-RbU@m zv-#Y!Hu*ol`z6%<0-?Ma1=6qNU3h*N`R2_R?%0|8(h*D@drAIIgYtbZTs*gJ5KGt{yu@-jpx^`=VQb8 zHus#-ex`rUp9Qb8DnDJ4ZNvQn;`SqdI`XWju9E=pkY92WHu{(HZr%G{wURV+i922hl$&qx`7T7oMj&DyxM%kjDPz?>@G! z7v;lv4tB;=--nT|-8+hOn(AmCXS_qeSjKrd%~_SVUq*R1j3S;H#*n8#Wos$zuFJ4n zUaKE>=b)CS_xXXHmI4cIw|*h#-THNJaMMs4>~oA(Fd4V3YF+&W69 zoibr1Vp?~C6$)c+o0;)JYKu7;7X*RQX*WLxm>H!s!k8O|XQanxq-j5mAdI?k+D%h_ z)E)bHtql2Lq(6&5F@;f#o#GKUKaO||;UM}>X)3Rk4Ig=r*A1g=)Genv3bj1N6o#i` zQ9ybe0r17sR9_2JPU)F3(!gpC%znqINB%HxchG%?fbwC4F(k&FHoQLV_L0gcjJaW0 z5Clq(A|Q!1pB~Hjk@p0GYkDWO8Af=R+PGmHaV=0?t$ZEQ6euq^u`qgc%*(0G2m--< zEq3n{evdN33kMO#5XPNYK)x1upQ)Te1I6y#j5%#t8u2KVyZJ}mG%s`TB7g4~%7+oC zoY%QAmA{Hms~bm}%4#vCN8Lc_56ZW@j&o zo~otC-8zb?ZrFtj#5_NOc+?H!h-)G3)(=yi3;ReP1w-R*`!P30{nY)Vbe|i>5s%f< zSd;xO{7^lW*Mi`tho{<3;Uq9W)ANjazCUX1M%+5ekGY{%Htytw2N93Db%ejE9o118 z<%bajgu4)Gfo^bW}F`-sB=9W+8fsZNuLE#>h zQ~O%otw`6xh+9taxEs=lhut*AV+f;y15cEuFz&{b9&z)-ZalM&(r)<_JlZqbkGS}J zRKW9H9B>fzV?6&h?GJw6%zc8oTAz6QsGFy9;#nvjoh}o8>cFt@tOJX*ZnZEqX1Zr4 z+|m6Mh7pMVk0TzVv|E-&{IMBjRQGKsFO0h7FA0JGj(2L_&vJPP;mF^J6Q_9--b6g? zwjXt46ayarPTVo4r3Vp@qwu$gd7YD=>XTbP^&Yh4&m2Wu3sg2UQ2Ce}sGQRK5Fil{ zE*6|W2@!=9f3ct}LXNtS5@dyDdNDGZu=vo!haNff*r5Z5o;>u8L(d%g)}dz)edo}3 z4}Jg8KOXw0Lq9t7lSBV<=%GSM-yVq)dQ>WMWI>n2X0IAh|>iL)j) zO`JDz{=@|n7fyV5VtnE+ht& z^E__k^LWAk>v??igXYmM`9(kT3)T^}M&-$D7uJu>zFV@@EpRKp7KUsgY{$Ran z{oeYW^`F*nt>0L`w*JF<-THUyp!G}ZHS6E3Usyl4erElv^;7F#te35ySULRqGM!E7m^iCTp*?+xob5opr5sjditkg>|{L)B1>YnRThP!@9)UZe3(uV4ZJm zwmxK?XPs+pvd*#2w$8LRT4z`rto7C@);epgwZ=NxT5YYeR$3=nORVFph1LRVzBSL9 zYYkcjtKaIgI;=LU)yi8rtI0}RjaGwIXC;_c$|(n>ilUnW0Q8iyLsPAAh>rSD2V&?Gh$n>IB)*!2C( z#>{n@7qfbHPIgoFmh8`(t>zn>A83BM`L&jK%M~pLbE|U?=O(#z%U^49Vl#(46z;+&JgWxr^tH&V6~v99l7S*U-=AZJGD$;mq*a!+VC`o`2E& zd*;8kpn1U+3&t0`woqUA6F^yKM#H&`1MY}mQs;2De0xc-cXH`*I_Y}|k5_A?(m z^PQ1JBe#wm7_@*6+?9JbT;Ocb)yiv)?%T-E)HHG@MgDXTdqAopatf zSDkbHIs4D~{yA@M3T_(Qv|`hX=Zfd{p1b|L#phjh-Ye%-Kh*r8MIYL;dBf%dn}2qG z|M_dqe``y8OZS%ZwmiD!l`ZdHkiKBk1vg&s)K+6_aqBf(AKQBH!uUn6epvqS;t#*P zExv8Rw(GV%we5|IgBK58eD=jRUi{F--@N$k?Yp->y#4#z-?}7u$@WWL*&*y0+_7oL zbvs_ZRKB$H()E{azbts!;ANXGd+f3|KVpC6ijO?_k@t3{ch1?ld*|nNKL645M=$&6 z*hioL=&yIFyBc<#w(Fu@W4pe8dGzuHm#?|}n#;$p5UzOd%GN8-yYjLt@451gtE{U! zue#!@+pl{2>V~U#UH#+H_R+ngPkn6r$HuRbuQ~0S+pqcNHLqRUd+o@zd#=6b+8)*UVzM=Pq1vl)x;prP*-)rn0*t==()1R_G z)%mHtpZepC!j0G6IDX^rZc=Y*y=m!9yKj2rrk8J;*tcxomVNv7jo%!nPKW%)v|I?d4{nD-at(jYw-g@?}7u|Z}tqv-mTcKC|aD_k8BjJEC{&xZ{pH4&3pJJMBAj zcP_Yd$DIf6eD|*KUFY3(`(5LA{qFAOyO-U){qFsDKYx#WPy0QW-SgaM!=EjFcG+h) zefH_kR`)0OuiU?V|26ynVgKa4=Dof5F1h!Pd!M}by|K+>`^SDU_U?W0`^xvNx$nWx zr9S`S{Y&rPfB)-WX#K+0FN{5qdtm1SFMKin#Wi2t_2B9UuY2%?FSUPZ+m~+t(wh(2 zUq0~g#)tp-m6cz){VT6LVn4Fsk!v3L;a4|)^_H*x!=w7wl3!c%wO>Eh`q;|HMjw0O z@yz3ck3aJG#DN6|ZanbECt9Ca_r#tjUU}k=Pp*IRfhS-1`iiH*PhIrX*i)~3!~90` zH`aXPu5bM8>A|OWJU#aGFP_=_%-&~S|EBrP&EI_STf^VF_1nU?2fn@U+4g5IdiIfL ze>ff-Upl^X{2>TCq%FS_xz+xF7*Qo0P@x@F6)TdHqAyldCPyIyk2sN#N< zZnn$tLP1zVGZ6`An=*8Bf2A}e6}!cJDc8YJQfNXQQd-24!VO|9 z5-sFabiTiw@0RAW;t;Epsihig5bIgkVr+$FRmUw$^)jU?TUVFKD9o!`78|xK#hflP z-;reXVO5rlhFBn!_DHhwaYd0l=}=vp<@5V}8tYz=h=pT`1>H>Z`;IBdC|<8p*X*;6 ziXKe*WL=ki$)H~G1#(BNwI=w5*z_t?ikV0(++R|$#yPCDGxz_Vky26H>$Sb^tee5$ zC4T=ZgUV=4WrQ>vhx{wSDl;F(Ga=9vXlg0ubNO6GQ#F+qGZyWylq=;PRtRee)zjd@PsllO;*+OXrfEPO3wa zS^^O2z7i|v zF@8T%<$N(y%4trzht*Qkr8%{cX)2Z~60P*lW3m4xjd|xyqL}$uCSQqa;jGH~V_L3K zER_iot5;&n)E)YH=Sg*w_-8wMPI!+h4HI-^j zJ>K#K{UUTk^e8;`#6Ya4U1Utk&&Pw< zFdoDnhZc#?$3ftOF;1T{z@m$UhTEGyuhOJV2-*+YRgwEC3`C zi%R{KJWvK8muJznGEf6YCUgOgh(+=-JSUHN0M^J8ip}RL4nipxA{h(MZUm4=u`vi8 z$FfeNTxCea14>jwFJnvW>N~4@ca`Q{dq%d2Ni1Zu;#7J=rR$IBzBXGzg(vK}C*9v> zs!lps?)q+Kf!%7`n%*eIJ({8@VzSN@J*FMR4iF7hwxx6#)qw_C7MUnBF_BXwHIT48 z`+D&=S%3b}8P|FlQ$16u>L=5G?5gyxjOth*NfwXqD)+65s5Hs4n7%%f!F{J|F~)q7 z>@x#sFsrlrfG7El9rgWrz&r}w}o;PTKc%)%as5_l1C5y-`) zC~yd%^XSr+qq3-_rtA`*?^a(kg75bFhPg;>0y3W}%W4`cP36*>x;2^HiVa>?1L{H* zzks^P=d1p+s&+||JzZ$a^7`qVA4uHe0S*T&$>dqU4ncQHyiQ1fy|n^VsUcLNpe%p~ zkdLS~#PT^pokOgfA?{`t1B$H079*PCAWA2JE86xj>^-D_8-Era=KmgRS$M@2SLFD$ z%g`k)-WX{#JZi{jG^9}2BYB6tQjlVlN=i_b8pDlIO$jPeqgM%vDoW9WDx#Wk`%r}c zJEitWJoqIX70?a$))#8Yn0-_W&($OZHY4J48#|&H(#?D$Y zO}%3k+6P!zXGoWYJy7cMTlGy3SpK#?S@sywK%D}rVQL|lHTY_SDaU-8SY{GH z!84R<@M)T9+oq=Z8cqWVwpKGe5NfIK)QfQL<53g32jobVMLiK3 ziub3bpvPF?Q<-0j1wBlX6hj1QlQq*y<~=f#K+8m3wBxp->Pt;M-O9w<`XU&!D5*-F zp{RzI!+wv}l^3WPyumAF{GF<#hFa@n1&jv6(==IB`?@?5(>oh|wyOI(&>u;0Y10^J zlMg(19+S}ob{lB0iPI>pKN0|jYy#gJC>CPiDQSIab=f`D&2rFUBUUi32Z^B!>c3Mx zOf)y~D_bImtzgg!%SpZZE~S{N-)N{Newc6KZx6DEfS)}=1hXEAWizFGDOAuR8o1d? zDPQQ1F#kCp63@A3^Iul6vsTR>5%;mLvag8DehLmbpJ1D5-LOAhUfvR-0<6A6*mIR~ z3=|tuL%-MUvrLXH!zE!Jyma1;Fd}nUrAjj0r`!?fuFzH)$lFtV|P2Fhv&fLt! z2o|TR&F*{1p5YUM#IFXLB7It{4|JrjlJASsIRDIVO5MIUS*^#L< z^m|&?0k+AhAo03s(w-g0dY6cX|jB>C`k`U5ag!k*yUeBgs3sS#6i!)wysUG z=yEWh_gQE9%#A95+~-@l+PaOu<22qY)@h;A+Ni1)t;7L$miY>xzr@E|>e8Kb5tAWYH2v?#<- zf->1<Q;6ZDTlSLpub#x zt~`#$vI1Iuvd3fSxcfdlOcuq}$a?1T#~;-fJSXT3R>hLjf^%U!|JC>1#zMzF8e=-D zKNtxY=QaMEAq=pQeUA@8H$1g59CAlF7yWUD>GbEwLE$&R7jp$6L@Q1*9Y@nxcM{%W zoTmnwCODu5;HHt}yc)p@XTqrDRlmpM&$RnG(@n`#ra75xjwds=KNt-L?075~h{w{t zOebr!pNjyAq|;4Ze`|qQ6>s@{vN>C~+qQRG!I1Cw(SU6SqJOJTCVCs6n<0Z<%{Bp} zwSvc4hMrQVoQ<6&0G$oogs%4SGO&x~QXhHNAj5Ad=57*>-8Z ztV(armlaSz&)}dZsL!9*&2xHds~*$~4Go|TlCH;My3M*}W89EMxoEGnOVYN}=YzC* z22MVCz+>z4a>NtR)PHeW@_V|eIo*zaQQua=RkN4R_kT6l&OA;} zZKZtFJVL*55+=*QTt%ZEkABo-73F-o&6$sAHbd2TrQju7HhT^2zL1k!T3#FuSa80_m( zJ$G)d{w%N{v^luB`YWxgz88ttH~*_{h~XtLIW7r{hTaS6DptvZ4SJ9RR7*b2|l=Q|C^rt*DuHGIQ=<#PX32)ojD`_n;y7x z@n3huodxO-&4Ivm2MQn!`out?63Ay;!m3tkVEG295wy|}gJ`<;f(zENbbUNtUm9M! zcDQHu>>eg;tB!3OuJ84J&Fs71zxDd9{w{0vd8@4&UoZ-OCV`d57$bgWL1J^X5@7an zd1wv`O$rcL6A)Jg0Ku+=YD<)5){=ZFne)W-#sssfubV6;YSjsY?Gv$?G@n|1A(_u5 zfpM{^Y`flA-EH5;Oae20yvp)*jR827#492ys(3a zgiBN^^awEU^(=-B04;Q(zucSD46oe~_Jvh{#5N4gP6Zn^*~9E8#1#G4hQ)$Vt-cAi zB16!fRzywKUV(N_l;sSo1$HYqv-%i>4&{7gRy{B*RCe0JRpGHEOt&gSyOaI0FT2(7_9 zhLz?*P6q6qs&z1`c2_T^_7^iz1k&pDz(~Ns-48AqlZMG5E`%%j3jM6L4jQ*)bL0Fu z&50JsR*j(3TRv&9idnDgjlH_w+gP8fFyk3XnjMd?kHwr*Q?>EMN?@vN2~~X9#Up(&u1{m!^a~E9JvFdHK8&zVm}# zH$gwzja@Sco!|yx3y$9im@4Q3Ir1nGvcSrLNdw#9GSB_ddR64qV zXbk)tSYs4a%JabPS(4T*SB9iK#D7{c6hb`!Wh2--=!nWOH2r5k!**bP$!E2ktPwsC zS(l=z#vCTu^L(Z{iz!T0|1hX}%{i#+(4gPz5?L@4ki_2KG*KMVHC^kF3;v*Hh(Q@k z6J#DOs4BXO&dilrAQP0>;l8w-v@>BQ`$J8kXiuh4SGspjDiBarIT7);Ez={OR$FfH zM$(w#WA}pWqMp2?JjFa>lAz+vaddvv0@)w5kR%Ts`2+a7eONIeP;~Sufw1$SQV{-8 zLG@Baxm0D_h^47sr^y>6X@jhxFA8iNzr>jD!^#IBuh)}3vBG8Syo7a%g`i-FYI!K} zpt*zcAqQn1skW<7JV~1J1}U5#Ds6_rYhIy!ov7|cT9$@*S}~zHV%I^TWLB%E8uC9r zx#VI=`odHS?i&t$U>my%?^AerS=yP&4~QzzNYU^a%_W zS4!vd0(3DH>I6lqL{6D$7|PB%v43v8Le zVx$3BPW)Y_5Y?D2NoJ!}ujwE}TH0WmXedTzcIRf1EPkfKzV-<2 zi67Uz=H9)gR}-U#+1;dBhGD5qJ*E+D(G|aDMf`EoG<|V@1m1Fr-essQEvjLtii)36 zFrraIOayw;!;5qX^+2SCq%eKaaJnau(6ykQ9+=e-lO@}heE05&v?#uR7$P@Ku3 zG4!3liMR!(!CanmorLaaFY$H8jPNGx6g|>XDz}6@J^OwbSdbs+gn3Lc>}FdM)kp%c z34Np%42#TfNT%gwriuLq1%zy9O2`ueMq_IXKNG_NO)}6Ls0KDS2@f#942e?5to(ui z)R~@8%OY*>3TtQc=Nzn87phOsUvieax`mD5eS zq+&BL*$8-4#S44mg?=wKRzMe7Plp|55^lrIu(TAUpNicXQS^kpUU0PNCB*8cvc=gf=qN5MIqbD|E|| z5U`^NW_4(AD+-p6K!JTyQ+%RS*8m3!5CG+yW^>Xvu4_uXCz%mpR8qTuIC?}@{W&y4 zhOQfIuA+wgO?3^rs66jWHk(gCqh9H&lf1B{FtJC{+25hrCM6p5K2<>n{@V#22Hp#h z8KLdZL^yXnj}^0d>LjFIhmvzrdwOn!TI7@vJo@ne(|HSlv7|+ z62p=d7S({Jv`F$Uv7c9;CC)zxf-16GH1ADNTz0E)`cscnVB`_So4ndBa6AD{27YSA zoXr*%!WIb6bd6R?<3bN`Ejr`O9`-)^=3w6pF>y{oi4Xu`0thY=d89yo$h$FXZBU|$ z4WpYOOHmOMDkmj4AxcTfRHcX{du%bFM3jb8FFW-C%WAf)0n1tjQ9;VJt6@(nrF!Iz z9<^OD)Pky?Da&W-NEk{xW&CyZp0L`U8$9{s>f@m7x(R%Y0FM}S6DyB? zL#&xfqqC7P6s4tN3k|8J+II$s>(pSKbe7#0^!b85xjH5z!cSzI#OfH7{Hzs9{-|u9 zZDU|`eaq)L;PLr9sw}G%^9=Tirf(#Qyb&%Rw(XOhD|99JW5d8vWNYYxwqc>LTsRd6 zpM^?;I0&Z<^Z+($r3}6a$F3T1=HH3h+q|c2K1vsWFuKVZE^5vg1KZf9n;XBpXp-Q5a(2Y;7R^Sd{wfvO5~7)LCuBQluL41lIck2 zoXv#GP7GW_G9D~!Y*qLC`Q5M6WtNf!Xg14;z>g~1Y;Q<6he+)b^4fGQ+uj`O9@;oO zym9EGQ8eQ%=?0m%DZ%e1cd|+Ml~EAFLK1&tLoc`u_M03y>1hw80wbzP8y#ze&O20v zRJ2XNLokwZLaMR_mcROUz<*PHb3>|Ajc3y49HS?avLliS>toP1%=%Q$XV_{d`4+JT zZ*P4*Ro4*-C*n=rvrY<{hG9M==8~bHPlwkP*JojWk70ku0bPp#Ss%iTPU}(0(T846 zF<7tZ3gmflxj#=*GWDJiDRi^c5VBW{if5M6mWt8^;wCl~9?3Qj3_t;kozT;R-5^Va zY!+x0cDz(d){TQssUi;ypiGsED3zh2mC?%3ORcF)D#P}cPFPyP9q@SR8k*OM+hw`0 zskgTYT#X?omnHE6J=%Fyr;HnAskHQjk_^jdH`M^^$h;|tt*<`RZ2YHX{io3kO9F85 z+eiM)u4UIkD-Avr%fc!DEQpLC4?udv3lS;|gDlX$N*RM@ms*By*$wkgDE48qh5kH722e02pV8r%-yMsDfsqQnv2Hb3{ z1?SG`VcX-W>aUwR*xU>zzh`~~jlc&hYzrD~4*05nDK1$(Z(dW1MH-4lwxIiX*zE3*j6~XigsF%93~NZMMB_DNnzotW|s88d26M@3nO<(-=CfEemFX z{tfY2K5O7bt{xH7X`3e&$LkfP-qCRhWG7W1#bjX-gY_elg)KH$A}6*PxDlcRI*3ug z)ERZnp0~gOoh2Shm@#;*$HIYV06*QtuE*w0r+1`Ua}8FY`nDZ{*NG8W)=YMCx>TqM z7=Ib_md3h`V4u5QnG7~hhl;RL6NxG?%vCakncQjWFJ{Rj4)kIa2oaWbAV{Qcw5d^;Odk`k|G~a;@H6(x*fABYX6eDVn(UoI?UWAjSPS zf%Gdb@~_3<$WF5&5v%%u6*<)}ik9(TU6^R$pv_S~c46(-h}9?hq3WZ{`5%z_$5d)F z|B(+8a3s-Z@^NhBdb)}*548Fu!k3QjQ8`)%Nt4NmbnKYk*I@71(ba6P>@lbwH(+Kl z$2`7?cX&5ldpN%VmIJ?=7xeTj=%Eohd0fBS*xA_FxgnM6h2n8h#CnYG!R6Id>Yh|; zADZ_pn9bAcsUbWj9Q^O>Ck?t+k{Dfx1BdCt1PueM6E-;%kH9iWlm83Fkh{PR&tuVi z7&14k-dJCi4ReRKa0AKm01J_AW$Z-QybSq7CI%Bt%~6z{h^)tRB4a&DCArGq>;J6B z%iyaN=KgTO@MFYy{2a=;iY+Zf7?^u1hgQuGpIcA~mv%t$qe7G?pD_|E+0{1F`vP=tqJL=+)t zY&y=2&RTZ%aXlSS20_^O445K|!jns$BdaZ4^Wnnc!Q)KNahqhQOPqBPTwlXFqRZeY zruGf(BNia$5JlKgd0HIT>7Wehj_^J?bYT9+>B<)A)#rin2lN3^+zsuNG9XC-usof+ zaABiU?S`?>??*Fg{vV>eTcL(Q#=0(N=oRJ|{TKz`=ZD_yeLYeL7BHLe(?xeUbR5+Q zQSMP>@k||!{_6H2pKhvvR zIC9MB&iQYA%ahYG;RlS-kpkHuq|ReU=Qx(9jvW@s_&UE37*Z_IKV*C+nan1WuPD0hg%rsa2E8K0cFPx%T^r5_=$jXQf!)G+pl?Nx5=SU0 zaZ5jlEO5zeGV?q97&fUkjrgYk99Ao?BgD=n!t6W(kdDWpik>3oaD@~H1<)M(c^khc zE%6>PXu&?^4@dmED0aanU~0H{ZzD5*^gbq#b z(J)I^oo3Ff!M%i3_S9wCp8(?b9e}8tvZZ&cQ^~?isJ+3pnR`n;)WWg8A2A&PEFz%b`Oc9l)QYzu%^%mVV zAH|vzRqS!C&c|XY?&E{PC=gW{QXrO-ixZqWPD$O164`8``VL)LD<=9Kj<<9xIENHx zFVO{I6X@a?+C9bFElFgnSFj}<&pm}Jh#~wV&=ME$<*uH9-;WJkw3I=K=PCDSK~HX3bOoNbVp=9Qq&{`--CV~?=U@slx~pt*N)9y;r& znKZSV;k9(ugE;tdzN{eDpz7g!pIk1d5)%9ku#@`XdJnZojI>~TAl5S z>pma6>4s;G#G&Q3>Z&&cK!-!BdbjDpsgu+B^(#z~iG_#X2~_K%jm-wN9u*KNg!xZ| z%QG27WG_Sja!d{xBFKX5lS3dx_!B*-)u4d_UV;-MxjH{SB+XeZOMM-Zm>cL2*<561 z^)io++kBp@3~Mgme>sx_)>{zy}@=E!<` zT{w`G>T?-6>NlFhb%Y~`xTQHiey*@f*eBd4JV9_k7!fL6@F;}f@_aD>p?FgVbINih zWOFcWapMC?w;Y`kzvDQvP9s+w>4`#VNDXMkxj2k{-vU04ONLMYlNyY3NOUhL#_=jV zr~#Z3Hbpc>uFzD*nRIf9Eft*%Dcz|BuI!$uA(Jn=s17U4v^=u7xOcHAd!Q3m=3@yY zrplOT30gC(Oh^MS1?7z5^J~qSp6*PmWcxxQU<2}W1kP`0CRM* zqSdGCni!PCKsZ^C1&b<7lf=4Ly_V)_ZAc^=ntdQkzFV%8k_}NmoT){%PLwpJMBlQ^ zROSq(*d)V31`S9^vaa4Cj}3?f#FCDW7T*Afv>8w@k?0O?m-VWmyi_;y9o;&2uk)n6qXU5=#la!gLY3S@S|f zGFD*bc2V4pjb(}A$Ot4dQ9kHID6Lgos|=~SI;7}0E0<5@p?tuE_Fag(E)=0Ayo_dg9jyh`K4kz}(<8i5g(4RG0JXCH(pi)BSZvB3}Idp`6P#vHS*7$>Qhm)zjk;V6}Pw zil`_$s+<<(1Lpmz+5$|?{0Gf3%r3P))}|Q~>gd&pUXpGHXsRU(=Qg;v!NILi_ndw9p0nTMw%{*Q!MdA~KYPz!juhQzj^de7@Cf*7RtT;P4hjLtb;JJw zYXosci{Z!(l`9TSCZzSnhp`c(nz>z%>DR(Ix3=F(wOT#B_5G^uQ4QAE1wpe*VoM*w zCNn>*X;`AopTTwh4xU~;X3>sPEV+_}Pu*vQz}*cpH47xE*hLXLbLYY%s7;JwR*YjJ-*nsxL~ z=ojY!$&&37Jm5SRFJb@%P)sh0QM(YY0AYkHNG!y~HpgD4!SfEx6qn5a& z!+l`lkOaQe8rhWbZtM9$J)3A?%mP7^6w&JUK>^(C*Ku;j^5E=D6KK>tS`aD(>;HQPor<$vQiZ^QxlNDHL@qi3~?ZIxprd$Ak!*mxZLcO>Rl{fN+p^W~XR|jv)zIG1(7vQKbyuOl zgu8Y+&vA7GnsD_DUJd*+m^DHwU}?ZFIaUL#8<^};jtu1_R%4H1$#9g_67wodh+u`I zV1S5Usz6Cp=Eg#(iNNz=L5C#p+OTfoPG_S-f}qodwC*^V?Q()=;u|_!mmXg(CG<=T z3@#i!MDo?w;oJZgJko1oR$wPbsU*UzZfYs53+vBRDd36Wv=i}D5X@x>Qhq&51aiV- zhrMv%0V|;7xfu5@;zVl=ic+gvQ2*xMJ4RxB0Pzx4(VFQw(E35OyuIRu&Di*b(b zUF@CRz=1(n00zhc3*-%!(q#&WcZFh`gnh{WoYmxKAhI&>qkHUt6a#3Wl^vCUb3lTt z5Ff6x;xt)MRBku9FS8E1BG~WvM&U)wk)Z1b1NQ1iV}ih9~r~041xV zHT*XY9AgP-;zhWQ6i5W~fw`#Aku>CbL_&$c0}+W(;|wh;EEABe>Lof>$9AY{QdM6N zaqbEpKrj!9Qq+(nuM7t2C+t>P%*2lf@oYAJNRd7b?pDfS@wT`(=}B4qH);tXi0%R+ zVbx!ERkvrgw9M*Vz%EHtQD?T*)%A8RD%E$Tmk%$mik+PcoVmwWl-VuZCJpY|If3eM zwdGhyC2c&Wo74|l3s-0(1uwu{iG5O09#_@J`89|Wb_Wouo1FN7%!Wim+$c#K5v`J> z>e<-IGSMBh-vafl9QF!dQkXNurT9hkZUFrWhpgci&kIH-IDQ;35E?2h=}CBs|e zEF6DueAtZd-8a7eg2X+&54MhBj$lg$JZ{Fl9o%DdiLj9@pB1S3M2D;pnQ<5l!e$%? zmF7t>@B{gJ)qvfIhbqKCjkIDmMh0oRo&STzo={vFOb9R}ZuzY@B+FL7 z^n2BGtS%G`hU#Frh1pYuVCMHr#&(|;@@jLR4_o+H*cIt???SIPq*&+o0BNzulet_H z=V(-~Uoo1!GCUfYt@EZ|_D3YiV+7-wa6>da7>;`3f1`RZmr)j$eRpYrcrX<>?P1#l zixJ(CmQSxs1sg2+Q}gj+Hm7~C-R}=);+oL}dMNuO?>SCOf+^Uv;8RRGM-3dSA3Uot zk2OU!Fs&gR%g_L=bWFDwAG#eL?PzbmyP>P$w_Ocgx9{3DeA#7e>9Ez%-GCo`9URXB z%!~u41;E$Q8496=%iz$RKp|6zMR5i^c(e+>NhH@?a$bNY9?(=^!^)G29EB=l13p3! zmA69|RozA!DYow=+kRO#t2<3uh1aF1#Binuo=caZ#aq0EZCKS;?YMls!<}bkq+0NqhUeSfdrS z0*OQ*)7O`&!>JKIr_=A{Upc7Z#Tv(2!wR+hL(7WAWyPiGcsw2N=B(U(8y7CzxR51L zTwJyS#qsn(j!&OQ@xqNX)wFig?+MXK%=e9tBoBn62K1|T{2eupZ(rF4v4Zy9J1`0D z!TyKdGvpp00}}^rSUwER7N!Pxn9jdKx%`su)x5?sud*i@8VTadf3T8V%UZlTjyKKo zSPEF?!(0Qo(h9=nT@^;y0+xm)FeY?jN0PTGcP)k%4Z8|hgkyB>89AMG3^A`QOfDeO z8kWAd42M!xZ5VD(q!4SCq|eYHRd9Ep&=Tvv9)^)W9#;p!J|cCWWU1PGNs6$=vUHEC z&X<;D< z!=`D7wEzJ*RL*e(CECvC8atz0;HrOY5M&B)Afr0u9OI~a@Q3zJQ@;rC%@)}$;BMfY zASJ;Y=^m;2OC8RjNeN5~k8krq&5qO8%7d^{Jqn}NX0HDo<*Rj_s#HG>h5TmwhheMN zf~8AeOy@3i?778oiB=Ztz81Qg9om>(q#<}Y$TutUx4`<#(aUj#je3(kZ$LqO&6VV%PDN^i>IBwY18RA z1~4rr5xphPj$?MVaxB!d*{{5E6wqG)kf;7Z78+wCz*xW!A;)SmJ^47e1{FU!>R_c{ zkn3Q;ikadF_mtw713fr$3V4%`L)>%Vo>{f-6`)&HF*3cNjNf=*Z?1&Q@yd9XZ}}j<29{AmJxrsTnbbQEElJ;%q1Z9QLu7c(WSs zH(BHTF2$FQE+p2E62!p$gfn<6+{SDZ=jhx@x9V8lZ^fn4yx*lO_!|5(OS4BI$8!n3 z0tG0JtP@8-JQ}~|O8FvmrO?Tu0Q)>gR-7Ku)rFyq1VqfRV{+zB$-nPD#oka-sK?vC38E~$q%D%^T148RzcPryu?IOSe z;}QvZ<%G(W82V0{Ua$-?V4!G=3Vw@RFES3_6;uynjH@HyPpTK~d`rwRLxUy@Ro`Kh!#~dbSgbp3cz64b|gc38jA~Wq3kzhZ2&Y zH-*oULo4W{hY;m3Rz5Q-=*X3<%cC1-5INO#DPge_;4Y%|T!O1O=q~^ss z+?h%yyuQ|cr?!io(l&c=4ek;M1Gs&TaUZrV(DC0dd`fHw z7L?FXfK$Ha#G+d9cnR5G8PaT#vR-q!F|2}z}Y;^1LWF`3VKikf~`h= zn7qV!8_C1~=i0mSxYzOVqZ^&uVmKtj9}i$J z(&+=X${(V_$y|@gnksp&f=SM+V4L}(HqPEcQLpM^I2FM9hQ0iKMoNq2eoTMS3rY00tO2KxQQV4yI$x*6K|_8EM^>NFl|vK}-lON3;7xXbeu8&|4%4A~;Qaxl zobe#9Hujl7JRUgj^XF2;E~?(bc5vd>+RCHqZ{Kq32i4BK2-ZoYWP7S zF&@HcUqJ&8nZ`RtKzZn#=am0gxj&py$o~V|y&EJtQ%kxUCSWe?;s#dxC`FCyuEphJ z^vP>-Ikpi8QdKS47HXOupPdeMBs4W7+kt! z>7){+}vmWjnO5^p@fughknX>EuP!v8FS`Gi)_ zCQcN>CuWdV2!s`j)5A;;yUb&%cPKus;#clqXNG+^j(b2ccI$?OQ%n~a$^m+o1G~!r zyX0Fv?0%yNoRx#;;r#0`SwLmv55g7sgt)W_Ckhq%;6~0>!3S#}XLG0QKL^{=aU6m! zX6?qd!M1>n&tClDUspKE;_3S#Iwdl*`E@@f6KtfdK9N_NQz1hOL|W?G+Uk?x zfby`6Z}?Fr6$&U{O6!^(jw!iBeUaZ(y_rXo{5c$U2LZc_0lAP>_}4Kp9s)1^Ne)iT zqA}Gm7(~emA{dnVT- z5G^1;#*2t2BNPA8QwBmqtQZ8z8ec=+2Qy|E7GnC438ozD=pHa8-k;N%nwRYhvo&oN z5R>Zhw4PQ7;XJfEsUEZ8)HYc+oylMqzOO<)=FT*qwVksykFE`Zq4KnL#oG7Goas-r zhGMO7Za=_h_LmA7huuZ^L_QR!Dm--N?Qc74;J_8(#7^j1<`B=sPqzShkn=-6a`eDw z%o8dKL--z%V-SPVg{NxUlMT}Q@pZOfdQn%*4$g$Du8u|ZhLZmp??J|aCLfP}jb`b% zFFEg17(w0pV5%>$sLmTt|H!$e$nXEjvE%6Dr(u?3&v3~D4()z6V-(mQM=vt|6Qt41=-NCPXeLP?ZN1uN^yT9qZ#Q zYQ+Wb6#(ylegAT9`9L@v2zmp`=VmVO{SGMCM=Lep{x@fdJNYxK&p2xgTIbU55Lwki z_~I`AbXOC1Ip!J-23rZ1JrGX4@sei1h{J|$yZSI3z}d)fk(|V5^-I;v>~R6Lqnn#Ye>~2Id?9S^%pia`Mq{~AQkPe3q|AInfkcT zT-2m22iv$6!K+QEAMja*YbT zsFoZ^d1GnCEcutR6RffKIosM^Y0oGZ4zziVO#5YZCN(KrOT{JrlETo$tJG&Y z%Iz7PvBCO*D2}n~z+b?Z$mLb0lpy4tgO77$pbm#02;0Ox;a;Wd?-THZ`*(jrk?Z{| zolQJQg}9ul1g&`3kQILtx&)GC@l>oSw4ims_4tB>BZ!0GW^oRS=) zHi<9SZV6g1|Cep2Zl<9T{QsV~ol-2w+;ML`f|UlmR;C9-RTV$L-awHV+@jtvNpNHpKfu zY|3T;pIojY!y&{Vs15pKzrv^TlIFlX)6Bz1t|f2aD}X`q8Cf2Hkv0Qiz=XTE;Zt-Y zqN*W92{YEKro-29$!Q_v$vA+3PRc3^^dF#0YGwAmF`2TEY)s0X>36^i57 z3?82|ojE=?(Yxcp@5O`F7lX-UkQD=o?*-%S_A@qq%jt8W5qu~V*9(G)2>kMctTPx- z0JR7Gw!PQ3b1Yz5&{)!ygC{>zJ`7#j0J1f1oir-Ww@RGvnsG0TFhSb~rC26tc4P;= zVMX@0B-2u(9P3D#!RdeOM4$ejZAEx(d9sapIRlkUG#CFloshfQ3^bHvzmY|MsX4Wu$K*;#E zuB-QiJhSn;lhtoQ9Iz=?4lay;3L^p1IE_`WF;EFw8#;pEi$+0vk|S``z8z2rGpQ-qf{qI{OATH9u>L72s{bRk(RNXkTbz zxB0~25h1$XzA__vtA})5oCPn=kF!zHy7=mmmrW>XM?}@}e{;^!1jstdHKh3PIrl)s z@w-w{c7-^2K+@EM!y*ipp>c4L4#AYrSC&>rzjpbP2~!aH&RD{u8s)XZ@h8)tony8p2dVO z&q~#&9-B35`r^wUI+;ZSt*ryC-)*!`^+nV+cd6G=ecRAb8?~uE z=;TgAyViko8r#(vo^lMV@spu7Ep_db1tfQpw8&QjIMng9$PO_aS;Hqk!K1O{OyBh% zrLw75R!YWgZ(M9QyP^xDxnbDOl? zGpthNld6W@E)a*|Y*aOdMJhUz^WC5s@%V<&hx#mQ7V-Iwcv8x`^YNsKj{*eO2I^v| zhD5^W@mqFE*KLj)-eUIyXQgrCvKKP@6mH<~KNCBUt;cz-BNsR;L_#_~C|ZKOC|1gn zF^25|i3(O94a5_HZn-6y2^j`H#ndAA1x+Bbz5IIRr~5OVzq+6^)6WJI!9NG%aae=_rS|72h2YY{u!r(d)p~I z04h)fnInA*4jmHhBaI7mz@TLfWMs~jpxrK%V|2EQx5_&S{;?eLIi^zQwitIR#+}S zxlrRleFoLhhu}sZhT^aVrT9*l0k7aZ4&;K*UDz&)__e`ZtX*uAq`WBRBq=9~bD*~K z;S)McYZ0aJaj?JPqY-$7=2yLv*r6zB38E>oC5mFj?F9UdV=LgY?~B`Ue3}Q}_kv#x zK5#L2%@Dk5=!l4?9X?TT<>5Z!3;4GMI5Y zjM<=LCh)-bx0TEP4`=TIAlG%>ckg|D+M73hcG}MD?9Oc8**c59Sb!i%g5VMaL9j22 zDHau|Q&d}tw9HQxmTgf{pU!_uNzd=YPhMN!+H&3U#D!p<_OZPhkE=h$%GifLJ@ z^9;Mg(m}+><}`I*(TiMJyGzoOPJloS5gGFWaWPqMjP)?q-k3iK8tHcOc{Yep(fTD8 z_p`VJ!MdL@lpjsN0pMS*)y;GAu5R^upJy_<(tFf4KV}#oGwt03T@2$iz`G9`*@R?+ z%KMwqX~S=9kP!Fm-+SKQi>@Gg=vEt(zx#jC#`I?f?>$KV?Oy{G^ zU>a-*5DuyKV$+s-9ixlQSz|cIuwJkW^Gjbl0u1fPJo^^wl`}N$v`LR1w0x4HObA#E zb5|@$y8{RPN(`Meh^16nC1Yxw1*i9ir6jw4*LHi)I%)MfXR-F1P-;0KBiw(1Jj{3B zY8^Q)7`HjY8nl|JSccc_Djn;6wSQXlOH^Swo1FI0&zeuLBfSLi_HR3ny0(#WJ~0J@ zy>Kuv1h(-6ee`l#lt|_wm#AmDuNQ62U0+HB^wC(Wb?eSKN`)TK;H=8-n3hDBzU187 za}P2-w>24u^UPnhVshdwaNg(7o;|0}xorcA{V`47k-5`1`T!`=XqJT!Lr=Gt6!>F`vikBypJo0{r< z;WT5l*{RoR^-gnQe)u%STf%t18zAt+4)?a4FvTT!e2A=-wqBIxy zd*=6g8_#SCf`@D(m$-pZev>^%dL^2v#b>nA69otl_u^enaNr{QBN5_wSL4-SisL4`l=ZfivVwRywzzE;9q3X$Fna(MW%KM>4))InchVi73EZo&tG=r z&Lfd1FksT{3Zz4kDeHI%*u0oWBgT+v_z`C~j@vx(3-P8-CivRr_grzsLYe%wqDhuh zOa-o4VcK=lQ7dIqkAPSy{6WJ}H~CTP^I@I=G8yi?i*V;jjIJr!AEUZplSI7+fP5olhIQp7RWu4tDs&61oQusKQP?BHeEb>8Wb+`mM0$TQwYNlU@k-zm9WG z5XgK|qojW3`s?*`_?PFuqkc@id!QutH#uAmEiI6L+FRNh5IDLtcya-bw=loeM?5p) zW+#$`)bfqZD@uOUFh}mWt2#Lyx5lEcJcYmJj>}Y*xh_$FbSqy!^rNS;me~f5-+bkg z1v|yaQIOhqX+5f6-y%kPidW|VSJ3ApmoA9(3jHSFj?kQ>kJ1sP!`k9AXMx>0cSlb~ zqgp-hdFQ=!n2dBnd?gs{z26MikI;Q((`QAj)x8r>3pU6DIyYh2a)@rq>YLzYF+9R^PI>lDK z?~=99Cj15|BOgLiY1SpGge@&EWrqRe&kJvx+`495(u0GcsRt%B%Nm~~ooxZkh|Di8 z1VH&*9+XmljNFX&P2z+5z*XcaT30>bTJyd?FY8vt)~k5*lo9* zJ@mz2jp^fJD|}^qcVDkqRX@nnl$fy0#QkU1cX#kSYpM!L9>qXA7IDanl{a@=;#>Ofg zt(yeuarjM|g0B(XWNWM}V#((jm&?ex7MeFu8vHbP|GPR;DIH$)_N}m@I+H1vGreas z`jr0bs00TgwHgTEtR@qIa#L~I2DD@bPG&Vu6kTD8?8@g3b|z9WIt_LyKw>k^!SOrd&d1* zwstRnUu2`jA*PuOCOE|2Wf(s-zGv@=@!p^H50T#&`{W{X#5p24^rq46Ns5jxwpIb5 zq#t5s@nUf|OhgJf}+;68%FXp69EHptV}EwW-M%CYa3x=e&;I+bSjE zQ+ddtfE>ea;U|j^6_Y+B!K_45bWNNL*K<@Ula2emw+6n--$z!n>%hNvB0Zxqyi{=dHfEPDLTjUs6+*NjZf!?fpRGmX9fo;t;liSEzoAyB zp7(Ax6z(;9e~Cu||ANuG+qkgOm}xX--qe5+w6QQYe|UcEkZfqE!^WG8s$1M^JpKv8 zc$*RUeA(DrgzEhlq+{dg`VZleA85_OIl9zo`Gd2=^Yg>AgMmKhwpigT>M*I~i?c>nS%PJ~;B#%)~rE zLGo{*YqzFqMVU;$$G=GZrg|)yq28t{`hFyhvly=pm0a!dA@E|U*<`|~jaf#yJ~A^s z0-szyMoG1#3n#|VmzbwI%1o@B@sdyxe0peV5;Q~gmTE=o z-pF<8S8S>dIPfHM^*}hA%x7IatGw{3DAOPjcS7%%eyX5e-_WlY>*ycD3-PtBb`AYCXxsgfv*oRM zs-Dl+^N;9vb*29J8XGQsg*tzoC$+J4zO;-5mQl z4o>mg&;KzvtsfVyDC8ADlW1zsHxdmAhp@w~FWmg%%tVOd>etNt2ti#^Y60`CpuTKb z*I>JMKc%`+D0r`tm#lVqf9VQ`bd}!syI^MfM+$ZCOAo!|B&70&r<6Ws!87xmI>eZ_ zi32pmW~96oUVrj+^$a28>GY0_C{da+8+8edO1x0?tI&*~Hwka{7iI=Ge&nyV`P31; zk+Wl4#Mp`d2~BqG$EmmGXOm8226}9d;w9=0y|-<#s~f$i`c&An_1}$xD8hiWUqpzl z$Hg|!w=E2p;q`W3%IdAf?~ZGG<%@~Bv%b51Ay>T|4>u+ILLTnE&KAbsG=tGrTuHNv zi^3?2AwtSVl@q<$mPpn}xzD(z4s8aph7naRZkHFZStJYUxVDY=b53=t-b2Gmtx>&#pzT zG>IKM)w@tl(#n-6EUk8^pFf$7yvHgA&ku+hpax>@d;Z!h?RMh34kZ$Ie3G4R?4s=A z&3extd(NGS#GzerXLm{31w&-HaMc5)D09i*AhRfPE z0>`{#yXrc|)Y9U#;rs{3m|k3(GMq8M0haX|D_uhH|FjE{L-`m&)<>Bgl>y-NakiOjD|yS3&{au z3WV7>ecPx{>n-Zba(5rJ@_I(chNe7*;Adre7m_F`$&!1tUcVv`T8vaKrgM?W=d|Nr zgj5|>LB(P@JN|P*4+b>Fg=zPPQTDngZ5atHdRq> zeV>CvOPa>eb-mtA`>aW9L@vHb+|R14%J3ep#ybMoY84ojA2{=cx!T+iVt2V z&1$RTV)GDG)1c%L(zM#_Mdzob)xi}CF#O^#Mh$l*GHzsmA1Nf^=27~}h5v2v7Gv>c1>&(@>SdKM;NIwm2?cn)H!h?9d#-?WRl#@t*Z zSA;siCWixNB`X)VU2+HL$+mNv%0khKev|vQ`CDhck~&}oZGj?1btYiwS3qN>gKB+& z@}d$n7jHrvP{Z=#d^Y2&w+lL@_i!Rha;kbfE4sz{<8{-rcB~T6WMHH)v~BU zoJ>c()N9Y5%4WmZ%f$gS>;CVOA(;t%2r{{7uu&o8m2FD7ScIrhE3lp2SOg2_U+&zm zF^n&x9iGc@L2_B@?fSBM_vp)-GayOJWoD& z^61EjlbLS~y=|;q9xJP}$5&=PFxznluQ+sVb>+2eD$`obn?1(X!}OgZKAFXV%UBZ) z%9OEUwuqDIIYEX*UPwH2{8W@*Jb%)abfXFn8y!tFY}rLng91J8BoQ(7I4oG|aY)LD z#~FjWAGmj4uJ>)y6n&Wz4WmF8d1DFqQs8G(31bu_lT$3yqb$5XOuOntEEzL= z7`ZBj?|SiaIr^Z$(h@Kb6PYZ45c zFgJ%GV6DId0MNcn@mY!*sfB=q?SY{1U*9XDLzba}3co6zC=%zi_OE`F*m(ND4<6sc z43aABCFM0{81+GTEW9BrWyGuX*5dH!;Gmf!%&xp)#)Dx`B%(iJnM2Km<_I^)cRC{_ zaw{U&PR?~Q(IU}tl6m6Lcp0&x6<0&KLWBC-4Sd(!nGq#PG+~?dWGn*LTedj@n+z^& zqn=B0!!n1}(c3q$pYy_4s_Xn9BI$Qzh)YS_Nh7sb5UI%~W|0MN!{hbn8P9vOg4c#M z-tpnXiQ2m$@8<+Tb~eN^4RG#F#@USYkuCdA_Y6_ub<&wA4qAY^{iKv|B&xlKU;FrL z5A)z%+wI=6c}v%&a`T(K81;l>F}1$y^fhPBTyuJtjs5M}GncR4eDms&S&I7jKM`~P z4VlZ{zwx3wbQkdlFA2H>jjn%xq5Y~MYzubytKmIrCs}xq_A)N4GyU^Y1A*0h7UY5u zI)lOq;@^t%E-RX0Gf-y(0jdS7>BP@aKj40$n7$tf+s`B@NGo%7sGmqxrg>t0$N*_o z%`GTxyJa`avK}>y3#L9ou0pOFjcY_cWp0-n5k>SJzQ5Ox$1ClMDwo@pc$`&XpWYj; zs5SQN36D{mmAD^g_nu0-UFLHytCij-D%&e(WS2fj%MAL)Dt)6U=t$%hzZ~YkF?2;T z^boh+>L@`l7Q0r%!L5K7Gl_)?~{jlcneub>@%_B7dV;4cAcB z;q|a34WxNK{ZY@HDZa$8!nR0|u22WERg>{^&~STBTp@ZW$UqS9NGLGm$T_W)5Fud? z=ajq`Iha$*QCzP~(Q;C>l<)>B%fiI(So`;55E1L{?B9>1Gb54ZaL4mx@kPl9WD+I0 zyZtY-(^R5iX|zqMx9yyZL<)HU^Vf!~_*-jLNeap3#T9)*8<8sUu|1sFvJQRj5Pr*8 z_Rx)|57{j23AcYoX!>n?_Q2XK<>$Q7mF1t9J-9l{FGNRQJsOSJld(vlHk6n1)+Qz? zEK!@HMk+r@IVbs@wzgDvjMu&&L1+G;OTUB)mQpT19|WJ-iA}gruYYDID1ql>Z2K$a zeA}pmEoSjPEHFG*-{82XUT2u{-KUrmE)X{%|4v3JPhjC2LGTw&G`LWYI+_z^U=wZ) z>1D#MF|ZG2jZre{hr5(#ivWTN=}H32-BmZd@EHnJSX^MtIE3CjP*WFG`X;A|D6xy z8u4Ebf?tm}BCF-fy`Fck{9QA*wG|P^CGd9>&!@%nfhk4oR`9%9&T0XSTfRTW^@DKs zO1qCMJDW_>+P!aMG07<0?R;U6bndZaBH!`-PJMy9aHLf zckyc8_f&AJ&NeD-Y9Uq95tNmoNpzXEWv)Z>bIh=&e%iG7u-8qi&5q$|qxx}mY_WS> zsjC;eSO2~mt2AZ-B32rmKQmBMF1yXP4&u-Lew(5qruF?SQu6sq>kd=HEx4zC+`&ca z4hc8twig0B1l3Y<^~KPYOm9gL?QfE$aFoAiyXH;2-MRw0{CH<~2U+>}_V&I2sBKrV z`BxDBc%??8^XZ6C=SxP&XIa0!o+DGkXm3DMfLrnYrgJ?jzf@Db}5 z^}A<%#`B)GqA}AVfd8~*eU2JfS6Sw5d>pgP>ri=bV=4SlbGH31%X%^z{Z};gD{cEt zFa`0*b-x2`6bl^td6tYn zHVMJJhgs*KtsVdvccEgfdHS5Z@hn%dMe^dq!u?A7NMGx#6Jl}gGr+=VKcP6^r7yO3 zL~#5mmWvfOcTu*5P%RSVO~_pfqSZRBeRGRI5DmNTF`qH=5eIqQS%MLo{X^ zq&z(;>lOqY(${*nP#aPVc1sI#a}Zm|h^Oph7Q<4^O(B5QKP6lqZehP6KzG^Xs<*^l zSP85;)VrDvVWUoUJUed1DZUhOlXQFG14uSD9BnlMG_F%R-ge`S5~O~DlBW32#)g-} zrnI7_mGI+@?NefA0>XAShJAg`L=cHb0dn@wS>JGt1hE>ZfB(1VyvI#=MyBoqcOD5= z?xKz?eGN~r)go8eX~7o>Xq#?lC7rugf{}zW2{mR65AHFz#v;lIA}iFocU083op?r{ z&1H6{`YPwU+ws5G`O?F3zM}VC&$pv*qD_r5U1`?^(LU*-YGjKA6{51bu%T`-qxNl| z4L#Qj&S`dFV4>faw>oCuFl#P|3KSY?%^f{=iP^d%cI6B2W3tFgodJ!*j_`FstWjN{ zgC&t+1X7p_S5@eHk=is1)M9(F+<}ZS%dajrx6+lj{36)z3>-uhd!;KOQz2)ilk15R z9ZdReK@AAO+j)5dcX-D0K2Z#iN$2(Z;m~}H;<$@j{so`+XmmafNW%GH%3%VeKi4Wf zE8pdfZ}gC2@@@TklvvqD@N5L9pYPM7ybi^{$lmcN3a0f*DiEn#@&A(XF~UXlQ74RW z2~8wHogvfEsJL8-zKE(;P_Kr|=r0n9zt|R%y}yU$2n|rP9O*qjEp$dZr0lyOIue3T zBP2TNT#}a)RvyvOfh~?`&{d&S$E@AL3~lYh)ZfOlZfW+*I+OPsV=F6T7v-&_fo5SY z`X9V#>j9ku{N9!I6<+5w_UymvP0Kqs@$7{c=bP$l>I2NvcZ(DY^%*UNhA5qli0QMt zhZ0JjWhno7)FM;FvxE5HKTll#ceg~DM)icJ6L(Nv`?KUL>QAH52@rsj=onZ<894Xr zr8-PF^-?;HNWtxCn0~f0Had3Ao}*3zdX+u0DORkFj+_{2)rNz(DO>3z{qsPCYGtB( z2Zt-iD&bkoUx~2OoQP8PCp|nmUN0s1S4!s~MzvjQFk4F|m)Gt}Sl5||y*0zezsMB+$Z3WIEVZIMu?C<kJW z2vRq`$cGBZo+uR&0KXm@a8!xW+p4-?^!E>tEdv-;}`L_OB zdqMZLmt29X=DFc+Q^Q)tWN`at?P{ZO%i7vZYj>;~nJj^LI6OGr*Kv>D*=VfYvNqi; zR6$Y<0=Jj3@*SSfD$l1TvLrKK0N_%f=kr*^X)8~MZ~)D%e~)3InU(%wyjDwBhGL14 zs){vJ>1IsThU?K>t&^ONMW>=xzR*y1VG#6ZYISeClwAperTH^Moglag*nM?~``K}S zD+8~hPl%}M+r^AWtUn3Ff>~pnF&>+a9*er{Vm}DMB_ZGz(xEve%~UK98UTT; z!}+OdEx+oTZ|xr*p}r5goiSR5064{*+dr6eW{%yRUnQa0^Hzr*P+9Nb(EiEk+F>j- zVpYm1rVD{-CQ?y~AV^^cPF|}{@eMV)eH?)wvz*Qbz(11uIEw0ohaIqS#vPFSQ(O11 zHTsue&!vjo31))6)DosoO;L|hwO=u_O3P7eGtA9g5FJi8sff5d>MPNC7$v(x4a1>f zE)-wMA>Gt`fbtYni_Nk6_zjT~rBHDto5{)zuv&RXeGYf8f>JgyRBCF*D>O;pZ1}CGCH!VJRmAHD0X7-KYMpwdF9hLy=e_lcrgfLH%J?M1dGh9|srSg|IO`(I`*KG(Fm)BJt@&5Hjq=1r{hlKri!+hh zHt$kdlL0eaKongM}G47 z{+UDRXz+^C>spJWt>s(mDk0edLG<_QbIxbvd+qzu*=rt35rI(ZXLH3C#eTDq$Pd{+ zkeE4mduJ?P_}tWUYCN6jOh`_BK0iJr9=QH}M6qlo$}Jpz>jO6p+=`@NP9T&oevP(B z1?WAA19h1_fJ7p$gnbli!}AKqe}v6q*uj(g{;)I#r7)6<8)Ln7pAGC6j<@1qO# z0fV+@15?)mc`8sK(rIQXw!Y9VATyZ1>81pyR_}T2TfcpvIgvC+$BfmH-x|wg#?)t3jS-?f?3)RI+h$$L*`?Q}17M_l(7eAa3gK7e~tpAaP3@c5PR_F`8~1NiE*(?VG;5 zDRl4g7+xJNO_U2cKLy~??1A(c4YsRzjfg9wLe?S4<0@|m>1it z?>8Cc+44vQcRmlAQU~3U=t2fe*uCJk7^k3b+~#}V=Dx8pGrAI8=zeCNf1l|tL{~oubYgFeABCHuBd}Ms(qij9(LcaQ+s4MBO zd61@i<+r3dgm0i|Aj6SD5}42IH`*ah11cyFSQG&qZXtDpIB{fM4bBls0M`%e%TWeo zES1dVpH-=xu#x@>T-ryxh`&mfk-{&2f}s5dmA=pIO1a@o;<*Ej~B!2uziq=6V4_h{q$F7yd|rujAHe;DDr* z1yoWzm)5LWaA4VFwBY-2+oW^sH)fQssM$t^%}YiW_aZh%D1z|k1G+GEtmuH^OvoYM z;#`n@J3%$W@sk#7;C7=Rh$Tv{gl6+sTZM4rBWjR1~TwQA5wQB@*u#N%Z1^Q%t4^ zFBM2@B1&&e&lz^irFKQr3PIYrSk}))(_=vZ0Vyb7Cm=+{)sgS-5tD*dGH;DWlWAr7K|(a7DI-$PMp6>V zGORd-Iiwf^9+w0_d^6_7oy2go6qzubT&#L9Yj}Bpe3(PZgc!i`2E7vLT8{t%u=dzy zdK#V8byGnFKc!{0Dz&C*)X2xw<1EzI(Jw-zgexF+nI&~e?`6C}c_S@M6~C z>(#j*xc#aJ3vo4>uKLdG-jPzZUi64=R7)d!scD#X2J;49X)BgC+Ofi$kKNuMv&aVF z)JHaqf=ETy z?IQD?mvC;_wP$trsndJ*E$yx~+e_Wik=ZenORcXDRE+_37jY7dhZo|U-{sdtrx8t5 z>z$Mfn3z0tRcCspb7XI)QyiWetW-;rwT^T1Cx3m{_^w^!e-uj}nVgxQUAt_iGv3J! zRwgFPrFwl;_U+o$|NU_8FeM+8Y|93o54YW9LXt`oUs;`Qjm@r&$?{J=c=F_fM?)Lq zBC`1$nh}tkluV9FCdVWLl6jF6w8NP(Wql*@6VB4I*>Uc=(|^i>8jOiiCFeiFyx2Zo zt~|EDHHfSaui=G?#{(FxqEBF|g!QT0mwLAsKy3EWkeF?fN!5?vs^DC`)2Zt>QS8pi z+plRm^&agAxmWu-)JFdp4y^Z&;!rqqV5X^QN5~QF0_nF=$R!g;XTpWa`brU}@y~!w0(~$=2lJVC~k+)Vdl*T`HbPr4sS4+&$W=6ra2U&f3x2wA~QuF~aXU%yotH+RiJX_wd8a%`(%`Tb1TF zkaFH>|4&yYCRX@+|B;E62`~%(^8>P3@&5e4`NN0LZ!9lw@K0`8Y<1~pKhB)?3c=|1 zV+zL(}53%0cX4OH#p4pbcMczxV7#?o0kZFQ6f3itk>*Hy_$q=1 zS=*i(&tTe3jMnWsup<|&m6A--FInm~!?;aZUoy#8i^acS+g})jY%!YsGzU}Y0el0dh-midGl=mIv?i2!wD5_tS%sWUgdaMpo@oE}6)sl5rAsvC0!uhx23Oxk{~qcg?&s1!1eDsuY@?1QTNs~Q9Vi5nb8S$rO67e^*cF$z0^b?rAnOrfJ9Xp6; z)78Sno>70WU9)B(C`-gmv)1nYx9q-=0u(ExdQf&Kk{{ilN$;48*7RJYN2=Vb*1x$y z4G_`#kRG`BX7p$VuWry?^nO$YTA|RNjvl^sxR$nqWPAD0`u;0V&7dQoHYNAXP0f!D zrSlfGd;v5K67LuUr@0sPj5#b)5B6719a_BlhNVLpD@yf3$4Qr_4$QXZFB?ophf5JZ z+Zc?bZR_52v0Q%jVJtIU6N16O^Oj0KcQH%!pC-bFUe4?(qB7M^A%epH;9<2Zl?jx4 z%sKdZ#7N^Y>j#{3!ZRe5*rggg$Q_1jbOL=6bry1KCm!|l*@%O)WW6$bAQxlmjr4v8 zf^{sfNHpm}5nstqPG`j?H=StOOTT8n`XH4J{P>f%j7O!~DaR#JcTDHK!t}6Bolftc z$dHM~pvit1Eh_4oy{Aj+9?Q?f-Do_P{t{XSy!52ZSn&x8x4KbkDG(oYsa-ysHCQHE zxTjO|iQdR@c72XSA2_z{NZ;=Y_ueLLB|K8sV%thho2o%4*6CKFcZ>QhQjzga)Ka`} z3zSyT%udKoK_1~mU63KeR}2KG%t7$5?n5CVYNxG*rNwvUD#`q?W46lg+(=hSnc-Zf z-0!Em|2*alg(J7d?D9(mw;J+%c|!l&2}x}tFdlS%~7nBx)bSL zL&Fi{Eh#x-BQaK33Q7&1e~slv9SzMK9&DM-FKbLH{!jkF&9aGApMfjt2v_CJnw#gWtxS*wxF)T*RXNuRit$Kb?qsr8g#Ovz=O^ zIG(P%=VVfo`J?~2Foa>h>)Q2QDBeT4YNBP{nW~gXG)((fo2^9khxwf#|F2TfTEWSD ze0VP6#0S$T>S}Z}o*s-lk-6c~k495|+9|v`UaQ56aq+dAx~-*8^|4f2&W|P9xruPt z`qb$bjr$&3-&p_AzgT~2^Nil`vya`kzH#9%esuFG&SO9S%>kdW{6;uQJ~i-D1D_lC zx1wj#rZPOW%+(G@*09CJoMA~y`mxIg3BVf1w)hZG8#an8E_dbGaF`q)ZX=#sGZ*sV z=tdZz$YT4jDxtS!?3@DjkZjNv6T@L^sW2y4W1sl1Y!fg@xGbn#{6WidQOm}Fk)RMY zhKG|KZn=?U5woHZvFnZvF)E;`c$Ts0K};FVM10`KzGG+YTu>z)t{kfl0sZp#x{Eb8 zwYR>0TWi#@3#luv0y+!@kQ?=#JkDLb5ci%m${h#4t(7Z4rEf%FnsYpu9-}cU z8T`_dbV^8nHVcKip6tS1FHGrMlSX((`CeFdK_?{WQLf$?+doyw2kB!ESjqiUL#1f$ z*aJ7leIL8CoFydgTKQbTb0di92(U47q_AKc*+L>7BPFU-v%ngcilPe;$BRefK*?j7 z5=KVpv3zlAU);R^s(7(nn%Wl__gz&u5EL_|h)8@YBjb0lsJl!XxpojC@=NsI#xovd z^FBHVLc;VMqz18kFGeMBfFD6J=0|}Mq9>t0Uc^p$^}w43-aYW%{>%vk1szDn94#o3 zjj%1kglm?GcgUVrdx_n&1xnl8nX7(Zi!4k+=uJ;Zuc^{b&)G@#UD4 zY$r!7H^F`!XDK2e0PYQMwEakXl+t}ZC@9U!Am8`wk)W0A{TDwH@gt`xyP28K@LpK+ z!Y#3A+L4^tq)9q9R;p1hlRZKLfQp-RI>Uf(C7M)5ayZSHz)zvPT#U#Ck(ND^)6;+o-ofy5b6&$N{XmQp+G=%cu4hE%J-(_$j$yF4&@D~+rEbFP-l)uwij zjaLpC)htn`--so1LqoYVOU${Znmm#%S6bzA?;auIr#59QV%ddQCi*WlKoF<8XdzB+ zWRblC&&$bjjqyr#ypt^#Q^(z*iJ?OJ8c*%7q|2Es$sDB!s9Wl~7h*BWSZ2@QODV=V zi*07vp@**aIS$}gXo|Mp?e{(zZ4#gj^{_5ANHOo3TMPMLZPbQ+lI(LuKj}D~TrL@- zqV>jxWya!**@ILachR@~WcB^K-Bi2~OrBZ&z7{Z36oateuhQ?gW6uMZnu`qw9vod! z4ufC8HnLq9Zad11(Y9SrPGZu%`zlev;c_#fU-KOEA=bY}4~itB*OT4JRD`!i;-;sf z>HJ`kLL92>EbLR8cfS8lqZA{`XVj~?_0EyLeK&BP>&ys#O{^3hs@#zk3f@7R(x|zb zT!qJ+%YI}6%Y4Emjpp(WNj>lj*s0uys`G+vn6KL2SA;<0E8Y(_i?U(j80}1y?fX`P-v#vu>3DPo z+T`y_qk>1$wXq*r4T9C+Rr2i=<4OD+3$Po9GPen5i@K&(qOg<@o6+#6)yw$^=ggPNTeEc zjvl&g36(~6)(RD3^JT~82BN+V02lh3-MJ@1RwUNny|gM8yN>eH-9}?_x&{w-MLL| zr{R3TUjr@o{D9Z=P}Xy{8c7%|+c|ZM-#y~k%!XveT?-3EGT~i|dq0&MvYqBA6E@1# zYp(JlgGChRT5&MqT?KK2en#}ubM(_IS;>dKGkwMSmIT%!mp_bksO7j&Gb2(7#E63R z!fqreE8MTh97K?M#R}Rw@DGx2VYEax z=CFCST3$PjI-M4-B#IaFS@@wX4yE)D=SQ}8ImR^y4|rJTTVqc6uo{9q@Am{Qi@u

      r&t+fbm-y)Mex|N>O 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Ξr(#{P@A|12cYl|U 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 N_m}q|`XJmc_+R198#n*} literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/ionicons.svg b/frontend/documentation/fonts/ionicons.svg new file mode 100644 index 0000000..ba35c41 --- /dev/null +++ b/frontend/documentation/fonts/ionicons.svg @@ -0,0 +1,2090 @@ + + + + + +Created by FontForge 20160407 at Thu Jun 14 08:50:34 2018 + By Adam Bradley +Copyright (c) 2018, Adam Bradley + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/fonts/ionicons.ttf b/frontend/documentation/fonts/ionicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..67bd84202ad5b2e307d3b6fac1731c2a5d963e0b GIT binary patch literal 112472 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 Tk%-c1X!zdJ9z-96+av!M=V=Jy literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/ionicons.woff b/frontend/documentation/fonts/ionicons.woff new file mode 100644 index 0000000000000000000000000000000000000000..ec1c1f879567793545e1a00ae1dabde12a7fd96f GIT binary patch literal 65912 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 GcK$C}BGQQf literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/roboto-v15-latin-300.svg b/frontend/documentation/fonts/roboto-v15-latin-300.svg new file mode 100644 index 0000000..52b2832 --- /dev/null +++ b/frontend/documentation/fonts/roboto-v15-latin-300.svg @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/fonts/roboto-v15-latin-300.ttf b/frontend/documentation/fonts/roboto-v15-latin-300.ttf new file mode 100644 index 0000000000000000000000000000000000000000..66bc5ab8e299e9948a6fce6b7867cc638bc703c7 GIT binary patch literal 32664 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 z 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 N69Ue10BL+3|3BR=Qi%Wn literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.svg b/frontend/documentation/fonts/roboto-v15-latin-700.svg new file mode 100644 index 0000000..fc8d42f --- /dev/null +++ b/frontend/documentation/fonts/roboto-v15-latin-700.svg @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.ttf b/frontend/documentation/fonts/roboto-v15-latin-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..19090afb10e101b0524a4dbe1f5af074dcd2a1d3 GIT binary patch literal 32500 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%0D$XrKy88VgC}G`wV# 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�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 a0Ynt=GnQ`R7YB;vi!+u207`fxkN^PiJMWMH literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.woff2 b/frontend/documentation/fonts/roboto-v15-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..11cde5d04c470947b1c88e42a684fcf0d5b396b0 GIT binary patch literal 14552 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 C(C%db literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/roboto-v15-latin-italic.eot b/frontend/documentation/fonts/roboto-v15-latin-italic.eot new file mode 100644 index 0000000000000000000000000000000000000000..f2d020a8741fd850a1480bab13d0e11f6e914025 GIT binary patch literal 17534 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/fonts/roboto-v15-latin-italic.ttf b/frontend/documentation/fonts/roboto-v15-latin-italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b0dd4a1e528f513a5261baa536e6a226200a2bb6 GIT binary patch literal 33404 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 RR;p6MN{V@9tNe#1{sOTsz$*X% literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/roboto-v15-latin-italic.woff b/frontend/documentation/fonts/roboto-v15-latin-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..a2b770481888875242d97551db61ceab992b14b8 GIT binary patch literal 19880 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%0D|EBaVS5|Rd`%aFD6>_@f zUCHoi8qQmuvm}0?eW0w_zcQN)-mibJb;#vp2P`%^=6z>U`(hBlV4+|!(qZ*N+%WTp z$Vh|L2!<+igMIg@|5WMsJ2RZ6Bkw+f>7LV=O7XokmRJJg>Ay z%qeL+3MbNif+03ieg|(9ZLY$){vo1NCvbK;k8CAa*Aqj=4gd8H{{Ms^4zI z8!VQS&Y0jj(fP7@wm*+o6{GEVC=_w1>}h#RTaMWcd$pu%3zbePgSkxvGFzGb0~rmgMuwle||^N(Rw88Og^~GWrV{YIrZWj{@ANUX;ik6`-`Uq$%YQ zlt0FzH33m|^ZEPqs6djU;XNx(%f!uy5kG|n{lLrU4kgY~>KOGfhGNc#{~%SjURhb3 z5sNwB&ZK6@Q)Tq(W-avO#6rC9o9Y@ z25GPOVs>g_1V3nTpLSZG0URL(Xy3G0Vj#VL^s*fuZU+_g4wfxP=6BV+MqSE--?M|}v_BOt3;Sxx5;IRF4vcbH%IXJ%)b2_?BgP)VK?Wp_U?@iN=r%}th8EB9YAF{0tz_;t21wRo+f*Y zcnY6i;1X?gdF>c~{nO3dqHxeADuS4y&oF)?pO1|N2y`PV)^>#hH<$BDVW`exnI}yU zTOAe*B;hg=PYEi1K;eep=*y|SUp&b~mx;_9Q5xLuo=Qce#*z$nQ26YtAMLd2lnhx2 zE!H!oO)H@T-u$ZsAOnT*X8z?zBpJm0(Sx3>(@*TjqoQ$N@Sk^Z=;ly$pvwx9$9}Yp zbTp^a2*O#MvXFLsX9v^5FKZIKuDcHO!@&;W_;Nzdne;I83MtxdmsF=qw@7eGZqKAU zs;M5{y*aKPBW`SXj2aP^I%{bxGNCJVUKCCoq;O25t9TmQV)p$xd;5;+ty?pdhNGibKlxhs$@v#h7wNfufi z*k{*6sI;CcvD|iJ`R1Ms_s|x8J~po~rod7D3vRL6E%SFE^OHjOm#%JS_Uhn8?gjl6 zky0G&UqXBV{9lcWEQ?qRDjs#WrKwKmO2FTO1OpASooY%0DBtP*gV?bR+Xd=HFXCog`pD(Kw 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 w1=re4371U5b_;_(00bZff+hzb8;wM>qO9-Y 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 v#g4%>=-%`rNTT$Q3+IGsv=@uepU+g& + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/fonts/roboto-v15-latin-regular.ttf b/frontend/documentation/fonts/roboto-v15-latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7b25f3ce940cbba3001420d38b7d0f12fb7f2142 GIT binary patch literal 32652 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 N6K0jQ!xePm{|7p>-q!#C literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/roboto-v15-latin-regular.woff b/frontend/documentation/fonts/roboto-v15-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..941dfa4bae83483cf1784641063ce1deceda1406 GIT binary patch literal 18520 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 literal 0 HcmV?d00001 diff --git a/frontend/documentation/graph/dependencies.svg b/frontend/documentation/graph/dependencies.svg new file mode 100644 index 0000000..16bf821 --- /dev/null +++ b/frontend/documentation/graph/dependencies.svg @@ -0,0 +1,14 @@ + + + + + + +dependencies + +dependencies + + diff --git a/frontend/documentation/images/compodoc-vectorise-inverted.png b/frontend/documentation/images/compodoc-vectorise-inverted.png new file mode 100644 index 0000000000000000000000000000000000000000..e95ccfb06cb8d81c827263438e91851ff27a2ead GIT binary patch literal 21782 zcmdqJcQl+^8#sy(B9TFegfMyyqW2b2MlV4`i$sYYy_ZO0^wAkc38M$mi5Ah@h~A0b zd++xh=X~d!-(Bn8zwf%%vc{VC-TUd!e%cnKrXojxPmYg)fk6O~f1!bafdxkY;@t+m z`E5|&2YlRqt0?yZ_ym4VrE7eFk2@dabsd2fBj{hu=gdiNz?ZmA5M>$MIegIFr*y=D zoAVeL)EJN#QZL=cH zpxlz}Yf)+Q+#~B%>+Mg&nT46tsY`f&PqhzIP>YlVN!}tLFwipa)H3rrhIPhecb65Juqzm8^-=J_yZHtdPsV9$_r!MWX>LKYmJQDs zpV^keo-{@T2*WSAzx>VEd9vem@{XkdygD@+jD-eL`*91km`|UK7(Tm>07qG!_?({^ z)i)F2N{VBog}Z0&A58IdiqWw=ZCYvvVKUQULNPGB=rcCHm=c4+Y}!=p`%QanX73s# zclrFTd$Y=trMNs@Uq!7P*6r1O9@g5l=1z!cP?5#MS?tSuBmj=JB`Z8&59 zt4 z-B639WILrni}WQ<5z1(q=(dNthE?W7RL>$Wd05PJM-&)q=e8S^660bu;`uQZxLG>N zAx_yu%⁡o2i6#7+sQ)@X@Afox|jWgz-V0+VV31+i8GVW0pdd$o|bh6LKm_1)ED$ zwf-OfF#JQfkd@9xT(63v+iT0lBrmwuX9TRD@+fYPSetps+p zomamjgsg_glYA7NBnu*E2{9xyS5th)`!t*aK{hNSPF;o1Iu=PN1)sJ}aH&N{*b`uo zw&C=B5ie`v<=>l?S$={I+pcz5)K0&J#sq115<+IK;~n+5c^BhCrUI%HjHv(>p@Kt{R)Or)oV5 z8h9Vjd<>07)bUr+NEy=8@UG8-mkCv9Wu(UWK~^9r+ixsh#z5h|FPk6snIM(!FB0cD zlJ@EPUUJKr;p#pES62}ulPS4K;$YPLgTNxop#@*u zpR5eLpF?(%$Bq#bYeT23$k226TzunDlOqxy(|i3WI%3c3J;w(Q5zkB3&fHsQY2MEI z8SSuEDAC~PyYu(sUE7@k07-oN{z5a_#FvmL`=^kM zSw}t1d^#ub&09#xN25Yf`Qr|2jGCwl)h~E|C^5G6^kVPnVIzo65 zT)T;dVM=49a)}Kdk5W9jTT#>zs!51_svi04y~ccY5WuxG+moHCcz*pV2U7|;tWGKZ zPJ;!-)ab6vLmWL#5}Dxcg#{874GH=WjZ5JKBN8f3fO0z1QQh(`^?loO$tK~}#-}Mr z8^LdGwU#YDCw!pDXHn(98JMoG+nEbngl_!skteJI550T(#Cug!6Lz{4twZU(`rzEr zbdV`rTCHJ@X7!sF$>i9hfUXAD3lUEt;fUMUA1=noyd^B_t5HB2i0@Q2vCmsuB0Tj%o)_&$01)|%DbnDW01@sNyTO0fN11vtY!cE z^u0*UKmHQ6ATEH)`s3+`&rVBZ649svCFi%It+oWu6q+aZ`A@=Qoo< z&2U~Zl2^U7SjW0j)l-m#lXg+n+mYjy9_QlVT|y8x_Nm{GhrkE%l4kPqhED^xXIx2m z(4KUP)+0}`c?sI%*H>RynE#ZIzPNLU(|ik4N*n`?C(e(B`e%qg1m2!L?c4&Jpi>$H zoN)aO);`{|CadDU`$a8TpYHnCqy1dq4UW`QczDR4^Z3*7;UAUD(5HO|kbUWN{|0%H zqk^~*)h_x8<=Y%p_kq3FDA&BGslL3p<19(dpSmXMIcr*YigIA&cWN(FY7*9@6YiJ2 z{@oZRo6)&c!k~{evF=F1$|aJ`{$A{RTz(=WHI>M7$_Vl=k)Y;x4v#QD(z-#mcotDP zlZ@G^dAi%0(CJ<1MMT=djphq3^V3lkzqw%p3BZQn1*wq_Zy74DpNmVFb)mh2^*&EgMk>61U#D%$V>qcB2vS!|Sza7?cp%x$QszMViOi9+B zCZ#jjX4S8b4<*0x33TKawrc9R4hOLF1Ne`Y);3A)Oh`ZinM8AL zMQ5ld5TqQ3?{68sdG8a!dRgWsWKTSTUcVVetk(%f4i|Kf~aOA-(ir^%@-?$A+S z1u$R6Hh{xk^B|OMXIZoVx-PcYi8WVgV{Y8!}|5Qip$|;%S8~w=i?9s9r8%bN=d0 zFSdvewz&rOgMHTAegTjyDUP-rjXz-F>y=MQ`YRBjLv_x?S;W9r*sL7-Q3MFs=Oc;R z_-aNycJkr{b2b;#2ZNc~%TD%xG5MwMaqzg{ShwjbT6-XSbo(ZDW4^Ti(JnXXCMHh= zcyTZT+sZTMIkUO)deIp@K==Q&=sNA|C(aT6%gBJi*L~`^T`;ec4{ZabItta6!Z1E& zU@O4?vQy#7_mmv2Xl4bVw4az}{AfON&bArSDNqgJ%TuauVq5O5^O;dgl>sOl6$+R3 zb9+g>wq<>ms6D!C4Ext8TQy9erWT77YC6M{9BBWp09cp(4yB|SN%LP4Izlh;`B zo*qqFa7!VmGhlrsES=R1$A(@%qxI`z(Po%&@eE5tQI(TyYonn@8+n%xnW_u(u@L() zdix-&Onf8pt&)#Y`gK2gqQR!FR_Da7Ut9@) zNLsRi*}3+XV2yEIgZz}nwCMehyGL9#RUQjm$Fsu3u#r3MeevSO5<2!WVEr_WIdxY$ zs-oRj{0~yRT6VX+KFa49dI-n+j=%J>ZTgPX8$w#?M{lWpQs{%eH&GL>eJjF;7eF>d2#5pC}lf)zZn z4y`w$uBnpO`g#FDe$><~&___)Ic7O`uW)EIcInrT)lZg$s%sH zIX@{@e(u(Zrt2@s;HZVhH)2LjPCtghT%broOA!_|=rEeZ9axU2|pi7UyajB=_Q zHa2hsqLqMkSXa&kaN@+>1H=tKK~uwPOEzd{^To?fgjoRP0wnm;Ceow%r5d_N#($y^8*Y#Jb-Cv;lxCz z$aIl0H#)3kMuem{50}65Y47y%X^+7&inouN?q9k3R)~d(DFwt1&9`>_9E^n|h?N;w ztj1mr*N90h@Ozf0T|`t%eLqa9G^){^CE^_ii`T&RhO0-kC)ll!yH{~ey(Ubjv#9YhQ zWpEAL&%)F#jW>+^Nw3PBqEwy0%19M8$g%2udJ)0bSfRIWC`vCY`RH%nMP;9#3}h*~ zB!X-pY$F+uvRE(7(}CFHZ&G;M7q8?sqRIA%02`4av`(t?StR%W_c=*UfWw;UHgEDd zLnLr&{4GKJm+yoQ9SCK%QUmY*Bc=Y;Cs(hu^i{+Neo>F|y3VsV&O%;JP@sMLZW|bXC1@@NM$;^3@O0SL^qYtI@P{}|#))K;)*;LK+7ZB&EHeKn+%%1munXvVMDpnKL9bc(GX@g4Qdh`!XmVw0%Yp-Xe^}JZKsjB}F|7VfY z*2y;M;-Hb-ivIDWv%n1G!@uZaEzx%7Hq4qm)|dV-kyCf$x3?FBz2AqZYH|=f&Oiub z`2#00+KuFf@`o}co&h<{GQf3Q8Es6EwTZO^Q8(Z{v7{MHNHe?Z=u*AzO`kJ-W&m0frvHKI;dMBK#v)DeTU;{=-sM?>g1R!ON34#g$3R&Rn{G#VD4nXfFSH z3*cAYCJ{fcSKNxEBszKld<%70l@(i{C*wExKXl{$CoI*@+;ckcNB^1L*XQ}mLH{Zx zaVz~Y@@_35sLNebWvcp*#DAV?q`5ZkeTh0celA}7`0zvD#)mVV|LC&@^lKzM3 z76&6sZDiKUS@JHfi(30#=e9}ZXhS@TC5e~K#iII2cP~`WN$2xN{B&tfile6 zx3GME;wS%t^^-vXiR_ZH(BaQj^B1@O5i`s0f$9Scp`PQf?A7h5oTIPV76<=vl=9|f zQjId{h_iJ(gPj_oO2Y>DeRSNBE zy(>^gE?$IH6AyHCrBxbhF>y+7lXgFf5tdybXKbGdL|9YPO^kngZ&hmTSd(rOM&1$T z#Rq-vIj(5Y43dZ#yVmfLq2Pw4~Unk&*p}X z@RZN`X6^n<~$n_~#s_DbmR zj|?OX#~F`Zm+z^Uq3x2|*aUgl=d}i7fyJ|aZ$^ix=Xb+XynEL?gCc~#5Jd#T{9ZaO zWK6e6e`J>urCv0@*vEeeJ5uLETv*EhwKM-#L>8hL62>#&{h+n_4{37-$`~6tM@LN> z4a*+c;MtyZmzYuOowGj;+IEjL#L)2m8BNN&I5#dk^!;S4n4FSyEAn-`SWy584!u(& z>5JQgH9(NK>AfOH=Ckw*-*7FK2xRInr+UX$aP8aotuxH#Tb<8u?3Gf$0z65WJA0zs zQQxCMYm+Trq@=gUlA}^$ZPqFAfKqK6tAA>8`rs3tYRxwdEDe{_Q4T7e$@~HORgy{# zXL@SjSPt{=%oSlN{ex4Tn=&+pj~veIWy5=5XhSG2v|VUatK@`%MO!y6Jfx){*~to? zZ+R!;OnbBLc~>s<+?8##V5Z9(?=@{X$7JGrZ7*i;_!SInERUyOiZhBjBKZuh}{_RQA7m7)-<4~X`E*Mh;2kKjDfi;EvXR;tC~}Phvn}kDYNp}R$RKDqp12% z&s0=t-dJ|lJEKU)7LYGC$D@Sett=~`MkIMb7%{kz@oG1R2vbTl&EYa@vQQ)}0O4O( zp*14T_rfwk_aYSX2wQ;ov7g@w9d&NIT<)CuB6|OpQJ2XH^TaZzc!4>wvqf(8p-sK{ z#uof&O~Mu6lp`ec#iqAEl~)kWdnpOnIP*h(mDeg$o6~x+=W%2Cs)d2w1JrniDaA)| zxHpIpMZ8#~v)IkyMkBJf$2Arc!h_>@mhW=?EBr+3Rr1{{XgdaWGbbiQNxYvJ#!5s8 zgmo&t7Xvd-$BJue|A@%u%^i*>ceWk4#lA|8=BwoO4F_a}UhqP^{~@Rs;35WRpuWqV z!`eVVo(Gu1C1m7EZFZir((oJ~5Ky2ImPUzJjH0M0DX?|zPx@s*Ktj$VaRqCa_spB0 zoZ?MY-eCG5B5EOHa&8t5$ng)s)Lk6}^;muMQBuzkJJ?oX7VVglg~nSd^#PHnNe0Kk z6oQ~k0L%Q0yuYUV3uBECY8{8)&U)U!OIG!Pa&Zt7b5~O`I0~i^BKHN2WYPDQkR;PB z>+t6FJD>jCeS!msi6mllZ#Km3r98mPo$%+Kxz|!JyS1+GlkJqK{PDkfyl(sBBbr)O z%peAEeUKa+y^+LueTSvzM!VXpp>uKq6a4j2{STCp0HqCB8sEK6SgA~j(Uc;OKQERl zzt-MKYkVW^+|^dm>K|w2LXb*>)+rrH{3y^&3!Nz-mY*|8yE&-Xm*3T2eH5@W>aej* zaf1KGNy`4#FiUhJavT$l)0~I9@(?tdVrmm_vwBICk2i;TH516dKQWobqE+47 z1XD_Of`|Is5dxNV!bvSv5G)soR%5N-Q`HyE07F%oIi{3L3VO6Ed+8eNrWSoch%Oa7 z%1c!=Vb?hHIi|aTEP!ixsp|VMyP^%-BsHf{QS{uYCcUrY?BoxJ>w1Ci|6X<8WmZEg zJ-PMnoLR@TW~XqvxroU`9@DPV&h+DGj)9e5y+Co;?I0 z5U;Nc?vioW;K`}K38M3Y+NslwYGj*-W zIai$FccFfgQ2-D{QOEQ&brYEx6vjF!qCUwp6 zNy57~&ST(Q zv=z98Am8=Ba^32%=$sO01MQx8*PM-@B1qpzqlCKd-SZAw@w0pY8`+XNq@flGhL$zu zR{${+md^vz4cLIb?@`cd=d@U5y5_SCn6lQ40gnkz_^;0#ZYJZOT%Cw0)xze~IkC76 zMGcw2=w(+?oY_8x;}ad1wu!QK6Po0mG2UR@?S%ZRn(WrZt2_SPBR~VfY&XXl6D}`G zZ}Cgu$YZ1ejOhAeh2X8+5_Zq_O|HmUp4aF2^T6P49J>pufMw!#l7pq7hoi1xQ~8$c zVF5gUQnHpT@Yb^Ia+xlhmh#u}mifbD>TEko*NQ@+mCuQ!APXjN+&k>gM1(s}ISlrK zvT95O2UiSgtPU!~NSw1Z@9>f1^L_V7@hF^NuW*yscw}NLCz=-5{BDElB?TRI4Kc6* z9eBd{W(VqrK$mk1==7;)YV)x-wtt#BC#kR2YuxzwLRR?pcJkN0o-mwc7o|b_FUA8M zr6Wc9(w`*@0^8QNrG`YXxZ!R}tT(KQ&Gu~EJMLV?2byQ(_d1+IbBt4c_%=qE;#r=G z@Kt8&(y2NzpTFHlX7=Bu!SkQ4rqFgJq*M!;Q}4mj2y~P0N9vkt3ZGML8cfs!`a&;( zLx+vc%GS8`d|8U$e|z>4;*5EI2c5(3y|@6)j( zC`WBTyWi`Fuwu{Oqa>loJi-Xz2u_Oxp%dbdoqaVsgF-@g1z0-rvRcAD7Gz_?SX1B5 zBBDbQK?$C{1gbG@JCZPPFpR8SapFst$8^0Cm-m?GA=dqJQJW zv$_-fZx$d4@D*gck7{sFlRuN|h`#MW=U9>qDSMmG!Q(`57ViCpgsSZakJUKmW^4RN zfFk%JI>Ao!I^Yo8d;f!E27OM^Stfc`M;?r2E{lfu#$Zr)Q8@QSbbomBC{ zN2wZH>f}%Np@21=aN2ZplK>`*jA(EiPzA;O=)~0lS&i4^{M?@IFTSUJpB!<{+J||_ zN>vY(8RpcZywK?>Qtmi?;GyC;&?Yt!gFD>O7vwH*KX6FDwWce|%1#Xll5NJn2QX&*@ixZ-Ei`0w(I%txMFo!r)sqzq@){&>40*k ztYj1ktoa6UYN3iS-Uh|~mq0$lV@Ir9*)#Ti&js+Zu)VwT{d18yf9>^21{K0W#-q8= z5u^CWKlQ<5Kereo$$mmu^IvS@^&m?TmQ&dV@;_Z)OHXE}Ss*Kt6zycAwg{4Ay+K#) z7s1T0eHnDlrNQB5d-j9ESJeq)PF)-mqA98oeZwExcXE43gvWv^kRV->MPdfZonq75 z?8!LJ^&%l`@CFm=R)U!^nd!0?@TuFI zqvVDS24Rd{c_YbA1}f9Y8yFp22E^@SI6xI6*kL+G(-n2e)&~GO!_rXMWlp*wcOx<7 z%Q{(CSvJU~!z1ebn*K9x$0CbsX#m~GLcbV2Q6P{-dzzX+kPy(QqjPGsbX|-ULUZi^ z8%aE;?sAGwsom&$ol^$hnwg*ejp%FvBa=q+(P`mnu^Om`Xq(+ zS=EORHGG0fvg8)HaC)pW+#e@|e%(SpZ#MDvQZah(f`Q z7$)H}!xY~}*mY(;Er=|3{FEix8x|mC8-(mRe7Fh)29o~IT)DBZ4i&b4X)epx$7mii)zLoqoXUje+?R=fGe@>1 zu@9QQ3=~8!&zJ!Xl^2T+^S?`P3REo@Ix6+KrB3bvA=Yk=!S2p;w4jhF_9z%jJo8>Q z!Xu}<0j(^9g>G(iXr5`n4p2rufk-;<_ll^CM~8SMFUE#v(J{l#I}A7P*exK?MF_cc z3&PJ0aL4rmZ#2>6Y*f=XW;=K{OA!l4cm}k)la2WC%MaF$Ij259H=BtTp1c^4OWOtk zIk;marzXej&Nne(pXX>ro0yv|xOt-|^_`KWX97zUSd#-zUG)VmlEHd6H})Ig`JyB4 zDj|^VJ)o2kve2T)p%PV!4kd10;kGM8eG(M=cqw zH)dr?pt%5K`3U!Y96bjyjNP0EyE)`&rHFWK3`AohEkIvhLuIO?gOA@Ah$@>i#G5nn z{#yCbI>tTKizPc{e}SEhOk8X}+$t5V#5thd9O0WS@+6=rpoL-^Nvmqt)d7OU$X4-x%VMJjWpT{P+ERh`9a-(2e9ccXKRn zwzmA`1fgCP1&S9o44dsG7Uq>BQ&?NKBFF`Br|8TVT*wnLeMvcBFmN_HLzqX2?2(KS_3OBJ+MHOqB(q_U6!RU}-g4>)Mw;2kWd z+==$%Cog6$c$O7BYJmOS_lSg;n6kSYZd5AUZSWgf=7F4{0U3a`ALmrGX#(Q<9(2QW z0Q`;Ds1*c7W+2W4e^Kw-p>5=ljf(FtQ9}$3$_~_oJo7;|yJmxQcn;NZvp{JDz)MGT z?JsSAt9qioqAuhtu_yK%hk_;hK7d(>+*CUnvzY4uUkEiE7~Hr__+TGJVsZsWI~(A+ z!Hp^dMQt1_)wnV!u>BHyJoTf*>g5DjxVEDp92-G+mS05hegy1^PLd3{IGH5xr`l0u)Tpwa_hQAAr{AnuK% zS)N7RMa7e7|Db$VE+z_8x_&W@Z`GdS+$Ms&*#OJpJF|KU#oY zaAr_R*_N4}Gz8uUh>;YHK)Yth$8EdStF^GYi9rf2{*D2YPB_zygL+kp!x~V2{peOZ z>(fM&kT6}oi7QwAp&aRcSh4*-m&weGP%IO4oS`bZ=e$^A{0T8VJf1F7VDox#I8Ro` zunpW3<`HSVMsNBn%eCiqLsVWCx}rNzrS#_cBTQp#`ups-_b+X9I4BhQbCf7>Zy%KF zRIFU~ie(qomB<`}2x8f9HN~rg$gn^09Iu^__Mt1{&-$9~Y+#|I7M9Nqw0R$A)!X>K9$fKr^w3ibi7P8#ud2}Ii*bS^-j;*b3Npf}_xCmkD!Unk0oAz0 z=#PM5(cpf55|O-n(EfX@<;rESbx*p!Y|->`x3o7d20W*z&IJrCozq03sr){0jt`}# zLU*r9=w<{L66k#UrhM&8I~D+*$_G~vm6!~DE9Bj!=3G9wkK+HWT|rP5?d_+Se>O6qW>_n z5QoiY1yQFOW!SNJuwE}-u(mn0Kc>DtKE8x_SXQypJZx5%SWxOn!FDePK zXNMdGz6po0fdSuuapO@wkCm)Y+F1s2_bRZivB$HIeY0KP9$~Mm^Y|LDC!P3fr+{a; z=xry?KMRnnTlz;049A)D!{tE#uj0z*&@BO6qQ{saQ_v&)HPbyFm_w;%-{&ucHw^(} z9)Ft@>t6AN4@8c>8l?{3qIfcxe0lk!)K`-3p?l@b#J;qOwT=3D)kVZJym}$?rnQDS zg?|Y&<`ApeHz?(S8$Eq*qh+OlQ=7*sfvnbj%*2z#y{vq!e~zys^dBtz|Q`w2Ft7EK&Y$-yQaCA}pWc9}+*0 z=?WdPNTq!_1=Uhc4kE^nyn8_I*JZggr#~~+IhQ(R|6#syz0+^5>kkI1Gs~{!-6;fN z!u17OisRYzdOxjjW!d`!u55l3_^P>r?z8DN2EkX2a~ey3?01%+FCJP5iadpoKO30(B>lttjT(pm7Gof-Vq-ON zkju0^7M=h22KOA=v#mrQH;!O!NTPu&7HzV~=1EHGOKH7po9i!*g;ZzRE* zloR85XaFVE$e$2rjfN%T6+>iUw(LE+P<%yit@aZWOxkEiifC=BeE=o)OtI9ou@!u?&kQRV)<}o2nC5t2#@P;ZKB#gzaAXV0{oqSNO`Av6RG3e|*rvh(Ch<0u>oV~R zSh+AJ#}niCfGh~GJUu56LSWwuZFCPU5Ey<13UQIV*PhoITVv0jeTd=QyhBgvCf2h7QFi`y# z-eDVoR0c$y(a<{qs#ONvVt;Sj7i7~jUip=V@^SRRi(x|p$J8X(Aln`XQ*_VbFYKM5 z6V(@TQK*^S8Cp0M1=ab_iOtJPa`{|89hQy0h(7-~v*f}4sP{hdf3W!Yc)g9s4FtS` z*@%Gx>y0aeeZC3WfEjW#$fk&%S+f!lUswVs!7%86&B|v}y8o0W%s3;)9@HSaE`Vs% z!cDpJH;{H!VOh^<9Yw&JrhxhF2q!noK|~dqUU<4T0QrZ?jLF(yDMw@ zKFH`T_K~9$ipN8VSB6vLBSkunSCpNPjdLX#41Mhu18hi<0;ocx=bU?~0J zU$+&sw>GyDzz%x84Y$QQK|*<%r@KX0TlKf9JAXa^09k(alUBP_THWyE#dBm*91nFP zfdXUqTx0IB)p*JGZ7ql8%uxNHqe(?@Dxantp8(5zV@6{Vd16Bk>FsDPn<)Z`$W?ER zJnvg`>eA2l)TNQ4SQ@1Og<^N(I0drTz2A3zaCsFevlc>I0DjV6gd1>h(k?$X!Nt>U z0vqMc2eMN&W)`%a^WCNc^SubBqvm6$iZVeNtjI|t+gq~?#y?5g*;x&loA>^XU+(T7 zqufl4e$#Q#A^1JlLTnDxUfu%mFF8_=PIIJ)sW5ZhcSlQBx>*SNR?Hv;v9^l*@k8&+ z_UB9@l~hAR*D5~JOz{ckG&0v6yUd6cT$VNX9Bi#ur&Dv>LE``n*M9XItOe?oBfm(& zAIxUgY)(Ndh~3&>T>lxxBpGuX0Gk0=&fF z9i^HqIc}i_lPb9U{A<3->%SX%lQLkagshCjBodXq_G0sQ zO|WW9Y9MX~&|Slm6<-U4$V#rMi2fk^=hBCXTuiCHZpBb+NSVtAwe{Q388rzc1K!4< zg{JvsPm@)pLyP3z$fSzg|14*&jJlmpdq5v`=QG*ubb?nksN=gC9lBiKK>VG9#5GreR$8WK;mA@ruqzO zjF{DTcXL$RPjjTRoQ}lEZ#U*foolz<6(bu=0xG=~eM_3&gdj+#Om%Q2%>xssmx}8= zV7C)Wi3R+RW$=ovfKX1Zg=fsky zl<1?w->=ehAxhO4z=(dt?WuiLk=N*34=qrZcxt@G1rLvcOJM-d2#_Cd%E2vQw2Usq zWJxMLw@W@Nb?YX;xOw=wxFv*#v2FyY@9cOKL~B064*nI$LWTj{u;_m?AwQtuuBI}D zEb*>$(fKUJ4Cz&Ba9pJP3)S4ogHLxa-$UKG7NhP+!w+sTf$+mHB&Vd@opam`lN)NK zvv_JFK%gvrEV6bMHNr$?=CFJ^Wvb{Nl-!M+iDo40?ZE?(kK2Nf#tXMBA9k%iU#@*0baognlzd^967p zVT;_-UGC51m#8{L4e7**E?M2MCE3deSipxu8c5Ny;zfJm5|0CwNK*w;AWv;%QiiRgmg z2Dtu{2S|OfKh~)AS4Rm48;rc?&9g?qbgU=*hi{4S1MNEVM}UH1q{<+X7lb$diAt$j zu+n|Hm9NHL7V{?=GxzQ9rAbExmG>b(wEN5Lfhz;;wSbZ0f7)?CF=Dt4H8|j5%QRMzh7U-H+7!NL5=VMFvf!))9IvbqY%j76P3+hmDLna@QZf#Yy zdDZE?=o;qW^hLVr+25ek_b2;f6t-6!=6Go3CpVk0XPf5E`P!?CB+bexcuQ94I93hR zqyX~L>PI~$CscbAy+yh8OiD@^-Jl#NhrqoIGRKEE0Hl>dcsRinK7t?4Li9-}O-crf z>RP`WuL8}IndZKmEl{hkYu(1%C3j%l$zWYxfiN3vj+NvZduLoZ3N&xrC^>t5+me#g zeaqTW-MTRePd{_izD2caE!%%aOTjO>#I!Nj{1wM}W#$r85K{0LY8d#LgBKCMzi^_) zs@9aBKrnV<{iHGeOgv~T7^|kx@is@Zfwz1jlp3!d=;&tpFSY=c{ab#^mrsC8a0YE0 zJ`*{2uhq@$W^{e<0J}p&dWpVOK=>Kforw@eyPAlH^ZU|31#!7lVA6|44tT*@nxL^G_ZFn8_=O*S{$;=aa+nqWMFJMisbp zg#oC_|Kp$NJ8XZy@c;5B`f3)?e?!0f*PqRFO*DXnjLin<`5@%>C}(@%cJJv~C5} z@-kac&kWB%Je2x{A+AEp6=BzFpKGDtIt7 za0)2?7#9+FZK9V%pG@$EwdvDGZ)KFn`Cn{U!AvlrDiT6aPRi+ zagF!$HH>3dIdE?evIdEaO58W&=`!Dlr5X5HY3!*RbKH5)1{ly2&{-rSkH|##Ra1A$ zv(ib9@u_!a0`Re!1+be-1&TBDd}@t*L$0+u4n7v&V?9MbB0t=n!d(i6k3oB^!_B?V zi_MN;W)dnsXzZ2!3> z!$ue1VqhkOeuvKNNG<5x{tKM4Bbhkro{G8Ibys)A>mT|CYY*V?@&%F4Ut=cDO5m4} z$H4N9ZP$~YAO;tYiE3kWthZ*+CA$(xzp0sG7d5z7>DjnFKA@tA6xwH7Pl~y5&||#+y_x#-boD^GINoKpC38)Y>Z(a(*WGtvUI{v z`~3%@F*o3>UqK>*|JDo_KIW}$Sjb=c7`UgCzt_dtqpHWyQpxy!V3(zHDFV)}sw@6f zV!K`}z)p$l_LcaTzHqkACvC8WeL(m4e|V8i__lY~C#K#PL3JN>!8SI{&Eyitgv^dk zFLJbaKT4{yK)n*iCb~C@4U`yW-kYUzmmV)2TxTyJS)!PpEm{GI! zdelYj2L`vn?jzPuUZUn^Y;vFEtXwnMzq9N1iGM5| z@t4kMGlzTjY*4Zs&<*r#geO0#1SgGg$%vZhCxX{zP-hn|8qu&?wS#RF{H@*|Ys>Dw z1%^|W_@I;2j;t4oqcCrm{vz|94O}yq?>`^y0r$&8(Ek@ezx$9fF*STU`On1_cnhi4 z?X^Uwt*gTNy&yZ*IMI|lg|F0GBM!EyDr>Qm0OwmsRqJxzuW@Xn*(X_;UqAIqcld4e zO==aJoSJf+ePs?0;d#pjH!nt=~q5SSgUK{N#h<6iON&i9z~K~ikeA}!*0b3C*LiSuh3~yK0;TJWg4#0>x3%?;cPe%Xc)IAT zl3f?&KH0Krbz2g&(IoJ?)w8eC$z0W{zT?B;xAVFVbAwQm1{Nqt61Et|F;UZ^L^5f&Tu?Hc9ZM#NfHao-rgo z{CpX>;J=ROVjMLRf=EOh)Ze+XSJjOv1}l3TIzc`(w%Thcq>m zHcc+$A>`M=m*&8~3}`k0c@e@G9?(0H{`z!^{N8HdOw4~2*Sc8awoc7@U=s)-9(8F| zJpKIr7L&zt@hNuI+dVdM{nkhrJHNK;+sZq`NnE9xJ=W6CRhvOe&{RFf(P1Tu{6@8I zwy$@)MEC5?ePYZzRfZen#8-=I0-Ys@To0OB*XT)j#P-;E^vd!#7qcD2ja%v-A2ty~ zkK16+Cv8~jw4%WU27Ha;-#F~+uEnGbn>$#J8f+fW_t+H^ufJb#Y-!#1-g5gB;${+@ zunq2- z7EgZxsrw4m*W*3YC*<2}#KQu<{zxklU~^ zuCRnLID_rJ7{7M%J|@q(N$5-gY;4$$?ELI?{d~BH$4(~6A{}=rtZfpSbZ4= zLus;Wh~tC2w^!U3%={rP{!^8mmjUIwOCt{2B4ozsYS4uqZE=N8v&;R2Hzxa~rfW@C zcK&9>EE32U` zp0TbIsDMMo7+8DvRbIQdn=6sP=5okm*3>_Y&&I@+LyEVm_KK&w#}x&S?aB?}uc&(8 z&`gvTdr;X&Wg2mnx-+!eOB2z0zwNg1vYOnke8{FGvtdMAG`=*0eB7HFTMSDQmh#>I z^7-sAse1mS>K>6R`FtFH#o;p7IGm@nlA&y>A;dlOD*fjnpiG{MwYyF&lh6is2R*x> z>g0LNC>ZqV$8D9-(MrL&ofNF$(>~t0T)$0@Q25AUbON3A{JV`V(+!HKC>W{t>Xu^@wRxf{ehyY&xyw`Mi|7v?@sqM1+mqO zCAxh(_zP<x7!7a@ylbUY`xrPwRLTWsx}vxxjDy{9k!A@^_A{UTC-0{UKbQVY!O!u zQM?<=)%uX!46nC}Df4}9zbmplY4;#5mj;p_9XjtNRk$lqGxO5e*X^LH0qlx8)XHI> zhs_Xap9mPW`tr1CxIMbHkU<|FTD)-=RUOaT*M3p!h&a0q%G$xUj+#>vqMRSAu6We7 zq%f&n*jm_CHGq5GR@Jx}jH@x8Do82}V*gW+-E_CgUHcZ)vkcS#m$U?N>{QxO9v|2hpB zm+C8Tej`&?ONHIIr9-ZJ_XG(i7OW)+&+9Runp1d$Sbw3b&87zbD&=Tp)*r>q%goC(4M|AmuwP(yu$h>+ZDK>k+ie zg_wi%A3&rPBhUML7DK#FWTSB@jcIt>Ub!?231~1R^S=ar;)=6Tq7Ki8h$mV}iYMN! zI*m_Cp#5IA4; zOS40eibb<#z$6`eOkpGq{@UasbSB3IwXXcofykY%2~+kPN^6NmF8U&nWIfhA}`yN zvpB-WbYg^`QfdP#?&rFm=eqCfxxUx) zxv%Gbyi@PY>^-@V!BSUG`0~LU5@B@et>IV>Kvv!nekX>7n2OlO;iVveY-c56mFzN4 zeRWB!b0kU_X1GJ&JuqFk^$SrMw!Jex-RIWqBS7GFrInRV`}0o^)+uHbtoHR!9lq#* z)pwt3b_5H9yv777yyz-N`v!UY^RdGRojQFiO9Q^>i7bdu3#N?u;L@tiJgs z64I7Aou!WMJ3nq#!;q>P*qz=ZxO~L2+oukuzH<$R-#5k8gj!q9Tju)am;8CfrtXVX zWE)*Th`RMlaYJlACDgbDs;!{ep71Vx`mx~_NhCT>ntks2kR&$=eQ>3-=z}AwFgfdYFBer~g$3XE87=w;-&aK5S_W6CI@{fjaVY`s6pu&jQd zxrFVN!A4a9uhY&_JLHWh(43ucFIBW!Z(bK2m^!}Wl^%gJ?~X_ORmJ@q$qsn$pc91j z4=xlLn6nc-(l@>`(7vg>*%L@MAS7Rmw1jl;gyoHXYlz0y{w^Nz2Y=J>(rA1ui`n*8 zAi^jFfpwN(S9%Vl1&nk@^5gVg>_gsvwpZc~RkTH(tGNi=(T0PmtVJGK~`=~^TWmL9wp^zj_`&@KV zt*QV;FMkdu{#&gP1L#E~(7&%l(%5Ys5Gx3`^CP_3$or~ zb14%tMx=l4ZcgJc1$snQzj?j+O(fz}wbA~!&{NgQdA{C^rIxFV@nB>fIw=}=qRXMI zpTS)Eq_5beXu$gXc+FXFCjt*&RL27^DZZx)E$41pw6PylEo zYmJZUUFkDIZVvC>MVdc_&q~ff{B7GG4^FG?lo=soT=Ci+$e8def-HnI1$@R#`ZQRY z5Zk6anq}*%t_!inCtY5OMzZsU@TYmAK?(7HtqzgEo25Yfv*STH1>$xXFtn8W` zaE>2`P@!uJkCU*A=+lc2_c5hq$ht6j`hwoT^!Cu<0r7kJF~K7W;As%FHlH%l+OZ@3 z#9%u6I0WEt#@PW~WnGaU8HM>lgz5VPwzOYMOd!W(pZ32})$69e-*im{R%Vx)Heky$11C`*%?r<*nA^=SQJ&))t0nY{e;bl+ zfQX4F<||wl9hb@L6*H2!mnGv2^yMF{8q~?lEEL=iI`g#o>gvr>wRgamRrPb-8ka^9iU>X+FN&Jlc205;No;S})ltio7GT_Br{59g^b$pYS zjAbc$Ts(}Nm_Eo37Z&%r2;3l17j#h<9gM96S^J8dzvanJhOIg`XFQv#fR@r)Me?;Z zZ)W5qxa5lzXo<6pdumCjzIA5p?aJPNxt(iDl|LL%rxI|XPVITX@tI(Sq@*9(A3`o2 zR9$|W)3_r!eU0~+_FMKmrA;9^jA=a(wY=uAvSpXZ zEnRq~?x|Nc^2YAeOg!1cdw3A;`4iMB@HTQfo}peQg$-Xad5b|{hvQ`ouQa@0IpamBIQ59E*aq#F4wUww) z1br*tVvO&xPuY@n$saypI~^bp9!b*W-0-EbY+qc6t+o_$_D_W@PtCL+t;3Ka;tI#r zMZw>!G(Hh?$`%TJot9s|>LXI)*X=^jjNb!^sU)-xzxjS4Vx~K$$#Ai1sJipoiiJ=Q zT5L))IK+beC+grxhQ-)w$IpLT?-4B4*4)?rrcX~Wvl0^5znPE*0vFjrN zLr!O(ST;VNYp(s`s9v@(CNbHVQ0Z7pr8b2s?qmXR5$!-LpRcsdw%`G^qSe`!4m$Oa z;3FZ>nB}wJ37h=7TdXTX5$7_;XWN^0KlUa@O+L4p@@w1*<#8_zn8I_GS?SOq+ zF|f{_lIsooRVPv^3MY{(rlwE`=XdtK?x1btH8(+U z1mwb-d`WZ_@YrLN6K4E6P|>^w+d`}E2L$J2Wqkr=(phkY%qp+V5kEZHuxS~!o%`_? z=669aD92Fv2f12&QS3+N#eWuU?ccEvD7b;Z&=ay3zb$Q}F?6Z3;0|q6{GxWVjlEY6 zl1$2QZ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/images/compodoc-vectorise.png b/frontend/documentation/images/compodoc-vectorise.png new file mode 100644 index 0000000000000000000000000000000000000000..8137403549b3c75b477151c50079e72c67be879d GIT binary patch literal 21325 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

      rDyEFG=J1n~GGY}B}aNyqxGRbYf; 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 + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/images/coverage-badge-documentation.svg b/frontend/documentation/images/coverage-badge-documentation.svg new file mode 100644 index 0000000..fe6ebd6 --- /dev/null +++ b/frontend/documentation/images/coverage-badge-documentation.svg @@ -0,0 +1,9 @@ + + + + + + documentation + 0% + + diff --git a/frontend/documentation/images/favicon.ico b/frontend/documentation/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4144ee4613af4c20b9775c0923f0216e19b63cf9 GIT binary patch literal 1150 zcmbW0T}V@57{?z|GAcJq$#9h>nA1?Vw&Tt@EazM(=i`0;|MRkQUZMzGv9W}E zGBrmL?IR*1KntDqJ^~Te;&!bQs<*yHU^#N@k-w|a$TEQ$SU?7_fl9!7j6|>>B!GAj z?j48v45$ZJ!3}U-jn@zx0SByrJtqZ(>)BrQV2>J^zgFwioW;F>?Ulha8-AB66e{Fb zsqFYKoh!%ha&q5Oo!qw#Gn*B9DL^Xmqy(di1iA49H~-Ua8t^1GJ|Lasm!%TXZ;qAZflTkT|I|po^YlnBB}sFkxl*f~CRQ!an=Z? zJ%5pk_%GDn@Q`lR_c$+>yzxUnnC+c%-5YM1>h;w0J@(WZ02PTcosV9MvNf#qSnFja zmtSbiwfpFOCr2MTt%)DI%)Q?B%IT((@q+uqEd(tO-3)jN4r(67LZI4hTm0>^zJ8LO zbawlvE{g&BKJXSE!r1LnVzVj&;sj`7b-6f5WrD|0DcpQl#+_Tr%WBJ-?LJlq?F0}3 z+e_#js(R*g80cADD;^@nO;j#Cy6euFQ5=@9&B_4ngeEy$yV>`|dNy9c|F{BHO>RC= zhxcH}vo26Rx9~5?fA!ZCqE?&)jUT8#`-nU^ajh4KcAJO}@awS+bE7zQ3?&I*_7AEe BD+d4o literal 0 HcmV?d00001 diff --git a/frontend/documentation/index.html b/frontend/documentation/index.html new file mode 100644 index 0000000..46ac9af --- /dev/null +++ b/frontend/documentation/index.html @@ -0,0 +1,127 @@ + + + + + + syncfusion-gantt documentation + + + + + + + + + +

      + + + +
      +
      + + +
      +
      + +

      SyncfusionGantt

      +

      This project was generated with Angular CLI version 14.2.5.

      +

      Development server

      +

      Run ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.

      +

      Code scaffolding

      +

      Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

      +

      Build

      +

      Run ng build to build the project. The build artifacts will be stored in the dist/ directory.

      +

      Running unit tests

      +

      Run ng test to execute the unit tests via Karma.

      +

      Running end-to-end tests

      +

      Run ng e2e to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.

      +

      Further help

      +

      To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.

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

      results matching ""

      +
        +
        +
        +

        No results matching ""

        +
        +
        +
        + +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/js/compodoc.js b/frontend/documentation/js/compodoc.js new file mode 100644 index 0000000..8cc41d3 --- /dev/null +++ b/frontend/documentation/js/compodoc.js @@ -0,0 +1,14 @@ +var compodoc = { + EVENTS: { + READY: 'compodoc.ready', + SEARCH_READY: 'compodoc.search.ready' + } +}; + +Object.assign( compodoc, EventDispatcher.prototype ); + +document.addEventListener('DOMContentLoaded', function() { + compodoc.dispatchEvent({ + type: compodoc.EVENTS.READY + }); +}); diff --git a/frontend/documentation/js/lazy-load-graphs.js b/frontend/documentation/js/lazy-load-graphs.js new file mode 100644 index 0000000..2ef47ca --- /dev/null +++ b/frontend/documentation/js/lazy-load-graphs.js @@ -0,0 +1,44 @@ +document.addEventListener('DOMContentLoaded', function() { + var lazyGraphs = [].slice.call(document.querySelectorAll('[lazy]')); + var active = false; + + var lazyLoad = function() { + if (active === false) { + active = true; + + setTimeout(function() { + lazyGraphs.forEach(function(lazyGraph) { + if ( + lazyGraph.getBoundingClientRect().top <= window.innerHeight && + lazyGraph.getBoundingClientRect().bottom >= 0 && + getComputedStyle(lazyGraph).display !== 'none' + ) { + lazyGraph.data = lazyGraph.getAttribute('lazy'); + lazyGraph.removeAttribute('lazy'); + + lazyGraphs = lazyGraphs.filter(function(image) { return image !== lazyGraph}); + + if (lazyGraphs.length === 0) { + document.removeEventListener('scroll', lazyLoad); + window.removeEventListener('resize', lazyLoad); + window.removeEventListener('orientationchange', lazyLoad); + } + } + }); + + active = false; + }, 200); + } + }; + + // initial load + lazyLoad(); + + var container = document.querySelector('.container-fluid.modules'); + if (container) { + container.addEventListener('scroll', lazyLoad); + window.addEventListener('resize', lazyLoad); + window.addEventListener('orientationchange', lazyLoad); + } + +}); diff --git a/frontend/documentation/js/libs/EventDispatcher.js b/frontend/documentation/js/libs/EventDispatcher.js new file mode 100644 index 0000000..f112877 --- /dev/null +++ b/frontend/documentation/js/libs/EventDispatcher.js @@ -0,0 +1,5 @@ +/** + * @author mrdoob / http://mrdoob.com/ + */ + +var EventDispatcher=function(){};Object.assign(EventDispatcher.prototype,{addEventListener:function(i,t){void 0===this._listeners&&(this._listeners={});var e=this._listeners;void 0===e[i]&&(e[i]=[]),-1===e[i].indexOf(t)&&e[i].push(t)},hasEventListener:function(i,t){if(void 0===this._listeners)return!1;var e=this._listeners;return void 0!==e[i]&&-1!==e[i].indexOf(t)},removeEventListener:function(i,t){if(void 0!==this._listeners){var e=this._listeners[i];if(void 0!==e){var s=e.indexOf(t);-1!==s&&e.splice(s,1)}}},dispatchEvent:function(i){if(void 0!==this._listeners){var t=this._listeners[i.type];if(void 0!==t){i.target=this;var e=[],s=0,n=t.length;for(s=0;s1?t[t.length-1]:void 0:t[0]},this.getActiveContent=function(){var t=this.getActiveTab().getElementsByTagName("A")[0].getAttribute("href").replace("#","");return t&&document.getElementById("c-"+t)},this.tab.addEventListener("click",this.handle,!1)},d=document.querySelectorAll("[data-toggle='tab'], [data-toggle='pill']"),u=0,h=d.length;u0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=a})},function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return r(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(6),u=n(5);t.exports=o},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){r.off(t,o),e.apply(n,arguments)}var r=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;for(o;o0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,f.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},function(t,e){function n(t,e){for(;t&&t.nodeType!==o;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=n},function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function r(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,r,i)}))}function i(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(4);t.exports=r},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e){function n(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}t.exports=n}])}); \ No newline at end of file diff --git a/frontend/documentation/js/libs/custom-elements-es5-adapter.js b/frontend/documentation/js/libs/custom-elements-es5-adapter.js new file mode 100644 index 0000000..3a694b8 --- /dev/null +++ b/frontend/documentation/js/libs/custom-elements-es5-adapter.js @@ -0,0 +1,15 @@ +/** +@license @nocompile +Copyright (c) 2018 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ +(function () { + 'use strict'; + + (function(){if(void 0===window.Reflect||void 0===window.customElements||window.customElements.hasOwnProperty('polyfillWrapFlushCallback'))return;const a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)},HTMLElement.prototype=a.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,a);})(); + +}()); diff --git a/frontend/documentation/js/libs/custom-elements.min.js b/frontend/documentation/js/libs/custom-elements.min.js new file mode 100644 index 0000000..9b64a23 --- /dev/null +++ b/frontend/documentation/js/libs/custom-elements.min.js @@ -0,0 +1,38 @@ +(function(){ + 'use strict';var h=new function(){};var aa=new Set("annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" "));function m(b){var a=aa.has(b);b=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(b);return!a&&b}function n(b){var a=b.isConnected;if(void 0!==a)return a;for(;b&&!(b.__CE_isImportDocument||b instanceof Document);)b=b.parentNode||(window.ShadowRoot&&b instanceof ShadowRoot?b.host:void 0);return!(!b||!(b.__CE_isImportDocument||b instanceof Document))} + function p(b,a){for(;a&&a!==b&&!a.nextSibling;)a=a.parentNode;return a&&a!==b?a.nextSibling:null} + function t(b,a,c){c=c?c:new Set;for(var d=b;d;){if(d.nodeType===Node.ELEMENT_NODE){var e=d;a(e);var f=e.localName;if("link"===f&&"import"===e.getAttribute("rel")){d=e.import;if(d instanceof Node&&!c.has(d))for(c.add(d),d=d.firstChild;d;d=d.nextSibling)t(d,a,c);d=p(b,e);continue}else if("template"===f){d=p(b,e);continue}if(e=e.__CE_shadowRoot)for(e=e.firstChild;e;e=e.nextSibling)t(e,a,c)}d=d.firstChild?d.firstChild:p(b,d)}}function u(b,a,c){b[a]=c};function v(){this.a=new Map;this.s=new Map;this.f=[];this.b=!1}function ba(b,a,c){b.a.set(a,c);b.s.set(c.constructor,c)}function w(b,a){b.b=!0;b.f.push(a)}function x(b,a){b.b&&t(a,function(a){return y(b,a)})}function y(b,a){if(b.b&&!a.__CE_patched){a.__CE_patched=!0;for(var c=0;ct?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===ho||n[0]===po?po+n:n}function s(n){return(n+="")[0]===po?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function d(){var n=0;for(var t in this._)++n;return n}function v(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function x(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function M(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=go.length;e=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=ko.get(n);return c&&(n=c,l=B),a?t?i:r:t?_:u}function $(n,t){return function(e){var r=to.event;to.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{to.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Eo,i="click"+r,u=to.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==No&&(No=!("onselectstart"in e)&&M(e.style,"userSelect")),No){var o=n(e).style,a=o[No];o[No]="none"}return function(n){if(u.on(r,null),No&&(o[No]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(Ao<0){var u=t(n);if(u.scrollX||u.scrollY){var o=(r=to.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important"))[0][0].getScreenCTM();Ao=!(o.f||o.e),r.remove()}}return Ao?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return to.event.changedTouches[0].identifier}function K(n){return n>0?1:n<0?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:n<-1?Lo:Math.acos(n)}function tn(n){return n>1?Ro:n<-1?-Ro:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):bn(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:n<0&&(n+=360),n<60?u+(o-u)*n/60:n<180?o:n<240?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:t<0?0:t>1?1:t,e=e<0?0:e>1?1:e,o=e<=.5?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=to.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Do)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=dn(i)*Zo,r=dn(r)*Vo,u=dn(u)*Xo,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Po,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function dn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(n<=.00304?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):bn(""+n,mn,cn):new mn(n,t,e)}function xn(n){return new mn(n>>16,n>>8&255,255&n)}function Mn(n){return xn(n)+""}function _n(n){return n<16?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bn(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=Wo.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o|=o>>4,a=240&u,a|=a>>4,l=15&u,l|=l<<4):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=l<.5?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(t0&&l<1?0:r),new ln(r,i,l)}function Sn(n,t,e){var r=vn((.4124564*(n=kn(n))+.3575761*(t=kn(t))+.1804375*(e=kn(e)))/Zo),i=vn((.2126729*n+.7151522*t+.072175*e)/Vo);return hn(116*i-16,500*(r-i),200*(i-vn((.0193339*n+.119192*t+.9503041*e)/Xo)))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&t<300||304===t){try{n=e.call(u,l)}catch(n){return void o.error.call(u,n)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=to.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=to.event;to.event=n;try{o.progress.call(u,l)}finally{to.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(ro(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},to.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;r<2&&(t=0),r<3&&(e=Date.now());var i={c:n,t:e+t,n:null};return Go?Go.n=i:Jo=i,Go=i,Ko||(Qo=clearTimeout(Qo),Ko=1,na(Tn)),i}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(Qo),Qo=setTimeout(Tn,t)),Ko=0):(Ko=1,na(Tn))}function Rn(){for(var n=Date.now(),t=Jo;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=Jo,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Un(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ea.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,d="",v="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,v="%",p="f";break;case"p":g=100,v="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(d="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(d=i[0],v=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=ra.get(p)||Fn;var x=c&&s;return function(n){var e=v;if(y&&n%1)return"";var i=n<0||0===n&&1/n<0?(n=-n,"-"):"-"===a?"":a;if(g<0){var l=to.formatPrefix(n,h);n=l.scale(n),e=l.symbol+v}else n*=g;var M,_,b=(n=p(n,h)).lastIndexOf(".");if(b<0){var w=m?n.lastIndexOf("e"):-1;w<0?(M=n,_=""):(M=n.substring(0,w),_=n.substring(w))}else M=n.substring(0,b),_=t+n.substring(b+1);!c&&s&&(M=u(M,1/0));var S=d.length+M.length+_.length+(x?0:i.length),k=S"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(x?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return t-e1)for(;o=c)return-1;if(37===(i=t.charCodeAt(a++))){if(o=t.charAt(a++),!(u=C[o in aa?t.charAt(a++):o])||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){M.lastIndex=0;var r=M.exec(t.slice(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=x.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,d=n.days,v=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{var t=new(ua=Hn);return t._=n,r(t)}finally{ua=Date}}var r=t(n);return e.parse=function(n){try{ua=Hn;var t=r.parse(n);return t&&t._}finally{ua=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var x=to.map(),M=Vn(d),_=Xn(d),b=Vn(v),w=Xn(v),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){x.set(n.toLowerCase(),t)});var A={a:function(n){return v[n.getDay()]},A:function(n){return d[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ia.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ia.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ia.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=n<0?"-":"",i=(r?-n:n)+"",u=i.length;return r+(u68?1900:2e3)}function nt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=so(t)/60|0,i=so(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){ca.lastIndex=0;var r=ca.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);da.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;va.point=function(o,a){va.point=n,r=(t=o)*Do,i=Math.cos(a=(e=a)*Do/2+Lo/4),u=Math.sin(a)},va.lineEnd=function(){n(t,e)}}function vt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function xt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function Mt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function _t(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function bt(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return so(n[0]-t[0])=0;--a)i.point((s=f[a])[0],s[1]);else r(p.x,p.p.x,-1,i);p=p.p}f=(p=p.o).z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(_||(u.polygonStart(),_=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,d,v=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=to.merge(p);var n=Ot(y,g);p.length?(_||(u.polygonStart(),_=!0),Lt(p,jt,n,e,u)):n&&(_||(u.polygonStart(),_=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),_&&(u.polygonEnd(),_=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},x=Pt(),M=t(x),_=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:_,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function jt(n,t){return((n=n.x)[0]<0?n[1]-Ro-Co:Ro-n[1])-((t=t.x)[0]<0?t[1]-Ro-Co:Ro-t[1])}function Ut(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Lo:-Lo,l=so(u-e);so(l-Lo)0?Ro:-Ro),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Lo&&(so(e-i)Co?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Ro,r.point(-Lo,i),r.point(0,i),r.point(Lo,i),r.point(Lo,0),r.point(Lo,-i),r.point(0,-i),r.point(-Lo,-i),r.point(-Lo,0),r.point(-Lo,i);else if(so(n[0]-t[0])>Co){var u=n[0]=0?1:-1,w=b*_,S=w>Lo,k=g*x;if(da.add(Math.atan2(k*b*Math.sin(w),d*M+k*Math.cos(w))),u+=S?_+b*qo:_,S^h>=e^y>=e){var N=mt(vt(s),vt(n));_t(N);var E=mt(i,N);_t(E);var A=(S^_>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^_>=0?1:-1)}if(!v++)break;h=y,g=x,d=M,s=n}}return(u<-Co||uu}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],d=t(s,h),v=o?d?0:i(s,h):d?i(s+(s<0?Lo:-Lo),h):0;if(!e&&(c=l=d)&&n.lineStart(),d!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Co,g[1]+=Co,d=t(g[0],g[1]))),d!==l)f=0,d?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^d){var y;v&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!d||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=d,u=v},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=[1,0,0],i=mt(vt(n),vt(t)),o=yt(i,i),a=i[0],l=o-a*a;if(!l)return!e&&n;var c=u*o/l,f=-u*a/l,s=mt(r,i),h=Mt(r,c);xt(h,Mt(i,f));var p=s,g=yt(h,p),d=yt(p,p),v=g*g-d*(yt(h,h)-1);if(!(v<0)){var y=Math.sqrt(v),m=Mt(p,(-g-y)/d);if(xt(m,h),m=bt(m),!e)return m;var x,M=n[0],_=t[0],b=n[1],w=t[1];_0^m[1]<(so(m[0]-M)Lo^(M<=m[0]&&m[0]<=_)){var E=Mt(p,(-g+y)/d);return xt(E,h),[m,bt(E)]}}}function i(t,e){var r=o?n:Lo-n,i=0;return t<-r?i|=1:t>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=so(u)>Co;return Rt(t,e,de(n,6*Do),o?[0,-n]:[-Lo,n-Lo])}function It(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=0,s=1,h=a.x-l,p=a.y-c;if(u=n-l,h||!(u>0)){if(u/=h,h<0){if(u0){if(u>s)return;u>f&&(f=u)}if(u=e-l,h||!(u<0)){if(u/=h,h<0){if(u>s)return;u>f&&(f=u)}else if(h>0){if(u0)){if(u/=p,p<0){if(u0){if(u>s)return;u>f&&(f=u)}if(u=r-c,p||!(u<0)){if(u/=p,p<0){if(u>s)return;u>f&&(f=u)}else if(p>0){if(u0&&(i.a={x:l+f*h,y:c+f*p}),s<1&&(i.b={x:l+s*h,y:c+s*p}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return so(r[0]-n)0?0:3:so(r[0]-e)0?2:1:so(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=v.length,r=n[1],i=0;ir&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0)do{c.point(0===f||3===f?n:e,f>1?r:t)}while((f=(f+l+4)%4)!==s);else c.point(a[0],a[1])}function f(i,u){return n<=i&&i<=e&&t<=u&&u<=r}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,v&&v.push(y=[]),S=!0,w=!1,_=b=NaN}function p(){d&&(g(m,x),M&&w&&E.rejoin(),d.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){var e=f(n=Math.max(-za,Math.min(za,n)),t=Math.max(-za,Math.min(za,t)));if(v&&y.push([n,t]),S)m=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var d,v,y,m,x,M,_,b,w,S,k,N=a,E=Pt(),A=It(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,d=[],v=[],k=!0},polygonEnd:function(){a=N,d=to.merge(d);var t=l([n,r]),e=k&&t,i=d.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(d,u,t,c,a),a.polygonEnd()),d=v=y=null}};return C}}function Vt(n){var t=0,e=Lo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Lo/180,e=n[1]*Lo/180):[t/Lo*180,e/Lo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){qa+=i*n-r*t,r=n,i=t}var t,e,r,i;ja.point=function(u,o){ja.point=n,t=r=u,e=i=o},ja.lineEnd=function(){n(t,e)}}function Bt(n,t){nDa&&(Da=n),tPa&&(Pa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){xa+=n,Ma+=t,++_a}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);ba+=o*(t+n)/2,wa+=o*(e+r)/2,Sa+=o,Gt(t=n,e=r)}var t,e;Fa.point=function(r,i){Fa.point=n,Gt(t=r,e=i)}}function Qt(){Fa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);ba+=o*(r+n)/2,wa+=o*(i+t)/2,Sa+=o,ka+=(o=i*n-r*t)*(r+n),Na+=o*(i+t),Ea+=3*o,Gt(r=n,i=t)}var t,e,r,i;Fa.point=function(u,o){Fa.point=n,Gt(t=r=u,e=i=o)},Fa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,qo)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:_};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=NaN,S.point=u,t.lineStart()}function u(e,r){var u=vt([e,r]),o=n(e,r);i(x,M,m,_,b,w,x=o[0],M=o[1],m=e,_=u[0],b=u[1],w=u[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function l(){r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=x,g=M,d=_,v=b,y=w,S.point=u}function f(){i(x,M,m,_,b,w,p,g,s,d,v,y,a,t),S.lineEnd=o,o()}var s,h,p,g,d,v,y,m,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,d,v,y){var m=f-t,x=s-e,M=m*m+x*x;if(M>4*u&&v--){var _=a+p,b=l+g,w=c+d,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),N=so(so(w)-1)u||so((m*z+x*L)/M-.5)>.3||a*p+l*g+c*d0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Po,e*Po])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Do,n[1]*Do),[n[0]*h+l,c-n[1]*h]}function e(n){return(n=a.invert((n[0]-l)/h,(c-n[1])/h))&&[n[0]*Po,n[1]*Po]}function r(){a=Ct(o=se(y,x,M),u);var n=u(d,v);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,d=0,v=0,y=0,x=0,M=0,_=Ca,b=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(_(o,s(b(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(_=null==n?(w=n,Ca):Yt((w=+n)*Do),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,b=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(d=n[0]%360*Do,v=n[1]%360*Do,r()):[d*Po,v*Po]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Do,x=n[1]%360*Do,M=n.length>2?n[2]%360*Do:0,r()):[y*Po,x*Po,M*Po]},to.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Do,e*Do)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Lo?n-qo:n<-Lo?n+qo:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Lo?t-qo:t<-Lo?t+qo:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function de(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=ve(e,i),u=ve(e,u),(o>0?iu)&&(i+=o*qo)):(i=n+o*qo,u=n-.5*l);for(var c,f=i;o>0?f>u:f0?t<-Ro+Co&&(t=-Ro+Co):t>Ro-Co&&(t=Ro-Co);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Lo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Ro]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return so(i)1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function je(n){var t=Qa.pop()||new Pe;return t.site=n,t}function Ue(n){Be(n),Ja.remove(n),Qa.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];Ue(n);for(var l=u;l.circle&&so(e-l.circle.x)Co)a=a.L;else{if(!((i=u-Ye(a,o))>Co)){r>-Co?(t=a.P,e=a):i>-Co?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=je(n);if(Ja.insert(t,l),t||e){if(t===e)return Be(t),e=je(t.site),Ja.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(e){Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,d=g.x-f,v=g.y-s,y=2*(h*v-p*d),m=h*h+p*p,x=d*d+v*v,M={x:(v*m-p*x)/y+f,y:(h*x-d*m)/y+s};nr(e.edge,c,g,M),l.edge=Ke(c,n,null,M),e.edge=Ke(n,g,null,M),$e(t),$e(e)}else l.edge=Ke(t.site,l.site)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-1/0;var a=(e=o.site).x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ye(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ie(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],d=Wa,v=d.length;v--;)if((u=d[v])&&u.prepare())for(l=(a=u.edges).length,o=0;oCo||so(i-e)>Co)&&(a.splice(o,0,new tr(Qe(u.site,f,so(r-s)Co?{x:s,y:so(t-s)Co?{x:so(e-g)Co?{x:h,y:so(t-h)Co?{x:so(e-p)=-zo)){var h=l*l+c*c,p=f*f+v*v,g=(v*h-c*p)/s,d=(l*p-f*h)/s,v=d+a,y=nl.pop()||new Xe;y.arc=n,y.site=i,y.x=g+o,y.y=v+Math.sqrt(g*g+d*d),y.cy=v,n.circle=y;for(var m=null,x=Ka._;x;)if(y.y=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:v,y:l};e={x:v,y:c}}else{if(u){if(u.y1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.y=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||h=_)<<1|t>=M,w=b+4;bu&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:vr(e,r)})),u=rl.lastIndex;return u=0&&!(e=to.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;e=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function br(n){return function(t){return.5*(t<.5?n(2*t):2-n(2-2*t))}}function wr(n){return n*n}function Sr(n){return n*n*n}function kr(n){if(n<=0)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(n<.5?e:3*(n-t)+e-.75)}function Nr(n){return function(t){return Math.pow(t,n)}}function Er(n){return 1-Math.cos(n*Ro)}function Ar(n){return Math.pow(2,10*(n-1))}function Cr(n){return 1-Math.sqrt(1-n*n)}function zr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/qo*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*qo/t)}}function Lr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qr(n){return n<1/2.75?7.5625*n*n:n<2/2.75?7.5625*(n-=1.5/2.75)*n+.75:n<2.5/2.75?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Tr(n,t){n=to.hcl(n),t=to.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:u<-180&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Rr(n,t){n=to.hsl(n),t=to.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:u<-180&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=to.lab(n),t=to.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Fr(t),i=Ur(t,e),u=Fr(Hr(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Or(e)+"rotate(",null,")")-2,x:vr(n,t)})):t&&e.push(Or(e)+"rotate("+t+")")}function Zr(n,t,e,r){n!==t?r.push({i:e.push(Or(e)+"skewX(",null,")")-2,x:vr(n,t)}):t&&e.push(Or(e)+"skewX("+t+")")}function Vr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Or(e)+"scale(",null,",",null,")");r.push({i:i-4,x:vr(n[0],t[0])},{i:i-2,x:vr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Or(e)+"scale("+t+")")}function Xr(n,t){var e=[],r=[];return n=to.transform(n),t=to.transform(t),Yr(n.translate,t.translate,e,r),Ir(n.rotate,t.rotate,e,r),Zr(n.skew,t.skew,e,r),Vr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function ui(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oi&&(r=e,i=t);return r}function vi(n){return n.reduce(yi,0)}function yi(n,t){return n+t[1]}function mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function Mi(n){return[to.min(n),to.max(n)]}function _i(n,t){return n.value-t.value}function bi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function wi(n,t){n._pack_next=t,t._pack_prev=n}function Si(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function ki(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-1/0,h=1/0,p=-1/0;if(e.forEach(Ni),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(Ci(r,i,u=e[2]),t(u),bi(r,u),r._pack_prev=u,bi(u,i),i=r._pack_next,o=3;o2?Yi:Fi,l=r?Br:$r;return o=i(n,t,l,e),a=i(t,n,l,mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Pr)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return $i(n,t)},u.tickFormat=function(t,e){return Bi(n,t,e)},u.nice=function(t){return Vi(n,t),i()},u.copy=function(){return Ii(n,t,e,r)},i()}function Zi(n,t){return to.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Vi(n,t){return Hi(n,Oi(Xi(n,t)[2])),Hi(n,Oi(Xi(n,t)[2])),n}function Xi(n,t){null==t&&(t=10);var e=ji(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return u<=.15?i*=10:u<=.35?i*=5:u<=.75&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function $i(n,t){return to.range.apply(to,Xi(n,t))}function Bi(n,t,e){var r=Xi(n,t);if(e){var i=ea.exec(e);if(i.shift(),"s"===i[8]){var u=to.formatPrefix(Math.max(so(r[0]),so(r[1])));return i[7]||(i[7]="."+Wi(u.scale(r[2]))),i[8]="f",e=to.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+Ji(i[8],r)),e=i.join("")}else e=",."+Wi(r[2])+"f";return to.format(e)}function Wi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Ji(n,t){var e=Wi(t[2]);return n in dl?Math.abs(e-Wi(Math.max(so(t[0]),so(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Gi(n,t,e,r){function i(n){return(e?Math.log(n<0?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Hi(r.map(i),e?Math:yl);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=ji(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;c0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return vl;arguments.length<2?e=vl:"function"!=typeof e&&(e=to.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return o*t0?a[e-1]:n[0],e0?0:1}function hu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,d=(s+p)/2,v=h-f,y=p-s,m=v*v+y*y,x=e-r,M=f*p-h*s,_=(y<0?-1:1)*Math.sqrt(Math.max(0,x*x*m-M*M)),b=(M*y-v*_)/m,w=(-M*v-y*_)/m,S=(M*y+v*_)/m,k=(-M*v+y*_)/m,N=b-g,E=w-d,A=S-g,C=k-d;return N*N+E*E>A*A+C*C&&(b=S,w=k),[[b-l,w-c],[b*e/x,w*e/x]]}function pu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function du(n){return n.join("L")+"Z"}function vu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function yu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r);for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Tu(n){return n.length<3?gu(n):n[0]+bu(n,qu(n))}function Ru(n){for(var t,e,r,i=-1,u=n.length;++i0;)p[--a].call(n,o);if(u>=1)return d.event&&d.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),d=g[r];d||(l=i.time,f=qn(u,0,l),d=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function Bu(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wu(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Ju(n){return n.toISOString()}function Gu(n,t,e){function r(t){return n(t)}function i(n,e){var r=(n[1]-n[0])/e,i=to.bisect(Yl,r);return i==Yl.length?[t.year,Xi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[r/Yl[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Ku(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ku(+t+1);return t}}:n))},r.ticks=function(n,t){var e=ji(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],Ku(+e[1]+1),t<1?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Gu(n.copy(),t,e)},Zi(r,n)}function Ku(n){return new Date(n)}function Qu(n){return JSON.parse(n.responseText)}function no(n){var t=io.createRange();return t.selectNode(io.body),t.createContextualFragment(n.responseText)}var to={version:"3.5.17"},eo=[].slice,ro=function(n){return eo.call(n)},io=this.document;if(io)try{ro(io.documentElement.childNodes)[0].nodeType}catch(n){ro=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),io)try{io.createElement("DIV").style.setProperty("opacity",0,"")}catch(n){var uo=this.Element.prototype,oo=uo.setAttribute,ao=uo.setAttributeNS,lo=this.CSSStyleDeclaration.prototype,co=lo.setProperty;uo.setAttribute=function(n,t){oo.call(this,n,t+"")},uo.setAttributeNS=function(n,t,e){ao.call(this,n,t,e+"")},lo.setProperty=function(n,t,e){co.call(this,n,t+"",e)}}to.ascending=e,to.descending=function(n,t){return tn?1:t>=n?0:NaN},to.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},to.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},to.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),i=r){e=i=r;break}for(;++ur&&(e=r),i1)return l/(f-1)},to.deviation=function(){var n=to.variance.apply(this,arguments);return n?Math.sqrt(n):n};var fo=u(e);to.bisectLeft=fo.left,to.bisect=to.bisectRight=fo.right,to.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},to.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,u<2&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},to.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},to.pairs=function(n){for(var t=0,e=n.length-1,r=n[0],i=new Array(e<0?0:e);t=0;)for(t=(r=n[i]).length;--t>=0;)e[--o]=r[t];return e};var so=Math.abs;to.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e==1/0)throw new Error("infinite range");var r,i=[],u=a(so(e)),o=-1;if(n*=u,t*=u,(e*=u)<0)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,d=u[a++],v=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(to.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},to.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;e=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},to.event=null,to.requote=function(n){return n.replace(vo,"\\$&")};var vo=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,yo={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},mo=function(n,t){return t.querySelector(n)},xo=function(n,t){return t.querySelectorAll(n)},Mo=function(n,t){var e=n.matches||n[M(n,"matchesSelector")];return(Mo=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(mo=function(n,t){return Sizzle(n,t)[0]||null},xo=Sizzle,Mo=Sizzle.matchesSelector),to.selection=function(){return to.select(io.documentElement)};var _o=to.selection.prototype=[];_o.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),wo.hasOwnProperty(e)?{space:wo[e],local:n}:n}},_o.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=to.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_o.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++i=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},_o.sort=function(n){n=Y.apply(this,arguments);for(var t=-1,e=this.length;++t0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){_&&_.domain(M.range().map(function(n){return(n-k.x)/k.k}).map(M.invert)),w&&w.domain(b.range().map(function(n){return(n-k.y)/k.k}).map(b.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),v=null)}function s(){function n(){a=1,u(to.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=to.select(t(i)).on(q,n).on(T,r),h=e(to.mouse(i)),p=W(i);ql.call(i),l(o)}function h(){function n(){var n=to.touches(g);return p=k.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=e(n))}),n}function t(){var t=to.event.target;to.select(t).on(M,r).on(_,a),b.push(t);for(var e=to.event.changedTouches,i=0,u=e.length;i1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=to.touches(g);ql.call(g);for(var a=0,l=o.length;a=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ra=to.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=to.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ia=to.time={},ua=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){oa.setUTCDate.apply(this._,arguments)},setDay:function(){oa.setUTCDay.apply(this._,arguments)},setFullYear:function(){oa.setUTCFullYear.apply(this._,arguments)},setHours:function(){oa.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){oa.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){oa.setUTCMinutes.apply(this._,arguments)},setMonth:function(){oa.setUTCMonth.apply(this._,arguments)},setSeconds:function(){oa.setUTCSeconds.apply(this._,arguments)},setTime:function(){oa.setTime.apply(this._,arguments)}};var oa=Date.prototype;ia.year=On(function(n){return(n=ia.day(n)).setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ia.years=ia.year.range,ia.years.utc=ia.year.utc.range,ia.day=On(function(n){var t=new ua(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ia.days=ia.day.range,ia.days.utc=ia.day.utc.range,ia.dayOfYear=function(n){var t=ia.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ia[n]=On(function(n){return(n=ia.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ia.year(n).getDay();return Math.floor((ia.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ia[n+"s"]=e.range,ia[n+"s"].utc=e.utc.range,ia[n+"OfYear"]=function(n){var e=ia.year(n).getDay();return Math.floor((ia.dayOfYear(n)+(e+t)%7)/7)}}),ia.week=ia.sunday,ia.weeks=ia.sunday.range,ia.weeks.utc=ia.sunday.utc.range,ia.weekOfYear=ia.sundayOfYear;var aa={"-":"",_:" ",0:"0"},la=/^\s*\d+/,ca=/^%/;to.locale=function(n){return{numberFormat:Un(n),timeFormat:In(n)}};var fa=to.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});to.format=fa.numberFormat,to.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,sa),st(sa.s,this.s,this),this.s?this.t+=sa.t:this.s=sa.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var sa=new ft;to.geo.stream=function(n,t){n&&ha.hasOwnProperty(n.type)?ha[n.type](n,t):ht(n,t)};var ha={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rp&&(p=t)}function t(t,e){var r=vt([t*Do,e*Do]);if(y){var i=mt(y,r),u=mt([i[1],-i[0],0],i);_t(u),u=bt(u);var o=t-g,l=o>0?1:-1,c=u[0]*Po*l,d=so(o)>180;if(d^(l*gp&&(p=v);else if(c=(c+360)%360-180,d^(l*gp&&(p=e);d?ta(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(th&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){_.point=t}function r(){M[0]=f,M[1]=h,_.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=so(r)>180?r+(r>0?360:-360):r}else d=n,v=e;va.point(n,e),t(n,e)}function u(){va.lineStart()}function o(){i(d,v),va.lineEnd(),so(m)>Co&&(f=-(h=180)),M[0]=f,M[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nCo?p=90:m<-Co&&(s=-90),M[0]=f,M[1]=h}};return function(n){p=h=-(f=s=1/0),x=[],to.geo.stream(n,_);var t=x.length;if(t){x.sort(l);for(var e=1,r=[g=x[0]];ea(g[0],g[1])&&(g[1]=u[1]),a(u[0],g[1])>a(g[0],g[1])&&(g[0]=u[0])):r.push(g=u);for(var i,u,o=-1/0,e=0,g=r[t=r.length-1];e<=t;g=u,++e)u=r[e],(i=a(g[1],u[0]))>o&&(o=i,f=u[0],h=g[1])}return x=M=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),to.geo.centroid=function(n){ya=ma=xa=Ma=_a=ba=wa=Sa=ka=Na=Ea=0,to.geo.stream(n,Aa);var t=ka,e=Na,r=Ea,i=t*t+e*e+r*r;return i=.12&&i<.234&&r>=-.425&&r<-.214?o:i>=.166&&i<.234&&r>=-.214&&r<-.115?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Co,s+.12*c+Co],[f-.214*c-Co,s+.234*c-Co]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Co,s+.166*c+Co],[f-.115*c-Co,s+.234*c-Co]]).stream(l).point,n},n.scale(1070)};var La,qa,Ta,Ra,Da,Pa,ja={point:_,lineStart:_,lineEnd:_,polygonStart:function(){qa=0,ja.lineStart=$t},polygonEnd:function(){ja.lineStart=ja.lineEnd=ja.point=_,La+=so(qa/2)}},Ua={point:Bt,lineStart:_,lineEnd:_,polygonStart:_,polygonEnd:_},Fa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Fa.lineStart=ne},polygonEnd:function(){Fa.point=Gt,Fa.lineStart=Kt,Fa.lineEnd=Qt}};to.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),to.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return La=0,to.geo.stream(n,i(ja)),La},n.centroid=function(n){return xa=Ma=_a=ba=wa=Sa=ka=Na=Ea=0,to.geo.stream(n,i(Fa)),Ea?[ka/Ea,Na/Ea]:Sa?[ba/Sa,wa/Sa]:_a?[xa/_a,Ma/_a]:[NaN,NaN]},n.bounds=function(n){return Da=Pa=-(Ta=Ra=1/0),to.geo.stream(n,i(Ua)),[[Ta,Ra],[Da,Pa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(to.geo.albersUsa()).context(null)},to.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},to.geo.projection=oe,to.geo.projectionMutator=ae,(to.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,to.geo.rotation=function(n){function t(t){return t=n(t[0]*Do,t[1]*Do),t[0]*=Po,t[1]*=Po,t}return n=se(n[0]%360*Do,n[1]*Do,n.length>2?n[2]*Do:0),t.invert=function(t){return t=n.invert(t[0]*Do,t[1]*Do),t[0]*=Po,t[1]*=Po,t},t},fe.invert=ce,to.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Do,-n[1]*Do,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Po,n[1]*=Po}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=de((t=+r)*Do,i*Do),n):t},n.precision=function(r){return arguments.length?(e=de(t*Do,(i=+r)*Do),n):i},n.angle(90)},to.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Do,i=n[1]*Do,u=t[1]*Do,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},to.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return to.range(Math.ceil(u/v)*v,i,v).map(h).concat(to.range(Math.ceil(c/y)*y,l,y).map(p)).concat(to.range(Math.ceil(r/g)*g,e,g).filter(function(n){return so(n%v)>Co}).map(f)).concat(to.range(Math.ceil(a/d)*d,o,d).filter(function(n){return so(n%y)>Co}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,d=g,v=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(v=+t[0],y=+t[1],n):[v,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],d=+t[1],n):[g,d]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Co],[180,90-Co]]).minorExtent([[-180,-80-Co],[180,80+Co]])},to.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=xe,i=Me;return n.distance=function(){return to.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},to.geo.interpolate=function(n,t){return _e(n[0]*Do,n[1]*Do,t[0]*Do,t[1]*Do)},to.geo.length=function(n){return Ha=0,to.geo.stream(n,Oa),Ha};var Ha,Oa={sphere:_,point:_,lineStart:be,lineEnd:_,polygonStart:_,polygonEnd:_},Ya=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(to.geo.azimuthalEqualArea=function(){return oe(Ya)}).raw=Ya;var Ia=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(to.geo.azimuthalEquidistant=function(){return oe(Ia)}).raw=Ia,(to.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(to.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var Za=we(function(n){return 1/n},Math.atan);(to.geo.gnomonic=function(){return oe(Za)}).raw=Za,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ro]},(to.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var Va=we(function(){return 1},Math.asin);(to.geo.orthographic=function(){return oe(Va)}).raw=Va;var Xa=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(to.geo.stereographic=function(){return oe(Xa)}).raw=Xa,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ro]},(to.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,to.geom={},to.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;t=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[]).point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Co)*Co,y:Math.round(o(n,t)/Co)*Co,i:t}})}var r=Ce,i=ze,u=r,o=i,a=tl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u=e.site,o=e.edges.sort(Ve),a=-1,l=o.length,c=o[l-1].edge,f=c.l===u?c.r:c.l;++a=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]={leaf:!0,nodes:[],point:null,x:null,y:null}),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,d,v,y,m,x=En(a),M=En(l);if(null!=t)d=t,v=e,y=r,m=i;else if(y=m=-(d=v=1/0),s=[],h=[],g=n.length,o)for(p=0;py&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;py&&(y=_),b>m&&(m=b),s.push(_),h.push(b)}var w=y-d,S=m-v;w>S?m=v+w:y=d+S;var k={leaf:!0,nodes:[],point:null,x:null,y:null};if(k.add=function(n){u(k,n,+x(n,++p),+M(n,p),d,v,y,m)},k.visit=function(n){hr(n,k,d,v,y,m)},k.find=function(n){return pr(k,n[0],n[1],d,v,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=ul.get(e)||il,r=ol.get(r)||m,Mr(r(e.apply(null,eo.call(arguments,1))))},to.interpolateHcl=Tr,to.interpolateHsl=Rr,to.interpolateLab=Dr,to.interpolateRound=Pr,to.transform=function(n){var t=io.createElementNS(to.ns.prefix.svg,"g");return(to.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:al)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var al={a:1,b:0,c:0,d:1,e:0,f:0};to.interpolateTransform=Xr,to.layout={},to.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;l=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return ui(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=li,e=oi,r=ai;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ii(t,function(n){n.children&&(n.value=0)}),ui(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},to.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++ca&&(a=r),o.push(r)}for(e=0;e0)for(u=-1;++u=f[0]&&a<=f[1]&&((o=l[to.bisect(s,a,1,p)-1]).y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=Mi,i=mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},to.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,ui(a,function(n){n.r=+f(n.value)}),ui(a,ki),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;ui(a,function(n){n.r+=s}),ui(a,ki),ui(a,function(n){n.r-=s})}return Ai(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=to.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ri(n,e)},to.layout.tree=function(){function n(n,r){var u=M.call(this,n,r),o=t(u[0]);return N=o,e(o,0),i(o),g(o,0),m(o),u}function t(n){var e={t:n,prelim:0,mod:0,shift:0,change:0,msel:0,mser:0};if(n.x=0,n.y=0,w)e.x_size=1,e.y_size=1;else if("object"==typeof S)e.x_size=S[0],e.y_size=S[1];else{var r=S(n);e.x_size=r[0],e.y_size=r[1]}k&&(n.x_size=e.x_size,n.y_size=e.y_size);for(var i=[],u=n.children?n.children.length:0,o=0;oe.lowY&&(e=e.nxt);var p=i+r.prelim-(o+u.prelim);null!=_?p+=_(r.t,u.t)*N.x_size:null!=b&&(p+=r.x_size/2+u.x_size/2+b(r.t,u.t)),p>0?(o+=p,a(n,t,e.index,p)):1===t&&0===o&&0===r.num_children&&u.num_children>1&&p<0&&(o+=p,a(n,t,e.index,p));var g=f(r),d=f(u);g<=d&&null!=(r=c(r))&&(i+=r.mod),g>=d&&null!=(u=l(u))&&(o+=u.mod)}null==r&&null!=u?s(n,t,u,o):null!=r&&null==u&&h(n,t,r,i)}function a(n,t,e,r){n.children[t].mod+=r,n.children[t].msel+=r,n.children[t].mser+=r,d(n,t,e,r)}function l(n){return 0==n.num_children?n.tl:n.children[0]}function c(n){return 0==n.num_children?n.tr:n.children[n.num_children-1]}function f(n){return n.t.y+n.y_size}function s(n,t,e,r){var i=n.children[0].el;i.tl=e;var u=r-e.mod-n.children[0].msel;i.mod+=u,i.prelim-=u,n.children[0].el=n.children[t].el,n.children[0].msel=n.children[t].msel}function h(n,t,e,r){var i=n.children[t].er;i.tr=e;var u=r-e.mod-n.children[t].mser;i.mod+=u,i.prelim-=u,n.children[t].er=n.children[t-1].er,n.children[t].mser=n.children[t-1].mser}function p(n){n.prelim=(n.children[0].prelim+n.children[0].mod-n.children[0].x_size/2+n.children[n.num_children-1].mod+n.children[n.num_children-1].prelim+n.children[n.num_children-1].x_size/2)/2}function g(n,t){t+=n.mod,n.t.x=n.prelim+t,v(n);for(var e=0;e=e.lowY;)e=e.nxt;return{lowY:n,index:t,nxt:e}}function m(n){if(null!=w){for(var t,e=n,r=n,i=n,u=[n];t=u.pop();)(f=t.t).xr.t.x&&(r=t),f.depth>i.t.depth&&(i=t),t.children&&(u=u.concat(t.children));var o=null==_?.5:_(e.t,r.t)/2,a=o-e.t.x,l=w[0]/(r.t.x+o+a),c=w[1]/(i.t.depth>0?i.t.depth:1);for(u=[n];t=u.pop();){var f=t.t;f.x=(f.x+a)*l,f.y=f.depth*c,k&&(f.x_size*=l,f.y_size*=c),t.children&&(u=u.concat(t.children))}}else x(n,-n.t.x)}function x(n,t){n.t.x+=t;for(var e=0;e0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,d))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,d,c,!1),d=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,d,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oi&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0;if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++u1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=to.random.normal.apply(to,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=to.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;es?0:1;if(c=To)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,d,v,y,m,x,M,_,b,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(v=u===bl?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(v/c*Math.sin(y))),n&&(N=tn(v/n*Math.sin(y)))),c){m=c*Math.cos(f+E),x=c*Math.sin(f+E),M=c*Math.cos(s-E),_=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Lo?0:1;if(E&&su(m,x,M,_)===p^C){var z=(f+s)/2;m=c*Math.cos(z),x=c*Math.sin(z),M=_=null}}else m=x=0;if(n){b=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Lo?0:1;if(N&&su(b,w,S,k)===1-p^L){var q=(f+s)/2;b=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else b=w=0;if(h>Co&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){d=nLo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=xe,o=Me,a=Pu,l=lu,c=cu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},to.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=xe,e=Me,r=ju;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},to.svg.diagonal.radial=function(){var n=to.svg.diagonal(),t=ju,e=n.projection;return n.projection=function(n){return arguments.length?e(Uu(t=n)):t},n},to.svg.symbol=function(){function n(n,r){return(El.get(t.call(this,n,r))||Ou)(e.call(this,n,r))}var t=Hu,e=Fu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var El=to.map({circle:Ou,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Cl)),e=t*Cl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Al),e=t*Al/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Al),e=t*Al/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});to.svg.symbolTypes=El.keys();var Al=Math.sqrt(3),Cl=Math.tan(30*Do);_o.transition=function(n){for(var t,e,r=zl||++Rl,i=Xu(n),u=[],o=Ll||{time:Date.now(),ease:kr,delay:0,duration:250},a=-1,l=this.length;++arect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==to.event.keyCode&&(C||(x=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function d(){32==to.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function v(){var n=to.mouse(_),t=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(to.event.altKey?(x||(x=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]1)for(var r=1;r1&&void 0!==arguments[1]?arguments[1]:{};return u.default.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(t={onlyLeaves:!1,circularReference:"leaf",search:"dfsPreOrder",iterateOverObject:!0,skipIteration:function(){return!1}},void 0!==o.onlyLeaves&&(t.onlyLeaves=o.onlyLeaves),void 0!==o.circularReference&&(t.circularReference=o.circularReference),void 0!==o.iterateOverObject&&(t.iterateOverObject=o.iterateOverObject),void 0!==o.skipIteration&&(t.skipIteration=o.skipIteration),void 0===o.search){i.next=9;break}if(o.search in s){i.next=8;break}throw new Error("The search algorithm "+o.search+" is incorrect.");case 8:t.search=o.search;case 9:return r=new l.default(e,t),n=(0,d.default)(t.circularReference),i.delegateYield(s[t.search](r,t.onlyLeaves,n),"t0",12);case 12:case"end":return i.stop()}},_[0],this)}Object.defineProperty(r,"__esModule",{value:!0});var a=e("babel-runtime/regenerator"),u=o(a);r.default=i;var c=e("./search"),s=n(c),f=e("./root-node"),l=o(f),p=e("./seen"),d=o(p),_=[i].map(u.default.mark)},{"./root-node":5,"./search":6,"./seen":7,"babel-runtime/regenerator":115}],3:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e){var t;return l.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:r.t0=l.default.keys(e);case 1:if((r.t1=r.t0()).done){r.next=7;break}return t=r.t1.value,r.next=5,[t,e[t]];case 5:r.next=1;break;case 7:case"end":return r.stop()}},p[0],this)}function i(e){var t;return l.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:t=0;case 1:if(!(tf;)if(u=c[f++],u!=u)return!0}else for(;s>f;f++)if((e||f in c)&&c[f]===r)return e||f||0;return!e&&-1}}},{"./_to-index":88,"./_to-iobject":90,"./_to-length":91}],39:[function(e,t,r){var n=e("./_cof"),o=e("./_wks")("toStringTag"),i="Arguments"==n(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};t.exports=function(e){var t,r,u;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=a(t=Object(e),o))?r:i?n(t):"Object"==(u=n(t))&&"function"==typeof t.callee?"Arguments":u}},{"./_cof":40,"./_wks":97}],40:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],41:[function(e,t,r){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},{}],42:[function(e,t,r){"use strict";var n=e("./_object-dp"),o=e("./_property-desc");t.exports=function(e,t,r){t in e?n.f(e,t,o(0,r)):e[t]=r}},{"./_object-dp":70,"./_property-desc":81}],43:[function(e,t,r){var n=e("./_a-function");t.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},{"./_a-function":35}],44:[function(e,t,r){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},{}],45:[function(e,t,r){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":50}],46:[function(e,t,r){var n=e("./_is-object"),o=e("./_global").document,i=n(o)&&n(o.createElement);t.exports=function(e){return i?o.createElement(e):{}}},{"./_global":51,"./_is-object":59}],47:[function(e,t,r){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],48:[function(e,t,r){var n=e("./_object-keys"),o=e("./_object-gops"),i=e("./_object-pie");t.exports=function(e){var t=n(e),r=o.f;if(r)for(var a,u=r(e),c=i.f,s=0;u.length>s;)c.call(e,a=u[s++])&&t.push(a);return t}},{"./_object-gops":75,"./_object-keys":78,"./_object-pie":79}],49:[function(e,t,r){var n=e("./_global"),o=e("./_core"),i=e("./_ctx"),a=e("./_hide"),u="prototype",c=function(e,t,r){var s,f,l,p=e&c.F,d=e&c.G,_=e&c.S,b=e&c.P,h=e&c.B,y=e&c.W,v=d?o:o[t]||(o[t]={}),m=v[u],g=d?n:_?n[t]:(n[t]||{})[u];d&&(r=t);for(s in r)f=!p&&g&&void 0!==g[s],f&&s in v||(l=f?g[s]:r[s],v[s]=d&&"function"!=typeof g[s]?r[s]:h&&f?i(l,n):y&&g[s]==l?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t[u]=e[u],t}(l):b&&"function"==typeof l?i(Function.call,l):l,b&&((v.virtual||(v.virtual={}))[s]=l,e&c.R&&m&&!m[s]&&a(m,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},{"./_core":41,"./_ctx":43,"./_global":51,"./_hide":53}],50:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],51:[function(e,t,r){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},{}],52:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],53:[function(e,t,r){var n=e("./_object-dp"),o=e("./_property-desc");t.exports=e("./_descriptors")?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},{"./_descriptors":45,"./_object-dp":70,"./_property-desc":81}],54:[function(e,t,r){t.exports=e("./_global").document&&document.documentElement},{"./_global":51}],55:[function(e,t,r){t.exports=!e("./_descriptors")&&!e("./_fails")(function(){return 7!=Object.defineProperty(e("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":45,"./_dom-create":46,"./_fails":50}],56:[function(e,t,r){var n=e("./_cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},{"./_cof":40}],57:[function(e,t,r){var n=e("./_iterators"),o=e("./_wks")("iterator"),i=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||i[o]===e)}},{"./_iterators":65,"./_wks":97}],58:[function(e,t,r){var n=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==n(e)}},{"./_cof":40}],59:[function(e,t,r){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],60:[function(e,t,r){var n=e("./_an-object");t.exports=function(e,t,r,o){try{return o?t(n(r)[0],r[1]):t(r)}catch(t){var i=e.return;throw void 0!==i&&n(i.call(e)),t}}},{"./_an-object":37}],61:[function(e,t,r){"use strict";var n=e("./_object-create"),o=e("./_property-desc"),i=e("./_set-to-string-tag"),a={};e("./_hide")(a,e("./_wks")("iterator"),function(){return this}),t.exports=function(e,t,r){e.prototype=n(a,{next:o(1,r)}),i(e,t+" Iterator")}},{"./_hide":53,"./_object-create":69,"./_property-desc":81,"./_set-to-string-tag":84,"./_wks":97}],62:[function(e,t,r){"use strict";var n=e("./_library"),o=e("./_export"),i=e("./_redefine"),a=e("./_hide"),u=e("./_has"),c=e("./_iterators"),s=e("./_iter-create"),f=e("./_set-to-string-tag"),l=e("./_object-gpo"),p=e("./_wks")("iterator"),d=!([].keys&&"next"in[].keys()),_="@@iterator",b="keys",h="values",y=function(){return this};t.exports=function(e,t,r,v,m,g,j){s(r,t,v);var w,x,k,O=function(e){if(!d&&e in M)return M[e];switch(e){case b:return function(){return new r(this,e)};case h:return function(){return new r(this,e)}}return function(){return new r(this,e)}},E=t+" Iterator",S=m==h,L=!1,M=e.prototype,A=M[p]||M[_]||m&&M[m],P=A||O(m),T=m?S?O("entries"):P:void 0,F="Array"==t?M.entries||A:A;if(F&&(k=l(F.call(new e)),k!==Object.prototype&&(f(k,E,!0),n||u(k,p)||a(k,p,y))),S&&A&&A.name!==h&&(L=!0,P=function(){return A.call(this)}),n&&!j||!d&&!L&&M[p]||a(M,p,P),c[t]=P,c[E]=y,m)if(w={values:S?P:O(h),keys:g?P:O(b),entries:T},j)for(x in w)x in M||i(M,x,w[x]);else o(o.P+o.F*(d||L),t,w);return w}},{"./_export":49,"./_has":52,"./_hide":53,"./_iter-create":61,"./_iterators":65,"./_library":67,"./_object-gpo":76,"./_redefine":82,"./_set-to-string-tag":84,"./_wks":97}],63:[function(e,t,r){var n=e("./_wks")("iterator"),o=!1;try{var i=[7][n]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}t.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var i=[7],a=i[n]();a.next=function(){return{done:r=!0}},i[n]=function(){return a},e(i)}catch(e){}return r}},{"./_wks":97}],64:[function(e,t,r){t.exports=function(e,t){return{value:t,done:!!e}}},{}],65:[function(e,t,r){t.exports={}},{}],66:[function(e,t,r){var n=e("./_object-keys"),o=e("./_to-iobject");t.exports=function(e,t){for(var r,i=o(e),a=n(i),u=a.length,c=0;u>c;)if(i[r=a[c++]]===t)return r}},{"./_object-keys":78,"./_to-iobject":90}],67:[function(e,t,r){t.exports=!0},{}],68:[function(e,t,r){var n=e("./_uid")("meta"),o=e("./_is-object"),i=e("./_has"),a=e("./_object-dp").f,u=0,c=Object.isExtensible||function(){return!0},s=!e("./_fails")(function(){return c(Object.preventExtensions({}))}),f=function(e){a(e,n,{value:{i:"O"+ ++u,w:{}}})},l=function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,n)){if(!c(e))return"F";if(!t)return"E";f(e)}return e[n].i},p=function(e,t){if(!i(e,n)){if(!c(e))return!0;if(!t)return!1;f(e)}return e[n].w},d=function(e){return s&&_.NEED&&c(e)&&!i(e,n)&&f(e),e},_=t.exports={KEY:n,NEED:!1,fastKey:l,getWeak:p,onFreeze:d}},{"./_fails":50,"./_has":52,"./_is-object":59,"./_object-dp":70,"./_uid":94}],69:[function(e,t,r){var n=e("./_an-object"),o=e("./_object-dps"),i=e("./_enum-bug-keys"),a=e("./_shared-key")("IE_PROTO"),u=function(){},c="prototype",s=function(){var t,r=e("./_dom-create")("iframe"),n=i.length,o="<",a=">";for(r.style.display="none",e("./_html").appendChild(r),r.src="javascript:",t=r.contentWindow.document,t.open(),t.write(o+"script"+a+"document.F=Object"+o+"/script"+a),t.close(),s=t.F;n--;)delete s[c][i[n]];return s()};t.exports=Object.create||function(e,t){var r;return null!==e?(u[c]=n(e),r=new u,u[c]=null,r[a]=e):r=s(),void 0===t?r:o(r,t)}},{"./_an-object":37,"./_dom-create":46,"./_enum-bug-keys":47,"./_html":54,"./_object-dps":71,"./_shared-key":85}],70:[function(e,t,r){var n=e("./_an-object"),o=e("./_ie8-dom-define"),i=e("./_to-primitive"),a=Object.defineProperty;r.f=e("./_descriptors")?Object.defineProperty:function(e,t,r){if(n(e),t=i(t,!0),n(r),o)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},{"./_an-object":37,"./_descriptors":45,"./_ie8-dom-define":55,"./_to-primitive":93}],71:[function(e,t,r){var n=e("./_object-dp"),o=e("./_an-object"),i=e("./_object-keys");t.exports=e("./_descriptors")?Object.defineProperties:function(e,t){o(e);for(var r,a=i(t),u=a.length,c=0;u>c;)n.f(e,r=a[c++],t[r]);return e}},{"./_an-object":37,"./_descriptors":45,"./_object-dp":70,"./_object-keys":78}],72:[function(e,t,r){ +var n=e("./_object-pie"),o=e("./_property-desc"),i=e("./_to-iobject"),a=e("./_to-primitive"),u=e("./_has"),c=e("./_ie8-dom-define"),s=Object.getOwnPropertyDescriptor;r.f=e("./_descriptors")?s:function(e,t){if(e=i(e),t=a(t,!0),c)try{return s(e,t)}catch(e){}if(u(e,t))return o(!n.f.call(e,t),e[t])}},{"./_descriptors":45,"./_has":52,"./_ie8-dom-define":55,"./_object-pie":79,"./_property-desc":81,"./_to-iobject":90,"./_to-primitive":93}],73:[function(e,t,r){var n=e("./_to-iobject"),o=e("./_object-gopn").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return o(e)}catch(e){return a.slice()}};t.exports.f=function(e){return a&&"[object Window]"==i.call(e)?u(e):o(n(e))}},{"./_object-gopn":74,"./_to-iobject":90}],74:[function(e,t,r){var n=e("./_object-keys-internal"),o=e("./_enum-bug-keys").concat("length","prototype");r.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},{"./_enum-bug-keys":47,"./_object-keys-internal":77}],75:[function(e,t,r){r.f=Object.getOwnPropertySymbols},{}],76:[function(e,t,r){var n=e("./_has"),o=e("./_to-object"),i=e("./_shared-key")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},{"./_has":52,"./_shared-key":85,"./_to-object":92}],77:[function(e,t,r){var n=e("./_has"),o=e("./_to-iobject"),i=e("./_array-includes")(!1),a=e("./_shared-key")("IE_PROTO");t.exports=function(e,t){var r,u=o(e),c=0,s=[];for(r in u)r!=a&&n(u,r)&&s.push(r);for(;t.length>c;)n(u,r=t[c++])&&(~i(s,r)||s.push(r));return s}},{"./_array-includes":38,"./_has":52,"./_shared-key":85,"./_to-iobject":90}],78:[function(e,t,r){var n=e("./_object-keys-internal"),o=e("./_enum-bug-keys");t.exports=Object.keys||function(e){return n(e,o)}},{"./_enum-bug-keys":47,"./_object-keys-internal":77}],79:[function(e,t,r){r.f={}.propertyIsEnumerable},{}],80:[function(e,t,r){var n=e("./_export"),o=e("./_core"),i=e("./_fails");t.exports=function(e,t){var r=(o.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*i(function(){r(1)}),"Object",a)}},{"./_core":41,"./_export":49,"./_fails":50}],81:[function(e,t,r){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],82:[function(e,t,r){t.exports=e("./_hide")},{"./_hide":53}],83:[function(e,t,r){var n=e("./_is-object"),o=e("./_an-object"),i=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,r,n){try{n=e("./_ctx")(Function.call,e("./_object-gopd").f(Object.prototype,"__proto__").set,2),n(t,[]),r=!(t instanceof Array)}catch(e){r=!0}return function(e,t){return i(e,t),r?e.__proto__=t:n(e,t),e}}({},!1):void 0),check:i}},{"./_an-object":37,"./_ctx":43,"./_is-object":59,"./_object-gopd":72}],84:[function(e,t,r){var n=e("./_object-dp").f,o=e("./_has"),i=e("./_wks")("toStringTag");t.exports=function(e,t,r){e&&!o(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},{"./_has":52,"./_object-dp":70,"./_wks":97}],85:[function(e,t,r){var n=e("./_shared")("keys"),o=e("./_uid");t.exports=function(e){return n[e]||(n[e]=o(e))}},{"./_shared":86,"./_uid":94}],86:[function(e,t,r){var n=e("./_global"),o="__core-js_shared__",i=n[o]||(n[o]={});t.exports=function(e){return i[e]||(i[e]={})}},{"./_global":51}],87:[function(e,t,r){var n=e("./_to-integer"),o=e("./_defined");t.exports=function(e){return function(t,r){var i,a,u=String(o(t)),c=n(r),s=u.length;return c<0||c>=s?e?"":void 0:(i=u.charCodeAt(c),i<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?e?u.charAt(c):i:e?u.slice(c,c+2):(i-55296<<10)+(a-56320)+65536)}}},{"./_defined":44,"./_to-integer":89}],88:[function(e,t,r){var n=e("./_to-integer"),o=Math.max,i=Math.min;t.exports=function(e,t){return e=n(e),e<0?o(e+t,0):i(e,t)}},{"./_to-integer":89}],89:[function(e,t,r){var n=Math.ceil,o=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},{}],90:[function(e,t,r){var n=e("./_iobject"),o=e("./_defined");t.exports=function(e){return n(o(e))}},{"./_defined":44,"./_iobject":56}],91:[function(e,t,r){var n=e("./_to-integer"),o=Math.min;t.exports=function(e){return e>0?o(n(e),9007199254740991):0}},{"./_to-integer":89}],92:[function(e,t,r){var n=e("./_defined");t.exports=function(e){return Object(n(e))}},{"./_defined":44}],93:[function(e,t,r){var n=e("./_is-object");t.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":59}],94:[function(e,t,r){var n=0,o=Math.random();t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+o).toString(36))}},{}],95:[function(e,t,r){var n=e("./_global"),o=e("./_core"),i=e("./_library"),a=e("./_wks-ext"),u=e("./_object-dp").f;t.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||u(t,e,{value:a.f(e)})}},{"./_core":41,"./_global":51,"./_library":67,"./_object-dp":70,"./_wks-ext":96}],96:[function(e,t,r){r.f=e("./_wks")},{"./_wks":97}],97:[function(e,t,r){var n=e("./_shared")("wks"),o=e("./_uid"),i=e("./_global").Symbol,a="function"==typeof i,u=t.exports=function(e){return n[e]||(n[e]=a&&i[e]||(a?i:o)("Symbol."+e))};u.store=n},{"./_global":51,"./_shared":86,"./_uid":94}],98:[function(e,t,r){var n=e("./_classof"),o=e("./_wks")("iterator"),i=e("./_iterators");t.exports=e("./_core").getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[n(e)]}},{"./_classof":39,"./_core":41,"./_iterators":65,"./_wks":97}],99:[function(e,t,r){var n=e("./_an-object"),o=e("./core.get-iterator-method");t.exports=e("./_core").getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},{"./_an-object":37,"./_core":41,"./core.get-iterator-method":98}],100:[function(e,t,r){var n=e("./_classof"),o=e("./_wks")("iterator"),i=e("./_iterators");t.exports=e("./_core").isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||i.hasOwnProperty(n(t))}},{"./_classof":39,"./_core":41,"./_iterators":65,"./_wks":97}],101:[function(e,t,r){"use strict";var n=e("./_ctx"),o=e("./_export"),i=e("./_to-object"),a=e("./_iter-call"),u=e("./_is-array-iter"),c=e("./_to-length"),s=e("./_create-property"),f=e("./core.get-iterator-method");o(o.S+o.F*!e("./_iter-detect")(function(e){Array.from(e)}),"Array",{from:function(e){var t,r,o,l,p=i(e),d="function"==typeof this?this:Array,_=arguments.length,b=_>1?arguments[1]:void 0,h=void 0!==b,y=0,v=f(p);if(h&&(b=n(b,_>2?arguments[2]:void 0,2)),void 0==v||d==Array&&u(v))for(t=c(p.length),r=new d(t);t>y;y++)s(r,y,h?b(p[y],y):p[y]);else for(l=v.call(p),r=new d;!(o=l.next()).done;y++)s(r,y,h?a(l,b,[o.value,y],!0):o.value);return r.length=y,r}})},{"./_create-property":42,"./_ctx":43,"./_export":49,"./_is-array-iter":57,"./_iter-call":60,"./_iter-detect":63,"./_to-length":91,"./_to-object":92,"./core.get-iterator-method":98}],102:[function(e,t,r){"use strict";var n=e("./_add-to-unscopables"),o=e("./_iter-step"),i=e("./_iterators"),a=e("./_to-iobject");t.exports=e("./_iter-define")(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,r):"values"==t?o(0,e[r]):o(0,[r,e[r]])},"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},{"./_add-to-unscopables":36,"./_iter-define":62,"./_iter-step":64,"./_iterators":65,"./_to-iobject":90}],103:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{create:e("./_object-create")})},{"./_export":49,"./_object-create":69}],104:[function(e,t,r){var n=e("./_export");n(n.S+n.F*!e("./_descriptors"),"Object",{defineProperty:e("./_object-dp").f})},{"./_descriptors":45,"./_export":49,"./_object-dp":70}],105:[function(e,t,r){var n=e("./_to-object"),o=e("./_object-gpo");e("./_object-sap")("getPrototypeOf",function(){return function(e){return o(n(e))}})},{"./_object-gpo":76,"./_object-sap":80,"./_to-object":92}],106:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{setPrototypeOf:e("./_set-proto").set})},{"./_export":49,"./_set-proto":83}],107:[function(e,t,r){},{}],108:[function(e,t,r){"use strict";var n=e("./_string-at")(!0);e("./_iter-define")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},{"./_iter-define":62,"./_string-at":87}],109:[function(e,t,r){"use strict";var n=e("./_global"),o=e("./_has"),i=e("./_descriptors"),a=e("./_export"),u=e("./_redefine"),c=e("./_meta").KEY,s=e("./_fails"),f=e("./_shared"),l=e("./_set-to-string-tag"),p=e("./_uid"),d=e("./_wks"),_=e("./_wks-ext"),b=e("./_wks-define"),h=e("./_keyof"),y=e("./_enum-keys"),v=e("./_is-array"),m=e("./_an-object"),g=e("./_to-iobject"),j=e("./_to-primitive"),w=e("./_property-desc"),x=e("./_object-create"),k=e("./_object-gopn-ext"),O=e("./_object-gopd"),E=e("./_object-dp"),S=e("./_object-keys"),L=O.f,M=E.f,A=k.f,P=n.Symbol,T=n.JSON,F=T&&T.stringify,I="prototype",C=d("_hidden"),N=d("toPrimitive"),R={}.propertyIsEnumerable,G=f("symbol-registry"),D=f("symbols"),U=f("op-symbols"),Y=Object[I],W="function"==typeof P,B=n.QObject,q=!B||!B[I]||!B[I].findChild,J=i&&s(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=L(Y,t);n&&delete Y[t],M(e,t,r),n&&e!==Y&&M(Y,t,n)}:M,K=function(e){var t=D[e]=x(P[I]);return t._k=e,t},z=W&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},Q=function(e,t,r){return e===Y&&Q(U,t,r),m(e),t=j(t,!0),m(r),o(D,t)?(r.enumerable?(o(e,C)&&e[C][t]&&(e[C][t]=!1),r=x(r,{enumerable:w(0,!1)})):(o(e,C)||M(e,C,w(1,{})),e[C][t]=!0),J(e,t,r)):M(e,t,r)},H=function(e,t){m(e);for(var r,n=y(t=g(t)),o=0,i=n.length;i>o;)Q(e,r=n[o++],t[r]);return e},V=function(e,t){return void 0===t?x(e):H(x(e),t)},X=function(e){var t=R.call(this,e=j(e,!0));return!(this===Y&&o(D,e)&&!o(U,e))&&(!(t||!o(this,e)||!o(D,e)||o(this,C)&&this[C][e])||t)},Z=function(e,t){if(e=g(e),t=j(t,!0),e!==Y||!o(D,t)||o(U,t)){var r=L(e,t);return!r||!o(D,t)||o(e,C)&&e[C][t]||(r.enumerable=!0),r}},$=function(e){for(var t,r=A(g(e)),n=[],i=0;r.length>i;)o(D,t=r[i++])||t==C||t==c||n.push(t);return n},ee=function(e){for(var t,r=e===Y,n=A(r?U:g(e)),i=[],a=0;n.length>a;)!o(D,t=n[a++])||r&&!o(Y,t)||i.push(D[t]);return i};W||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(r){this===Y&&t.call(U,r),o(this,C)&&o(this[C],e)&&(this[C][e]=!1),J(this,e,w(1,r))};return i&&q&&J(Y,e,{configurable:!0,set:t}),K(e)},u(P[I],"toString",function(){return this._k}),O.f=Z,E.f=Q,e("./_object-gopn").f=k.f=$,e("./_object-pie").f=X,e("./_object-gops").f=ee,i&&!e("./_library")&&u(Y,"propertyIsEnumerable",X,!0),_.f=function(e){return K(d(e))}),a(a.G+a.W+a.F*!W,{Symbol:P});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)d(te[re++]);for(var te=S(d.store),re=0;te.length>re;)b(te[re++]);a(a.S+a.F*!W,"Symbol",{for:function(e){return o(G,e+="")?G[e]:G[e]=P(e)},keyFor:function(e){if(z(e))return h(G,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){q=!0},useSimple:function(){q=!1}}),a(a.S+a.F*!W,"Object",{create:V,defineProperty:Q,defineProperties:H,getOwnPropertyDescriptor:Z,getOwnPropertyNames:$,getOwnPropertySymbols:ee}),T&&a(a.S+a.F*(!W||s(function(){var e=P();return"[null]"!=F([e])||"{}"!=F({a:e})||"{}"!=F(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!z(e)){for(var t,r,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);return t=n[1],"function"==typeof t&&(r=t),!r&&v(t)||(t=function(e,t){if(r&&(t=r.call(this,e,t)),!z(t))return t}),n[1]=t,F.apply(T,n)}}}),P[I][N]||e("./_hide")(P[I],N,P[I].valueOf),l(P,"Symbol"),l(Math,"Math",!0),l(n.JSON,"JSON",!0)},{"./_an-object":37,"./_descriptors":45,"./_enum-keys":48,"./_export":49,"./_fails":50,"./_global":51,"./_has":52,"./_hide":53,"./_is-array":58,"./_keyof":66,"./_library":67,"./_meta":68,"./_object-create":69,"./_object-dp":70,"./_object-gopd":72,"./_object-gopn":74,"./_object-gopn-ext":73,"./_object-gops":75,"./_object-keys":78,"./_object-pie":79,"./_property-desc":81,"./_redefine":82,"./_set-to-string-tag":84,"./_shared":86,"./_to-iobject":90,"./_to-primitive":93,"./_uid":94,"./_wks":97,"./_wks-define":95,"./_wks-ext":96}],110:[function(e,t,r){e("./_wks-define")("asyncIterator")},{"./_wks-define":95}],111:[function(e,t,r){e("./_wks-define")("observable")},{"./_wks-define":95}],112:[function(e,t,r){e("./es6.array.iterator");for(var n=e("./_global"),o=e("./_hide"),i=e("./_iterators"),a=e("./_wks")("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var s=u[c],f=n[s],l=f&&f.prototype;l&&!l[a]&&o(l,a,s),i[s]=i.Array}},{"./_global":51,"./_hide":53,"./_iterators":65,"./_wks":97,"./es6.array.iterator":102}],113:[function(e,t,r){(function(r){var n="object"==typeof r?r:"object"==typeof window?window:"object"==typeof self?self:this,o=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf("regeneratorRuntime")>=0,i=o&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,t.exports=e("./runtime"),o)n.regeneratorRuntime=i;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./runtime":114}],114:[function(e,t,r){(function(e,r){!function(r){"use strict";function n(e,t,r,n){var o=t&&t.prototype instanceof i?t:i,a=Object.create(o.prototype),u=new _(n||[]);return a._invoke=f(e,r,u),a}function o(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}function i(){}function a(){}function u(){}function c(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function s(t){function r(e,n,i,a){var u=o(t[e],t,n);if("throw"!==u.type){var c=u.arg,s=c.value;return s&&"object"==typeof s&&m.call(s,"__await")?Promise.resolve(s.__await).then(function(e){r("next",e,i,a)},function(e){r("throw",e,i,a)}):Promise.resolve(s).then(function(e){c.value=e,i(c)},a)}a(u.arg)}function n(e,t){function n(){return new Promise(function(n,o){r(e,t,n,o)})}return i=i?i.then(n,n):n()}"object"==typeof e&&e.domain&&(r=e.domain.bind(r));var i;this._invoke=n}function f(e,t,r){var n=O;return function(i,a){if(n===S)throw new Error("Generator is already running");if(n===L){if("throw"===i)throw a;return h()}for(r.method=i,r.arg=a;;){var u=r.delegate;if(u){var c=l(u,r);if(c){if(c===M)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===O)throw n=L,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=S;var s=o(e,t,r);if("normal"===s.type){if(n=r.done?L:E,s.arg===M)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n=L,r.method="throw",r.arg=s.arg)}}}function l(e,t){var r=e.iterator[t.method];if(r===y){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=y,l(e,t),"throw"===t.method))return M;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return M}var n=o(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,M;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=y),t.delegate=null,M):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,M)}function p(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function d(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(p,this),this.reset(!0)}function b(e){if(e){var t=e[j];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r=0;--n){var o=this.tryEntries[n],i=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var a=m.call(o,"catchLoc"),u=m.call(o,"finallyLoc");if(a&&u){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&m.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),d(r),M}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;d(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:b(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=y),M}}}("object"==typeof r?r:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:1}],115:[function(e,t,r){t.exports=e("regenerator-runtime")},{"regenerator-runtime":113}]},{},[2])(2)}); diff --git a/frontend/documentation/js/libs/es6-shim.min.js b/frontend/documentation/js/libs/es6-shim.min.js new file mode 100644 index 0000000..1c2d15c --- /dev/null +++ b/frontend/documentation/js/libs/es6-shim.min.js @@ -0,0 +1,11 @@ +/*! + * https://github.com/paulmillr/es6-shim + * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com) + * and contributors, MIT License + * es6-shim: v0.35.1 + * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE + * Details and documentation: + * https://github.com/paulmillr/es6-shim/ + */ +(function(e,t){if(typeof define==="function"&&define.amd){define(t)}else if(typeof exports==="object"){module.exports=t()}else{e.returnExports=t()}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=Object.keys;var o=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var i=function(e){try{e();return false}catch(t){return true}};var a=function valueOrFalseIfThrows(e){try{return e()}catch(t){return false}};var u=o(i);var f=function(){return!i(function(){Object.defineProperty({},"x",{get:function(){}})})};var s=!!Object.defineProperty&&f();var c=function foo(){}.name==="foo";var l=Function.call.bind(Array.prototype.forEach);var p=Function.call.bind(Array.prototype.reduce);var v=Function.call.bind(Array.prototype.filter);var y=Function.call.bind(Array.prototype.some);var h=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t,r){l(n(t),function(n){var o=t[n];h(e,n,o,!!r)})};var g=Function.call.bind(Object.prototype.toString);var d=typeof/abc/==="function"?function IsCallableSlow(e){return typeof e==="function"&&g(e)==="[object Function]"}:function IsCallableFast(e){return typeof e==="function"};var O={getter:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(s){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(s){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&d(t.toString)){h(e,"toString",t.toString.bind(t),true)}}};var m=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var o=new r;if(typeof t!=="undefined"){n(t).forEach(function(e){O.defineByDescriptor(o,e,t[e])})}return o};var w=function(e,t){if(!Object.setPrototypeOf){return false}return a(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=m(e.prototype,{constructor:{value:r}});return t(r)})};var j=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var S=j();var T=S.isFinite;var I=Function.call.bind(String.prototype.indexOf);var E=Function.apply.bind(Array.prototype.indexOf);var P=Function.call.bind(Array.prototype.concat);var C=Function.call.bind(String.prototype.slice);var M=Function.call.bind(Array.prototype.push);var x=Function.apply.bind(Array.prototype.push);var N=Function.call.bind(Array.prototype.shift);var A=Math.max;var R=Math.min;var _=Math.floor;var k=Math.abs;var F=Math.exp;var L=Math.log;var D=Math.sqrt;var z=Function.call.bind(Object.prototype.hasOwnProperty);var q;var W=function(){};var G=S.Symbol||{};var H=G.species||"@@species";var V=Number.isNaN||function isNaN(e){return e!==e};var B=Number.isFinite||function isFinite(e){return typeof e==="number"&&T(e)};var $=d(Math.sign)?Math.sign:function sign(e){var t=Number(e);if(t===0){return t}if(V(t)){return t}return t<0?-1:1};var U=function isArguments(e){return g(e)==="[object Arguments]"};var J=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&g(e)!=="[object Array]"&&g(e.callee)==="[object Function]"};var X=U(arguments)?U:J;var K={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},string:function(e){return g(e)==="[object String]"},regex:function(e){return g(e)==="[object RegExp]"},symbol:function(e){return typeof S.Symbol==="function"&&typeof e==="symbol"}};var Z=function overrideNative(e,t,r){var n=e[t];h(e,t,r,true);O.preserveToString(e[t],n)};var Y=typeof G==="function"&&typeof G["for"]==="function"&&K.symbol(G());var Q=K.symbol(G.iterator)?G.iterator:"_es6-shim iterator_";if(S.Set&&typeof(new S.Set)["@@iterator"]==="function"){Q="@@iterator"}if(!S.Reflect){h(S,"Reflect",{},true)}var ee=S.Reflect;var te=String;var re={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!re.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(e==null){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){if(e===void 0||e===null||e===true||e===false){return false}return typeof e==="function"||typeof e==="object"},ToObject:function(e,t){return Object(re.RequireObjectCoercible(e,t))},IsCallable:d,IsConstructor:function(e){return re.IsCallable(e)},ToInt32:function(e){return re.ToNumber(e)>>0},ToUint32:function(e){return re.ToNumber(e)>>>0},ToNumber:function(e){if(g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=re.ToNumber(e);if(V(t)){return 0}if(t===0||!B(t)){return t}return(t>0?1:-1)*_(k(t))},ToLength:function(e){var t=re.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return V(e)&&V(t)},SameValueZero:function(e,t){return e===t||V(e)&&V(t)},IsIterable:function(e){return re.TypeIsObject(e)&&(typeof e[Q]!=="undefined"||X(e))},GetIterator:function(e){if(X(e)){return new q(e,"value")}var t=re.GetMethod(e,Q);if(!re.IsCallable(t)){throw new TypeError("value is not an iterable")}var r=re.Call(t,e);if(!re.TypeIsObject(r)){throw new TypeError("bad iterator")}return r},GetMethod:function(e,t){var r=re.ToObject(e)[t];if(r===void 0||r===null){return void 0}if(!re.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=re.GetMethod(e,"return");if(r===void 0){return}var n,o;try{n=re.Call(r,e)}catch(i){o=i}if(t){return}if(o){throw o}if(!re.TypeIsObject(n)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!re.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=re.IteratorNext(e);var r=re.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n&&ee.construct){return ee.construct(e,t,o)}var i=o.prototype;if(!re.TypeIsObject(i)){i=Object.prototype}var a=m(i);var u=re.Call(e,a,t);return re.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!re.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[H];if(n===void 0||n===null){return t}if(!re.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=re.ToString(e);var i="<"+t;if(r!==""){var a=re.ToString(n);var u=a.replace(/"/g,""");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+""},IsRegExp:function IsRegExp(e){if(!re.TypeIsObject(e)){return false}var t=e[G.match];if(typeof t!=="undefined"){return!!t}return K.regex(e)},ToString:function ToString(e){return te(e)}};if(s&&Y){var ne=function defineWellKnownSymbol(e){if(K.symbol(G[e])){return G[e]}var t=G["for"]("Symbol."+e);Object.defineProperty(G,e,{configurable:false,enumerable:false,writable:false,value:t});return t};if(!K.symbol(G.search)){var oe=ne("search");var ie=String.prototype.search;h(RegExp.prototype,oe,function search(e){return re.Call(ie,e,[this])});var ae=function search(e){var t=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var r=re.GetMethod(e,oe);if(typeof r!=="undefined"){return re.Call(r,e,[t])}}return re.Call(ie,t,[re.ToString(e)])};Z(String.prototype,"search",ae)}if(!K.symbol(G.replace)){var ue=ne("replace");var fe=String.prototype.replace;h(RegExp.prototype,ue,function replace(e,t){return re.Call(fe,e,[this,t])});var se=function replace(e,t){var r=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var n=re.GetMethod(e,ue);if(typeof n!=="undefined"){return re.Call(n,e,[r,t])}}return re.Call(fe,r,[re.ToString(e),t])};Z(String.prototype,"replace",se)}if(!K.symbol(G.split)){var ce=ne("split");var le=String.prototype.split;h(RegExp.prototype,ce,function split(e,t){return re.Call(le,e,[this,t])});var pe=function split(e,t){var r=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var n=re.GetMethod(e,ce);if(typeof n!=="undefined"){return re.Call(n,e,[r,t])}}return re.Call(le,r,[re.ToString(e),t])};Z(String.prototype,"split",pe)}var ve=K.symbol(G.match);var ye=ve&&function(){var e={};e[G.match]=function(){return 42};return"a".match(e)!==42}();if(!ve||ye){var he=ne("match");var be=String.prototype.match;h(RegExp.prototype,he,function match(e){return re.Call(be,e,[this])});var ge=function match(e){var t=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var r=re.GetMethod(e,he);if(typeof r!=="undefined"){return re.Call(r,e,[t])}}return re.Call(be,t,[re.ToString(e)])};Z(String.prototype,"match",ge)}}var de=function wrapConstructor(e,t,r){O.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){l(Object.getOwnPropertyNames(e),function(n){if(n in W||r[n]){return}O.proxy(e,n,t)})}else{l(Object.keys(e),function(n){if(n in W||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;O.redefine(e.prototype,"constructor",t)};var Oe=function(){return this};var me=function(e){if(s&&!z(e,H)){O.getter(e,H,Oe)}};var we=function(e,t){var r=t||function iterator(){return this};h(e,Q,r);if(!e[Q]&&K.symbol(Q)){e[Q]=r}};var je=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var Se=function createDataPropertyOrThrow(e,t,r){je(e,t,r);if(!re.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var Te=function(e,t,r,n){if(!re.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!re.TypeIsObject(o)){o=r}var i=m(o);for(var a in n){if(z(n,a)){var u=n[a];h(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var Ie=String.fromCodePoint;Z(String,"fromCodePoint",function fromCodePoint(e){return re.Call(Ie,this,arguments)})}var Ee={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){M(t,String.fromCharCode(r))}else{r-=65536;M(t,String.fromCharCode((r>>10)+55296));M(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=re.ToObject(e,"bad callSite");var r=re.ToObject(t.raw,"bad raw value");var n=r.length;var o=re.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a=o){break}f=a+1=Ce){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return Pe(t,r)},startsWith:function startsWith(e){var t=re.ToString(re.RequireObjectCoercible(this));if(re.IsRegExp(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=re.ToString(e);var n;if(arguments.length>1){n=arguments[1]}var o=A(re.ToInteger(n),0);return C(t,o,o+r.length)===r},endsWith:function endsWith(e){var t=re.ToString(re.RequireObjectCoercible(this));if(re.IsRegExp(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=re.ToString(e);var n=t.length;var o;if(arguments.length>1){o=arguments[1]}var i=typeof o==="undefined"?n:re.ToInteger(o);var a=R(A(i,0),n);return C(t,a-r.length,a)===r},includes:function includes(e){if(re.IsRegExp(e)){throw new TypeError('"includes" does not accept a RegExp')}var t=re.ToString(e);var r;if(arguments.length>1){r=arguments[1]}return I(this,t,r)!==-1},codePointAt:function codePointAt(e){var t=re.ToString(re.RequireObjectCoercible(this));var r=re.ToInteger(e);var n=t.length;if(r>=0&&r56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){Z(String.prototype,"includes",Me.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var xe=i(function(){"/a/".startsWith(/a/)});var Ne=a(function(){return"abc".startsWith("a",Infinity)===false});if(!xe||!Ne){Z(String.prototype,"startsWith",Me.startsWith);Z(String.prototype,"endsWith",Me.endsWith)}}if(Y){var Ae=a(function(){var e=/a/;e[G.match]=false;return"/a/".startsWith(e)});if(!Ae){Z(String.prototype,"startsWith",Me.startsWith)}var Re=a(function(){var e=/a/;e[G.match]=false;return"/a/".endsWith(e)});if(!Re){Z(String.prototype,"endsWith",Me.endsWith)}var _e=a(function(){var e=/a/;e[G.match]=false;return"/a/".includes(e)});if(!_e){Z(String.prototype,"includes",Me.includes)}}b(String.prototype,Me);var ke=[" \n\x0B\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var Fe=new RegExp("(^["+ke+"]+)|(["+ke+"]+$)","g");var Le=function trim(){return re.ToString(re.RequireObjectCoercible(this)).replace(Fe,"")};var De=["\x85","\u200b","\ufffe"].join("");var ze=new RegExp("["+De+"]","g");var qe=/^[\-+]0x[0-9a-f]+$/i;var We=De.trim().length!==De.length;h(String.prototype,"trim",Le,We);var Ge=function(e){return{value:e,done:arguments.length===0}};var He=function(e){re.RequireObjectCoercible(e);this._s=re.ToString(e);this._i=0};He.prototype.next=function(){var e=this._s;var t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return Ge()}var r=e.charCodeAt(t);var n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return Ge(e.substr(t,o))};we(He.prototype);we(String.prototype,function(){return new He(this)});var Ve={from:function from(e){var r=this;var n;if(arguments.length>1){n=arguments[1]}var o,i;if(typeof n==="undefined"){o=false}else{if(!re.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){i=arguments[2]}o=true}var a=typeof(X(e)||re.GetMethod(e,Q))!=="undefined";var u,f,s;if(a){f=re.IsConstructor(r)?Object(new r):[];var c=re.GetIterator(e);var l,p;s=0;while(true){l=re.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=typeof i==="undefined"?n(p,s):t(n,i,p,s)}f[s]=p}catch(v){re.IteratorClose(c,true);throw v}s+=1}u=s}else{var y=re.ToObject(e);u=re.ToLength(y.length);f=re.IsConstructor(r)?Object(new r(u)):new Array(u);var h;for(s=0;s2){f=arguments[2]}var s=typeof f==="undefined"?n:re.ToInteger(f);var c=s<0?A(n+s,0):R(s,n);var l=R(c-u,n-a);var p=1;if(u0){if(u in r){r[a]=r[u]}else{delete r[a]}u+=p;a+=p;l-=1}return r},fill:function fill(e){var t;if(arguments.length>1){t=arguments[1]}var r;if(arguments.length>2){r=arguments[2]}var n=re.ToObject(this);var o=re.ToLength(n.length);t=re.ToInteger(typeof t==="undefined"?0:t);r=re.ToInteger(typeof r==="undefined"?o:r);var i=t<0?A(o+t,0):R(t,o);var a=r<0?o+r:r;for(var u=i;u1?arguments[1]:null;for(var i=0,a;i1?arguments[1]:null;for(var i=0;i1&&typeof arguments[1]!=="undefined"){return re.Call(Ze,this,arguments)}else{return t(Ze,this,e)}})}var Ye=-(Math.pow(2,32)-1);var Qe=function(e,r){var n={length:Ye};n[r?(n.length>>>0)-1:0]=true;return a(function(){t(e,n,function(){throw new RangeError("should not reach here")},[]);return true})};if(!Qe(Array.prototype.forEach)){var et=Array.prototype.forEach;Z(Array.prototype,"forEach",function forEach(e){return re.Call(et,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.map)){var tt=Array.prototype.map;Z(Array.prototype,"map",function map(e){return re.Call(tt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.filter)){var rt=Array.prototype.filter;Z(Array.prototype,"filter",function filter(e){return re.Call(rt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.some)){var nt=Array.prototype.some;Z(Array.prototype,"some",function some(e){return re.Call(nt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.every)){var ot=Array.prototype.every;Z(Array.prototype,"every",function every(e){return re.Call(ot,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.reduce)){var it=Array.prototype.reduce;Z(Array.prototype,"reduce",function reduce(e){return re.Call(it,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.reduceRight,true)){var at=Array.prototype.reduceRight;Z(Array.prototype,"reduceRight",function reduceRight(e){return re.Call(at,this.length>=0?this:[],arguments)},true)}var ut=Number("0o10")!==8;var ft=Number("0b10")!==2;var st=y(De,function(e){return Number(e+0+e)===0});if(ut||ft||st){var ct=Number;var lt=/^0b[01]+$/i;var pt=/^0o[0-7]+$/i;var vt=lt.test.bind(lt);var yt=pt.test.bind(pt);var ht=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if(K.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if(K.primitive(t)){return t}}throw new TypeError("No default value")};var bt=ze.test.bind(ze);var gt=qe.test.bind(qe);var dt=function(){var e=function Number(t){var r;if(arguments.length>0){r=K.primitive(t)?t:ht(t,"number")}else{r=0}if(typeof r==="string"){r=re.Call(Le,r);if(vt(r)){r=parseInt(C(r,2),2)}else if(yt(r)){r=parseInt(C(r,2),8)}else if(bt(r)||gt(r)){r=NaN}}var n=this;var o=a(function(){ct.prototype.valueOf.call(n);return true});if(n instanceof e&&!o){return new ct(r)}return ct(r)};return e}();de(ct,dt,{});b(dt,{NaN:ct.NaN,MAX_VALUE:ct.MAX_VALUE,MIN_VALUE:ct.MIN_VALUE,NEGATIVE_INFINITY:ct.NEGATIVE_INFINITY,POSITIVE_INFINITY:ct.POSITIVE_INFINITY});Number=dt;O.redefine(S,"Number",dt)}var Ot=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:Ot,MIN_SAFE_INTEGER:-Ot,EPSILON:2.220446049250313e-16,parseInt:S.parseInt,parseFloat:S.parseFloat,isFinite:B,isInteger:function isInteger(e){return B(e)&&re.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&k(e)<=Number.MAX_SAFE_INTEGER},isNaN:V});h(Number,"parseInt",S.parseInt,Number.parseInt!==S.parseInt);if(![,1].find(function(e,t){return t===0})){Z(Array.prototype,"find",$e.find)}if([,1].findIndex(function(e,t){return t===0})!==0){Z(Array.prototype,"findIndex",$e.findIndex)}var mt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var wt=function ensureEnumerable(e,t){if(s&&mt(e,t)){Object.defineProperty(e,t,{enumerable:false})}};var jt=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o1){return NaN}if(t===-1){return-Infinity}if(t===1){return Infinity}if(t===0){return t}return.5*L((1+t)/(1-t))},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0;var n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=F(L(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var t=Number(e);var r=re.ToUint32(t);if(r===0){return 32}return Or?re.Call(Or,r):31-_(L(r+.5)*gr)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(V(t)){return NaN}if(!T(t)){return Infinity}if(t<0){t=-t}if(t>21){return F(t)/2}return(F(t)+F(-t))/2},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!T(t)||t===0){return t}if(k(t)>.5){return F(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o0?i/n*(i/n):i}}return n===Infinity?Infinity:n*D(r)},log2:function log2(e){return L(e)*gr},log10:function log10(e){return L(e)*dr},log1p:function log1p(e){var t=Number(e);if(t<-1||V(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(L(1+t)/(1+t-1))},sign:$,sinh:function sinh(e){var t=Number(e);if(!T(t)||t===0){return t}if(k(t)<1){return(Math.expm1(t)-Math.expm1(-t))/2}return(F(t-1)-F(-t-1))*br/2},tanh:function tanh(e){var t=Number(e);if(V(t)||t===0){return t}if(t>=20){return 1}if(t<=-20){return-1}return(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-_(-t):_(t)},imul:function imul(e,t){var r=re.ToUint32(e);var n=re.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||V(t)){return t}var r=$(t);var n=k(t);if(nyr||V(i)){return r*Infinity}return r*i}};b(Math,mr);h(Math,"log1p",mr.log1p,Math.log1p(-1e-17)!==-1e-17);h(Math,"asinh",mr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));h(Math,"tanh",mr.tanh,Math.tanh(-2e-17)!==-2e-17);h(Math,"acosh",mr.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);h(Math,"cbrt",mr.cbrt,Math.abs(1-Math.cbrt(1e-300)/1e-100)/Number.EPSILON>8);h(Math,"sinh",mr.sinh,Math.sinh(-2e-17)!==-2e-17);var wr=Math.expm1(10);h(Math,"expm1",mr.expm1,wr>22025.465794806718||wr<22025.465794806718);var jr=Math.round;var Sr=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var Tr=lr+1;var Ir=2*lr-1;var Er=[Tr,Ir].every(function(e){return Math.round(e)===e});h(Math,"round",function round(e){var t=_(e);var r=t===-1?-0:t+1;return e-t<.5?t:r},!Sr||!Er);O.preserveToString(Math.round,jr);var Pr=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=mr.imul;O.preserveToString(Math.imul,Pr)}if(Math.imul.length!==2){Z(Math,"imul",function imul(e,t){return re.Call(Pr,Math,arguments); +})}var Cr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}re.IsPromise=function(e){if(!re.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!re.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(re.IsCallable(t.resolve)&&re.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&re.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=re.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(re.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(i){n=i;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=re.IsCallable(e)?e:a;var d=re.IsCallable(t)?t:u;var O=n._promise;var m;if(O.state===f){if(O.reactionLength===0){O.fulfillReactionHandler0=g;O.rejectReactionHandler0=d;O.reactionCapability0=i}else{var w=3*(O.reactionLength-1);O[w+l]=g;O[w+p]=d;O[w+v]=i}O.reactionLength+=1}else if(O.state===s){m=O.result;h(g,i,m)}else if(O.state===c){m=O.result;h(d,i,m)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof Cr==="function"){b(S,{Promise:Cr});var Mr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var xr=!i(function(){S.Promise.reject(42).then(null,5).then(null,W)});var Nr=i(function(){S.Promise.call(3,W)});var Ar=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,W).then(null,W)}catch(n){return true}return t===r}(S.Promise);var Rr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var _r=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};_r.prototype=Promise.prototype;_r.all=Promise.all;var kr=a(function(){return!!_r.all([1,2])});if(!Mr||!xr||!Nr||Ar||!Rr||kr){Promise=Cr;Z(S,"Promise",Cr)}if(Promise.all.length!==1){var Fr=Promise.all;Z(Promise,"all",function all(e){return re.Call(Fr,this,arguments)})}if(Promise.race.length!==1){var Lr=Promise.race;Z(Promise,"race",function race(e){return re.Call(Lr,this,arguments)})}if(Promise.resolve.length!==1){var Dr=Promise.resolve;Z(Promise,"resolve",function resolve(e){return re.Call(Dr,this,arguments)})}if(Promise.reject.length!==1){var zr=Promise.reject;Z(Promise,"reject",function reject(e){return re.Call(zr,this,arguments)})}wt(Promise,"all");wt(Promise,"race");wt(Promise,"resolve");wt(Promise,"reject");me(Promise)}var qr=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Wr=qr(["z","a","bb"]);var Gr=qr(["z",1,"a","3",2]);if(s){var Hr=function fastkey(e){if(!Wr){return null}if(typeof e==="undefined"||e===null){return"^"+re.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Gr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var Vr=function emptyObject(){return Object.create?Object.create(null):{}};var Br=function addIterableToMap(e,n,o){if(r(o)||K.string(o)){l(o,function(e){if(!re.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.set;if(!re.IsCallable(a)){throw new TypeError("bad map")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!re.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(s){re.IteratorClose(i,true);throw s}}}}};var $r=function addIterableToSet(e,n,o){if(r(o)||K.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.add;if(!re.IsCallable(a)){throw new TypeError("bad set")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(s){re.IteratorClose(i,true);throw s}}}}};var Ur={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!re.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+re.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Ge()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Ge(n)}}this.i=void 0;return Ge()}};we(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=Te(this,Map,a,{_es6map:true,_head:null,_storage:Vr(),_size:0});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){Br(Map,e,arguments[0])}return e};a=u.prototype;O.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t=Hr(e);if(t!==null){var r=this._storage[t];if(r){return r.value}else{return}}var n=this._head;var i=n;while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Hr(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head;var n=r;while((n=n.next)!==r){if(re.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=Hr(e);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(re.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head;var n=r;var i=Hr(t);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}while((n=n.next)!==r){if(re.SameValueZero(n.key,t)){n.key=n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._size=0;this._storage=Vr();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});we(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!re.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+re.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=Te(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Vr()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){$r(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}else{var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new Ur.Map;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};O.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Hr(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Hr(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=Hr(e))!==null){var n=z(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Vr()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");u(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);we(i.prototype,i.prototype.values);return i}()};if(S.Map||S.Set){var Jr=a(function(){return new Map([[1,2]]).get(1)===2});if(!Jr){var Xr=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new Xr;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=m(Xr.prototype);h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,Xr)}var Kr=new Map;var Zr=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var Yr=Kr.set(1,2)===Kr;if(!Zr||!Yr){var Qr=Map.prototype.set;Z(Map.prototype,"set",function set(e,r){t(Qr,this,e===0?0:e,r);return this})}if(!Zr){var en=Map.prototype.get;var tn=Map.prototype.has;b(Map.prototype,{get:function get(e){return t(en,this,e===0?0:e)},has:function has(e){return t(tn,this,e===0?0:e)}},true);O.preserveToString(Map.prototype.get,en);O.preserveToString(Map.prototype.has,tn)}var rn=new Set;var nn=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(rn);var on=rn.add(1)===rn;if(!nn||!on){var an=Set.prototype.add;Set.prototype.add=function add(e){t(an,this,e===0?0:e);return this};O.preserveToString(Set.prototype.add,an)}if(!nn){var un=Set.prototype.has;Set.prototype.has=function has(e){return t(un,this,e===0?0:e)};O.preserveToString(Set.prototype.has,un);var fn=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(fn,this,e===0?0:e)};O.preserveToString(Set.prototype["delete"],fn)}var sn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var cn=Object.setPrototypeOf&&!sn;var ln=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||cn||!ln){var pn=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new pn;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=pn.prototype;h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,pn)}var vn=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var yn=Object.setPrototypeOf&&!vn;var hn=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||yn||!hn){var bn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new bn;if(arguments.length>0){$r(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=bn.prototype;h(S.Set.prototype,"constructor",S.Set,true);O.preserveToString(S.Set,bn)}var gn=new S.Map;var dn=!a(function(){return gn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||gn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof gn.keys().next!=="function"||dn||!sn){b(S,{Map:Ur.Map,Set:Ur.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}we(Object.getPrototypeOf((new S.Map).keys()));we(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var On=S.Set.prototype.has;Z(S.Set.prototype,"has",function has(e){return t(On,this,e)})}}b(S,Ur);me(S.Map);me(S.Set)}var mn=function throwUnlessTargetIsObject(e){if(!re.TypeIsObject(e)){throw new TypeError("target must be an object")}};var wn={apply:function apply(){return re.Call(re.Call,null,arguments)},construct:function construct(e,t){if(!re.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!re.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return re.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){mn(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){mn(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(wn,{ownKeys:function ownKeys(e){mn(e);var t=Object.getOwnPropertyNames(e);if(re.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var jn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(wn,{isExtensible:function isExtensible(e){mn(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){mn(e);return jn(function(){Object.preventExtensions(e)})}})}if(s){var Sn=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return Sn(o,t,r)}if("value"in n){return n.value}if(n.get){return re.Call(n.get,r)}return void 0};var Tn=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return Tn(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!re.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ee.defineProperty(o,r,{value:n})}else{return ee.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(wn,{defineProperty:function defineProperty(e,t,r){mn(e);return jn(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){mn(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){mn(e);var r=arguments.length>2?arguments[2]:e;return Sn(e,t,r)},set:function set(e,t,r){mn(e);var n=arguments.length>3?arguments[3]:e;return Tn(e,t,r,n)}})}if(Object.getPrototypeOf){var In=Object.getPrototypeOf;wn.getPrototypeOf=function getPrototypeOf(e){mn(e);return In(e)}}if(Object.setPrototypeOf&&wn.getPrototypeOf){var En=function(e,t){var r=t;while(r){if(e===r){return true}r=wn.getPrototypeOf(r)}return false};Object.assign(wn,{setPrototypeOf:function setPrototypeOf(e,t){mn(e);if(t!==null&&!re.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ee.getPrototypeOf(e)){return true}if(ee.isExtensible&&!ee.isExtensible(e)){return false}if(En(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Pn=function(e,t){if(!re.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){Z(S.Reflect,e,t)}}};Object.keys(wn).forEach(function(e){Pn(e,wn[e])});var Cn=S.Reflect.getPrototypeOf;if(c&&Cn&&Cn.name!=="getPrototypeOf"){Z(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(Cn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){Z(S.Reflect,"setPrototypeOf",wn.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){Z(S.Reflect,"defineProperty",wn.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){Z(S.Reflect,"construct",wn.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Mn=Date.prototype.toString;var xn=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return re.Call(Mn,this)};Z(Date.prototype,"toString",xn)}var Nn={anchor:function anchor(e){return re.CreateHTML(this,"a","name",e)},big:function big(){return re.CreateHTML(this,"big","","")},blink:function blink(){return re.CreateHTML(this,"blink","","")},bold:function bold(){return re.CreateHTML(this,"b","","")},fixed:function fixed(){return re.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return re.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return re.CreateHTML(this,"font","size",e)},italics:function italics(){return re.CreateHTML(this,"i","","")},link:function link(e){return re.CreateHTML(this,"a","href",e)},small:function small(){return re.CreateHTML(this,"small","","")},strike:function strike(){return re.CreateHTML(this,"strike","","")},sub:function sub(){return re.CreateHTML(this,"sub","","")},sup:function sub(){return re.CreateHTML(this,"sup","","")}};l(Object.keys(Nn),function(e){var r=String.prototype[e];var n=false;if(re.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){Z(String.prototype,e,Nn[e])}});var An=function(){if(!Y){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e(G())!=="undefined"){return true}if(e([G()])!=="[null]"){return true}var t={a:G()};t[G()]=true;if(e(t)!=="{}"){return true}return false}();var Rn=a(function(){if(!Y){return true}return JSON.stringify(Object(G()))==="{}"&&JSON.stringify([Object(G())])==="[{}]"});if(An||!Rn){var _n=JSON.stringify;Z(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=re.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(K.symbol(n)){return St({})(n)}else{return n}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return _n.apply(this,o)})}return S}); \ No newline at end of file diff --git a/frontend/documentation/js/libs/htmlparser.js b/frontend/documentation/js/libs/htmlparser.js new file mode 100644 index 0000000..522b39c --- /dev/null +++ b/frontend/documentation/js/libs/htmlparser.js @@ -0,0 +1,23 @@ +/*********************************************** +Copyright 2010 - 2012 Chris Winberry . All rights reserved. +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. +***********************************************/ +/* v2.0.0 */ + +!function(){function t(t,e){var a=function(){};a.prototype=e.prototype,t.super_=e,t.prototype=new a,t.prototype.constructor=t}function e(t,e){this._options=e||{},this._validateBuilder(t);this._builder=t,this.reset()}function a(t,e){this.reset(),this._options=e||{},void 0===this._options.ignoreWhitespace&&(this._options.ignoreWhitespace=!1),void 0===this._options.includeLocation&&(this._options.includeLocation=!1),void 0===this._options.verbose&&(this._options.verbose=!0),void 0===this._options.enforceEmptyTags&&(this._options.enforceEmptyTags=!0),void 0===this._options.caseSensitiveTags&&(this._options.caseSensitiveTags=!1),void 0===this._options.caseSensitiveAttr&&(this._options.caseSensitiveAttr=!1),"function"==typeof t&&(this._callback=t)}function n(t){n.super_.call(this,t,{ignoreWhitespace:!0,verbose:!1,enforceEmptyTags:!1,caseSensitiveTags:!0})}var i;if("undefined"!=typeof module&&void 0!==module.exports)i=module.exports;else{if(i={},this.Tautologistics||(this.Tautologistics={}),this.Tautologistics.NodeHtmlParser)return;this.Tautologistics.NodeHtmlParser=i}var s={Text:"text",Tag:"tag",Attr:"attr",CData:"cdata",Doctype:"doctype",Comment:"comment"};"undefined"!=typeof module&&void 0!==module.exports&&(t(e,require("stream")),e.prototype.writable=!0,e.prototype.write=function(t){t instanceof Buffer&&(t=t.toString()),this.parseChunk(t)},e.prototype.end=function(t){arguments.length&&this.write(t),this.writable=!1,this.done()},e.prototype.destroy=function(){this.writable=!1}),e.prototype.reset=function(){this._state={mode:s.Text,pos:0,data:null,pendingText:null,pendingWrite:null,lastTag:null,isScript:!1,needData:!1,output:[],done:!1},this._builder.reset()},e.prototype.parseChunk=function(t){for(this._state.needData=!1,this._state.data=null!==this._state.data?this._state.data.substr(this.pos)+t:t;this._state.pos\/]+)(\s*)\??(>?)/g,e.prototype._parseTag=function(){var t=this._state;e.re_parseTag.lastIndex=t.pos;var a=e.re_parseTag.exec(t.data);if(a){if(!a[1]&&"!--"===a[2].substr(0,3))return t.mode=s.Comment,void(t.pos+=3);if(!a[1]&&"![CDATA["===a[2].substr(0,8))return t.mode=s.CData,void(t.pos+=8);if(!a[1]&&"!DOCTYPE"===a[2].substr(0,8))return t.mode=s.Doctype,void(t.pos+=8);if(!t.done&&t.pos+a[0].length===t.data.length)return void(t.needData=!0);var n;">"===a[4]?(t.mode=s.Text,n=a[0].substr(0,a[0].length-1)):(t.mode=s.Attr,n=a[0]),t.pos+=a[0].length;var i={type:s.Tag,name:a[1]+a[2],raw:n};t.mode===s.Attr&&(t.lastTag=i),"script"===i.name.toLowerCase()?t.isScript=!0:"/script"===i.name.toLowerCase()&&(t.isScript=!1),t.mode===s.Attr?this._writePending(i):this._write(i)}else t.needData=!0},e.re_parseAttr_findName=/\s*([^=<>\s'"\/]+)\s*/g,e.prototype._parseAttr_findName=function(){e.re_parseAttr_findName.lastIndex=this._state.pos;var t=e.re_parseAttr_findName.exec(this._state.data);return t?this._state.pos+t[0].length!==e.re_parseAttr_findName.lastIndex?null:{match:t[0],name:t[1]}:null},e.re_parseAttr_findValue=/\s*=\s*(?:'([^']*)'|"([^"]*)"|([^'"\s\/>]+))\s*/g,e.re_parseAttr_findValue_last=/\s*=\s*['"]?(.*)$/g,e.prototype._parseAttr_findValue=function(){var t=this._state;e.re_parseAttr_findValue.lastIndex=t.pos;var a=e.re_parseAttr_findValue.exec(t.data);return a?t.pos+a[0].length!==e.re_parseAttr_findValue.lastIndex?null:{match:a[0],value:a[1]||a[2]||a[3]}:t.done?(e.re_parseAttr_findValue_last.lastIndex=t.pos,a=e.re_parseAttr_findValue_last.exec(t.data),a?{match:a[0],value:""!==a[1]?a[1]:null}:null):null},e.re_parseAttr_splitValue=/\s*=\s*['"]?/g,e.re_parseAttr_selfClose=/(\s*\/\s*)(>?)/g,e.prototype._parseAttr=function(){var t=this._state,a=this._parseAttr_findName(t);if(a&&"?"!==a.name){if(!t.done&&t.pos+a.match.length===t.data.length)return t.needData=!0,null;t.pos+=a.match.length;var n=this._parseAttr_findValue(t);t.data.indexOf(" ",t.pos);if(n){if(!t.done&&t.pos+n.match.length===t.data.length)return t.needData=!0,void(t.pos-=a.match.length);t.pos+=n.match.length}else if(t.data.indexOf(" ",t.pos-1))n={match:"",value:a.name};else{if(e.re_parseAttr_splitValue.lastIndex=t.pos,e.re_parseAttr_splitValue.exec(t.data))return t.needData=!0,void(t.pos-=a.match.length);n={match:"",value:null}}t.lastTag.raw+=a.match+n.match,this._writePending({type:s.Attr,name:a.name,data:n.value})}else{e.re_parseAttr_selfClose.lastIndex=t.pos;var i=e.re_parseAttr_selfClose.exec(t.data);if(i&&i.index===t.pos){if(!t.done&&!i[2]&&t.pos+i[0].length===t.data.length)return void(t.needData=!0);t.lastTag.raw+=i[1],this._write({type:s.Tag,name:"/"+t.lastTag.name,raw:null}),t.pos+=i[1].length}var r=t.data.indexOf(">",t.pos);if(r<0){if(t.done)return t.lastTag.raw+=t.data.substr(t.pos),void(t.pos=t.data.length);t.needData=!0}else t.pos=r+1,t.mode=s.Text}},e.re_parseCData_findEnding=/\]{1,2}$/,e.prototype._parseCData=function(){var t=this._state,a=t.data.indexOf("]]>",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0){if(e.re_parseCData_findEnding.lastIndex=t.pos,e.re_parseCData_findEnding.exec(t.data))return void(t.needData=!0);t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0}else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.CData,data:n}),t.mode=s.Text,t.pos=a+3}},e.prototype._parseDoctype=function(){var t=this._state,a=t.data.indexOf(">",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0)e.re_parseCData_findEnding.lastIndex=t.pos,t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0;else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.Doctype,data:n}),t.mode=s.Text,t.pos=a+1}},e.re_parseComment_findEnding=/\-{1,2}$/,e.prototype._parseComment=function(){var t=this._state,a=t.data.indexOf("--\x3e",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0){if(e.re_parseComment_findEnding.lastIndex=t.pos,e.re_parseComment_findEnding.exec(t.data))return void(t.needData=!0);t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0}else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.Comment,data:n}),t.mode=s.Text,t.pos=a+3}},a._emptyTags={area:1,base:1,basefont:1,br:1,col:1,frame:1,hr:1,img:1,input:1,isindex:1,link:1,meta:1,param:1,embed:1,"?xml":1},a.reWhitespace=/^\s*$/,a.prototype.dom=null,a.prototype.reset=function(){this.dom=[],this._done=!1,this._tagStack=[],this._lastTag=null,this._tagStack.last=function(){return this.length?this[this.length-1]:null},this._line=1,this._col=1},a.prototype.done=function(){this._done=!0,this.handleCallback(null)},a.prototype.error=function(t){this.handleCallback(t)},a.prototype.handleCallback=function(t){if("function"==typeof this._callback)this._callback(t,this.dom);else if(t)throw t},a.prototype.isEmptyTag=function(t){var e=t.name.toLowerCase();return"?"==e.charAt(0)||("/"==e.charAt(0)&&(e=e.substring(1)),this._options.enforceEmptyTags&&!!a._emptyTags[e])},a.prototype._getLocation=function(){return{line:this._line,col:this._col}},a.prototype._updateLocation=function(t){var e=t.type===s.Tag?t.raw:t.data;if(null!==e){var a=e.split("\n");this._line+=a.length-1,a.length>1&&(this._col=1),this._col+=a[a.length-1].length,t.type===s.Tag?this._col+=2:t.type===s.Comment?this._col+=7:t.type===s.CData&&(this._col+=12)}},a.prototype._copyElement=function(t){var e={type:t.type};if(this._options.verbose&&void 0!==t.raw&&(e.raw=t.raw),void 0!==t.name)switch(t.type){case s.Tag:e.name=this._options.caseSensitiveTags?t.name:t.name.toLowerCase();break;case s.Attr:e.name=this._options.caseSensitiveAttr?t.name:t.name.toLowerCase();break;default:e.name=this._options.caseSensitiveTags?t.name:t.name.toLowerCase()}return void 0!==t.data&&(e.data=t.data),t.location&&(e.location={line:t.location.line,col:t.location.col}),e},a.prototype.write=function(t){if(this._done&&this.handleCallback(new Error("Writing to the builder after done() called is not allowed without a reset()")),this._options.includeLocation&&t.type!==s.Attr&&(t.location=this._getLocation(),this._updateLocation(t)),t.type!==s.Text||!this._options.ignoreWhitespace||!a.reWhitespace.test(t.data)){var e,n;if(this._tagStack.last())if(t.type===s.Tag)if("/"==t.name.charAt(0)){var i=this._options.caseSensitiveTags?t.name.substring(1):t.name.substring(1).toLowerCase();if(!this.isEmptyTag(t)){for(var r=this._tagStack.length-1;r>-1&&this._tagStack[r--].name!=i;);if(r>-1||this._tagStack[0].name==i)for(;r=0&&s.length>=n)return s;if(a&&e.children)i=e.children;else{if(!(e instanceof Array))return s;i=e}for(var d=0;d=0&&s.length>=n));d++);return s},getElementById:function(t,e,a){var n=r.getElements({id:t},e,a,1);return n.length?n[0]:null},getElementsByTagName:function(t,e,a,n){return r.getElements({tag_name:t},e,a,n)},getElementsByTagType:function(t,e,a,n){return r.getElements({tag_type:t},e,a,n)}};i.Parser=e,i.HtmlBuilder=a,i.RssBuilder=n,i.ElementType=s,i.DomUtils=r}(); diff --git a/frontend/documentation/js/libs/innersvg.js b/frontend/documentation/js/libs/innersvg.js new file mode 100644 index 0000000..b1099de --- /dev/null +++ b/frontend/documentation/js/libs/innersvg.js @@ -0,0 +1,9 @@ +/** + * innerHTML property for SVGElement + * Copyright(c) 2010, Jeff Schiller + * + * Licensed under the Apache License, Version 2 + * + * Minor modifications by Chris Price to only polyfill when required. + */ +!function(e){if(e&&!("innerHTML"in e.prototype)){var t=function(e,r){var i=e.nodeType;if(3==i)r.push(e.textContent.replace(/&/,"&").replace(/",">"));else if(1==i){if(r.push("<",e.tagName),e.hasAttributes())for(var n=e.attributes,s=0,o=n.length;s");for(var h=e.childNodes,s=0,o=h.length;s")}else r.push("/>")}else{if(8!=i)throw"Error serializing XML. Unhandled node of type: "+i;r.push("\x3c!--",e.nodeValue,"--\x3e")}};Object.defineProperty(e.prototype,"innerHTML",{get:function(){for(var e=[],r=this.firstChild;r;)t(r,e),r=r.nextSibling;return e.join("")},set:function(e){for(;this.firstChild;)this.removeChild(this.firstChild);try{var t=new DOMParser;t.async=!1,sXML=""+e+"";for(var r=t.parseFromString(sXML,"text/xml").documentElement.firstChild;r;)this.appendChild(this.ownerDocument.importNode(r,!0)),r=r.nextSibling}catch(e){throw new Error("Error parsing XML string")}}})}}((0,eval)("this").SVGElement); \ No newline at end of file diff --git a/frontend/documentation/js/libs/lit-html.js b/frontend/documentation/js/libs/lit-html.js new file mode 100644 index 0000000..743deea --- /dev/null +++ b/frontend/documentation/js/libs/lit-html.js @@ -0,0 +1 @@ +"use strict";function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _get(target,property,receiver){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(receiver)}return desc.value}}return _get(target,property,receiver||target)}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break}return object}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(iter){if(Symbol.iterator in Object(iter)||Object.prototype.toString.call(iter)==="[object Arguments]")return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr)){for(var i=0,arr2=new Array(arr.length);i2&&arguments[2]!==undefined?arguments[2]:null;var i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var n=e;for(;n!==s;){var _e=n.nextSibling;t.insertBefore(n,i),n=_e}},o=function o(t,e){var s=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var i=e;for(;i!==s;){var _e2=i.nextSibling;t.removeChild(i),i=_e2}},r={},a={},l="{{lit-".concat(String(Math.random()).slice(2),"}}"),h="\x3c!--".concat(l,"--\x3e"),d=new RegExp("".concat(l,"|").concat(h)),c="$lit$";var u=function u(t,e){var _this=this;_classCallCheck(this,u);this.parts=[],this.element=e;var s=-1,i=0;var n=[],o=function o(e){var r=e.content,a=document.createTreeWalker(r,133,null,!1);var h=0;for(;a.nextNode();){s++;var _e3=a.currentNode;if(1===_e3.nodeType){if(_e3.hasAttributes()){var _n=_e3.attributes;var _o=0;for(var _t=0;_t<_n.length;_t++){_n[_t].value.indexOf(l)>=0&&_o++}for(;_o-- >0;){var _n2=t.strings[i],_o2=g.exec(_n2)[2],_r=_o2.toLowerCase()+c,_a=_e3.getAttribute(_r).split(d);_this.parts.push({type:"attribute",index:s,name:_o2,strings:_a}),_e3.removeAttribute(_r),i+=_a.length-1}}"TEMPLATE"===_e3.tagName&&o(_e3)}else if(3===_e3.nodeType){var _t2=_e3.data;if(_t2.indexOf(l)>=0){var _o3=_e3.parentNode,_r2=_t2.split(d),_a2=_r2.length-1;for(var _t3=0;_t3<_a2;_t3++){_o3.insertBefore(""===_r2[_t3]?m():document.createTextNode(_r2[_t3]),_e3),_this.parts.push({type:"node",index:++s})}""===_r2[_a2]?(_o3.insertBefore(m(),_e3),n.push(_e3)):_e3.data=_r2[_a2],i+=_a2}}else if(8===_e3.nodeType)if(_e3.data===l){var _t4=_e3.parentNode;null!==_e3.previousSibling&&s!==h||(s++,_t4.insertBefore(m(),_e3)),h=s,_this.parts.push({type:"node",index:s}),null===_e3.nextSibling?_e3.data="":(n.push(_e3),s--),i++}else{var _t5=-1;for(;-1!==(_t5=_e3.data.indexOf(l,_t5+1));){_this.parts.push({type:"node",index:-1})}}}};o(e);for(var _i=0;_i=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;var v=function(){function v(t,e,s){_classCallCheck(this,v);this._parts=[],this.template=t,this.processor=e,this.options=s}_createClass(v,[{key:"update",value:function update(t){var e=0;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=this._parts[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _s=_step.value;void 0!==_s&&_s.setValue(t[e]),e++}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=this._parts[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var _t7=_step2.value;void 0!==_t7&&_t7.commit()}}catch(err){_didIteratorError2=true;_iteratorError2=err}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return!=null){_iterator2.return()}}finally{if(_didIteratorError2){throw _iteratorError2}}}}},{key:"_clone",value:function _clone(){var _this2=this;var t=i?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=this.template.parts;var s=0,n=0;var o=function o(t){var i=document.createTreeWalker(t,133,null,!1);var r=i.nextNode();for(;s".concat(_get(_getPrototypeOf(x.prototype),"getHTML",this).call(this),"")}},{key:"getTemplateElement",value:function getTemplateElement(){var t=_get(_getPrototypeOf(x.prototype),"getTemplateElement",this).call(this),e=t.content,s=e.firstChild;return e.removeChild(s),n(e,s.firstChild),t}}]);return x}(f);var _=function _(t){return null===t||!("object"==_typeof(t)||"function"==typeof t)};var y=function(){function y(t,e,s){_classCallCheck(this,y);this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(var _t11=0;_t110&&arguments[0]!==undefined?arguments[0]:this.startNode;o(this.startNode.parentNode,t.nextSibling,this.endNode)}}]);return V}();var b=function(){function b(t,e,s){_classCallCheck(this,b);if(this.value=void 0,this._pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}_createClass(b,[{key:"setValue",value:function setValue(t){this._pendingValue=t}},{key:"commit",value:function commit(){for(;s(this._pendingValue);){var _t15=this._pendingValue;this._pendingValue=r,_t15(this)}if(this._pendingValue===r)return;var t=!!this._pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name)),this.value=t,this._pendingValue=r}}]);return b}();var w=function(_y){_inherits(w,_y);function w(t,e,s){var _this3;_classCallCheck(this,w);_this3=_possibleConstructorReturn(this,_getPrototypeOf(w).call(this,t,e,s)),_this3.single=2===s.length&&""===s[0]&&""===s[1];return _this3}_createClass(w,[{key:"_createPart",value:function _createPart(){return new T(this)}},{key:"_getValue",value:function _getValue(){return this.single?this.parts[0].value:_get(_getPrototypeOf(w.prototype),"_getValue",this).call(this)}},{key:"commit",value:function commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}]);return w}(y);var T=function(_N){_inherits(T,_N);function T(){_classCallCheck(this,T);return _possibleConstructorReturn(this,_getPrototypeOf(T).apply(this,arguments))}return T}(N);var E=!1;try{var _t16={get capture(){return E=!0,!1}};window.addEventListener("test",_t16,_t16),window.removeEventListener("test",_t16,_t16)}catch(t){}var A=function(){function A(t,e,s){var _this4=this;_classCallCheck(this,A);this.value=void 0,this._pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this._boundHandleEvent=function(t){return _this4.handleEvent(t)}}_createClass(A,[{key:"setValue",value:function setValue(t){this._pendingValue=t}},{key:"commit",value:function commit(){for(;s(this._pendingValue);){var _t17=this._pendingValue;this._pendingValue=r,_t17(this)}if(this._pendingValue===r)return;var t=this._pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),n=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this._boundHandleEvent,this._options),n&&(this._options=P(t),this.element.addEventListener(this.eventName,this._boundHandleEvent,this._options)),this.value=t,this._pendingValue=r}},{key:"handleEvent",value:function handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}]);return A}();var P=function P(t){return t&&(E?{capture:t.capture,passive:t.passive,once:t.once}:t.capture)};var S=function(){function S(){_classCallCheck(this,S)}_createClass(S,[{key:"handleAttributeExpressions",value:function handleAttributeExpressions(t,e,s,i){var n=e[0];if("."===n){return new w(t,e.slice(1),s).parts}return"@"===n?[new A(t,e.slice(1),i.eventContext)]:"?"===n?[new b(t,e.slice(1),s)]:new y(t,e,s).parts}},{key:"handleTextExpression",value:function handleTextExpression(t){return new V(t)}}]);return S}();var C=new S;function M(t){var e=L.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},L.set(t.type,e));var s=e.stringsArray.get(t.strings);if(void 0!==s)return s;var i=t.strings.join(l);return void 0===(s=e.keyString.get(i))&&(s=new u(t,t.getTemplateElement()),e.keyString.set(i,s)),e.stringsArray.set(t.strings,s),s}var L=new Map,k=new WeakMap;(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.0.0");t.html=function(t){for(var _len=arguments.length,e=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){e[_key-1]=arguments[_key]}return new f(t,e,"html",C)},t.svg=function(t){for(var _len2=arguments.length,e=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){e[_key2-1]=arguments[_key2]}return new x(t,e,"svg",C)},t.DefaultTemplateProcessor=S,t.defaultTemplateProcessor=C,t.directive=function(t){return function(){var i=t.apply(void 0,arguments);return e.set(i,!0),i}},t.isDirective=s,t.removeNodes=o,t.reparentNodes=n,t.noChange=r,t.nothing=a,t.AttributeCommitter=y,t.AttributePart=N,t.BooleanAttributePart=b,t.EventPart=A,t.isPrimitive=_,t.NodePart=V,t.PropertyCommitter=w,t.PropertyPart=T,t.parts=k,t.render=function(t,e,s){var i=k.get(e);void 0===i&&(o(e,e.firstChild),k.set(e,i=new V(Object.assign({templateFactory:M},s))),i.appendInto(e)),i.setValue(t),i.commit()},t.templateCaches=L,t.templateFactory=M,t.TemplateInstance=v,t.SVGTemplateResult=x,t.TemplateResult=f,t.createMarker=m,t.isTemplatePartActive=p,t.Template=u,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/frontend/documentation/js/libs/prism.js b/frontend/documentation/js/libs/prism.js new file mode 100644 index 0000000..bb9d7eb --- /dev/null +++ b/frontend/documentation/js/libs/prism.js @@ -0,0 +1,46 @@ +/* PrismJS 1.23.0 +https://prismjs.com/download.html?#themes=prism&languages=markup+css+clike+javascript+apacheconf+aspnet+bash+c+csharp+cpp+coffeescript+dart+docker+elm+git+go+graphql+handlebars+haskell+http+ignore+java+json+kotlin+less+markdown+markup-templating+nginx+php+powershell+ruby+rust+sass+scss+sql+swift+typescript+wasm+yaml&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */ +var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(u){var c=/\blang(?:uage)?-([\w-]+)\b/i,n=0,e={},M={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof W?new W(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=l.reach);y+=m.value.length,m=m.next){var b=m.value;if(t.length>n.length)return;if(!(b instanceof W)){var k,x=1;if(h){if(!(k=z(v,y,n,f)))break;var w=k.index,A=k.index+k[0].length,P=y;for(P+=m.value.length;P<=w;)m=m.next,P+=m.value.length;if(P-=m.value.length,y=P,m.value instanceof W)continue;for(var E=m;E!==t.tail&&(Pl.reach&&(l.reach=N);var j=m.prev;O&&(j=I(t,j,O),y+=O.length),q(t,j,x);var C=new W(o,g?M.tokenize(S,g):S,d,S);if(m=I(t,j,C),L&&I(t,m,L),1l.reach&&(l.reach=_.reach)}}}}}}(e,a,n,a.head,0),function(e){var n=[],t=e.head.next;for(;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=M.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=M.hooks.all[e];if(t&&t.length)for(var r,a=0;r=t[a++];)r(n)}},Token:W};function W(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function z(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function i(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function I(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function q(e,n,t){for(var r=n.next,a=0;a"+a.content+""},!u.document)return u.addEventListener&&(M.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),t=n.language,r=n.code,a=n.immediateClose;u.postMessage(M.highlight(r,M.languages[t],t)),a&&u.close()},!1)),M;var t=M.util.currentScript();function r(){M.manual||M.highlightAll()}if(t&&(M.filename=t.src,t.hasAttribute("data-manual")&&(M.manual=!0)),!M.manual){var a=document.readyState;"loading"===a||"interactive"===a&&t&&t.defer?document.addEventListener("DOMContentLoaded",r):window.requestAnimationFrame?window.requestAnimationFrame(r):window.setTimeout(r,16)}return M}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); +Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,function(){return a}),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; +!function(s){var e=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:RegExp("[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),string:{pattern:e,greedy:!0},property:/(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); +Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; +Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; +Prism.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^\s*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}; +!function(s){function a(e,s){return e.replace(/<<(\d+)>>/g,function(e,n){return"(?:"+s[+n]+")"})}function t(e,n,s){return RegExp(a(e,n),s||"")}function e(e,n){for(var s=0;s>/g,function(){return"(?:"+e+")"});return e.replace(/<>/g,"[^\\s\\S]")}var n="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface struct",r="add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where",o="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var d=l(i),p=RegExp(l(n+" "+i+" "+r+" "+o)),c=l(i+" "+r+" "+o),u=l(n+" "+i+" "+o),g=e("<(?:[^<>;=+\\-*/%&|^]|<>)*>",2),b=e("\\((?:[^()]|<>)*\\)",2),h="@?\\b[A-Za-z_]\\w*\\b",f=a("<<0>>(?:\\s*<<1>>)?",[h,g]),m=a("(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*",[c,f]),k="\\[\\s*(?:,\\s*)*\\]",y=a("<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?",[m,k]),w=a("(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?",[a("\\(<<0>>+(?:,<<0>>+)+\\)",[a("[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>",[g,b,k])]),m,k]),v={keyword:p,punctuation:/[<>()?,.:[\]]/},x="'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'",$='"(?:\\\\.|[^\\\\"\r\n])*"';s.languages.csharp=s.languages.extend("clike",{string:[{pattern:t("(^|[^$\\\\])<<0>>",['@"(?:""|\\\\[^]|[^\\\\"])*"(?!")']),lookbehind:!0,greedy:!0},{pattern:t("(^|[^@$\\\\])<<0>>",[$]),lookbehind:!0,greedy:!0},{pattern:RegExp(x),greedy:!0,alias:"character"}],"class-name":[{pattern:t("(\\busing\\s+static\\s+)<<0>>(?=\\s*;)",[m]),lookbehind:!0,inside:v},{pattern:t("(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)",[h,w]),lookbehind:!0,inside:v},{pattern:t("(\\busing\\s+)<<0>>(?=\\s*=)",[h]),lookbehind:!0},{pattern:t("(\\b<<0>>\\s+)<<1>>",[d,f]),lookbehind:!0,inside:v},{pattern:t("(\\bcatch\\s*\\(\\s*)<<0>>",[m]),lookbehind:!0,inside:v},{pattern:t("(\\bwhere\\s+)<<0>>",[h]),lookbehind:!0},{pattern:t("(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>",[y]),lookbehind:!0,inside:v},{pattern:t("\\b<<0>>(?=\\s+(?!<<1>>)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))",[w,u,h]),inside:v}],keyword:p,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),s.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),s.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:t("([(,]\\s*)<<0>>(?=\\s*:)",[h]),lookbehind:!0,alias:"punctuation"}}),s.languages.insertBefore("csharp","class-name",{namespace:{pattern:t("(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])",[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:t("(\\b(?:default|typeof|sizeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))",[b]),lookbehind:!0,alias:"class-name",inside:v},"return-type":{pattern:t("<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))",[w,m]),inside:v,alias:"class-name"},"constructor-invocation":{pattern:t("(\\bnew\\s+)<<0>>(?=\\s*[[({])",[w]),lookbehind:!0,inside:v,alias:"class-name"},"generic-method":{pattern:t("<<0>>\\s*<<1>>(?=\\s*\\()",[h,g]),inside:{function:t("^<<0>>",[h]),generic:{pattern:RegExp(g),alias:"class-name",inside:v}}},"type-list":{pattern:t("\\b((?:<<0>>\\s+<<1>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>)(?:\\s*,\\s*(?:<<3>>|<<4>>))*(?=\\s*(?:where|[{;]|=>|$))",[d,f,h,w,p.source]),lookbehind:!0,inside:{keyword:p,"class-name":{pattern:RegExp(w),greedy:!0,inside:v},punctuation:/,/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var _=$+"|"+x,B=a("/(?![*/])|//[^\r\n]*[\r\n]|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>",[_]),E=e(a("[^\"'/()]|<<0>>|\\(<>*\\)",[B]),2),R="\\b(?:assembly|event|field|method|module|param|property|return|type)\\b",P=a("<<0>>(?:\\s*\\(<<1>>*\\))?",[m,E]);s.languages.insertBefore("csharp","class-name",{attribute:{pattern:t("((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])",[R,P]),lookbehind:!0,greedy:!0,inside:{target:{pattern:t("^<<0>>(?=\\s*:)",[R]),alias:"keyword"},"attribute-arguments":{pattern:t("\\(<<0>>*\\)",[E]),inside:s.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var z=":[^}\r\n]+",S=e(a("[^\"'/()]|<<0>>|\\(<>*\\)",[B]),2),j=a("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[S,z]),A=e(a("[^\"'/()]|/(?!\\*)|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>|\\(<>*\\)",[_]),2),F=a("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[A,z]);function U(e,n){return{interpolation:{pattern:t("((?:^|[^{])(?:\\{\\{)*)<<0>>",[e]),lookbehind:!0,inside:{"format-string":{pattern:t("(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)",[n,z]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:s.languages.csharp}}},string:/[\s\S]+/}}s.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:t('(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[^]|\\{\\{|<<0>>|[^\\\\{"])*"',[j]),lookbehind:!0,greedy:!0,inside:U(j,S)},{pattern:t('(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"',[F]),lookbehind:!0,greedy:!0,inside:U(F,A)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp; +Prism.languages.aspnet=Prism.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/i,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:Prism.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/i,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/i,alias:"tag"},rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,Prism.languages.insertBefore("inside","punctuation",{directive:Prism.languages.aspnet.directive},Prism.languages.aspnet.tag.inside["attr-value"]),Prism.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),Prism.languages.insertBefore("aspnet",Prism.languages.javascript?"script":"tag",{"asp-script":{pattern:/(]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:Prism.languages.csharp||{}}}); +!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},a={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:a},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:a.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=a.variable[1].inside,o=0;o>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete Prism.languages.c.boolean; +!function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n="\\b(?!)\\w+(?:\\s*\\.\\s*\\w+)*\\b".replace(//g,function(){return t.source});e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp("(\\b(?:class|concept|enum|struct|typename)\\s+)(?!)\\w+".replace(//g,function(){return t.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp('(\\b(?:module|import)\\s+)(?:"(?:\\\\(?:\r\n|[^])|[^"\\\\\r\n])*"|<[^<>\r\n]*>|'+"(?:\\s*:\\s*)?|:\\s*".replace(//g,function(){return n})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b[a-z_]\w*\s*<(?:[^<>]|<(?:[^<>])*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(Prism); +!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(Prism); +!function(e){var a=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],t="(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp(t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}};e.languages.dart=e.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],"class-name":[s,{pattern:RegExp(t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])"),lookbehind:!0,inside:s.inside}],keyword:a,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),e.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}}),e.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":s,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(Prism); +!function(e){var r="(?:[ \t]+(?![ \t])(?:)?|)".replace(//g,function(){return"\\\\[\r\n](?:\\s|\\\\[\r\n]|#.*(?!.))*(?![\\s#]|\\\\[\r\n])"}),n="\"(?:[^\"\\\\\r\n]|\\\\(?:\r\n|[^]))*\"|'(?:[^'\\\\\r\n]|\\\\(?:\r\n|[^]))*'",t="--[\\w-]+=(?:|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)".replace(//g,function(){return n}),o={pattern:RegExp(n),greedy:!0},i={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function a(e,n){return e=e.replace(//g,function(){return t}).replace(//g,function(){return r}),RegExp(e,n)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:a("(^(?:ONBUILD)?\\w+)(?:)*","i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[o,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:a("(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\\b","i"),lookbehind:!0,greedy:!0},{pattern:a("(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\\\]+)AS","i"),lookbehind:!0,greedy:!0},{pattern:a("(^ONBUILD)\\w+","i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:i,string:o,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:i},e.languages.dockerfile=e.languages.docker}(Prism); +Prism.languages.elm={comment:/--.*|{-[\s\S]*?-}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,inside:{keyword:/\b(?:import|as|exposing)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}; +Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}; +Prism.languages.go=Prism.languages.extend("clike",{string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,number:/(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/}),delete Prism.languages.go["class-name"]; +Prism.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:Prism.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*)[a-zA-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,punctuation:/[!(){}\[\]:=,]/,constant:/\b(?!ID\b)[A-Z][A-Z_\d]*\b/}; +!function(h){function v(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(h.languages["markup-templating"]={},{buildPlaceholders:{value:function(a,r,e,o){if(a.language===r){var c=a.tokenStack=[];a.code=a.code.replace(e,function(e){if("function"==typeof o&&!o(e))return e;for(var n,t=c.length;-1!==a.code.indexOf(n=v(r,t));)++t;return c[t]=e,n}),a.grammar=h.languages.markup}}},tokenizePlaceholders:{value:function(p,k){if(p.language===k&&p.tokenStack){p.grammar=h.languages[k];var m=0,d=Object.keys(p.tokenStack);!function e(n){for(var t=0;t=d.length);t++){var a=n[t];if("string"==typeof a||a.content&&"string"==typeof a.content){var r=d[m],o=p.tokenStack[r],c="string"==typeof a?a:a.content,i=v(k,r),u=c.indexOf(i);if(-1@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",function(a){e.languages["markup-templating"].buildPlaceholders(a,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)}),e.hooks.add("after-tokenize",function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"handlebars")})}(Prism); +Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|{-[\s\S]*?-})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/},Prism.languages.hs=Prism.languages.haskell; +!function(t){t.languages.http={"request-line":{pattern:/^(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|PRI|SEARCH)\s(?:https?:\/\/|\/)\S*\sHTTP\/[0-9.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:t.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[0-9.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[0-9.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[0-9.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var a,e,s,n=t.languages,r={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css},i={"application/json":!0,"application/xml":!0};for(var p in r)if(r[p]){a=a||{};var o=i[p]?(void 0,s=(e=p).replace(/^[a-z]+\//,""),"(?:"+e+"|\\w+/(?:[\\w.-]+\\+)+"+s+"(?![+\\w.-]))"):p;a[p.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+o+"(?:(?:\\r\\n?|\\n).+)*)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:r[p]}}a&&t.languages.insertBefore("http","header-name",a)}(Prism); +!function(n){n.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},n.languages.gitignore=n.languages.ignore,n.languages.hgignore=n.languages.ignore,n.languages.npmignore=n.languages.ignore}(Prism); +!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",a={pattern:RegExp(n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{"class-name":[a,{pattern:RegExp(n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=())])"),lookbehind:!0,inside:a.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":a,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,function(){return t.source})),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); +Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json; +!function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"],e.languages.insertBefore("kotlin","string",{"raw-string":{pattern:/("""|''')[\s\S]*?\1/,alias:"string"}}),e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\w+@|@\w+/,alias:"symbol"}});var n=[{pattern:/\$\{[^}]+\}/,inside:{delimiter:{pattern:/^\$\{|\}$/,alias:"variable"},rest:e.languages.kotlin}},{pattern:/\$\w+/,alias:"variable"}];e.languages.kotlin.string.inside=e.languages.kotlin["raw-string"].inside={interpolation:n},e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(Prism); +Prism.languages.less=Prism.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),Prism.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}); +!function(u){function n(n){return n=n.replace(//g,function(){return"(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))"}),RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:"+n+")")}var e="(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+",t="\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g,function(){return e}),a="\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)";u.languages.markdown=u.languages.extend("markup",{}),u.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"font-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:u.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+t+a+"(?:"+t+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+t+a+")(?:"+t+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(e),inside:u.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+t+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+t+"$"),inside:{"table-header":{pattern:RegExp(e),alias:"important",inside:u.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n("\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n("\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n("(~~?)(?:(?!~))+?\\2"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:n('!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\]))+\\])'),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(e){["url","bold","italic","strike"].forEach(function(n){e!==n&&(u.languages.markdown[e].inside.content.inside[n]=u.languages.markdown[n])})}),u.hooks.add("after-tokenize",function(n){"markdown"!==n.language&&"md"!==n.language||!function n(e){if(e&&"string"!=typeof e)for(var t=0,a=e.length;t|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;a.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:e,variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*[a-z0-9_|]\|\s*)(?:null|false)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?[a-z0-9_|]\|\s*)(?:null|false)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:null|false)\b/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:/\b\w+(?=\s*\()/,property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,lookbehind:!0,inside:a.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];a.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=]$)/,lookbehind:!0,inside:{comment:e,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|]$/,alias:"punctuation"}}}}),a.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){a.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi)}}),a.hooks.add("after-tokenize",function(e){a.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism); +!function(e){var i=Prism.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},r=i.string[0].inside;r.boolean=i.boolean,r.variable=i.variable,r.function.inside=i}(); +!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/});var n={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};delete e.languages.ruby.function,e.languages.insertBefore("ruby","keyword",{regex:[{pattern:RegExp("%r(?:"+["([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^])*\\)","\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[^])*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\]","<(?:[^<>\\\\]|\\\\[^])*>"].join("|")+")[egimnosux]{0,6}"),greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{function:/\w+$/,rest:e.languages.ruby}}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:RegExp("%[qQiIwWxs]?(?:"+["([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^])*\\)","\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[^])*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\]","<(?:[^<>\\\\]|\\\\[^])*>"].join("|")+")"),greedy:!0,inside:{interpolation:n}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n}}],e.languages.rb=e.languages.ruby}(Prism); +!function(e){for(var a="/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|)*\\*/",t=0;t<2;t++)a=a.replace(//g,function(){return a});a=a.replace(//g,function(){return"[^\\s\\S]"}),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0,alias:"string"},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism); +!function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,a=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:t,operator:a}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:a,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/,lookbehind:!0}})}(Prism); +Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\b/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),Prism.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|with|show|hide)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.languages.scss; +Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|IN|ILIKE|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}; +Prism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[^(])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|some|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.languages.swift; +!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},keyword:/\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),delete e.languages.typescript.parameter;var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(Prism); +Prism.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^_`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}; +!function(e){var n=/[*&][^\s[\]{},]+/,r=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,t="(?:"+r.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+r.source+")?)",a="(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*".replace(//g,function(){return"[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]"}),d="\"(?:[^\"\\\\\r\n]|\\\\.)*\"|'(?:[^'\\\\\r\n]|\\\\.)*'";function o(e,n){n=(n||"").replace(/m/g,"")+"m";var r="([:\\-,[{]\\s*(?:\\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|]|}|(?:[\r\n]\\s*)?#))".replace(/<>/g,function(){return t}).replace(/<>/g,function(){return e});return RegExp(r,n)}e.languages.yaml={scalar:{pattern:RegExp("([\\-:]\\s*(?:\\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\\S[^\r\n]*(?:\\2[^\r\n]+)*)".replace(/<>/g,function(){return t})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\\s*:\\s)".replace(/<>/g,function(){return t}).replace(/<>/g,function(){return"(?:"+a+"|"+d+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o("\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"),lookbehind:!0,alias:"number"},boolean:{pattern:o("true|false","i"),lookbehind:!0,alias:"important"},null:{pattern:o("null|~","i"),lookbehind:!0,alias:"important"},string:{pattern:o(d),lookbehind:!0,greedy:!0},number:{pattern:o("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)","i"),lookbehind:!0},tag:r,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism); +!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document&&document.querySelector){var t,o="line-numbers",s="linkable-line-numbers",a=function(){if(void 0===t){var e=document.createElement("div");e.style.fontSize="13px",e.style.lineHeight="1.5",e.style.padding="0",e.style.border="0",e.innerHTML=" 
         ",document.body.appendChild(e),t=38===e.offsetHeight,document.body.removeChild(e)}return t},l=!0,u=0;Prism.hooks.add("before-sanity-check",function(e){var t=e.element.parentElement;if(c(t)){var n=0;v(".line-highlight",t).forEach(function(e){n+=e.textContent.length,e.parentNode.removeChild(e)}),n&&/^( \n)+$/.test(e.code.slice(-n))&&(e.code=e.code.slice(0,-n))}}),Prism.hooks.add("complete",function e(t){var n=t.element.parentElement;if(c(n)){clearTimeout(u);var i=Prism.plugins.lineNumbers,r=t.plugins&&t.plugins.lineNumbers;if(b(n,o)&&i&&!r)Prism.hooks.add("line-numbers",e);else d(n)(),u=setTimeout(f,1)}}),window.addEventListener("hashchange",f),window.addEventListener("resize",function(){v("pre").filter(c).map(function(e){return d(e)}).forEach(y)})}function v(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function b(e,t){return e.classList.contains(t)}function y(e){e()}function c(e){return!(!e||!/pre/i.test(e.nodeName))&&(!!e.hasAttribute("data-line")||!(!e.id||!Prism.util.isActive(e,s)))}function d(u,e,c){var t=(e="string"==typeof e?e:u.getAttribute("data-line")||"").replace(/\s+/g,"").split(",").filter(Boolean),d=+u.getAttribute("data-line-offset")||0,f=(a()?parseInt:parseFloat)(getComputedStyle(u).lineHeight),p=Prism.util.isActive(u,o),n=u.querySelector("code"),h=p?u:n||u,m=[],g=n&&h!=n?function(e,t){var n=getComputedStyle(e),i=getComputedStyle(t);function r(e){return+e.substr(0,e.length-2)}return t.offsetTop+r(i.borderTopWidth)+r(i.paddingTop)-r(n.paddingTop)}(u,n):0;t.forEach(function(e){var t=e.split("-"),n=+t[0],i=+t[1]||n,r=u.querySelector('.line-highlight[data-range="'+e+'"]')||document.createElement("div");if(m.push(function(){r.setAttribute("aria-hidden","true"),r.setAttribute("data-range",e),r.className=(c||"")+" line-highlight"}),p&&Prism.plugins.lineNumbers){var o=Prism.plugins.lineNumbers.getLine(u,n),s=Prism.plugins.lineNumbers.getLine(u,i);if(o){var a=o.offsetTop+g+"px";m.push(function(){r.style.top=a})}if(s){var l=s.offsetTop-o.offsetTop+s.offsetHeight+"px";m.push(function(){r.style.height=l})}}else m.push(function(){r.setAttribute("data-start",String(n)),n span",u).forEach(function(e,t){var n=t+r;e.onclick=function(){var e=i+"."+n;l=!1,location.hash=e,setTimeout(function(){l=!0},1)}})}return function(){m.forEach(y)}}function f(){var e=location.hash.slice(1);v(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var t=(e.match(/\.([\d,-]+)$/)||[,""])[1];if(t&&!document.getElementById(e)){var n=e.slice(0,e.lastIndexOf(".")),i=document.getElementById(n);if(i)i.hasAttribute("data-line")||i.setAttribute("data-line",""),d(i,t,"temporary ")(),l&&document.querySelector(".temporary.line-highlight").scrollIntoView()}}}(); +!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var o="line-numbers",a=/\n(?!$)/g,e=Prism.plugins.lineNumbers={getLine:function(e,n){if("PRE"===e.tagName&&e.classList.contains(o)){var t=e.querySelector(".line-numbers-rows");if(t){var i=parseInt(e.getAttribute("data-start"),10)||1,r=i+(t.children.length-1);n");(i=document.createElement("span")).setAttribute("aria-hidden","true"),i.className="line-numbers-rows",i.innerHTML=l,t.hasAttribute("data-start")&&(t.style.counterReset="linenumber "+(parseInt(t.getAttribute("data-start"),10)-1)),e.element.appendChild(i),u([t]),Prism.hooks.run("line-numbers",e)}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0})}function u(e){if(0!=(e=e.filter(function(e){var n=t(e)["white-space"];return"pre-wrap"===n||"pre-line"===n})).length){var n=e.map(function(e){var n=e.querySelector("code"),t=e.querySelector(".line-numbers-rows");if(n&&t){var i=e.querySelector(".line-numbers-sizer"),r=n.textContent.split(a);i||((i=document.createElement("span")).className="line-numbers-sizer",n.appendChild(i)),i.innerHTML="0",i.style.display="block";var s=i.getBoundingClientRect().height;return i.innerHTML="",{element:e,lines:r,lineHeights:[],oneLinerHeight:s,sizer:i}}}).filter(Boolean);n.forEach(function(e){var i=e.sizer,n=e.lines,r=e.lineHeights,s=e.oneLinerHeight;r[n.length-1]=void 0,n.forEach(function(e,n){if(e&&1 + * Licensed under the New BSD License. + * https://github.com/stackp/promisejs + */ +(function(a){function b(){this._callbacks=[];}b.prototype.then=function(a,c){var d;if(this._isdone)d=a.apply(c,this.result);else{d=new b();this._callbacks.push(function(){var b=a.apply(c,arguments);if(b&&typeof b.then==='function')b.then(d.done,d);});}return d;};b.prototype.done=function(){this.result=arguments;this._isdone=true;for(var a=0;a=300)&&j.status!==304);h.done(a,j.responseText,j);}};j.send(k);return h;}function h(a){return function(b,c,d){return g(a,b,c,d);};}var i={Promise:b,join:c,chain:d,ajax:g,get:h('GET'),post:h('POST'),put:h('PUT'),del:h('DELETE'),ENOXHR:1,ETIMEOUT:2,ajaxTimeout:0};if(typeof define==='function'&&define.amd)define(function(){return i;});else a.promise=i;})(this); \ No newline at end of file diff --git a/frontend/documentation/js/libs/svg-pan-zoom.min.js b/frontend/documentation/js/libs/svg-pan-zoom.min.js new file mode 100644 index 0000000..807f0e4 --- /dev/null +++ b/frontend/documentation/js/libs/svg-pan-zoom.min.js @@ -0,0 +1,3 @@ +// svg-pan-zoom v3.6.0 +// https://github.com/ariutta/svg-pan-zoom +!function t(e,o,n){function i(r,a){if(!o[r]){if(!e[r]){var l="function"==typeof require&&require;if(!a&&l)return l(r,!0);if(s)return s(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var h=o[r]={exports:{}};e[r][0].call(h.exports,function(t){var o=e[r][1][t];return i(o?o:t)},h,h.exports,t,e,o,n)}return o[r].exports}for(var s="function"==typeof require&&require,r=0;r=0;n--)this.eventListeners.hasOwnProperty(o[n])&&delete this.eventListeners[o[n]]}for(var i in this.eventListeners)(this.options.eventsListenerElement||this.svg).addEventListener(i,this.eventListeners[i],!this.options.preventMouseEventsDefault&&h);this.options.mouseWheelZoomEnabled&&(this.options.mouseWheelZoomEnabled=!1,this.enableMouseWheelZoom())},l.prototype.enableMouseWheelZoom=function(){if(!this.options.mouseWheelZoomEnabled){var t=this;this.wheelListener=function(e){return t.handleMouseWheel(e)};var e=!this.options.preventMouseEventsDefault;n.on(this.options.eventsListenerElement||this.svg,this.wheelListener,e),this.options.mouseWheelZoomEnabled=!0}},l.prototype.disableMouseWheelZoom=function(){if(this.options.mouseWheelZoomEnabled){var t=!this.options.preventMouseEventsDefault;n.off(this.options.eventsListenerElement||this.svg,this.wheelListener,t),this.options.mouseWheelZoomEnabled=!1}},l.prototype.handleMouseWheel=function(t){if(this.options.zoomEnabled&&"none"===this.state){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1);var e=t.deltaY||1,o=Date.now()-this.lastMouseWheelEventTime,n=3+Math.max(0,30-o);this.lastMouseWheelEventTime=Date.now(),"deltaMode"in t&&0===t.deltaMode&&t.wheelDelta&&(e=0===t.deltaY?0:Math.abs(t.wheelDelta)/t.deltaY),e=-.30?1:-1)*Math.log(Math.abs(e)+10)/n;var i=this.svg.getScreenCTM().inverse(),s=r.getEventPoint(t,this.svg).matrixTransform(i),a=Math.pow(1+this.options.zoomScaleSensitivity,-1*e);this.zoomAtPoint(a,s)}},l.prototype.zoomAtPoint=function(t,e,o){var n=this.viewport.getOriginalState();o?(t=Math.max(this.options.minZoom*n.zoom,Math.min(this.options.maxZoom*n.zoom,t)),t/=this.getZoom()):this.getZoom()*tthis.options.maxZoom*n.zoom&&(t=this.options.maxZoom*n.zoom/this.getZoom());var i=this.viewport.getCTM(),s=e.matrixTransform(i.inverse()),r=this.svg.createSVGMatrix().translate(s.x,s.y).scale(t).translate(-s.x,-s.y),a=i.multiply(r);a.a!==i.a&&this.viewport.setCTM(a)},l.prototype.zoom=function(t,e){this.zoomAtPoint(t,r.getSvgCenterPoint(this.svg,this.width,this.height),e)},l.prototype.publicZoom=function(t,e){e&&(t=this.computeFromRelativeZoom(t)),this.zoom(t,e)},l.prototype.publicZoomAtPoint=function(t,e,o){if(o&&(t=this.computeFromRelativeZoom(t)),"SVGPoint"!==s.getType(e)){if(!("x"in e&&"y"in e))throw new Error("Given point is invalid");e=r.createSVGPoint(this.svg,e.x,e.y)}this.zoomAtPoint(t,e,o)},l.prototype.getZoom=function(){return this.viewport.getZoom()},l.prototype.getRelativeZoom=function(){return this.viewport.getRelativeZoom()},l.prototype.computeFromRelativeZoom=function(t){return t*this.viewport.getOriginalState().zoom},l.prototype.resetZoom=function(){var t=this.viewport.getOriginalState();this.zoom(t.zoom,!0)},l.prototype.resetPan=function(){this.pan(this.viewport.getOriginalState())},l.prototype.reset=function(){this.resetZoom(),this.resetPan()},l.prototype.handleDblClick=function(t){if(this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),this.options.controlIconsEnabled){var e=t.target.getAttribute("class")||"";if(e.indexOf("svg-pan-zoom-control")>-1)return!1}var o;o=t.shiftKey?1/(2*(1+this.options.zoomScaleSensitivity)):2*(1+this.options.zoomScaleSensitivity);var n=r.getEventPoint(t,this.svg).matrixTransform(this.svg.getScreenCTM().inverse());this.zoomAtPoint(o,n)},l.prototype.handleMouseDown=function(t,e){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),s.mouseAndTouchNormalize(t,this.svg),this.options.dblClickZoomEnabled&&s.isDblClick(t,e)?this.handleDblClick(t):(this.state="pan",this.firstEventCTM=this.viewport.getCTM(),this.stateOrigin=r.getEventPoint(t,this.svg).matrixTransform(this.firstEventCTM.inverse()))},l.prototype.handleMouseMove=function(t){if(this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),"pan"===this.state&&this.options.panEnabled){var e=r.getEventPoint(t,this.svg).matrixTransform(this.firstEventCTM.inverse()),o=this.firstEventCTM.translate(e.x-this.stateOrigin.x,e.y-this.stateOrigin.y);this.viewport.setCTM(o)}},l.prototype.handleMouseUp=function(t){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),"pan"===this.state&&(this.state="none")},l.prototype.fit=function(){var t=this.viewport.getViewBox(),e=Math.min(this.width/t.width,this.height/t.height);this.zoom(e,!0)},l.prototype.contain=function(){var t=this.viewport.getViewBox(),e=Math.max(this.width/t.width,this.height/t.height);this.zoom(e,!0)},l.prototype.center=function(){var t=this.viewport.getViewBox(),e=.5*(this.width-(t.width+2*t.x)*this.getZoom()),o=.5*(this.height-(t.height+2*t.y)*this.getZoom());this.getPublicInstance().pan({x:e,y:o})},l.prototype.updateBBox=function(){this.viewport.simpleViewBoxCache()},l.prototype.pan=function(t){var e=this.viewport.getCTM();e.e=t.x,e.f=t.y,this.viewport.setCTM(e)},l.prototype.panBy=function(t){var e=this.viewport.getCTM();e.e+=t.x,e.f+=t.y,this.viewport.setCTM(e)},l.prototype.getPan=function(){var t=this.viewport.getState();return{x:t.x,y:t.y}},l.prototype.resize=function(){var t=r.getBoundingClientRectNormalized(this.svg);this.width=t.width,this.height=t.height;var e=this.viewport;e.options.width=this.width,e.options.height=this.height,e.processCTM(),this.options.controlIconsEnabled&&(this.getPublicInstance().disableControlIcons(),this.getPublicInstance().enableControlIcons())},l.prototype.destroy=function(){var t=this;this.beforeZoom=null,this.onZoom=null,this.beforePan=null,this.onPan=null,this.onUpdatedCTM=null,null!=this.options.customEventsHandler&&this.options.customEventsHandler.destroy({svgElement:this.svg,eventsListenerElement:this.options.eventsListenerElement,instance:this.getPublicInstance()});for(var e in this.eventListeners)(this.options.eventsListenerElement||this.svg).removeEventListener(e,this.eventListeners[e],!this.options.preventMouseEventsDefault&&h);this.disableMouseWheelZoom(),this.getPublicInstance().disableControlIcons(),this.reset(),c=c.filter(function(e){return e.svg!==t.svg}),delete this.options,delete this.viewport,delete this.publicInstance,delete this.pi,this.getPublicInstance=function(){return null}},l.prototype.getPublicInstance=function(){var t=this;return this.publicInstance||(this.publicInstance=this.pi={enablePan:function(){return t.options.panEnabled=!0,t.pi},disablePan:function(){return t.options.panEnabled=!1,t.pi},isPanEnabled:function(){return!!t.options.panEnabled},pan:function(e){return t.pan(e),t.pi},panBy:function(e){return t.panBy(e),t.pi},getPan:function(){return t.getPan()},setBeforePan:function(e){return t.options.beforePan=null===e?null:s.proxy(e,t.publicInstance),t.pi},setOnPan:function(e){return t.options.onPan=null===e?null:s.proxy(e,t.publicInstance),t.pi},enableZoom:function(){return t.options.zoomEnabled=!0,t.pi},disableZoom:function(){return t.options.zoomEnabled=!1,t.pi},isZoomEnabled:function(){return!!t.options.zoomEnabled},enableControlIcons:function(){return t.options.controlIconsEnabled||(t.options.controlIconsEnabled=!0,i.enable(t)),t.pi},disableControlIcons:function(){return t.options.controlIconsEnabled&&(t.options.controlIconsEnabled=!1,i.disable(t)),t.pi},isControlIconsEnabled:function(){return!!t.options.controlIconsEnabled},enableDblClickZoom:function(){return t.options.dblClickZoomEnabled=!0,t.pi},disableDblClickZoom:function(){return t.options.dblClickZoomEnabled=!1,t.pi},isDblClickZoomEnabled:function(){return!!t.options.dblClickZoomEnabled},enableMouseWheelZoom:function(){return t.enableMouseWheelZoom(),t.pi},disableMouseWheelZoom:function(){return t.disableMouseWheelZoom(),t.pi},isMouseWheelZoomEnabled:function(){return!!t.options.mouseWheelZoomEnabled},setZoomScaleSensitivity:function(e){return t.options.zoomScaleSensitivity=e,t.pi},setMinZoom:function(e){return t.options.minZoom=e,t.pi},setMaxZoom:function(e){return t.options.maxZoom=e,t.pi},setBeforeZoom:function(e){return t.options.beforeZoom=null===e?null:s.proxy(e,t.publicInstance),t.pi},setOnZoom:function(e){return t.options.onZoom=null===e?null:s.proxy(e,t.publicInstance),t.pi},zoom:function(e){return t.publicZoom(e,!0),t.pi},zoomBy:function(e){return t.publicZoom(e,!1),t.pi},zoomAtPoint:function(e,o){return t.publicZoomAtPoint(e,o,!0),t.pi},zoomAtPointBy:function(e,o){return t.publicZoomAtPoint(e,o,!1),t.pi},zoomIn:function(){return this.zoomBy(1+t.options.zoomScaleSensitivity),t.pi},zoomOut:function(){return this.zoomBy(1/(1+t.options.zoomScaleSensitivity)),t.pi},getZoom:function(){return t.getRelativeZoom()},setOnUpdatedCTM:function(e){return t.options.onUpdatedCTM=null===e?null:s.proxy(e,t.publicInstance),t.pi},resetZoom:function(){return t.resetZoom(),t.pi},resetPan:function(){return t.resetPan(),t.pi},reset:function(){return t.reset(),t.pi},fit:function(){return t.fit(),t.pi},contain:function(){return t.contain(),t.pi},center:function(){return t.center(),t.pi},updateBBox:function(){return t.updateBBox(),t.pi},resize:function(){return t.resize(),t.pi},getSizes:function(){return{width:t.width,height:t.height,realZoom:t.getZoom(),viewBox:t.viewport.getViewBox()}},destroy:function(){return t.destroy(),t.pi}}),this.publicInstance};var c=[],p=function(t,e){var o=s.getSvg(t);if(null===o)return null;for(var n=c.length-1;n>=0;n--)if(c[n].svg===o)return c[n].instance.getPublicInstance();return c.push({svg:o,instance:new l(o,e)}),c[c.length-1].instance.getPublicInstance()};e.exports=p},{"./control-icons":2,"./shadow-viewport":3,"./svg-utilities":5,"./uniwheel":6,"./utilities":7}],5:[function(t,e,o){var n=t("./utilities"),i="unknown";document.documentMode&&(i="ie"),e.exports={svgNS:"http://www.w3.org/2000/svg",xmlNS:"http://www.w3.org/XML/1998/namespace",xmlnsNS:"http://www.w3.org/2000/xmlns/",xlinkNS:"http://www.w3.org/1999/xlink",evNS:"http://www.w3.org/2001/xml-events",getBoundingClientRectNormalized:function(t){if(t.clientWidth&&t.clientHeight)return{width:t.clientWidth,height:t.clientHeight};if(t.getBoundingClientRect())return t.getBoundingClientRect();throw new Error("Cannot get BoundingClientRect for SVG.")},getOrCreateViewport:function(t,e){var o=null;if(o=n.isElement(e)?e:t.querySelector(e),!o){var i=Array.prototype.slice.call(t.childNodes||t.children).filter(function(t){return"defs"!==t.nodeName&&"#text"!==t.nodeName});1===i.length&&"g"===i[0].nodeName&&null===i[0].getAttribute("transform")&&(o=i[0])}if(!o){var s="viewport-"+(new Date).toISOString().replace(/\D/g,"");o=document.createElementNS(this.svgNS,"g"),o.setAttribute("id",s);var r=t.childNodes||t.children;if(r&&r.length>0)for(var a=r.length;a>0;a--)"defs"!==r[r.length-a].nodeName&&o.appendChild(r[r.length-a]);t.appendChild(o)}var l=[];return o.getAttribute("class")&&(l=o.getAttribute("class").split(" ")),~l.indexOf("svg-pan-zoom_viewport")||(l.push("svg-pan-zoom_viewport"),o.setAttribute("class",l.join(" "))),o},setupSvgAttributes:function(t){if(t.setAttribute("xmlns",this.svgNS),t.setAttributeNS(this.xmlnsNS,"xmlns:xlink",this.xlinkNS),t.setAttributeNS(this.xmlnsNS,"xmlns:ev",this.evNS),null!==t.parentNode){var e=t.getAttribute("style")||"";e.toLowerCase().indexOf("overflow")===-1&&t.setAttribute("style","overflow: hidden; "+e)}},internetExplorerRedisplayInterval:300,refreshDefsGlobal:n.throttle(function(){for(var t=document.querySelectorAll("defs"),e=t.length,o=0;oe?(clearTimeout(a),a=null,l=h,s=t.apply(n,i),a||(n=i=null)):a||o.trailing===!1||(a=setTimeout(u,c)),s}},createRequestAnimationFrame:function(t){var e=null;return"auto"!==t&&t<60&&t>1&&(e=Math.floor(1e3/t)),null===e?window.requestAnimationFrame||n(33):n(e)}}},{}]},{},[1]); \ No newline at end of file diff --git a/frontend/documentation/js/libs/tablesort.min.js b/frontend/documentation/js/libs/tablesort.min.js new file mode 100644 index 0000000..09de2ae --- /dev/null +++ b/frontend/documentation/js/libs/tablesort.min.js @@ -0,0 +1,6 @@ +/*! + * tablesort v5.1.0 (2018-09-14) + * http://tristen.ca/tablesort/demo/ + * Copyright (c) 2018 ; Licensed MIT +*/ +!function(){function a(b,c){if(!(this instanceof a))return new a(b,c);if(!b||"TABLE"!==b.tagName)throw new Error("Element must be a table");this.init(b,c||{})}var b=[],c=function(a){var b;return window.CustomEvent&&"function"==typeof window.CustomEvent?b=new CustomEvent(a):(b=document.createEvent("CustomEvent"),b.initCustomEvent(a,!1,!1,void 0)),b},d=function(a){return a.getAttribute("data-sort")||a.textContent||a.innerText||""},e=function(a,b){return a=a.trim().toLowerCase(),b=b.trim().toLowerCase(),a===b?0:a0)if(a.tHead&&a.tHead.rows.length>0){for(e=0;e0&&l.push(k),m++;if(!l)return}for(m=0;m2&&void 0!==arguments[2]&&arguments[2];for(var s in t)void 0!==i[s]&&(null===i[s]||"object"!==(0,c.default)(i[s])?n(t,i,s,o):"object"===(0,c.default)(t[s])&&e.fillIfDefined(t[s],i[s],o))},e.extend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r in o)if(o.hasOwnProperty(r)&&-1===t.indexOf(r))if(o[r]&&o[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?e.deepExtend(i[r],o[r]):n(i,o,r,s);else if(Array.isArray(o[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===o)if(i[r]&&i[r].constructor===Object)void 0===t[r]&&(t[r]={}),t[r].constructor===Object?e.deepExtend(t[r],i[r],o):n(t,i,r,s);else if(Array.isArray(i[r])){t[r]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){var o;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(o=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"):(o=e.hexToRGB(t),null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")")},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var v={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=v.split(t.style.cssText),n=v.split(i),s=e.extend(o,n);t.style.cssText=v.join(s)},e.removeCssText=function(t,e){var i=v.split(t.style.cssText),o=v.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=v.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,c.default)(i))){for(var o=(0,h.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=function(t){return null!==t&&void 0!==t},s=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,c.default)(t))};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(i))throw new Error("Parameter option must have a value");if(!s(o))throw new Error("Parameter globalOptions must be an object");var r=e[i],a=s(o)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(o),d=a?o[i]:void 0,l=d?d.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!n(d))return;t[i]=(0,h.default)(d)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=d.enabled),function(t,e,i){s(t[i])||(t[i]={});var o=e[i],n=t[i];for(var r in o)o.hasOwnProperty(r)&&(n[r]=o[r])}(t,e,i),t[i].enabled=u}}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){var s,r,a,h,d=0,l=0,u=t.length-1;for(n=void 0!=n?n:function(t,e){return t==e?0:t0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,s=void 0;try{for(var a,h=(0,r.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;ln?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var n=i(19),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=!1,v=void 0,g="background: #FFeeee; color: #dd0000",y=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"validate",value:function(e,i,o){m=!1,v=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),m}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){if(void 0===o[e]&&void 0===o.__any__)return void t.getSuggestion(e,o,n);var s=e,r=!0;void 0===o[e]&&void 0!==o.__any__&&(s="__any__",r="object"===t.getType(i[e]));var a=o[s];r&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,i,o,s,a,n)}},{key:"checkFields",value:function(e,i,o,n,s,r){var a=function(i){console.log("%c"+i+t.printLocation(r,e),g)},h=t.getType(i[e]),l=s[h];void 0!==l?"array"===t.getType(l)&&-1===l.indexOf(i[e])?(a('Invalid option detected in "'+e+'". Allowed values are:'+t.print(l)+' not "'+i[e]+'". '),m=!0):"object"===h&&"__any__"!==n&&(r=f.copyAndExtendArray(r,e),t.parse(i[e],o[n],r)):void 0===s.any&&(a('Invalid type received for "'+e+'". Expected: '+t.print((0,d.default)(s))+". Received ["+h+'] "'+i[e]+'"'),m=!0)}},{key:"getType",value:function(t){var e=void 0===t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":!0===t._isAMomentObject?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,v,[],!0),r=void 0 +;r=void 0!==n.indexMatch?" in "+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n':s.distance<=4&&n.distance>s.distance?" in "+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):n.distance<=8?'. Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e):". Did you mean one of these: "+t.print((0,d.default)(i))+t.printLocation(o,e),console.log('%cUnknown option detected: "'+e+'"'+r,g),m=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===n){var c=t.findInOptions(e,i[l],f.copyAndExtendArray(o,l));s>c.distance&&(r=c.closestMatch,a=c.path,s=c.distance,d=c.indexMatch)}else-1!==l.toLowerCase().indexOf(h)&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=f.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n0&&(this.enableBorderDashes(t,e),t.stroke(),this.disableBorderDashes(t,e)),t.restore()}},{key:"performFill",value:function(t,e){this.enableShadow(t,e),t.fill(),this.disableShadow(t,e),this.performStroke(t,e)}},{key:"_addBoundingBoxMargin",value:function(t){this.boundingBox.left-=t,this.boundingBox.top-=t,this.boundingBox.bottom+=t,this.boundingBox.right+=t}},{key:"_updateBoundingBox",value:function(t,e,i,o,n){void 0!==i&&this.resize(i,o,n),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n)}},{key:"getDimensionsFromLabel",value:function(t,e,i){this.textSize=this.labelModule.getTextSize(t,e,i);var o=this.textSize.width,n=this.textSize.height;return 0===o&&(o=14,n=14),{width:o,height:n}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,i)){this.labelModule.getTextSize(t,e,i);var n=2*o.size;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,o,n,s,r,a){if(this.resize(t,s,r,a),this.left=o-this.width/2,this.top=n-this.height/2,this.initContextForDraw(t,a),t[e](o,n,a.size),this.performFill(t,a),void 0!==this.options.label){this.labelModule.calculateLabelSize(t,s,r,o,n,"hanging");var h=n+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(t,o,h,s,r,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),e}(m.default);e.default=v},function(t,e,i){var o=i(78),n=i(51);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(20),n=i(39);t.exports=i(21)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(32);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){t.exports={default:i(138),__esModule:!0}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(188),s=o(n),r=i(77),a=o(r);e.default=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,h=(0,a.default)(t);!(o=(r=h.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(t){n=!0,s=t}finally{try{!o&&h.return&&h.return()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if((0,s.default)(Object(e)))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e){t.exports={}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,i){var o=i(84),n=i(58);t.exports=Object.keys||function(t){return o(t,n)}},function(t,e,i){function o(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}o.subtract=function(t,e){var i=new o;return i.x=t.x-e.x,i.y=t.y-e.y,i.z=t.z-e.z,i},o.add=function(t,e){var i=new o;return i.x=t.x+e.x,i.y=t.y+e.y,i.z=t.z+e.z,i},o.avg=function(t,e){return new o((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},o.crossProduct=function(t,e){var i=new o;return i.x=t.y*e.z-t.z*e.y,i.y=t.z*e.x-t.x*e.z,i.z=t.x*e.y-t.y*e.x,i},o.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(0,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;e<=122;e++)r[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)r[""+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r.delete={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;n=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale}return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a);return new Date(h+a+t.range.start)},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;ithis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n=.4*v}if(this.options.showMinorLabels&&m){var k=this._repaintMinorText(c,y,t,b);k.style.width=_+"px"}f&&this.options.showMajorLabels?(c>0&&(void 0==w&&(w=c),k=this._repaintMajorText(c,s.getLabelMajor(),t,b)),g=this._repaintMajorLine(c,_,t,b)):m?g=this._repaintMinorLine(c,_,t,b):g&&(g.style.width=parseInt(g.style.width)+_+"px")}if(1e3!==x||u||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),u=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),D=s.getLabelMajor(S),M=D.length*(this.props.majorCharWidth||10)+10;(void 0==w||Mt.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"updateGroupOptions",value:function(t,e,i){if(void 0!==i){var o=t.group;if(void 0!==e&&void 0!==e.group&&o!==e.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof o||"string"==typeof o&&""!=o){var n=i.get(o);h.selectiveNotDeepExtend(["font"],t,n),t.color=h.parseColor(t.color)}}}},{key:"parseOptions",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments[4],r=["color","fixed","shadow"];if(h.selectiveNotDeepExtend(r,e,i,o),t.checkMass(i),h.mergeOptions(e,i,"shadow",n),void 0!==i.color&&null!==i.color){var a=h.parseColor(i.color);h.fillIfDefined(e.color,a)}else!0===o&&null===i.color&&(e.color=h.bridgeObject(n.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(e.fixed.x=i.fixed,e.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(e.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(e.fixed.y=i.fixed.y))),!0===o&&null===i.font&&(e.font=h.bridgeObject(n.font)),t.updateGroupOptions(e,i,s),void 0!==i.scaling&&h.mergeOptions(e.scaling,i.scaling,"label",n.scaling)}},{key:"checkMass",value:function(t,e){if(void 0!==t.mass&&t.mass<=0){var i="";void 0!==e&&(i=" in node id: "+e),console.log("%cNegative or zero mass disallowed"+i+", setting mass to 1.",C),t.mass=1}}}]),t}();e.default=O},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(6),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(2),u=function(){function t(){(0,a.default)(this,t)}return(0,d.default)(t,null,[{key:"choosify",value:function(t,e){var i=["node","edge","label"],o=!0,n=l.topMost(e,"chosen");if("boolean"==typeof n)o=n;else if("object"===(void 0===n?"undefined":(0,s.default)(n))){if(-1===i.indexOf(t))throw new Error("choosify: subOption '"+t+"' should be one of '"+i.join("', '")+"'");var r=l.topMost(e,["chosen",t]);"boolean"!=typeof r&&"function"!=typeof r||(o=r)}return o}},{key:"pointInRect",value:function(t,e,i){if(t.width<=0||t.height<=0)return!1;if(void 0!==i){var o={x:e.x-i.x,y:e.y-i.y};if(0!==i.angle){var n=-i.angle;e={x:Math.cos(n)*o.x-Math.sin(n)*o.y,y:Math.sin(n)*o.x+Math.cos(n)*o.y}}else e=o}var s=t.x+t.width,r=t.y+t.width;return t.lefte.x&&t.tope.y}},{key:"isValidLabel",value:function(t){return"string"==typeof t&&""!==t}}]),t}();e.default=u},function(t,e,i){i(125);for(var o=i(18),n=i(26),s=i(31),r=i(13)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),h=0;hdocument.F=Object<\/script>"),t.close(),h=t.F;o--;)delete h.prototype[s[o]];return h()};t.exports=Object.create||function(t,e){var i;return null!==t?(a.prototype=o(t),i=new a,a.prototype=null,i[r]=t):i=h(),void 0===e?i:n(i,e)}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(57)("keys"),n=i(40);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(18),n=o["__core-js_shared__"]||(o["__core-js_shared__"]={});t.exports=function(t){return n[t]||(n[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(20).f,n=i(22),s=i(13)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(135)(!0);i(79)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){e.f=i(13)},function(t,e,i){var o=i(18),n=i(7),s=i(52),r=i(61),a=i(20).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){var i=p().hours(0).minutes(0).seconds(0).milliseconds(0),o=i.clone().add(-3,"days").valueOf(),n=i.clone().add(3,"days").valueOf();this.millisecondsPerPixelCache=void 0,void 0===e?(this.start=o,this.end=n):(this.start=e.start||o,this.end=e.end||n),this.rolling=!1,this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={rtl:!1,start:null,end:null,moment:p,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10,rollingMode:{follow:!1,offset:.5}},this.options=c.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.body.dom.rollingModeBtn.addEventListener("click",this.startRolling.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var r=i(8),a=o(r),h=i(19),d=o(h),l=i(6),u=o(l),c=i(2),p=i(9),f=i(16),m=i(36);n.prototype=new f,n.prototype.setOptions=function(t){if(t){var e=["animation","direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl","showCurrentTime","rollingMode","horizontalScroll"];c.selectiveExtend(e,this.options,t),t.rollingMode&&t.rollingMode.follow&&this.startRolling(),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},n.prototype.startRolling=function(){function t(){e.stopRolling(),e.rolling=!0;var i=e.end-e.start,o=c.convert(new Date,"Date").valueOf(),n=o-i*e.options.rollingMode.offset,s=o+i*(1-e.options.rollingMode.offset),r={animation:!1};e.setRange(n,s,r),i=1/e.conversion(e.body.domProps.center.width).scale/10,i<30&&(i=30),i>1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o,n){i||(i={}),!0!==i.byUser&&(i.byUser=!1);var s=this,r=void 0!=t?c.convert(t,"Date").valueOf():null,h=void 0!=e?c.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var l=this.start,p=this.end,f="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,v="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",g=c.easingFunctions[v];if(!g)throw new Error("Unknown easing function "+(0,d.default)(v)+". Choose from: "+(0,a.default)(c.easingFunctions).join(", "));var y=(new Date).valueOf(),b=!1;return function t(){if(!s.props.touch.dragging){var e=(new Date).valueOf(),a=e-y,d=g(a/f),u=a>f,c=u||null===r?r:l+(r-l)*d,v=u||null===h?h:p+(h-p)*d;_=s._applyRange(c,v),m.updateHiddenDates(s.options.moment,s.body,s.options.hiddenDates),b=b||_;var w={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(n&&n(d,_,u),_&&s.body.emitter.emit("rangechange",w),u){if(b&&(s.body.emitter.emit("rangechanged",w),o))return o()}else s.animationTimer=setTimeout(t,20)}}()}var _=this._applyRange(r,h);if(m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(s.timeoutID),s.timeoutID=setTimeout(function(){s.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?c.convert(t,"Date").valueOf():this.start,n=null!=e?c.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?c.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?c.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);h<0&&(h=0),n-o>h&&(this.end-this.start===h&&othis.end?(o=this.start,n=this.end):(i=n-o-h,o+=i/2,n-=i/2))}var d=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,d},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n,r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;n=this.options.rtl?i/r*o:-i/r*o;var a=this.props.touch.start+n,h=this.props.touch.end+n,d=m.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0);if(d!=a||l!=h)return this.deltaDifference+=i,this.props.touch.start=d,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(a,h);var u=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:u,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var i;i=e<0?1-e/5:1/(1+e/5);var o;if(this.rolling)o=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var n=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(n)}this.zoom(i,o,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,c.preventDefault(t)},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){c.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=m.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=m.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e,i=t.center?t.center.x:t.clientX;e=this.options.rtl?i-c.getAbsoluteLeft(this.body.dom.centerContainer):c.getAbsoluteRight(this.body.dom.centerContainer)-i;var o=this.body.util.toTime(e);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:c.getAbsoluteRight(e)-t.x,y:t.y-c.getAbsoluteTop(e)}:{x:t.x-c.getAbsoluteLeft(e),y:t.y-c.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0) +;var d=m.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){}var s=i(19),r=o(s),a=i(6),h=o(a),d=i(44),l=i(10),u=i(37),c=i(2),p=i(45),f=i(97),m=i(36),v=i(46);d(n.prototype),n.prototype._create=function(t){function e(t){this.isActive()&&this.emit("mousewheel",t);var e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),this.options.zoomKey&&!t[this.options.zoomKey])if(t.preventDefault(),this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){var o=this.props.scrollTop,n=o+i;this.isActive()&&(this._setScrollTop(n),this._redraw(),this.emit("scroll",t))}else if(this.options.horizontalScroll){var s=Math.abs(e)>=Math.abs(i)?e:i,r=s/120*(this.range.end-this.range.start)/20,a=this.range.start+r,h=this.range.end+r,d={animation:!1,byUser:!0,event:t};this.range.setRange(a,h,d)}}function i(t){if(s.options.verticalScroll&&(t.preventDefault(),s.isActive())){var e=-t.target.scrollTop;s._setScrollTop(e),s._redraw(),s.emit("scrollSide",t)}}function o(t){if(t.preventDefault&&t.preventDefault(),!(!t.target.className.indexOf("vis")>-1||a))return t.dataTransfer.dropEffect="move",a=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e||!e.content)return}catch(t){return!1}return a=!1,t.center={x:t.clientX,y:t.clientY},"item"!==e.target?s.itemSet._onAddItem(t):s.itemSet._onDropObjectOnItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){!0===this.initialDrawDone&&this._redraw()}.bind(this)),this.on("rangechanged",function(){this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=c.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={},["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var a=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(c.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!==(0,h.default)(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new p(this.body);i.setOptions=function(t){var e=t?c.extend({},t):{};e.orientation="top",p.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&m.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new f(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=c.deepExtend({},this.options);this.components.forEach(function(t){c.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?c.convert(t,"Date").valueOf():new Date;if(this.customTimes.some(function(t){return t.options.id===e}))throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var o=new v(this.body,c.extend({},this.options,{time:i,id:e}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n,s;1==arguments.length?(s=arguments[0],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)):(n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o))},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=c.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(c.addClassName(o.root,"vis-top"),c.removeClassName(o.root,"vis-bottom")):(c.removeClassName(o.root,"vis-top"),c.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=c.option.asSize(e.maxHeight,""),o.root.style.minHeight=c.option.asSize(e.minHeight,""),o.root.style.width=c.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=c.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=c.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}},n.prototype._setDOM=function(){var t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;var i=t.root.width-t.left.width-t.right.width-t.borderRootWidth;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=t.background.height+"px",e.backgroundVertical.style.height=t.background.height+"px",e.backgroundHorizontal.style.height=t.centerContainer.height+"px",e.centerContainer.style.height=t.centerContainer.height+"px",e.leftContainer.style.height=t.leftContainer.height+"px",e.rightContainer.style.height=t.rightContainer.height+"px",e.background.style.width=t.background.width+"px",e.backgroundVertical.style.width=t.centerContainer.width+"px",e.backgroundHorizontal.style.width=t.background.width+"px",e.centerContainer.style.width=t.center.width+"px",e.top.style.width=t.top.width+"px",e.bottom.style.width=t.bottom.width+"px",e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=t.left.width+t.border.left+"px",e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=t.top.height+"px",e.centerContainer.style.left=t.left.width+"px",e.centerContainer.style.top=t.top.height+"px",e.leftContainer.style.left="0",e.leftContainer.style.top=t.top.height+"px",e.rightContainer.style.left=t.left.width+t.center.width+"px",e.rightContainer.style.top=t.top.height+"px",e.top.style.left=t.left.width+"px",e.top.style.top="0",e.bottom.style.left=t.left.width+"px",e.bottom.style.top=t.top.height+t.centerContainer.height+"px",e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"},n.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},n.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},n.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},n.prototype._toTime=function(t){return m.toTime(this,t,this.props.center.width)},n.prototype._toGlobalTime=function(t){return m.toTime(this,t,this.props.root.width)},n.prototype._toScreen=function(t){return m.toScreen(this,t,this.props.center.width)},n.prototype._toGlobalScreen=function(t){return m.toScreen(this,t,this.props.root.width)},n.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},n.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){if(1!=t.options.autoResize)return void t._stopAutoResize();t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.props.scrollbarWidth=c.getScrollBarWidth(),t.body.emitter.emit("_change")))},c.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},n.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(c.removeEventListener(window,"resize",this._onResize),this._onResize=null)},n.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},n.prototype._onPinch=function(t){this.touch.allowDragging=!1},n.prototype._onDrag=function(t){if(t&&this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),o!=i&&this.emit("verticalDrag")}},n.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},n.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){31104e9>t&&(this.scale="year",this.step=1e3),15552e9>t&&(this.scale="year",this.step=500),31104e8>t&&(this.scale="year",this.step=100),15552e8>t&&(this.scale="year",this.step=50),31104e7>t&&(this.scale="year",this.step=10),15552e7>t&&(this.scale="year",this.step=5),31104e6>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),2592e6>t&&(this.scale="month",this.step=1),432e6>t&&(this.scale="day",this.step=5),1728e5>t&&(this.scale="day",this.step=2),864e5>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),36e5>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),6e4>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),1e3>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":case"week":return 1==t.date();case"month":return 0==t.month();case"year":default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/a%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}var n=this.moment,s=this.moment(this.current),r=s.locale?s.locale("en"):s.lang("en"),a=this.step,h=[];switch(this.scale){case"millisecond":h.push(e(r)),h.push(t(r.milliseconds()));break;case"second":h.push(e(r)),h.push(t(r.seconds()));break;case"minute":h.push(e(r)),h.push(t(r.minutes()));break;case"hour":h.push("vis-h"+r.hours()+(4==this.step?"-h"+(r.hours()+4):"")),h.push(e(r)),h.push(t(r.hours()));break;case"weekday":h.push("vis-"+r.format("dddd").toLowerCase()),h.push(e(r)),h.push(i(r)),h.push(t(r.date()));break;case"day":h.push("vis-day"+r.date()),h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(e(r)),h.push(o(r)),h.push(this.step<=2?e(r):""),h.push(this.step<=2?"vis-"+r.format("dddd").toLowerCase():""), +h.push(t(r.date()-1));break;case"week":h.push("vis-week"+r.format("w")),h.push(i(r)),h.push(t(r.week()));break;case"month":h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(o(r)),h.push(t(r.month()));break;case"year":h.push("vis-year"+r.year()),h.push(function(t){return t.isSame(new Date,"year")?" vis-current-year":""}(r)),h.push(t(r.year()))}return h.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(2),s=i(16),r=i(9),a=i(98);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;o<30&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(var o in e.subgroupStack)this.subgroupStack[o]=e.subgroupStack[o],this.doInnerStack=this.doInnerStack||e.subgroupStack[o];this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var n=this;this.itemSet.body.emitter.on("checkRangedItems",function(){n.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(100);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?r.removeClassName(this.dom.inner,"vis-hidden"):r.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),r.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(r.removeClassName(this.dom.label,o),r.addClassName(this.dom.label,"expanded")):(r.removeClassName(this.dom.label,"expanded"),r.addClassName(this.dom.label,o))}else this.nestedGroups&&(this.nestedGroups=null,o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed",r.removeClassName(this.dom.label,o),r.removeClassName(this.dom.label,"expanded"),r.removeClassName(this.dom.label,"vis-nesting-group"));t&&t.nestedInGroup&&(r.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(r.removeClassName(this.dom.label,this.className),r.removeClassName(this.dom.foreground,this.className),r.removeClassName(this.dom.background,this.className),r.removeClassName(this.dom.axis,this.className)),r.addClassName(this.dom.label,n),r.addClassName(this.dom.foreground,n),r.addClassName(this.dom.background,n),r.addClassName(this.dom.axis,n),this.className=n),this.style&&(r.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(r.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype._didMarkerHeightChange=function(){var t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;var e={},i=0;r.forEach(this.items,function(t,o){if(t.dirty=!0,t.displayed){e[o]=t.redraw(!0),i=e[o].length}});if(i>0)for(var o=0;o0)for(var u=0;u0){var e=this;this.resetSubgroups(),r.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},o.prototype._isGroupVisible=function(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(r.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,r.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)},o.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.start,n=i-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(n)&&(n=e)}),t.subgroups[e].start=o,t.subgroups[e].end=new Date(n-1)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t,e=[];if("string"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(e.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=r.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}var p={},f=0;for(l=0;l0)for(var v=0;v=0&&(r=e[s],!n(r));s--)void 0===o[r.id]&&(o[r.id]=!0,i.push(r));for(s=t+1;st.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;!1===this.data.limitSize||void 0!==t&&!0!==t||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(179).default,f=function(){function t(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},c.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new p(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===(void 0===t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):!0!==e&&-1===e.indexOf(n)||(o=!0),!1!==o&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,o.innerHTML=!0===i?""+t+":":t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*e),d=a.max,h="range increased"),a.value=e}else a.value=o;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var c=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,c,a,l);""!==h&&this.popupHistory[p]!==d&&(this.popupHistory[p]=d,this._setupPopup(h,p))}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=c.copyAndExtendArray(e,r);if("function"==typeof n&&!1===(o=n(r,e))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==o){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=c.copyAndExtendArray(h,"enabled"),p=this._getValue(u);if(!0===p){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,p,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;ethis.imageObj.height?i=this.imageObj.width/this.imageObj.height:o=this.imageObj.height/this.imageObj.width),t=2*this.options.size*i,e=2*this.options.size*o}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(t,e,i,o){this.initContextForDraw(t,o),t.circle(e,i,o.size),this.performFill(t,o)}},{key:"_drawImageAtPosition",value:function(t,e){if(0!=this.imageObj.width){t.globalAlpha=1,this.enableShadow(t,e);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale),this.imageObj.drawImageAtPosition(t,i,this.left,this.top,this.width,this.height),this.disableShadow(t,e)}}},{key:"_drawImageLabel",value:function(t,e,i,o,n){var s,r=0;if(void 0!==this.height){r=.5*this.height;var a=this.labelModule.getTextSize(t,o,n);a.lineCount>=1&&(r+=a.height/2)}s=i+r,this.options.label&&(this.labelOffset=r),this.labelModule.draw(t,e,s,o,n,"hanging")}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(29),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(117).default,v=i(48).default,g=i(215).default,y=i(217).default,b=i(218).default,_=i(219).default,w=function(){function t(e,i,o,n){if((0,u.default)(this,t),void 0===i)throw new Error("No body provided");this.options=f.bridgeObject(o),this.globalOptions=o,this.defaultOptions=n,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new m(this.body,this.options,!0),this.setOptions(e)}return(0,p.default)(t,[{key:"setOptions",value:function(e){if(e){t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=parseFloat(e.value));var i=[e,this.options,this.defaultOptions];this.chooser=v.choosify("edge",i),this.updateLabelModule(e);var o=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),void 0===e.hidden&&void 0===e.physics||(o=!0),o}}},{key:"getFormattingValues",value:function(){var t=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,e=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,i=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,o=this.options.color.inherit,n={toArrow:t,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:o?void 0:this.options.color.color,inheritsColor:o,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){var s=this.options.selectionWidth;"function"==typeof s?n.width=s(n.width):"number"==typeof s&&(n.width+=s),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.highlight,n.shadow=this.options.shadow.enabled}else if(this.hover){var r=this.options.hoverWidth;"function"==typeof r?n.width=r(n.width):"number"==typeof r&&(n.width+=r),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.hover,n.shadow=this.options.shadow.enabled}}else"function"==typeof this.chooser&&(this.chooser(n,this.options.id,this.selected,this.hover),void 0!==n.color&&(n.inheritsColor=!1),!1===n.shadow&&(n.shadowColor===this.options.shadow.color&&n.shadowSize===this.options.shadow.size&&n.shadowX===this.options.shadow.x&&n.shadowY===this.options.shadow.y||(n.shadow=!0)));else n.shadow=this.options.shadow.enabled,n.width=Math.max(n.width,.3/this.body.view.scale);return n}},{key:"updateLabelModule",value:function(t){var e=[t,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=this.options.smooth,e=!1,i=!0;return void 0!==this.edgeType&&((this.edgeType instanceof y&&!0===t.enabled&&"dynamic"===t.type||this.edgeType instanceof g&&!0===t.enabled&&"cubicBezier"===t.type||this.edgeType instanceof b&&!0===t.enabled&&"dynamic"!==t.type&&"cubicBezier"!==t.type||this.edgeType instanceof _&&!1===t.type.enabled)&&(i=!1),!0===i&&(e=this.cleanup())),!0===i?!0===t.enabled?"dynamic"===t.type?(e=!0,this.edgeType=new y(this.options,this.body,this.labelModule)):"cubicBezier"===t.type?this.edgeType=new g(this.options,this.body,this.labelModule):this.edgeType=new b(this.options,this.body,this.labelModule):this.edgeType=new _(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode(),o={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(o.from=this.edgeType.getArrowData(t,"from",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.fromPoint=o.from.core)),e.toArrow&&(o.to=this.edgeType.getArrowData(t,"to",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.toPoint=o.to.core)),e.middleArrow&&(o.middle=this.edgeType.getArrowData(t,"middle",i,this.selected,this.hover,e)),this.edgeType.drawLine(t,e,this.selected,this.hover,i),this.drawArrows(t,o,e),this.drawLabel(t,i)}}},{key:"drawArrows",value:function(t,e,i){i.fromArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.from),i.middleArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.middle),i.toArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.to)}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i=this.from,o=this.to;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(t,this.selected,this.hover),i.id!=o.id){this.labelModule.pointToSelf=!1;var n=this.edgeType.getPoint(.5,e);t.save();var s=this._getRotation(t);0!=s.angle&&(t.translate(s.x,s.y),t.rotate(s.angle)),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover),t.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),n=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(t){var e=[];if(this.labelModule.visible()){var i=this._getRotation();v.pointInRect(this.labelModule.getSize(),t,i)&&e.push({edgeId:this.id,labelId:0})}var o={left:t.x,top:t.y};return this.isOverlappingWith(o)&&e.push({edgeId:this.id}),e}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=this.from.x,i=this.from.y,o=this.to.x,n=this.to.y,s=t.left,r=t.top;return this.edgeType.getDistanceToEdge(e,i,o,n,s,r)<10}return!1}},{key:"_getRotation",value:function(t){var e=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,e);void 0!==t&&this.labelModule.calculateLabelSize(t,this.selected,this.hover,i.x,i.y);var o={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return o;if("horizontal"===this.options.font.align)return o;var n=this.from.y-this.to.y,s=this.from.x-this.to.x,r=Math.atan2(n,s);return(r<-1&&s<0||r>0&&s<0)&&(r+=Math.PI),o.angle=r,o}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=["arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width","font","chosen","widthConstraint"];if(f.selectiveDeepExtend(r,t,e,i),v.isValidLabel(e.label)?t.label=e.label:t.label=void 0,f.mergeOptions(t,e,"smooth",o),f.mergeOptions(t,e,"shadow",o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:!0===i&&null===e.dashes&&(t.dashes=(0,d.default)(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),f.mergeOptions(t.scaling,e.scaling,"label",o.scaling)):!0===i&&null===e.scaling&&(t.scaling=(0,d.default)(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var h=e.arrows.toLowerCase();t.arrows.to.enabled=-1!=h.indexOf("to"),t.arrows.middle.enabled=-1!=h.indexOf("middle"),t.arrows.from.enabled=-1!=h.indexOf("from")}else{if("object"!==(0,a.default)(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+(0,s.default)(e.arrows));f.mergeOptions(t.arrows,e.arrows,"to",o.arrows),f.mergeOptions(t.arrows,e.arrows,"middle",o.arrows),f.mergeOptions(t.arrows,e.arrows,"from",o.arrows)}else!0===i&&null===e.arrows&&(t.arrows=(0,d.default)(o.arrows));if(void 0!==e.color&&null!==e.color){var l=e.color,u=t.color;if(n)f.deepExtend(u,o.color,!1,i);else for(var c in u)u.hasOwnProperty(c)&&delete u[c];if(f.isString(u))u.color=u,u.highlight=u,u.hover=u,u.inherit=!1,void 0===l.opacity&&(u.opacity=1);else{var p=!1;void 0!==l.color&&(u.color=l.color,p=!0),void 0!==l.highlight&&(u.highlight=l.highlight,p=!0),void 0!==l.hover&&(u.hover=l.hover,p=!0),void 0!==l.inherit&&(u.inherit=l.inherit),void 0!==l.opacity&&(u.opacity=Math.min(1,Math.max(0,l.opacity))),!0===p?u.inherit=!1:void 0===u.inherit&&(u.inherit="from")}}else!0===i&&null===e.color&&(t.color=f.bridgeObject(o.color));!0===i&&null===e.font&&(t.font=f.bridgeObject(o.font))}}]),t}();e.default=w},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_findBorderPositionBezier",value:function(t,e){var i,o,n,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),h=0,d=0,l=1,u=this.to,c=!1;for(t.id===this.from.id&&(u=this.from,c=!0);d<=l&&h<10;){var p=.5*(d+l);if(i=this.getPoint(p,a),o=Math.atan2(u.y-i.y,u.x-i.x),n=u.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=n-s,Math.abs(r)<.2)break;r<0?!1===c?d=p:l=p:!1===c?l=p:d=p,h++}return i.t=p,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;d<10;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=h1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),nh;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(22),n=i(41),s=i(56)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(50),n=i(13)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){var o=i(17),n=i(7),s=i(28);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){var o=i(84),n=i(58).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){var o=i(42),n=i(39),s=i(25),r=i(53),a=i(22),h=i(81),d=Object.getOwnPropertyDescriptor;e.f=i(21)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e,i){t.exports={default:i(162),__esModule:!0}},function(t,e,i){function o(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=o},function(t,e,i){function o(t,e){if(void 0===t)throw new Error("No container element defined");if(this.container=t,this.visible=!e||void 0==e.visible||e.visible,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var n=i(2);o.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return t/(this.values.length-1)*e+3},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e,i){function o(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}o.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.prototype.setRange=function(t,e,i,o){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(i))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t||0,this._end=e||0,this.setStep(i,o)},o.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),!0===this.prettyStep?this._step=o.calculatePrettyStep(t):this._step=t)},o.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),s<=0&&(s=1),s},o.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},o.prototype.getStep=function(){return this._step},o.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=o},function(t,e,i){function o(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function n(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+n(e)}function r(t,e,i,o){for(var n,r,a=0;ar&&(t=o(t)*r),i(e)>r&&(e=o(e)*r),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},o.prototype.getOffset=function(){return this.cameraOffset},o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())}, +o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=this.cameraRotation.z,i=this.cameraOffset.x,o=this.cameraOffset.y,n=Math.sin,s=Math.cos;this.cameraLocation.x=this.cameraLocation.x+i*s(e)+o*-n(e)*s(t),this.cameraLocation.y=this.cameraLocation.y+i*n(e)+o*s(e)*s(t),this.cameraLocation.z=this.cameraLocation.z+o*n(t)},t.exports=o},function(t,e,i){function o(t,e,i){this.dataGroup=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=t.getDistinctValues(this.column),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(12);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.dataGroup.getDataSet(),{filter:function(t){return t[i.column]==i.value}}).get();e=this.dataGroup._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0){var n=i.groupsData.getDataSet();n.get().forEach(function(t){if(t.nestedGroups){0!=t.showNested&&(t.showNested=!0);var e=[];t.nestedGroups.forEach(function(i){var o=n.get(i);o&&(o.nestedInGroup=t.id,0==t.showNested&&(o.visible=!1),e=e.concat(o))}),n.update(e,o)}})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(29),r=o(s),a=i(6),h=o(a),d=i(10),l=i(2),u=i(11),c=i(12),p=i(66),f=i(16),m=i(68),v=i(69),g=i(101),y=i(102),b=i(70),_=i(103),w=i(104).default,x="__ungrouped__",k="__background__";n.prototype=new f,n.types={background:_,box:g,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new v(k,null,this);s.show(),this.groups[k]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));["onDropObjectOnItem","onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this)),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;et&&o.push(h.id):h.lefte&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;i0){for(var w={},x=0;x<_;x++)l.forEach(b,function(t,e){w[e]=t[x]()});l.forEach(this.groups,function(t,e){if(e!==k){var i=w[e];s=i||s,g+=t.height}}),g=Math.max(g,y)}return g=Math.max(g,y),r.style.height=i(g),this.props.width=r.offsetWidth,this.props.height=g,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",this.initialItemSetDrawn=!0,s=this._isResized()||s},n.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t];return this.groups[e]||this.groups[x]||null},n.prototype._updateUngrouped=function(){var t,e,i=this.groups[x];if(this.groupsData){if(i){i.hide(),delete this.groups[x];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){i=new m(null,null,this),this.groups[x]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},n.prototype.getLabelSet=function(){return this.dom.labelSet},n.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(l.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;l.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},n.prototype.getItems=function(){return this.itemsData},n.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(l.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.groupsData;this.groupsData instanceof c&&(o=this.groupsData.getDataSet()),o.get().forEach(function(t){t.nestedGroups&&t.nestedGroups.forEach(function(e){var i=o.get(e);i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),o.update(i)})});var n=this.id;l.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype.getGroups=function(){return this.groupsData},n.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},n.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},n.prototype._getGroupId=function(t){return"background"==this._getType(t)&&void 0==t.group?k:this.groupsData?t.group:x},n.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,o=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=o?e._getType(o):null,a=n.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,o):(i=s.selected,e._removeItem(s),s=null)),!s&&o){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(o,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onAdd=n.prototype._onUpdate,n.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.body.emitter.emit("_change",{queue:!0}))},n.prototype._order=function(){l.forEach(this.groups,function(t){t.order()})},n.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},n.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==x||t==k)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=(0,r.default)(e.options);l.extend(n,{height:null}),o=new m(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder});t=this._orderNestedGroups(t);var e=!l.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},n.prototype._orderNestedGroups=function(t){var e=[];return t.forEach(function(t){var i=this.groupsData.get(t);if(i.nestedInGroup||e.push(t),i.nestedGroups){var o=this.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:this.options.groupOrder}),n=o.map(function(t){return t.id});e=e.concat(n)}},this),e},n.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i?i&&i.data&&i.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1,i&&i.add(t)},n.prototype._updateItem=function(t,e){t.setData(e);var i=this._getGroupId(t.data),o=this.groups[i];o?o&&o.data&&o.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1},n.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},n.prototype._constructByEndArray=function(t){for(var e=[],i=0;in)return}}if(i&&i!=this.groupTouchParams.group){var a=e.get(i.groupId),h=e.get(this.groupTouchParams.group.groupId);h&&a&&(this.options.groupOrderSwap(h,a,e),e.update(h),e.update(a));var d=e.getIds({order:this.options.groupOrder});if(!l.equalArray(d,this.groupTouchParams.originalOrder))for(var u=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(u.length,d.length),m=0,v=0,g=0;m=f)break;if(d[m+v]==p)v=1;else if(u[m+g]==p)g=1;else{var y=d.indexOf(u[m+g]),b=e.get(d[m+v]),_=e.get(u[m+g]);this.options.groupOrderSwap(b,_,e),e.update(b),e.update(_);var w=d[m+v];d[m+v]=u[m+g],d[y]=w,m++}}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var c=n[a];n[a]=s[a],n[h]=c,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){if(e!==this.itemFromRelatedTarget(t)){var i=e.getTitle();if(this.options.showTooltips&&i){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(i);var o=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(o)+o.offsetLeft,t.clientY-l.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){e!==this.itemFromRelatedTarget(t)&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){if(this.itemFromTarget(t)&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var e=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(e)+e.offsetLeft,t.clientY-l.getAbsoluteTop(e)+e.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onDropObjectOnItem=function(t){var e=this.itemFromTarget(t),i=JSON.parse(t.dataTransfer.getData("text"));this.options.onDropObjectOnItem(i,e)},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e,i,o=this,n=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e);var s,r,a=this.body.util.toTime(i),h=this.body.util.getScale(),d=this.body.util.getStep();"drop"==t.type?(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:n?n(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"!=r.type||r.end||(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)):(r={start:n?n(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type&&(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s));var u=this.groupFromTarget(t);u&&(r.group=u.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(e){e&&(o.itemsData.getDataSet().add(e),"drop"==t.type&&o.setSelection([e.id]))})}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){ +var i=this.options.multiselect?this.getSelection():[];if((t.srcEvent&&t.srcEvent.shiftKey||!1)&&this.options.multiselect){var o=this.itemsData.get(e.id).group,s=void 0;this.options.multiselectPerGroup&&i.length>0&&(s=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=s&&s!=o||i.push(e.id);var r=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||s==o){i=[];for(var a in this.items)if(this.items.hasOwnProperty(a)){var h=this.items[a],d=h.data.start,l=void 0!==h.data.end?h.data.end:d;!(d>=r.min&&l<=r.max)||this.options.multiselectPerGroup&&s!=this.itemsData.get(h.id).group||h instanceof _||i.push(h.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&es&&(s=r.top+r.height)}while(a)}}o.height=s-o.top+.5*i.item.vertical},e.nostack=function(t,i,o,n){for(var s=0;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ao[h].index&&(o[r].top+=o[h].height);for(var d=t[r],l=0;le.right&&t.top-i.vertical+.001e.top:t.left-i.horizontal+.001e.left&&t.top-i.vertical+.001e.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(38);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.options.align,i=this.width*t.getMillisecondsPerPixel();return"right"==e?this.data.start.getTime()>t.start&&this.data.start.getTime()-it.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-i/2t.start&&this.data.startt.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[o].height+"px",this.dom.box.style.top="top"==i?this.parent.top+this.parent.subgroups[o].top+"px":this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i){(0,s.default)(this,t),this.container=e,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),!0===t){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,h=!0;this.y-en-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s0){var r={};for(this._getRelevantData(s,r,o,n),this._applySampling(s,r),e=0;e0)switch(t.options.style){case"line":d.hasOwnProperty(s[e])||(d[s[e]]=m.calcPath(r[s[e]],t)),m.draw(d[s[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||v.draw(r[s[e]],t,this.framework)}}}return a.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,t[a].y=0==o?t[a].orginalY+r.y:t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,s,a,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],!0===r.stack&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));f.getStackedYRange(a,i,t,"__barStackLeft","left"),f.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),!0===t.master&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var r=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(r=this.props.titleCharHeight);var h=!0===this.options.icons?Math.max(this.options.iconWidth,r)+this.options.labelOffsetX+15:r+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-h&&!0===this.options.visible?(this.width=this.maxLabelSize+h,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+h),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>h.magnitudefactor*h.minorSteps[h.minorStepIdx]*.5?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}o.prototype.setCharHeight=function(t){this.majorCharHeight=t},o.prototype.setHeight=function(t){this.containerHeight=t},o.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(!0===n)break}},o.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])==0},o.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},o.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},o.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},o.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},o.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];r.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":h.drawIcon(this,o,n,t,e,i);break;case"points":case"point":d.drawIcon(this,o,n,t,e,i);break;case"bar":a.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){return 1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o,n=e;if(i)for(o=t.length-2;o>0;o--)n+=t[o][0]+","+t[o][1]+" ";else for(o=1;o0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+c*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+c*n.screen_y+_*s.screen_y)*f},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+p*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,s.default)(this.groups);t.sort(function(t,e){return t=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(n)&&a.nodes.push(n)}e.attr&&(n.attr=h(n.attr,e.attr))}function u(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=h({},t.edge);e.attr=h(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=h({},t.edge)),s.attr=h(s.attr||{},n),s}function p(){for(F=I.NULL,L="";" "===z||"\t"===z||"\n"===z||"\r"===z;)s();do{var t=!1;if("#"===z){for(var e=A-1;" "===R.charAt(e)||"\t"===R.charAt(e);)e--;if("\n"===R.charAt(e)||""===R.charAt(e)){for(;""!=z&&"\n"!=z;)s();t=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();t=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}t=!0}for(;" "===z||"\t"===z||"\n"===z||"\r"===z;)s()}while(t);if(""===z)return void(F=I.DELIMITER);var i=z+r();if(N[i])return F=I.DELIMITER,L=i,s(),void s();if(N[z])return F=I.DELIMITER,L=z,void s();if(a(z)||"-"===z){for(L+=z,s();a(z);)L+=z,s();return"false"===L?L=!1:"true"===L?L=!0:isNaN(Number(L))||(L=Number(L)),void(F=I.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)'"'===z?(L+=z,s()):"\\"===z&&"n"===r()?(L+="\n",s()):L+=z,s();if('"'!=z)throw x('End of string " expected');return s(),void(F=I.IDENTIFIER)}for(F=I.UNKNOWN;""!=z;)L+=z,s();throw new SyntaxError('Syntax error in part "'+k(L,30)+'"')}function f(){var t={};if(n(),p(),"strict"===L&&(t.strict=!0,p()),"graph"!==L&&"digraph"!==L||(t.type=L,p()),F===I.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),m(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==L&&"}"!=L;)v(t),";"===L&&p()}function v(t){var e=g(t);if(e)return void _(t,e);if(!y(t)){if(F!=I.IDENTIFIER)throw x("Identifier expected");var i=L;if(p(),"="===L){if(p(),F!=I.IDENTIFIER)throw x("Identifier expected");t[i]=L,p()}else b(t,i)}}function g(t){var e=null;if("subgraph"===L&&(e={},e.type="subgraph",p(),F===I.IDENTIFIER&&(e.id=L,p())),"{"===L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=L)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function y(t){return"node"===L?(p(),t.node=w(),"node"):"edge"===L?(p(),t.edge=w(),"edge"):"graph"===L?(p(),t.graph=w(),"graph"):null}function b(t,e){var i={id:e},o=w();o&&(i.attr=o),l(t,i),_(t,e)}function _(t,e){for(;"->"===L||"--"===L;){var i,o=L;p();var n=g(t);if(n)i=n;else{if(F!=I.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,l(t,{id:i}),p()}u(t,c(t,e,i,o,w())),e=i}}function w(){for(var t=null,e={dashed:!0,solid:!1,dotted:[1,5]};"["===L;){for(p(),t={};""!==L&&"]"!=L;){if(F!=I.IDENTIFIER)throw x("Attribute name expected");var i=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),F!=I.IDENTIFIER)throw x("Attribute value expected");var o=L;"style"===i&&(o=e[o]),d(t,i,o),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+k(L,30)+'" (char '+A+")")}function k(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},R="",A=0,z="",L="",F=I.NULL,B=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=C},function(t,e,i){function o(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a2&&void 0!==arguments[2]&&arguments[2];(0,d.default)(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=o}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(this.elementOptions=t,this.initFontOptions(t.font),p.isValidLabel(t.label)?this.labelDirty=!0:t.label="",void 0!==t.font&&null!==t.font)if("string"==typeof t.font)this.baseSize=this.fontOptions.size;else if("object"===(0,a.default)(t.font)){var e=t.font.size;void 0!==e&&(this.baseSize=e)}}},{key:"initFontOptions",value:function(e){var i=this;if(c.forEach(m,function(t){i.fontOptions[t]={}}),t.parseFontString(this.fontOptions,e))return void(this.fontOptions.vadjust=0);c.forEach(e,function(t,e){void 0!==t&&null!==t&&"object"!==(void 0===t?"undefined":(0,a.default)(t))&&(i.fontOptions[e]=t)})}},{key:"constrain",value:function(t){var e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=c.topMost(t,"widthConstraint");if("number"==typeof i)e.maxWdt=Number(i),e.minWdt=Number(i);else if("object"===(void 0===i?"undefined":(0,a.default)(i))){var o=c.topMost(t,["widthConstraint","maximum"]);"number"==typeof o&&(e.maxWdt=Number(o));var n=c.topMost(t,["widthConstraint","minimum"]);"number"==typeof n&&(e.minWdt=Number(n))}var s=c.topMost(t,"heightConstraint");if("number"==typeof s)e.minHgt=Number(s);else if("object"===(void 0===s?"undefined":(0,a.default)(s))){var r=c.topMost(t,["heightConstraint","minimum"]);"number"==typeof r&&(e.minHgt=Number(r));var h=c.topMost(t,["heightConstraint","valign"]);"string"==typeof h&&("top"!==h&&"bottom"!==h||(e.valign=h))}return e}},{key:"update",value:function(t,e){this.setOptions(t,!0),this.propagateFonts(e),c.deepExtend(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=p.choosify("label",e)}},{key:"adjustSizes",value:function(t){var e=t?t.right+t.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);var i=t?t.top+t.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(t,e){for(var i=0;i5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var r=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&r=this.elementOptions.scaling.label.maxVisible&&(r=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(t,o,n,e,i,s),this._drawBackground(t),this._drawText(t,e,this.size.yLine,s,r))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=this.getSize();t.fillRect(e.left,e.top,e.width,e.height)}}},{key:"_drawText",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",n=arguments[4],r=this._setAlignment(t,e,i,o),a=(0,s.default)(r,2);e=a[0],i=a[1],t.textAlign="left",e-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var h=0;h0&&(t.lineWidth=c.strokeWidth,t.strokeStyle=v,t.lineJoin="round"),t.fillStyle=m,c.strokeWidth>0&&t.strokeText(c.text,e+l,i+c.vadjust),t.fillText(c.text,e+l,i+c.vadjust),l+=c.width}i+=d.height}}}},{key:"_setAlignment",value:function(t,e,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){e=0,i=0;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=4):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t,e,i){var o=t||"#000000",n=i||"#ffffff";if(e<=this.elementOptions.scaling.label.drawThreshold){var s=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));o=c.overrideOpacity(o,s),n=c.overrideOpacity(n,s)}return[o,n]}},{key:"getTextSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(t,e,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var t=this.size.left,e=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":t=i,e=.5*-this.size.height;break;case"top":t=i,e=-(this.size.height+2);break;case"bottom":t=i,e=2}}return{left:t,top:e,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(t,e,i),this.size.left=o-.5*this.size.width,this.size.top=n-.5*this.size.height,this.size.yLine=n+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===s&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(t,e,i,o){var n=function(t,e,i){return"normal"===e?"mod"===i?"":t[i]:void 0!==t[e][i]?t[e][i]:t[i]},s={color:n(this.fontOptions,o,"color"),size:n(this.fontOptions,o,"size"),face:n(this.fontOptions,o,"face"),mod:n(this.fontOptions,o,"mod"),vadjust:n(this.fontOptions,o,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||i)&&("normal"===o&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?s.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(s,this.elementOptions.id,e,i));var r="";return void 0!==s.mod&&""!==s.mod&&(r+=s.mod+" "),r+=s.size+"px "+s.face,t.font=r.replace(/"/g,""),s.font=t.font,s.height=s.size,s}},{key:"differentState",value:function(t,e){return t!==this.selectedState||e!==this.hoverState}},{key:"_processLabelText",value:function(t,e,i,o){return new f(t,this,e,i).process(o)}},{key:"_processLabel",value:function(t,e,i){if(!1!==this.labelDirty||this.differentState(e,i)){var o=this._processLabelText(t,e,i,this.elementOptions.label);this.fontOptions.minWdt>0&&o.width0&&o.heighto.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=0,d=this.options.selfReferenceSize,l=void 0,u=void 0,c=void 0,p=void 0,f=void 0,m=.5*(s+r);s<=r&&h<10&&(m=.5*(s+r),l=this._pointOnCircle(o,n,d,m),u=Math.atan2(t.y-l.y,t.x-l.x),c=t.distanceToBorder(e,u),p=Math.sqrt(Math.pow(l.x-t.x,2)+Math.pow(l.y-t.y,2)),f=c-p,!(Math.abs(f)<.05));)f>0?a>0?s=m:r=m:a>0?r=m:s=m,h++;return l.t=m,l}},{key:"getLineWidth",value:function(t,e){return!0===t?Math.max(this.selectionWidth,.3/this.body.view.scale):!0===e?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i,o){if(!1!==e.inheritsColor){if("both"===e.inheritsColor&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,r=void 0;return s=this.from.options.color.highlight.border,r=this.to.options.color.highlight.border,!1===this.from.selected&&!1===this.to.selected?(s=l.overrideOpacity(this.from.options.color.border,e.opacity),r=l.overrideOpacity(this.to.options.color.border,e.opacity)):!0===this.from.selected&&!1===this.to.selected?r=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,r),n}return"to"===e.inheritsColor?l.overrideOpacity(this.to.options.color.border,e.opacity):l.overrideOpacity(this.from.options.color.border,e.opacity)}return l.overrideOpacity(e.color,e.opacity)}},{key:"_circle", +value:function(t,e,i,o,n){this.enableShadow(t,e),t.beginPath(),t.arc(i,o,n,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t,e)}},{key:"getDistanceToEdge",value:function(t,e,i,o,n,r,a,h){var d=0;if(this.from!=this.to)d=this._getDistanceToEdge(t,e,i,o,n,r,a);else{var l=this._getCircleData(void 0),u=(0,s.default)(l,3),c=u[0],p=u[1],f=u[2],m=c-n,v=p-r;d=Math.abs(Math.sqrt(m*m+v*v)-f)}return d}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:d<0&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"getArrowData",value:function(t,e,i,o,n,r){var a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=r.width;if("from"===e?(d=this.from,l=this.to,u=.1,c=r.fromArrowScale,p=r.fromArrowType):"to"===e?(d=this.to,l=this.from,u=-.1,c=r.toArrowScale,p=r.toArrowType):(d=this.to,l=this.from,c=r.middleArrowScale,p=r.middleArrowType),d!=l)if("middle"!==e)if(!0===this.options.smooth.enabled){h=this.findBorderPosition(d,t,{via:i});var m=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);a=Math.atan2(h.y-m.y,h.x-m.x)}else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.5,i);else{var v=this._getCircleData(t),g=(0,s.default)(v,3),y=g[0],b=g[1],_=g[2];"from"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),a=-2*h.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),a=-2*h.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(h=this._pointOnCircle(y,b,_,.175),a=3.9269908169872414)}"middle"===e&&c<0&&(f*=-1);var w=15*c+3*f;return{point:h,core:{x:h.x-.9*w*Math.cos(a),y:h.y-.9*w*Math.sin(a)},angle:a,length:w,type:p}}},{key:"drawArrowHead",value:function(t,e,i,o,n){t.strokeStyle=this.getColor(t,e,i,o),t.fillStyle=t.strokeStyle,t.lineWidth=e.width,u.draw(t,n),this.enableShadow(t,e),t.fill(),this.disableShadow(t,e)}},{key:"enableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:"disableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(4),a=o(r),h=i(5),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"transform",value:function(t,e){t instanceof Array||(t=[t]);for(var i=e.point.x,o=e.point.y,n=e.angle,s=e.length,r=0;r0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;s0&&this._getForceContributions(n.root,t)}}},{key:"_getForceContributions",value:function(t,e){this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?this._getForceContributions(t,e):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&o.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;h0&&(lr&&(r=l),ua&&(a=u))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var p=Math.max(1e-5,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var y=0;y0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.centerOfMass,o=t.mass+e.options.mass,n=1/o;i.x=i.x*t.mass+e.x*e.options.mass,i.x*=n,i.y=i.y*t.mass+e.y*e.options.mass,i.y*=n,t.mass=o;var s=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?o.maxY>e.y?"NW":"SW":o.maxY>e.y?"NE":"SE",this._placeInRegion(t,e,n)}},{key:"_placeInRegion",value:function(t,e,i){var o=t.children[i];switch(o.childrenCount){case 0:o.children.data=e,o.childrenCount=1,this._updateBranchMass(o,e);break;case 1:o.children.data.x===e.x&&o.children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(o),this._placeInTree(o,e));break;case 4:this._placeInTree(o,e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(54),n=i(39),s=i(59),r={};i(26)(r,i(13)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(20),n=i(27),s=i(33);t.exports=i(21)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(25),n=i(132),s=i(133);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if((a=h[l++])!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(55),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e,i){var o=i(55),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(18).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(55),n=i(51);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):r-56320+(s-55296<<10)+65536)}}},function(t,e,i){var o=i(27),n=i(137);t.exports=i(7).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(86),n=i(13)("iterator"),s=i(31);t.exports=i(7).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){i(139);var o=i(7).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(17);o(o.S,"Object",{create:i(54)})},function(t,e,i){i(141),t.exports=i(7).Object.keys},function(t,e,i){var o=i(41),n=i(33);i(87)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(143),__esModule:!0}},function(t,e,i){i(60),i(49),t.exports=i(61).f("iterator")},function(t,e,i){t.exports={default:i(145),__esModule:!0}},function(t,e,i){i(146),i(151),i(152),i(153),t.exports=i(7).Symbol},function(t,e,i){var o=i(18),n=i(22),s=i(21),r=i(17),a=i(83),h=i(147).KEY,d=i(28),l=i(57),u=i(59),c=i(40),p=i(13),f=i(61),m=i(62),v=i(148),g=i(149),y=i(27),b=i(25),_=i(53),w=i(39),x=i(54),k=i(150),S=i(89),D=i(20),M=i(33),C=S.f,O=D.f,E=k.f,T=o.Symbol,P=o.JSON,I=P&&P.stringify,N=p("_hidden"),R=p("toPrimitive"),A={}.propertyIsEnumerable,z=l("symbol-registry"),L=l("symbols"),F=l("op-symbols"),B=Object.prototype,j="function"==typeof T,H=o.QObject,W=!H||!H.prototype||!H.prototype.findChild,Y=s&&d(function(){return 7!=x(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=C(B,e);o&&delete B[e],O(t,e,i),o&&t!==B&&O(B,e,o)}:O,G=function(t){var e=L[t]=x(T.prototype);return e._k=t,e},V=j&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},U=function(t,e,i){return t===B&&U(F,e,i),y(t),e=_(e,!0),y(i),n(L,e)?(i.enumerable?(n(t,N)&&t[N][e]&&(t[N][e]=!1),i=x(i,{enumerable:w(0,!1)})):(n(t,N)||O(t,N,w(1,{})),t[N][e]=!0),Y(t,e,i)):O(t,e,i)},q=function(t,e){y(t);for(var i,o=v(e=b(e)),n=0,s=o.length;s>n;)U(t,i=o[n++],e[i]);return t},X=function(t,e){return void 0===e?x(t):q(x(t),e)},Z=function(t){var e=A.call(this,t=_(t,!0));return!(this===B&&n(L,t)&&!n(F,t))&&(!(e||!n(this,t)||!n(L,t)||n(this,N)&&this[N][t])||e)},K=function(t,e){if(t=b(t),e=_(e,!0),t!==B||!n(L,e)||n(F,e)){var i=C(t,e);return!i||!n(L,e)||n(t,N)&&t[N][e]||(i.enumerable=!0),i}},J=function(t){for(var e,i=E(b(t)),o=[],s=0;i.length>s;)n(L,e=i[s++])||e==N||e==h||o.push(e);return o},$=function(t){for(var e,i=t===B,o=E(i?F:b(t)),s=[],r=0;o.length>r;)!n(L,e=o[r++])||i&&!n(B,e)||s.push(L[e]);return s};j||(T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=c(arguments.length>0?arguments[0]:void 0),e=function(i){this===B&&e.call(F,i),n(this,N)&&n(this[N],t)&&(this[N][t]=!1),Y(this,t,w(1,i))};return s&&W&&Y(B,t,{configurable:!0,set:e}),G(t)},a(T.prototype,"toString",function(){return this._k}),S.f=K,D.f=U,i(88).f=k.f=J,i(42).f=Z,i(63).f=$,s&&!i(52)&&a(B,"propertyIsEnumerable",Z,!0),f.f=function(t){return G(p(t))}),r(r.G+r.W+r.F*!j,{Symbol:T});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)p(Q[tt++]);for(var et=M(p.store),it=0;et.length>it;)m(et[it++]);r(r.S+r.F*!j,"Symbol",{for:function(t){return n(z,t+="")?z[t]:z[t]=T(t)},keyFor:function(t){if(!V(t))throw TypeError(t+" is not a symbol!");for(var e in z)if(z[e]===t)return e},useSetter:function(){W=!0},useSimple:function(){W=!1}}),r(r.S+r.F*!j,"Object",{create:X,defineProperty:U,defineProperties:q,getOwnPropertyDescriptor:K,getOwnPropertyNames:J,getOwnPropertySymbols:$}),P&&r(r.S+r.F*(!j||d(function(){var t=T();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!V(t)){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);return e=o[1],"function"==typeof e&&(i=e),!i&&g(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!V(e))return e}),o[1]=e,I.apply(P,o)}}}),T.prototype[R]||i(26)(T.prototype,R,T.prototype.valueOf),u(T,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(40)("meta"),n=i(32),s=i(22),r=i(20).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(28)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},c=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},p=function(t){return d&&f.NEED&&h(t)&&!s(t,o)&&l(t),t},f=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:c,onFreeze:p}},function(t,e,i){var o=i(33),n=i(63),s=i(42);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e,i){var o=i(50);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(25),n=i(88).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e){},function(t,e,i){i(62)("asyncIterator")},function(t,e,i){i(62)("observable")},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(0,function(){function e(){return Co.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function n(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function A(t,e){var i=t.toLowerCase();Lo[i]=Lo[i+"s"]=Lo[e]=t}function z(t){return"string"==typeof t?Lo[t]||Lo[t.toLowerCase()]:void 0}function L(t){var e,i,o={};for(i in t)d(t,i)&&(e=z(i))&&(o[e]=t[i]);return o}function F(t,e){Fo[t]=e}function B(t){var e=[];for(var i in t)e.push({unit:i,priority:Fo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,e,i){var o=""+Math.abs(t),n=e-o.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function H(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Wo[t]=n),e&&(Wo[e[0]]=function(){return j(n.apply(this,arguments),e[1],e[2])}),i&&(Wo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Y(t){var e,i,o=t.match(Bo);for(e=0,i=o.length;e=0&&jo.test(t);)t=t.replace(jo,i),jo.lastIndex=0,o-=1;return t}function U(t,e,i){an[t]=D(e)?e:function(t,o){return t&&i?i:e}}function q(t,e){return d(an,t)?an[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return Z(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Z(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),r(e)&&(o=function(t,i){i[e]=_(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var o=7+e-i;return-(7+_t(t,0,o).getUTCDay()-e)%7+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=Q(s)+d):d>Q(t)?(s=t+1,r=d-Q(t)):(s=t,r=d),{year:s,dayOfYear:r}}function kt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(Q(t)-o+n)/7}function Dt(t){return kt(t,this._week.dow,this._week.doy).week}function Mt(){return this._week.dow}function Ct(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=kt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Tt(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Nt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function At(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=u([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=yn.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?-1!==(n=yn.call(this._weekdaysParse,r))?n:-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"ddd"===e?-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):-1!==(n=yn.call(this._minWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null)}function zt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return At.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=u([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Lt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Tt(t,this.localeData()),this.add(t-e,"d")):e}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Bt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=En),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ht(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Tn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Wt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Pn),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Yt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=Z(a[e]),h[e]=Z(h[e]),d[e]=Z(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Gt(){return this.hours()%12||12}function Vt(){return this.hours()||24}function Ut(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,i,o,n,s=0;s0;){if(o=$t(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return null}function $t(e){var i=null;if(!zn[e]&&void 0!==t&&t&&t.exports)try{i=In._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return zn[e]}function Qt(t,e){var i;return t&&(i=s(e)?ie(t):te(t,e))&&(In=i),In._abbr}function te(t,e){if(null!==e){var i=An;if(e.abbr=t,null!=zn[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=zn[t]._config;else if(null!=e.parentLocale){if(null==zn[e.parentLocale])return Ln[e.parentLocale]||(Ln[e.parentLocale]=[]),Ln[e.parentLocale].push({name:t,config:e}),null;i=zn[e.parentLocale]._config}return zn[t]=new O(C(i,e)),Ln[t]&&Ln[t].forEach(function(t){te(t.name,t.config)}),Qt(t),zn[t]}return delete zn[t],null}function ee(t,e){if(null!=e){var i,o=An;null!=zn[t]&&(o=zn[t]._config),e=C(o,e),i=new O(e),i.parentLocale=zn[t],zn[t]=i,Qt(t)}else null!=zn[t]&&(null!=zn[t].parentLocale?zn[t]=zn[t].parentLocale:null!=zn[t]&&delete zn[t]);return zn[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return In;if(!i(t)){if(e=$t(t))return e;t=[t]}return Jt(t)}function oe(){return Io(zn)}function ne(t){var e,i=t._a;return i&&-2===p(t).overflow&&(e=i[ln]<0||i[ln]>11?ln:i[un]<1||i[un]>ht(i[dn],i[ln])?un:i[cn]<0||i[cn]>24||24===i[cn]&&(0!==i[pn]||0!==i[fn]||0!==i[mn])?cn:i[pn]<0||i[pn]>59?pn:i[fn]<0||i[fn]>59?fn:i[mn]<0||i[mn]>999?mn:-1,p(t)._overflowDayOfYear&&(eun)&&(e=un),p(t)._overflowWeeks&&-1===e&&(e=vn),p(t)._overflowWeekday&&-1===e&&(e=gn),p(t).overflow=e),t}function se(t,e,i){return null!=t?t:null!=e?e:i}function re(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function ae(t){var e,i,o,n,s=[];if(!t._d){for(o=re(t),t._w&&null==t._a[un]&&null==t._a[ln]&&he(t),null!=t._dayOfYear&&(n=se(t._a[dn],o[dn]),(t._dayOfYear>Q(n)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),i=_t(n,0,t._dayOfYear),t._a[ln]=i.getUTCMonth(),t._a[un]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[cn]&&0===t._a[pn]&&0===t._a[fn]&&0===t._a[mn]&&(t._nextDay=!0,t._a[cn]=0),t._d=(t._useUTC?_t:bt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[cn]=24),t._w&&void 0!==t._w.d&&t._w.d!==t._d.getDay()&&(p(t).weekdayMismatch=!0)}}function he(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=se(e.GG,t._a[dn],kt(De(),1,4).year),o=se(e.W,1),((n=se(e.E,1))<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=kt(De(),s,r);i=se(e.gg,t._a[dn],d.year),o=se(e.w,d.week),null!=e.d?((n=e.d)<0||n>6)&&(h=!0):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[dn]=a.year,t._dayOfYear=a.dayOfYear)}function de(t){var e,i,o,n,s,r,a=t._i,h=Fn.exec(a)||Bn.exec(a);if(h){for(p(t).iso=!0,e=0,i=Hn.length;e0&&p(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Wo[s]?(o?p(t).empty=!1:p(t).unusedTokens.push(s),$(s,o,t)):t._strict&&!o&&p(t).unusedTokens.push(s);p(t).charsLeftOver=h-d,a.length>0&&p(t).unusedInput.push(a),t._a[cn]<=12&&!0===p(t).bigHour&&t._a[cn]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[cn]=ye(t._locale,t._a[cn],t._meridiem),ae(t),ne(t)}function ye(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function be(t){var e,i,o,n,s;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ue(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=xe(t),t._a){var e=t._isUTC?u(t._a):De(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function qe(){return!!this.isValid()&&!this._isUTC}function Xe(){return!!this.isValid()&&this._isUTC}function Ze(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ke(t,e){var i,o,n,s=t,a=null;return Ne(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=Jn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[un])*i,h:_(a[cn])*i,m:_(a[pn])*i,s:_(a[fn])*i,ms:_(Re(1e3*a[mn]))*i}):(a=$n.exec(t))?(i="-"===a[1]?-1:(a[1],1),s={y:Je(a[2],i),M:Je(a[3],i),w:Je(a[4],i),d:Je(a[5],i),h:Je(a[6],i),m:Je(a[7],i),s:Je(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Qe(De(s.from),De(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ie(s),Ne(t)&&d(t,"_locale")&&(o._locale=t._locale),o}function Je(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $e(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Qe(t,e){var i;return t.isValid()&&e.isValid()?(e=Le(e,t),t.isBefore(e)?i=$e(t,e):(i=$e(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ti(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ke(i,o),ei(this,n,t),this}}function ei(t,i,o,n){var s=i._milliseconds,r=Re(i._days),a=Re(i._months);t.isValid()&&(n=null==n||n,a&&pt(t,ot(t,"Month")+a*o),r&&nt(t,"Date",ot(t,"Date")+r*o),s&&t._d.setTime(t._d.valueOf()+s*o),n&&e.updateOffset(t,r||a))}function ii(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function oi(t,i){var o=t||De(),n=Le(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(D(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,De(o)))}function ni(){return new g(this)}function si(t,e){var i=y(t)?t:De(t);return!(!this.isValid()||!i.isValid())&&(e=z(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?G(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):D(Date.prototype.toISOString)?this.toDate().toISOString():G(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function mi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(i+o+"-MM-DD[T]HH:mm:ss.SSS"+n)}function vi(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=G(this,t);return this.localeData().postformat(i)}function gi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function yi(t){return this.from(De(),t)}function bi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function _i(t){return this.to(De(),t)}function wi(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function xi(){return this._locale}function ki(t){switch(t=z(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Si(t){return void 0===(t=z(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Di(){return this._d.valueOf()-6e4*(this._offset||0)}function Mi(){return Math.floor(this.valueOf()/1e3)}function Ci(){return new Date(this.valueOf())}function Oi(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ei(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ti(){return this.isValid()?this.toISOString():null}function Pi(){return f(this)}function Ii(){return l({},p(this))}function Ni(){return p(this).overflow}function Ri(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ai(t,e){H(0,[t,t.length],0,e)}function zi(t){return ji.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Li(t){return ji.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Fi(){return St(this.year(),1,4)}function Bi(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function ji(t,e,i,o,n){var s;return null==t?kt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Hi.call(this,t,e,i,o,n))}function Hi(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Wi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Yi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Gi(t,e){e[mn]=_(1e3*("0."+t))}function Vi(){return this._isUTC?"UTC":""}function Ui(){return this._isUTC?"Coordinated Universal Time":""}function qi(t){return De(1e3*t)}function Xi(){return De.apply(null,arguments).parseZone()}function Zi(t){return t}function Ki(t,e,i,o){var n=ie(),s=u().set(o,e);return n[i](s,t)}function Ji(t,e,i){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return Ki(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ki(t,o,i,"month");return n}function $i(t,e,i,o){"boolean"==typeof t?(r(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,r(e)&&(i=e,e=void 0),e=e||"");var n=ie(),s=t?n._week.dow:0;if(null!=i)return Ki(e,(i+s)%7,o,"day");var a,h=[];for(a=0;a<7;a++)h[a]=Ki(e,(a+s)%7,o,"day");return h}function Qi(t,e){return Ji(t,e,"months")}function to(t,e){return Ji(t,e,"monthsShort")}function eo(t,e,i){return $i(t,e,i,"weekdays")}function io(t,e,i){return $i(t,e,i,"weekdaysShort")}function oo(t,e,i){return $i(t,e,i,"weekdaysMin")}function no(){var t=this._data;return this._milliseconds=ds(this._milliseconds),this._days=ds(this._days),this._months=ds(this._months),t.milliseconds=ds(t.milliseconds),t.seconds=ds(t.seconds),t.minutes=ds(t.minutes),t.hours=ds(t.hours),t.months=ds(t.months),t.years=ds(t.years),this}function so(t,e,i,o){var n=Ke(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function ro(t,e){return so(this,t,e,1)}function ao(t,e){return so(this,t,e,-1)}function ho(t){return t<0?Math.floor(t):Math.ceil(t)}function lo(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*ho(co(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b(uo(r)),a+=n, +r-=ho(co(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function uo(t){return 4800*t/146097}function co(t){return 146097*t/4800}function po(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if("month"===(t=z(t))||"year"===t)return e=this._days+o/864e5,i=this._months+uo(e),"month"===t?i:i/12;switch(e=this._days+Math.round(co(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function fo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function mo(t){return function(){return this.as(t)}}function vo(){return Ke(this)}function go(t){return t=z(t),this.isValid()?this[t+"s"]():NaN}function yo(t){return function(){return this.isValid()?this._data[t]:NaN}}function bo(){return b(this.days()/7)}function _o(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function wo(t,e,i){var o=Ke(t).abs(),n=Ds(o.as("s")),s=Ds(o.as("m")),r=Ds(o.as("h")),a=Ds(o.as("d")),h=Ds(o.as("M")),d=Ds(o.as("y")),l=n<=Ms.ss&&["s",n]||n0,l[4]=i,_o.apply(null,l)}function xo(t){return void 0===t?Ds:"function"==typeof t&&(Ds=t,!0)}function ko(t,e){return void 0!==Ms[t]&&(void 0===e?Ms[t]:(Ms[t]=e,"s"===t&&(Ms.ss=e-1),!0))}function So(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=wo(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Do(t){return(t>0)-(t<0)||+t}function Mo(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Cs(this._milliseconds)/1e3,n=Cs(this._days),s=Cs(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o?o.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var p=c<0?"-":"",f=Do(this._months)!==Do(c)?"-":"",m=Do(this._days)!==Do(c)?"-":"",v=Do(this._milliseconds)!==Do(c)?"-":"";return p+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(h?m+h+"D":"")+(d||l||u?"T":"")+(d?v+d+"H":"")+(l?v+l+"M":"")+(u?v+u+"S":"")}var Co,Oo;Oo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var yn,bn=it("FullYear",!0);yn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:m()}),Xn=function(){return Date.now?Date.now():+new Date},Zn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ae("Z",":"),Ae("ZZ",""),U("Z",nn),U("ZZ",nn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=ze(nn,t)});var Kn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Jn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,$n=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Ke.fn=Ie.prototype,Ke.invalid=Pe;var Qn=ti(1,"add"),ts=ti(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var es=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ai("gggg","weekYear"),Ai("ggggg","weekYear"),Ai("GGGG","isoWeekYear"),Ai("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),U("G",en),U("g",en),U("GG",Xo,Go),U("gg",Xo,Go),U("GGGG",$o,Uo),U("gggg",$o,Uo),U("GGGGG",Qo,qo),U("ggggg",Qo,qo),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),J(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),A("quarter","Q"),F("quarter",7),U("Q",Yo),K("Q",function(t,e){e[ln]=3*(_(t)-1)}),H("D",["DD",2],"Do","date"),A("date","D"),F("date",9),U("D",Xo),U("DD",Xo,Go),U("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],un),K("Do",function(t,e){e[un]=_(t.match(Xo)[0],10)});var is=it("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),F("dayOfYear",4),U("DDD",Jo),U("DDDD",Vo),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),H("m",["mm",2],0,"minute"),A("minute","m"),F("minute",14),U("m",Xo),U("mm",Xo,Go),K(["m","mm"],pn);var os=it("Minutes",!1);H("s",["ss",2],0,"second"),A("second","s"),F("second",15),U("s",Xo),U("ss",Xo,Go),K(["s","ss"],fn);var ns=it("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),A("millisecond","ms"),F("millisecond",16),U("S",Jo,Yo),U("SS",Jo,Go),U("SSS",Jo,Vo);var ss;for(ss="SSSS";ss.length<=9;ss+="S")U(ss,tn);for(ss="S";ss.length<=9;ss+="S")K(ss,Gi);var rs=it("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var as=g.prototype;as.add=Qn,as.calendar=oi,as.clone=ni,as.diff=ui,as.endOf=Si,as.format=vi,as.from=gi,as.fromNow=yi,as.to=bi,as.toNow=_i,as.get=st,as.invalidAt=Ni,as.isAfter=si,as.isBefore=ri,as.isBetween=ai,as.isSame=hi,as.isSameOrAfter=di,as.isSameOrBefore=li,as.isValid=Pi,as.lang=es,as.locale=wi,as.localeData=xi,as.max=qn,as.min=Un,as.parsingFlags=Ii,as.set=rt,as.startOf=ki,as.subtract=ts,as.toArray=Oi,as.toObject=Ei,as.toDate=Ci,as.toISOString=fi,as.inspect=mi,as.toJSON=Ti,as.toString=pi,as.unix=Mi,as.valueOf=Di,as.creationData=Ri,as.year=bn,as.isLeapYear=et,as.weekYear=zi,as.isoWeekYear=Li,as.quarter=as.quarters=Wi,as.month=ft,as.daysInMonth=mt,as.week=as.weeks=Ot,as.isoWeek=as.isoWeeks=Et,as.weeksInYear=Bi,as.isoWeeksInYear=Fi,as.date=is,as.day=as.days=Lt,as.weekday=Ft,as.isoWeekday=Bt,as.dayOfYear=Yi,as.hour=as.hours=Rn,as.minute=as.minutes=os,as.second=as.seconds=ns,as.millisecond=as.milliseconds=rs,as.utcOffset=Be,as.utc=He,as.local=We,as.parseZone=Ye,as.hasAlignedHourOffset=Ge,as.isDST=Ve,as.isLocal=qe,as.isUtcOffset=Xe,as.isUtc=Ze,as.isUTC=Ze,as.zoneAbbr=Vi,as.zoneName=Ui,as.dates=k("dates accessor is deprecated. Use date instead.",is),as.months=k("months accessor is deprecated. Use month instead",ft),as.years=k("years accessor is deprecated. Use year instead",bn),as.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",je),as.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ue);var hs=O.prototype;hs.calendar=E,hs.longDateFormat=T,hs.invalidDate=P,hs.ordinal=I,hs.preparse=Zi,hs.postformat=Zi,hs.relativeTime=N,hs.pastFuture=R,hs.set=M,hs.months=dt,hs.monthsShort=lt,hs.monthsParse=ct,hs.monthsRegex=gt,hs.monthsShortRegex=vt,hs.week=Dt,hs.firstDayOfYear=Ct,hs.firstDayOfWeek=Mt,hs.weekdays=It,hs.weekdaysMin=Rt,hs.weekdaysShort=Nt,hs.weekdaysParse=zt,hs.weekdaysRegex=jt,hs.weekdaysShortRegex=Ht,hs.weekdaysMinRegex=Wt,hs.isPM=Xt,hs.meridiem=Zt,Qt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=k("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ie);var ds=Math.abs,ls=mo("ms"),us=mo("s"),cs=mo("m"),ps=mo("h"),fs=mo("d"),ms=mo("w"),vs=mo("M"),gs=mo("y"),ys=yo("milliseconds"),bs=yo("seconds"),_s=yo("minutes"),ws=yo("hours"),xs=yo("days"),ks=yo("months"),Ss=yo("years"),Ds=Math.round,Ms={ss:44,s:45,m:45,h:22,d:26,M:11},Cs=Math.abs,Os=Ie.prototype;return Os.isValid=Te,Os.abs=no,Os.add=ro,Os.subtract=ao,Os.as=po,Os.asMilliseconds=ls,Os.asSeconds=us,Os.asMinutes=cs,Os.asHours=ps,Os.asDays=fs,Os.asWeeks=ms,Os.asMonths=vs,Os.asYears=gs,Os.valueOf=fo,Os._bubble=lo,Os.clone=vo,Os.get=go,Os.milliseconds=ys,Os.seconds=bs,Os.minutes=_s,Os.hours=ws,Os.days=xs,Os.weeks=bo,Os.months=ks,Os.years=Ss,Os.humanize=So,Os.toISOString=Mo,Os.toString=Mo,Os.toJSON=Mo,Os.locale=wi,Os.localeData=xi,Os.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Mo),Os.lang=es,H("X",0,0,"unix"),H("x",0,0,"valueOf"),U("x",en),U("X",sn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.19.1",function(t){Co=t}(De),e.fn=as,e.min=Ce,e.max=Oe,e.now=Xn,e.utc=u,e.unix=qi,e.months=Qi,e.isDate=a,e.locale=Qt,e.invalid=m,e.duration=Ke,e.isMoment=y,e.weekdays=eo,e.parseZone=Xi,e.localeData=ie,e.isDuration=Ne,e.monthsShort=to,e.weekdaysMin=oo,e.defineLocale=te,e.updateLocale=ee,e.locales=oe,e.weekdaysShort=io,e.normalizeUnits=z,e.relativeTimeRounding=xo,e.relativeTimeThreshold=ko,e.calendarFormat=ii,e.prototype=as,e})}).call(e,i(155)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=156},function(t,e,i){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;p<6;p++)s[n+p]=c[p];return e||o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,i(158))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Graph3d=i(161),e.graph3d={Camera:i(95),Filter:i(96),Point2d:i(91),Point3d:i(34),Slider:i(92),StepNumber:i(93)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){var o=i(7),n=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return n.stringify.apply(n,arguments)}},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.dataGroup=new _,this.dataPoints=null,this.create(),f.setDefaults(o.DEFAULTS,this),this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.setOptions(i),this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(90),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(44),d=i(2),l=i(34),u=i(91),c=i(92),p=i(93),f=i(94),m=i(15).default,v=i(15),g=v.printStyle,y=i(172),b=y.allOptions,_=i(173);o.STYLE=f.STYLE;o.DEFAULTS={width:"400px",height:"400px",filterLabel:"time",legendLabel:"value",xLabel:"x",yLabel:"y",zLabel:"z",xValueLabel:function(t){return t},yValueLabel:function(t){return t},zValueLabel:function(t){return t},showXAxis:!0,showYAxis:!0,showZAxis:!0,showGrid:!0,showPerspective:!0,showShadow:!1,keepAspectRatio:!0,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:void 0,animationInterval:1e3,animationPreload:!1,animationAutoStart:void 0,axisColor:"#4D4D4D",gridColor:"#D3D3D3",xCenter:"55%",yCenter:"50%",style:o.STYLE.DOT,tooltip:!1,tooltipStyle:{content:{padding:"10px",border:"1px solid #4d4d4d",color:"#1a1a1a",background:"rgba(255,255,255,0.7)",borderRadius:"2px",boxShadow:"5px 5px 10px rgba(128,128,128,0.5)"},line:{height:"40px",width:"0",borderLeft:"1px solid #4d4d4d"},dot:{height:"0",width:"0",border:"5px solid #4d4d4d",borderRadius:"5px"}},dataColor:{fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:void 0,backgroundColor:void 0,xBarWidth:void 0,yBarWidth:void 0,valueMin:void 0,valueMax:void 0,xMin:void 0,xMax:void 0,xStep:void 0,yMin:void 0,yMax:void 0,yStep:void 0,zMin:void 0,zMax:void 0,zStep:void 0},h(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range()),this.keepAspectRatio&&(this.scale.x0&&(r[n-1].pointNext=r[n]);return r},o.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,i=function(t){e._onMouseDown(t)},o=function(t){e._onTouchStart(t)},n=function(t){e._onWheel(t)},s=function(t){e._onTooltip(t)},r=function(t){e._onClick(t)};d.addEventListener(this.frame.canvas,"mousedown",i),d.addEventListener(this.frame.canvas,"touchstart",o),d.addEventListener(this.frame.canvas,"mousewheel",n),d.addEventListener(this.frame.canvas,"mousemove",s),d.addEventListener(this.frame.canvas,"click",r),this.containerElement.appendChild(this.frame)},o.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},o.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},o.prototype.animationStart=function(){if(this.animationAutoStart&&this.dataGroup.dataFilter){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()}},o.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},o.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},o.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},o.prototype._readData=function(t){this.dataPoints=this.dataGroup.initializeData(this,t,this.style),this._initializeRanges(),this._redrawFilter()},o.prototype.setData=function(t){void 0!==t&&null!==t&&(this._readData(t),this.redraw(),this.animationStart())},o.prototype.setOptions=function(t){if(void 0!==t){!0===m.validate(t,b)&&console.log("%cErrors have been found in the supplied options object.",g),this.animationStop(),f.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.setData(this.dataGroup.getDataTable()),this.animationStart()}},o.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case o.STYLE.BAR:t=o.prototype._redrawBarGraphPoint;break;case o.STYLE.BARCOLOR:t=o.prototype._redrawBarColorGraphPoint;break;case o.STYLE.BARSIZE:t=o.prototype._redrawBarSizeGraphPoint;break;case o.STYLE.DOT:t=o.prototype._redrawDotGraphPoint;break;case o.STYLE.DOTLINE:t=o.prototype._redrawDotLineGraphPoint;break;case o.STYLE.DOTCOLOR:t=o.prototype._redrawDotColorGraphPoint;break;case o.STYLE.DOTSIZE:t=o.prototype._redrawDotSizeGraphPoint;break;case o.STYLE.SURFACE:t=o.prototype._redrawSurfaceGraphPoint;break;case o.STYLE.GRID:t=o.prototype._redrawGridGraphPoint;break;case o.STYLE.LINE:t=o.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},o.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},o.prototype._redrawClear=function(){var t=this.frame.canvas;t.getContext("2d").clearRect(0,0,t.width,t.height)},o.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},o.prototype._getLegendWidth=function(){var t;if(this.style===o.STYLE.DOTSIZE){t=this._dotSize()*this.dotSizeMaxFraction}else t=this.style===o.STYLE.BARSIZE?this.xBarWidth:20;return t},o.prototype._redrawLegend=function(){if(!0===this.showLegend&&this.style!==o.STYLE.LINE&&this.style!==o.STYLE.BARSIZE){var t=this.style===o.STYLE.BARSIZE||this.style===o.STYLE.DOTSIZE,e=this.style===o.STYLE.DOTSIZE||this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.BARCOLOR,i=Math.max(.25*this.frame.clientHeight,100),n=this.margin,s=this._getLegendWidth(),r=this.frame.clientWidth-this.margin,a=r-s,h=n+i,d=this._getContext();if(d.lineWidth=1,d.font="14px arial",!1===t){var l,c=i;for(l=0;l0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelY=function(t,e,i,o,n){void 0===n&&(n=0);var s=this._convert3Dto2D(e);Math.cos(2*o)<0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelZ=function(t,e,i,o){void 0===o&&(o=0);var n=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(i,n.x-o,n.y)},o.prototype._line3d=function(t,e,i,o){var n=this._convert3Dto2D(e),s=this._convert3Dto2D(i);this._line(t,n,s,o)},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,c,f=this._getContext();f.font=24/this.camera.getArmLength()+"px arial";var m,v=.025/this.scale.x,g=.025/this.scale.y,y=5/this.camera.getArmLength(),b=this.camera.getArmRotation().horizontal,_=new u(Math.cos(b),Math.sin(b)),w=this.xRange,x=this.yRange,k=this.zRange;for(f.lineWidth=1,o=void 0===this.defaultXStep,i=new p(w.min,w.max,this.xStep,o),i.start(!0);!i.end();){var S=i.getCurrent();if(this.showGrid?(t=new l(S,x.min,k.min),e=new l(S,x.max,k.min),this._line3d(f,t,e,this.gridColor)):this.showXAxis&&(t=new l(S,x.min,k.min),e=new l(S,x.min+v,k.min),this._line3d(f,t,e,this.axisColor),t=new l(S,x.max,k.min),e=new l(S,x.max-v,k.min),this._line3d(f,t,e,this.axisColor)),this.showXAxis){r=_.x>0?x.min:x.max,m=new l(S,r,k.min);var D=" "+this.xValueLabel(S)+" ";this.drawAxisLabelX(f,m,D,b,y)}i.next()}for(f.lineWidth=1,o=void 0===this.defaultYStep,i=new p(x.min,x.max,this.yStep,o),i.start(!0);!i.end();){var M=i.getCurrent();if(this.showGrid?(t=new l(w.min,M,k.min),e=new l(w.max,M,k.min),this._line3d(f,t,e,this.gridColor)):this.showYAxis&&(t=new l(w.min,M,k.min),e=new l(w.min+g,M,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,M,k.min),e=new l(w.max-g,M,k.min),this._line3d(f,t,e,this.axisColor)),this.showYAxis){s=_.y>0?w.min:w.max,m=new l(s,M,k.min);var C=" "+this.yValueLabel(M)+" ";this.drawAxisLabelY(f,m,C,b,y)}i.next()}if(this.showZAxis){for(f.lineWidth=1,o=void 0===this.defaultZStep,i=new p(k.min,k.max,this.zStep,o),i.start(!0),s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max;!i.end();){var O=i.getCurrent(),E=new l(s,r,O),T=this._convert3Dto2D(E);e=new u(T.x-y,T.y),this._line(f,T,e,this.axisColor);var P=this.zValueLabel(O)+" ";this.drawAxisLabelZ(f,E,P,5),i.next()}f.lineWidth=1,t=new l(s,r,k.min),e=new l(s,r,k.max),this._line3d(f,t,e,this.axisColor)}if(this.showXAxis){var I,N;f.lineWidth=1,I=new l(w.min,x.min,k.min),N=new l(w.max,x.min,k.min),this._line3d(f,I,N,this.axisColor),I=new l(w.min,x.max,k.min),N=new l(w.max,x.max,k.min),this._line3d(f,I,N,this.axisColor)}this.showYAxis&&(f.lineWidth=1,t=new l(w.min,x.min,k.min),e=new l(w.min,x.max,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,x.min,k.min),e=new l(w.max,x.max,k.min),this._line3d(f,t,e,this.axisColor));var R=this.xLabel;R.length>0&&this.showXAxis&&(c=.1/this.scale.y,s=(w.max+3*w.min)/4,r=_.x>0?x.min-c:x.max+c,n=new l(s,r,k.min),this.drawAxisLabelX(f,n,R,b));var A=this.yLabel;A.length>0&&this.showYAxis&&(d=.1/this.scale.x,s=_.y>0?w.min-d:w.max+d,r=(x.max+3*x.min)/4,n=new l(s,r,k.min),this.drawAxisLabelY(f,n,A,b));var z=this.zLabel;z.length>0&&this.showZAxis&&(h=30,s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max,a=(k.max+3*k.min)/4,n=new l(s,r,a),this.drawAxisLabelZ(f,n,z,h))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-this.eye.z/this.camera.getArmLength()*this.dataColor.strokeWidth:this.dataColor.strokeWidth},o.prototype._redrawBar=function(t,e,i,o,n,s){var r,a=this,h=e.point,d=this.zRange.min,u=[{point:new l(h.x-i,h.y-o,h.z)},{point:new l(h.x+i,h.y-o,h.z)},{point:new l(h.x+i,h.y+o,h.z)},{point:new l(h.x-i,h.y+o,h.z)}],c=[{point:new l(h.x-i,h.y-o,d)},{point:new l(h.x+i,h.y-o,d)},{point:new l(h.x+i,h.y+o,d)},{point:new l(h.x-i,h.y+o,d)}];u.forEach(function(t){t.screen=a._convert3Dto2D(t.point)}),c.forEach(function(t){t.screen=a._convert3Dto2D(t.point)});var p=[{corners:u,center:l.avg(c[0].point,c[2].point)},{corners:[u[0],u[1],c[1],c[0]],center:l.avg(c[1].point,c[0].point)},{corners:[u[1],u[2],c[2],c[1]],center:l.avg(c[2].point,c[1].point)},{corners:[u[2],u[3],c[3],c[2]],center:l.avg(c[3].point,c[2].point)},{corners:[u[3],u[0],c[0],c[3]],center:l.avg(c[0].point,c[3].point)}];e.surfaces=p;for(var f=0;f0}if(a){var p,f=(e.point.z+i.point.z+o.point.z+n.point.z)/4,m=240*(1-(f-this.zRange.min)*this.scale.z/this.verticalRatio);this.showShadow?(p=Math.min(1+u.x/c/2,1),s=this._hsv2rgb(m,1,p),r=s):(p=1,s=this._hsv2rgb(m,1,p),r=this.axisColor)}else s="gray",r=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var v=[e,i,n,o];this._polygon(t,v,s,r)}},o.prototype._drawGridLine=function(t,e,i){if(void 0!==e&&void 0!==i){var o=(e.point.z+i.point.z)/2,n=240*(1-(o-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(n,1,1),this._line(t,e.screen,i.screen)}},o.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},o.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},o.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=null,s=null,r=null,a=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var h=n.surfaces;if(h)for(var d=h.length-1;d>=0;d--){var l=h[d],c=l.corners,p=[c[0].screen,c[1].screen,c[2].screen],f=[c[2].screen,c[3].screen,c[0].screen];if(this._insideTriangle(a,p)||this._insideTriangle(a,f))return n}}else for(i=0;i"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,h=o.offsetWidth,d=o.offsetHeight,l=t.screen.x-n/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=l+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-h/2+"px",o.style.top=t.screen.y-d/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},o.prototype.setCameraPosition=function(t){f.setCameraPosition(t,this),this.redraw()},o.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=o},function(t,e,i){i(163),t.exports=i(7).Object.assign},function(t,e,i){var o=i(17);o(o.S+o.F,"Object",{assign:i(164)})},function(t,e,i){var o=i(33),n=i(63),s=i(42),r=i(41),a=i(78),h=Object.assign;t.exports=!h||i(28)(function(){var t={},e={},i=Symbol(),o="abcdefghijklmnopqrst";return t[i]=7,o.split("").forEach(function(t){e[t]=t}),7!=h({},t)[i]||Object.keys(h({},e)).join("")!=o})?function(t,e){for(var i=r(t),h=arguments.length,d=1,l=n.f,u=s.f;h>d;)for(var c,p=a(arguments[d++]),f=l?o(p).concat(l(p)):o(p),m=f.length,v=0;m>v;)u.call(p,c=f[v++])&&(i[c]=p[c]);return i}:h},function(t,e,i){t.exports={default:i(166),__esModule:!0}},function(t,e,i){i(167),t.exports=i(7).Math.sign},function(t,e,i){var o=i(17);o(o.S,"Math",{sign:i(168)})},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,i){t.exports={default:i(170),__esModule:!0}},function(t,e,i){i(171);var o=i(7).Object;t.exports=function(t,e,i){return o.defineProperty(t,e,i)}},function(t,e,i){var o=i(17);o(o.S+o.F*!i(21),"Object",{defineProperty:i(20).f})},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r={fill:{string:o},stroke:{string:o},strokeWidth:{number:s},__type__:{string:o,object:"object",undefined:"undefined"}},a={animationAutoStart:{boolean:n,undefined:"undefined"},animationInterval:{number:s},animationPreload:{boolean:n},axisColor:{string:o},backgroundColor:r,xBarWidth:{number:s,undefined:"undefined"},yBarWidth:{number:s,undefined:"undefined"},cameraPosition:{distance:{number:s},horizontal:{number:s},vertical:{number:s},__type__:{object:"object"}},xCenter:{string:o},yCenter:{string:o},dataColor:r,dotSizeMinFraction:{number:s},dotSizeMaxFraction:{number:s},dotSizeRatio:{number:s},filterLabel:{string:o},gridColor:{string:o},onclick:{function:"function"},keepAspectRatio:{boolean:n},xLabel:{string:o},yLabel:{string:o},zLabel:{string:o},legendLabel:{string:o},xMin:{number:s,undefined:"undefined"},yMin:{number:s,undefined:"undefined"},zMin:{number:s,undefined:"undefined"},xMax:{number:s,undefined:"undefined"},yMax:{number:s,undefined:"undefined"},zMax:{number:s,undefined:"undefined"},showAnimationControls:{boolean:n,undefined:"undefined"},showGrid:{boolean:n},showLegend:{boolean:n,undefined:"undefined"},showPerspective:{boolean:n},showShadow:{boolean:n},showXAxis:{boolean:n},showYAxis:{boolean:n},showZAxis:{boolean:n},xStep:{number:s,undefined:"undefined"},yStep:{number:s,undefined:"undefined"},zStep:{number:s,undefined:"undefined"},style:{number:s,string:["bar","bar-color","bar-size","dot","dot-line","dot-color","dot-size","line","grid","surface"]},tooltip:{boolean:n,function:"function"},tooltipStyle:{content:{color:{string:o},background:{string:o},border:{string:o},borderRadius:{string:o},boxShadow:{string:o},padding:{string:o},__type__:{object:"object"}},line:{borderLeft:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},dot:{border:{string:o},borderRadius:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},__type__:{object:"object"}},xValueLabel:{function:"function"},yValueLabel:{function:"function"},zValueLabel:{function:"function"},valueMax:{number:s,undefined:"undefined"},valueMin:{number:s,undefined:"undefined"},verticalRatio:{number:s},height:{string:o},width:{string:o},__type__:{object:"object"}};e.allOptions=a},function(t,e,i){function o(){this.dataTable=null}var n=i(11),s=i(12),r=i(174),a=i(96),h=i(94),d=i(34);o.prototype.initializeData=function(t,e,i){if(void 0!==e){Array.isArray(e)&&(e=new n(e));var o;if(!(e instanceof n||e instanceof s))throw new Error("Array, DataSet, or DataView expected");if(o=e.get(),0!=o.length){this.style=i,this.dataSet&&this.dataSet.off("*",this._onChange),this.dataSet=e,this.dataTable=o;var r=this;this._onChange=function(){t.setData(r.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z";var h=t.hasBars(i);if(h&&(void 0!==t.defaultXBarWidth?this.xBarWidth=t.defaultXBarWidth:this.xBarWidth=this.getSmallestDifference(o,this.colX)||1,void 0!==t.defaultYBarWidth?this.yBarWidth=t.defaultYBarWidth:this.yBarWidth=this.getSmallestDifference(o,this.colY)||1),this._initializeRange(o,this.colX,t,h),this._initializeRange(o,this.colY,t,h),this._initializeRange(o,this.colZ,t,!1),o[0].hasOwnProperty("style")){this.colValue="style";var d=this.getColumnRange(o,this.colValue);this._setRangeDefaults(d,t.defaultValueMin,t.defaultValueMax),this.valueRange=d}this.getDataTable()[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new a(this,"filter",t),this.dataFilter.setOnLoadCallback(function(){t.redraw()}));return this.dataFilter?this.dataFilter._getDataPoints():this._getDataPoints(this.getDataTable())}}},o.prototype._collectRangeSettings=function(t,e){if(-1==["x","y","z"].indexOf(t))throw new Error("Column '"+t+"' invalid");var i=t.toUpperCase();return{barWidth:this[t+"BarWidth"],min:e["default"+i+"Min"],max:e["default"+i+"Max"],step:e["default"+i+"Step"],range_label:t+"Range",step_label:t+"Step"}},o.prototype._initializeRange=function(t,e,i,o){var n=this._collectRangeSettings(e,i),s=this.getColumnRange(t,e);o&&"z"!=e&&s.expand(n.barWidth/2),this._setRangeDefaults(s,n.min,n.max),this[n.range_label]=s,this[n.step_label]=void 0!==n.step?n.step:s.range()/5},o.prototype.getDistinctValues=function(t,e){void 0===e&&(e=this.dataTable);for(var i=[],o=0;os)&&(o=s)}return o},o.prototype.getColumnRange=function(t,e){for(var i=new r,o=0;o0&&(e[i-1].pointNext=e[i]);return e},o.prototype._checkValueField=function(t){if(this.style===h.STYLE.BARCOLOR||this.style===h.STYLE.BARSIZE||this.style===h.STYLE.DOTCOLOR||this.style===h.STYLE.DOTSIZE){if(void 0===this.colValue)throw new Error("Expected data to have field 'style' for graph style '"+this.style+"'");if(void 0===t[0][this.colValue])throw new Error("Expected data to have field '"+this.colValue+"' for graph style '"+this.style+"'")}},t.exports=o},function(t,e,i){function o(){this.min=void 0,this.max=void 0}o.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxi)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=i}},o.prototype.range=function(){return this.max-this.min},o.prototype.center=function(){return(this.min+this.max)/2},t.exports=o},function(t,e,i){var o,n,s;!function(i){n=[],o=i,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(p(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function c(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ft(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function g(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=R(o);e.timeStamp=_t(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=L(a,h),P(i,e),e.offsetDirection=z(e.deltaX,e.deltaY);var d=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=bt(d.x)>bt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?B(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=It&&(h>Ot||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=bt(u.x)>bt(u.y)?u.x:u.y,s=z(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;i=bt(e)?t<0?Rt:At:e<0?zt:Lt}function L(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function F(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function B(t,e){return F(e[1],e[0],Wt)+F(t[1],t[0],Wt)}function j(t,e){return L(e[0],e[1],Wt)/L(t[0],t[1],Wt)}function H(){this.evEl=Gt,this.evWin=Vt,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=Xt,this.evWin=Zt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=Jt,this.evWin=$t,this.started=!1,C.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|It)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=te,this.targetIds={},C.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|Tt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,ee)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o=fe&&e(i.options.event+tt(o))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return ot.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),c(st,ot,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),c(rt,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Pt|It)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),c(at,ot,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),c(ht,ot,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ft|Bt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ft|Bt)?e=t.overallVelocity:i&Ft?e=t.overallVelocityX:i&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(dt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distanced+i?s+=h()+u-i+t.itemSet.options.margin.item.vertical:r=!1,s=Math.min(s,o-i),{shouldScroll:r,scrollOffset:s,itemTop:l}}var a=i(9),h=i(2),d=i(11),l=i(12),u=i(64),c=i(65),p=i(45),f=i(67),m=i(46),v=i(99),g=i(15).printStyle,y=i(105).allOptions,b=i(105).configureOptions,_=i(71).default,w=i(15).default;o.prototype=new c,o.prototype._createConfigurator=function(){return new _(this,this.dom.container,b)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){if(!0===w.validate(t,y)&&console.log("%cErrors have been found in the supplied options object.",g),c.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var e=this.itemsData;if(e){var i=this.getSelection();this.setItems(null),this.setItems(e),this.setSelection(i)}}},o.prototype.setItems=function(t){var e;e=t?t instanceof d||t instanceof l?t:new d(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},o.prototype.setGroups=function(t){var e;if(t){var i=function(t){return!1!==t.visible};e=t instanceof d||t instanceof l?new l(t,{filter:i}):new d(t.filter(i))}else e=null;this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||es)&&(s=i)}),null!==n&&null!==s){var a=this,h=this.itemSet.items[i[0]],d=-1*this._getScrollTop(),l=null,u=function(t,e,i){var o=r(a,h);if(l||(l=o),l.itemTop!=o.itemTop||l.shouldScroll){l.itemTop!=o.itemTop&&o.shouldScroll&&(l=o,d=-1*a._getScrollTop());var n=d,s=l.scrollOffset,u=i?s:n+(s-n)*t;a._setScrollTop(-u),e||a._redraw()}},c=function(){var t=r(a,h);t.shouldScroll&&t.itemTop!=l.itemTop&&(a._setScrollTop(-t.scrollOffset),a._redraw())},p=function(){c(),setTimeout(c,100)},f=(n+s)/2,m=Math.max(this.range.end-this.range.start,1.1*(s-n)),v=!e||void 0===e.animation||e.animation;v||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(f-m/2,f+m/2,{animation:v},p,u)}}},o.prototype.fit=function(t,e){var i,o=!t||void 0===t.animation||t.animation,n=this.itemsData&&this.itemsData.getDataSet();1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},e)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},e))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,r=null;if(null!=e&&null!=i){var a=i-e;a<=0&&(a=10);var d=a/this.props.center.width,l={},u=0;h.forEach(this.itemSet.items,function(t,e){if(t.groupShowing){l[e]=t.redraw(!0),u=l[e].length}});if(u>0)for(var c=0;ci&&(i=h,r=t)}.bind(this)),o&&r){var p=o.getWidthLeft()+10,f=r.getWidthRight()+10,m=this.props.center.width-p-f;m>0&&(this.options.rtl?(e=n(o)-f*a/m,i=s(r)+p*a/m):(e=n(o)-p*a/m,i=s(r)+f*a/m))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=h.convert(i.start,"Date").valueOf(),n=h.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e,i=t.center?t.center.x:t.clientX,o=t.center?t.center.y:t.clientY;e=this.options.rtl?h.getAbsoluteRight(this.dom.centerContainer)-i:i-h.getAbsoluteLeft(this.dom.centerContainer);var n=o-h.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=m.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),c=this._toTime(e),p=d?d(c,l,u):c,f=h.getTarget(t),v=null;return null!=s?v="item":null!=a?v="custom-time":h.hasParent(f,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&h.hasParent(f,this.timeAxis2.dom.foreground)?v="axis":h.hasParent(f,this.itemSet.dom.labelSet)?v="group-label":h.hasParent(f,this.currentTime.bar)?v="current-time":h.hasParent(f,this.dom.center)&&(v="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:e,y:n,time:c,snappedTime:p}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(10),u=i(37),c=i(2),p=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),!0===c.isString(t)){if(!0===c.isValidRGB(t)){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(!0===c.isValidRGBA(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===c.isValidHex(t)){var a=c.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=c.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=c.extend({},t)),this.color=t;var e=c.RGBToHSV(t.r,t.g,t.b),i=2*Math.PI,o=this.r*e.s,n=this.centerCoordinates.x+o*Math.sin(i*e.h),s=this.centerCoordinates.y+o*Math.cos(i*e.h);this.colorPickerSelector.style.left=n-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=c.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=c.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=c.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d") +;this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/this.r,d=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!p.hidden&&this.itemsData.length>0&&l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new g(this,this.dom.container,v)},t.exports=o},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Network=i(182),e.network={Images:i(116),dotparser:i(114),gephiParser:i(115),allOptions:i(122)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){function o(t,e,i){var n=this;if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:d,clickToUse:!1},s.extend(this.options,this.defaultOptions),this.body={container:t,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new l(function(){return n.body.emitter.emit("_requestRedraw")}),this.groups=new u,this.canvas=new g(this.body),this.selectionHandler=new _(this.body,this.canvas),this.interactionHandler=new b(this.body,this.canvas,this.selectionHandler),this.view=new y(this.body,this.canvas),this.renderer=new v(this.body,this.canvas),this.physics=new f(this.body),this.layoutEngine=new w(this.body),this.clustering=new m(this.body),this.manipulation=new x(this.body,this.canvas,this.selectionHandler),this.nodesHandler=new c(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new p(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}i(183);var n=i(44),s=i(2),r=i(114),a=i(115),h=i(97),d=i(184),l=i(116).default,u=i(186).default,c=i(187).default,p=i(214).default,f=i(220).default,m=i(227).default,v=i(229).default,g=i(230).default,y=i(231).default,b=i(232).default,_=i(234).default,w=i(235).default,x=i(237).default,k=i(71).default,S=i(15).default,D=i(15),M=D.printStyle,C=i(122),O=C.allOptions,E=C.configureOptions,T=i(238).default;n(o.prototype),o.prototype.setOptions=function(t){var e=this;if(void 0!==t){!0===S.validate(t,O)&&console.log("%cErrors have been found in the supplied options object.",M);var i=["locale","locales","clickToUse"];if(s.selectiveDeepExtend(i,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new k(this,this.body.container,E,this.canvas.pixelRatio)),this.configurator.setOptions(t.configure)),this.configurator&&!0===this.configurator.options.enabled){var o={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};s.deepExtend(o.nodes,this.nodesHandler.options),s.deepExtend(o.edges,this.edgesHandler.options),s.deepExtend(o.layout,this.layoutEngine.options),s.deepExtend(o.interaction,this.selectionHandler.options),s.deepExtend(o.interaction,this.renderer.options),s.deepExtend(o.interaction,this.interactionHandler.options),s.deepExtend(o.manipulation,this.manipulation.options),s.deepExtend(o.physics,this.physics.options),s.deepExtend(o.global,this.canvas.options),s.deepExtend(o.global,this.options),this.configurator.setModuleOptions(o)}void 0!==t.clickToUse?!0===t.clickToUse?void 0===this.activator&&(this.activator=new h(this.canvas.frame),this.activator.on("change",function(){e.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},o.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&(this.clustering._isClusteredNode(i)||!1!==t[i].options.hidden||this.body.nodeIndices.push(t[i].id));for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],s=t[n.fromId],r=t[n.toId],a=void 0!==s&&void 0!==r,h=!this.clustering._isClusteredEdge(o)&&!1===n.options.hidden&&a&&!1===s.options.hidden&&!1===r.options.hidden;h&&this.body.edgeIndices.push(n.id)}},o.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.edgesHandler._updateState(),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t.clustering._updateState(),t._updateVisibleIndices(),t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")})},o.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){console.log("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=r.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.gephi){console.log("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=a.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},o.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&delete this.body.nodes[t];for(var e in this.body.edges)this.body.edges.hasOwnProperty(e)&&delete this.body.edges[e];s.recursiveDOMDelete(this.body.container)},o.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),o=void 0===o?s:Math.max(s,o),n+=s)}if(void 0!==i&&void 0!==o)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,o,n)},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},o.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},o.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},o.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},o.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},o.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},o.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},o.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},o.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},o.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},o.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},o.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},o.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},o.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},o.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},o.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},o.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},o.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},o.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},o.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},o.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},o.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},o.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},o.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},o.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},o.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},o.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},o.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},o.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},o.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},o.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},o.prototype.getNodeAt=function(){var t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},o.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},o.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},o.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},o.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},o.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},o.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},o.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},o.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},o.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},o.prototype.getOptionsFromConfigurator=function(){var t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t},t.exports=o},function(t,e,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;o<10;o++){var n=o%2==0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;i-2*n<0&&(n=i/2),o-2*n<0&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse_vis=function(t,e,i,o){var n=i/2*.5522848,s=o/2*.5522848,r=t+i,a=e+o,h=t+i/2,d=e+o/2;this.beginPath(),this.moveTo(t,d),this.bezierCurveTo(t,d-s,h-n,e,h,e),this.bezierCurveTo(h+n,e,r,d-s,r,d),this.bezierCurveTo(r,d+s,h+n,a,h,a),this.bezierCurveTo(h-n,a,t,d+s,t,d),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=i,s=o*(1/3),r=n/2*.5522848,a=s/2*.5522848,h=t+n,d=e+s,l=t+n/2,u=e+s/2,c=e+(o-s/2),p=e+o;this.beginPath(),this.moveTo(h,u),this.bezierCurveTo(h,u+a,l+r,d,l,d),this.bezierCurveTo(l-r,d,t,u+a,t,u),this.bezierCurveTo(t,u-a,l-r,e,l,e),this.bezierCurveTo(l+r,e,h,u-a,h,u),this.lineTo(h,c),this.bezierCurveTo(h,c+a,l+r,p,l,p),this.bezierCurveTo(l-r,p,t,c+a,t,c),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=r<0?-c:c,t+=c,e+=h*c,!0===u?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u},CanvasRenderingContext2D.prototype.hexagon=function(t,e,i){this.beginPath();var o=2*Math.PI/6;this.moveTo(t+i,e);for(var n=1;n<6;n++)this.lineTo(t+i*Math.cos(o*n),e+i*Math.sin(o*n));this.closePath()})},function(t,e,i){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},e.en_EN=e.en,e.en_US=e.en,e.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",editNode:"Knoten editieren",editEdge:"Kante editieren",addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",deleteClusterError:"Cluster können nicht gelöscht werden.",editClusterError:"Cluster können nicht editiert werden."},e.de_DE=e.de,e.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",createEdgeError:"No se puede conectar una arista a un grupo.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},e.es_ES=e.es,e.it={edit:"Modifica",del:"Cancella la selezione",back:"Indietro",addNode:"Aggiungi un nodo",addEdge:"Aggiungi un vertice",editNode:"Modifica il nodo",editEdge:"Modifica il vertice",addDescription:"Clicca per aggiungere un nuovo nodo",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",createEdgeError:"Non si possono collegare vertici ad un cluster",deleteClusterError:"I cluster non possono essere cancellati",editClusterError:"I clusters non possono essere modificati."},e.it_IT=e.it,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},e.nl_NL=e.nl,e.nl_BE=e.nl,e["pt-br"]={edit:"Editar",del:"Remover selecionado",back:"Voltar",addNode:"Adicionar nó",addEdge:"Adicionar aresta",editNode:"Editar nó",editEdge:"Editar aresta",addDescription:"Clique em um espaço em branco para adicionar um novo nó",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",createEdgeError:"Não foi possível linkar arestas a um cluster.",deleteClusterError:"Clusters não puderam ser removidos.",editClusterError:"Clusters não puderam ser editados."},e["pt-BR"]=e["pt-br"],e.pt_BR=e["pt-br"],e.pt_br=e["pt-br"],e.ru={edit:"Редактировать",del:"Удалить выбранное",back:"Назад",addNode:"Добавить узел",addEdge:"Добавить ребро",editNode:"Редактировать узел",editEdge:"Редактировать ребро",addDescription:"Кликните в свободное место, чтобы добавить новый узел.",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",createEdgeError:"Невозможно соединить ребра в кластер.",deleteClusterError:"Кластеры не могут быть удалены",editClusterError:"Кластеры недоступны для редактирования."},e.ru_RU=e.ru,e.cn={edit:"编辑",del:"åˆ é™¤é€‰å®š",back:"返回",addNode:"æ·»åŠ èŠ‚ç‚¹",addEdge:"æ·»åŠ è¿žæŽ¥çº¿",editNode:"编辑节点",editEdge:"编辑连接线",addDescription:"单击空白处放置新节点。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",createEdgeError:"æ— æ³•å°†è¿žæŽ¥çº¿è¿žæŽ¥åˆ°ç¾¤é›†ã€‚",deleteClusterError:"æ— æ³•åˆ é™¤ç¾¤é›†ã€‚",editClusterError:"æ— æ³•ç¼–è¾‘ç¾¤é›†ã€‚"},e.zh_CN=e.cn},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(){(0,s.default)(this,t),this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}return(0,a.default)(t,[{key:"init",value:function(){if(!this.initialized()){this.src=this.image.src;var t=this.image.width,e=this.image.height;this.width=t,this.height=e;var i=Math.floor(e/2),o=Math.floor(e/4),n=Math.floor(e/8),s=Math.floor(e/16),r=Math.floor(t/2),a=Math.floor(t/4),h=Math.floor(t/8),d=Math.floor(t/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,r,i],[r,0,a,o],[r,o,h,n],[5*h,o,d,s]],this._fillMipMap()}}},{key:"initialized",value:function(){return void 0!==this.coordinates}},{key:"_fillMipMap",value:function(){var t=this.canvas.getContext("2d"),e=this.coordinates[0];t.drawImage(this.image,e[0],e[1],e[2],e[3]);for(var i=1;i2){e*=.5;for(var r=0;e>2&&r=this.NUM_ITERATIONS&&(r=this.NUM_ITERATIONS-1);var a=this.coordinates[r];t.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,o,n,s)}else t.drawImage(this.image,i,o,n,s)}}]),t}();e.default=h},function(t,e,i){ +function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=function(){function t(){(0,s.default)(this,t),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},h.extend(this.options,this.defaultOptions)}return(0,a.default)(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(t.hasOwnProperty(i)&&-1===e.indexOf(i)){var o=t[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.groups[t];if(void 0===i&&e)if(!1===this.options.useDefaultGroups&&this.groupsArray.length>0){var o=this.groupIndex%this.groupsArray.length;this.groupIndex++,i={},i.color=this.groups[this.groupsArray[o]],this.groups[t]=i}else{var n=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,i={},i.color=this.defaultGroups[n],this.groups[t]=i}return i}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e.default=d},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(47).default,c=function(){function t(e,i,o,n){var r=this;if((0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.layoutEngine=n,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items,e.data,e.oldData)},remove:function(t,e){r.remove(e.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=h.bridgeObject(this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.nodesListeners,function(e,i){t.body.data.nodes&&t.body.data.nodes.off(i,e)}),delete t.body.functions.createNode,delete t.nodesListeners.add,delete t.nodesListeners.update,delete t.nodesListeners.remove,delete t.nodesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){if(u.parseOptions(this.options,t),void 0!==t.shape)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e].updateShape();if(void 0!==t.font)for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i].needsRefresh());if(void 0!==t.size)for(var o in this.body.nodes)this.body.nodes.hasOwnProperty(o)&&this.body.nodes[o].needsRefresh();void 0===t.hidden&&void 0===t.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(t instanceof d||t instanceof l)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new d,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new d}if(i&&h.forEach(this.nodesListeners,function(t,e){i.off(e,t)}),this.body.nodes={},this.body.data.nodes){var o=this;h.forEach(this.nodesListeners,function(t,e){o.body.data.nodes.on(e,t)});var n=this.body.data.nodes.getIds();this.add(n,!0)}!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:u)(t,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];h.forEach(this.body.nodes,function(i,o){var n=t.body.data.nodes.get(o);void 0!==n&&(!0===e&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(n))})}},{key:"getPositions",value:function(t){var e={};if(void 0!==t){if(!0===Array.isArray(t)){for(var i=0;i0)for(var r=0;r0)for(var p=0;p0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.position/.test(t.substr(i.position,3))?i.mono||i.ital||!//.test(t.substr(i.position,3))?!i.mono&&//.test(t.substr(i.position,6))?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono"),i.position+=5):!i.mono&&"bold"===i.mod()&&/<\/b>/.test(t.substr(i.position,4))?(i.emitBlock(),i.bold=!1,i.modStack.shift(),i.position+=3):!i.mono&&"ital"===i.mod()&&/<\/i>/.test(t.substr(i.position,4))?(i.emitBlock(),i.ital=!1,i.modStack.shift(),i.position+=3):"mono"===i.mod()&&/<\/code>/.test(t.substr(i.position,7))?(i.emitBlock(),i.mono=!1,i.modStack.shift(),i.position+=6):i.add(o):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital"),i.position+=2):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold"),i.position+=2):/&/.test(o)?/</.test(t.substr(i.position,4))?(i.add("<"),i.position+=3):/&/.test(t.substr(i.position,5))?(i.add("&"),i.position+=4):i.add("&"):i.add(o),i.position++}return i.emitBlock(),e}},{key:"splitMarkdownBlocks",value:function(t){var e=[],i={bold:!1,ital:!1,mono:!1,beginable:!0,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.positionthis.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(t){for(var e="",i=0;i1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=t.replace(/^( +)/g,"$1\r"),t=t.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");for(var o=t.split("\r");o.length>0;){var n=this.getLongestFit(o);if(0===n){var s=o[0],r=this.getLongestFitWord(s);this.lines.newLine(s.slice(0,r),e),o[0]=s.slice(r)}else{var a=n;" "===o[n-1]?n--:" "===o[a]&&a++;var h=o.slice(0,n).join("");n==o.length&&i?this.lines.append(h,e):this.lines.newLine(h,e),o=o.slice(a)}}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(90),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=function(){function t(e){(0,a.default)(this,t),this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}return(0,d.default)(t,[{key:"_add",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[t]&&(this.lines[t]={width:0,height:0,blocks:[]});var o=e;void 0!==e&&""!==e||(o=" ");var n=this.measureText(o,i),r=(0,s.default)({},n.values);r.text=e,r.width=n.width,r.mod=i,void 0!==e&&""!==e||(r.width=0),this.lines[t].blocks.push(r),this.lines[t].width+=r.width}},{key:"curWidth",value:function(){var t=this.lines[this.current];return void 0===t?0:t.width}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e)}},{key:"newLine",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e),this.current++}},{key:"determineLineHeights",value:function(){for(var t=0;tt&&(t=o.width),e+=o.height}this.width=t,this.height=e}},{key:"removeEmptyBlocks",value:function(){for(var t=[],e=0;e1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.width=o.width+this.margin.right+this.margin.left,this.height=o.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.roundRect(this.left,this.top,this.width,this.height,s.borderRadius),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n);var s=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(s)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),e}(m.default);e.default=v},function(t,e,i){i(195),t.exports=i(7).Object.getPrototypeOf},function(t,e,i){var o=i(41),n=i(85);i(87)("getPrototypeOf",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(197),__esModule:!0}},function(t,e,i){i(198),t.exports=i(7).Object.setPrototypeOf},function(t,e,i){var o=i(17);o(o.S,"Object",{setPrototypeOf:i(199).set})},function(t,e,i){var o=i(32),n=i(27),s=function(t,e){if(n(t),!o(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,o){try{o=i(80)(Function.call,i(89).f(Object.prototype,"__proto__").set,2),o(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return s(t,i),e?t.__proto__=i:o(t,i),t}}({},!1):void 0),check:s}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=Math.max(o.width+this.margin.right+this.margin.left,o.height+this.margin.top+this.margin.bottom);this.options.size=n/2,this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),this.updateBoundingBox(e,i),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,i,o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,this.height=o,void(this.radius=.5*this.width)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),t.save(),t.clip(),this._drawImageAtPosition(t,s),t.restore(),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=o.width+this.margin.right+this.margin.left;this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.database(e-this.width/2,i-this.height/2,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"diamond",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"circle",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this.options.size}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.height=2*o.height,this.width=o.width+o.height,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(t,s),t.ellipse_vis(this.left,this.top,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=.5*this.width,o=.5*this.height,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){if(this.resize(t,o,n),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=i-this.height/2,this._icon(t,e,i,o,n,s),void 0!==this.options.label){this.labelModule.draw(t,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,o)}this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(t,e,i,o,n,s){var r=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+r+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t,s),t.fillText(this.options.icon.code,e,i),this.disableShadow(t,s)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,void(this.height=o)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){if(this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,!0===this.options.shapeProperties.useBorderWithImage){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;t.lineWidth=Math.min(this.width,h),t.beginPath(),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),t.fill(),this.performStroke(t,s),t.closePath()}this._drawImageAtPosition(t,s),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.resize(),this._updateBoundingBox(t,e),void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)} +}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"square",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"hexagon",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"star",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.textSize=this.labelModule.getTextSize(t,e,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t,s),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n),this.disableShadow(t,s),this.updateBoundingBox(e,i,t,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangle",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangleDown",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(74).default,c=function(){function t(e,i,o){var n=this;(0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(t,e){n.add(e.items)},update:function(t,e){n.update(e.items)},remove:function(t,e){n.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},h.deepExtend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_forceDisableDynamicCurves",function(e){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===e&&(e="continuous");var o=!1;for(var n in t.body.edges)if(t.body.edges.hasOwnProperty(n)){var s=t.body.edges[n],r=t.body.data.edges._data[n];if(void 0!==r){var a=r.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===e?s.setOptions({smooth:!1}):s.setOptions({smooth:{type:e}}),o=!0)}}!0===i&&!0===o&&t.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){t.reconnectEdges()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.edgesListeners,function(e,i){t.body.data.edges&&t.body.data.edges.off(i,e)}),delete t.body.functions.createEdge,delete t.edgesListeners.add,delete t.edgesListeners.update,delete t.edgesListeners.remove,delete t.edgesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){u.parseOptions(this.options,t,!0,this.defaultOptions,!0);var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font)for(var o in this.body.edges)this.body.edges.hasOwnProperty(o)&&this.body.edges[o].updateLabelModule();void 0===t.hidden&&void 0===t.physics&&!0!==e||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.edges;if(t instanceof d||t instanceof l)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new d,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new d}if(o&&h.forEach(this.edgesListeners,function(t,e){o.off(e,t)}),this.body.edges={},this.body.data.edges){h.forEach(this.edgesListeners,function(t,i){e.body.data.edges.on(i,t)});var n=this.body.data.edges.getIds();this.add(n,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n1&&void 0!==arguments[1])||arguments[1];if(0!==t.length){var i=this.body.edges;h.forEach(t,function(t){var e=i[t];void 0!==e&&e.remove()}),e&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var t=this;h.forEach(this.body.edges,function(e,i){var o=t.body.data.edges._data[i];void 0!==o&&e.setOptions(o)})}},{key:"create",value:function(t){return new u(t,this.body,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];void 0!==i.fromId&&e.push(i.fromId),void 0!==i.toId&&e.push(i.toId)}return e}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var t=this,e=[];h.forEach(this.body.edges,function(i,o){var n=t.body.nodes[i.toId],s=t.body.nodes[i.fromId];void 0!==n&&!0===n.isCluster||void 0!==s&&!0===s.isCluster||void 0!==n&&void 0!==s||e.push(o)}),this.remove(e,!1)}},{key:"_addMissingEdges",value:function(){var t=this.body.edges,e=this.body.data.edges,i=[];e.forEach(function(e,o){void 0===t[o]&&i.push(o)}),this.add(i,!0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(3),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(4),p=o(c),f=i(5),m=o(f),v=i(216),g=o(v),y=function(t){function e(t,i,o){return(0,d.default)(this,e),(0,p.default)(this,(e.__proto__||(0,a.default)(e)).call(this,t,i,o))}return(0,m.default)(e,t),(0,u.default)(e,[{key:"_line",value:function(t,e,i){var o=i[0],n=i[1];this._bezierCurve(t,e,o,n)}},{key:"_getViaCoordinates",value:function(){var t=this.from.x-this.to.x,e=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(t)>Math.abs(e)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,r){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),h=(0,s.default)(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,r,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=(0,s.default)(e,2),o=i[0],n=i[1],r=t,a=[];return a[0]=Math.pow(1-r,3),a[1]=3*r*Math.pow(1-r,2),a[2]=3*Math.pow(r,2)*(1-r),a[3]=Math.pow(r,3),{x:a[0]*this.fromPoint.x+a[1]*o.x+a[2]*n.x+a[3]*this.toPoint.x,y:a[0]*this.fromPoint.y+a[1]*o.y+a[2]*n.y+a[3]*this.toPoint.y}}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=t,m=e,v=[0,0,0,0];for(l=1;l<10;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=d1&&void 0!==arguments[1]?arguments[1]:this.via,i=t,o=void 0,n=void 0;if(this.from===this.to){var r=this._getCircleData(this.from),a=(0,s.default)(r,3),h=a[0],d=a[1],l=a[2],u=2*Math.PI*(1-i);o=h+l*Math.sin(u),n=d+l-l*(1-Math.cos(u))}else o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToBezierEdge(t,e,i,o,n,s,this.via)}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var t=void 0,e=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o){var r=void 0,a=void 0;r=a=n<=s?i*s:i*n,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(a=-a),t=this.from.x+r,e=this.from.y+a,"discrete"===o&&(n<=s?t=nthis.to.x&&(_=-_),this.from.y>=this.to.y&&(w=-w),t=this.from.x+_,e=this.from.y+w,n<=s?t=this.from.x<=this.to.x?this.to.xt?this.to.x:t:e=this.from.y>=this.to.y?this.to.y>e?this.to.y:e:this.to.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,o=this.from;t.id===this.from.id&&(i=this.from,o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=t.distanceToBorder(e,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToLine(t,e,i,o,n,s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(120).default,u=i(221).default,c=i(222).default,p=i(223).default,f=i(224).default,m=i(121).default,v=i(225).default,g=i(226).default,y=i(2),b=i(119).default,_=function(){function t(e){(0,a.default)(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},y.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return(0,d.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",function(){t.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){t.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){t.stopSimulation(),t.ready=!1}),this.body.emitter.on("disablePhysics",function(){t.physicsEnabled=!1,t.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){t.setOptions(t.options),!0===t.ready&&t.startSimulation()}),this.body.emitter.on("startSimulation",function(){!0===t.ready&&t.startSimulation()}),this.body.emitter.on("stopSimulation",function(){t.stopSimulation()}),this.body.emitter.on("destroy",function(){t.stopSimulation(!1),t.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){t.updatePhysicsData()})}},{key:"setOptions",value:function(t){void 0!==t&&(!1===t?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):!0===t?(this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation()):(this.physicsEnabled=!0,y.selectiveNotDeepExtend(["stabilization"],this.options,t),y.mergeOptions(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new v(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new g(this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new u(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new c(this.body,this.physicsBody,t),this.edgesSolver=new f(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new l(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===t&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===t&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var t=Date.now();this.physicsTick(),(Date.now()-t<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=0,i=0,o=0;oo&&(t=t>0?o:-o),t}},{key:"_performStep",value:function(t){var e=this.body.nodes[t],i=this.physicsBody.forces[t],o=this.physicsBody.velocities[t];return this.previousStates[t]={x:e.x,y:e.y,vx:o.x,vy:o.y},!1===e.options.fixed.x?(o.x=this.calculateComponentVelocity(o.x,i.x,e.options.mass),e.x+=o.x*this.timestep):(i.x=0,o.x=0),!1===e.options.fixed.y?(o.y=this.calculateComponentVelocity(o.y,i.y,e.options.mass),e.y+=o.y*this.timestep):(i.y=0,o.y=0),Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)if(t.hasOwnProperty(e)&&t[e].x&&t[e].y){var i=t[e].options.fixed;this.freezeCache[e]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;if("number"!=typeof e&&(e=this.options.stabilization.iterations,console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),0===this.physicsBody.physicsNodeIndices.length)return void(this.ready=!0);this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){return t._stabilizationBatch()},0)}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var t=this,e=function(){return!1===t.stabilized&&t.stabilizationIterations0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(76).default,f=i(228).default,m=i(74).default,v=i(47).default,g=function(){function t(e){var i=this;(0,d.default)(this,t),this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return(0,u.default)(t,[{key:"clusterByHubsize",value:function(t,e){void 0===t?t=this._getHubSize():"object"===(void 0===t?"undefined":(0,a.default)(t))&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],o=0;o=t&&i.push(n.id)}for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);var o={},n={};c.forEach(this.body.nodes,function(i,s){var r=p.cloneOptions(i);!0===e.joinCondition(r)&&(o[s]=i,c.forEach(i.edges,function(e){void 0===t.clusteredEdges[e.id]&&(n[e.id]=e)}))}),this._cluster(o,n,e,i)}},{key:"clusterByEdgeCount",value:function(t,e){var i=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var n=[],r={},a=void 0,h=void 0,d=void 0,l=0;l0&&(0,s.default)(m).length>0&&!0===b)if(c=function(){for(var t=0;t1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[t])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[t];e=this._checkOptions(e,o),void 0===e.clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var n={},r={},a=o.id,h=p.cloneOptions(o);n[a]=o;for(var d=0;d-1&&(r[g.id]=g)}this._cluster(n,r,e,i)}},{key:"_createClusterEdges",value:function(t,e,i,o){for(var n=void 0,r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=(0,s.default)(t),c=[],p=0;p0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:"_cluster",value:function(t,e,i){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(0!=(0,s.default)(t).length&&(1!=(0,s.default)(t).length||1==i.clusterNodeProperties.allowSingleNodeCluster)){for(var n in t)if(t.hasOwnProperty(n)&&void 0!==this.clusteredNodes[n])return;var r=c.deepExtend({},i.clusterNodeProperties);if(void 0!==i.processProperties){var a=[];for(var h in t)if(t.hasOwnProperty(h)){var d=p.cloneOptions(t[h]);a.push(d)}var l=[];for(var u in e)if(e.hasOwnProperty(u)&&"clusterEdge:"!==u.substr(0,12)){var m=p.cloneOptions(e[u],"edge");l.push(m)}if(!(r=i.processProperties(r,a,l)))throw new Error("The processProperties function does not return properties!")}void 0===r.id&&(r.id="cluster:"+c.randomUUID());var v=r.id;void 0===r.label&&(r.label="cluster");var g=void 0;void 0===r.x&&(g=this._getClusterPosition(t),r.x=g.x),void 0===r.y&&(void 0===g&&(g=this._getClusterPosition(t)),r.y=g.y),r.id=v;var y=this.body.functions.createNode(r,f);y.containedNodes=t,y.containedEdges=e,y.clusterEdgeProperties=i.clusterEdgeProperties,this.body.nodes[r.id]=y,this._clusterEdges(t,e,r,i.clusterEdgeProperties),r.id=void 0,!0===o&&this.body.emitter.emit("_dataChanged")}}},{key:"_backupEdgeOptions",value:function(t){void 0===this.clusteredEdges[t.id]&&(this.clusteredEdges[t.id]={physics:t.options.physics})}},{key:"_restoreEdge",value:function(t){var e=this.clusteredEdges[t.id];void 0!==e&&(t.setOptions({physics:e.physics}),delete this.clusteredEdges[t.id])}},{key:"isCluster",value:function(t){return void 0!==this.body.nodes[t]?!0===this.body.nodes[t].isCluster:(console.log("Node does not exist."),!1)}},{key:"_getClusterPosition",value:function(t){for(var e=(0,s.default)(t),i=t[e[0]].x,o=t[e[0]].x,n=t[e[0]].y,r=t[e[0]].y,a=void 0,h=1;ho?a.x:o,n=a.yr?a.y:r;return{x:.5*(i+o),y:.5*(n+r)}}},{key:"openCluster",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");var o=this.body.nodes[t];if(void 0===o)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==o.isCluster||void 0===o.containedNodes||void 0===o.containedEdges)throw new Error("The node:"+t+" is not a valid cluster.");var n=this.findNode(t),s=n.indexOf(t)-1;if(s>=0){var r=n[s];return this.body.nodes[r]._openChildCluster(t),delete this.body.nodes[t],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=o.containedNodes,h=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var d={},l={x:o.x,y:o.y};for(var u in a)if(a.hasOwnProperty(u)){var p=this.body.nodes[u];d[u]={x:p.x,y:p.y}}var f=e.releaseFunction(l,d);for(var m in a)if(a.hasOwnProperty(m)){var v=this.body.nodes[m];void 0!==f[m]&&(v.x=void 0===f[m].x?o.x:f[m].x,v.y=void 0===f[m].y?o.y:f[m].y)}}else c.forEach(a,function(t){!1===t.options.fixed.x&&(t.x=o.x),!1===t.options.fixed.y&&(t.y=o.y)});for(var g in a)if(a.hasOwnProperty(g)){var y=this.body.nodes[g];y.vx=o.vx,y.vy=o.vy,y.setOptions({physics:!0}),delete this.clusteredNodes[g]}for(var b=[],_=0;_0&&n<100;){var s=e.pop();if(void 0!==s){var r=this.body.edges[s];if(void 0!==r){n++;var a=r.clusteringEdgeReplacingIds;if(void 0===a)o.push(s);else for(var h=0;ho&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}},{key:"_createClusteredEdge",value:function(t,e,i,o,n){var s=p.cloneOptions(i,"edge");c.deepExtend(s,o),s.from=t,s.to=e,s.id="clusterEdge:"+c.randomUUID(),void 0!==n&&c.deepExtend(s,n);var r=this.body.functions.createEdge(s);return r.clusteringEdgeReplacingIds=[i.id],r.connect(),this.body.edges[r.id]=r,r}},{key:"_clusterEdges",value:function(t,e,i,o){if(e instanceof m){var n=e,s={};s[n.id]=n,e=s}if(t instanceof v){var r=t,a={};a[r.id]=r,t=a}if(void 0===i||null===i)throw new Error("_clusterEdges: parameter clusterNode required");void 0===o&&(o=i.clusterEdgeProperties),this._createClusterEdges(t,e,i,o);for(var h in e)if(e.hasOwnProperty(h)&&void 0!==this.body.edges[h]){var d=this.body.edges[h];this._backupEdgeOptions(d),d.setOptions({physics:!1})}for(var l in t)t.hasOwnProperty(l)&&(this.clusteredNodes[l]={clusterId:i.id,node:this.body.nodes[l]},this.body.nodes[l].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(t){if(void 0!==t){var e=this.clusteredNodes[t];if(void 0!==e){var i=e.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(t,e){var i=[];return c.forEach(t,function(t){e(t)&&i.push(t)}),i}},{key:"_updateState",value:function(){var t=this,e=void 0,i=[],o=[],n=function(e){c.forEach(t.body.nodes,function(t){!0===t.isCluster&&e(t)})};for(e in this.clusteredNodes)if(this.clusteredNodes.hasOwnProperty(e)){var r=this.body.nodes[e];void 0===r&&i.push(e)}n(function(t){for(var e=0;e0}e.endPointsValid()&&n||o.push(i)}),n(function(e){c.forEach(o,function(i){delete e.containedEdges[i],c.forEach(e.edges,function(n,s){if(n.id===i)return void(e.edges[s]=null);n.clusteringEdgeReplacingIds=t._filter(n.clusteringEdgeReplacingIds,function(t){return-1===o.indexOf(t)})}),e.edges=t._filter(e.edges,function(t){return null!==t})})}),c.forEach(o,function(e){delete t.clusteredEdges[e]}),c.forEach(o,function(e){delete t.body.edges[e]});var h=(0,s.default)(this.body.edges);c.forEach(h,function(e){var i=t.body.edges[e],o=t._isClusteredNode(i.fromId)||t._isClusteredNode(i.toId);if(o!==t._isClusteredEdge(i.id)){if(!o)throw new Error("remove edge from clustering not implemented!");var n=t._getClusterNodeForNode(i.fromId);void 0!==n&&t._clusterEdges(t.body.nodes[i.fromId],i,n);var s=t._getClusterNodeForNode(i.toId);void 0!==s&&t._clusterEdges(t.body.nodes[i.toId],i,s)}});for(var d=!1,l=!0;l;)!function(){var e=[];n(function(t){var i=(0,s.default)(t.containedNodes).length,o=!0===t.options.allowSingleNodeCluster;(o&&i<1||!o&&i<2)&&e.push(t.id)});for(var i=0;i0,d=d||l}();d&&this._updateState()}},{key:"_isClusteredNode",value:function(t){return void 0!==this.clusteredNodes[t]}},{key:"_isClusteredEdge",value:function(t){return void 0!==this.clusteredEdges[t]}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(2),m=i(47).default,v=function(t){function e(t,i,o,n,r,h){(0,a.default)(this,e);var d=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o,n,r,h));return d.isCluster=!0,d.containedNodes={},d.containedEdges={},d}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_openChildCluster",value:function(t){var e=this,i=this.body.nodes[t];if(void 0===this.containedNodes[t])throw new Error("node with id: "+t+" not in current cluster");if(!i.isCluster)throw new Error("node with id: "+t+" is not a cluster");delete this.containedNodes[t],f.forEach(i.edges,function(t){delete e.containedEdges[t.id]}),f.forEach(i.containedNodes,function(t,i){e.containedNodes[i]=t}),i.containedNodes={},f.forEach(i.containedEdges,function(t,i){e.containedEdges[i]=t}),i.containedEdges={},f.forEach(i.edges,function(t){f.forEach(e.edges,function(i){var o=i.clusteringEdgeReplacingIds.indexOf(t.id);-1!==o&&(f.forEach(t.clusteringEdgeReplacingIds,function(t){i.clusteringEdgeReplacingIds.push(t),e.body.edges[t].edgeReplacedById=i.id}),i.clusteringEdgeReplacingIds.splice(o,1))})}),i.edges=[]}}]),e}(m);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){var t;void 0!==window&&(t=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===t?function(t){t()}:t}Object.defineProperty(e,"__esModule",{value:!0});var s=i(0),r=o(s),a=i(1),h=o(a),d=i(2),l=function(){function t(e,i){(0,r.default)(this,t),n(),this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},d.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return(0,h.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("dragStart",function(){t.dragging=!0}),this.body.emitter.on("dragEnd",function(){t.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){t._resizeNodes()}),this.body.emitter.on("_redraw",function(){!1===t.renderingActive&&t._redraw()}),this.body.emitter.on("_blockRedraw",function(){t.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){t.allowRedraw=!0,t.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){t.renderRequests+=1,t.renderingActive=!0,t._startRendering()}),this.body.emitter.on("_stopRendering",function(){t.renderRequests-=1,t.renderingActive=t.renderRequests>0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,!0===t.requiresTimeout?clearTimeout(t.renderTimer):window.cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];d.selectiveDeepExtend(e,this.options,t)}}},{key:"_requestNextFrame",value:function(t,e){if("undefined"!=typeof window){var i=void 0,o=window;return!0===this.requiresTimeout?i=o.setTimeout(t,e):o.requestAnimationFrame&&(i=o.requestAnimationFrame(t)),i}}},{key:"_startRendering",value:function(){!0===this.renderingActive&&void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame(function(){t._redraw(!1)},0))}},{key:"_redraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1,0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var e=this.canvas.getContext(),i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&this._drawEdges(e),(!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag)&&this._drawNodes(e,t),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),!0===t&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var t=this.canvas.getContext();t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=this.canvas.DOMtoCanvas({x:-20,y:-20}),a=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),h={top:r.y,left:r.x,bottom:a.y,right:a.x},d=0;d0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new h(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:h.DIRECTION_ALL}),d.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new h(this.frame),d.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.pixelRatio;if(this._setPixelRatio(),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e)this._getCameraState(s),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var r=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===r&&this.frame.canvas.height===a||this._getCameraState(s), +this.frame.canvas.width!==r&&(this.frame.canvas.width=r,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");var e=1;return"undefined"!=typeof window&&(e=window.devicePixelRatio||1),e/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(76).default,l=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return(0,a.default)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:"fit",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=void 0;if(void 0!==t.nodes&&0!==t.nodes.length||(t.nodes=this.body.nodeIndices),!0===e){var n=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];!0===r.predefinedPosition&&(n+=1)}if(n>.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=d.getRange(this.body.nodes,t.nodes);o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;o*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=d.getRange(this.body.nodes,t.nodes);var a=1.1*Math.abs(i.maxX-i.minX),h=1.1*Math.abs(i.maxY-i.minY),l=this.canvas.frame.canvas.clientWidth/a,u=this.canvas.frame.canvas.clientHeight/h;o=l<=u?l:u}o>1?o=1:0===o&&(o=1);var c=d.findCenter(i),p={position:c,scale:o,animation:t.animation};this.moveTo(p)}},{key:"focus",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){if(void 0===t)return void(t={});void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),!1===t.animation&&(t.animation={duration:0}),!0===t.animation&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),this.animateView(t)}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),!0===t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===t?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(233).default,l=i(104).default,u=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new d(e,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},h.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("destroy",function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];h.selectiveNotDeepExtend(e,this.options,t),h.mergeOptions(this.options,t,"keyboard"),t.tooltip&&(h.extend(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=h.parseColor(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(t){return{x:t.x-h.getAbsoluteLeft(this.canvas.frame.canvas),y:t.y-h.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(t){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.selectionHandler.getSelection(),n=!1;n=!0===i?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var s=this.selectionHandler.getSelection(),r=this._determineDifference(o,s),a=this._determineDifference(s,o);r.edges.length>0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,o),n=!0),r.nodes.length>0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,o),n=!0),a.nodes.length>0&&(this.selectionHandler._generateClickEvent("selectNode",e,t),n=!0),a.edges.length>0&&(this.selectionHandler._generateClickEvent("selectEdge",e,t),n=!0),!0===n&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineDifference",value:function(t,e){var i=function(t,e){for(var i=[],o=0;o10&&(t=10);var o=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),i0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&!1===s){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],g=0;g0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new l(this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e))){var o=this.selectionHandler.getNodeAt(t);i=void 0!==o&&o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(10),d=i(37),l=i(35),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){o.activated=!0,o.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){o.activated=!1,o.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==o.keycharm&&o.keycharm.destroy()}),this.options={}}return(0,a.default)(t,[{key:"setOptions",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:"create",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled&&(!0===this.options.keyboard.bindToWindow?this.keycharm=l({container:window,preventDefault:!0}):this.keycharm=l({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(47).default,d=i(74).default,l=i(2),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){o.updateSelection()})}return(0,a.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){var e=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];l.selectiveDeepExtend(e,this.options,t)}}},{key:"selectOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return e}},{key:"selectAdditionalOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,!0===i.isSelected()?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return e}},{key:"_initBaseEvent",value:function(t,e){var i={};return i.pointer={DOM:{x:e.x,y:e.y},canvas:this.canvas.DOMtoCanvas(e)},i.event=t,i}},{key:"_generateClickEvent",value:function(t,e,i,o){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=this._initBaseEvent(e,i);if(!0===n)s.nodes=[],s.edges=[];else{var r=this.getSelection();s.nodes=r.nodes,s.edges=r.edges}void 0!==o&&(s.previousSelection=o),"click"==t&&(s.items=this.getClickedItems(i)),this.body.emitter.emit(t,s)}},{key:"selectObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==t&&(t instanceof h&&!0===e&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0)}},{key:"deselectObject",value:function(t){!0===t.isSelected()&&(t.selected=!1,this._removeFromSelection(t))}},{key:"_getAllNodesOverlappingWith",value:function(t){for(var e=[],i=this.body.nodes,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),o=this._getAllNodesOverlappingWith(i);return o.length>0?!0===e?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),o=10,n=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,o=void 0;if(!t||!t.nodes&&!t.edges)throw"Selection must be an object with nodes and/or edges properties" +;if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({nodes:t},{highlightEdges:e})}},{key:"selectEdges",value:function(t){if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({edges:t})}},{key:"updateSelection",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},{key:"getClickedItems",value:function(t){for(var e=this.canvas.DOMtoCanvas(t),i=[],o=this.body.nodeIndices,n=this.body.nodes,s=o.length-1;s>=0;s--){var r=n[o[s]],a=r.getItemsOnPoint(e);i.push.apply(i,a)}for(var h=this.body.edgeIndices,d=this.body.edges,l=h.length-1;l>=0;l--){var u=d[h[l]],c=u.getItemsOnPoint(e);i.push.apply(i,c)}return i}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(76).default,v=i(236),g=v.HorizontalStrategy,y=v.VerticalStrategy,b=function(){function t(){(0,u.default)(this,t),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return(0,p.default)(t,[{key:"addRelation",value:function(t,e){void 0===this.childrenReference[t]&&(this.childrenReference[t]=[]),this.childrenReference[t].push(e),void 0===this.parentReference[e]&&(this.parentReference[e]=[]),this.parentReference[e].push(t)}},{key:"checkIfTree",value:function(){for(var t in this.parentReference)if(this.parentReference[t].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(t,e){void 0!==e&&void 0===this.trees[t.id]&&(this.trees[t.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}},{key:"ensureLevel",value:function(t){void 0===this.levels[t]&&(this.levels[t]=0)}},{key:"getMaxLevel",value:function(t){var e=this,i={};return function t(o){if(void 0!==i[o])return i[o];var n=e.levels[o];if(e.childrenReference[o]){var s=e.childrenReference[o];if(s.length>0)for(var r=0;r0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(!0===o)return this.body.emitter.emit("refresh"),f.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(!0===this.options.hierarchical.enabled){var e=this.optionsBackup.physics;void 0===t.physics||!0===t.physics?(t.physics={enabled:void 0===e.enabled||e.enabled,solver:"hierarchicalRepulsion"},e.enabled=void 0===e.enabled||e.enabled,e.solver=e.solver||"barnesHut"):"object"===(0,a.default)(t.physics)?(e.enabled=void 0===t.physics.enabled||t.physics.enabled,e.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):!1!==t.physics&&(e.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===t.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1};else if(void 0===t.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1;else if("boolean"==typeof t.edges.smooth)this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:i};else{var o=t.edges.smooth;void 0!==o.type&&"dynamic"!==o.type&&(i=o.type),this.optionsBackup.edges={smooth:void 0===o.enabled||o.enabled,type:void 0===o.type?"dynamic":o.type,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection},t.edges.smooth={enabled:void 0===o.enabled||o.enabled,type:i,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(!0!==this.options.hierarchical.enabled){this.randomSeed=this.initialRandomSeed;for(var e=t.length+50,i=0;i150){for(var s=t.length;t.length>150&&o<=10;){o+=1;var r=t.length;o%3==0?this.body.modules.clustering.clusterBridges(n):this.body.modules.clustering.clusterOutliers(n);if(r==t.length&&o%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}o>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(t,this.body.edgeIndices,!0),this._shiftToCenter();for(var a=0;a0){var t=void 0,e=void 0,i=!1,o=!1;this.lastNodeOnLevel={},this.hierarchical=new b;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchical.levels[e]=t.options.level):o=!0);if(!0===o&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===o){var n=this.options.hierarchical.sortMethod;"hubsize"===n?this._determineLevelsByHubsize():"directed"===n?this._determineLevelsDirected():"custom"===n&&this._determineLevelsCustomCallback()}for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&this.hierarchical.ensureLevel(s);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},o=function(e,i){var o=t.hierarchical.trees;for(var n in o)o.hasOwnProperty(n)&&o[n]===e&&t.direction.shift(n,i)},n=function(){for(var e=[],i=0;i0)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,o=1e9,n=1e9,r=1e9,a=-1e9;for(var h in e)if(e.hasOwnProperty(h)){var d=t.body.nodes[h],l=t.hierarchical.levels[d.id],u=t.direction.getPosition(d),c=t._getSpaceAroundNode(d,e),p=(0,s.default)(c,2),f=p[0],m=p[1];o=Math.min(f,o),n=Math.min(m,n),l<=i&&(r=Math.min(u,r),a=Math.max(u,a))}return[r,a,o,n]},h=function(e,i){var o=t.hierarchical.getMaxLevel(e.id),n=t.hierarchical.getMaxLevel(i.id);return Math.min(o,n)},d=function(e,i,o){for(var n=t.hierarchical,s=0;s1)for(var h=0;h2&&void 0!==arguments[2]&&arguments[2],s=t.direction.getPosition(i),d=t.direction.getPosition(o),l=Math.abs(d-s),u=t.options.hierarchical.nodeSpacing;if(l>u){var c={},p={};r(i,c),r(o,p);var f=h(i,o),m=a(c,f),v=a(p,f),g=m[1],y=v[0],b=v[2];if(Math.abs(g-y)>u){var _=g-y+u;_<-b+u&&(_=-b+u),_<0&&(t._shiftBlock(o.id,_),e=!0,!0===n&&t._centerParent(o))}}},u=function(o,n){for(var h=n.id,d=n.edges,l=t.hierarchical.levels[n.id],u=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,c={},p=[],f=0;f0?p=Math.min(c,u-t.options.hierarchical.nodeSpacing):c<0&&(p=-Math.min(-c,l-t.options.hierarchical.nodeSpacing)),0!=p&&(t._shiftBlock(n.id,p),e=!0)}(_),_=b(o,d),function(i){var o=t.direction.getPosition(n),r=t._getSpaceAroundNode(n),a=(0,s.default)(r,2),h=a[0],d=a[1],l=i-o,u=o;l>0?u=Math.min(o+(d-t.options.hierarchical.nodeSpacing),i):l<0&&(u=Math.max(o-(h-t.options.hierarchical.nodeSpacing),i)),u!==o&&(t.direction.setPosition(n,u),e=!0)}(_)};!0===this.options.hierarchical.blockShifting&&(function(i){var o=t.hierarchical.getLevels();o=o.reverse();for(var n=0;n0&&Math.abs(p)0&&(a=this.direction.getPosition(i[n-1])+r),this.direction.setPosition(s,a,e),this._validatePositionAndContinue(s,e,a),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){var i=this.hierarchical.childrenReference[t];if(void 0!==i){for(var o=[],n=0;ne&&void 0===this.positionedNodes[r.id]))return;var h=this.options.hierarchical.nodeSpacing,d=void 0;d=0===s?this.direction.getPosition(this.body.nodes[t]):this.direction.getPosition(o[s-1])+h,this.direction.setPosition(r,d,a),this._validatePositionAndContinue(r,a,d)}var l=this._getCenterPosition(o);this.direction.setPosition(this.body.nodes[t],l,e)}}},{key:"_validatePositionAndContinue",value:function(t,e,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[e]){var o=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-ot.hierarchical.levels[e.id]&&t.hierarchical.addRelation(e.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments[1],o={},n=function i(n,s){if(void 0===o[n.id]){t.hierarchical.setTreeIndex(n,s),o[n.id]=!0;for(var r=void 0,a=t._getActiveEdges(n),h=0;h2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(t,e,i),this.abstract()}},{key:"getTreeSize",value:function(t){return this.fake_use(t),this.abstract()}},{key:"sort",value:function(t){this.fake_use(t),this.abstract()}},{key:"fix",value:function(t,e){this.fake_use(t,e),this.abstract()}},{key:"shift",value:function(t,e){this.fake_use(t,e),this.abstract()}}]),t}(),m=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(t){return t.x}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.x=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_x,max:e.max_x}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.x||void 0===e.x?0:t.x-e.x})}},{key:"fix",value:function(t,e){t.y=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.y=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].x+=e}}]),e}(f),v=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(t){return t.y}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.y=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_y,max:e.max_y}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.y||void 0===e.y?0:t.y-e.y})}},{key:"fix",value:function(t,e){t.x=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.x=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].y+=e}}]),e}(f);e.HorizontalStrategy=v,e.VerticalStrategy=m},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(19),a=o(r),h=i(6),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(10),v=i(37),g=function(){function t(e,i,o){var n=this;(0,u.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},f.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){n._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return(0,p.default)(t,[{key:"_restore",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&("boolean"==typeof t?this.options.enabled=t:(this.options.enabled=!0,f.deepExtend(this.options,t)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var t=this.selectionHandler._getSelectedNodeCount(),e=this.selectionHandler._getSelectedEdgeCount(),i=t+e,o=this.options.locales[this.options.locale],n=!1;!1!==this.options.addNode&&(this._createAddNodeButton(o),n=!0),!1!==this.options.addEdge&&(!0===n?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===t&&"function"==typeof this.options.editNode?(!0===n?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===e&&0===t&&!1!==this.options.editEdge&&(!0===n?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(t>0&&!1!==this.options.deleteNode?(!0===n&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&!1!==this.options.deleteEdge&&(!0===n&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==e.isCluster){var i=f.deepExtend({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",this._dragStartEdge.bind(this)),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"===(0,d.default)(this.options.editEdge)&&"function"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId)){var t=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(t.from,t.to)}if(!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId){var i=this.body.edges[this.edgeBeingEditedId],o=this._getNewTargetNode(i.from.x,i.from.y),n=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(o.id),this.temporaryIds.nodes.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this._temporaryBindUI("onTouch",this._controlNodeTouch.bind(this)),this._temporaryBindUI("onTap",function(){}),this._temporaryBindUI("onHold",function(){}),this._temporaryBindUI("onDragStart",this._controlNodeDragStart.bind(this)),this._temporaryBindUI("onDrag",this._controlNodeDrag.bind(this)),this._temporaryBindUI("onDragEnd",this._controlNodeDragEnd.bind(this)),this._temporaryBindUI("onMouseMove",function(){}),this._temporaryBindEvent("beforeDrawing",function(t){var e=i.edgeType.findBorderPositions(t);!1===o.selected&&(o.x=e.from.x,o.y=e.from.y),!1===n.selected&&(n.x=e.to.x,n.y=e.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i} +;if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=f.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+f.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:t,right:t,top:e,bottom:e},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},f.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(f.recursiveDOMDelete(this.editModeDiv),f.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+t]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+t].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+t])}},{key:"_createAddNodeButton",value:function(t){var e=this._createButton("addNode","vis-button vis-add",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(t){var e=this._createButton("addEdge","vis-button vis-connect",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(t){var e=this._createButton("editNode","vis-button vis-edit",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(t){var e=this._createButton("editEdge","vis-button vis-edit",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(t){var e;e=this.options.rtl?"vis-button vis-delete-rtl":"vis-button vis-delete";var i=this._createButton("delete",e,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(t){var e=this._createButton("back","vis-button vis-back",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[t+"Div"]=document.createElement("div"),this.manipulationDOM[t+"Div"].className=e,this.manipulationDOM[t+"Label"]=document.createElement("div"),this.manipulationDOM[t+"Label"].className=o,this.manipulationDOM[t+"Label"].innerHTML=i,this.manipulationDOM[t+"Div"].appendChild(this.manipulationDOM[t+"Label"]),this.manipulationDOM[t+"Div"]}},{key:"_createDescription",value:function(t){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",t))}},{key:"_temporaryBindEvent",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:"_temporaryBindUI",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error("This UI function does not exist. Typo? You tried: "+t+" possible are: "+(0,a.default)((0,s.default)(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:"_unbindTemporaryUIs",value:function(){for(var t in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(!0===s.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=f.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+f.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(!0===s.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(t){var e=this.lastTouch;this.selectionHandler._generateClickEvent("dragStart",t,e,void 0,!0)}},{key:"_performAddNode",value:function(t){var e=this,i={id:f.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e,label:this.body.data.edges._data[this.edgeBeingEditedId].label},n=this.options.editEdge;if("object"===(void 0===n?"undefined":(0,d.default)(n))&&(n=n.editWithoutDrag),"function"==typeof n){if(2!==n.length)throw new Error("The function for edit does not support two arguments (data, callback)");n(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(239),u=o(l),c=function(){function t(e,i,o){(0,a.default)(this,t),this.body=e,this.springLength=i,this.springConstant=o,this.distanceSolver=new u.default}return(0,d.default)(t,[{key:"setOptions",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:"solve",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(o),this._createK_matrix(o),this._createE_matrix();for(var n=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),a=1e9,h=0,d=0,l=0,u=0,c=0;a>.01&&n1&&c<5;){c+=1,this._moveNode(h,d,l);var m=this._getEnergy(h),v=(0,s.default)(m,3);u=v[0],d=v[1],l=v[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;h0&&e-1 in t)}function q(t){return a.call(t,function(t){return null!=t})}function H(t){return t.length>0?r.fn.concat.apply([],t):t}function I(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function V(t){return t in l?l[t]:l[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function _(t,e){return"number"!=typeof e||h[I(t)]?e:e+"px"}function B(t){var e,n;return c[t]||(e=f.createElement(t),f.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),c[t]=n),c[t]}function U(t){return"children"in t?u.call(t.children):r.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function X(t,e){var n,r=t?t.length:0;for(n=0;r>n;n++)this[n]=t[n];this.length=r,this.selector=e||""}function J(t,r,i){for(n in r)i&&(Z(r[n])||L(r[n]))?(Z(r[n])&&!Z(t[n])&&(t[n]={}),L(r[n])&&!L(t[n])&&(t[n]=[]),J(t[n],r[n],i)):r[n]!==e&&(t[n]=r[n])}function W(t,e){return null==e?r(t):r(t).filter(e)}function Y(t,e,n,r){return F(e)?e.call(t,n,r):e}function G(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function K(t,n){var r=t.className||"",i=r&&r.baseVal!==e;return n===e?i?r.baseVal:r:void(i?r.baseVal=n:t.className=n)}function Q(t){try{return t?"true"==t||("false"==t?!1:"null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?r.parseJSON(t):t):t}catch(e){return t}}function tt(t,e){e(t);for(var n=0,r=t.childNodes.length;r>n;n++)tt(t.childNodes[n],e)}var e,n,r,i,O,P,o=[],s=o.concat,a=o.filter,u=o.slice,f=t.document,c={},l={},h={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},p=/^\s*<(\w+|!)[^>]*>/,d=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,m=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,g=/^(?:body|html)$/i,v=/([A-Z])/g,y=["val","css","html","text","data","width","height","offset"],x=["after","prepend","before","append"],b=f.createElement("table"),E=f.createElement("tr"),j={tr:f.createElement("tbody"),tbody:b,thead:b,tfoot:b,td:E,th:E,"*":f.createElement("div")},w=/complete|loaded|interactive/,T=/^[\w-]*$/,S={},C=S.toString,N={},A=f.createElement("div"),D={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},L=Array.isArray||function(t){return t instanceof Array};return N.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=A).appendChild(t),r=~N.qsa(i,e).indexOf(t),o&&A.removeChild(t),r},O=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},P=function(t){return a.call(t,function(e,n){return t.indexOf(e)==n})},N.fragment=function(t,n,i){var o,s,a;return d.test(t)&&(o=r(f.createElement(RegExp.$1))),o||(t.replace&&(t=t.replace(m,"<$1>")),n===e&&(n=p.test(t)&&RegExp.$1),n in j||(n="*"),a=j[n],a.innerHTML=""+t,o=r.each(u.call(a.childNodes),function(){a.removeChild(this)})),Z(i)&&(s=r(o),r.each(i,function(t,e){y.indexOf(t)>-1?s[t](e):s.attr(t,e)})),o},N.Z=function(t,e){return new X(t,e)},N.isZ=function(t){return t instanceof N.Z},N.init=function(t,n){var i;if(!t)return N.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&p.test(t))i=N.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}else{if(F(t))return r(f).ready(t);if(N.isZ(t))return t;if(L(t))i=q(t);else if(R(t))i=[t],t=null;else if(p.test(t))i=N.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}}return N.Z(i,t)},r=function(t,e){return N.init(t,e)},r.extend=function(t){var e,n=u.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){J(t,n,e)}),t},N.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,s=T.test(o);return t.getElementById&&s&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:u.call(s&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},r.contains=f.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},r.type=$,r.isFunction=F,r.isWindow=k,r.isArray=L,r.isPlainObject=Z,r.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},r.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},r.inArray=function(t,e,n){return o.indexOf.call(e,t,n)},r.camelCase=O,r.trim=function(t){return null==t?"":String.prototype.trim.call(t)},r.uuid=0,r.support={},r.expr={},r.noop=function(){},r.map=function(t,e){var n,i,o,r=[];if(z(t))for(i=0;i=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return o.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return F(t)?this.not(this.not(t)):r(a.call(this,function(e){return N.matches(e,t)}))},add:function(t,e){return r(P(this.concat(r(t,e))))},is:function(t){return this.length>0&&N.matches(this[0],t)},not:function(t){var n=[];if(F(t)&&t.call!==e)this.each(function(e){t.call(this,e)||n.push(this)});else{var i="string"==typeof t?this.filter(t):z(t)&&F(t.item)?u.call(t):r(t);this.forEach(function(t){i.indexOf(t)<0&&n.push(t)})}return r(n)},has:function(t){return this.filter(function(){return R(t)?r.contains(this,t):r(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!R(t)?t:r(t)},last:function(){var t=this[this.length-1];return t&&!R(t)?t:r(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?r(t).filter(function(){var t=this;return o.some.call(n,function(e){return r.contains(e,t)})}):1==this.length?r(N.qsa(this[0],t)):this.map(function(){return N.qsa(this,t)}):r()},closest:function(t,e){var n=[],i="object"==typeof t&&r(t);return this.each(function(r,o){for(;o&&!(i?i.indexOf(o)>=0:N.matches(o,t));)o=o!==e&&!M(o)&&o.parentNode;o&&n.indexOf(o)<0&&n.push(o)}),r(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=r.map(n,function(t){return(t=t.parentNode)&&!M(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return W(e,t)},parent:function(t){return W(P(this.pluck("parentNode")),t)},children:function(t){return W(this.map(function(){return U(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||u.call(this.childNodes)})},siblings:function(t){return W(this.map(function(t,e){return a.call(U(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return r.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=B(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=F(t);if(this[0]&&!e)var n=r(t).get(0),i=n.parentNode||this.length>1;return this.each(function(o){r(this).wrapAll(e?t.call(this,o):i?n.cloneNode(!0):n)})},wrapAll:function(t){if(this[0]){r(this[0]).before(t=r(t));for(var e;(e=t.children()).length;)t=e.first();r(t).append(this)}return this},wrapInner:function(t){var e=F(t);return this.each(function(n){var i=r(this),o=i.contents(),s=e?t.call(this,n):t;o.length?o.wrapAll(s):i.append(s)})},unwrap:function(){return this.parent().each(function(){r(this).replaceWith(r(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var n=r(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()})},prev:function(t){return r(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return r(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;r(this).empty().append(Y(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=Y(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,r){var i;return"string"!=typeof t||1 in arguments?this.each(function(e){if(1===this.nodeType)if(R(t))for(n in t)G(this,n,t[n]);else G(this,t,Y(this,r,e,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(i=this[0].getAttribute(t))?i:e},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){G(this,t)},this)})},prop:function(t,e){return t=D[t]||t,1 in arguments?this.each(function(n){this[t]=Y(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=D[t]||t,this.each(function(){delete this[t]})},data:function(t,n){var r="data-"+t.replace(v,"-$1").toLowerCase(),i=1 in arguments?this.attr(r,n):this.attr(r);return null!==i?Q(i):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=Y(this,t,e,this.value)})):this[0]&&(this[0].multiple?r(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each(function(t){var n=r(this),i=Y(this,e,t,n.offset()),o=n.offsetParent().offset(),s={top:i.top-o.top,left:i.left-o.left};"static"==n.css("position")&&(s.position="relative"),n.css(s)});if(!this.length)return null;if(f.documentElement!==this[0]&&!r.contains(f.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var i=this[0];if("string"==typeof t){if(!i)return;return i.style[O(t)]||getComputedStyle(i,"").getPropertyValue(t)}if(L(t)){if(!i)return;var o={},s=getComputedStyle(i,"");return r.each(t,function(t,e){o[e]=i.style[O(e)]||s.getPropertyValue(e)}),o}}var a="";if("string"==$(t))e||0===e?a=I(t)+":"+_(t,e):this.each(function(){this.style.removeProperty(I(t))});else for(n in t)t[n]||0===t[n]?a+=I(n)+":"+_(n,t[n])+";":this.each(function(){this.style.removeProperty(I(n))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(r(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?o.some.call(this,function(t){return this.test(K(t))},V(t)):!1},addClass:function(t){return t?this.each(function(e){if("className"in this){i=[];var n=K(this),o=Y(this,t,e,n);o.split(/\s+/g).forEach(function(t){r(this).hasClass(t)||i.push(t)},this),i.length&&K(this,n+(n?" ":"")+i.join(" "))}}):this},removeClass:function(t){return this.each(function(n){if("className"in this){if(t===e)return K(this,"");i=K(this),Y(this,t,n,i).split(/\s+/g).forEach(function(t){i=i.replace(V(t)," ")}),K(this,i.trim())}})},toggleClass:function(t,n){return t?this.each(function(i){var o=r(this),s=Y(this,t,i,K(this));s.split(/\s+/g).forEach(function(t){(n===e?!o.hasClass(t):n)?o.addClass(t):o.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),i=g.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(r(t).css("margin-top"))||0,n.left-=parseFloat(r(t).css("margin-left"))||0,i.top+=parseFloat(r(e[0]).css("border-top-width"))||0,i.left+=parseFloat(r(e[0]).css("border-left-width"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||f.body;t&&!g.test(t.nodeName)&&"static"==r(t).css("position");)t=t.offsetParent;return t})}},r.fn.detach=r.fn.remove,["width","height"].forEach(function(t){var n=t.replace(/./,function(t){return t[0].toUpperCase()});r.fn[t]=function(i){var o,s=this[0];return i===e?k(s)?s["inner"+n]:M(s)?s.documentElement["scroll"+n]:(o=this.offset())&&o[t]:this.each(function(e){s=r(this),s.css(t,Y(this,i,e,s[t]()))})}}),x.forEach(function(n,i){var o=i%2;r.fn[n]=function(){var n,a,s=r.map(arguments,function(t){var i=[];return n=$(t),"array"==n?(t.forEach(function(t){return t.nodeType!==e?i.push(t):r.zepto.isZ(t)?i=i.concat(t.get()):void(i=i.concat(N.fragment(t)))}),i):"object"==n||null==t?t:N.fragment(t)}),u=this.length>1;return s.length<1?this:this.each(function(e,n){a=o?n:n.parentNode,n=0==i?n.nextSibling:1==i?n.firstChild:2==i?n:null;var c=r.contains(f.documentElement,a);s.forEach(function(e){if(u)e=e.cloneNode(!0);else if(!a)return r(e).remove();a.insertBefore(e,n),c&&tt(e,function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}})})})},r.fn[o?n+"To":"insert"+(i?"Before":"After")]=function(t){return r(t)[n](this),this}}),N.Z.prototype=X.prototype=r.fn,N.uniq=P,N.deserializeValue=Q,r.zepto=N,r}();return t.Zepto=e,void 0===t.$&&(t.$=e),function(e){function h(t){return t._zid||(t._zid=n++)}function p(t,e,n,r){if(e=d(e),e.ns)var i=m(e.ns);return(a[h(t)]||[]).filter(function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||i.test(t.ns))&&(!n||h(t.fn)===h(n))&&(!r||t.sel==r)})}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function m(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function g(t,e){return t.del&&!f&&t.e in c||!!e}function v(t){return l[t]||f&&c[t]||t}function y(t,n,i,o,s,u,f){var c=h(t),p=a[c]||(a[c]=[]);n.split(/\s/).forEach(function(n){if("ready"==n)return e(document).ready(i);var a=d(n);a.fn=i,a.sel=s,a.e in l&&(i=function(t){var n=t.relatedTarget;return!n||n!==this&&!e.contains(this,n)?a.fn.apply(this,arguments):void 0}),a.del=u;var c=u||i;a.proxy=function(e){if(e=T(e),!e.isImmediatePropagationStopped()){e.data=o;var n=c.apply(t,e._args==r?[e]:[e].concat(e._args));return n===!1&&(e.preventDefault(),e.stopPropagation()),n}},a.i=p.length,p.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,g(a,f))})}function x(t,e,n,r,i){var o=h(t);(e||"").split(/\s/).forEach(function(e){p(t,e,n,r).forEach(function(e){delete a[o][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,g(e,i))})})}function T(t,n){return(n||!t.isDefaultPrevented)&&(n||(n=t),e.each(w,function(e,r){var i=n[e];t[e]=function(){return this[r]=b,i&&i.apply(n,arguments)},t[r]=E}),t.timeStamp||(t.timeStamp=Date.now()),(n.defaultPrevented!==r?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(t.isDefaultPrevented=b)),t}function S(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===r||(n[e]=t[e]);return T(n,t)}var r,n=1,i=Array.prototype.slice,o=e.isFunction,s=function(t){return"string"==typeof t},a={},u={},f="onfocusin"in t,c={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:x},e.proxy=function(t,n){var r=2 in arguments&&i.call(arguments,2);if(o(t)){var a=function(){return t.apply(n,r?r.concat(i.call(arguments)):arguments)};return a._zid=h(t),a}if(s(n))return r?(r.unshift(t[n],t),e.proxy.apply(null,r)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var b=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,w={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,n,a,u,f){var c,l,h=this;return t&&!s(t)?(e.each(t,function(t,e){h.on(t,n,a,e,f)}),h):(s(n)||o(u)||u===!1||(u=a,a=n,n=r),(u===r||a===!1)&&(u=a,a=r),u===!1&&(u=E),h.each(function(r,o){f&&(c=function(t){return x(o,t.type,u),u.apply(this,arguments)}),n&&(l=function(t){var r,s=e(t.target).closest(n,o).get(0);return s&&s!==o?(r=e.extend(S(t),{currentTarget:s,liveFired:o}),(c||u).apply(s,[r].concat(i.call(arguments,1)))):void 0}),y(o,t,u,a,n,l||c)}))},e.fn.off=function(t,n,i){var a=this;return t&&!s(t)?(e.each(t,function(t,e){a.off(t,n,e)}),a):(s(n)||o(i)||i===!1||(i=n,n=r),i===!1&&(i=E),a.each(function(){x(this,t,i,n)}))},e.fn.trigger=function(t,n){return t=s(t)||e.isPlainObject(t)?e.Event(t):T(t),t._args=n,this.each(function(){t.type in c&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)})},e.fn.triggerHandler=function(t,n){var r,i;return this.each(function(o,a){r=S(s(t)?e.Event(t):t),r._args=n,r.target=a,e.each(p(a,t.type||t),function(t,e){return i=e.proxy(r),r.isImmediatePropagationStopped()?!1:void 0})}),i},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}}),e.Event=function(t,e){s(t)||(e=t,t=e.type);var n=document.createEvent(u[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),T(n)}}(e),function(e){function p(t,n,r){var i=e.Event(n);return e(t).trigger(i,r),!i.isDefaultPrevented()}function d(t,e,n,i){return t.global?p(e||r,n,i):void 0}function m(t){t.global&&0===e.active++&&d(t,null,"ajaxStart")}function g(t){t.global&&!--e.active&&d(t,null,"ajaxStop")}function v(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||d(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void d(e,n,"ajaxSend",[t,e])}function y(t,e,n,r){var i=n.context,o="success";n.success.call(i,t,o,e),r&&r.resolveWith(i,[t,o,e]),d(n,i,"ajaxSuccess",[e,n,t]),b(o,e,n)}function x(t,e,n,r,i){var o=r.context;r.error.call(o,n,e,t),i&&i.rejectWith(o,[n,e,t]),d(r,o,"ajaxError",[n,r,t||e]),b(e,n,r)}function b(t,e,n){var r=n.context;n.complete.call(r,e,t),d(n,r,"ajaxComplete",[e,n]),g(n)}function E(t,e,n){if(n.dataFilter==j)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function j(){}function w(t){return t&&(t=t.split(";",2)[0]),t&&(t==c?"html":t==f?"json":a.test(t)?"script":u.test(t)&&"xml")||"text"}function T(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function S(t){t.processData&&t.data&&"string"!=e.type(t.data)&&(t.data=e.param(t.data,t.traditional)),!t.data||t.type&&"GET"!=t.type.toUpperCase()&&"jsonp"!=t.dataType||(t.url=T(t.url,t.data),t.data=void 0)}function C(t,n,r,i){return e.isFunction(n)&&(i=r,r=n,n=void 0),e.isFunction(r)||(i=r,r=void 0),{url:t,data:n,success:r,dataType:i}}function O(t,n,r,i){var o,s=e.isArray(n),a=e.isPlainObject(n);e.each(n,function(n,u){o=e.type(u),i&&(n=r?i:i+"["+(a||"object"==o||"array"==o?n:"")+"]"),!i&&s?t.add(u.name,u.value):"array"==o||!r&&"object"==o?O(t,u,r,n):t.add(n,u)})}var i,o,n=+new Date,r=t.document,s=/)<[^<]*)*<\/script>/gi,a=/^(?:text|application)\/javascript/i,u=/^(?:text|application)\/xml/i,f="application/json",c="text/html",l=/^\s*$/,h=r.createElement("a");h.href=t.location.href,e.active=0,e.ajaxJSONP=function(i,o){if(!("type"in i))return e.ajax(i);var c,p,s=i.jsonpCallback,a=(e.isFunction(s)?s():s)||"Zepto"+n++,u=r.createElement("script"),f=t[a],l=function(t){e(u).triggerHandler("error",t||"abort")},h={abort:l};return o&&o.promise(h),e(u).on("load error",function(n,r){clearTimeout(p),e(u).off().remove(),"error"!=n.type&&c?y(c[0],h,i,o):x(null,r||"error",h,i,o),t[a]=f,c&&e.isFunction(f)&&f(c[0]),f=c=void 0}),v(h,i)===!1?(l("abort"),h):(t[a]=function(){c=arguments},u.src=i.url.replace(/\?(.+)=\?/,"?$1="+a),r.head.appendChild(u),i.timeout>0&&(p=setTimeout(function(){l("timeout")},i.timeout)),h)},e.ajaxSettings={type:"GET",beforeSend:j,success:j,error:j,complete:j,context:null,global:!0,xhr:function(){return new t.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:f,xml:"application/xml, text/xml",html:c,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:j},e.ajax=function(n){var u,f,s=e.extend({},n||{}),a=e.Deferred&&e.Deferred();for(i in e.ajaxSettings)void 0===s[i]&&(s[i]=e.ajaxSettings[i]);m(s),s.crossDomain||(u=r.createElement("a"),u.href=s.url,u.href=u.href,s.crossDomain=h.protocol+"//"+h.host!=u.protocol+"//"+u.host),s.url||(s.url=t.location.toString()),(f=s.url.indexOf("#"))>-1&&(s.url=s.url.slice(0,f)),S(s);var c=s.dataType,p=/\?.+=\?/.test(s.url);if(p&&(c="jsonp"),s.cache!==!1&&(n&&n.cache===!0||"script"!=c&&"jsonp"!=c)||(s.url=T(s.url,"_="+Date.now())),"jsonp"==c)return p||(s.url=T(s.url,s.jsonp?s.jsonp+"=?":s.jsonp===!1?"":"callback=?")),e.ajaxJSONP(s,a);var P,d=s.accepts[c],g={},b=function(t,e){g[t.toLowerCase()]=[t,e]},C=/^([\w-]+:)\/\//.test(s.url)?RegExp.$1:t.location.protocol,N=s.xhr(),O=N.setRequestHeader;if(a&&a.promise(N),s.crossDomain||b("X-Requested-With","XMLHttpRequest"),b("Accept",d||"*/*"),(d=s.mimeType||d)&&(d.indexOf(",")>-1&&(d=d.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(d)),(s.contentType||s.contentType!==!1&&s.data&&"GET"!=s.type.toUpperCase())&&b("Content-Type",s.contentType||"application/x-www-form-urlencoded"),s.headers)for(o in s.headers)b(o,s.headers[o]);if(N.setRequestHeader=b,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=j,clearTimeout(P);var t,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==C){if(c=c||w(s.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)t=N.response;else{t=N.responseText;try{t=E(t,c,s),"script"==c?(1,eval)(t):"xml"==c?t=N.responseXML:"json"==c&&(t=l.test(t)?null:e.parseJSON(t))}catch(r){n=r}if(n)return x(n,"parsererror",N,s,a)}y(t,N,s,a)}else x(N.statusText||null,N.status?"error":"abort",N,s,a)}},v(N,s)===!1)return N.abort(),x(null,"abort",N,s,a),N;var A="async"in s?s.async:!0;if(N.open(s.type,s.url,A,s.username,s.password),s.xhrFields)for(o in s.xhrFields)N[o]=s.xhrFields[o];for(o in g)O.apply(N,g[o]);return s.timeout>0&&(P=setTimeout(function(){N.onreadystatechange=j,N.abort(),x(null,"timeout",N,s,a)},s.timeout)),N.send(s.data?s.data:null),N},e.get=function(){return e.ajax(C.apply(null,arguments))},e.post=function(){var t=C.apply(null,arguments);return t.type="POST",e.ajax(t)},e.getJSON=function(){var t=C.apply(null,arguments);return t.dataType="json",e.ajax(t)},e.fn.load=function(t,n,r){if(!this.length)return this;var a,i=this,o=t.split(/\s/),u=C(t,n,r),f=u.success;return o.length>1&&(u.url=o[0],a=o[1]),u.success=function(t){i.html(a?e("
        ").html(t.replace(s,"")).find(a):t),f&&f.apply(i,arguments)},e.ajax(u),this};var N=encodeURIComponent;e.param=function(t,n){var r=[];return r.add=function(t,n){e.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(t)+"="+N(n))},O(r,t,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;t.getComputedStyle=function(t,e){try{return n(t,e)}catch(r){return null}}}}(),e}); \ No newline at end of file diff --git a/frontend/documentation/js/menu-wc.js b/frontend/documentation/js/menu-wc.js new file mode 100644 index 0000000..caf58c6 --- /dev/null +++ b/frontend/documentation/js/menu-wc.js @@ -0,0 +1,62 @@ +'use strict'; + +customElements.define('compodoc-menu', class extends HTMLElement { + constructor() { + super(); + this.isNormalMode = this.getAttribute('mode') === 'normal'; + } + + connectedCallback() { + this.render(this.isNormalMode); + } + + render(isNormalMode) { + let tp = lithtml.html(` + + `); + this.innerHTML = tp.strings; + } +}); \ No newline at end of file diff --git a/frontend/documentation/js/menu-wc_es5.js b/frontend/documentation/js/menu-wc_es5.js new file mode 100644 index 0000000..d0020fe --- /dev/null +++ b/frontend/documentation/js/menu-wc_es5.js @@ -0,0 +1,42 @@ +'use strict'; + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +customElements.define('compodoc-menu', /*#__PURE__*/function (_HTMLElement) { + _inherits(_class, _HTMLElement); + var _super = _createSuper(_class); + function _class() { + var _this; + _classCallCheck(this, _class); + _this = _super.call(this); + _this.isNormalMode = _this.getAttribute('mode') === 'normal'; + return _this; + } + _createClass(_class, [{ + key: "connectedCallback", + value: function connectedCallback() { + this.render(this.isNormalMode); + } + }, { + key: "render", + value: function render(isNormalMode) { + var tp = lithtml.html("\n \n ")); + this.innerHTML = tp.strings; + } + }]); + return _class; +}( /*#__PURE__*/_wrapNativeSuper(HTMLElement))); \ No newline at end of file diff --git a/frontend/documentation/js/menu.js b/frontend/documentation/js/menu.js new file mode 100644 index 0000000..2c84393 --- /dev/null +++ b/frontend/documentation/js/menu.js @@ -0,0 +1,321 @@ +document.addEventListener('DOMContentLoaded', function () { + var menuCollapsed = false, + mobileMenu = document.getElementById('mobile-menu'); + + var localContextInUrl = ''; + + if (COMPODOC_CURRENT_PAGE_CONTEXT !== '') { + switch (COMPODOC_CURRENT_PAGE_CONTEXT) { + case 'additional-page': + localContextInUrl = 'additional-documentation'; + break; + case 'class': + localContextInUrl = 'classes'; + break; + case 'miscellaneous-functions': + case 'miscellaneous-variables': + case 'miscellaneous-typealiases': + case 'miscellaneous-enumerations': + localContextInUrl = 'miscellaneous'; + default: + break; + } + } + + function hasClass(el, cls) { + return el.className && new RegExp('(\\s|^)' + cls + '(\\s|$)').test(el.className); + } + + var processLink = function (link, url) { + if (url.charAt(0) !== '.') { + var prefix = ''; + switch (COMPODOC_CURRENT_PAGE_DEPTH) { + case 5: + prefix = '../../../../../'; + break; + case 4: + prefix = '../../../../'; + break; + case 3: + prefix = '../../../'; + break; + case 2: + prefix = '../../'; + break; + case 1: + prefix = '../'; + break; + case 0: + prefix = './'; + break; + } + link.setAttribute('href', prefix + url); + } + }; + + var processMenuLinks = function (links, dontAddClass) { + for (var i = 0; i < links.length; i++) { + var link = links[i]; + var linkHref = link.getAttribute('href'); + if (linkHref) { + var linkHrefFile = linkHref.substr(linkHref.lastIndexOf('/') + 1, linkHref.length); + if ( + linkHrefFile.toLowerCase() === COMPODOC_CURRENT_PAGE_URL.toLowerCase() && + link.innerHTML.indexOf('Getting started') == -1 && + !dontAddClass && + linkHref.toLowerCase().indexOf(localContextInUrl.toLowerCase()) !== -1 + ) { + link.classList.add('active'); + } + processLink(link, linkHref); + } + } + }; + var chapterLinks = document.querySelectorAll('[data-type="chapter-link"]'); + processMenuLinks(chapterLinks); + var entityLinks = document.querySelectorAll('[data-type="entity-link"]'); + processMenuLinks(entityLinks); + var indexLinks = document.querySelectorAll('[data-type="index-link"]'); + processMenuLinks(indexLinks, true); + var compodocLogos = document.querySelectorAll('[data-type="compodoc-logo"]'); + var customLogo = document.querySelectorAll('[data-type="custom-logo"]'); + var processLogos = function (entityLogos) { + for (var i = 0; i < entityLogos.length; i++) { + var entityLogo = entityLogos[i]; + if (entityLogo) { + var url = entityLogo.getAttribute('data-src'); + // Dark mode + logo + let isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; + if (isDarkMode && url.indexOf('compodoc') !== -1) { + url = 'images/compodoc-vectorise-inverted.png'; + } + if (url.charAt(0) !== '.') { + var prefix = ''; + switch (COMPODOC_CURRENT_PAGE_DEPTH) { + case 5: + prefix = '../../../../../'; + break; + case 4: + prefix = '../../../../'; + break; + case 3: + prefix = '../../../'; + break; + case 2: + prefix = '../../'; + break; + case 1: + prefix = '../'; + break; + case 0: + prefix = './'; + break; + } + entityLogo.src = prefix + url; + } + } + } + }; + processLogos(compodocLogos); + processLogos(customLogo); + + setTimeout(function () { + document.getElementById('btn-menu').addEventListener('click', function () { + if (menuCollapsed) { + mobileMenu.style.display = 'none'; + } else { + mobileMenu.style.display = 'block'; + document.getElementsByTagName('body')[0].style['overflow-y'] = 'hidden'; + } + menuCollapsed = !menuCollapsed; + }); + + /** + * Native bootstrap doesn't wait DOMContentLoaded event to start his job, re do it here + */ + var Collapses = document.querySelectorAll('[data-toggle="collapse"]'); + for (var o = 0, cll = Collapses.length; o < cll; o++) { + var collapse = Collapses[o], + options = {}; + options.duration = collapse.getAttribute('data-duration'); + var c = new Collapse(collapse, options); + } + + // collapse menu + var classnameMenuToggler = document.getElementsByClassName('menu-toggler'), + faAngleUpClass = 'ion-ios-arrow-up', + faAngleDownClass = 'ion-ios-arrow-down', + toggleItemMenu = function (e) { + var element = $(e.target), + parent = element[0].parentNode, + parentLink, + elementIconChild; + if (parent) { + if (!$(parent).hasClass('linked')) { + e.preventDefault(); + } else { + parentLink = parent.parentNode; + if (parentLink && element.hasClass('link-name')) { + $(parentLink).trigger('click'); + } + } + elementIconChild = parent.getElementsByClassName(faAngleUpClass)[0]; + if (!elementIconChild) { + elementIconChild = parent.getElementsByClassName(faAngleDownClass)[0]; + } + if (elementIconChild) { + elementIconChild = $(elementIconChild); + if (elementIconChild.hasClass(faAngleUpClass)) { + elementIconChild.addClass(faAngleDownClass); + elementIconChild.removeClass(faAngleUpClass); + } else { + elementIconChild.addClass(faAngleUpClass); + elementIconChild.removeClass(faAngleDownClass); + } + } + } + }; + + for (var i = 0; i < classnameMenuToggler.length; i++) { + classnameMenuToggler[i].addEventListener('click', toggleItemMenu, false); + } + + // Scroll to active link + var menus = document.querySelectorAll('.menu'), + i = 0, + len = menus.length, + activeMenu, + activeMenuClass, + activeLink; + + for (i; i < len; i++) { + if (getComputedStyle(menus[i]).display != 'none') { + activeMenu = menus[i]; + activeMenuClass = activeMenu.getAttribute('class').split(' ')[0]; + } + } + + if (activeMenu) { + activeLink = document.querySelector('.' + activeMenuClass + ' .active'); + if (activeLink) { + var linkType = activeLink.getAttribute('data-type'); + var linkContext = activeLink.getAttribute('data-context'); + if (linkType === 'entity-link') { + var parentLi = activeLink.parentNode, + parentUl, + parentChapterMenu; + if (parentLi) { + parentUl = parentLi.parentNode; + if (parentUl) { + parentChapterMenu = parentUl.parentNode; + if (parentChapterMenu) { + var toggler = parentChapterMenu.querySelector('.menu-toggler'), + elementIconChild = + toggler.getElementsByClassName(faAngleUpClass)[0]; + if (toggler && !elementIconChild) { + toggler.click(); + } + } + } + } + if (linkContext && linkContext === 'sub-entity') { + // Toggle also the master parent menu + var linkContextId = activeLink.getAttribute('data-context-id'); + var toggler = activeMenu.querySelector( + '.chapter.' + linkContextId + ' a .menu-toggler' + ); + if (toggler) { + toggler.click(); + } + if (linkContextId === 'additional') { + var mainToggler = activeMenu.querySelector( + '.chapter.' + linkContextId + ' div.menu-toggler' + ); + if (mainToggler) { + mainToggler.click(); + } + } + } + } else if (linkType === 'chapter-link') { + var linkContextId = activeLink.getAttribute('data-context-id'); + var toggler = activeLink.querySelector('.menu-toggler'); + if (toggler) { + toggler.click(); + } + if (linkContextId === 'additional') { + var mainToggler = activeMenu.querySelector( + '.chapter.' + linkContextId + ' div.menu-toggler' + ); + if (mainToggler) { + mainToggler.click(); + } + } + } + setTimeout(function () { + activeMenu.scrollTop = activeLink.offsetTop; + if ( + activeLink.innerHTML.toLowerCase().indexOf('readme') != -1 || + activeLink.innerHTML.toLowerCase().indexOf('overview') != -1 + ) { + activeMenu.scrollTop = 0; + } + }, 300); + } + } + // Dark mode toggle button + var useDark = window.matchMedia('(prefers-color-scheme: dark)'); + var darkModeState = useDark.matches; + var $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input'); + var $darkModeToggles = document.querySelectorAll('.dark-mode-switch'); + var darkModeStateLocal = localStorage.getItem('compodoc_darkmode-state'); + + function checkToggle(check) { + for (var i = 0; i < $darkModeToggleSwitchers.length; i++) { + $darkModeToggleSwitchers[i].checked = check; + } + } + + function toggleDarkMode(state) { + if (window.localStorage) { + localStorage.setItem('compodoc_darkmode-state', state); + } + + checkToggle(state); + + const hasClass = document.body.classList.contains('dark'); + + if (state) { + for (var i = 0; i < $darkModeToggles.length; i++) { + $darkModeToggles[i].classList.add('dark'); + } + if (!hasClass) { + document.body.classList.add('dark'); + } + } else { + for (var i = 0; i < $darkModeToggles.length; i++) { + $darkModeToggles[i].classList.remove('dark'); + } + if (hasClass) { + document.body.classList.remove('dark'); + } + } + } + + useDark.addEventListener('change', function (evt) { + toggleDarkMode(evt.matches); + }); + if (darkModeStateLocal) { + darkModeState = darkModeStateLocal === 'true'; + } + toggleDarkMode(darkModeState); + + if ($darkModeToggles.length > 0) { + for (var i = 0; i < $darkModeToggleSwitchers.length; i++) { + $darkModeToggleSwitchers[i].addEventListener('change', function (event) { + darkModeState = !darkModeState; + toggleDarkMode(darkModeState); + }); + } + } + }, 0); +}); diff --git a/frontend/documentation/js/routes.js b/frontend/documentation/js/routes.js new file mode 100644 index 0000000..bfd875c --- /dev/null +++ b/frontend/documentation/js/routes.js @@ -0,0 +1,280 @@ +document.addEventListener('DOMContentLoaded', function() { + + function htmlEntities(str) { + return String(str).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + } + + function foundLazyModuleWithPath(path) { + //path is like app/customers/customers.module#CustomersModule + var split = path.split('#'), + lazyModulePath = split[0], + lazyModuleName = split[1]; + return lazyModuleName; + } + + function getBB(selection) { + selection.each(function(d){d.bbox = this.getBBox();}) + } + + var test_cases, + test_case, + test_case_num, + engine; + + var tree = ROUTES_INDEX; + + function cleanStringChildren(obj) { + for (var property in obj) { + if (obj.hasOwnProperty(property)) { + if (property === 'children' && typeof obj[property] === 'object') { + for (var i = obj[property].length - 1; i >= 0 ; i--) { + if (typeof obj[property][i] === 'string') { + obj[property].splice(i, 1); + } + } + } + if (typeof obj[property] === 'object') { + cleanStringChildren(obj[property]); + } + } + } + } + cleanStringChildren(tree); + + engine = d3.layout.tree().setNodeSizes(true); + + engine.spacing(function(a, b) { + return a.parent == b.parent ? + 0 : engine.rootXSize(); + }) + + engine.nodeSize(function(d) { + return [document.getElementById(d.id).getBBox()["height"] + 70, document.getElementById(d.id).getBBox()["width"] + 30]; + }); + + var nodes = d3.layout.hierarchy()(tree), + + svg = d3.select("#body-routes").append('svg'), + svg_g = svg.append("g"), + svg_p = svg.append("g"), + last_id = 0, + + node = svg_g.selectAll(".node") + .data(nodes, function(d) { + return d.id || (d.id = ++last_id); + }) + .enter().append("g") + .attr("class", "node"); + + svg + .attr('id', 'main') + + svg_g + .attr("transform", "translate(20,0)") + .attr('id', 'main-group') + + svg_p + .attr("transform", "translate(20,0)") + .attr('id', 'paths') + + var infos_group = node.append("g") + .attr({ + "id": function(d) { + return d.id; + }, + dx: 0, + dy: 0, + }) + + //Node icon + infos_group.append("text") + .attr('font-family', 'Ionicons') + .attr("y", 5) + .attr("x", 0) + .attr('class', function(d) { + return d.children || d._children + ? "icon has-children" + : "icon"; + }) + .attr('font-size', function(d) { + return '15px' + }).text(function(d) { + return '\uf183' + }); + + //node infos + infos_group.append("svg:text") + .attr("x", function(d) { + return 0; + }) + .attr("y", function(d) { + return 10; + }) + .attr("dy", ".35em") + .attr('class', 'text') + .attr("text-anchor", function(d) { + return "start"; + }).html(function(d) { + // if kind === module name + module + // if kind === component component + path + var _name = ''; + if (d.kind === 'module') { + if (d.module) { + _name += '' + d.module + ''; + if (d.name) { + _name += '' + d.name + ''; + } + } else { + _name += '' + htmlEntities(d.name) + ''; + } + } else if (d.kind === 'component') { + _name += '' + d.path + '' + _name += '' + d.component + '' + if (d.outlet) { + _name += '<outlet> : ' + d.outlet + '' + } + } else { + _name += '/' + d.path + '' + if (d.component) { + _name += '' + d.component + '' + } + if (d.loadChildren) { + var moduleName = foundLazyModuleWithPath(d.loadChildren); + _name += '' + moduleName + '' + } + if (d.canActivate) { + _name += '✓ canActivate' + } + if (d.canDeactivate) { + _name += '×  canDeactivate' + } + if (d.canActivateChild) { + _name += '✓ canActivateChild' + } + if (d.canLoad) { + _name += '→ canLoad' + } + if (d.redirectTo) { + _name += '→ ' + d.redirectTo + '' + } + if (d.pathMatch) { + _name += '> ' + d.pathMatch + '' + } + if (d.outlet) { + _name += '<outlet> : ' + d.outlet + '' + } + } + return _name; + }) + .call(getBB); + + // + // Node lazy loaded ? + // + infos_group.append('svg:text') + .attr("y", function(d) { + return 45; + }) + .attr("x", function(d) { + return -18; + }) + .attr('font-family', 'Ionicons') + .attr('class', function(d) { + return "icon"; + }) + .attr('font-size', function(d) { + return '15px' + }).text(function(d) { + var _text = ''; + if (d.loadChildren) { + _text = '\uf4c1'; + } + if (d.guarded) { + _text = '\uf1b0'; + } + return _text; + }); + + //Node text background + infos_group.insert("rect","text") + .attr("width", function(d){ + return d.bbox.width; + }) + .attr("height", function(d){ + return d.bbox.height; + }) + .attr("y", function(d) { + return 15; + }) + .style("fill", "white") + .style("fill-opacity", 0.75); + + nodes = engine.nodes(tree); + + function node_extents(n) { + return [n.x - n.x_size / 2, n.y, + n.x + n.x_size / 2, n.y + n.y_size + ]; + } + var root_extents = node_extents(nodes[0]); + var xmin = root_extents[0], + ymin = root_extents[1], + xmax = root_extents[2], + ymax = root_extents[3], + area_sum = (xmax - xmin) * (ymax - ymin), + x_size_min = nodes[0].x_size, + y_size_min = nodes[0].y_size; + + nodes.slice(1).forEach(function(n) { + var ne = node_extents(n); + xmin = Math.min(xmin, ne[0]); + ymin = Math.min(ymin, ne[1]); + xmax = Math.max(xmax, ne[2]); + ymax = Math.max(ymax, ne[3]); + area_sum += (ne[2] - ne[0]) * (ne[3] - ne[1]); + x_size_min = Math.min(x_size_min, n.x_size); + y_size_min = Math.min(y_size_min, n.y_size); + }); + + var area_ave = area_sum / nodes.length; + var scale = 80 / Math.sqrt(area_ave); + + function svg_x(node_y) { + return (node_y - ymin); + } + + function svg_y(node_x) { + return (node_x - xmin) * scale; + } + + + var nodebox_right_margin = Math.min(x_size_min * scale, 10); + var nodebox_vertical_margin = Math.min(y_size_min * scale, 3); + + node.attr("transform", function(d) { + return "translate(" + svg_x(d.y) + "," + svg_y(d.x) + ")"; + }) + + var diagonal = d3.svg.diagonal() + .projection(function(d) { + return [svg_x(d.y), svg_y(d.x)]; + }); + + var links = engine.links(nodes); + var links = svg_p.selectAll(".link") + .data(links) + .enter().append("path") + .attr("class", "link") + .attr("d", diagonal); + + var _svg = document.getElementById('main'), + main_g = _svg.childNodes[0] + + _svg.removeChild(main_g); + _svg.appendChild(main_g); + + svg.attr({ + width: document.getElementById('main-group').getBBox()['width'] + 30, + height: document.getElementById('main-group').getBBox()['height'] + 50, + }); +}); diff --git a/frontend/documentation/js/search/lunr.min.js b/frontend/documentation/js/search/lunr.min.js new file mode 100644 index 0000000..cdc94cd --- /dev/null +++ b/frontend/documentation/js/search/lunr.min.js @@ -0,0 +1,6 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ +!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/frontend/documentation/js/search/search-lunr.js b/frontend/documentation/js/search/search-lunr.js new file mode 100644 index 0000000..35e7dde --- /dev/null +++ b/frontend/documentation/js/search/search-lunr.js @@ -0,0 +1,67 @@ +(function(compodoc) { + + function LunrSearchEngine() { + this.index = undefined; + this.store = {}; + this.name = 'LunrSearchEngine'; + } + + LunrSearchEngine.prototype.init = function() { + var that = this, + d = new promise.Promise(); + + that.index = lunr.Index.load(COMPODOC_SEARCH_INDEX.index); + that.store = COMPODOC_SEARCH_INDEX.store; + d.done(); + + return d; + }; + + LunrSearchEngine.prototype.search = function(q, offset, length) { + var that = this, + results = [], + d = new promise.Promise(); + + if (this.index) { + results = $.map(this.index.search('*' + q + '*'), function(result) { + var doc = that.store[result.ref]; + + return { + title: doc.title, + url: doc.url, + body: doc.summary || doc.body + }; + }); + } + + d.done({ + query: q, + results: length === 0 ? results : results.slice(0, length), + count: results.length + }); + + return d; + }; + + compodoc.addEventListener(compodoc.EVENTS.READY, function(event) { + var engine = new LunrSearchEngine(), + initialized = false; + + function query(q, offset, length) { + if (!initialized) throw new Error('Search has not been initialized'); + return engine.search(q, offset, length); + } + + compodoc.search = { + query: query + }; + + engine.init() + .then(function() { + initialized = true; + compodoc.dispatchEvent({ + type: compodoc.EVENTS.SEARCH_READY + }); + }); + }); +})(compodoc); diff --git a/frontend/documentation/js/search/search.js b/frontend/documentation/js/search/search.js new file mode 100644 index 0000000..6451d3d --- /dev/null +++ b/frontend/documentation/js/search/search.js @@ -0,0 +1,268 @@ +(function(compodoc) { + var usePushState = (typeof history.pushState !== 'undefined'), + + // DOM Elements + $body = $('body'), + $searchResults, + $searchInput, + $searchList, + $searchTitle, + $searchResultsCount, + $searchQuery, + $mainContainer, + $xsMenu; + + // Throttle search + function throttle(fn, wait) { + var timeout; + + return function() { + var ctx = this, args = arguments; + if (!timeout) { + timeout = setTimeout(function() { + timeout = undefined; + fn.apply(ctx, args); + }, wait); + } + }; + } + + function displayResults(res) { + var noResults = res.count == 0; + var groups = {}; + $searchResults.toggleClass('no-results', noResults); + + // Clear old results + $searchList.empty(); + + // Display title for research + $searchResultsCount.text(res.count); + $searchQuery.text(res.query); + + // Group result by context + res.results.forEach(function(res) { + var context = res.title.split(' - ')[0]; + if (typeof groups[context] === 'undefined') { + groups[context] = { + results: [res] + } + } else { + groups[context].results.push(res) + } + }); + + var sortedGroups = Object.keys(groups).sort(); + + for (var i = 0; i < sortedGroups.length; i++) { + var property = sortedGroups[i]; + + var $li = $('
      • ', { + 'class': 'search-results-group' + }); + var finalPropertyLabel = ''; + var propertyLabels = property.split('-'); + + if (propertyLabels.length === 2 && propertyLabels[0] !== 'miscellaneous' && propertyLabels[0] !== 'additional') { + finalPropertyLabel = propertyLabels[0].charAt(0).toUpperCase() + propertyLabels[0].substring(1) + ' - ' + propertyLabels[1].charAt(0).toUpperCase() + propertyLabels[1].substring(1) + ' (' + groups[property].results.length + ')'; + } else if (propertyLabels[0] === 'additional') { + finalPropertyLabel = 'Additional pages' + ' (' + groups[property].results.length + ')' + } else { + finalPropertyLabel = propertyLabels[0].charAt(0).toUpperCase() + propertyLabels[0].substring(1) + ' (' + groups[property].results.length + ')' + } + var $groupTitle = $('

        ', { + 'text': finalPropertyLabel + }); + $groupTitle.appendTo($li); + + var $ulResults = $('
          ', { + 'class': 'search-results-list' + }) + + groups[property].results.forEach(function(res) { + var link = ''; + var $liResult = $('
        • ', { + 'class': 'search-results-item' + }); + switch (COMPODOC_CURRENT_PAGE_DEPTH) { + case 0: + link = './'; + break; + case 1: + case 2: + case 3: + case 4: + case 5: + link = '../'.repeat(COMPODOC_CURRENT_PAGE_DEPTH); + break; + }; + var finalResLabel = res.title.split(' - ')[1].charAt(0).toUpperCase() + res.title.split(' - ')[1].substring(1); + var $link = $('', { + 'href': link + res.url, + 'text': finalResLabel + }); + $link.appendTo($liResult); + $liResult.appendTo($ulResults); + }); + $ulResults.appendTo($li); + + $li.appendTo($searchList); + } + } + + function launchSearch(q) { + $body.addClass('with-search'); + + if ($xsMenu.css('display') === 'block') { + $mainContainer.css('height', 'calc(100% - 100px)'); + $mainContainer.css('margin-top', '100px'); + } + + throttle(compodoc.search.query(q, 0, MAX_SEARCH_RESULTS) + .then(function(results) { + displayResults(results); + }), 1000); + } + + function closeSearch() { + $body.removeClass('with-search'); + if ($xsMenu.css('display') === 'block') { + $mainContainer.css('height', 'calc(100% - 50px)'); + $mainContainer.css('margin-top', '50px'); + } + } + + function bindMenuButton() { + document.getElementById('btn-menu').addEventListener('click', function() { + if ($xsMenu.css('display') === 'none') { + $body.removeClass('with-search'); + $mainContainer.css('height', 'calc(100% - 50px)'); + $mainContainer.css('margin-top', '50px'); + } + $.each($searchInputs, function(index, item){ + var item = $(item); + item.val(''); + }); + }); + } + + function bindSearch() { + // Bind DOM + $searchInputs = $('#book-search-input input'); + + $searchResults = $('.search-results'); + $searchList = $searchResults.find('.search-results-list'); + $searchTitle = $searchResults.find('.search-results-title'); + $searchResultsCount = $searchTitle.find('.search-results-count'); + $searchQuery = $searchTitle.find('.search-query'); + $mainContainer = $('.container-fluid'); + $xsMenu = $('.xs-menu'); + + // Launch query based on input content + function handleUpdate(item) { + var q = item.val(); + + if (q.length == 0) { + closeSearch(); + window.location.href = window.location.href.replace(window.location.search, ''); + } else { + launchSearch(q); + } + } + + // Detect true content change in search input + var propertyChangeUnbound = false; + + $.each($searchInputs, function(index, item){ + var item = $(item); + // HTML5 (IE9 & others) + item.on('input', function(e) { + // Unbind propertychange event for IE9+ + if (!propertyChangeUnbound) { + $(this).unbind('propertychange'); + propertyChangeUnbound = true; + } + + handleUpdate($(this)); + }); + // Workaround for IE < 9 + item.on('propertychange', function(e) { + if (e.originalEvent.propertyName == 'value') { + handleUpdate($(this)); + } + }); + // Push to history on blur + item.on('blur', function(e) { + // Update history state + if (usePushState) { + var uri = updateQueryString('q', $(this).val()); + if ($(this).val() !== '') { + history.pushState({ path: uri }, null, uri); + } + } + }); + }); + } + + function launchSearchFromQueryString() { + var q = getParameterByName('q'); + if (q && q.length > 0) { + // Update search inputs + $.each($searchInputs, function(index, item){ + var item = $(item); + item.val(q) + }); + // Launch search + launchSearch(q); + } + } + + compodoc.addEventListener(compodoc.EVENTS.SEARCH_READY, function(event) { + bindSearch(); + + bindMenuButton(); + + launchSearchFromQueryString(); + }); + + function getParameterByName(name) { + var url = window.location.href; + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)', 'i'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); + } + + function updateQueryString(key, value) { + value = encodeURIComponent(value); + + var url = window.location.href; + var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'), + hash; + + if (re.test(url)) { + if (typeof value !== 'undefined' && value !== null) + return url.replace(re, '$1' + key + '=' + value + '$2$3'); + else { + hash = url.split('#'); + url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + } + else { + if (typeof value !== 'undefined' && value !== null) { + var separator = url.indexOf('?') !== -1 ? '&' : '?'; + hash = url.split('#'); + url = hash[0] + separator + key + '=' + value; + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + else + return url; + } + } +})(compodoc); diff --git a/frontend/documentation/js/search/search_index.js b/frontend/documentation/js/search/search_index.js new file mode 100644 index 0000000..2f2bbea --- /dev/null +++ b/frontend/documentation/js/search/search_index.js @@ -0,0 +1,4 @@ +var COMPODOC_SEARCH_INDEX = { + "index": {"version":"2.3.9","fields":["title","body"],"fieldVectors":[["title/coverage.html",[0,1.5]],["body/coverage.html",[0,1.342,1,2.008,2,2.008,3,2.008,4,2.008,5,2.008,6,1.342,7,2.008,8,2.008,9,0.121,10,0.121,11,0.121]],["title/dependencies.html",[12,0.641,13,1.34]],["body/dependencies.html",[9,0.084,10,0.084,11,0.147,13,0.781,14,1.168,15,2.847,16,1.168,17,1.168,18,1.168,19,1.168,20,1.168,21,1.168,22,1.737,23,1.737,24,1.168,25,1.168,26,1.737,27,0.781,28,1.168,29,1.737,30,1.168,31,1.168,32,1.168,33,1.168,34,1.168,35,1.168,36,1.168,37,1.168,38,1.168,39,1.168]],["title/index.html",[40,1.424,41,1.424,42,1.424]],["body/index.html",[6,0.554,9,0.064,10,0.064,11,0.064,12,0.373,27,1.116,43,0.829,44,1.332,45,0.829,46,1.669,47,0.554,48,0.829,49,0.829,50,1.332,51,2.094,52,2.351,53,0.829,54,0.829,55,0.829,56,0.829,57,0.829,58,0.829,59,0.829,60,0.829,61,0.829,62,0.829,63,0.829,64,0.829,65,1.669,66,1.669,67,0.829,68,1.669,69,0.829,70,1.912,71,0.829,72,0.829,73,0.829,74,0.829,75,1.332,76,1.332,77,1.912,78,0.829,79,1.332,80,1.332,81,0.829,82,2.237,83,0.829,84,0.829,85,0.829,86,1.332,87,0.829,88,0.829,89,0.829,90,0.829,91,0.829,92,0.829,93,0.829,94,1.669,95,0.829,96,0.829,97,0.829,98,0.829,99,0.373,100,0.829,101,0.829]],["title/modules.html",[102,1.5]],["body/modules.html",[9,0.131,10,0.131,11,0.131,102,1.53]],["title/overview.html",[99,1.01]],["body/overview.html",[9,0.131,10,0.131,11,0.131,99,1.03]],["title/properties.html",[12,0.641,103,1.34]],["body/properties.html",[9,0.127,10,0.127,11,0.137,47,1.454,103,1.454,104,2.175]]],"invertedIndex":[["",{"_index":11,"title":{},"body":{"coverage.html":{},"dependencies.html":{},"index.html":{},"modules.html":{},"overview.html":{},"properties.html":{}}}],["0.0.0",{"_index":104,"title":{},"body":{"properties.html":{}}}],["0.11.4",{"_index":39,"title":{},"body":{"dependencies.html":{}}}],["14.2.0",{"_index":15,"title":{},"body":{"dependencies.html":{}}}],["14.2.5",{"_index":48,"title":{},"body":{"index.html":{}}}],["2.3.0",{"_index":37,"title":{},"body":{"dependencies.html":{}}}],["20.3.50",{"_index":29,"title":{},"body":{"dependencies.html":{}}}],["3.6.1",{"_index":33,"title":{},"body":{"dependencies.html":{}}}],["7.5.0",{"_index":35,"title":{},"body":{"dependencies.html":{}}}],["add",{"_index":89,"title":{},"body":{"index.html":{}}}],["angular",{"_index":27,"title":{},"body":{"dependencies.html":{},"index.html":{}}}],["angular/animations",{"_index":14,"title":{},"body":{"dependencies.html":{}}}],["angular/cdk",{"_index":16,"title":{},"body":{"dependencies.html":{}}}],["angular/common",{"_index":17,"title":{},"body":{"dependencies.html":{}}}],["angular/compiler",{"_index":18,"title":{},"body":{"dependencies.html":{}}}],["angular/core",{"_index":19,"title":{},"body":{"dependencies.html":{}}}],["angular/forms",{"_index":20,"title":{},"body":{"dependencies.html":{}}}],["angular/material",{"_index":21,"title":{},"body":{"dependencies.html":{}}}],["angular/platform",{"_index":22,"title":{},"body":{"dependencies.html":{}}}],["angular/router",{"_index":25,"title":{},"body":{"dependencies.html":{}}}],["application",{"_index":57,"title":{},"body":{"index.html":{}}}],["artifacts",{"_index":71,"title":{},"body":{"index.html":{}}}],["automatically",{"_index":58,"title":{},"body":{"index.html":{}}}],["browser",{"_index":23,"title":{},"body":{"dependencies.html":{}}}],["build",{"_index":70,"title":{},"body":{"index.html":{}}}],["capabilities",{"_index":92,"title":{},"body":{"index.html":{}}}],["change",{"_index":60,"title":{},"body":{"index.html":{}}}],["check",{"_index":97,"title":{},"body":{"index.html":{}}}],["choice",{"_index":85,"title":{},"body":{"index.html":{}}}],["cli",{"_index":46,"title":{},"body":{"index.html":{}}}],["code",{"_index":63,"title":{},"body":{"index.html":{}}}],["command",{"_index":86,"title":{},"body":{"index.html":{}}}],["component",{"_index":66,"title":{},"body":{"index.html":{}}}],["coverage",{"_index":0,"title":{"coverage.html":{}},"body":{"coverage.html":{}}}],["dependencies",{"_index":13,"title":{"dependencies.html":{}},"body":{"dependencies.html":{}}}],["dev",{"_index":54,"title":{},"body":{"index.html":{}}}],["development",{"_index":49,"title":{},"body":{"index.html":{}}}],["directive|pipe|service|class|guard|interface|enum|module",{"_index":69,"title":{},"body":{"index.html":{}}}],["directory",{"_index":74,"title":{},"body":{"index.html":{}}}],["dist",{"_index":73,"title":{},"body":{"index.html":{}}}],["documentation",{"_index":1,"title":{},"body":{"coverage.html":{}}}],["dynamic",{"_index":24,"title":{},"body":{"dependencies.html":{}}}],["e2e",{"_index":83,"title":{},"body":{"index.html":{}}}],["end",{"_index":82,"title":{},"body":{"index.html":{}}}],["execute",{"_index":79,"title":{},"body":{"index.html":{}}}],["file",{"_index":2,"title":{},"body":{"coverage.html":{}}}],["files",{"_index":62,"title":{},"body":{"index.html":{}}}],["first",{"_index":88,"title":{},"body":{"index.html":{}}}],["further",{"_index":93,"title":{},"body":{"index.html":{}}}],["gantt",{"_index":28,"title":{},"body":{"dependencies.html":{}}}],["generate",{"_index":65,"title":{},"body":{"index.html":{}}}],["generated",{"_index":45,"title":{},"body":{"index.html":{}}}],["getting",{"_index":40,"title":{"index.html":{}},"body":{}}],["go",{"_index":96,"title":{},"body":{"index.html":{}}}],["help",{"_index":94,"title":{},"body":{"index.html":{}}}],["http://localhost:4200",{"_index":56,"title":{},"body":{"index.html":{}}}],["identifier",{"_index":4,"title":{},"body":{"coverage.html":{}}}],["implements",{"_index":90,"title":{},"body":{"index.html":{}}}],["index",{"_index":42,"title":{"index.html":{}},"body":{}}],["jquery",{"_index":32,"title":{},"body":{"dependencies.html":{}}}],["karma",{"_index":81,"title":{},"body":{"index.html":{}}}],["matching",{"_index":10,"title":{},"body":{"coverage.html":{},"dependencies.html":{},"index.html":{},"modules.html":{},"overview.html":{},"properties.html":{}}}],["material",{"_index":30,"title":{},"body":{"dependencies.html":{}}}],["modules",{"_index":102,"title":{"modules.html":{}},"body":{"modules.html":{}}}],["more",{"_index":95,"title":{},"body":{"index.html":{}}}],["name",{"_index":67,"title":{},"body":{"index.html":{}}}],["navigate",{"_index":55,"title":{},"body":{"index.html":{}}}],["need",{"_index":87,"title":{},"body":{"index.html":{}}}],["new",{"_index":6,"title":{},"body":{"coverage.html":{},"index.html":{}}}],["ng",{"_index":52,"title":{},"body":{"index.html":{}}}],["out",{"_index":98,"title":{},"body":{"index.html":{}}}],["overview",{"_index":99,"title":{"overview.html":{}},"body":{"index.html":{},"overview.html":{}}}],["package",{"_index":12,"title":{"dependencies.html":{},"properties.html":{}},"body":{"index.html":{}}}],["page",{"_index":101,"title":{},"body":{"index.html":{}}}],["platform",{"_index":84,"title":{},"body":{"index.html":{}}}],["project",{"_index":44,"title":{},"body":{"index.html":{}}}],["properties",{"_index":103,"title":{"properties.html":{}},"body":{"properties.html":{}}}],["reference",{"_index":100,"title":{},"body":{"index.html":{}}}],["reload",{"_index":59,"title":{},"body":{"index.html":{}}}],["results",{"_index":9,"title":{},"body":{"coverage.html":{},"dependencies.html":{},"index.html":{},"modules.html":{},"overview.html":{},"properties.html":{}}}],["run",{"_index":51,"title":{},"body":{"index.html":{}}}],["running",{"_index":75,"title":{},"body":{"index.html":{}}}],["rxjs",{"_index":34,"title":{},"body":{"dependencies.html":{}}}],["scaffolding",{"_index":64,"title":{},"body":{"index.html":{}}}],["serve",{"_index":53,"title":{},"body":{"index.html":{}}}],["server",{"_index":50,"title":{},"body":{"index.html":{}}}],["source",{"_index":61,"title":{},"body":{"index.html":{}}}],["started",{"_index":41,"title":{"index.html":{}},"body":{}}],["statements",{"_index":5,"title":{},"body":{"coverage.html":{}}}],["stored",{"_index":72,"title":{},"body":{"index.html":{}}}],["syncfusion/ej2",{"_index":26,"title":{},"body":{"dependencies.html":{}}}],["syncfusiongantt",{"_index":43,"title":{},"body":{"index.html":{}}}],["table",{"_index":8,"title":{},"body":{"coverage.html":{}}}],["tablesort(document.getelementbyid('coverage",{"_index":7,"title":{},"body":{"coverage.html":{}}}],["test",{"_index":78,"title":{},"body":{"index.html":{}}}],["testing",{"_index":91,"title":{},"body":{"index.html":{}}}],["tests",{"_index":77,"title":{},"body":{"index.html":{}}}],["theme",{"_index":31,"title":{},"body":{"dependencies.html":{}}}],["tslib",{"_index":36,"title":{},"body":{"dependencies.html":{}}}],["type",{"_index":3,"title":{},"body":{"coverage.html":{}}}],["unit",{"_index":76,"title":{},"body":{"index.html":{}}}],["use",{"_index":68,"title":{},"body":{"index.html":{}}}],["version",{"_index":47,"title":{},"body":{"index.html":{},"properties.html":{}}}],["via",{"_index":80,"title":{},"body":{"index.html":{}}}],["zone.js",{"_index":38,"title":{},"body":{"dependencies.html":{}}}]],"pipeline":["stemmer"]}, + "store": {"coverage.html":{"url":"coverage.html","title":"coverage - coverage","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Documentation coverage\n\n\n\n \n\n\n\n \n \n File\n Type\n Identifier\n Statements\n \n \n \n \n\n\n\n\n\n new Tablesort(document.getElementById('coverage-table'));\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"dependencies.html":{"url":"dependencies.html","title":"package-dependencies - dependencies","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Dependencies\n \n \n \n @angular/animations : ^14.2.0\n \n @angular/cdk : ^14.2.0\n \n @angular/common : ^14.2.0\n \n @angular/compiler : ^14.2.0\n \n @angular/core : ^14.2.0\n \n @angular/forms : ^14.2.0\n \n @angular/material : ^14.2.0\n \n @angular/platform-browser : ^14.2.0\n \n @angular/platform-browser-dynamic : ^14.2.0\n \n @angular/router : ^14.2.0\n \n @syncfusion/ej2-angular-gantt : ^20.3.50\n \n @syncfusion/ej2-material-theme : ~20.3.50\n \n jquery : ^3.6.1\n \n rxjs : ~7.5.0\n \n tslib : ^2.3.0\n \n zone.js : ~0.11.4\n \n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"index.html":{"url":"index.html","title":"getting-started - index","body":"\n \n\nSyncfusionGantt\nThis project was generated with Angular CLI version 14.2.5.\nDevelopment server\nRun ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.\nCode scaffolding\nRun ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.\nBuild\nRun ng build to build the project. The build artifacts will be stored in the dist/ directory.\nRunning unit tests\nRun ng test to execute the unit tests via Karma.\nRunning end-to-end tests\nRun ng e2e to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.\nFurther help\nTo get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules.html":{"url":"modules.html","title":"modules - modules","body":"\n \n\n\n\n\n Modules\n\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"overview.html":{"url":"overview.html","title":"overview - overview","body":"\n \n\n\n\n Overview\n\n \n\n \n \n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"properties.html":{"url":"properties.html","title":"package-properties - properties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Properties\n \n \n \n Version : 0.0.0\n \n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"}} +} diff --git a/frontend/documentation/js/sourceCode.js b/frontend/documentation/js/sourceCode.js new file mode 100644 index 0000000..541dbd1 --- /dev/null +++ b/frontend/documentation/js/sourceCode.js @@ -0,0 +1,58 @@ +document.addEventListener('DOMContentLoaded', function() { + var $tabSource = document.querySelector('#source-tab'), + $tabInfo = document.querySelector('#info-tab'), + $tabReadme = document.querySelector('#readme-tab'), + $tabTemplate = document.querySelector('#templateData-tab'), + $tabTree = document.querySelector('#tree-tab'), + $tabExample = document.querySelector('#example-tab'), + $prismPre = document.querySelector('pre.compodoc-sourcecode'); + if ($tabSource && $prismPre) { + $prismCode = $prismPre.querySelector('code'), + $content = document.querySelector('.content'), + prismLinks = document.querySelectorAll('.link-to-prism') + + for (var i = 0; i < prismLinks.length; i++) { + prismLinks[i].addEventListener('click', linkToPrism, false); + } + + function linkToPrism(event) { + var targetLine = event.target.getAttribute('data-line'); + event.preventDefault(); + + $prismPre.setAttribute('data-line', targetLine); + Prism.highlightElement($prismCode, function() {}); + + $tabSource.click(); + + setTimeout(function() { + var $prismHighlightLine = document.querySelector('.line-highlight'), + top = parseInt(getComputedStyle($prismHighlightLine)['top']); + $content.scrollTop = top; + }, 500); + }; + + window.onhashchange = function(event) { + switch (window.location.hash) { + case '': + case '#info': + $tabInfo.click(); + break; + case '#readme': + $tabReadme.click(); + break; + case '#source': + $tabSource.click(); + break; + case '#template': + $tabTemplate.click(); + break; + case '#dom-tree': + $tabTree.click(); + break; + case '#example': + $tabExample.click(); + break; + } + } + } +}); diff --git a/frontend/documentation/js/svg-pan-zoom.controls.js b/frontend/documentation/js/svg-pan-zoom.controls.js new file mode 100644 index 0000000..ea6d138 --- /dev/null +++ b/frontend/documentation/js/svg-pan-zoom.controls.js @@ -0,0 +1,53 @@ +document.addEventListener('DOMContentLoaded', function() { + if (document.getElementById('module-graph-svg')) { + panZoom = svgPanZoom(document.getElementById('module-graph-svg').querySelector('svg'), { + zoomEnabled: true, + minZoom: 1, + maxZoom: 5 + }); + + document.getElementById('zoom-in').addEventListener('click', function(ev) { + ev.preventDefault(); + panZoom.zoomIn(); + }); + + document.getElementById('zoom-out').addEventListener('click', function(ev) { + ev.preventDefault(); + panZoom.zoomOut(); + }); + + document.getElementById('reset').addEventListener('click', function(ev) { + ev.preventDefault(); + panZoom.resetZoom(); + panZoom.resetPan(); + }); + + var overviewFullscreen = false, + originalOverviewHeight; + + document.getElementById('fullscreen').addEventListener('click', function(ev) { + if (overviewFullscreen) { + document.getElementById('module-graph-svg').style.height = originalOverviewHeight; + overviewFullscreen = false; + if (ev.target) { + ev.target.classList.remove('ion-md-close'); + ev.target.classList.add('ion-ios-resize'); + } + } else { + originalOverviewHeight = document.getElementById('module-graph-svg').style.height; + document.getElementById('module-graph-svg').style.height = '85vh'; + overviewFullscreen = true; + if (ev.target) { + ev.target.classList.remove('ion-ios-resize'); + ev.target.classList.add('ion-md-close'); + } + } + document.getElementById('module-graph-svg').querySelector('svg').style.height = document.getElementById('module-graph-svg').clientHeight; + setTimeout(function() { + panZoom.resize(); + panZoom.fit(); + panZoom.center(); + }, 0) + }); + } +}); diff --git a/frontend/documentation/js/tabs.js b/frontend/documentation/js/tabs.js new file mode 100644 index 0000000..dbe4c28 --- /dev/null +++ b/frontend/documentation/js/tabs.js @@ -0,0 +1,21 @@ +document.addEventListener('DOMContentLoaded', function() { + var tabs = document.getElementsByClassName('nav-tabs'), + updateAddress = function(e) { + if(history.pushState && e.target.dataset.link) { + history.pushState(null, null, '#' + e.target.dataset.link); + } + }; + if (tabs.length > 0) { + tabs = tabs[0].querySelectorAll('li'); + for (var i = 0; i < tabs.length; i++) { + tabs[i].addEventListener('click', updateAddress); + var linkTag = tabs[i].querySelector('a'); + if (location.hash !== '') { + var currentHash = location.hash.substr(1); + if (currentHash === linkTag.dataset.link) { + linkTag.click(); + } + } + } + } +}); diff --git a/frontend/documentation/js/tree.js b/frontend/documentation/js/tree.js new file mode 100644 index 0000000..f79e1d7 --- /dev/null +++ b/frontend/documentation/js/tree.js @@ -0,0 +1,147 @@ +document.addEventListener('DOMContentLoaded', function() { + var tabs = document.getElementsByClassName('nav-tabs')[0], + tabsCollection = tabs.getElementsByTagName('A'), + treeTab; + var len = tabsCollection.length; + for(var i = 0; i < len; i++) { + if (tabsCollection[i].getAttribute('id') === 'tree-tab') { + treeTab = tabsCollection[i]; + } + } + + // short-circuit if no tree tab + if (!treeTab) return; + + var handler = new Tautologistics.NodeHtmlParser.HtmlBuilder(function(error, dom) { + if (error) { + console.log('handler ko'); + } + }), + parser = new Tautologistics.NodeHtmlParser.Parser(handler), + currentLocation = window.location; + parser.parseComplete(COMPONENT_TEMPLATE); + + var newNodes = [], + newEdges = [], + parsedHtml = handler.dom[0], + nodeCount = 0, + nodeLevel = 0; + + newNodes.push({ + _id: 0, + label: parsedHtml.name, + type: parsedHtml.type + }) + //Add id for nodes + var traverseIds = function(o) { + for (i in o) { + if (!!o[i] && typeof(o[i]) == "object") { + if (!o[i].length && o[i].type === 'tag') { + nodeCount += 1; + o[i]._id = nodeCount; + } + traverseIds(o[i]); + } + } + } + parsedHtml._id = 0; + traverseIds(parsedHtml); + + + var DeepIterator = deepIterator.default, + it = DeepIterator(parsedHtml); + for (let { + value, + parent, + parentNode, + key, + type + } of it) { + if (type === 'NonIterableObject' && typeof key !== 'undefined' && value.type === 'tag') { + var newNode = { + id: value._id, + label: value.name, + type: value.type + }; + for(var i = 0; i < COMPONENTS.length; i++) { + if (COMPONENTS[i].selector === value.name) { + newNode.font = { + multi: 'html' + }; + newNode.label = '' + newNode.label + ''; + newNode.color = '#FB7E81'; + newNode.name = COMPONENTS[i].name; + } + } + for(var i = 0; i < DIRECTIVES.length; i++) { + if (value.attributes) { + for(attr in value.attributes) { + if (DIRECTIVES[i].selector.indexOf(attr) !== -1) { + newNode.font = { + multi: 'html' + }; + newNode.label = '' + newNode.label + ''; + newNode.color = '#FF9800'; + newNode.name = DIRECTIVES[i].name; + } + } + } + } + newNodes.push(newNode); + newEdges.push({ + from: parentNode._parent._id, + to: value._id, + arrows: 'to' + }); + } + } + + newNodes.shift(); + + var container = document.getElementById('tree-container'), + data = { + nodes: newNodes, + edges: newEdges + }, + options = { + layout: { + hierarchical: { + sortMethod: 'directed', + enabled: true + } + }, + nodes: { + shape: 'ellipse', + fixed: true + } + }, + + handleClickNode = function(params) { + var clickeNodeId; + if (params.nodes.length > 0) { + clickeNodeId = params.nodes[0]; + for(var i = 0; i < newNodes.length; i++) { + if (newNodes[i].id === clickeNodeId) { + for(var j = 0; j < COMPONENTS.length; j++) { + if (COMPONENTS[j].name === newNodes[i].name) { + document.location.href = currentLocation.origin + currentLocation.pathname.replace(ACTUAL_COMPONENT.name, newNodes[i].name); + } + } + } + } + } + }, + + loadTree = function () { + setTimeout(function() { + container.style.height = document.getElementsByClassName('content')[0].offsetHeight - 140 + 'px'; + var network = new vis.Network(container, data, options); + network.on('click', handleClickNode); + }, 200); // Fade is 0.150 + }; + + loadTree(); + treeTab.addEventListener('click', function() { + loadTree(); + }); +}); diff --git a/frontend/documentation/modules.html b/frontend/documentation/modules.html new file mode 100644 index 0000000..dc58d2e --- /dev/null +++ b/frontend/documentation/modules.html @@ -0,0 +1,119 @@ + + + + + + syncfusion-gantt documentation + + + + + + + + + + + + + +
          +
          + + +
          +
          + + + + +
          +
          +
          +
          + + + + + + + + + + + + + + + + + + +
          +
          +

          results matching ""

          +
            +
            +
            +

            No results matching ""

            +
            +
            +
            + +
            +
            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/overview.html b/frontend/documentation/overview.html new file mode 100644 index 0000000..5fc568c --- /dev/null +++ b/frontend/documentation/overview.html @@ -0,0 +1,121 @@ + + + + + + syncfusion-gantt documentation + + + + + + + + + + + + + +
            +
            + + +
            +
            + + + + +
            +
            +
            +
            + + + + + + + + + + + + + + + + + + + + +
            +
            +

            results matching ""

            +
              +
              +
              +

              No results matching ""

              +
              +
              +
              + +
              +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/properties.html b/frontend/documentation/properties.html new file mode 100644 index 0000000..66a9e15 --- /dev/null +++ b/frontend/documentation/properties.html @@ -0,0 +1,119 @@ + + + + + + syncfusion-gantt documentation + + + + + + + + + + + + + +
              +
              + + +
              +
              + + + + + + + + + + + + + + + + + +
                +
              • + Version : 0.0.0
              • +
              + + + + + +
              +
              +

              results matching ""

              +
                +
                +
                +

                No results matching ""

                +
                +
                +
                + +
                +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/styles/bootstrap-card.css b/frontend/documentation/styles/bootstrap-card.css new file mode 100644 index 0000000..0869c68 --- /dev/null +++ b/frontend/documentation/styles/bootstrap-card.css @@ -0,0 +1,219 @@ +.card { + position: relative; + display: block; + margin-bottom: 20px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; +} + +.card-block { + padding: 15px; +} +.card-block:before, .card-block:after { + content: " "; + display: table; +} +.card-block:after { + clear: both; +} + +.card-title { + margin: 5px; + margin-bottom: 2px; + text-align: center; +} + +.card-subtitle { + margin-top: -10px; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; + margin-top: 10px; +} + +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-left: 15px; +} + +.card > .list-group:first-child .list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.card-header { + padding: 10px 15px; + background-color: #f5f5f5; + border-bottom: 1px solid #ddd; +} +.card-header:before, .card-header:after { + content: " "; + display: table; +} +.card-header:after { + clear: both; +} +.card-header:first-child { + border-radius: 4px 4px 0 0; +} + +.card-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; +} +.card-footer:before, .card-footer:after { + content: " "; + display: table; +} +.card-footer:after { + clear: both; +} +.card-footer:last-child { + border-radius: 0 0 4px 4px; +} + +.card-header-tabs { + margin-right: -5px; + margin-bottom: -10px; + margin-left: -5px; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -5px; + margin-left: -5px; +} + +.card-primary { + background-color: #337ab7; + border-color: #337ab7; +} +.card-primary .card-header, +.card-primary .card-footer { + background-color: transparent; +} + +.card-success { + background-color: #5cb85c; + border-color: #5cb85c; +} +.card-success .card-header, +.card-success .card-footer { + background-color: transparent; +} + +.card-info { + background-color: #5bc0de; + border-color: #5bc0de; +} +.card-info .card-header, +.card-info .card-footer { + background-color: transparent; +} + +.card-warning { + background-color: #f0ad4e; + border-color: #f0ad4e; +} +.card-warning .card-header, +.card-warning .card-footer { + background-color: transparent; +} + +.card-danger { + background-color: #d9534f; + border-color: #d9534f; +} +.card-danger .card-header, +.card-danger .card-footer { + background-color: transparent; +} + +.card-outline-primary { + background-color: transparent; + border-color: #337ab7; +} + +.card-outline-secondary { + background-color: transparent; + border-color: #ccc; +} + +.card-outline-info { + background-color: transparent; + border-color: #5bc0de; +} + +.card-outline-success { + background-color: transparent; + border-color: #5cb85c; +} + +.card-outline-warning { + background-color: transparent; + border-color: #f0ad4e; +} + +.card-outline-danger { + background-color: transparent; + border-color: #d9534f; +} + +.card-inverse .card-header, +.card-inverse .card-footer { + border-color: rgba(255, 255, 255, 0.2); +} +.card-inverse .card-header, +.card-inverse .card-footer, +.card-inverse .card-title, +.card-inverse .card-blockquote { + color: #fff; +} +.card-inverse .card-link, +.card-inverse .card-text, +.card-inverse .card-subtitle, +.card-inverse .card-blockquote .blockquote-footer { + color: rgba(255, 255, 255, 0.65); +} +.card-inverse .card-link:hover, .card-inverse .card-link:focus { + color: #fff; +} + +.card-blockquote { + padding: 0; + margin-bottom: 0; + border-left: 0; +} + +.card-img { + border-radius: .25em; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 15px; +} + +.card-img-top { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} + +.card-img-bottom { + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} diff --git a/frontend/documentation/styles/bootstrap.min.css b/frontend/documentation/styles/bootstrap.min.css new file mode 100644 index 0000000..5b96335 --- /dev/null +++ b/frontend/documentation/styles/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:"Glyphicons Halflings";src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:"Glyphicons Halflings";font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*=col-]{padding-right:0;padding-left:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);opacity:.65;-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;background-image:none;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;background-image:none;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;background-image:none;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;background-image:none;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;background-image:none;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;filter:alpha(opacity=90);opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203a"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/frontend/documentation/styles/compodoc.css b/frontend/documentation/styles/compodoc.css new file mode 100644 index 0000000..63ecd13 --- /dev/null +++ b/frontend/documentation/styles/compodoc.css @@ -0,0 +1,1082 @@ +body { + position: absolute; + width: 100%; + height: 100%; + font-family: 'Roboto', sans-serif; +} + +/* roboto-300 - latin */ + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url('../fonts/roboto-v15-latin-300.eot'); + /* IE9 Compat Modes */ + src: local('Roboto Light'), local('Roboto-Light'), + url('../fonts/roboto-v15-latin-300.eot?#iefix') format('embedded-opentype'), + /* IE6-IE8 */ url('../fonts/roboto-v15-latin-300.woff2') format('woff2'), + /* Super Modern Browsers */ url('../fonts/roboto-v15-latin-300.woff') format('woff'), + /* Modern Browsers */ url('../fonts/roboto-v15-latin-300.ttf') format('truetype'), + /* Safari, Android, iOS */ url('../fonts/roboto-v15-latin-300.svg#Roboto') format('svg'); + /* Legacy iOS */ +} + +/* roboto-regular - latin */ + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url('../fonts/roboto-v15-latin-regular.eot'); + /* IE9 Compat Modes */ + src: local('Roboto'), local('Roboto-Regular'), + url('../fonts/roboto-v15-latin-regular.eot?#iefix') format('embedded-opentype'), + /* IE6-IE8 */ url('../fonts/roboto-v15-latin-regular.woff2') format('woff2'), + /* Super Modern Browsers */ url('../fonts/roboto-v15-latin-regular.woff') format('woff'), + /* Modern Browsers */ url('../fonts/roboto-v15-latin-regular.ttf') format('truetype'), + /* Safari, Android, iOS */ url('../fonts/roboto-v15-latin-regular.svg#Roboto') format('svg'); + /* Legacy iOS */ +} + +/* roboto-700 - latin */ + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url('../fonts/roboto-v15-latin-700.eot'); + /* IE9 Compat Modes */ + src: local('Roboto Bold'), local('Roboto-Bold'), + url('../fonts/roboto-v15-latin-700.eot?#iefix') format('embedded-opentype'), + /* IE6-IE8 */ url('../fonts/roboto-v15-latin-700.woff2') format('woff2'), + /* Super Modern Browsers */ url('../fonts/roboto-v15-latin-700.woff') format('woff'), + /* Modern Browsers */ url('../fonts/roboto-v15-latin-700.ttf') format('truetype'), + /* Safari, Android, iOS */ url('../fonts/roboto-v15-latin-700.svg#Roboto') format('svg'); + /* Legacy iOS */ +} + +h1 { + font-size: 26px; +} + +h2 { + font-size: 22px; +} + +h3 { + font-size: 20px; + font-weight: bold; +} + +h4, +h5 { + font-size: 18px; +} + +h6 { + font-size: 16px; +} + +a[href] { + cursor: pointer; +} + +/** + * Mobile navbar + */ + +.navbar { + min-height: 50px; +} + +.navbar-brand { + height: 50px; + font-size: 14px; + line-height: 20px; + padding: 15px; +} + +.navbar-static-top { + margin-bottom: 0; + height: 50px; +} + +/** + * Main container + */ + +.container-fluid { + overflow-y: hidden; + overflow-x: hidden; +} + +.container-fluid.main { + height: 100%; + padding: 0; +} + +.tab-content.overview { + margin-top: 50px; + margin-left: 15px; +} + +.container-fluid.modules, +.container-fluid.components, +.container-fluid.directives, +.container-fluid.classes, +.container-fluid.injectables, +.container-fluid.pipes, +.content.routes table { + margin-top: 25px; +} + +.container-fluid.modules { + width: 100%; + overflow-y: auto; +} + +.container-fluid.module { + padding: 0; + margin-top: 0; +} + +.container-fluid.module h3 a { + margin-left: 10px; + color: #333; +} + +.row.main { + height: 100%; + margin: 0; +} + +/** + * Copyright + */ + +.copyright { + margin: 0; + padding: 15px; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + z-index: 1; +} + +.copyright img { + width: 80px; + margin-top: 10px; +} + +.copyright a { + color: #009dff; + text-decoration: underline; +} + +/** + * Content + */ + +.content { + height: 100%; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + width: calc(100% - 320px); + position: absolute; + top: 0; + left: 320px; + padding: 15px 30px; +} + +.content > h1:first-of-type { + margin-top: 15px; +} + +.content > h3:first-of-type { + margin-top: 5px; +} + +.content.readme h1:first-of-type { + margin-top: 0; +} + +.content table { + margin-top: 20px; +} + +.content-data { + display: flex; + flex-direction: column; + height: 100%; +} + +.content-data .tab-content { + flex: 1; +} + +.content-data .tab-pane { + height: 100%; +} + +.content-data .exampleContainer { + height: 100%; + width: 100%; +} + +/** + * Icons + */ + +.glyphicon, +.icon { + margin-right: 10px; +} + +/** + * Menu + */ + +#book-search-input { + padding: 6px; + transition: top 0.5s ease; + background: #fff; + border-bottom: 1px solid rgba(0, 0, 0, 0.07); + border-top: 1px solid rgba(0, 0, 0, 0.07); + margin-bottom: 5px; + margin-top: -1px; +} + +#book-search-input input, +#book-search-input input:focus, +#book-search-input input:hover { + width: 100%; + background: 0 0; + border: 1px solid transparent; + box-shadow: none; + outline: 0; + line-height: 22px; + padding: 7px 7px; + color: inherit; +} + +.panel-body { + padding: 0px; +} + +.panel-group .panel-heading + .panel-collapse > .list-group, +.panel-group .panel-heading + .panel-collapse > .panel-body { + border-top: 0; +} + +.panel-body table tr td { + padding-left: 15px; +} + +.panel-body .table { + margin-bottom: 0px; +} + +.panel-group .panel:first-child { + border-top: 0; +} + +.menu { + background: #fafafa; + border-right: 1px solid #e7e7e7; + height: 100%; + padding: 0; + width: 320px; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} + +.menu ul.list { + list-style: none; + margin: 0; + padding: 0; +} + +.menu ul.list li a { + display: block; + padding: 10px 15px; + border-bottom: none; + color: #364149; + background: 0 0; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + position: relative; +} + +.menu ul.list li a.active { + color: #008cff; +} + +.menu ul.list li.divider { + height: 1px; + margin: 7px 0; + overflow: hidden; + background: rgba(0, 0, 0, 0.07); +} + +.menu ul.list li.chapter ul.links { + padding-left: 20px; +} + +.menu ul.list li.for-chapter2 { + padding-left: 0; +} + +.menu ul.list li.for-chapter3 { + padding-left: 20px; +} + +.menu ul.list li.for-chapter4 { + padding-left: 40px; +} + +.menu ul.list li.for-chapter5 { + padding-left: 60px; +} + +.menu ul.list li.chapter .simple { + padding: 10px 15px; + position: relative; +} + +.menu ul.list li.chapter .inner .simple { + padding-left: 35px; +} + +.menu ul.list li.chapter .inner ul.links { + padding-left: 40px; +} + +.menu ul.list li.chapter.additional .inner ul.links { + padding-left: 20px; +} + +.menu .panel-group { + width: 100%; + height: 100%; + overflow-y: auto; +} + +.menu .panel-default { + border-right: none; + border-left: none; + border-bottom: none; +} + +.menu .panel-group .panel-heading + .panel-collapse > .panel-body { + border-top: none; + overflow-y: auto; + max-height: 350px; +} + +.menu .panel-default:last-of-type { + border-bottom: 1px solid #ddd; +} + +.panel-group .panel + .panel { + margin-top: 0; +} + +.panel-group .panel { + z-index: 2; + position: relative; + border-radius: 0; + box-shadow: none; + border-left: 0; + border-right: 0; +} + +.menu a { + color: #3c3c3c; +} + +.xs-menu ul.list li:nth-child(2) { + margin: 0; + background: none; +} + +.menu ul.list li:nth-child(2) { + margin: 0; + background: none; +} + +.menu .title { + padding: 8px 0; +} + +.menu-toggler { + cursor: pointer; +} + +.menu-toggler .ion-ios-arrow-down, +.menu-toggler .ion-ios-arrow-up { + cursor: pointer; + padding: 5px 10px; + font-size: 16px; + position: absolute; + right: 0; + top: 7px; +} + +.overview .card-title .icon { + font-size: 50px; +} + +.overview .card-text a { + text-decoration: underline; + color: black; +} + +.overview .col-sm-3 { + width: 200px; +} + +.breadcrumb { + background: none; + padding-left: 0 !important; + margin-bottom: 10px; + font-size: 24px; + padding-top: 0; +} + +.breadcrumb a { + text-decoration: underline; + color: #333; +} + +.comment { + margin: 15px 0; +} + +.io-description { + margin: 10px 0; +} + +.io-file { + margin: 20px 0; +} + +.navbar .btn-menu { + position: absolute; + right: 0; + margin: 10px; +} + +.content ul.nav { + padding-left: 0; +} + +.xs-menu { + height: calc(100% - 50px); + display: none; + width: 100%; + overflow-y: scroll; + z-index: 1; + top: 50px; + position: absolute; +} + +.xs-menu .copyright { + margin-top: 20px; + position: relative; +} + +.tab-source-code { + padding: 10px 0; +} + +pre { + padding: 12px 12px; + border: none; + background: #23241f; +} + +code { + background: none; + padding: 2px 0; +} + +@media (max-width: 767px) { + .container-fluid { + margin-top: 50px; + } + + .container-fluid.main { + height: calc(100% - 50px); + } + + .content { + width: 100%; + left: 0; + position: relative; + } + + .menu ul.list li.title { + display: none; + } +} + +/** + * Search + */ + +.search-results { + display: none; + max-width: 800px; + margin: 0 auto; + padding: 20px 15px 40px 15px; +} + +.search-results .no-results { + display: none; +} + +.with-search .search-results { + display: block; +} + +.with-search .content-data { + display: none; +} + +.with-search .xs-menu { + height: 51px; +} + +.with-search .xs-menu nav { + display: none; +} + +.search-results.no-results .has-results { + display: none; +} + +.search-results.no-results .no-results { + display: block; +} + +.search-results .search-results-title { + text-transform: uppercase; + text-align: center; + font-weight: 200; + margin-bottom: 35px; + opacity: 0.6; +} + +.search-results ul.search-results-list { + list-style-type: none; + padding-left: 0; +} + +.search-results ul.search-results-list li { + margin-bottom: 1.5rem; + padding-bottom: 0.5rem; +} + +.search-results ul.search-results-list li p em { + background-color: rgba(255, 220, 0, 0.4); + font-style: normal; +} + +.search-results-item { + margin-bottom: 1rem !important; + margin-top: 1rem; + padding-bottom: 0 !important; +} + +.search-results-item a { + font-size: 18px; +} + +.search-results-group, +.search-results-group .search-results-list { + margin-bottom: 0 !important; +} + +.search-results-group h3 { + margin-top: 10px; +} + +.jsdoc-params { + list-style: square; + margin-top: 10px; + margin-bottom: 0 !important; +} + +.jsdoc-params li { + padding-bottom: 10px; +} + +.jsdoc-example-ul ul { + padding-left: 20px; +} + +example-url { + display: none; +} + +i { + font-style: italic; +} + +.coverage a { + color: #333; + text-decoration: underline; +} + +.coverage tr.low, +.coverage td.low { + background: rgba(216, 96, 75, 0.75); +} + +.coverage tr.medium, +.coverage td.medium { + background: rgba(218, 178, 38, 0.75); +} + +.coverage tr.good, +.coverage td.good { + background: rgba(143, 189, 8, 0.75); +} + +.coverage tr.very-good, +.coverage td.very-good { + background: rgba(77, 199, 31, 0.75); +} + +.coverage td.uncovered { + background: rgba(221, 221, 221, 0.75); +} + +.coverage-header { + background: #fafafa; +} + +thead.coverage-header > tr > td, +thead.coverage-header > tr > th { + border-bottom-width: 0; +} + +th[role='columnheader'].statements:not(.no-sort):after { + margin-left: 10px; +} + +.coverage-count { + color: grey; + font-size: 12px; + margin-left: 10px; + display: inline-block; + width: 50px; +} + +.coverage-badge { + background: #5d5d5d; + border-radius: 4px; + display: inline-block; + color: white; + padding: 4px; + padding-right: 0; + padding-left: 8px; +} + +.coverage-badge .count { + padding: 6px; + margin-left: 5px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.coverage-badge .count.low { + background: #d8624c; +} + +.coverage-badge .count.medium { + background: #dab226; +} + +.coverage-badge .count.good { + background: #8fbd08; +} + +.coverage-badge .count.very-good { + background: #4dc71f; +} + +.content ol { + list-style-type: decimal; + margin-top: 0; + padding-left: 20px; + margin-bottom: 16px; +} + +.content ul { + list-style: disc; + margin-top: 0; + padding-left: 20px; + margin-bottom: 16px; +} + +.content ul.list-group { + padding-left: 0; +} + +.content ul.list-group li.list-group-item a { + display: inline-block; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.content ul ul { + list-style-type: circle; +} + +.compodoc-table { + width: inherit; +} + +.compodoc-table thead { + font-weight: bold; +} + +.modifier { + background: #9a9a9a; + padding: 1px 5px; + color: white; + border-radius: 4px; +} + +.modifier-icon { + color: #c7254e; +} + +.modifier-icon.method { + color: white; + background: #c7254e; + padding: 4px; + border-radius: 8px; + font-size: 10px; + margin-right: 2px; +} + +.modifier-icon.method.square { + border-radius: 4px; +} + +.modifier-icon.method.export { + display: none; +} + +.modifier-icon.method .ion-ios-radio-button-off, +.modifier-icon.method .ion-ios-square-outline { + display: none; +} + +.modifier-icon.method .ion-ios-lock { + margin-right: 0; +} + +.modifier-icon.ion-ios-reset { + margin-right: 0; +} + +/** + * Modules + */ + +.card-module { + min-height: 323px; +} + +/** + * Routes graph + */ + +.node text { + font-size: 12px; +} + +.node .icon { + font-size: 15px; + cursor: default; +} + +.node .icon.has-children { + cursor: pointer; +} + +path.link { + fill: none; + stroke: #9ecae1; + stroke-width: 1.5px; +} + +#body-routes a { + text-decoration: underline; +} + +#body-routes svg { + overflow: visible; +} + +/** + * Miscellaneous + */ + +.content.miscellaneous h2 { + margin-bottom: 20px; +} + +.content.miscellaneous h4 { + padding-top: 20px; +} + +/* highlight line */ + +.line-highlight { + background: linear-gradient(to right, hsla(0, 0%, 100%, 0.1) 70%, hsla(24, 20%, 50%, 0)); +} + +#tree-container { + width: 100%; + height: 100%; +} + +#tree { + position: relative; +} + +.tree-legend { + position: absolute; + bottom: 10px; + left: 10px; + border: 1px solid #ddd; + padding: 5px 10px; +} + +.tree-legend .title { + margin-bottom: 8px; +} + +.tree-legend .color { + width: 20px; + height: 12px; + display: inline-block; + margin-right: 5px; +} + +.tree-legend .htmlelement { + background: #97c2fc; +} + +.tree-legend .component { + background: #fb7e81; +} + +.tree-legend .directive { + background: #ff9800; +} + +#module-graph-svg { + width: 100%; + height: 250px; +} + +#module-graph-svg svg { + width: 100%; + height: 100%; +} + +.content ul.type-parameters { + margin-bottom: 5px; +} + +table.params { + width: 100%; + margin: 10px 0; + border-spacing: 0; + border: 0; + border-collapse: collapse; +} + +table.params thead { + background: #f5f5f5; + color: #525252; +} + +table.params td { + padding: 4px; + border: solid 1px #ddd; +} + +table.params td p { + margin: 0; +} + +.img-responsive { + display: inline-block; +} + +.index-table h6 { + margin-top: 5px; + margin-bottom: 5px; +} + +ul.index-list { + list-style: none; + padding: 0; + column-gap: 20px; + column-count: 3; + line-height: 25px; + margin-bottom: 0; +} + +.no-graph { + text-align: center; + height: 175px; + line-height: 175px; +} + +.name a { + display: none; + color: #6e6e6e; + margin-left: 5px; +} + +.name:hover a { + display: inline-block; +} + +.accessor b { + color: #808080; + margin-right: 8px; + font-weight: normal; +} + +.module-graph-container { + position: relative; +} + +.module-graph-container .size-buttons { + margin-top: 10px; +} + +.module-graph-fullscreen-btn { + position: absolute; + right: 5px; + top: 0; + cursor: pointer; +} + +/** + * Dependencies + */ + +.package-dependencies ul { + list-style: none; + margin: 0; +} + +.package-dependencies li { + margin: 5px 0; +} + +.deprecated { + color: #e73440; +} +.deprecated p { + margin-bottom: 0; +} +.deprecated-name, +.deprecated-name:hover { + text-decoration: line-through; +} +.deprecated-name::before { + text-decoration: none; + display: inline-block; +} + +/** + * Dark mode + */ + +.dark-mode-switch { + position: absolute; + top: 70px; + right: 15px; + display: inline-block; + width: 60px; + height: 34px; +} + +.dark-mode-switch input { + opacity: 0; + width: 0; + height: 0; +} + +.dark-mode-switch .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #5cc0ae80; + border-radius: 34px; + transition: 0.6s; +} + +.dark-mode-switch .slider:before { + position: absolute; + content: ''; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: white; + border-radius: 50%; + transition: 0.4s; +} + +.dark-mode-switch input:checked + .slider { + background-color: #f1c40fb8; +} + +.dark-mode-switch.dark .slider-icon { + stroke: black; +} + +.dark-mode-switch input:checked + .slider:before { + transform: translateX(26px); +} + +.dark-mode-switch .slider-icon { + transform: rotate(250deg); + position: absolute; + right: 6px; + top: 7px; + stroke: white; +} + +@media (min-width: 768px) { + .dark-mode-switch { + top: 15px; + } +} + +ul.properties-list { + list-style: none; + padding-left: 0; +} +.properties-list li { + margin-bottom: 10px; +} diff --git a/frontend/documentation/styles/dark.css b/frontend/documentation/styles/dark.css new file mode 100644 index 0000000..b309593 --- /dev/null +++ b/frontend/documentation/styles/dark.css @@ -0,0 +1,117 @@ +body.dark { + background: #212121; + color: #fafafa; +} + +.dark code { + color: #e09393; +} + +.dark a, +.dark .menu ul.list li a.active { + color: #7fc9ff; +} + +.dark .menu { + background: #212121; + border-right: 1px solid #444; +} + +.dark .menu ul.list li a { + color: #fafafa; +} + +.dark .menu ul.list li.divider { + background: #444; +} + +.dark .xs-menu ul.list li:nth-child(2) { + margin: 0; + background: none; +} + +.dark .menu ul.list li:nth-child(2) { + margin: 0; + background: none; +} + +.dark #book-search-input { + background: #212121; + border-top: 1px solid #444; + border-bottom: 1px solid #444; + color: #fafafa; +} + +.dark .table.metadata > tbody > tr:hover { + color: #555; +} + +.dark .table-bordered { + border: 1px solid #444; +} + +.dark .table-bordered > tbody > tr > td, +.dark .table-bordered > tbody > tr > th, +.dark .table-bordered > tfoot > tr > td, +.dark .table-bordered > tfoot > tr > th, +.dark .table-bordered > thead > tr > td, +.dark .table-bordered > thead > tr > th { + border: 1px solid #444; +} + +.dark .coverage a, +.dark .coverage-count { + color: #fafafa; +} + +.dark .coverage-header { + color: black; +} + +.dark .routes svg text, +.dark .routes svg a { + fill: white; +} +.dark .routes svg rect { + fill: #212121 !important; +} + +.dark .navbar-default, +.dark .btn-default { + background-color: black; + border-color: #444; + color: #fafafa; +} + +.dark .navbar-default .navbar-brand { + color: #fafafa; +} + +.dark .overview .card, +.dark .modules .card { + background: #171717; + color: #fafafa; + border: 1px solid #444; +} +.dark .overview .card a { + color: #fafafa; +} + +.dark .modules .card-header { + background: none; + border-bottom: 1px solid #444; +} + +.dark .module .list-group-item { + background: none; + border: 1px solid #444; +} + +.dark .container-fluid.module h3 a { + color: #337ab7; +} + +.dark table.params thead { + background: #484848; + color: #fafafa; +} diff --git a/frontend/documentation/styles/ionicons.min.css b/frontend/documentation/styles/ionicons.min.css new file mode 100644 index 0000000..e50e1bb --- /dev/null +++ b/frontend/documentation/styles/ionicons.min.css @@ -0,0 +1,11 @@ +/*! + Ionicons, v4.1.2 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/benjsperry https://twitter.com/ionicframework + MIT License: https://github.com/driftyco/ionicons + + Android-style icons originally built by Google’s + Material Design Icons: https://github.com/google/material-design-icons + used under CC BY http://creativecommons.org/licenses/by/4.0/ + Modified icons to fit ionicon’s grid from original. +*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=4.1.2");src:url("../fonts/ionicons.eot?v=4.1.2#iefix") format("embedded-opentype"),url("../fonts/ionicons.woff2?v=4.1.2") format("woff2"),url("../fonts/ionicons.woff?v=4.1.2") format("woff"),url("../fonts/ionicons.ttf?v=4.1.2") format("truetype"),url("../fonts/ionicons.svg?v=4.1.2#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-ios-add:before,.ion-ios-add-circle:before,.ion-ios-add-circle-outline:before,.ion-ios-airplane:before,.ion-ios-alarm:before,.ion-ios-albums:before,.ion-ios-alert:before,.ion-ios-american-football:before,.ion-ios-analytics:before,.ion-ios-aperture:before,.ion-ios-apps:before,.ion-ios-appstore:before,.ion-ios-archive:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-dropdown:before,.ion-ios-arrow-dropdown-circle:before,.ion-ios-arrow-dropleft:before,.ion-ios-arrow-dropleft-circle:before,.ion-ios-arrow-dropright:before,.ion-ios-arrow-dropright-circle:before,.ion-ios-arrow-dropup:before,.ion-ios-arrow-dropup-circle:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-round-back:before,.ion-ios-arrow-round-down:before,.ion-ios-arrow-round-forward:before,.ion-ios-arrow-round-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-attach:before,.ion-ios-backspace:before,.ion-ios-barcode:before,.ion-ios-baseball:before,.ion-ios-basket:before,.ion-ios-basketball:before,.ion-ios-battery-charging:before,.ion-ios-battery-dead:before,.ion-ios-battery-full:before,.ion-ios-beaker:before,.ion-ios-bed:before,.ion-ios-beer:before,.ion-ios-bicycle:before,.ion-ios-bluetooth:before,.ion-ios-boat:before,.ion-ios-body:before,.ion-ios-bonfire:before,.ion-ios-book:before,.ion-ios-bookmark:before,.ion-ios-bookmarks:before,.ion-ios-bowtie:before,.ion-ios-briefcase:before,.ion-ios-browsers:before,.ion-ios-brush:before,.ion-ios-bug:before,.ion-ios-build:before,.ion-ios-bulb:before,.ion-ios-bus:before,.ion-ios-business:before,.ion-ios-cafe:before,.ion-ios-calculator:before,.ion-ios-calendar:before,.ion-ios-call:before,.ion-ios-camera:before,.ion-ios-car:before,.ion-ios-card:before,.ion-ios-cart:before,.ion-ios-cash:before,.ion-ios-cellular:before,.ion-ios-chatboxes:before,.ion-ios-chatbubbles:before,.ion-ios-checkbox:before,.ion-ios-checkbox-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-circle:before,.ion-ios-checkmark-circle-outline:before,.ion-ios-clipboard:before,.ion-ios-clock:before,.ion-ios-close:before,.ion-ios-close-circle:before,.ion-ios-close-circle-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-circle:before,.ion-ios-cloud-done:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-code:before,.ion-ios-code-download:before,.ion-ios-code-working:before,.ion-ios-cog:before,.ion-ios-color-fill:before,.ion-ios-color-filter:before,.ion-ios-color-palette:before,.ion-ios-color-wand:before,.ion-ios-compass:before,.ion-ios-construct:before,.ion-ios-contact:before,.ion-ios-contacts:before,.ion-ios-contract:before,.ion-ios-contrast:before,.ion-ios-copy:before,.ion-ios-create:before,.ion-ios-crop:before,.ion-ios-cube:before,.ion-ios-cut:before,.ion-ios-desktop:before,.ion-ios-disc:before,.ion-ios-document:before,.ion-ios-done-all:before,.ion-ios-download:before,.ion-ios-easel:before,.ion-ios-egg:before,.ion-ios-exit:before,.ion-ios-expand:before,.ion-ios-eye:before,.ion-ios-eye-off:before,.ion-ios-fastforward:before,.ion-ios-female:before,.ion-ios-filing:before,.ion-ios-film:before,.ion-ios-finger-print:before,.ion-ios-fitness:before,.ion-ios-flag:before,.ion-ios-flame:before,.ion-ios-flash:before,.ion-ios-flash-off:before,.ion-ios-flashlight:before,.ion-ios-flask:before,.ion-ios-flower:before,.ion-ios-folder:before,.ion-ios-folder-open:before,.ion-ios-football:before,.ion-ios-funnel:before,.ion-ios-gift:before,.ion-ios-git-branch:before,.ion-ios-git-commit:before,.ion-ios-git-compare:before,.ion-ios-git-merge:before,.ion-ios-git-network:before,.ion-ios-git-pull-request:before,.ion-ios-glasses:before,.ion-ios-globe:before,.ion-ios-grid:before,.ion-ios-hammer:before,.ion-ios-hand:before,.ion-ios-happy:before,.ion-ios-headset:before,.ion-ios-heart:before,.ion-ios-heart-dislike:before,.ion-ios-heart-empty:before,.ion-ios-heart-half:before,.ion-ios-help:before,.ion-ios-help-buoy:before,.ion-ios-help-circle:before,.ion-ios-help-circle-outline:before,.ion-ios-home:before,.ion-ios-hourglass:before,.ion-ios-ice-cream:before,.ion-ios-image:before,.ion-ios-images:before,.ion-ios-infinite:before,.ion-ios-information:before,.ion-ios-information-circle:before,.ion-ios-information-circle-outline:before,.ion-ios-jet:before,.ion-ios-journal:before,.ion-ios-key:before,.ion-ios-keypad:before,.ion-ios-laptop:before,.ion-ios-leaf:before,.ion-ios-link:before,.ion-ios-list:before,.ion-ios-list-box:before,.ion-ios-locate:before,.ion-ios-lock:before,.ion-ios-log-in:before,.ion-ios-log-out:before,.ion-ios-magnet:before,.ion-ios-mail:before,.ion-ios-mail-open:before,.ion-ios-mail-unread:before,.ion-ios-male:before,.ion-ios-man:before,.ion-ios-map:before,.ion-ios-medal:before,.ion-ios-medical:before,.ion-ios-medkit:before,.ion-ios-megaphone:before,.ion-ios-menu:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-microphone:before,.ion-ios-moon:before,.ion-ios-more:before,.ion-ios-move:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-notifications:before,.ion-ios-notifications-off:before,.ion-ios-notifications-outline:before,.ion-ios-nuclear:before,.ion-ios-nutrition:before,.ion-ios-open:before,.ion-ios-options:before,.ion-ios-outlet:before,.ion-ios-paper:before,.ion-ios-paper-plane:before,.ion-ios-partly-sunny:before,.ion-ios-pause:before,.ion-ios-paw:before,.ion-ios-people:before,.ion-ios-person:before,.ion-ios-person-add:before,.ion-ios-phone-landscape:before,.ion-ios-phone-portrait:before,.ion-ios-photos:before,.ion-ios-pie:before,.ion-ios-pin:before,.ion-ios-pint:before,.ion-ios-pizza:before,.ion-ios-planet:before,.ion-ios-play:before,.ion-ios-play-circle:before,.ion-ios-podium:before,.ion-ios-power:before,.ion-ios-pricetag:before,.ion-ios-pricetags:before,.ion-ios-print:before,.ion-ios-pulse:before,.ion-ios-qr-scanner:before,.ion-ios-quote:before,.ion-ios-radio:before,.ion-ios-radio-button-off:before,.ion-ios-radio-button-on:before,.ion-ios-rainy:before,.ion-ios-recording:before,.ion-ios-redo:before,.ion-ios-refresh:before,.ion-ios-refresh-circle:before,.ion-ios-remove:before,.ion-ios-remove-circle:before,.ion-ios-remove-circle-outline:before,.ion-ios-reorder:before,.ion-ios-repeat:before,.ion-ios-resize:before,.ion-ios-restaurant:before,.ion-ios-return-left:before,.ion-ios-return-right:before,.ion-ios-reverse-camera:before,.ion-ios-rewind:before,.ion-ios-ribbon:before,.ion-ios-rocket:before,.ion-ios-rose:before,.ion-ios-sad:before,.ion-ios-save:before,.ion-ios-school:before,.ion-ios-search:before,.ion-ios-send:before,.ion-ios-settings:before,.ion-ios-share:before,.ion-ios-share-alt:before,.ion-ios-shirt:before,.ion-ios-shuffle:before,.ion-ios-skip-backward:before,.ion-ios-skip-forward:before,.ion-ios-snow:before,.ion-ios-speedometer:before,.ion-ios-square:before,.ion-ios-square-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stats:before,.ion-ios-stopwatch:before,.ion-ios-subway:before,.ion-ios-sunny:before,.ion-ios-swap:before,.ion-ios-switch:before,.ion-ios-sync:before,.ion-ios-tablet-landscape:before,.ion-ios-tablet-portrait:before,.ion-ios-tennisball:before,.ion-ios-text:before,.ion-ios-thermometer:before,.ion-ios-thumbs-down:before,.ion-ios-thumbs-up:before,.ion-ios-thunderstorm:before,.ion-ios-time:before,.ion-ios-timer:before,.ion-ios-today:before,.ion-ios-train:before,.ion-ios-transgender:before,.ion-ios-trash:before,.ion-ios-trending-down:before,.ion-ios-trending-up:before,.ion-ios-trophy:before,.ion-ios-tv:before,.ion-ios-umbrella:before,.ion-ios-undo:before,.ion-ios-unlock:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-volume-mute:before,.ion-ios-volume-off:before,.ion-ios-walk:before,.ion-ios-wallet:before,.ion-ios-warning:before,.ion-ios-watch:before,.ion-ios-water:before,.ion-ios-wifi:before,.ion-ios-wine:before,.ion-ios-woman:before,.ion-logo-android:before,.ion-logo-angular:before,.ion-logo-apple:before,.ion-logo-bitbucket:before,.ion-logo-bitcoin:before,.ion-logo-buffer:before,.ion-logo-chrome:before,.ion-logo-closed-captioning:before,.ion-logo-codepen:before,.ion-logo-css3:before,.ion-logo-designernews:before,.ion-logo-dribbble:before,.ion-logo-dropbox:before,.ion-logo-euro:before,.ion-logo-facebook:before,.ion-logo-flickr:before,.ion-logo-foursquare:before,.ion-logo-freebsd-devil:before,.ion-logo-game-controller-a:before,.ion-logo-game-controller-b:before,.ion-logo-github:before,.ion-logo-google:before,.ion-logo-googleplus:before,.ion-logo-hackernews:before,.ion-logo-html5:before,.ion-logo-instagram:before,.ion-logo-ionic:before,.ion-logo-ionitron:before,.ion-logo-javascript:before,.ion-logo-linkedin:before,.ion-logo-markdown:before,.ion-logo-model-s:before,.ion-logo-no-smoking:before,.ion-logo-nodejs:before,.ion-logo-npm:before,.ion-logo-octocat:before,.ion-logo-pinterest:before,.ion-logo-playstation:before,.ion-logo-polymer:before,.ion-logo-python:before,.ion-logo-reddit:before,.ion-logo-rss:before,.ion-logo-sass:before,.ion-logo-skype:before,.ion-logo-slack:before,.ion-logo-snapchat:before,.ion-logo-steam:before,.ion-logo-tumblr:before,.ion-logo-tux:before,.ion-logo-twitch:before,.ion-logo-twitter:before,.ion-logo-usd:before,.ion-logo-vimeo:before,.ion-logo-vk:before,.ion-logo-whatsapp:before,.ion-logo-windows:before,.ion-logo-wordpress:before,.ion-logo-xbox:before,.ion-logo-xing:before,.ion-logo-yahoo:before,.ion-logo-yen:before,.ion-logo-youtube:before,.ion-md-add:before,.ion-md-add-circle:before,.ion-md-add-circle-outline:before,.ion-md-airplane:before,.ion-md-alarm:before,.ion-md-albums:before,.ion-md-alert:before,.ion-md-american-football:before,.ion-md-analytics:before,.ion-md-aperture:before,.ion-md-apps:before,.ion-md-appstore:before,.ion-md-archive:before,.ion-md-arrow-back:before,.ion-md-arrow-down:before,.ion-md-arrow-dropdown:before,.ion-md-arrow-dropdown-circle:before,.ion-md-arrow-dropleft:before,.ion-md-arrow-dropleft-circle:before,.ion-md-arrow-dropright:before,.ion-md-arrow-dropright-circle:before,.ion-md-arrow-dropup:before,.ion-md-arrow-dropup-circle:before,.ion-md-arrow-forward:before,.ion-md-arrow-round-back:before,.ion-md-arrow-round-down:before,.ion-md-arrow-round-forward:before,.ion-md-arrow-round-up:before,.ion-md-arrow-up:before,.ion-md-at:before,.ion-md-attach:before,.ion-md-backspace:before,.ion-md-barcode:before,.ion-md-baseball:before,.ion-md-basket:before,.ion-md-basketball:before,.ion-md-battery-charging:before,.ion-md-battery-dead:before,.ion-md-battery-full:before,.ion-md-beaker:before,.ion-md-bed:before,.ion-md-beer:before,.ion-md-bicycle:before,.ion-md-bluetooth:before,.ion-md-boat:before,.ion-md-body:before,.ion-md-bonfire:before,.ion-md-book:before,.ion-md-bookmark:before,.ion-md-bookmarks:before,.ion-md-bowtie:before,.ion-md-briefcase:before,.ion-md-browsers:before,.ion-md-brush:before,.ion-md-bug:before,.ion-md-build:before,.ion-md-bulb:before,.ion-md-bus:before,.ion-md-business:before,.ion-md-cafe:before,.ion-md-calculator:before,.ion-md-calendar:before,.ion-md-call:before,.ion-md-camera:before,.ion-md-car:before,.ion-md-card:before,.ion-md-cart:before,.ion-md-cash:before,.ion-md-cellular:before,.ion-md-chatboxes:before,.ion-md-chatbubbles:before,.ion-md-checkbox:before,.ion-md-checkbox-outline:before,.ion-md-checkmark:before,.ion-md-checkmark-circle:before,.ion-md-checkmark-circle-outline:before,.ion-md-clipboard:before,.ion-md-clock:before,.ion-md-close:before,.ion-md-close-circle:before,.ion-md-close-circle-outline:before,.ion-md-cloud:before,.ion-md-cloud-circle:before,.ion-md-cloud-done:before,.ion-md-cloud-download:before,.ion-md-cloud-outline:before,.ion-md-cloud-upload:before,.ion-md-cloudy:before,.ion-md-cloudy-night:before,.ion-md-code:before,.ion-md-code-download:before,.ion-md-code-working:before,.ion-md-cog:before,.ion-md-color-fill:before,.ion-md-color-filter:before,.ion-md-color-palette:before,.ion-md-color-wand:before,.ion-md-compass:before,.ion-md-construct:before,.ion-md-contact:before,.ion-md-contacts:before,.ion-md-contract:before,.ion-md-contrast:before,.ion-md-copy:before,.ion-md-create:before,.ion-md-crop:before,.ion-md-cube:before,.ion-md-cut:before,.ion-md-desktop:before,.ion-md-disc:before,.ion-md-document:before,.ion-md-done-all:before,.ion-md-download:before,.ion-md-easel:before,.ion-md-egg:before,.ion-md-exit:before,.ion-md-expand:before,.ion-md-eye:before,.ion-md-eye-off:before,.ion-md-fastforward:before,.ion-md-female:before,.ion-md-filing:before,.ion-md-film:before,.ion-md-finger-print:before,.ion-md-fitness:before,.ion-md-flag:before,.ion-md-flame:before,.ion-md-flash:before,.ion-md-flash-off:before,.ion-md-flashlight:before,.ion-md-flask:before,.ion-md-flower:before,.ion-md-folder:before,.ion-md-folder-open:before,.ion-md-football:before,.ion-md-funnel:before,.ion-md-gift:before,.ion-md-git-branch:before,.ion-md-git-commit:before,.ion-md-git-compare:before,.ion-md-git-merge:before,.ion-md-git-network:before,.ion-md-git-pull-request:before,.ion-md-glasses:before,.ion-md-globe:before,.ion-md-grid:before,.ion-md-hammer:before,.ion-md-hand:before,.ion-md-happy:before,.ion-md-headset:before,.ion-md-heart:before,.ion-md-heart-dislike:before,.ion-md-heart-empty:before,.ion-md-heart-half:before,.ion-md-help:before,.ion-md-help-buoy:before,.ion-md-help-circle:before,.ion-md-help-circle-outline:before,.ion-md-home:before,.ion-md-hourglass:before,.ion-md-ice-cream:before,.ion-md-image:before,.ion-md-images:before,.ion-md-infinite:before,.ion-md-information:before,.ion-md-information-circle:before,.ion-md-information-circle-outline:before,.ion-md-jet:before,.ion-md-journal:before,.ion-md-key:before,.ion-md-keypad:before,.ion-md-laptop:before,.ion-md-leaf:before,.ion-md-link:before,.ion-md-list:before,.ion-md-list-box:before,.ion-md-locate:before,.ion-md-lock:before,.ion-md-log-in:before,.ion-md-log-out:before,.ion-md-magnet:before,.ion-md-mail:before,.ion-md-mail-open:before,.ion-md-mail-unread:before,.ion-md-male:before,.ion-md-man:before,.ion-md-map:before,.ion-md-medal:before,.ion-md-medical:before,.ion-md-medkit:before,.ion-md-megaphone:before,.ion-md-menu:before,.ion-md-mic:before,.ion-md-mic-off:before,.ion-md-microphone:before,.ion-md-moon:before,.ion-md-more:before,.ion-md-move:before,.ion-md-musical-note:before,.ion-md-musical-notes:before,.ion-md-navigate:before,.ion-md-notifications:before,.ion-md-notifications-off:before,.ion-md-notifications-outline:before,.ion-md-nuclear:before,.ion-md-nutrition:before,.ion-md-open:before,.ion-md-options:before,.ion-md-outlet:before,.ion-md-paper:before,.ion-md-paper-plane:before,.ion-md-partly-sunny:before,.ion-md-pause:before,.ion-md-paw:before,.ion-md-people:before,.ion-md-person:before,.ion-md-person-add:before,.ion-md-phone-landscape:before,.ion-md-phone-portrait:before,.ion-md-photos:before,.ion-md-pie:before,.ion-md-pin:before,.ion-md-pint:before,.ion-md-pizza:before,.ion-md-planet:before,.ion-md-play:before,.ion-md-play-circle:before,.ion-md-podium:before,.ion-md-power:before,.ion-md-pricetag:before,.ion-md-pricetags:before,.ion-md-print:before,.ion-md-pulse:before,.ion-md-qr-scanner:before,.ion-md-quote:before,.ion-md-radio:before,.ion-md-radio-button-off:before,.ion-md-radio-button-on:before,.ion-md-rainy:before,.ion-md-recording:before,.ion-md-redo:before,.ion-md-refresh:before,.ion-md-refresh-circle:before,.ion-md-remove:before,.ion-md-remove-circle:before,.ion-md-remove-circle-outline:before,.ion-md-reorder:before,.ion-md-repeat:before,.ion-md-resize:before,.ion-md-restaurant:before,.ion-md-return-left:before,.ion-md-return-right:before,.ion-md-reverse-camera:before,.ion-md-rewind:before,.ion-md-ribbon:before,.ion-md-rocket:before,.ion-md-rose:before,.ion-md-sad:before,.ion-md-save:before,.ion-md-school:before,.ion-md-search:before,.ion-md-send:before,.ion-md-settings:before,.ion-md-share:before,.ion-md-share-alt:before,.ion-md-shirt:before,.ion-md-shuffle:before,.ion-md-skip-backward:before,.ion-md-skip-forward:before,.ion-md-snow:before,.ion-md-speedometer:before,.ion-md-square:before,.ion-md-square-outline:before,.ion-md-star:before,.ion-md-star-half:before,.ion-md-star-outline:before,.ion-md-stats:before,.ion-md-stopwatch:before,.ion-md-subway:before,.ion-md-sunny:before,.ion-md-swap:before,.ion-md-switch:before,.ion-md-sync:before,.ion-md-tablet-landscape:before,.ion-md-tablet-portrait:before,.ion-md-tennisball:before,.ion-md-text:before,.ion-md-thermometer:before,.ion-md-thumbs-down:before,.ion-md-thumbs-up:before,.ion-md-thunderstorm:before,.ion-md-time:before,.ion-md-timer:before,.ion-md-today:before,.ion-md-train:before,.ion-md-transgender:before,.ion-md-trash:before,.ion-md-trending-down:before,.ion-md-trending-up:before,.ion-md-trophy:before,.ion-md-tv:before,.ion-md-umbrella:before,.ion-md-undo:before,.ion-md-unlock:before,.ion-md-videocam:before,.ion-md-volume-high:before,.ion-md-volume-low:before,.ion-md-volume-mute:before,.ion-md-volume-off:before,.ion-md-walk:before,.ion-md-wallet:before,.ion-md-warning:before,.ion-md-watch:before,.ion-md-water:before,.ion-md-wifi:before,.ion-md-wine:before,.ion-md-woman:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios-add:before{content:"\f102"}.ion-ios-add-circle:before{content:"\f101"}.ion-ios-add-circle-outline:before{content:"\f100"}.ion-ios-airplane:before{content:"\f137"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-alert:before{content:"\f104"}.ion-ios-american-football:before{content:"\f106"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-aperture:before{content:"\f108"}.ion-ios-apps:before{content:"\f10a"}.ion-ios-appstore:before{content:"\f10c"}.ion-ios-archive:before{content:"\f10e"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-dropdown:before{content:"\f110"}.ion-ios-arrow-dropdown-circle:before{content:"\f125"}.ion-ios-arrow-dropleft:before{content:"\f112"}.ion-ios-arrow-dropleft-circle:before{content:"\f129"}.ion-ios-arrow-dropright:before{content:"\f114"}.ion-ios-arrow-dropright-circle:before{content:"\f12b"}.ion-ios-arrow-dropup:before{content:"\f116"}.ion-ios-arrow-dropup-circle:before{content:"\f12d"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-round-back:before{content:"\f117"}.ion-ios-arrow-round-down:before{content:"\f118"}.ion-ios-arrow-round-forward:before{content:"\f119"}.ion-ios-arrow-round-up:before{content:"\f11a"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-attach:before{content:"\f11b"}.ion-ios-backspace:before{content:"\f11d"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-basket:before{content:"\f11f"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-battery-charging:before{content:"\f120"}.ion-ios-battery-dead:before{content:"\f121"}.ion-ios-battery-full:before{content:"\f122"}.ion-ios-beaker:before{content:"\f124"}.ion-ios-bed:before{content:"\f139"}.ion-ios-beer:before{content:"\f126"}.ion-ios-bicycle:before{content:"\f127"}.ion-ios-bluetooth:before{content:"\f128"}.ion-ios-boat:before{content:"\f12a"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-bonfire:before{content:"\f12c"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-bookmark:before{content:"\f12e"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bowtie:before{content:"\f130"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-brush:before{content:"\f132"}.ion-ios-bug:before{content:"\f134"}.ion-ios-build:before{content:"\f136"}.ion-ios-bulb:before{content:"\f138"}.ion-ios-bus:before{content:"\f13a"}.ion-ios-business:before{content:"\f1a3"}.ion-ios-cafe:before{content:"\f13c"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-call:before{content:"\f13e"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-car:before{content:"\f140"}.ion-ios-card:before{content:"\f142"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cash:before{content:"\f144"}.ion-ios-cellular:before{content:"\f13d"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatbubbles:before{content:"\f146"}.ion-ios-checkbox:before{content:"\f148"}.ion-ios-checkbox-outline:before{content:"\f147"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-circle:before{content:"\f14a"}.ion-ios-checkmark-circle-outline:before{content:"\f149"}.ion-ios-clipboard:before{content:"\f14c"}.ion-ios-clock:before{content:"\f403"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-circle:before{content:"\f14e"}.ion-ios-close-circle-outline:before{content:"\f14d"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-circle:before{content:"\f152"}.ion-ios-cloud-done:before{content:"\f154"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-code:before{content:"\f157"}.ion-ios-code-download:before{content:"\f155"}.ion-ios-code-working:before{content:"\f156"}.ion-ios-cog:before{content:"\f412"}.ion-ios-color-fill:before{content:"\f159"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-palette:before{content:"\f15b"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-compass:before{content:"\f15d"}.ion-ios-construct:before{content:"\f15f"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contacts:before{content:"\f161"}.ion-ios-contract:before{content:"\f162"}.ion-ios-contrast:before{content:"\f163"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-create:before{content:"\f165"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-cube:before{content:"\f168"}.ion-ios-cut:before{content:"\f16a"}.ion-ios-desktop:before{content:"\f16c"}.ion-ios-disc:before{content:"\f16e"}.ion-ios-document:before{content:"\f170"}.ion-ios-done-all:before{content:"\f171"}.ion-ios-download:before{content:"\f420"}.ion-ios-easel:before{content:"\f173"}.ion-ios-egg:before{content:"\f175"}.ion-ios-exit:before{content:"\f177"}.ion-ios-expand:before{content:"\f178"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-off:before{content:"\f17a"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-female:before{content:"\f17b"}.ion-ios-filing:before{content:"\f429"}.ion-ios-film:before{content:"\f42b"}.ion-ios-finger-print:before{content:"\f17c"}.ion-ios-fitness:before{content:"\f1ab"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flash:before{content:"\f17e"}.ion-ios-flash-off:before{content:"\f12f"}.ion-ios-flashlight:before{content:"\f141"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flower:before{content:"\f433"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-open:before{content:"\f180"}.ion-ios-football:before{content:"\f437"}.ion-ios-funnel:before{content:"\f182"}.ion-ios-gift:before{content:"\f191"}.ion-ios-git-branch:before{content:"\f183"}.ion-ios-git-commit:before{content:"\f184"}.ion-ios-git-compare:before{content:"\f185"}.ion-ios-git-merge:before{content:"\f186"}.ion-ios-git-network:before{content:"\f187"}.ion-ios-git-pull-request:before{content:"\f188"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-globe:before{content:"\f18a"}.ion-ios-grid:before{content:"\f18c"}.ion-ios-hammer:before{content:"\f18e"}.ion-ios-hand:before{content:"\f190"}.ion-ios-happy:before{content:"\f192"}.ion-ios-headset:before{content:"\f194"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-dislike:before{content:"\f13f"}.ion-ios-heart-empty:before{content:"\f19b"}.ion-ios-heart-half:before{content:"\f19d"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-buoy:before{content:"\f196"}.ion-ios-help-circle:before{content:"\f198"}.ion-ios-help-circle-outline:before{content:"\f197"}.ion-ios-home:before{content:"\f448"}.ion-ios-hourglass:before{content:"\f103"}.ion-ios-ice-cream:before{content:"\f19a"}.ion-ios-image:before{content:"\f19c"}.ion-ios-images:before{content:"\f19e"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-circle:before{content:"\f1a0"}.ion-ios-information-circle-outline:before{content:"\f19f"}.ion-ios-jet:before{content:"\f1a5"}.ion-ios-journal:before{content:"\f189"}.ion-ios-key:before{content:"\f1a7"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-laptop:before{content:"\f1a8"}.ion-ios-leaf:before{content:"\f1aa"}.ion-ios-link:before{content:"\f22a"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-box:before{content:"\f143"}.ion-ios-locate:before{content:"\f1ae"}.ion-ios-lock:before{content:"\f1b0"}.ion-ios-log-in:before{content:"\f1b1"}.ion-ios-log-out:before{content:"\f1b2"}.ion-ios-magnet:before{content:"\f1b4"}.ion-ios-mail:before{content:"\f1b8"}.ion-ios-mail-open:before{content:"\f1b6"}.ion-ios-mail-unread:before{content:"\f145"}.ion-ios-male:before{content:"\f1b9"}.ion-ios-man:before{content:"\f1bb"}.ion-ios-map:before{content:"\f1bd"}.ion-ios-medal:before{content:"\f1bf"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-megaphone:before{content:"\f1c1"}.ion-ios-menu:before{content:"\f1c3"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-microphone:before{content:"\f1c6"}.ion-ios-moon:before{content:"\f468"}.ion-ios-more:before{content:"\f1c8"}.ion-ios-move:before{content:"\f1cb"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-notifications:before{content:"\f1d3"}.ion-ios-notifications-off:before{content:"\f1d1"}.ion-ios-notifications-outline:before{content:"\f133"}.ion-ios-nuclear:before{content:"\f1d5"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-open:before{content:"\f1d7"}.ion-ios-options:before{content:"\f1d9"}.ion-ios-outlet:before{content:"\f1db"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-plane:before{content:"\f1dd"}.ion-ios-partly-sunny:before{content:"\f1df"}.ion-ios-pause:before{content:"\f478"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-people:before{content:"\f47c"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-add:before{content:"\f1e1"}.ion-ios-phone-landscape:before{content:"\f1e2"}.ion-ios-phone-portrait:before{content:"\f1e3"}.ion-ios-photos:before{content:"\f482"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pin:before{content:"\f1e5"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pizza:before{content:"\f1e7"}.ion-ios-planet:before{content:"\f1eb"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-circle:before{content:"\f113"}.ion-ios-podium:before{content:"\f1ed"}.ion-ios-power:before{content:"\f1ef"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-print:before{content:"\f1f1"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-qr-scanner:before{content:"\f1f3"}.ion-ios-quote:before{content:"\f1f5"}.ion-ios-radio:before{content:"\f1f9"}.ion-ios-radio-button-off:before{content:"\f1f6"}.ion-ios-radio-button-on:before{content:"\f1f7"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-recording:before{content:"\f497"}.ion-ios-redo:before{content:"\f499"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-circle:before{content:"\f135"}.ion-ios-remove:before{content:"\f1fc"}.ion-ios-remove-circle:before{content:"\f1fb"}.ion-ios-remove-circle-outline:before{content:"\f1fa"}.ion-ios-reorder:before{content:"\f1fd"}.ion-ios-repeat:before{content:"\f1fe"}.ion-ios-resize:before{content:"\f1ff"}.ion-ios-restaurant:before{content:"\f201"}.ion-ios-return-left:before{content:"\f202"}.ion-ios-return-right:before{content:"\f203"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-ribbon:before{content:"\f205"}.ion-ios-rocket:before{content:"\f14b"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-sad:before{content:"\f207"}.ion-ios-save:before{content:"\f1a6"}.ion-ios-school:before{content:"\f209"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-send:before{content:"\f20c"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-share:before{content:"\f211"}.ion-ios-share-alt:before{content:"\f20f"}.ion-ios-shirt:before{content:"\f213"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-skip-backward:before{content:"\f215"}.ion-ios-skip-forward:before{content:"\f217"}.ion-ios-snow:before{content:"\f218"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-square:before{content:"\f21a"}.ion-ios-square-outline:before{content:"\f15c"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stats:before{content:"\f21c"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-subway:before{content:"\f21e"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-swap:before{content:"\f21f"}.ion-ios-switch:before{content:"\f221"}.ion-ios-sync:before{content:"\f222"}.ion-ios-tablet-landscape:before{content:"\f223"}.ion-ios-tablet-portrait:before{content:"\f24e"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-text:before{content:"\f250"}.ion-ios-thermometer:before{content:"\f252"}.ion-ios-thumbs-down:before{content:"\f254"}.ion-ios-thumbs-up:before{content:"\f256"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-today:before{content:"\f14f"}.ion-ios-train:before{content:"\f258"}.ion-ios-transgender:before{content:"\f259"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trending-down:before{content:"\f25a"}.ion-ios-trending-up:before{content:"\f25b"}.ion-ios-trophy:before{content:"\f25d"}.ion-ios-tv:before{content:"\f115"}.ion-ios-umbrella:before{content:"\f25f"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-unlock:before{content:"\f261"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-volume-high:before{content:"\f11c"}.ion-ios-volume-low:before{content:"\f11e"}.ion-ios-volume-mute:before{content:"\f263"}.ion-ios-volume-off:before{content:"\f264"}.ion-ios-walk:before{content:"\f266"}.ion-ios-wallet:before{content:"\f18b"}.ion-ios-warning:before{content:"\f268"}.ion-ios-watch:before{content:"\f269"}.ion-ios-water:before{content:"\f26b"}.ion-ios-wifi:before{content:"\f26d"}.ion-ios-wine:before{content:"\f26f"}.ion-ios-woman:before{content:"\f271"}.ion-logo-android:before{content:"\f225"}.ion-logo-angular:before{content:"\f227"}.ion-logo-apple:before{content:"\f229"}.ion-logo-bitbucket:before{content:"\f193"}.ion-logo-bitcoin:before{content:"\f22b"}.ion-logo-buffer:before{content:"\f22d"}.ion-logo-chrome:before{content:"\f22f"}.ion-logo-closed-captioning:before{content:"\f105"}.ion-logo-codepen:before{content:"\f230"}.ion-logo-css3:before{content:"\f231"}.ion-logo-designernews:before{content:"\f232"}.ion-logo-dribbble:before{content:"\f233"}.ion-logo-dropbox:before{content:"\f234"}.ion-logo-euro:before{content:"\f235"}.ion-logo-facebook:before{content:"\f236"}.ion-logo-flickr:before{content:"\f107"}.ion-logo-foursquare:before{content:"\f237"}.ion-logo-freebsd-devil:before{content:"\f238"}.ion-logo-game-controller-a:before{content:"\f13b"}.ion-logo-game-controller-b:before{content:"\f181"}.ion-logo-github:before{content:"\f239"}.ion-logo-google:before{content:"\f23a"}.ion-logo-googleplus:before{content:"\f23b"}.ion-logo-hackernews:before{content:"\f23c"}.ion-logo-html5:before{content:"\f23d"}.ion-logo-instagram:before{content:"\f23e"}.ion-logo-ionic:before{content:"\f150"}.ion-logo-ionitron:before{content:"\f151"}.ion-logo-javascript:before{content:"\f23f"}.ion-logo-linkedin:before{content:"\f240"}.ion-logo-markdown:before{content:"\f241"}.ion-logo-model-s:before{content:"\f153"}.ion-logo-no-smoking:before{content:"\f109"}.ion-logo-nodejs:before{content:"\f242"}.ion-logo-npm:before{content:"\f195"}.ion-logo-octocat:before{content:"\f243"}.ion-logo-pinterest:before{content:"\f244"}.ion-logo-playstation:before{content:"\f245"}.ion-logo-polymer:before{content:"\f15e"}.ion-logo-python:before{content:"\f246"}.ion-logo-reddit:before{content:"\f247"}.ion-logo-rss:before{content:"\f248"}.ion-logo-sass:before{content:"\f249"}.ion-logo-skype:before{content:"\f24a"}.ion-logo-slack:before{content:"\f10b"}.ion-logo-snapchat:before{content:"\f24b"}.ion-logo-steam:before{content:"\f24c"}.ion-logo-tumblr:before{content:"\f24d"}.ion-logo-tux:before{content:"\f2ae"}.ion-logo-twitch:before{content:"\f2af"}.ion-logo-twitter:before{content:"\f2b0"}.ion-logo-usd:before{content:"\f2b1"}.ion-logo-vimeo:before{content:"\f2c4"}.ion-logo-vk:before{content:"\f10d"}.ion-logo-whatsapp:before{content:"\f2c5"}.ion-logo-windows:before{content:"\f32f"}.ion-logo-wordpress:before{content:"\f330"}.ion-logo-xbox:before{content:"\f34c"}.ion-logo-xing:before{content:"\f10f"}.ion-logo-yahoo:before{content:"\f34d"}.ion-logo-yen:before{content:"\f34e"}.ion-logo-youtube:before{content:"\f34f"}.ion-md-add:before{content:"\f273"}.ion-md-add-circle:before{content:"\f272"}.ion-md-add-circle-outline:before{content:"\f158"}.ion-md-airplane:before{content:"\f15a"}.ion-md-alarm:before{content:"\f274"}.ion-md-albums:before{content:"\f275"}.ion-md-alert:before{content:"\f276"}.ion-md-american-football:before{content:"\f277"}.ion-md-analytics:before{content:"\f278"}.ion-md-aperture:before{content:"\f279"}.ion-md-apps:before{content:"\f27a"}.ion-md-appstore:before{content:"\f27b"}.ion-md-archive:before{content:"\f27c"}.ion-md-arrow-back:before{content:"\f27d"}.ion-md-arrow-down:before{content:"\f27e"}.ion-md-arrow-dropdown:before{content:"\f280"}.ion-md-arrow-dropdown-circle:before{content:"\f27f"}.ion-md-arrow-dropleft:before{content:"\f282"}.ion-md-arrow-dropleft-circle:before{content:"\f281"}.ion-md-arrow-dropright:before{content:"\f284"}.ion-md-arrow-dropright-circle:before{content:"\f283"}.ion-md-arrow-dropup:before{content:"\f286"}.ion-md-arrow-dropup-circle:before{content:"\f285"}.ion-md-arrow-forward:before{content:"\f287"}.ion-md-arrow-round-back:before{content:"\f288"}.ion-md-arrow-round-down:before{content:"\f289"}.ion-md-arrow-round-forward:before{content:"\f28a"}.ion-md-arrow-round-up:before{content:"\f28b"}.ion-md-arrow-up:before{content:"\f28c"}.ion-md-at:before{content:"\f28d"}.ion-md-attach:before{content:"\f28e"}.ion-md-backspace:before{content:"\f28f"}.ion-md-barcode:before{content:"\f290"}.ion-md-baseball:before{content:"\f291"}.ion-md-basket:before{content:"\f292"}.ion-md-basketball:before{content:"\f293"}.ion-md-battery-charging:before{content:"\f294"}.ion-md-battery-dead:before{content:"\f295"}.ion-md-battery-full:before{content:"\f296"}.ion-md-beaker:before{content:"\f297"}.ion-md-bed:before{content:"\f160"}.ion-md-beer:before{content:"\f298"}.ion-md-bicycle:before{content:"\f299"}.ion-md-bluetooth:before{content:"\f29a"}.ion-md-boat:before{content:"\f29b"}.ion-md-body:before{content:"\f29c"}.ion-md-bonfire:before{content:"\f29d"}.ion-md-book:before{content:"\f29e"}.ion-md-bookmark:before{content:"\f29f"}.ion-md-bookmarks:before{content:"\f2a0"}.ion-md-bowtie:before{content:"\f2a1"}.ion-md-briefcase:before{content:"\f2a2"}.ion-md-browsers:before{content:"\f2a3"}.ion-md-brush:before{content:"\f2a4"}.ion-md-bug:before{content:"\f2a5"}.ion-md-build:before{content:"\f2a6"}.ion-md-bulb:before{content:"\f2a7"}.ion-md-bus:before{content:"\f2a8"}.ion-md-business:before{content:"\f1a4"}.ion-md-cafe:before{content:"\f2a9"}.ion-md-calculator:before{content:"\f2aa"}.ion-md-calendar:before{content:"\f2ab"}.ion-md-call:before{content:"\f2ac"}.ion-md-camera:before{content:"\f2ad"}.ion-md-car:before{content:"\f2b2"}.ion-md-card:before{content:"\f2b3"}.ion-md-cart:before{content:"\f2b4"}.ion-md-cash:before{content:"\f2b5"}.ion-md-cellular:before{content:"\f164"}.ion-md-chatboxes:before{content:"\f2b6"}.ion-md-chatbubbles:before{content:"\f2b7"}.ion-md-checkbox:before{content:"\f2b9"}.ion-md-checkbox-outline:before{content:"\f2b8"}.ion-md-checkmark:before{content:"\f2bc"}.ion-md-checkmark-circle:before{content:"\f2bb"}.ion-md-checkmark-circle-outline:before{content:"\f2ba"}.ion-md-clipboard:before{content:"\f2bd"}.ion-md-clock:before{content:"\f2be"}.ion-md-close:before{content:"\f2c0"}.ion-md-close-circle:before{content:"\f2bf"}.ion-md-close-circle-outline:before{content:"\f166"}.ion-md-cloud:before{content:"\f2c9"}.ion-md-cloud-circle:before{content:"\f2c2"}.ion-md-cloud-done:before{content:"\f2c3"}.ion-md-cloud-download:before{content:"\f2c6"}.ion-md-cloud-outline:before{content:"\f2c7"}.ion-md-cloud-upload:before{content:"\f2c8"}.ion-md-cloudy:before{content:"\f2cb"}.ion-md-cloudy-night:before{content:"\f2ca"}.ion-md-code:before{content:"\f2ce"}.ion-md-code-download:before{content:"\f2cc"}.ion-md-code-working:before{content:"\f2cd"}.ion-md-cog:before{content:"\f2cf"}.ion-md-color-fill:before{content:"\f2d0"}.ion-md-color-filter:before{content:"\f2d1"}.ion-md-color-palette:before{content:"\f2d2"}.ion-md-color-wand:before{content:"\f2d3"}.ion-md-compass:before{content:"\f2d4"}.ion-md-construct:before{content:"\f2d5"}.ion-md-contact:before{content:"\f2d6"}.ion-md-contacts:before{content:"\f2d7"}.ion-md-contract:before{content:"\f2d8"}.ion-md-contrast:before{content:"\f2d9"}.ion-md-copy:before{content:"\f2da"}.ion-md-create:before{content:"\f2db"}.ion-md-crop:before{content:"\f2dc"}.ion-md-cube:before{content:"\f2dd"}.ion-md-cut:before{content:"\f2de"}.ion-md-desktop:before{content:"\f2df"}.ion-md-disc:before{content:"\f2e0"}.ion-md-document:before{content:"\f2e1"}.ion-md-done-all:before{content:"\f2e2"}.ion-md-download:before{content:"\f2e3"}.ion-md-easel:before{content:"\f2e4"}.ion-md-egg:before{content:"\f2e5"}.ion-md-exit:before{content:"\f2e6"}.ion-md-expand:before{content:"\f2e7"}.ion-md-eye:before{content:"\f2e9"}.ion-md-eye-off:before{content:"\f2e8"}.ion-md-fastforward:before{content:"\f2ea"}.ion-md-female:before{content:"\f2eb"}.ion-md-filing:before{content:"\f2ec"}.ion-md-film:before{content:"\f2ed"}.ion-md-finger-print:before{content:"\f2ee"}.ion-md-fitness:before{content:"\f1ac"}.ion-md-flag:before{content:"\f2ef"}.ion-md-flame:before{content:"\f2f0"}.ion-md-flash:before{content:"\f2f1"}.ion-md-flash-off:before{content:"\f169"}.ion-md-flashlight:before{content:"\f16b"}.ion-md-flask:before{content:"\f2f2"}.ion-md-flower:before{content:"\f2f3"}.ion-md-folder:before{content:"\f2f5"}.ion-md-folder-open:before{content:"\f2f4"}.ion-md-football:before{content:"\f2f6"}.ion-md-funnel:before{content:"\f2f7"}.ion-md-gift:before{content:"\f199"}.ion-md-git-branch:before{content:"\f2fa"}.ion-md-git-commit:before{content:"\f2fb"}.ion-md-git-compare:before{content:"\f2fc"}.ion-md-git-merge:before{content:"\f2fd"}.ion-md-git-network:before{content:"\f2fe"}.ion-md-git-pull-request:before{content:"\f2ff"}.ion-md-glasses:before{content:"\f300"}.ion-md-globe:before{content:"\f301"}.ion-md-grid:before{content:"\f302"}.ion-md-hammer:before{content:"\f303"}.ion-md-hand:before{content:"\f304"}.ion-md-happy:before{content:"\f305"}.ion-md-headset:before{content:"\f306"}.ion-md-heart:before{content:"\f308"}.ion-md-heart-dislike:before{content:"\f167"}.ion-md-heart-empty:before{content:"\f1a1"}.ion-md-heart-half:before{content:"\f1a2"}.ion-md-help:before{content:"\f30b"}.ion-md-help-buoy:before{content:"\f309"}.ion-md-help-circle:before{content:"\f30a"}.ion-md-help-circle-outline:before{content:"\f16d"}.ion-md-home:before{content:"\f30c"}.ion-md-hourglass:before{content:"\f111"}.ion-md-ice-cream:before{content:"\f30d"}.ion-md-image:before{content:"\f30e"}.ion-md-images:before{content:"\f30f"}.ion-md-infinite:before{content:"\f310"}.ion-md-information:before{content:"\f312"}.ion-md-information-circle:before{content:"\f311"}.ion-md-information-circle-outline:before{content:"\f16f"}.ion-md-jet:before{content:"\f315"}.ion-md-journal:before{content:"\f18d"}.ion-md-key:before{content:"\f316"}.ion-md-keypad:before{content:"\f317"}.ion-md-laptop:before{content:"\f318"}.ion-md-leaf:before{content:"\f319"}.ion-md-link:before{content:"\f22e"}.ion-md-list:before{content:"\f31b"}.ion-md-list-box:before{content:"\f31a"}.ion-md-locate:before{content:"\f31c"}.ion-md-lock:before{content:"\f31d"}.ion-md-log-in:before{content:"\f31e"}.ion-md-log-out:before{content:"\f31f"}.ion-md-magnet:before{content:"\f320"}.ion-md-mail:before{content:"\f322"}.ion-md-mail-open:before{content:"\f321"}.ion-md-mail-unread:before{content:"\f172"}.ion-md-male:before{content:"\f323"}.ion-md-man:before{content:"\f324"}.ion-md-map:before{content:"\f325"}.ion-md-medal:before{content:"\f326"}.ion-md-medical:before{content:"\f327"}.ion-md-medkit:before{content:"\f328"}.ion-md-megaphone:before{content:"\f329"}.ion-md-menu:before{content:"\f32a"}.ion-md-mic:before{content:"\f32c"}.ion-md-mic-off:before{content:"\f32b"}.ion-md-microphone:before{content:"\f32d"}.ion-md-moon:before{content:"\f32e"}.ion-md-more:before{content:"\f1c9"}.ion-md-move:before{content:"\f331"}.ion-md-musical-note:before{content:"\f332"}.ion-md-musical-notes:before{content:"\f333"}.ion-md-navigate:before{content:"\f334"}.ion-md-notifications:before{content:"\f338"}.ion-md-notifications-off:before{content:"\f336"}.ion-md-notifications-outline:before{content:"\f337"}.ion-md-nuclear:before{content:"\f339"}.ion-md-nutrition:before{content:"\f33a"}.ion-md-open:before{content:"\f33b"}.ion-md-options:before{content:"\f33c"}.ion-md-outlet:before{content:"\f33d"}.ion-md-paper:before{content:"\f33f"}.ion-md-paper-plane:before{content:"\f33e"}.ion-md-partly-sunny:before{content:"\f340"}.ion-md-pause:before{content:"\f341"}.ion-md-paw:before{content:"\f342"}.ion-md-people:before{content:"\f343"}.ion-md-person:before{content:"\f345"}.ion-md-person-add:before{content:"\f344"}.ion-md-phone-landscape:before{content:"\f346"}.ion-md-phone-portrait:before{content:"\f347"}.ion-md-photos:before{content:"\f348"}.ion-md-pie:before{content:"\f349"}.ion-md-pin:before{content:"\f34a"}.ion-md-pint:before{content:"\f34b"}.ion-md-pizza:before{content:"\f354"}.ion-md-planet:before{content:"\f356"}.ion-md-play:before{content:"\f357"}.ion-md-play-circle:before{content:"\f174"}.ion-md-podium:before{content:"\f358"}.ion-md-power:before{content:"\f359"}.ion-md-pricetag:before{content:"\f35a"}.ion-md-pricetags:before{content:"\f35b"}.ion-md-print:before{content:"\f35c"}.ion-md-pulse:before{content:"\f35d"}.ion-md-qr-scanner:before{content:"\f35e"}.ion-md-quote:before{content:"\f35f"}.ion-md-radio:before{content:"\f362"}.ion-md-radio-button-off:before{content:"\f360"}.ion-md-radio-button-on:before{content:"\f361"}.ion-md-rainy:before{content:"\f363"}.ion-md-recording:before{content:"\f364"}.ion-md-redo:before{content:"\f365"}.ion-md-refresh:before{content:"\f366"}.ion-md-refresh-circle:before{content:"\f228"}.ion-md-remove:before{content:"\f368"}.ion-md-remove-circle:before{content:"\f367"}.ion-md-remove-circle-outline:before{content:"\f176"}.ion-md-reorder:before{content:"\f369"}.ion-md-repeat:before{content:"\f36a"}.ion-md-resize:before{content:"\f36b"}.ion-md-restaurant:before{content:"\f36c"}.ion-md-return-left:before{content:"\f36d"}.ion-md-return-right:before{content:"\f36e"}.ion-md-reverse-camera:before{content:"\f36f"}.ion-md-rewind:before{content:"\f370"}.ion-md-ribbon:before{content:"\f371"}.ion-md-rocket:before{content:"\f179"}.ion-md-rose:before{content:"\f372"}.ion-md-sad:before{content:"\f373"}.ion-md-save:before{content:"\f1a9"}.ion-md-school:before{content:"\f374"}.ion-md-search:before{content:"\f375"}.ion-md-send:before{content:"\f376"}.ion-md-settings:before{content:"\f377"}.ion-md-share:before{content:"\f379"}.ion-md-share-alt:before{content:"\f378"}.ion-md-shirt:before{content:"\f37a"}.ion-md-shuffle:before{content:"\f37b"}.ion-md-skip-backward:before{content:"\f37c"}.ion-md-skip-forward:before{content:"\f37d"}.ion-md-snow:before{content:"\f37e"}.ion-md-speedometer:before{content:"\f37f"}.ion-md-square:before{content:"\f381"}.ion-md-square-outline:before{content:"\f380"}.ion-md-star:before{content:"\f384"}.ion-md-star-half:before{content:"\f382"}.ion-md-star-outline:before{content:"\f383"}.ion-md-stats:before{content:"\f385"}.ion-md-stopwatch:before{content:"\f386"}.ion-md-subway:before{content:"\f387"}.ion-md-sunny:before{content:"\f388"}.ion-md-swap:before{content:"\f389"}.ion-md-switch:before{content:"\f38a"}.ion-md-sync:before{content:"\f38b"}.ion-md-tablet-landscape:before{content:"\f38c"}.ion-md-tablet-portrait:before{content:"\f38d"}.ion-md-tennisball:before{content:"\f38e"}.ion-md-text:before{content:"\f38f"}.ion-md-thermometer:before{content:"\f390"}.ion-md-thumbs-down:before{content:"\f391"}.ion-md-thumbs-up:before{content:"\f392"}.ion-md-thunderstorm:before{content:"\f393"}.ion-md-time:before{content:"\f394"}.ion-md-timer:before{content:"\f395"}.ion-md-today:before{content:"\f17d"}.ion-md-train:before{content:"\f396"}.ion-md-transgender:before{content:"\f397"}.ion-md-trash:before{content:"\f398"}.ion-md-trending-down:before{content:"\f399"}.ion-md-trending-up:before{content:"\f39a"}.ion-md-trophy:before{content:"\f39b"}.ion-md-tv:before{content:"\f17f"}.ion-md-umbrella:before{content:"\f39c"}.ion-md-undo:before{content:"\f39d"}.ion-md-unlock:before{content:"\f39e"}.ion-md-videocam:before{content:"\f39f"}.ion-md-volume-high:before{content:"\f123"}.ion-md-volume-low:before{content:"\f131"}.ion-md-volume-mute:before{content:"\f3a1"}.ion-md-volume-off:before{content:"\f3a2"}.ion-md-walk:before{content:"\f3a4"}.ion-md-wallet:before{content:"\f18f"}.ion-md-warning:before{content:"\f3a5"}.ion-md-watch:before{content:"\f3a6"}.ion-md-water:before{content:"\f3a7"}.ion-md-wifi:before{content:"\f3a8"}.ion-md-wine:before{content:"\f3a9"}.ion-md-woman:before{content:"\f3aa"} diff --git a/frontend/documentation/styles/laravel.css b/frontend/documentation/styles/laravel.css new file mode 100644 index 0000000..bae0c3a --- /dev/null +++ b/frontend/documentation/styles/laravel.css @@ -0,0 +1,113 @@ +.nav-tabs > li > a { + text-decoration: none; +} + +.navbar-default .navbar-brand { + color: #f4645f; + text-decoration: none; + font-size: 16px; +} + +.menu ul.list li a[data-type='chapter-link'], +.menu ul.list li.chapter .simple { + color: #525252; + border-bottom: 1px dashed rgba(0, 0, 0, 0.1); +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5 { + color: #292e31; + font-weight: normal; +} + +.content { + color: #4c555a; +} + +a { + color: #f4645f; + text-decoration: underline; +} +a:hover { + color: #f1362f; +} + +.menu ul.list li:nth-child(2) { + margin-top: 0; +} + +.menu ul.list li.title a { + color: #f4645f; + text-decoration: none; + font-size: 16px; +} + +.menu ul.list li a { + color: #f4645f; + text-decoration: none; +} +.menu ul.list li a.active { + color: #f4645f; + font-weight: bold; +} + +code { + box-sizing: border-box; + display: inline-block; + padding: 0 5px; + background: #f0f2f1; + border-radius: 3px; + color: #b93d6a; + font-size: 13px; + line-height: 20px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); +} + +pre { + margin: 0; + padding: 12px 12px; + background: rgba(238, 238, 238, 0.35); + border-radius: 3px; + font-size: 13px; + line-height: 1.5em; + font-weight: 500; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); +} + +.dark body { + color: #fafafa; +} +.dark .content h1, +.dark .content h2, +.dark .content h3, +.dark .content h4, +.dark .content h5 { + color: #fafafa; +} + +.dark code { + background: none; +} + +.dark .content { + color: #fafafa; +} + +.dark .menu ul.list li a[data-type='chapter-link'], +.dark .menu ul.list li.chapter .simple { + color: #fafafa; +} + +.dark .menu ul.list li.title a { + color: #fafafa; +} + +.dark .menu ul.list li a { + color: #fafafa; +} +.dark .menu ul.list li a.active { + color: #7fc9ff; +} diff --git a/frontend/documentation/styles/material.css b/frontend/documentation/styles/material.css new file mode 100644 index 0000000..84d6c0e --- /dev/null +++ b/frontend/documentation/styles/material.css @@ -0,0 +1,131 @@ +.menu { + background: none; +} + +a:hover { + text-decoration: none; +} + +/** LINK **/ + +.menu ul.list li a { + text-decoration: none; +} + +.menu ul.list li a:hover, +.menu ul.list li.chapter .simple:hover { + background-color: #f8f9fa; + text-decoration: none; +} + +#book-search-input { + margin-bottom: 0; +} + +.menu ul.list li.divider { + margin-top: 0; + background: #e9ecef; +} + +.menu .title:hover { + background-color: #f8f9fa; +} + +/** CARD **/ + +.card { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), + 0 1px 5px 0 rgba(0, 0, 0, 0.12); + border-radius: 0.125rem; + border: 0; + margin-top: 1px; +} + +.card-header { + background: none; +} + +/** BUTTON **/ + +.btn { + border-radius: 0.125rem; +} + +/** NAV BAR **/ + +.nav { + border: 0; +} +.nav-tabs > li > a { + border: 0; + border-bottom: 0.214rem solid transparent; + color: rgba(0, 0, 0, 0.54); + margin-right: 0; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:focus, +.nav-tabs > li.active > a:hover { + color: rgba(0, 0, 0, 0.87); + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 0.214rem solid transparent; + border-color: #008cff; + font-weight: bold; +} +.nav > li > a:focus, +.nav > li > a:hover { + background: none; +} + +/** LIST **/ + +.list-group-item:first-child { + border-top-left-radius: 0.125rem; + border-top-right-radius: 0.125rem; +} +.list-group-item:last-child { + border-bottom-left-radius: 0.125rem; + border-bottom-right-radius: 0.125rem; +} + +/** MISC **/ + +.modifier { + border-radius: 0.125rem; +} + +pre[class*='language-'] { + border-radius: 0.125rem; +} + +/** TABLE **/ + +.table-hover > tbody > tr:hover { + background: rgba(0, 0, 0, 0.075); +} + +table.params thead { + background: none; +} +table.params thead td { + color: rgba(0, 0, 0, 0.54); + font-weight: bold; +} + +.dark .menu .title:hover { + background-color: #2d2d2d; +} +.dark .menu ul.list li a:hover, +.dark .menu ul.list li.chapter .simple:hover { + background-color: #2d2d2d; +} +.dark .nav-tabs > li:not(.active) > a { + color: #fafafa; +} +.dark table.params thead { + background: #484848; +} +.dark table.params thead td { + color: #fafafa; +} diff --git a/frontend/documentation/styles/original.css b/frontend/documentation/styles/original.css new file mode 100644 index 0000000..8e01814 --- /dev/null +++ b/frontend/documentation/styles/original.css @@ -0,0 +1,51 @@ +.navbar-default .navbar-brand, +.menu ul.list li.title { + font-weight: bold; + color: #3c3c3c; + padding-bottom: 5px; +} + +.menu ul.list li a[data-type='chapter-link'], +.menu ul.list li.chapter .simple { + font-weight: bold; + font-size: 14px; +} + +.menu ul.list li a[href='./routes.html'] { + border-bottom: none; +} + +.menu ul.list > li:nth-child(2) { + display: none; +} + +.menu ul.list li.chapter ul.links { + background: #fff; + padding-left: 0; +} + +.menu ul.list li.chapter ul.links li { + border-bottom: 1px solid #ddd; + padding-left: 20px; +} + +.menu ul.list li.chapter ul.links li:last-child { + border-bottom: none; +} + +.menu ul.list li a.active { + color: #337ab7; + font-weight: bold; +} + +#book-search-input { + margin-bottom: 0; + border-bottom: none; +} +.menu ul.list li.divider { + margin: 0; +} + +.dark .menu ul.list li.chapter ul.links { + background: none; +} diff --git a/frontend/documentation/styles/postmark.css b/frontend/documentation/styles/postmark.css new file mode 100644 index 0000000..ae8be3e --- /dev/null +++ b/frontend/documentation/styles/postmark.css @@ -0,0 +1,238 @@ +.navbar-default { + background: #ffde00; + border: none; +} + +.navbar-default .navbar-brand { + color: #333; + font-weight: bold; +} + +.menu { + background: #333; + color: #fcfcfc; +} + +.menu ul.list li a { + color: #333; +} + +.menu ul.list li.title { + background: #ffde00; + color: #333; + padding-bottom: 5px; +} + +.menu ul.list li:nth-child(2) { + margin-top: 0; +} + +.menu ul.list li.chapter a, +.menu ul.list li.chapter .simple { + color: white; + text-decoration: none; +} + +.menu ul.list li.chapter ul.links a { + color: #949494; + text-transform: none; + padding-left: 35px; +} + +.menu ul.list li.chapter ul.links a:hover, +.menu ul.list li.chapter ul.links a.active { + color: #ffde00; +} + +.menu ul.list li.chapter ul.links { + padding-left: 0; +} + +.menu ul.list li.divider { + background: rgba(255, 255, 255, 0.07); +} + +#book-search-input input, +#book-search-input input:focus, +#book-search-input input:hover { + color: #949494; +} + +.copyright { + color: #b3b3b3; + background: #272525; +} + +.content { + background: #fcfcfc; +} + +.content a { + color: #007dcc; +} + +.content a:visited { + color: #0165a5; +} + +.menu ul.list li:nth-last-child(2) { + background: none; +} + +.list-group-item:first-child, +.list-group-item:last-child { + border-radius: 0; +} + +.menu ul.list li.title a { + text-decoration: none; + font-weight: bold; +} + +.menu ul.list li.title a:hover { + background: rgba(255, 255, 255, 0.1); +} + +.breadcrumb > li + li:before { + content: '»\00a0'; +} + +.breadcrumb { + padding-bottom: 15px; + border-bottom: 1px solid #e1e4e5; +} + +code { + white-space: nowrap; + max-width: 100%; + background: #f5f5f5; + padding: 2px 5px; + color: #666666; + overflow-x: auto; + border-radius: 0; +} + +pre { + white-space: pre; + margin: 0; + padding: 12px 12px; + font-size: 12px; + line-height: 1.5; + display: block; + overflow: auto; + color: #404040; + background: #f3f3f3; +} + +pre code.hljs { + border: none; + background: inherit; +} + +/* +Atom One Light by Daniel Gamage +Original One Light Syntax theme from https://github.com/atom/one-light-syntax +base: #fafafa +mono-1: #383a42 +mono-2: #686b77 +mono-3: #a0a1a7 +hue-1: #0184bb +hue-2: #4078f2 +hue-3: #a626a4 +hue-4: #50a14f +hue-5: #e45649 +hue-5-2: #c91243 +hue-6: #986801 +hue-6-2: #c18401 +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #383a42; + background: #fafafa; +} + +.hljs-comment, +.hljs-quote { + color: #a0a1a7; + font-style: italic; +} + +.hljs-doctag, +.hljs-keyword, +.hljs-formula { + color: #a626a4; +} + +.hljs-section, +.hljs-name, +.hljs-selector-tag, +.hljs-deletion, +.hljs-subst { + color: #e45649; +} + +.hljs-literal { + color: #0184bb; +} + +.hljs-string, +.hljs-regexp, +.hljs-addition, +.hljs-attribute, +.hljs-meta-string { + color: #50a14f; +} + +.hljs-built_in, +.hljs-class .hljs-title { + color: #c18401; +} + +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-type, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-number { + color: #986801; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-meta, +.hljs-selector-id, +.hljs-title { + color: #4078f2; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-link { + text-decoration: underline; +} + +.dark .content { + background: none; +} +.dark code { + background: none; + color: #e09393; +} +.dark .menu ul.list li.chapter a.active { + color: #ffde00; +} +.dark .menu { + background: #272525; +} diff --git a/frontend/documentation/styles/prism.css b/frontend/documentation/styles/prism.css new file mode 100644 index 0000000..46a643b --- /dev/null +++ b/frontend/documentation/styles/prism.css @@ -0,0 +1,301 @@ +/* PrismJS 1.24.0 +https://prismjs.com/download.html?#themes=prism-okaidia&languages=markup+css+clike+javascript+apacheconf+aspnet+bash+c+csharp+cpp+coffeescript+dart+docker+elm+git+go+graphql+handlebars+haskell+http+ignore+java+json+kotlin+less+markdown+markup-templating+nginx+php+powershell+ruby+rust+sass+scss+sql+swift+typescript+wasm+yaml&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */ +/** + * okaidia theme for JavaScript, CSS and HTML + * Loosely based on Monokai textmate theme by http://www.monokai.nl/ + * @author ocodia + */ + +code[class*='language-'], +pre[class*='language-'] { + color: #f8f8f2; + background: none; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*='language-'] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; + border-radius: 0.3em; +} + +:not(pre) > code[class*='language-'], +pre[class*='language-'] { + background: #272822; +} + +/* Inline code */ +:not(pre) > code[class*='language-'] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #8292a2; +} + +.token.punctuation { + color: #f8f8f2; +} + +.token.namespace { + opacity: 0.7; +} + +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #f92672; +} + +.token.boolean, +.token.number { + color: #ae81ff; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #a6e22e; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} + +.token.atrule, +.token.attr-value, +.token.function, +.token.class-name { + color: #e6db74; +} + +.token.keyword { + color: #66d9ef; +} + +.token.regex, +.token.important { + color: #fd971f; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +pre[data-line] { + position: relative; + padding: 1em 0 1em 3em; +} + +.line-highlight { + position: absolute; + left: 0; + right: 0; + padding: inherit 0; + margin-top: 1em; /* Same as .prism’s padding-top */ + + background: hsla(24, 20%, 50%, 0.08); + background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); + + pointer-events: none; + + line-height: inherit; + white-space: pre; +} + +@media print { + .line-highlight { + /* + * This will prevent browsers from replacing the background color with white. + * It's necessary because the element is layered on top of the displayed code. + */ + -webkit-print-color-adjust: exact; + color-adjust: exact; + } +} + +.line-highlight:before, +.line-highlight[data-end]:after { + content: attr(data-start); + position: absolute; + top: 0.4em; + left: 0.6em; + min-width: 1em; + padding: 0 0.5em; + background-color: hsla(24, 20%, 50%, 0.4); + color: hsl(24, 20%, 95%); + font: bold 65%/1.5 sans-serif; + text-align: center; + vertical-align: 0.3em; + border-radius: 999px; + text-shadow: none; + box-shadow: 0 1px white; +} + +.line-highlight[data-end]:after { + content: attr(data-end); + top: auto; + bottom: 0.4em; +} + +.line-numbers .line-highlight:before, +.line-numbers .line-highlight:after { + content: none; +} + +pre[id].linkable-line-numbers span.line-numbers-rows { + pointer-events: all; +} +pre[id].linkable-line-numbers span.line-numbers-rows > span:before { + cursor: pointer; +} +pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before { + background-color: rgba(128, 128, 128, 0.2); +} + +pre[class*='language-'].line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber; +} + +pre[class*='language-'].line-numbers > code { + position: relative; + white-space: inherit; +} + +.line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 0; + font-size: 100%; + left: -3.8em; + width: 3em; /* works for line-numbers below 1000 lines */ + letter-spacing: -1px; + border-right: 1px solid #999; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.line-numbers-rows > span { + display: block; + counter-increment: linenumber; +} + +.line-numbers-rows > span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: 0.8em; + text-align: right; +} + +div.code-toolbar { + position: relative; +} + +div.code-toolbar > .toolbar { + position: absolute; + top: 0.3em; + right: 0.2em; + transition: opacity 0.3s ease-in-out; + opacity: 0; +} + +div.code-toolbar:hover > .toolbar { + opacity: 1; +} + +/* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ +div.code-toolbar:focus-within > .toolbar { + opacity: 1; +} + +div.code-toolbar > .toolbar .toolbar-item { + display: inline-block; +} + +div.code-toolbar > .toolbar a { + cursor: pointer; +} + +div.code-toolbar > .toolbar button { + background: none; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; /* for button */ + -moz-user-select: none; + -ms-user-select: none; +} + +div.code-toolbar > .toolbar a, +div.code-toolbar > .toolbar button, +div.code-toolbar > .toolbar span { + color: #bbb; + font-size: 0.8em; + padding: 0 0.5em; + background: #f5f2f0; + background: rgba(224, 224, 224, 0.2); + box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); + border-radius: 0.5em; +} + +div.code-toolbar > .toolbar a:hover, +div.code-toolbar > .toolbar a:focus, +div.code-toolbar > .toolbar button:hover, +div.code-toolbar > .toolbar button:focus, +div.code-toolbar > .toolbar span:hover, +div.code-toolbar > .toolbar span:focus { + color: inherit; + text-decoration: none; +} diff --git a/frontend/documentation/styles/readthedocs.css b/frontend/documentation/styles/readthedocs.css new file mode 100644 index 0000000..c3e9452 --- /dev/null +++ b/frontend/documentation/styles/readthedocs.css @@ -0,0 +1,117 @@ +.navbar-default { + background: #2980b9; + border: none; +} + +.navbar-default .navbar-brand { + color: #fcfcfc; +} + +.menu { + background: #343131; + color: #fcfcfc; +} + +.menu ul.list li a { + color: #fcfcfc; +} + +.menu ul.list li.title { + background: #2980b9; + padding-bottom: 5px; +} + +.menu ul.list li:nth-child(2) { + margin-top: 0; +} + +.menu ul.list li.chapter a, +.menu ul.list li.chapter .simple { + color: #555; + text-transform: uppercase; + text-decoration: none; +} + +.menu ul.list li.chapter ul.links a { + color: #b3b3b3; + text-transform: none; + padding-left: 35px; +} + +.menu ul.list li.chapter ul.links a:hover { + background: #4e4a4a; +} + +.menu ul.list li.chapter a.active, +.menu ul.list li.chapter ul.links a.active { + color: #0099e5; +} + +.menu ul.list li.chapter ul.links { + padding-left: 0; +} + +.menu ul.list li.divider { + background: rgba(255, 255, 255, 0.07); +} + +#book-search-input input, +#book-search-input input:focus, +#book-search-input input:hover { + color: #949494; +} + +.copyright { + color: #b3b3b3; + background: #272525; +} + +.content { + background: #fcfcfc; +} + +.content a { + color: #2980b9; +} + +.content a:hover { + color: #3091d1; +} + +.content a:visited { + color: #9b59b6; +} + +.menu ul.list li:nth-last-child(2) { + background: none; +} + +code { + white-space: nowrap; + max-width: 100%; + background: #fff; + padding: 2px 5px; + color: #e74c3c; + overflow-x: auto; + border-radius: 0; +} + +pre { + white-space: pre; + margin: 0; + padding: 12px 12px; + font-size: 12px; + line-height: 1.5; + display: block; + overflow: auto; + color: #404040; + background: rgba(238, 238, 238, 0.35); +} + +.dark .content { + background: none; +} +.dark code { + background: none; + color: #e09393; +} diff --git a/frontend/documentation/styles/reset.css b/frontend/documentation/styles/reset.css new file mode 100644 index 0000000..9a153b5 --- /dev/null +++ b/frontend/documentation/styles/reset.css @@ -0,0 +1,129 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} +body { + line-height: 1; +} +ol, +ul { + list-style: none; +} +blockquote, +q { + quotes: none; +} +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/frontend/documentation/styles/stripe.css b/frontend/documentation/styles/stripe.css new file mode 100644 index 0000000..8e41582 --- /dev/null +++ b/frontend/documentation/styles/stripe.css @@ -0,0 +1,106 @@ +.navbar-default .navbar-brand { + color: #0099e5; +} + +.menu ul.list li a[data-type='chapter-link'], +.menu ul.list li.chapter .simple { + color: #939da3; + text-transform: uppercase; +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5 { + color: #292e31; + font-weight: normal; +} + +.content { + color: #4c555a; +} + +.menu ul.list li.title { + padding: 5px 0; +} + +a { + color: #0099e5; + text-decoration: none; +} +a:hover { + color: #292e31; + text-decoration: none; +} + +.menu ul.list li:nth-child(2) { + margin-top: 0; +} + +.menu ul.list li.title a, +.navbar a { + color: #0099e5; + text-decoration: none; + font-size: 16px; +} + +.menu ul.list li a.active { + color: #0099e5; +} + +code { + box-sizing: border-box; + display: inline-block; + padding: 0 5px; + background: #fafcfc; + border-radius: 4px; + color: #b93d6a; + font-size: 13px; + line-height: 20px; +} + +pre { + margin: 0; + padding: 12px 12px; + background: #272b2d; + border-radius: 5px; + font-size: 13px; + line-height: 1.5em; + font-weight: 500; +} + +.dark body { + color: #fafafa; +} +.dark .content h1, +.dark .content h2, +.dark .content h3, +.dark .content h4, +.dark .content h5 { + color: #fafafa; +} + +.dark code { + background: none; +} + +.dark .content { + color: #fafafa; +} + +.dark .menu ul.list li a[data-type='chapter-link'], +.dark .menu ul.list li.chapter .simple { + color: #fafafa; +} + +.dark .menu ul.list li.title a { + color: #fafafa; +} + +.dark .menu ul.list li a { + color: #fafafa; +} +.dark .menu ul.list li a.active { + color: #7fc9ff; +} diff --git a/frontend/documentation/styles/style.css b/frontend/documentation/styles/style.css new file mode 100644 index 0000000..09e9f1e --- /dev/null +++ b/frontend/documentation/styles/style.css @@ -0,0 +1,7 @@ +@import "./reset.css"; +@import "./bootstrap.min.css"; +@import "./bootstrap-card.css"; +@import "./prism.css"; +@import "./ionicons.min.css"; +@import "./compodoc.css"; +@import "./tablesort.css"; diff --git a/frontend/documentation/styles/tablesort.css b/frontend/documentation/styles/tablesort.css new file mode 100644 index 0000000..f715483 --- /dev/null +++ b/frontend/documentation/styles/tablesort.css @@ -0,0 +1,33 @@ +th[role=columnheader]:not(.no-sort) { + cursor: pointer; +} + +th[role=columnheader]:not(.no-sort):after { + content: ''; + float: right; + margin-top: 7px; + border-width: 0 4px 4px; + border-style: solid; + border-color: #404040 transparent; + visibility: visible; + opacity: 1; + -ms-user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +th[aria-sort=ascending]:not(.no-sort):after { + border-bottom: none; + border-width: 4px 4px 0; +} + +th[aria-sort]:not(.no-sort):after { + visibility: visible; + opacity: 0.4; +} + +th[role=columnheader]:not(.no-sort):hover:after { + visibility: visible; + opacity: 1; +} diff --git a/frontend/documentation/styles/vagrant.css b/frontend/documentation/styles/vagrant.css new file mode 100644 index 0000000..f72edb0 --- /dev/null +++ b/frontend/documentation/styles/vagrant.css @@ -0,0 +1,130 @@ +.navbar-default .navbar-brand { + background: white; + color: #8d9ba8; +} + +.menu .list { + background: #0c5593; +} + +.menu .chapter { + padding: 0 20px; +} + +.menu ul.list li a[data-type='chapter-link'], +.menu ul.list li.chapter .simple { + color: white; + text-transform: uppercase; + border-bottom: 1px solid rgba(255, 255, 255, 0.4); +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5 { + color: #292e31; + font-weight: normal; +} + +.content { + color: #4c555a; +} + +a { + color: #0094bf; + text-decoration: underline; +} +a:hover { + color: #f1362f; +} + +.menu ul.list li.title { + background: white; + padding-bottom: 5px; +} + +.menu ul.list li:nth-child(2) { + margin-top: 0; +} + +.menu ul.list li:nth-last-child(2) { + background: none; +} + +.menu ul.list li.title a { + padding: 10px 15px; +} + +.menu ul.list li.title a, +.navbar a { + color: #8d9ba8; + text-decoration: none; + font-size: 16px; + font-weight: 300; +} + +.menu ul.list li a { + color: white; + padding: 10px; + font-weight: 300; + text-decoration: none; +} +.menu ul.list li a.active { + color: white; + font-weight: bold; +} + +.copyright { + color: white; + background: #000; +} + +code { + box-sizing: border-box; + display: inline-block; + padding: 0 5px; + background: rgba(0, 148, 191, 0.1); + border-radius: 3px; + color: #0094bf; + font-size: 13px; + line-height: 20px; +} + +pre { + margin: 0; + padding: 12px 12px; + background: rgba(238, 238, 238, 0.35); + border-radius: 3px; + font-size: 13px; + line-height: 1.5em; + font-weight: 500; +} + +.dark body { + color: #fafafa; +} +.dark .content h1, +.dark .content h2, +.dark .content h3, +.dark .content h4, +.dark .content h5 { + color: #fafafa; +} + +.dark code { + background: none; +} + +.dark .content { + color: #fafafa; +} + +.dark .menu ul.list li.title a, +.dark .navbar a { + color: #8d9ba8; +} + +.dark .menu ul.list li a { + color: #fafafa; +} diff --git a/frontend/karma.conf.js b/frontend/karma.conf.js new file mode 100644 index 0000000..c48cf5a --- /dev/null +++ b/frontend/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/syncfusion-gantt'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..939cac5 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,8943 @@ +{ + "name": "syncfusion-gantt", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@adobe/css-tools": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", + "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==", + "dev": true + }, + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@angular-devkit/architect": { + "version": "0.1402.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.6.tgz", + "integrity": "sha512-qTmPBD7fBXBtlSapGLUEcJvRuL/O556zCFFpH3kSlzPNTYxi2falBjGY+4aG+078RXT1vVZtFsvRTart6VbhAg==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.6", + "rxjs": "6.6.7" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-angular": { + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.6.tgz", + "integrity": "sha512-XtaUwb3aZ8S0vl0y9bmbdFOH0KQCQ778twFH+ZfHW2BcPYtQz2Cy2rcVKXBQ850RyC0GxgMPfco6OGQndPpizg==", + "dev": true, + "requires": { + "@ampproject/remapping": "2.2.0", + "@angular-devkit/architect": "0.1402.6", + "@angular-devkit/build-webpack": "0.1402.6", + "@angular-devkit/core": "14.2.6", + "@babel/core": "7.18.10", + "@babel/generator": "7.18.12", + "@babel/helper-annotate-as-pure": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.18.10", + "@babel/plugin-transform-async-to-generator": "7.18.6", + "@babel/plugin-transform-runtime": "7.18.10", + "@babel/preset-env": "7.18.10", + "@babel/runtime": "7.18.9", + "@babel/template": "7.18.10", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "14.2.6", + "ansi-colors": "4.1.3", + "babel-loader": "8.2.5", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.9.1", + "cacache": "16.1.2", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.16", + "css-loader": "6.7.1", + "esbuild": "0.15.5", + "esbuild-wasm": "0.15.5", + "glob": "8.0.3", + "https-proxy-agent": "5.0.1", + "inquirer": "8.2.4", + "jsonc-parser": "3.1.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.3", + "less-loader": "11.0.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.0", + "mini-css-extract-plugin": "2.6.1", + "minimatch": "5.1.0", + "open": "8.4.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.2.0", + "postcss": "8.4.16", + "postcss-import": "15.0.0", + "postcss-loader": "7.0.1", + "postcss-preset-env": "7.8.0", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "5.0.0", + "rxjs": "6.6.7", + "sass": "1.54.4", + "sass-loader": "13.0.2", + "semver": "7.3.7", + "source-map-loader": "4.0.0", + "source-map-support": "0.5.21", + "stylus": "0.59.0", + "stylus-loader": "7.0.0", + "terser": "5.14.2", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.4.0", + "webpack": "5.74.0", + "webpack-dev-middleware": "5.3.3", + "webpack-dev-server": "4.11.0", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.1.0" + }, + "dependencies": { + "esbuild": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", + "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", + "dev": true, + "optional": true, + "requires": { + "@esbuild/linux-loong64": "0.15.5", + "esbuild-android-64": "0.15.5", + "esbuild-android-arm64": "0.15.5", + "esbuild-darwin-64": "0.15.5", + "esbuild-darwin-arm64": "0.15.5", + "esbuild-freebsd-64": "0.15.5", + "esbuild-freebsd-arm64": "0.15.5", + "esbuild-linux-32": "0.15.5", + "esbuild-linux-64": "0.15.5", + "esbuild-linux-arm": "0.15.5", + "esbuild-linux-arm64": "0.15.5", + "esbuild-linux-mips64le": "0.15.5", + "esbuild-linux-ppc64le": "0.15.5", + "esbuild-linux-riscv64": "0.15.5", + "esbuild-linux-s390x": "0.15.5", + "esbuild-netbsd-64": "0.15.5", + "esbuild-openbsd-64": "0.15.5", + "esbuild-sunos-64": "0.15.5", + "esbuild-windows-32": "0.15.5", + "esbuild-windows-64": "0.15.5", + "esbuild-windows-arm64": "0.15.5" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1402.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.6.tgz", + "integrity": "sha512-gKsDxQ9pze0N1qDM0kdM4FfwpkjSOb0bQzqjZi7wTfrh/WGIQMCjG9CRwWT+Z289ZKaTpcQDPsDtOSo5QpKNDg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1402.6", + "rxjs": "6.6.7" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.6.tgz", + "integrity": "sha512-qtRSdRm/h7C3ya04PJTDgQXV6mM8Y4RakANX1GTSXetCf9AVSxg74NJX76DWUgiHT4JiPYnJgJU6Hr/L0H6JOQ==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.6.tgz", + "integrity": "sha512-mSFtc4M49mWrYsgJx/P6bA6SzXb8SeZqmppKRMoEQxiXI1bwFdGLNWzAmzEsGvS96h/nPIaOfcX5cKJSp++4FA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.6", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular/animations": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.7.tgz", + "integrity": "sha512-4vI22Pa56FkE7ydxZwEd7RHwIjfyE5MnbgB2fWEQ3obnul8GnQT7OHWiPgzV57SDqOCWZyWdLm9xuOnZVdypxQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/cdk": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.7.tgz", + "integrity": "sha512-/tEsYaUbDSnfEmKVvAMramIptmhI67O+9STjOV0i+74XR2NospeK0fkbywIANu1n3w6AHGMotvRWJrjmbCElFg==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + } + } + }, + "@angular/cli": { + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.6.tgz", + "integrity": "sha512-8tXpe3htfZY8a+Am4nluVcztMFD5wnx4edGEDkkOiqkrUzbCtX4AyEBjUFldsYKZXbRFU46xEfM6jBnLOjxDZQ==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1402.6", + "@angular-devkit/core": "14.2.6", + "@angular-devkit/schematics": "14.2.6", + "@schematics/angular": "14.2.6", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "debug": "4.3.4", + "ini": "3.0.0", + "inquirer": "8.2.4", + "jsonc-parser": "3.1.0", + "npm-package-arg": "9.1.0", + "npm-pick-manifest": "7.0.1", + "open": "8.4.0", + "ora": "5.4.1", + "pacote": "13.6.2", + "resolve": "1.22.1", + "semver": "7.3.7", + "symbol-observable": "4.0.0", + "uuid": "8.3.2", + "yargs": "17.5.1" + }, + "dependencies": { + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } + } + }, + "@angular/common": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.7.tgz", + "integrity": "sha512-vfydeB8urLzhRnZev/1Zm87k9jWlNfhSTk09yUnqvzcORfd3xOkcei0qc1xdIHCTEMyTREC+umsYHDmlEpZsVw==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/compiler": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.7.tgz", + "integrity": "sha512-2I8hZVM/tfUi06B6VuWgf5hWu0tgNlMCEZ1Ed4NEDkqJj+gs2l6kNVUf+FxI6hHMZTFkJPXOPx3pI5Hea5CxEQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/compiler-cli": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.7.tgz", + "integrity": "sha512-q6AQo91jc+Pd1PnWWxJq07IXr1yipq0MW3Uok5akEctbTsw4AT5y9wfPj6g/o/CkAz0kbL55QrmtyIWN5LMGdg==", + "dev": true, + "requires": { + "@babel/core": "^7.17.2", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.26.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + } + }, + "@angular/core": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.7.tgz", + "integrity": "sha512-9u2eeKS90YPh2b0pK5LKFSxKfLIzHnzkIKQFh6bEPGj43Fl2v8CwiVJu1CAKo1Or4qBY8zspSowM6S1kgGwfeg==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/forms": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.7.tgz", + "integrity": "sha512-tEhCIE4mzlD2S0bYE+4e4RG7lOIeRZjjcKw0nlpwE0AneM03gzFlQvbHLDi3qeu8Kc7XkF6C3FJQI/Q7nMiARg==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/material": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.7.tgz", + "integrity": "sha512-WXHh8pEStpgkXZJmYOg2cI8BSHkV82ET4XTJCNPdveumaCn1UYnaNzsXD13kw5z+zmy8CufhFEzdXTrv/yt7KQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/platform-browser": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.7.tgz", + "integrity": "sha512-Hcn64kppozH5WlX/rkZoCGZyFFkLs0a4+rWen6uaZVxDWbas/PqR/a2LQerdS0Rn65/x+0l0w23u8TN0PnQPVA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.7.tgz", + "integrity": "sha512-P3c4fXH0+RDlL9uzuU5Xea5OQ3ozmoWawFtf4faH7fD3deHlNmrwROBXAlHkYRjbGcAiuxpEx6NjBGdmYWPaKg==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/router": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.7.tgz", + "integrity": "sha512-ZWdXXv0sCXVxWdHmCPDAy/TFT5v9JMlPp18Mmi9J8X3KeL/h6YVTWeJ0YMAOchv8D8UL02HiijnVyUp8rv5Qvw==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "dev": true + }, + "@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "dependencies": { + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + } + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "dependencies": { + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + } + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "dependencies": { + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + } + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "dependencies": { + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + } + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", + "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true + }, + "@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dev": true, + "requires": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dev": true, + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "dev": true + }, + "@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "dev": true + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", + "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", + "dev": true, + "optional": true + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "@ngtools/webpack": { + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.6.tgz", + "integrity": "sha512-HdfoHLGPzyP135BOlvTQcpeWisVfiH0u40YNTBVK3QAsrLnY17e2QG5BWBOrVYipRu1975cZtTC9rPjcCY8aLQ==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + } + }, + "@npmcli/git": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", + "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^3.0.0", + "lru-cache": "^7.4.4", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@npmcli/node-gyp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz", + "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz", + "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==", + "dev": true, + "requires": { + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", + "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3", + "which": "^2.0.2" + } + }, + "@schematics/angular": { + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.6.tgz", + "integrity": "sha512-oeyMAQr3Q9nvAX+5FRgXcTMX9lqqenElBmAuwfqqdB0qD1jmkJ8TpWRuvYVA/931njpIwhfyLrzmzeNnJb23Sg==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.6", + "@angular-devkit/schematics": "14.2.6", + "jsonc-parser": "3.1.0" + } + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "@syncfusion/ej2-angular-base": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-angular-base/-/ej2-angular-base-20.3.1.tgz", + "integrity": "sha512-g5qyk1R4lobmLIVMi3xryHNIbm+1Mw9NejAIaILfZWl6tDpM/GyqLrTorin+ulE20HQ0yrDnXDwsG+/uq1eYRA==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-icons": "~20.3.47", + "core-js": "^3.4.8", + "reflect-metadata": "^0.1.9", + "rxjs": "^6.5.4", + "rxjs-compat": "^6.5.4", + "zone.js": "^0.10.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + } + }, + "@syncfusion/ej2-angular-gantt": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-angular-hotfix/@syncfusion/ej2-angular-gantt/-/ej2-angular-gantt-20.3.49.tgz", + "integrity": "sha512-LjLXBAa53SW9NYwl9jQPlPbkf4Da1E/eUg6v7JcjwvocyJCkBto0m7WnsLoP8fwKVXck+BCAqsfk5H72MDhBVA==", + "requires": { + "@syncfusion/ej2-angular-base": "~20.3.50", + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-gantt": "20.3.50", + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + } + } + }, + "@syncfusion/ej2-base": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-base/-/ej2-base-20.3.49.tgz", + "integrity": "sha512-EE7DhtDxAg5vWQE/I4N6Oh2B36zxzlWIPtDcJHIkZRfJ2En3/wfFVLyvS2xMDVF4KMYEqF8ZmhAKQpXl7p0lUA==", + "requires": { + "@syncfusion/ej2-icons": "~20.3.47" + } + }, + "@syncfusion/ej2-buttons": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-buttons/-/ej2-buttons-20.3.49.tgz", + "integrity": "sha512-Bp0mQFQuHJuAYntMmnCHhKI6zLGVegO8OjOwEd1LZ+8D+er0BJx/Hkj5H+QBBeSww3xbizCqMGTfs4G0/nmt5Q==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50" + } + }, + "@syncfusion/ej2-calendars": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-calendars/-/ej2-calendars-20.3.49.tgz", + "integrity": "sha512-Z2zS5NoplHbrsF2xLIkWSZFji/kj55Lia2JO9eHjsEJXuwp5fusUooFoaKV1eaXf6+tRdWIIFQu/7LSfS1LoFQ==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50", + "@syncfusion/ej2-inputs": "~20.3.50", + "@syncfusion/ej2-lists": "~20.3.50", + "@syncfusion/ej2-popups": "~20.3.50" + } + }, + "@syncfusion/ej2-compression": { + "version": "20.3.47", + "resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-compression/-/ej2-compression-20.3.1.tgz", + "integrity": "sha512-mvvIoc4oiqpFzlAXCpiFuPhNxp9yVPcUfUBLCq4HZ6ck2grS/xgoFxtWj4BnHp4CMJqCZjk2ZkX+eilybI2/sQ==", + "requires": { + "@syncfusion/ej2-file-utils": "~20.3.47" + } + }, + "@syncfusion/ej2-data": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-data/-/ej2-data-0.15.3.tgz", + "integrity": "sha512-p83r8rcZnX5iT5qlYCT9hPkojR2DdCuZeQ27N2IYdt/p4MyuAUnIyNQpTmG6yREfh27wdQDKY7EZMYyPHYHthQ==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50" + } + }, + "@syncfusion/ej2-dropdowns": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-20.3.49.tgz", + "integrity": "sha512-dOhP6Z3aom0OkJZAcPNOJTp0NevQOgv1W1JL22HLaSh9xJihakvSMItKBbknFGQx+RJYiokK4uPTZ8msK980+w==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-data": "~20.3.50", + "@syncfusion/ej2-inputs": "~20.3.50", + "@syncfusion/ej2-lists": "~20.3.50", + "@syncfusion/ej2-navigations": "~20.3.50", + "@syncfusion/ej2-popups": "~20.3.50" + } + }, + "@syncfusion/ej2-excel-export": { + "version": "20.3.47", + "resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-excel-export/-/ej2-excel-export-20.3.1.tgz", + "integrity": "sha512-eignkZyqMTrNeXxnVqKFEe9gQzqWt4ZTF4TjChfBywEMliPuf/G/14xH9489LjWfVZABD4N1K7Nf6Cj+oVTYaA==", + "requires": { + "@syncfusion/ej2-base": "~20.3.47", + "@syncfusion/ej2-compression": "~20.3.47" + } + }, + "@syncfusion/ej2-file-utils": { + "version": "20.3.47", + "resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-file-utils/-/ej2-file-utils-20.3.1.tgz", + "integrity": "sha512-qCXt1kH/k8CJffWrPWyFLV8cPN4BWinyGDETkcUERYK21GAuZ7w2duWwr0brd2tUqEiJFjzOblsBAcSYswd3Sw==" + }, + "@syncfusion/ej2-filemanager": { + "version": "20.3.49", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-filemanager/-/ej2-filemanager-20.3.47.tgz", + "integrity": "sha512-u1hhmRvH0BI9Ay3zjFmvZB4vwz+2hZNBpWR0Q0t2+XVoqns0oYzKC86j3StmfxzC9sLbKGlqhTVwqxgrz2spGA==", + "requires": { + "@syncfusion/ej2-base": "~20.3.49", + "@syncfusion/ej2-buttons": "~20.3.49", + "@syncfusion/ej2-data": "~20.3.47", + "@syncfusion/ej2-grids": "~20.3.49", + "@syncfusion/ej2-inputs": "~20.3.49", + "@syncfusion/ej2-layouts": "~20.3.48", + "@syncfusion/ej2-lists": "~20.3.47", + "@syncfusion/ej2-navigations": "~20.3.49", + "@syncfusion/ej2-popups": "~20.3.49", + "@syncfusion/ej2-splitbuttons": "~20.3.47" + } + }, + "@syncfusion/ej2-gantt": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-gantt/-/ej2-gantt-20.3.49.tgz", + "integrity": "sha512-vgFZXyGQch31nJGDvAAnaXl50XBwr1ryX8mdnEhPJU5Y4dlCk6UMXd3bREhCE0Rhl85RfoLijbLoZXA/omIjNQ==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50", + "@syncfusion/ej2-calendars": "~20.3.50", + "@syncfusion/ej2-data": "~20.3.50", + "@syncfusion/ej2-dropdowns": "~20.3.50", + "@syncfusion/ej2-grids": "~20.3.50", + "@syncfusion/ej2-inputs": "~20.3.50", + "@syncfusion/ej2-layouts": "~20.3.48", + "@syncfusion/ej2-lists": "~20.3.50", + "@syncfusion/ej2-navigations": "~20.3.50", + "@syncfusion/ej2-popups": "~20.3.50", + "@syncfusion/ej2-richtexteditor": "~20.3.50", + "@syncfusion/ej2-treegrid": "~20.3.50" + } + }, + "@syncfusion/ej2-grids": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-grids/-/ej2-grids-20.3.49.tgz", + "integrity": "sha512-q4oY6HMxRrynwtKtSpmDVbJCNe3v56LUnR/4AgTgZxmSFWwYKlxi9nMM0ZU/K0J2lL3jYvFs6SjhZjnxIcFBxQ==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50", + "@syncfusion/ej2-calendars": "~20.3.50", + "@syncfusion/ej2-compression": "~20.3.47", + "@syncfusion/ej2-data": "~20.3.50", + "@syncfusion/ej2-dropdowns": "~20.3.50", + "@syncfusion/ej2-excel-export": "~20.3.47", + "@syncfusion/ej2-file-utils": "~20.3.47", + "@syncfusion/ej2-inputs": "~20.3.50", + "@syncfusion/ej2-lists": "~20.3.50", + "@syncfusion/ej2-navigations": "~20.3.50", + "@syncfusion/ej2-notifications": "~20.3.47", + "@syncfusion/ej2-pdf-export": "~20.3.47", + "@syncfusion/ej2-popups": "~20.3.50", + "@syncfusion/ej2-splitbuttons": "~20.3.47" + } + }, + "@syncfusion/ej2-icons": { + "version": "20.3.47", + "resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-icons/-/ej2-icons-1.0.0.tgz", + "integrity": "sha512-O61Nw/LuXYQtY7wcaB+Co5oGkSXPox4XV/Nli+tUb4oAC2TPf+txT+CVHeRD2BZkWlwP1A8ZmvZ2vRIBgvVuUA==" + }, + "@syncfusion/ej2-inputs": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-inputs/-/ej2-inputs-20.3.49.tgz", + "integrity": "sha512-oPYNOhdJfOedbTF2vDkJXHhtwDmW58Yx/VtQDEGGKZunjRGx7F1+vfF2d1YyvJ+CKQwjyzg1N2YbVnVFL39iag==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50", + "@syncfusion/ej2-popups": "~20.3.50", + "@syncfusion/ej2-splitbuttons": "~20.3.47" + } + }, + "@syncfusion/ej2-layouts": { + "version": "20.3.48", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-layouts/-/ej2-layouts-20.3.1.tgz", + "integrity": "sha512-HK+muKb9n9ACPM15zGoClZs7GHHUsl9GuNCBdplQ7pOBynHBPTwXqTEVydnrIWMRi9UB+mYrkiZ3dqpl6LJAnQ==", + "requires": { + "@syncfusion/ej2-base": "~20.3.48" + } + }, + "@syncfusion/ej2-lists": { + "version": "20.3.51", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-lists/-/ej2-lists-20.3.47.tgz", + "integrity": "sha512-YfsxlVZSwlmJPLDKEg2X0IdRZJV+4LKeWsENgUchVKQoZDSclRcK6JHte/t81/Dt0s5Wo/ft1/7dXapc/hDyDQ==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50", + "@syncfusion/ej2-data": "~20.3.50" + } + }, + "@syncfusion/ej2-material-theme": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-material-theme/-/ej2-material-theme-20.3.49.tgz", + "integrity": "sha512-1wy2Nvivuz32+e6YB58G2qPUzugc/8Z8FDp/pIxr0ep2474BcC4eiEIRsIAqoVFBCViHNi5rPe09AHBQGsh57Q==" + }, + "@syncfusion/ej2-navigations": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-navigations/-/ej2-navigations-20.3.49.tgz", + "integrity": "sha512-KHL1MVbJt9hnHQl0KTaLfx9sPzMbX61mw3s0VmdVkaA7XWShAcyVHUyuSEWyli0ekNy6Q+CG9+stpoYfRI3l3g==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50", + "@syncfusion/ej2-data": "~20.3.50", + "@syncfusion/ej2-inputs": "~20.3.50", + "@syncfusion/ej2-lists": "~20.3.50", + "@syncfusion/ej2-popups": "~20.3.50" + } + }, + "@syncfusion/ej2-notifications": { + "version": "20.3.47", + "resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-notifications/-/ej2-notifications-19.16.0.tgz", + "integrity": "sha512-p/TyFLo8r6pk7cryOT9DYVQSpUMg4JpIhHfRdfflssclRuaoJ2esaYNSycbJvbYA7e8ejaQoY/la8nP0CjM67Q==", + "requires": { + "@syncfusion/ej2-base": "~20.3.47", + "@syncfusion/ej2-buttons": "~20.3.47", + "@syncfusion/ej2-popups": "~20.3.47" + } + }, + "@syncfusion/ej2-pdf-export": { + "version": "20.3.47", + "resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-pdf-export/-/ej2-pdf-export-20.3.1.tgz", + "integrity": "sha512-/orUaHHGQnCMTfKr0gHNjn7ddzNS/+C1yt3U2J3UkNpKhS6ZCc0YuS6+M9ISDPzbAEKL4GD4PTOLO3dfFGcLmQ==", + "requires": { + "@syncfusion/ej2-compression": "~20.3.47" + } + }, + "@syncfusion/ej2-popups": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-popups/-/ej2-popups-20.3.49.tgz", + "integrity": "sha512-fZf505Segd9IJXj9VLgCFyPX8p0PuQ+DCroI89GPbkNgsbRYiJ9kyDc4aZu0HKLKSl6zglttar0s1h8q2miuZQ==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50" + } + }, + "@syncfusion/ej2-richtexteditor": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-20.3.47.tgz", + "integrity": "sha512-sR1PTDb2civRyF9GrPTyTq1kw7/pwF1za5yGXl5KhpHJAlHzby7GYFaFihYOKnAIA8I9TE8iq5rnMCxL+TqrVg==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-buttons": "~20.3.50", + "@syncfusion/ej2-filemanager": "~20.3.49", + "@syncfusion/ej2-inputs": "~20.3.50", + "@syncfusion/ej2-navigations": "~20.3.50", + "@syncfusion/ej2-popups": "~20.3.50", + "@syncfusion/ej2-splitbuttons": "~20.3.47" + } + }, + "@syncfusion/ej2-splitbuttons": { + "version": "20.3.47", + "resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-splitbuttons/-/ej2-splitbuttons-19.12.0.tgz", + "integrity": "sha512-NGJ+syOLB85A7O0dMz23RD0p1tNYKfaXLRPZihtKZCiX8w3/vrp7FBfx0jWjIHvujfPHhMySBNYP7oWzluIx7Q==", + "requires": { + "@syncfusion/ej2-base": "~20.3.47", + "@syncfusion/ej2-popups": "~20.3.47" + } + }, + "@syncfusion/ej2-treegrid": { + "version": "20.3.50", + "resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-treegrid/-/ej2-treegrid-20.3.49.tgz", + "integrity": "sha512-48n9ELayHVf9o6D/gd4RUFkaaZLi8jbQw9ayr7xU+9E5iTtIzjzM+MagsBcmi3g6cGX9ia+ZA1jAMgVAbZkuSA==", + "requires": { + "@syncfusion/ej2-base": "~20.3.50", + "@syncfusion/ej2-data": "~20.3.50", + "@syncfusion/ej2-grids": "~20.3.50", + "@syncfusion/ej2-popups": "~20.3.50" + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.34", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", + "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.0.3.tgz", + "integrity": "sha512-Opp1LvvEuZdk8fSSvchK2mZwhVrsNT0JgJE9Di6MjnaIpmEXM8TLCPPrVtNTYh8+5MPdY8j9bAHMu2SSfwpZJg==", + "dev": true + }, + "@types/jquery": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", + "dev": true, + "requires": { + "@types/sizzle": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/node": { + "version": "18.16.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.2.tgz", + "integrity": "sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "requires": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "cacache": { + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz", + "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001481", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", + "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz", + "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "requires": { + "is-what": "^3.14.1" + } + }, + "copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "requires": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "core-js": { + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", + "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==" + }, + "core-js-compat": { + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", + "dev": true, + "requires": { + "browserslist": "^4.21.5" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "critters": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "css-select": "^4.2.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + } + }, + "css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "dev": true + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssdb": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.5.4.tgz", + "integrity": "sha512-fGD+J6Jlq+aurfE1VDXlLS4Pt0VtNlu2+YgfGOdMxRyl/HQ9bDiHTwSck1Yz8A97Dt/82izSK6Bp/4nVqacOsg==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.376", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.376.tgz", + "integrity": "sha512-TFeOKd98TpJzRHkr4Aorn16QkMnuCQuGAE6IZ0wYF+qkbSfMPqjplvRppR02tMUpVxZz8nyBNvVm9lIZsqrbPQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "engine.io": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", + "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "esbuild-android-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", + "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", + "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", + "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", + "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", + "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", + "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", + "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", + "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", + "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", + "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", + "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", + "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", + "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", + "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", + "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", + "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", + "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", + "dev": true, + "optional": true + }, + "esbuild-wasm": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz", + "integrity": "sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A==", + "dev": true + }, + "esbuild-windows-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", + "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", + "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", + "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "requires": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "hosted-git-info": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", + "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "dev": true, + "requires": { + "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "ignore-walk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true + }, + "immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz", + "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==", + "dev": true + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine-core": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.3.0.tgz", + "integrity": "sha512-qybtBUesniQdW6n+QIHMng2vDOHscIC/dEXjW+JzO9+LoAZMb03RCUC5xFOv/btSKPm1xL42fn+RjlU4oB42Lg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz", + "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true + }, + "karma": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", + "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "dev": true, + "requires": { + "which": "^1.2.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "karma-coverage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "requires": { + "jasmine-core": "^4.1.0" + } + }, + "karma-jasmine-html-reporter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", + "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true + }, + "less": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "less-loader": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.0.0.tgz", + "integrity": "sha512-9+LOWWjuoectIEx3zrfN83NAGxSUB5pWEabbbidVQVgZhN+wN68pOvuyirVlH1IK4VT1f3TmlyvAnCXh8O5KEw==", + "dev": true, + "requires": { + "klona": "^2.0.4" + } + }, + "license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "requires": { + "webpack-sources": "^3.0.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memfs": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", + "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "dev": true, + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true + }, + "needle": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "optional": true, + "requires": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "node-gyp": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", + "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "dev": true, + "optional": true + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "requires": { + "abbrev": "^1.0.0" + } + }, + "normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "dev": true, + "requires": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz", + "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", + "dev": true, + "requires": { + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" + } + }, + "npm-packlist": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", + "dev": true, + "requires": { + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^2.0.0" + } + }, + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true + } + } + }, + "npm-pick-manifest": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz", + "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==", + "dev": true, + "requires": { + "npm-install-checks": "^5.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" + } + }, + "npm-registry-fetch": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", + "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", + "dev": true, + "requires": { + "make-fetch-happen": "^10.0.6", + "minipass": "^3.1.6", + "minipass-fetch": "^2.0.3", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "requires": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pacote": { + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", + "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", + "dev": true, + "requires": { + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/run-script": "^4.1.0", + "cacache": "^16.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.6", + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^5.1.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "requires": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "piscina": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", + "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", + "dev": true, + "requires": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0", + "nice-napi": "^1.0.2" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true + }, + "postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "dev": true + }, + "postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-import": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.0.tgz", + "integrity": "sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true + }, + "postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-loader": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", + "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.7" + } + }, + "postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true + }, + "postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "dev": true + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dev": true, + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "dev": true + }, + "postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true + }, + "postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-preset-env": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz", + "integrity": "sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA==", + "dev": true, + "requires": { + "@csstools/postcss-cascade-layers": "^1.0.5", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.8", + "browserslist": "^4.21.3", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.0.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.8", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.10", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true + }, + "postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "dependencies": { + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + } + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + } + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "read-package-json": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", + "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", + "dev": true, + "requires": { + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true + } + } + }, + "read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "rxjs-compat": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.6.7.tgz", + "integrity": "sha512-szN4fK+TqBPOFBcBcsR0g2cmTTUF/vaFEOZNuSdfU8/pGFnNmmn2u8SystYXG1QMrjOPBc6XTKHMVfENDf6hHw==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.54.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", + "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", + "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socket.io": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", + "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.4.1", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.1" + } + }, + "socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "requires": { + "ws": "~8.11.0" + }, + "dependencies": { + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", + "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.0.tgz", + "integrity": "sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "stylus": { + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", + "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==", + "dev": true, + "requires": { + "@adobe/css-tools": "^4.0.1", + "debug": "^4.3.2", + "glob": "^7.1.6", + "sax": "~1.2.4", + "source-map": "^0.7.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "stylus-loader": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-7.0.0.tgz", + "integrity": "sha512-WTbtLrNfOfLgzTaR9Lj/BPhQroKk/LC1hfTXSUbrxmxgfUo3Y3LpmKRVA2R1XbjvTAvOfaian9vOyfv1z99E+A==", + "dev": true, + "requires": { + "fast-glob": "^3.2.11", + "klona": "^2.0.5", + "normalize-path": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "terser": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "requires": { + "builtins": "^5.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webfontloader": { + "version": "1.6.28", + "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz", + "integrity": "sha512-Egb0oFEga6f+nSgasH3E0M405Pzn6y3/9tOVanv/DLfa1YBIgcv90L18YyWnvXkRbIM17v5Kv6IT2N6g1x5tvQ==" + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "requires": { + "typed-assert": "^1.0.8" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "zone.js": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz", + "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==", + "requires": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..c52ebd2 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,46 @@ +{ + "name": "syncfusion-gantt", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "compdoc": "npx compodoc -p tsconfig.app.json -s -w -r 9090" + }, + "private": true, + "dependencies": { + "@angular/animations": "^14.2.0", + "@angular/cdk": "^14.2.0", + "@angular/common": "^14.2.0", + "@angular/compiler": "^14.2.0", + "@angular/core": "^14.2.0", + "@angular/forms": "^14.2.0", + "@angular/material": "^14.2.0", + "@angular/platform-browser": "^14.2.0", + "@angular/platform-browser-dynamic": "^14.2.0", + "@angular/router": "^14.2.0", + "@syncfusion/ej2-angular-gantt": "^20.3.50", + "@syncfusion/ej2-material-theme": "~20.3.50", + "jquery": "^3.6.1", + "rxjs": "~7.5.0", + "tslib": "^2.3.0", + "webfontloader": "^1.6.28", + "zone.js": "~0.11.4" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^14.2.5", + "@angular/cli": "~14.2.5", + "@angular/compiler-cli": "^14.2.0", + "@types/jasmine": "~4.0.0", + "@types/jquery": "^3.5.14", + "jasmine-core": "~4.3.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.0.0", + "typescript": "~4.7.2" + } +} diff --git a/frontend/src/app/app-routing.module.ts b/frontend/src/app/app-routing.module.ts new file mode 100644 index 0000000..6b4f677 --- /dev/null +++ b/frontend/src/app/app-routing.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import {BrowserAnimationsModule} from '@angular/platform-browser/animations' +const routes: Routes = []; + +@NgModule({ + imports: [ + BrowserAnimationsModule, + RouterModule.forRoot(routes) + + ], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/frontend/src/app/app.component.css b/frontend/src/app/app.component.css new file mode 100644 index 0000000..d0d3601 --- /dev/null +++ b/frontend/src/app/app.component.css @@ -0,0 +1,6 @@ +#showSpin{ + width: 100%; + height: 100%; + opacity: 0.9; + filter: alpha(opacity = 90); +} diff --git a/frontend/src/app/app.component.html b/frontend/src/app/app.component.html new file mode 100644 index 0000000..e70c874 --- /dev/null +++ b/frontend/src/app/app.component.html @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + diff --git a/frontend/src/app/app.component.spec.ts b/frontend/src/app/app.component.spec.ts new file mode 100644 index 0000000..8073d0f --- /dev/null +++ b/frontend/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'syncfusion-gantt'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('syncfusion-gantt'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('.content span')?.textContent).toContain('syncfusion-gantt app is running!'); + }); +}); diff --git a/frontend/src/app/app.component.ts b/frontend/src/app/app.component.ts new file mode 100644 index 0000000..a211689 --- /dev/null +++ b/frontend/src/app/app.component.ts @@ -0,0 +1,25 @@ +import { Component, ViewEncapsulation, OnInit, ViewChild } from '@angular/core'; +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'], + encapsulation: ViewEncapsulation.None + + +}) + + +export class AppComponent { + + constructor() {} + + public ngOnInit(): void { + + } + +}; + + + + + diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts new file mode 100644 index 0000000..7333c8f --- /dev/null +++ b/frontend/src/app/app.module.ts @@ -0,0 +1,84 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { MatButtonModule } from '@angular/material/button'; +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { GanttModule, EditService, ToolbarService, SelectionService } from '@syncfusion/ej2-angular-gantt'; +import {MatPaginatorModule} from '@angular/material/paginator'; +import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; +import { VirtualScrollService } from '@syncfusion/ej2-angular-gantt'; +import { SortService } from '@syncfusion/ej2-angular-gantt'; +import { FilterService } from '@syncfusion/ej2-angular-gantt'; +import {MatFormFieldModule} from '@angular/material/form-field'; +import {MatSelectModule} from '@angular/material/select'; +import { NttGanttComponent } from '../ntt-gantt/ntt-gantt.component'; +import {MatDatepickerModule} from '@angular/material/datepicker'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms' +import { MatNativeDateModule } from '@angular/material/core'; +import {HttpClientModule} from '@angular/common/http'; +import { StateDialogComponent } from './state-dialog/state-dialog.component' +import { MatDialogModule } from '@angular/material/dialog'; +import {MatProgressBarModule} from '@angular/material/progress-bar'; +import {MatRadioModule} from '@angular/material/radio'; +import {MatSnackBarModule} from '@angular/material/snack-bar'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import { ImplementerDialogComponent } from './implementer-dialog/implementer-dialog.component'; +import {MatExpansionModule} from '@angular/material/expansion'; +import {MatInputModule} from '@angular/material/input'; +import {MatCheckboxModule} from '@angular/material/checkbox'; +import { FilterComponentComponent } from './filter-component/filter-component.component'; +import {MatAutocompleteModule} from '@angular/material/autocomplete'; +import { MultiselectAutocompleteComponent } from './multiselect-autocomplete/multiselect-autocomplete.component'; +import {MatChipsModule} from '@angular/material/chips'; +import {MatIconModule} from '@angular/material/icon'; +import { FilterDialogComponent } from './filter-dialog/filter-dialog.component'; +import {ScrollingModule} from '@angular/cdk/scrolling'; +@NgModule({ + declarations: [ + AppComponent, + NttGanttComponent, + StateDialogComponent, + ImplementerDialogComponent, + FilterComponentComponent, + MultiselectAutocompleteComponent, + FilterDialogComponent + ], + imports: [ + BrowserModule, + AppRoutingModule, + GanttModule, + MatButtonModule, + MatPaginatorModule, + MatProgressSpinnerModule, + MatFormFieldModule, + MatSelectModule, + MatDatepickerModule, + ReactiveFormsModule, + FormsModule, + MatNativeDateModule, + HttpClientModule, + MatDialogModule, + MatProgressBarModule, + MatRadioModule, + MatSnackBarModule, + MatSlideToggleModule, + MatExpansionModule, + MatInputModule, + MatCheckboxModule, + MatAutocompleteModule, + MatChipsModule, + MatIconModule, + ScrollingModule + ], + + + providers: [ToolbarService, + EditService, + SelectionService, + VirtualScrollService, + SortService, + FilterService + ], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/frontend/src/app/data.service.spec.ts b/frontend/src/app/data.service.spec.ts new file mode 100644 index 0000000..38e8d9e --- /dev/null +++ b/frontend/src/app/data.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { DataService } from './data.service'; + +describe('DataService', () => { + let service: DataService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(DataService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/data.service.ts b/frontend/src/app/data.service.ts new file mode 100644 index 0000000..088cf50 --- /dev/null +++ b/frontend/src/app/data.service.ts @@ -0,0 +1,359 @@ +import { JsonPipe } from '@angular/common'; +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { ResourceFields } from '@syncfusion/ej2-angular-gantt'; + + +@Injectable({ + providedIn: 'root' +}) + + +/** + *The DataService manages the communication between Frontend and Backend, fetches Data from the Backend and maps it to the Frontend Data Structure. Additionally it updates data on the Backend. + * + */ +export class DataService { + private states: any []; //Array of statuses and possible statuses, which is queried once at the beginning by backend and stored in dataservice + private supportGroups: any []; + private contracts: any []; + private paketTypes: any []; + private totalSize: number = null; + /** + * This constructor builds the dataService and fetches the states from the backend + * @param http + */ + constructor(private http: HttpClient) { + this.fetchStates().then((res: any [])=>{ + this.states = res; + }); + this.fetchSupportGroups().then((res: any [])=>{ + this.supportGroups = res; + }); + this.fetchContracts().then((res: any [])=>{ + this.contracts = res; + }); + this.fetchPaketTypes().then((res: any [])=>{ + this.paketTypes = res; + // console.log(res); + }); + } + +/** + * + * @returns an array of states and possible states per state + */ + public getStates():any[]{ + return this.states; + } + + public getSupportGroups():any[]{ + return this.supportGroups; + } + + public getContracts():any[]{ + return this.contracts; + } + + public getPaketTypes():any[]{ + return this.paketTypes; + } + + public getTotalSize():number{ + return this.totalSize; + } + + /** + * The function fetchStates fetches an array from the possible statuses per state + * @returns promise for the fetched Status Array + */ + public async fetchStates(){ + const promise = new Promise(resolve=>{ + let res : any[] = []; + this.http.get('http://localhost:8080/api/getStates') + .subscribe((response: any)=>{ + response.forEach(state => { + res.push(state) + }); + resolve(res); + }) + }) + return promise; + } + + public async fetchSupportGroups(){ + const promise = new Promise(resolve=>{ + let res : any[] = []; + this.http.get('http://localhost:8080/api/getSupportGroups') + .subscribe((response: any)=>{ + response.forEach(supportGroup => { + res.push(supportGroup) + }); + resolve(res); + }) + }) + return promise; + } + + public async fetchContracts(){ + const promise = new Promise(resolve=>{ + let res : any[] = []; + this.http.get('http://localhost:8080/api/getContracts') + .subscribe((response: any)=>{ + response.forEach(contract => { + res.push(contract) + }); + resolve(res); + }) + }) + return promise; + } + + public async fetchPaketTypes(){ + const promise = new Promise(resolve=>{ + let res : any[] = []; + this.http.get('http://localhost:8080/api/getPackageTypes') + .subscribe((response: any)=>{ + response.forEach(paketType => { + res.push(paketType) + }); + resolve(res); + }) + }) + return promise; + } + +/** + * The function updateDatePerChange sends the new date to the backend if the date was moved + * @param change the Change (the Resource) from which the date should be changed + */ + public updateDatePerChange(change: any){ + //console.log(change); + let serializableResource = { resourceId: change.resourceId, d2: change.tasks[1].StartDate, changeNr: change.changeNr, state: change.state}; + let strigifiedResource = JSON.stringify(serializableResource); + let resJson = JSON.parse(strigifiedResource) as typeof strigifiedResource; + // console.log(resJson); + this.http.post('http://localhost:8080/api/updateChange', resJson).toPromise().then((value)=>{ + console.log(value); + }); + + } + +/** + * The function updateStatePerChange performs a status transition on the backend + * @param change The Change for which the status transition is to be performed + * @returns a Promise + */ + public async updateStatePerChange(change: any){ + const promise = new Promise(resolve=>{ + let obj = {changeNr : change.changeNr, currentState : change.currentState, nextState : change.nextState}; + let stringyfiedData = JSON.stringify(obj); + let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData; + // console.log(dataJson); + this.http.post('http://localhost:8080/api/updateState', dataJson).subscribe((response:any)=>{ + resolve(response); + },(error:any)=>{ + console.log(error); + resolve(error); + }); + }) + + return promise; + } + + public async updateImplementerPerChange(change: any){ + const promise = new Promise(resolve=>{ + // console.log(change); + let obj = {pkgId : change.resourceId, loginId : change.loginId}; + let stringyfiedData = JSON.stringify(obj); + let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData; + // console.log(dataJson); + this.http.post('http://localhost:8080/api/updateImplementer', dataJson).subscribe((response:any)=>{ + resolve(response); + },(error:any)=>{ + console.log(error); + resolve(error); + }); + }) + + return promise; + } + + + + public async fetchImplementers(change: any){ + const promise = new Promise(resolve=>{ + let obj = {entryId : change.resourceId, supportGroup : change.supportGroupId}; + let stringyfiedData = JSON.stringify(obj); + let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData; + // console.log(dataJson); + let res : any[] = []; + this.http.post('http://localhost:8080/api/getImplementer', dataJson) + .subscribe((response: any)=>{ + response.members.forEach(implementer => { + res.push(implementer) + }); + resolve(res); + }) + }) + return promise; + } + + public async approve(change: any){ + const promise = new Promise(resolve=>{ + let obj = {changeNr : change.changeNr, resourceId : change.resourceId, state: 1}; + let stringyfiedData = JSON.stringify(obj); + let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData; + console.log(dataJson); + this.http.post('http://localhost:8080/api/approve', dataJson).subscribe((response:any)=>{ + resolve(response); + },(error:any)=>{ + console.log(error); + resolve(error); + }); + }) + + return promise; + } + + public async reject(change: any){ + const promise = new Promise(resolve=>{ + // console.log(change); + let obj = {pkgId : change.resourceId, loginId : change.loginId}; + let stringyfiedData = JSON.stringify(obj); + let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData; + // console.log(dataJson); + this.http.post('http://localhost:8080/api/updateImplementer', dataJson).subscribe((response:any)=>{ + resolve(response); + },(error:any)=>{ + console.log(error); + resolve(error); + }); + }) + + return promise; + } + + public async cancel(change: any){ + const promise = new Promise(resolve=>{ + // console.log(change); + let obj = {pkgId : change.resourceId, loginId : change.loginId}; + let stringyfiedData = JSON.stringify(obj); + let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData; + // console.log(dataJson); + this.http.post('http://localhost:8080/api/updateImplementer', dataJson).subscribe((response:any)=>{ + resolve(response); + },(error:any)=>{ + console.log(error); + resolve(error); + }); + }) + + return promise; + } + + /** + * The function fetchChanges fetches the changes from backend and maps them to a structure that the Gannt component can interpret + * @returns promise for the fetched Changes Array + */ + public async fetchChanges(reqestParams: any = null){ + let stringyfiedData = JSON.stringify(reqestParams); + let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData; + const promise = new Promise(resolve=>{ + let first : boolean = true; + let res : any[] = []; + console.log(dataJson); + this.http.post('http://localhost:8080/api/getChanges', dataJson) + .subscribe((response:any)=>{ + // console.log(response); + this.totalSize = response.totalSize; + response.changes.forEach(resp=>{ + let tasks : any[] = []; + if(resp.d1!=null){ + tasks.push( + { + TaskID: resp.resourceId+"D1", TaskName: "Requested Start Date", StartDate: new Date(resp.d1), Duration: 0, isFixed: true, + resources: [{resourceId: resp.resourceId},], Progress: 0, work: 0, isRes: false + } + ); + } + + if(resp.d2!=null){ + let isFixed = true; + if(resp.state == 0 || resp.state == 3){ + isFixed = false; + } + tasks.push( + { + TaskID: resp.resourceId+"D2", TaskName: "Sheduled Start Date", StartDate: new Date(resp.d2), Duration: 0, isFixed: isFixed, + resources: [{resourceId: resp.resourceId},], Progress: 0, work: 0, isRes: false + } + ); + } + + if(resp.d3!=null && resp.state>1){ + tasks.push( + { + TaskID: resp.resourceId+"D3", TaskName: "Approved Start Date", StartDate: new Date(resp.d3), Duration: 0, isFixed: true, + resources: [{resourceId: resp.resourceId},], Progress: 0, work: 0, isRes: false + } + ); + } + + if(resp.d4!=null && resp.state == 10){ + tasks.push( + { + TaskID: resp.resourceId+"D4", TaskName: "Actual End Date", StartDate: new Date(resp.d4), Duration: 0, isFixed: true, + resources: [{resourceId: resp.resourceId},], Progress: 0, work: 0, isRes: false + } + ); + } + + res.push({resourceId: resp.resourceId, approvalStatus: this.validateApproval(resp.approvalStatus), statusReason: resp.statusReason , changeNr: resp.changeNr, resourceName: resp.resourceName, vertrag: resp.contract, vertragName: this.getContractName(resp.contract), isExpand: false ,isRes: true, state: resp.state, stateName: this.getStateNameById(resp.state), supportGroup: resp.supportGroup, tasks: tasks, supportGroupId: resp.supportGroupId, implementerEdit: resp.implementerEdit}); + + + }) + console.log(res); + resolve(res); + }) + }) + return promise; + } + + validateApproval(approval):number{ + if(approval!=""){ + return 1; + }else{ + return 0; + } + + + } + + getStateNameById(stateNr): String { + for (let state of this.states) { + if(stateNr == state.actualState){ + return state.stateNameDE; + } + } + return ""; + } + + getStateIdByName(stateName: string): number { + for (let state of this.states) { + if(stateName == state.stateNameEN){ + return state.id; + } + } + return -1; + } + + getContractName(contractId: string): string{ + return this.contracts.find((contract)=> {return contract.id == contractId;}).name; + } + +} + + + + diff --git a/frontend/src/app/filter-component/filter-component.component.css b/frontend/src/app/filter-component/filter-component.component.css new file mode 100644 index 0000000..d514949 --- /dev/null +++ b/frontend/src/app/filter-component/filter-component.component.css @@ -0,0 +1,7 @@ +.full-width { + width: 100%; +} +​ +.chip-list-wrapper { + min-height: 3em; +} diff --git a/frontend/src/app/filter-component/filter-component.component.html b/frontend/src/app/filter-component/filter-component.component.html new file mode 100644 index 0000000..c5f5ad3 --- /dev/null +++ b/frontend/src/app/filter-component/filter-component.component.html @@ -0,0 +1,8 @@ +

                {{name}}

                + + + diff --git a/frontend/src/app/filter-component/filter-component.component.spec.ts b/frontend/src/app/filter-component/filter-component.component.spec.ts new file mode 100644 index 0000000..f3f1871 --- /dev/null +++ b/frontend/src/app/filter-component/filter-component.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FilterComponentComponent } from './filter-component.component'; + +describe('FilterComponentComponent', () => { + let component: FilterComponentComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ FilterComponentComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(FilterComponentComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/filter-component/filter-component.component.ts b/frontend/src/app/filter-component/filter-component.component.ts new file mode 100644 index 0000000..aa7633b --- /dev/null +++ b/frontend/src/app/filter-component/filter-component.component.ts @@ -0,0 +1,60 @@ +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; + + +export interface filterItem { + item: string; + selected: boolean; +} + +@Component({ + selector: 'app-filter-component', + templateUrl: './filter-component.component.html', + styleUrls: ['./filter-component.component.css'] +}) + + + +export class FilterComponentComponent implements OnInit { +@Input() data: any[]=[]; +@Input() name: string = ""; +@Input() shortName: string = ""; +@Input() filterType: string = ""; +@Output() result = new EventEmitter(); + filterValue: any = { + options: [] + }; + + cardSelects = [ + + ] + + selectOptions: Array=[]; + + constructor(){ + + + } + ngOnInit(): void { + console.log(this.data); + for (const attr of this.data) { + this.selectOptions.push(attr.name); + } + } + + selectChange = (event: any) => { + const key: string = event.key; + this.filterValue[key] = [event.data]; + let returnData = []; + for (const attr of this.filterValue.output[0]) { + for (const att of this.data) { + if(attr.name == att.name){ + returnData.push(attr); + } + } + } + // this.result.emit({filterType: this.filterType, data: returnData}); + this.result.emit('Hallo'); + console.log(this.filterValue.output[0]); + }; + +} diff --git a/frontend/src/app/filter-dialog/filter-dialog.component.css b/frontend/src/app/filter-dialog/filter-dialog.component.css new file mode 100644 index 0000000..123c97a --- /dev/null +++ b/frontend/src/app/filter-dialog/filter-dialog.component.css @@ -0,0 +1,3 @@ +.filterHeading{ +font-family: Roboto; +} diff --git a/frontend/src/app/filter-dialog/filter-dialog.component.html b/frontend/src/app/filter-dialog/filter-dialog.component.html new file mode 100644 index 0000000..5231954 --- /dev/null +++ b/frontend/src/app/filter-dialog/filter-dialog.component.html @@ -0,0 +1,56 @@ +

                Kurzbeschreibung* (Eingabe eines Textteiles filtert alle passenden Pakete)

                + + Text durchsuchen + + + +

                Gewählte Supportgruppe in der Rolle "Planender IH" oder "Kostenverantwortlicher" (eine)

                + + + +

                Status (einer oder mehrere) des Pakets

                + + + +

                Vertrag / Provider-Cluster (einen oder mehrere)

                + + + +

                Paket-Typ (einen oder mehrere, exakte Eingabe)

                + + + +

                Geplantes Start-Datum: Von / Bis

                + + Von + + MM/DD/YYYY + + + +- + + Bis + + MM/DD/YYYY + + + +

                + diff --git a/frontend/src/app/filter-dialog/filter-dialog.component.spec.ts b/frontend/src/app/filter-dialog/filter-dialog.component.spec.ts new file mode 100644 index 0000000..75a1066 --- /dev/null +++ b/frontend/src/app/filter-dialog/filter-dialog.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FilterDialogComponent } from './filter-dialog.component'; + +describe('FilterDialogComponent', () => { + let component: FilterDialogComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ FilterDialogComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(FilterDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/filter-dialog/filter-dialog.component.ts b/frontend/src/app/filter-dialog/filter-dialog.component.ts new file mode 100644 index 0000000..0e38278 --- /dev/null +++ b/frontend/src/app/filter-dialog/filter-dialog.component.ts @@ -0,0 +1,170 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { DataService } from '../data.service'; + +export interface FilterAttribute{ +name: string, +} +@Component({ + selector: 'app-filter-dialog', + templateUrl: './filter-dialog.component.html', + styleUrls: ['./filter-dialog.component.css'] +}) + +export class FilterDialogComponent implements OnInit { + + /** + * The constructor injects required Dependencies and sets default values for logic and ui + * @param dialogRef MatDialog Reference from Angular + * @param data contains an array of Changes which should be sent to the backend for a status transition + * @param dataService injects the dataService for data management and backend communication + */ + + public supportGroups: string[] = []; + public paketTypes: string[] = []; + public states: string[] = []; + public contracts: string[] = []; + + public criteria: string; + public filterStartDate: Date; + public filterEndDate: Date; + + public supportGroupsFilter = []; + public paketTypesFilter = []; + public statesFilter = []; + public contractsFilter = []; + public textFilter = []; + public dateFilter = []; + + + public filterObj; + + + + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private dataService: DataService, private _snackBar: MatSnackBar) { + //dialogRef.beforeClosed().subscribe(() => dialogRef.close(this.dataToReturn)); + } + + ngOnInit(): void { + for (const state of this.dataService.getStates()) { + this.states.push(state.stateNameDE); + } + for (const supportGroup of this.dataService.getSupportGroups()) { + this.supportGroups.push(supportGroup.name); + } + for (const contract of this.dataService.getContracts()) { + this.contracts.push(contract.name); + } + for (const paketType of this.dataService.getPaketTypes()) { + this.paketTypes.push(paketType.name); + } + } + + onResult(event: any) { + console.log(event); + switch (event.key) { + case 'supportGroup': + this.supportGroupsFilter = event.data; + // console.log(event.data); + // for (const sg of event.data) { + // if(this.dataService.getSupportGroups().find((item)=> {return item.name == sg;})){ + // this.supportGroupsFilter.push(this.dataService.getSupportGroups().find((item)=> {return item.name == sg;}).id); + // } + // console.log(this.supportGroupsFilter); + // } + break; + case 'state': + // this.statesFilter = event.data; + console.log(event.data); + for (const state of event.data) { + if(this.dataService.getStates().find((item)=> {return item.stateNameDE == state;})){ + this.statesFilter.push(this.dataService.getStates().find((item)=> {return item.stateNameDE == state;}).stateNameEN); + } + console.log(this.statesFilter); + } + break; + case 'contract': + //this.contractsFilter = event.data; + console.log(event.data); + for (const contract of event.data) { + if(this.dataService.getContracts().find((item)=> {return item.name == contract;})){ + this.contractsFilter.push(this.dataService.getContracts().find((item)=> {return item.name == contract;}).id); + } + console.log(this.contractsFilter); + } + break; + case 'paketType': + //this.paketTypesFilter = event.data; + console.log(event.data); + for (const paketType of event.data) { + if(this.dataService.getPaketTypes().find((item)=> {return item.name == paketType;})){ + this.paketTypesFilter.push(this.dataService.getPaketTypes().find((item)=> {return item.name == paketType;}).id); + } + console.log(this.paketTypesFilter); + } + break; + default: + break; + } + + } + + applyFilter(){ + let filter = [] + if(this.paketTypesFilter.length > 0){ + filter.push({ + "column": "PackageType", +        "filter": "equals", +        "criteria": this.paketTypesFilter + }); + } + + + + if(this.statesFilter.length > 0){ + filter.push({ + "column": "State", +        "filter": "equals", +        "criteria": this.statesFilter + }); + } + + + if(this.contractsFilter.length > 0){ + filter.push({ + "column": "Contract", +       "filter": "equals", +       "criteria": this.contractsFilter + }); + } + if(this.supportGroupsFilter.length > 0){ + filter.push({ + "column": "SupportGroup", +       "filter": "equals", +       "criteria": this.supportGroupsFilter + }); + } + + + if(this.filterStartDate != null && this.filterEndDate != null){ + filter.push({ + "column": "D2", +       "filter": "dateRange", +       "criteria": [this.filterStartDate, this.filterEndDate] + }); + } + + if(this.criteria != null && this.criteria != ""){ + filter.push({ + "column": "ResourceName", +       "filter": "contains", +       "criteria": [this.criteria] + }); + } + console.log(filter); + this.dialogRef.close(filter); + + + } +} diff --git a/frontend/src/app/implementer-dialog/implementer-dialog.component.css b/frontend/src/app/implementer-dialog/implementer-dialog.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/implementer-dialog/implementer-dialog.component.html b/frontend/src/app/implementer-dialog/implementer-dialog.component.html new file mode 100644 index 0000000..cbc0287 --- /dev/null +++ b/frontend/src/app/implementer-dialog/implementer-dialog.component.html @@ -0,0 +1,17 @@ +

                Implementer Eintragen

                + + Aktion auswählen + + + {{implementer.viewValue}} + + + + + + + + + + + diff --git a/frontend/src/app/implementer-dialog/implementer-dialog.component.spec.ts b/frontend/src/app/implementer-dialog/implementer-dialog.component.spec.ts new file mode 100644 index 0000000..f58c6e8 --- /dev/null +++ b/frontend/src/app/implementer-dialog/implementer-dialog.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ImplementerDialogComponent } from './implementer-dialog.component'; + +describe('ImplementerDialogComponent', () => { + let component: ImplementerDialogComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ImplementerDialogComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ImplementerDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/implementer-dialog/implementer-dialog.component.ts b/frontend/src/app/implementer-dialog/implementer-dialog.component.ts new file mode 100644 index 0000000..bad34e6 --- /dev/null +++ b/frontend/src/app/implementer-dialog/implementer-dialog.component.ts @@ -0,0 +1,126 @@ +import { Component, OnInit } from '@angular/core'; +import { Inject } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { DataService } from '../data.service'; +import { + MatSnackBar, + MatSnackBarHorizontalPosition, + MatSnackBarVerticalPosition, +} from '@angular/material/snack-bar'; + +@Component({ + selector: 'app-implementer-dialog', + templateUrl: './implementer-dialog.component.html', + styleUrls: ['./implementer-dialog.component.css'] +}) +export class ImplementerDialogComponent implements OnInit { + + + public possibleImplementers: any[] = [ + {value: '-1', viewValue: 'default'} + ]; + public selectedValue : any = this.possibleImplementers[0].value; + public progress : number = 0; + public diasbled : boolean = false; + public bdiasbled : boolean = false; + public horizontalPosition: MatSnackBarHorizontalPosition = 'end'; + public verticalPosition: MatSnackBarVerticalPosition = 'bottom'; + private implementers : any[]; + + /** + * The constructor injects required Dependencies and sets default values for logic and ui + * @param dialogRef MatDialog Reference from Angular + * @param data contains an array of Changes which should be sent to the backend for a status transition + * @param dataService injects the dataService for data management and backend communication + */ + constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,private dataService: DataService, private _snackBar: MatSnackBar) { + this.progress = 0; + this.bdiasbled = true; + this.diasbled = false; + this.selectedValue = -1; + this.possibleImplementers = []; + } + +/** +* The function ngOnInit checks in which actual State the selected changes are, then it provides a list that contains which statuses can be switched to in the current state +*/ + ngOnInit(): void { + console.log(this.data.changes[0]); + this.dataService.fetchImplementers(this.data.changes[0]).then((res: any)=>{ + this.implementers = res; + console.log(this.implementers); + this.possibleImplementers = []; + if(this.implementers.length>0){ + for (const implementer of this.implementers) { + this.possibleImplementers.push({value: implementer.loginId, viewValue: implementer.memberName}); + } + }else{ + this.dialogRef.close(); + } + }).catch((error)=>{ + + }); + + // MOCK: +// this.implementers = [{name: "Manuel Tauber", loginId: "MT01"}, {name: "Julius Sula", loginId: "MT02"}, {name: "Said Gedik", loginId: "MT03"}]; +// console.log(this.implementers); +// this.possibleImplementers = []; +// if(this.implementers.length>0){ +// for (const implementer of this.implementers) { +// this.possibleImplementers.push({value: implementer.loginId, viewValue: implementer.name}); +// } +// }else{ +// this.dialogRef.close(); +// } + } + + /** + * The function enableButton is triggered by the selction event of a possible state by the user it anebles the execution button + */ + enableButton():void{ + this.bdiasbled = false; + } + + /** + * The function updateState uses the dataService to execute a status transition on the backend. It sends the Changes to the backend one-by-one and calculates the percent-progress value for the progress bar. + */ + updateImplementer(): void{ + let counter : number = 0; + if(this.selectedValue != -1){ + for (let change of this.data.changes){ + this.dataService.updateImplementerPerChange({resourceId: change.pkgId, loginId: this.selectedValue}).then((res: any)=>{ + this.diasbled = true; + this.bdiasbled = true; + console.log(res); + if(res.status == 200){ + counter++; + this.progress = (counter/this.data.changes.length)*100; + } + if(res.status == 500){ + this._snackBar.open('Implementer Eintragung fehlgeschlagen', 'Schließen', { + horizontalPosition: this.horizontalPosition, + verticalPosition: this.verticalPosition, + panelClass: ['mat-primary'] + }); + this.dialogRef.close(); + //this.dialogRef.close(); + //counter++; + //this.progress = (counter/this.data.changes.length)*100; + } + + if(this.progress == 100){ + this.diasbled = false; + this.bdiasbled = true; + this._snackBar.open('Implementer Eintragung erfolgreich', 'Schließen', { + horizontalPosition: this.horizontalPosition, + verticalPosition: this.verticalPosition, + duration: 5000, + }); + this.dialogRef.close(); + } + }); + } + } + } + +} diff --git a/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.css b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.css new file mode 100644 index 0000000..d514949 --- /dev/null +++ b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.css @@ -0,0 +1,7 @@ +.full-width { + width: 100%; +} +​ +.chip-list-wrapper { + min-height: 3em; +} diff --git a/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.html b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.html new file mode 100644 index 0000000..2094369 --- /dev/null +++ b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.html @@ -0,0 +1,42 @@ + +
                + + + + {{ select.item }} + cancel + + + +
                + + + + + + + + + + +
                + + {{ data.item }} + +
                +
                +
                +
                + + diff --git a/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.spec.ts b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.spec.ts new file mode 100644 index 0000000..84256f2 --- /dev/null +++ b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MultiselectAutocompleteComponent } from './multiselect-autocomplete.component'; + +describe('MultiselectAutocompleteComponent', () => { + let component: MultiselectAutocompleteComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ MultiselectAutocompleteComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(MultiselectAutocompleteComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.ts b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.ts new file mode 100644 index 0000000..f03b76b --- /dev/null +++ b/frontend/src/app/multiselect-autocomplete/multiselect-autocomplete.component.ts @@ -0,0 +1,107 @@ + +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { FormControl } from '@angular/forms'; +import { Observable } from 'rxjs'; +import { map, startWith } from 'rxjs/operators'; +​ + + +export interface ItemData { + item: string; + selected: boolean; +} + +@Component({ + selector: 'multiselect-autocomplete', + templateUrl: './multiselect-autocomplete.component.html', + styleUrls: ['./multiselect-autocomplete.component.css'] +}) +export class MultiselectAutocompleteComponent implements OnInit { + + @Output() result = new EventEmitter<{ key: string, data: Array }>(); + ​ + @Input() placeholder: string = 'Select Data'; + @Input() data: Array = []; + @Input() key: string = ''; + ​ + selectControl = new FormControl(); + + ​ + rawData: Array = []; + selectData: Array = []; + ​ + filteredData: Observable>; + filterString: string = ''; + + constructor() { + this.filteredData = this.selectControl.valueChanges.pipe( + startWith(''), + map(value => typeof value === 'string' ? value : this.filterString), + map(filter => this.filter(filter)) + ); + + } + + ngOnInit(): void { + this.data.forEach((item: string) => { + this.rawData.push({ item, selected: false }); + }); + + var WebFont = require('webfontloader'); + WebFont.load({ + google: { + families: [ + 'Material Icons', + ], + }, + }); + + } + + + + filter = (filter: string): Array => { + this.filterString = filter; + if (filter.length > 0) { + return this.rawData.filter(option => { + return option.item.toLowerCase().indexOf(filter.toLowerCase()) >= 0; + }); + } else { + return this.rawData.slice(); + } + }; + ​ + displayFn = (): string => ''; + + optionClicked = (event: Event, data: ItemData): void => { + event.stopPropagation(); + this.toggleSelection(data); + }; + + toggleSelection = (data: ItemData): void => { + data.selected = !data.selected; + ​ + if (data.selected === true) { + this.selectData.push(data); + } else { + const i = this.selectData.findIndex(value => value.item === data.item); + this.selectData.splice(i, 1); + } + ​ + this.selectControl.setValue(this.selectData); + this.emitAdjustedData(); + }; + + emitAdjustedData = (): void => { + const results: Array = [] + this.selectData.forEach((data: ItemData) => { + results.push(data.item); + }); + this.result.emit({ key: this.key, data: results }); + }; + + removeChip = (data: ItemData): void => { + this.toggleSelection(data); + }; + +} diff --git a/frontend/src/app/state-dialog/state-dialog.component.css b/frontend/src/app/state-dialog/state-dialog.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/state-dialog/state-dialog.component.html b/frontend/src/app/state-dialog/state-dialog.component.html new file mode 100644 index 0000000..57ba159 --- /dev/null +++ b/frontend/src/app/state-dialog/state-dialog.component.html @@ -0,0 +1,16 @@ +

                Statusübergang ({{data.changes.length}}. Changes)

                + + Aktion auswählen + + + {{state.viewValue}} + + + + + + + + + + diff --git a/frontend/src/app/state-dialog/state-dialog.component.spec.ts b/frontend/src/app/state-dialog/state-dialog.component.spec.ts new file mode 100644 index 0000000..e42d084 --- /dev/null +++ b/frontend/src/app/state-dialog/state-dialog.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { StateDialogComponent } from './state-dialog.component'; + +describe('StateDialogComponent', () => { + let component: StateDialogComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ StateDialogComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(StateDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/state-dialog/state-dialog.component.ts b/frontend/src/app/state-dialog/state-dialog.component.ts new file mode 100644 index 0000000..3559167 --- /dev/null +++ b/frontend/src/app/state-dialog/state-dialog.component.ts @@ -0,0 +1,133 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { DataService } from '../data.service'; +import { + MatSnackBar, + MatSnackBarHorizontalPosition, + MatSnackBarVerticalPosition, +} from '@angular/material/snack-bar'; + +@Component({ + selector: 'app-state-dialog', + templateUrl: './state-dialog.component.html', + styleUrls: ['./state-dialog.component.css'] +}) + +/** + * The StateDialogComponent enables the user to select an execute a status transition + */ +export class StateDialogComponent implements OnInit { + + public possibleStates: any[] = [ + {value: '-1', viewValue: 'default'} + ]; + public selectedValue : any = this.possibleStates[0].value; + public progress : number = 0; + public diasbled : boolean = false; + public bdiasbled : boolean = false; + public horizontalPosition: MatSnackBarHorizontalPosition = 'end'; + public verticalPosition: MatSnackBarVerticalPosition = 'bottom'; + private states : any[]; + + + /** + * The constructor injects required Dependencies and sets default values for logic and ui + * @param dialogRef MatDialog Reference from Angular + * @param data contains an array of Changes which should be sent to the backend for a status transition + * @param dataService injects the dataService for data management and backend communication + */ + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,private dataService: DataService, private _snackBar: MatSnackBar) { + //dialogRef.beforeClosed().subscribe(() => dialogRef.close(this.dataToReturn)); + this.progress = 0; + this.bdiasbled = true; + this.diasbled = false; + this.selectedValue = -1; + this.possibleStates = []; + } + +/** + * The function ngOnInit checks in which actual State the selected changes are, then it provides a list that contains which statuses can be switched to in the current state + */ + ngOnInit(): void { + this.states = this.dataService.getStates(); + console.log(this.data.changes[0].currentState); + this.possibleStates = []; + let cState; + for (const state of this.states) { + if(state.actualState == this.data.changes[0].currentState){ + cState = state; + } + } + for (const state of this.states) { + for (const iterator of cState.possibleStates) { + if(state.actualState == iterator){ + this.possibleStates.push({value: state.actualState, viewValue: state.stateNameEN}) + } + } + } + if(this.possibleStates.length == 0){ + this.dialogRef.close(); + } + } + + /** + * The function enableButton is triggered by the selction event of a possible state by the user it anebles the execution button + */ + enableButton():void{ + this.bdiasbled = false; + } + + /** + * The function updateState uses the dataService to execute a status transition on the backend. It sends the Changes to the backend one-by-one and calculates the percent-progress value for the progress bar. + */ + updateState(): void{ + let counter : number = 0; + if(this.selectedValue != -1){ + console.log(this.selectedValue); + for (let change of this.data.changes) { + change.nextState = this.selectedValue; + let modifiedChange = {resourceId: change.resourceId, changeNr: change.changeNr, currentState: change.currentState, nextState: this.selectedValue} + this.dataService.updateStatePerChange(modifiedChange).then((res: any)=>{ + this.diasbled = true; + this.bdiasbled = true; + console.log(res); + if(res.status == 200){ + counter++; + this.progress = (counter/this.data.changes.length)*100; + } + if(res.status == 500){ + this._snackBar.open('Statusübergang fehlgeschlagen', 'Schließen', { + horizontalPosition: this.horizontalPosition, + verticalPosition: this.verticalPosition, + panelClass: ['mat-primary'] + }); + this.dialogRef.close("Failiure"); + + //this.dialogRef.close(); + //counter++; + //this.progress = (counter/this.data.changes.length)*100; + } + + if(this.progress==100){ + this.diasbled = false; + this.bdiasbled = true; + this._snackBar.open('Statusübergang '+ this.findStateName(change.currentState) +' -> '+this.findStateName(change.nextState)+' erfolgreich', 'Schließen', { + horizontalPosition: this.horizontalPosition, + verticalPosition: this.verticalPosition, + duration: 5000, + }); + this.dialogRef.close("Success"); + } + }); + } + } + } + findStateName(stateNr): String { + for (let state of this.states) { + if(stateNr == state.actualState){ + return state.stateNameEN; + } + } + return ""; + } +} diff --git a/frontend/src/assets/.gitkeep b/frontend/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/data.ts b/frontend/src/data.ts new file mode 100644 index 0000000..d9e1404 --- /dev/null +++ b/frontend/src/data.ts @@ -0,0 +1,1323 @@ +export let projectNewData: Object[] = [ + { + TaskID: 1, + TaskName: 'Product Concept', + StartDate: new Date('04/02/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { TaskID: 2, TaskName: 'Defining the product and its usage', StartDate: new Date('04/02/2019'), Duration: 3, Progress: 30 }, + { TaskID: 3, TaskName: 'Defining target audience', StartDate: new Date('04/02/2019'), Duration: 3 }, + { + TaskID: 4, TaskName: 'Prepare product sketch and notes', StartDate: new Date('04/02/2019'), Duration: 2, + Predecessor: '2', Progress: 30 + }, + ] + }, + { + TaskID: 5, TaskName: 'Concept Approval', StartDate: new Date('04/02/2019'), Duration: 0, Predecessor: '3,4', + Indicators: [ + { + 'date': '04/10/2019', + 'name': '#briefing', + 'title': 'Product concept breifing', + } + ] + }, + { + TaskID: 6, + TaskName: 'Market Research', + StartDate: new Date('04/02/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 7, + TaskName: 'Demand Analysis', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 8, TaskName: 'Customer strength', StartDate: new Date('04/04/2019'), Duration: 4, + Predecessor: '5', Progress: 30 + }, + { TaskID: 9, TaskName: 'Market opportunity analysis', StartDate: new Date('04/04/2019'), Duration: 4, Predecessor: '5' } + ] + }, + { + TaskID: 10, TaskName: 'Competitor Analysis', StartDate: new Date('04/04/2019'), Duration: 4, + Predecessor: '7, 8', Progress: 30 + }, + { TaskID: 11, TaskName: 'Product strength analsysis', StartDate: new Date('04/04/2019'), Duration: 4, Predecessor: '9' }, + { + TaskID: 12, TaskName: 'Research complete', StartDate: new Date('04/04/2019'), Duration: 0, Predecessor: '10', + Indicators: [ + { + 'date': '04/20/2019', + 'name': '#meeting', + 'title': '1st board of directors meeting', + } + ] + } + ] + }, + { + TaskID: 13, + TaskName: 'Product Design and Development', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 14, TaskName: 'Functionality design', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '12' + }, + { TaskID: 15, TaskName: 'Quality design', StartDate: new Date('04/04/2019'), Duration: 3, Predecessor: '12' }, + { TaskID: 16, TaskName: 'Define Reliability', StartDate: new Date('04/04/2019'), Duration: 2, Progress: 30, Predecessor: '15' }, + { TaskID: 17, TaskName: 'Identifying raw materials', StartDate: new Date('04/04/2019'), Duration: 2, Predecessor: '15' }, + { + TaskID: 18, + TaskName: 'Define cost plan', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 19, TaskName: 'Manufacturing cost', StartDate: new Date('04/04/2019'), + Duration: 2, Progress: 30, Predecessor: '17' + }, + { TaskID: 20, TaskName: 'Selling cost', StartDate: new Date('04/04/2019'), Duration: 2, Predecessor: '17' } + ] + }, + { + TaskID: 21, + TaskName: 'Development of the final design', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 22, TaskName: 'Defining dimensions and package volume', StartDate: new Date('04/04/2019'), + Duration: 2, Progress: 30, Predecessor: '19,20' + }, + { + TaskID: 23, TaskName: 'Develop design to meet industry standards', StartDate: new Date('04/04/2019'), + Duration: 2, Predecessor: '22' + }, + { TaskID: 24, TaskName: 'Include all the details', StartDate: new Date('04/04/2019'), Duration: 3, Predecessor: '23' } + ] + }, + { + TaskID: 25, TaskName: 'CAD Computer-aided design', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '24' + }, + { TaskID: 26, TaskName: 'CAM Computer-aided manufacturing', StartDate: new Date('04/04/2019'), Duration: 3, Predecessor: '25' }, + { + TaskID: 27, TaskName: 'Design complete', StartDate: new Date('04/04/2019'), Duration: 0, Predecessor: '26', + Indicators: [ + { + 'date': '05/18/2019', + 'name': '#meeting', + 'title': '2nd board of directors meeting', + } + ] + } + + ] + }, + { TaskID: 28, TaskName: 'Prototype Testing', StartDate: new Date('04/04/2019'), Duration: 4, Progress: 30, Predecessor: '27' }, + { TaskID: 29, TaskName: 'Include feedback', StartDate: new Date('04/04/2019'), Duration: 4, Predecessor: '28ss' }, + { TaskID: 30, TaskName: 'Manufacturing', StartDate: new Date('04/04/2019'), Duration: 5, Progress: 30, Predecessor: '28,29' }, + { TaskID: 31, TaskName: 'Assembling materials to finsihed goods', StartDate: new Date('04/04/2019'), Duration: 5, Predecessor: '30' }, + { + TaskID: 32, + TaskName: 'Feedback and Testing', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 33, TaskName: 'Internal testing and feedback', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 45, Predecessor: '31' + }, + { + TaskID: 34, TaskName: 'Customer testing and feedback', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 50, Predecessor: '33' + } + ] + }, + { + TaskID: 35, + TaskName: 'Final Product Development', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 36, TaskName: 'Important improvements', StartDate: new Date('04/04/2019'), + Duration: 4, Progress: 30, Predecessor: '34' + }, + { + TaskID: 37, TaskName: 'Address any unforeseen issues', StartDate: new Date('04/04/2019'), + Duration: 4, Progress: 30, Predecessor: '36ss' + } + ] + }, + { + TaskID: 38, + TaskName: 'Final Product', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { TaskID: 39, TaskName: 'Branding product', StartDate: new Date('04/04/2019'), Duration: 4, Predecessor: '37' }, + { + TaskID: 40, TaskName: 'Marketing and presales', StartDate: new Date('04/04/2019'), + Duration: 4, Progress: 30, Predecessor: '39' + } + ] + } +]; + +export let editingResources: Object[] = [ + { resourceId: 1, resourceName: 'Martin Tamer' }, + { resourceId: 2, resourceName: 'Rose Fuller' }, + { resourceId: 3, resourceName: 'Margaret Buchanan' }, + { resourceId: 4, resourceName: 'Fuller King' }, + { resourceId: 5, resourceName: 'Davolio Fuller' }, + { resourceId: 6, resourceName: 'Van Jack' }, + { resourceId: 7, resourceName: 'Fuller Buchanan' }, + { resourceId: 8, resourceName: 'Jack Davolio' }, + { resourceId: 9, resourceName: 'Tamer Vinet' }, + { resourceId: 10, resourceName: 'Vinet Fuller' }, + { resourceId: 11, resourceName: 'Bergs Anton' }, + { resourceId: 12, resourceName: 'Construction Supervisor' } +]; + +export let editingData: Object[] = [ + { + TaskID: 1, + TaskName: 'Project Initiation', + StartDate: new Date('04/02/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 2, TaskName: 'Identify Site location', StartDate: new Date('04/02/2019'), Duration: 0, + Progress: 30, resources: [1], info: 'Measure the total property area alloted for construction' + }, + { + TaskID: 3, TaskName: 'Perform Soil test', StartDate: new Date('04/02/2019'), Duration: 4, Predecessor: '2', + resources: [2, 3, 5], info: 'Obtain an engineered soil test of lot where construction is planned.' + + 'From an engineer or company specializing in soil testing' + }, + { TaskID: 4, TaskName: 'Soil test approval', StartDate: new Date('04/02/2019'), Duration: 0, Predecessor: '3', Progress: 30 }, + ] + }, + { + TaskID: 5, + TaskName: 'Project Estimation', + StartDate: new Date('04/02/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 6, TaskName: 'Develop floor plan for estimation', StartDate: new Date('04/04/2019'), + Duration: 3, Predecessor: '4', Progress: 30, resources: 4, + info: 'Develop floor plans and obtain a materials list for estimations' + }, + { + TaskID: 7, TaskName: 'List materials', StartDate: new Date('04/04/2019'), + Duration: 3, Predecessor: '6', resources: [4, 8], info: '' + }, + { + TaskID: 8, TaskName: 'Estimation approval', StartDate: new Date('04/04/2019'), + Duration: 0, Predecessor: '7', resources: [12, 5], info: '' + } + ] + }, + { + TaskID: 9, TaskName: 'Sign Contract', StartDate: new Date('04/04/2019'), Duration: 1, + Predecessor: '8', Progress: 30, resources: [12], + info: 'If required obtain approval from HOA (homeowners association) or ARC (architectural review committee)' + }, + { + TaskID: 10, + TaskName: 'Project Approval and kick off', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + Duration: 0, + Predecessor: '9' + }, + { + TaskID: 11, + TaskName: 'Site Work', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 12, TaskName: 'Clear the building site', StartDate: new Date('04/04/2019'), + Duration: 2, Progress: 30, Predecessor: '9', resources: [6, 7], + info: 'Clear the building site (demolition of existing home if necessary)' + }, + { + TaskID: 13, TaskName: 'Install temporary power service', StartDate: new Date('04/04/2019'), + Duration: 2, Predecessor: '12', resources: [6, 7], info: '' + }, + ] + }, + { + TaskID: 14, + TaskName: 'Foundation', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 15, TaskName: 'Excavate for foundations', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '13', resources: [2, 8], + info: 'Excavate the foundation and dig footers (Scope of work is dependent of foundation designed by engineer)' + }, + { + TaskID: 16, TaskName: 'Dig footer', StartDate: new Date('04/04/2019'), + Duration: 2, Predecessor: '15FF', resources: [8], info: '' + }, + { + TaskID: 17, TaskName: 'Install plumbing grounds', StartDate: new Date('04/04/2019'), Duration: 4, + Progress: 30, Predecessor: '15', resources: [9], info: '' + }, + { + TaskID: 18, TaskName: 'Pour a foundation and footer with concrete', StartDate: new Date('04/04/2019'), + Duration: 1, Predecessor: '17', resources: [8, 9, 10], info: '' + }, + { + TaskID: 19, TaskName: 'Cure basement walls', StartDate: new Date('04/04/2019'), Duration: 4, + Progress: 30, Predecessor: '18', resources: [10], info: '' + }, + ] + }, + { + TaskID: 20, + TaskName: 'Framing', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 21, TaskName: 'Add load-bearing structure', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '19', resources: [4, 5], + info: 'Build the main load-bearing structure out of thick pieces of wood and' + + 'possibly metal I-beams for large spans with few supports' + }, + { + TaskID: 22, TaskName: 'Install floor joists', StartDate: new Date('04/04/2019'), + Duration: 3, Predecessor: '21', resources: [2, 3], info: 'Add floor and ceiling joists and install subfloor panels' + }, + { + TaskID: 23, TaskName: 'Add ceiling joists', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '22SS', resources: [5], info: '' + }, + { + TaskID: 24, TaskName: 'Install subfloor panels', StartDate: new Date('04/04/2019'), + Duration: 3, Predecessor: '23', resources: [8, 9] + }, + { + TaskID: 25, TaskName: 'Frame floor walls', StartDate: new Date('04/04/2019'), Duration: 3, + Progress: 30, Predecessor: '24', resources: [10], info: '' + }, + { + TaskID: 26, TaskName: 'Frame floor decking', StartDate: new Date('04/04/2019'), Duration: 3, + Progress: 30, Predecessor: '25SS', resources: [4, 8], info: '' + }, + ] + }, + { + TaskID: 27, + TaskName: 'Exterior finishing', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 28, TaskName: 'Cover outer walls and roof in OSB', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '26', resources: [2, 8], + info: 'Cover outer walls and roof in OSB or plywood and a water-resistive barrier' + }, + { + TaskID: 29, TaskName: 'Add water resistive barrier', StartDate: new Date('04/04/2019'), + Duration: 3, Predecessor: '28', resources: [1, 10], + info: 'Cover the walls with siding, typically vinyl, wood, or brick veneer but possibly stone or other materials' + }, + { + TaskID: 30, TaskName: 'Install roof shingles', StartDate: new Date('04/04/2019'), Duration: 3, + Progress: 30, Predecessor: '29', resources: [8, 9], info: 'Install roof shingles or other covering for flat roof' + }, + { TaskID: 31, TaskName: 'Install windows', StartDate: new Date('04/04/2019'), Duration: 3, Predecessor: '29', resources: 7 }, + ] + }, + { + TaskID: 32, + TaskName: 'Utilities', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 33, TaskName: 'Install internal plumbing', StartDate: new Date('04/04/2019'), Duration: 3, + Progress: 30, Predecessor: '26', resources: [1, 10] + }, + { + TaskID: 34, TaskName: 'Install HVAC', StartDate: new Date('04/04/2019'), Duration: 3, Predecessor: '33', + resources: [4, 9], info: 'Add internal plumbing, HVAC, electrical, and natural gas utilities' + }, + { + TaskID: 35, TaskName: 'Electrical utilities', StartDate: new Date('04/04/2019'), Duration: 3, + Progress: 30, Predecessor: '34' + }, + { + TaskID: 36, TaskName: 'Natural gas utilities', StartDate: new Date('04/04/2019'), Duration: 3, + Predecessor: '35', resources: 11 + }, + { + TaskID: 37, TaskName: 'Install bathroom fixtures', StartDate: new Date('04/04/2019'), Duration: 3, + Progress: 30, Predecessor: '35', resources: [3, 7] + }, + ], + info: 'Building inspector visits if necessary to approve utilities and framing' + }, + { + TaskID: 38, + TaskName: 'Interior finsihing', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 39, TaskName: 'Install insulation', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '37', resources: [1, 8], info: 'Frame interior walls with wooden 2×4s' + }, + { + TaskID: 40, TaskName: 'Install drywall panels', StartDate: new Date('04/04/2019'), Duration: 3, + Predecessor: '39', resources: 5, + info: 'Install insulation and interior drywall panels (cementboard for wet areas) and to complete walls and ceilings' + }, + { + TaskID: 41, TaskName: 'Spackle', StartDate: new Date('04/04/2019'), Duration: 3, + Progress: 30, Predecessor: '40', resources: 10 + }, + { + TaskID: 42, TaskName: 'Apply primer', StartDate: new Date('04/04/2019'), Duration: 3, + Predecessor: '41', resources: [10, 11] + }, + { + TaskID: 43, TaskName: 'Paint wall and ceilings', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '42', resources: [2, 9] + }, + { + TaskID: 44, TaskName: 'Install modular kitchen', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '43', resources: [5, 7] + }, + ] + }, + { + TaskID: 45, + TaskName: 'Flooring', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 46, TaskName: 'Tile kitchen, bathroom and entry walls', StartDate: new Date('04/04/2019'), + Duration: 3, Progress: 30, Predecessor: '44', resources: [4, 9, 3], + info: 'Additional tiling on top of cementboard for wet areas, such as the bathroom and kitchen backsplash' + }, + { + TaskID: 47, TaskName: 'Tile floor', StartDate: new Date('04/04/2019'), Duration: 3, Predecessor: '46SS', + resources: [2, 8], info: 'Installation of final floor covering, such as floor tile, carpet, or wood flooring' + }, + ] + }, + { + TaskID: 48, + TaskName: 'Final Acceptance', + StartDate: new Date('04/04/2019'), + EndDate: new Date('04/21/2019'), + subtasks: [ + { + TaskID: 49, TaskName: 'Final inspection', StartDate: new Date('04/04/2019'), Duration: 2, + Progress: 30, Predecessor: '47', resources: 12, info: 'Ensure the contracted items' + }, + { + TaskID: 50, TaskName: 'Cleanup for occupancy', StartDate: new Date('04/04/2019'), Duration: 2, + Predecessor: '49', resources: [1, 5], info: 'Installation of major appliances' + }, + { + TaskID: 51, TaskName: 'Property Handover', StartDate: new Date('04/04/2019'), Duration: 0, + Predecessor: '50', info: 'Ending the contract' + }, + ] + }, +]; + +export let remoteData: Object[] = [ + { + TaskID: 1, + TaskName: 'Germination', + StartDate: new Date('03/01/2019'), + subtasks: [ + { TaskID: 2, TaskName: 'Dry seed (caryopsis)', StartDate: new Date('03/01/2019'), Duration: 0 }, + { TaskID: 3, TaskName: 'Seed imbibition complete', StartDate: new Date('03/01/2019'), Duration: 3, Predecessor: '2FS' }, + { TaskID: 4, TaskName: 'Radicle emerged from caryopsis', StartDate: new Date('03/04/2019'), Duration: 2, Predecessor: '3FS' }, + { + TaskID: 5, TaskName: 'Coleoptile emerged from caryopsis', StartDate: new Date('03/06/2019'), + Duration: 2, Predecessor: '4FS' + }, + { + TaskID: 6, TaskName: 'Emergence: coleoptile penetrates soil surface (cracking stage)', + StartDate: new Date('03/08/2019'), Duration: 2, Predecessor: '5FS' + }, + ] + }, + { + TaskID: 7, + TaskName: 'Leaf development', + StartDate: new Date('03/10/2019'), + subtasks: [ + { TaskID: 8, TaskName: 'First leaf through coleoptile', StartDate: new Date('03/10/2019'), Duration: 1, Predecessor: '6FS' }, + { TaskID: 9, TaskName: 'First leaf unfolded', StartDate: new Date('03/11/2019'), Duration: 1, Predecessor: '8FS' }, + { TaskID: 10, TaskName: '3 leaves unfolded', StartDate: new Date('03/12/2019'), Duration: 2, Predecessor: '9FS' }, + { TaskID: 11, TaskName: '9 or more leaves unfolded', StartDate: new Date('03/14/2019'), Duration: 5, Predecessor: '10FS' }, + ] + }, + { + TaskID: 12, + TaskName: 'Tillering', + StartDate: new Date('03/18/2019'), + subtasks: [ + { + TaskID: 13, TaskName: 'Beginning of tillering: first tiller detectable', + StartDate: new Date('03/18/2019'), Duration: 0, Predecessor: '11FS' + }, + { TaskID: 14, TaskName: '2 tillers detectable', StartDate: new Date('03/19/2019'), Duration: 3, Predecessor: '13FS' }, + { TaskID: 15, TaskName: '3 tillers detectable', StartDate: new Date('03/22/2019'), Duration: 3, Predecessor: '14FS' }, + { + TaskID: 16, TaskName: 'Maximum no. of tillers detectable', StartDate: new Date('03/25/2019'), + Duration: 6, Predecessor: '15FS' + }, + { TaskID: 17, TaskName: 'End of tillering', StartDate: new Date('03/30/2019'), Duration: 0, Predecessor: '16FS' }, + ] + }, + { + TaskID: 18, + TaskName: 'Stem elongation', + StartDate: new Date('03/30/2019'), + subtasks: [ + { + TaskID: 19, + TaskName: 'Beginning of stem elongation: pseudostem and tillers erect, first internode begins to elongate,' + + 'top of inflorescence at least 1 cm above tillering node', + StartDate: new Date('03/30/2019'), + Duration: 0, + Predecessor: '17FS' + }, + { + TaskID: 20, TaskName: 'First node at least 1 cm above tillering node', StartDate: new Date('03/31/2019'), + Duration: 1, Predecessor: '19FS' + }, + { + TaskID: 21, TaskName: 'Node 3 at least 2 cm above node 2', StartDate: new Date('04/01/2019'), + Duration: 2, Predecessor: '20FS' + }, + { + TaskID: 22, TaskName: 'Flag leaf just visible, still rolled', StartDate: new Date('04/03/2019'), + Duration: 4, Predecessor: '21FS' + }, + { + TaskID: 23, TaskName: 'Flag leaf stage: flag leaf fully unrolled, ligule just visible', StartDate: new Date('04/07/2019'), + Duration: 2, Predecessor: '22FS' + }, + ] + }, + { + TaskID: 24, + TaskName: 'Booting', + StartDate: new Date('04/09/2019'), + subtasks: [ + { + TaskID: 25, TaskName: 'Early boot stage: flag leaf sheath extending', StartDate: new Date('04/09/2019'), + Duration: 2, Predecessor: '23FS' + }, + { + TaskID: 26, TaskName: 'Mid boot stage: flag leaf sheath just visibly swollen', StartDate: new Date('04/11/2019'), + Duration: 2, Predecessor: '25FS' + }, + { + TaskID: 27, TaskName: 'Late boot stage: flag leaf sheath swollen', StartDate: new Date('04/13/2019'), + Duration: 2, Predecessor: '26FS' + }, + { TaskID: 28, TaskName: 'Flag leaf sheath opening', StartDate: new Date('04/15/2019'), Duration: 2, Predecessor: '27FS' }, + { + TaskID: 29, TaskName: 'First awns visible (in awned forms only)', StartDate: new Date('04/17/2019'), + Duration: 2, Predecessor: '28FS' + }, + ] + }, + { + TaskID: 30, + TaskName: 'Inflorescence emergence, heading', + StartDate: new Date('04/18/2019'), + subtasks: [ + { + TaskID: 31, TaskName: 'Beginning of heading: tip of inflorescence emerged from sheath, first spikelet just visible', + StartDate: new Date('04/18/2019'), Duration: 0, Predecessor: '29FS' + }, + { TaskID: 32, TaskName: '20% of inflorescence emerged', StartDate: new Date('04/19/2019'), Duration: 3, Predecessor: '31FS' }, + { TaskID: 33, TaskName: '40% of inflorescence emerged', StartDate: new Date('04/22/2019'), Duration: 2, Predecessor: '32FS' }, + { + TaskID: 34, TaskName: 'Middle of heading: half of inflorescence emerged', StartDate: new Date('04/23/2019'), + Duration: 0, Predecessor: '33FS' + }, + { TaskID: 35, TaskName: '60% of inflorescence emerged', StartDate: new Date('04/24/2019'), Duration: 2, Predecessor: '34FS' }, + { TaskID: 36, TaskName: '80% of inflorescence emerged', StartDate: new Date('04/26/2019'), Duration: 3, Predecessor: '35FS' }, + { + TaskID: 37, TaskName: 'End of heading: inflorescence fully emerged', StartDate: new Date('04/28/2019'), + Duration: 0, Predecessor: '36FS' + }, + ] + }, + { + TaskID: 38, + TaskName: 'Flowering, anthesis', + StartDate: new Date('04/28/2019'), + subtasks: [ + { + TaskID: 39, TaskName: 'Beginning of flowering: first anthers visible', StartDate: new Date('04/28/2019'), + Duration: 0, Predecessor: '37FS' + }, + { + TaskID: 40, TaskName: 'Full flowering: 50% of anthers mature', StartDate: new Date('04/29/2019'), + Duration: 5, Predecessor: '39FS' + }, + { + TaskID: 41, TaskName: 'spikelet have completed flowering', StartDate: new Date('05/04/2019'), + Duration: 5, Predecessor: '40FS' + }, + { TaskID: 42, TaskName: 'End of flowering', StartDate: new Date('05/08/2019'), Duration: 0, Predecessor: '41FS' }, + ] + }, + { + TaskID: 43, + TaskName: 'Development of fruit', + StartDate: new Date('05/08/2019'), + subtasks: [ + { + TaskID: 44, TaskName: 'Watery ripe: first grains have reached half their final size', + StartDate: new Date('05/08/2019'), Duration: 0, Predecessor: '42FS' + }, + { TaskID: 45, TaskName: 'Early milk', StartDate: new Date('05/09/2019'), Duration: 3, Predecessor: '44FS' }, + { + TaskID: 46, TaskName: 'Medium milk: grain content milky, grains reached final size,still green', + StartDate: new Date('05/12/2019'), Duration: 3, Predecessor: '45FS' + }, + { TaskID: 47, TaskName: 'Late milk', StartDate: new Date('05/15/2019'), Duration: 2, Predecessor: '46FS' }, + ] + }, + { + TaskID: 48, + TaskName: 'Ripening', + StartDate: new Date('05/17/2019'), + subtasks: [ + { TaskID: 49, TaskName: 'Early dough', StartDate: new Date('05/17/2019'), Duration: 6, Predecessor: '47FS' }, + { + TaskID: 50, TaskName: 'Soft dough: grain content soft but dry. Fingernail impression not held', + StartDate: new Date('05/23/2019'), Duration: 2, Predecessor: '49FS' + }, + { + TaskID: 51, TaskName: 'Hard dough: grain content solid. Fingernail impression held', + StartDate: new Date('05/25/2019'), Duration: 2, Predecessor: '50FS' + }, + { + TaskID: 52, TaskName: 'Fully ripe: grain hard, difficult to divide with thumbnail', + StartDate: new Date('05/27/2019'), Duration: 2, Predecessor: '51FS' + }, + ] + }, + { + TaskID: 53, + TaskName: 'Senescence', + StartDate: new Date('05/29/2019'), + subtasks: [ + { + TaskID: 54, TaskName: 'Over-ripe: grain very hard, cannot be dented by thumbnail', + StartDate: new Date('05/29/2019'), Duration: 3, Predecessor: '52FS' + }, + { TaskID: 55, TaskName: 'Grains loosening in day-time', StartDate: new Date('06/01/2019'), Duration: 1, Predecessor: '54FS' }, + { TaskID: 56, TaskName: 'Plant dead and collapsing', StartDate: new Date('06/02/2019'), Duration: 4, Predecessor: '55FS' }, + { TaskID: 57, TaskName: 'Harvested product', StartDate: new Date('06/06/2019'), Duration: 2, Predecessor: '56FS' }, + ] + }, +]; +export let filteredData: Object[] = [ + { + TaskID: 1, + TaskName: 'Launch and flight to lunar orbit', + StartDate: new Date('07/16/1969'), + subtasks: [ + { + TaskID: 2, TaskName: 'Apollo 11 blasts off from launch pad', StartDate: new Date('07/16/1969 03:32:00 AM'), + EndDate: new Date('07/16/1969 03:32:00 AM'), Duration: 0, + }, + { + TaskID: 3, TaskName: 'Entry to Earth’s orbit', StartDate: new Date('07/16/1969 03:32:00 AM'), + EndDate: new Date('07/16/1969 03:44:00 AM'), Predecessor: '2FS' + }, + { + TaskID: 4, TaskName: 'Travelling in earth’s orbit', StartDate: new Date('07/16/1969 03:44:00 AM'), + EndDate: new Date('07/16/1969 04:22:13 AM'), Predecessor: '3FS' + }, + { + TaskID: 5, TaskName: 'Trajectory change toward the Moon', StartDate: new Date('07/16/1969 04:22:13 AM'), + EndDate: new Date('07/16/1969 04:52:00 AM'), Predecessor: '4FS' + }, + { + TaskID: 6, TaskName: 'extraction maneuver performed', StartDate: new Date('07/16/1969 04:52:00 AM'), + EndDate: new Date('07/16/1969 04:52:00 AM'), Predecessor: '5FS' + }, + { + TaskID: 7, TaskName: 'Travelling toward moon and entering into lunar orbit', StartDate: new Date('07/16/1969 04:52:00 AM'), + EndDate: new Date('07/16/1969 04:21:50 PM'), Predecessor: '6FS' + }, + { + TaskID: 8, TaskName: 'Midcourse correction, sharpening the course and testing the engine', + StartDate: new Date('07/16/1969 11:22:00 PM'), EndDate: new Date('07/17/1969 05:21:50 AM') + }, + { + TaskID: 9, TaskName: 'Reached half the distance spanning between earth and moon', + StartDate: new Date('07/17/1969 05:22:00 AM'), EndDate: new Date('07/17/1969 08:00:50 PM') + }, + { + TaskID: 10, TaskName: 'Reached 3/4th distance spanning between earth and moon', + StartDate: new Date('07/17/1969 8:02:00 PM'), EndDate: new Date('07/18/1969 04:21:50 PM') + }, + { + TaskID: 11, TaskName: 'Reached distance 45000 miles from moon', + StartDate: new Date('07/18/1969 11:22:00 PM'), EndDate: new Date('07/19/1969 05:21:50 PM') + }, + ] + }, + { + TaskID: 12, + TaskName: 'Lunar descent', + StartDate: new Date('07/19/1969 05:21:50 PM'), + subtasks: [ + { + TaskID: 13, TaskName: 'Lunar Orbiting (30 orbits)', StartDate: new Date('07/19/1969 05:21:50 PM'), + EndDate: new Date('07/20/1969 12:52:00 AM'), Predecessor: '11FS' + }, + { + TaskID: 14, TaskName: 'Landing site identified', StartDate: new Date('07/20/1969 12:52:00 AM'), + EndDate: new Date('07/20/1969 12:52:00 AM'), Predecessor: '13FS' + }, + { + TaskID: 15, TaskName: 'Eagle separated from Columbia.', StartDate: new Date('07/20/1969 05:44:00 PM'), + EndDate: new Date('07/20/1969 05:44:00 PM') + }, + { + TaskID: 16, TaskName: 'Eagle’s decent to Moon', StartDate: new Date('07/20/1969 05:44:00 PM'), + EndDate: new Date('07/20/1969 08:16:40 PM'), Predecessor: '15FS' + } + ] + }, + { + TaskID: 17, + TaskName: 'Landing', + StartDate: new Date('07/20/1969 08:17:40 PM'), + subtasks: [ + { + TaskID: 18, TaskName: 'Eagle’s touch down', StartDate: new Date('07/20/1969 08:17:40 PM'), + EndDate: new Date('07/20/1969 08:17:40 PM') + }, + { + TaskID: 19, TaskName: 'Radio communication and Performing post landing checklist', + StartDate: new Date('07/20/1969 08:17:40 PM'), EndDate: new Date('07/20/1969 11:43:00 PM'), Predecessor: '18FS' + }, + { + TaskID: 20, TaskName: 'Preparations for EVA (Extra Vehicular Activity)', + StartDate: new Date('07/20/1969 11:43:00 PM'), EndDate: new Date('07/21/1969 02:39:33 AM'), Predecessor: '19FS' + }, + { + TaskID: 21, TaskName: 'Hatch open and climbing down the moon', StartDate: new Date('07/21/1969 02:39:33 AM'), + EndDate: new Date('07/21/1969 02:56:15 AM'), Predecessor: '20FS' + }, + { + TaskID: 22, TaskName: 'Armstrong stepped down on the moon', StartDate: new Date('07/21/1969 02:56:15 AM'), + EndDate: new Date('07/21/1969 03:11:00 AM'), Predecessor: '21FS' + }, + ] + }, + { + TaskID: 23, + TaskName: 'Lunar surface operations', + StartDate: new Date('07/21/1969'), + subtasks: [ + { + TaskID: 24, TaskName: 'Soil sample collections', StartDate: new Date('07/21/1969 02:56:15 AM'), + EndDate: new Date('07/21/1969 03:11:00 AM') + }, + { + TaskID: 25, TaskName: 'Aldrin joined Armstrong', StartDate: new Date('07/21/1969 03:11:00 AM'), + EndDate: new Date('07/21/1969 03:41:00 AM'), Predecessor: '24FS' + }, + { + TaskID: 26, TaskName: 'planted the Lunar Flag Assembly', StartDate: new Date('07/21/1969 03:41:00 AM'), + EndDate: new Date('07/21/1969 03:46:00 AM'), Predecessor: '25FS' + }, + { + TaskID: 27, TaskName: 'President Richard Nixon’s telephone-radio transmission ', + StartDate: new Date('07/21/1969 03:48:00 AM'), EndDate: new Date('07/21/1969 03:51:00 AM') + }, + { + TaskID: 28, TaskName: 'Collect rock samples, photos and other mission controls', + StartDate: new Date('07/21/1969 03:52:00 AM'), EndDate: new Date('07/21/1969 04:50:00 AM') + }, + ] + }, + { + TaskID: 29, + TaskName: 'Lunar ascent', + StartDate: new Date('07/21/1969'), + subtasks: [ + { + TaskID: 30, TaskName: 'Climbing the eagle to ascent', StartDate: new Date('07/21/1969 04:51:00 AM'), + EndDate: new Date('07/21/1969 05:00:00 AM') + }, + { + TaskID: 31, TaskName: 'Hatch closing', StartDate: new Date('07/21/1969 05:01:00 AM'), + EndDate: new Date('07/21/1969 05:01:00 AM'), Predecessor: '30FS' + }, + { + TaskID: 32, TaskName: 'Final housekeeping', StartDate: new Date('07/21/1969 05:02:00 AM'), + EndDate: new Date('07/21/1969 08:00:00 AM') + }, + { + TaskID: 33, TaskName: 'Resting of astronauts', StartDate: new Date('07/21/1969 08:00:00 AM'), + EndDate: new Date('07/21/1969 03:00:00 PM'), Predecessor: '32FS' + }, + { + TaskID: 34, TaskName: 'Preparation for lift off and Ascent engine started', StartDate: new Date('07/21/1969 03:00:00 PM'), + EndDate: new Date('07/21/1969 05:54:00 PM'), Predecessor: '33FS' + }, + { + TaskID: 35, TaskName: 'Eagle lifted off', StartDate: new Date('07/21/1969 05:54:00 PM'), + EndDate: new Date('07/21/1969 05:54:00 PM'), Predecessor: '34FS' + }, + { + TaskID: 36, TaskName: 'Eagle’s travel toward Columbia', StartDate: new Date('07/21/1969 05:54:00 PM'), + EndDate: new Date('07/21/1969 09:23:00 PM'), Predecessor: '35FS' + }, + ] + }, + { + TaskID: 37, + TaskName: 'Return', + StartDate: new Date('07/21/1969 09:24:00 PM'), + subtasks: [ + { + TaskID: 38, TaskName: 'Eagle docked with Columbia', StartDate: new Date('07/21/1969 09:24:00 PM'), + EndDate: new Date('07/21/1969 09:35:00 PM') + }, + { + TaskID: 39, TaskName: 'Eagle’s ascent stage jettisoned into lunar orbit', StartDate: new Date('07/21/1969 09:35:00 PM'), + EndDate: new Date('07/21/1969 11:41:00 PM'), Predecessor: '38FS' + }, + ] + }, + { + TaskID: 40, + TaskName: 'Decent toward earth and Splashdown', + StartDate: new Date('07/21/1969'), + subtasks: [ + { + TaskID: 41, TaskName: 'Spacecraft reaches 1/4th distance spanning between moon and earth', + StartDate: new Date('07/21/1969 11:50:00 PM'), EndDate: new Date('07/22/1969 04:40:00 PM') + }, + { + TaskID: 42, TaskName: 'Spacecraft travels to midway point of journey', + StartDate: new Date('07/22/1969 04:40:00 PM'), EndDate: new Date('07/23/1969 04:00:00 PM'), Predecessor: '41FS' + }, + { + TaskID: 43, TaskName: 'Spacecraft travels to 3/4th point of journey', StartDate: new Date('07/23/1969 04:40:00 PM'), + EndDate: new Date('07/24/1969 10:00:00 AM'), Predecessor: '42FS' + }, + { + TaskID: 44, TaskName: 'Crew prepares for splashdown', StartDate: new Date('07/24/1969 11:47:00 AM'), + EndDate: new Date('07/24/1969 04:20:00 PM') + }, + { + TaskID: 45, TaskName: 'Command and service modules separates', StartDate: new Date('07/24/1969 04:20:00 PM'), + EndDate: new Date('07/24/1969 04:35:00 PM'), Predecessor: '44FS' + }, + { + TaskID: 46, TaskName: 'Command module re-enters the Earth’s atmosphere', StartDate: new Date('07/24/1969 04:35:00 PM'), + EndDate: new Date('07/24/1969 04:50:00 PM'), Predecessor: '45FS' + }, + { + TaskID: 47, TaskName: 'Spacecraft splashes near USS hornet', StartDate: new Date('07/24/1969 04:51:00 PM'), + EndDate: new Date('07/24/1969 04:51:00 PM') + }, + ] + } +]; + +export let customizedData: Object[] = [ + { + TaskId: 1, TaskName: '90th Academy awards kicks-off', + StartDate: new Date('03/05/2015 06:00:00 PM'), EndDate: new Date('03/05/2015 06:00:00 PM'), Duration: 0, + }, + { + TaskId: 2, TaskName: 'Oscar moments', Predecessor: '1FS', column3: 'Jimmy kimmel hosts the show', + StartDate: new Date('03/05/2015 06:00:00 PM'), EndDate: new Date('03/05/2015 06:15:00 PM') + }, + { + TaskId: 3, TaskName: 'Actor in a supporting role', Predecessor: '2FS', + StartDate: new Date('03/05/2015 06:16:00 PM'), EndDate: new Date('03/05/2015 06:25:00 PM'), + Winner: 'Sam Rockwell', Movie: 'Three Billboards Outside Ebbing, Missouri.' + }, + { + TaskId: 4, TaskName: 'Hair and makeup', Movie: 'Darkest Hour', Predecessor: '3FS', + StartDate: new Date('03/05/2015 06:26:00 PM'), EndDate: new Date('03/05/2015 06:32:00 PM') + }, + { + TaskId: 5, TaskName: 'Costume design', Winner: 'Mark Bridges', Movie: 'Phantom Thread', Predecessor: '4FS', + StartDate: new Date('03/05/2015 06:33:00 PM'), EndDate: new Date('03/05/2015 06:40:00 PM') + }, + { + TaskId: 6, TaskName: 'Documentary feature', Winner: 'Bryan Fogel', Movie: ' Icarus', Predecessor: '5FS', + StartDate: new Date('03/05/2015 06:41:00 PM'), EndDate: new Date('03/05/2015 06:58:00 PM') + }, + { + TaskId: 7, TaskName: 'Best sound editing and sound mixing', Winner: 'Richard King and Alex Gibson', Movie: 'Dunkirk', + StartDate: new Date('03/05/2015 06:59:00 PM'), EndDate: new Date('03/05/2015 07:10:00 PM'), Predecessor: '6FS' + }, + { + TaskId: 8, TaskName: 'Production design', Movie: 'The Shape of Water', Predecessor: '7FS', + StartDate: new Date('03/05/2015 07:11:00 PM'), EndDate: new Date('03/05/2015 07:15:00 PM') + }, + { + TaskId: 9, TaskName: 'Oscar performance', column3: 'Second performance of the night is "Remember Me" from Coco', + StartDate: new Date('03/05/2015 07:16:00 PM'), EndDate: new Date('03/05/2015 07:23:00 PM'), Predecessor: '8FS' + }, + { + TaskId: 10, TaskName: 'Best foreign language film goes', Movie: 'A Fantastic Woman', Predecessor: '9FS', + StartDate: new Date('03/05/2015 07:24:00 PM'), EndDate: new Date('03/05/2015 07:29:00 PM') + }, + { + TaskId: 11, TaskName: 'Best supporting actress', Winner: 'Allison Janney', Movie: 'I, Tonya', + StartDate: new Date('03/05/2015 07:30:00 PM'), EndDate: new Date('03/05/2015 07:35:00 PM'), Predecessor: '10FS' + }, + { + TaskId: 12, TaskName: 'Best animated short', Winner: 'Kobe Bryant', Movie: 'Dear Basketball', + StartDate: new Date('03/05/2015 07:36:00 PM'), EndDate: new Date('03/05/2015 07:45:00 PM'), Predecessor: '11FS' + }, + { + TaskId: 13, TaskName: 'Award for best animated feature.', Movie: 'Coco', Predecessor: '12FS', + StartDate: new Date('03/05/2015 07:46:00 PM'), EndDate: new Date('03/05/2015 07:52:00 PM') + }, + { + TaskId: 14, TaskName: 'Best visual effects.', Movie: 'Blade Runner 2049', Predecessor: '13FS', + StartDate: new Date('03/05/2015 07:53:00 PM'), EndDate: new Date('03/05/2015 07:56:00 PM') + }, + { + TaskId: 15, TaskName: 'Achievement in film editing', Movie: 'Dunkirk', Predecessor: '14FS', + StartDate: new Date('03/05/2015 07:57:00 PM'), EndDate: new Date('03/05/2015 07:59:00 PM') + }, + { + TaskId: 16, TaskName: 'Oscar moments', column3: 'Jimmy Kimmel surprises moviegoers along with celebrities', + StartDate: new Date('03/05/2015 08:00:00 PM'), EndDate: new Date('03/05/2015 08:09:00 PM'), Predecessor: '15FS' + }, + { + TaskId: 17, TaskName: 'Best documentary short', Movie: 'Heaven is a Traffic Jam on the 405', Predecessor: '16FS', + StartDate: new Date('03/05/2015 08:10:00 PM'), EndDate: new Date('03/05/2015 08:12:00 PM') + }, + { + TaskId: 18, TaskName: 'Best live action short film', Movie: 'The Silent Child', Predecessor: '17FS', + StartDate: new Date('03/05/2015 08:13:00 PM'), EndDate: new Date('03/05/2015 08:15:00 PM') + }, + { + TaskId: 19, TaskName: 'Oscar performance', + column3: 'Jimmy Kimmel surprCommon and Andra Day performs "Stand Up for Something" by "Marshall"', + StartDate: new Date('03/05/2015 08:16:00 PM'), EndDate: new Date('03/05/2015 08:25:00 PM'), Predecessor: '18FS' + }, + { + TaskId: 20, TaskName: 'Oscar moments', + column3: 'The Oscars are showcasing the #MeToo and #TimesUp movements with a montage and interviews with actors and filmmakers', + StartDate: new Date('03/05/2015 08:26:00 PM'), EndDate: new Date('03/05/2015 08:29:00 PM'), Predecessor: '19FS' + }, + { + TaskId: 21, TaskName: 'Oscar for best adapted screenplay', Winner: 'James Ivory', Movie: 'Call Me By Your Name', + StartDate: new Date('03/05/2015 08:30:00 PM'), EndDate: new Date('03/05/2015 08:35:00 PM'), Predecessor: '20FS' + }, + { + TaskId: 22, TaskName: 'Oscar for best original screenplay', Winner: 'Jordan Peele', Movie: 'Get Out', + StartDate: new Date('03/05/2015 08:36:00 PM'), EndDate: new Date('03/05/2015 08:44:00 PM'), Predecessor: '21FS' + }, + { + TaskId: 23, TaskName: 'Oscar moments', + column3: 'Who’s trending on Twitter at the Oscars? Actors Timothée Chalamet, Chadwick Boseman,' + + 'Tom Holland, Lupita Nyong’o and Adam Rippon.', + StartDate: new Date('03/05/2015 08:40:00 PM'), EndDate: new Date('03/05/2015 08:45:00 PM'), Predecessor: '22FS' + }, + { + TaskId: 24, TaskName: 'Best cinematography', Winner: 'Roger A. Deakins', Movie: 'Blade Runner 2049', + StartDate: new Date('03/05/2015 08:46:00 PM'), EndDate: new Date('03/05/2015 08:48:00 PM'), Predecessor: '23FS' + }, + { + TaskId: 25, TaskName: 'Oscar performance', + column3: 'Keala Settle performs the nominated song "This is Me" from "The Greatest Showman".', + StartDate: new Date('03/05/2015 08:49:00 PM'), EndDate: new Date('03/05/2015 08:54:00 PM'), Predecessor: '24FS' + }, + { + TaskId: 26, TaskName: 'Best original score', Movie: 'The Shape of Water', Predecessor: '25FS', + StartDate: new Date('03/05/2015 08:55:00 PM'), EndDate: new Date('03/05/2015 08:59:00 PM') + }, + { + TaskId: 27, TaskName: 'Award for original song', Winner: 'Remember Me', Movie: 'Coco', Predecessor: '26FS', + StartDate: new Date('03/05/2015 09:00:00 PM'), EndDate: new Date('03/05/2015 09:07:00 PM') + }, + { + TaskId: 28, TaskName: 'Oscar moments', column3: 'Time to pay tribute to those in the cinema world we lost last year', + StartDate: new Date('03/05/2015 09:05:00 PM'), EndDate: new Date('03/05/2015 09:11:00 PM'), Predecessor: '27FS' + }, + { + TaskId: 29, TaskName: 'Oscar for best director', Winner: 'Guillermo del Toro', Movie: 'The Shape of Water', + StartDate: new Date('03/05/2015 09:12:00 PM'), EndDate: new Date('03/05/2015 09:19:00 PM'), Predecessor: '28FS' + }, + { + TaskId: 30, TaskName: 'Best actor in a leading role', Winner: 'Gary Oldman', Movie: 'The Shape of Water', + StartDate: new Date('03/05/2015 09:20:00 PM'), EndDate: new Date('03/05/2015 09:29:00 PM'), Predecessor: '29FS' + }, + { + TaskId: 31, TaskName: 'Best leading actress', Winner: 'Frances McDormand', Movie: 'Three Billboards Outside Ebbing, Missouri', + StartDate: new Date('03/05/2015 09:30:00 PM'), EndDate: new Date('03/05/2015 09:44:00 PM'), Predecessor: '30FS' + }, + { + TaskId: 32, TaskName: 'Oscar for best picture.', Movie: 'The Shape of Water', Predecessor: '31FS', + StartDate: new Date('03/05/2015 09:45:00 PM'), EndDate: new Date('03/05/2015 10:00:00 PM') + }, + { + TaskId: 33, TaskName: '90th Academy awards wind-up', Predecessor: '32FS', + StartDate: new Date('03/05/2015 10:00:00 PM'), EndDate: new Date('03/05/2015 10:00:00 PM'), Duration: 0 + } +]; + +export let projectResources: Object[] = [ + { resourceId: 1, resourceName: 'Project Manager' }, + { resourceId: 2, resourceName: 'Software Analyst' }, + { resourceId: 3, resourceName: 'Developer' }, + { resourceId: 4, resourceName: 'Testing Engineer' } +]; + +export let projectData: Object[] = [ + { + taskID: 1, + taskName: 'Project Schedule', + startDate: new Date('02/08/2019'), + endDate: new Date('03/15/2019'), + subtasks: [ + { + taskID: 2, + taskName: 'Planning', + startDate: new Date('02/08/2019'), + endDate: new Date('02/12/2019'), + subtasks: [ + { + taskID: 3, taskName: 'Plan timeline', startDate: new Date('02/08/2019'), + endDate: new Date('02/12/2019'), duration: 5, progress: '100', resourceId: [1] + }, + { + taskID: 4, taskName: 'Plan budget', startDate: new Date('02/08/2019'), + endDate: new Date('02/12/2019'), duration: 5, progress: '100', resourceId: [1] + }, + { + taskID: 5, taskName: 'Allocate resources', startDate: new Date('02/08/2019'), + endDate: new Date('02/12/2019'), duration: 5, progress: '100', resourceId: [1] + }, + { + taskID: 6, taskName: 'Planning complete', startDate: new Date('02/10/2019'), + endDate: new Date('02/10/2019'), duration: 0, predecessor: '3FS,4FS,5FS' + } + ] + }, { + taskID: 7, + taskName: 'Design', + startDate: new Date('02/15/2019'), + endDate: new Date('02/19/2019'), + subtasks: [ + { + taskID: 8, taskName: 'Software Specification', startDate: new Date('02/15/2019'), + endDate: new Date('02/17/2019'), duration: 3, progress: '60', predecessor: '6FS', resourceId: [2] + }, + { + taskID: 9, taskName: 'Develop prototype', startDate: new Date('02/15/2019'), + endDate: new Date('02/17/2019'), duration: 3, progress: '100', predecessor: '6FS', resourceId: [3] + }, + { + taskID: 10, taskName: 'Get approval from customer', startDate: new Date('02/18/2019'), + endDate: new Date('02/19/2019'), duration: 2, progress: '100', predecessor: '9FS', resourceId: [1] + }, + { + taskID: 11, taskName: 'Design complete', startDate: new Date('02/17/2019'), + endDate: new Date('02/17/2019'), duration: 0, predecessor: '10FS' + } + ] + }, + { + taskID: 12, + taskName: 'Implementation Phase', + startDate: new Date('02/25/2019'), + endDate: new Date('03/05/2019'), + subtasks: [ + { + taskID: 13, + taskName: 'Phase 1', + startDate: new Date('02/25/2019'), + endDate: new Date('03/07/2019'), + subtasks: [{ + taskID: 14, + taskName: 'Implementation Module 1', + startDate: new Date('02/25/2019'), + endDate: new Date('03/07/2019'), + subtasks: [ + { + taskID: 15, taskName: 'Development Task 1', startDate: new Date('02/22/2019'), + endDate: new Date('02/24/2019'), duration: 3, progress: '50', predecessor: '11FS', resourceId: [3] + }, + { + taskID: 16, taskName: 'Development Task 2', startDate: new Date('02/22/2019'), + endDate: new Date('02/24/2019'), duration: 3, progress: '50', predecessor: '11FS', resourceId: [3] + }, + { + taskID: 17, taskName: 'Testing', startDate: new Date('02/25/2019'), + endDate: new Date('02/26/2019'), duration: 2, progress: '0', predecessor: '15FS,16FS', resourceId: [4] + }, + { + taskID: 18, taskName: 'Bug fix', startDate: new Date('03/01/2019'), + endDate: new Date('03/02/2019'), duration: 2, progress: '0', predecessor: '17FS', resourceId: [3] + }, + { + taskID: 19, taskName: 'Customer review meeting', startDate: new Date('03/03/2019'), + endDate: new Date('03/07/2019'), duration: 2, progress: '0', predecessor: '18FS', resourceId: [1] + }, + { + taskID: 20, taskName: 'Phase 1 complete', startDate: new Date('03/05/2019'), + endDate: new Date('03/05/2019'), duration: 0, predecessor: '19FS' + } + + ] + }] + }, + + { + taskID: 21, + taskName: 'Phase 2', + startDate: new Date('02/25/2019'), + endDate: new Date('03/05/2019'), + subtasks: [{ + taskID: 22, + taskName: 'Implementation Module 2', + startDate: new Date('02/25/2019'), + endDate: new Date('03/05/2019'), + subtasks: [ + { + taskID: 23, taskName: 'Development Task 1', startDate: new Date('02/22/2019'), + endDate: new Date('02/25/2019'), duration: 4, progress: '50', resourceId: [3] + }, + { + taskID: 24, taskName: 'Development Task 2', startDate: new Date('02/22/2019'), + endDate: new Date('02/25/2019'), duration: 4, progress: '50', resourceId: [3] + }, + { + taskID: 25, taskName: 'Testing', startDate: new Date('02/26/2019'), + endDate: new Date('03/01/2019'), duration: 2, progress: '0', predecessor: '23FS,24FS', resourceId: [4] + }, + { + taskID: 26, taskName: 'Bug fix', startDate: new Date('03/02/2019'), + endDate: new Date('03/03/2019'), duration: 2, progress: '0', predecessor: '25FS', resourceId: [3] + }, + { + taskID: 27, taskName: 'Customer review meeting', startDate: new Date('03/07/2019'), + endDate: new Date('03/05/2019'), duration: 2, progress: '0', predecessor: '26FS', resourceId: [1] + }, + { + taskID: 28, taskName: 'Phase 2 complete', startDate: new Date('03/03/2019'), + endDate: new Date('03/03/2019'), duration: 0, predecessor: '27FS' + } + + ] + }] + }, + + { + taskID: 29, + taskName: 'Phase 3', + startDate: new Date('02/25/2019'), + endDate: new Date('03/07/2019'), + subtasks: [{ + taskID: 30, + taskName: 'Implementation Module 3', + startDate: new Date('02/25/2019'), + endDate: new Date('03/07/2019'), + subtasks: [ + { + taskID: 31, taskName: 'Development Task 1', startDate: new Date('02/22/2019'), + endDate: new Date('02/24/2019'), duration: 3, progress: '50', resourceId: [3] + }, + { + taskID: 32, taskName: 'Development Task 2', startDate: new Date('02/22/2019'), + endDate: new Date('02/24/2019'), duration: 3, progress: '50', resourceId: [3] + }, + { + taskID: 33, taskName: 'Testing', startDate: new Date('02/25/2019'), endDate: new Date('02/26/2019'), + duration: 2, progress: '0', predecessor: '31FS,32FS', resourceId: [4] + }, + { + taskID: 34, taskName: 'Bug fix', startDate: new Date('03/01/2019'), endDate: new Date('03/05/2019'), + duration: 2, progress: '0', predecessor: '33FS', resourceId: [3] + }, + { + taskID: 35, taskName: 'Customer review meeting', startDate: new Date('03/03/2019'), + endDate: new Date('03/04/2019'), duration: 2, progress: '0', predecessor: '34FS', + resourceId: [1] + }, + { + taskID: 36, taskName: 'Phase 3 complete', startDate: new Date('03/02/2019'), + endDate: new Date('03/02/2019'), duration: 0, predecessor: '35FS' + }, + + ] + }] + } + ] + }, + { + taskID: 37, taskName: 'Integration', startDate: new Date('03/08/2019'), endDate: new Date('03/10/2019'), duration: 3, + progress: '0', predecessor: '20FS,28FS,36FS', resourceId: [3] + }, + { + taskID: 38, taskName: 'Final Testing', startDate: new Date('03/11/2019'), endDate: new Date('03/12/2019'), duration: 2, + progress: '0', predecessor: '37FS', resourceId: [4] + }, + { + taskID: 39, taskName: 'Final Delivery', startDate: new Date('03/10/2019'), endDate: new Date('03/10/2019'), + duration: 0, predecessor: '38FS' + } + ] + } +]; + +export let baselineData: Object[] = [ + { + TaskId: 1, TaskName: 'Receive vehicle and create job card', BaselineStartDate: new Date('03/05/2018 10:00:00 AM'), + BaselineEndDate: new Date('03/05/2018 10:00:00 AM'), StartDate: new Date('03/05/2018 10:00:00 AM'), + EndDate: new Date('03/05/2018 10:00:00 AM') + }, + { + TaskId: 2, TaskName: 'Allot mechanic and send vehicle to service bay', BaselineStartDate: new Date('03/05/2018 10:00:00 AM'), + BaselineEndDate: new Date('03/05/2018 10:15:00 AM'), StartDate: new Date('03/05/2018 10:15:00 AM'), + EndDate: new Date('03/05/2018 10:20:00 AM') + }, + { + TaskId: 3, TaskName: 'Change the Receive vehicle and create job cardengine oil', + BaselineStartDate: new Date('03/05/2018 10:15:00 AM'), + BaselineEndDate: new Date('03/05/2018 10:45:00 AM'), StartDate: new Date('03/05/2018 10:20:00 AM'), + EndDate: new Date('03/05/2018 10:35:00 AM') + }, + { + TaskId: 4, TaskName: 'Replace the oil filter', BaselineStartDate: new Date('03/05/2018 10:45:00 AM'), + BaselineEndDate: new Date('03/05/2018 11:15:00 AM'), StartDate: new Date('03/05/2018 10:35:00 AM'), + EndDate: new Date('03/05/2018 11:00:00 AM') + }, + { + TaskId: 5, TaskName: 'Replace the air filter', BaselineStartDate: new Date('03/05/2018 10:45:00 AM'), + BaselineEndDate: new Date('03/05/2018 11:15:00 AM'), StartDate: new Date('03/05/2018 10:35:00 AM'), + EndDate: new Date('03/05/2018 11:00:00 AM') + }, + { + TaskId: 6, TaskName: 'Replace the fuel filter', BaselineStartDate: new Date('03/05/2018 11:15:00 AM'), + BaselineEndDate: new Date('03/05/2018 11:25:00 AM'), StartDate: new Date('03/05/2018 11:00:00 AM'), + EndDate: new Date('03/05/2018 11:20:00 AM') + }, + { + TaskId: 7, TaskName: 'Replace the cabin filter', BaselineStartDate: new Date('03/05/2018 11:00:00 AM'), + BaselineEndDate: new Date('03/05/2018 11:20:00 AM'), StartDate: new Date('03/05/2018 11:00:00 AM'), + EndDate: new Date('03/05/2018 11:25:00 AM') + }, + { + TaskId: 8, TaskName: 'Replace the spark plugs', BaselineStartDate: new Date('03/05/2018 11:00:00 AM'), + BaselineEndDate: new Date('03/05/2018 11:30:00 AM'), StartDate: new Date('03/05/2018 11:25:00 AM'), + EndDate: new Date('03/05/2018 11:45:00 AM') + }, + { + TaskId: 9, TaskName: 'Check level and refill brake fluid/clutch fluid', BaselineStartDate: new Date('03/05/2018 11:20:00 AM'), + BaselineEndDate: new Date('03/05/2018 11:40:00 AM'), StartDate: new Date('03/05/2018 11:30:00 AM'), + EndDate: new Date('03/05/2018 11:50:00 AM') + }, + { + TaskId: 10, TaskName: 'Check Brake Pads/Liners, Brake Discs/Drums, and replace if worn out.', + BaselineStartDate: new Date('03/05/2018 11:40:00 AM'), + BaselineEndDate: new Date('03/05/2018 12:00:00 PM'), StartDate: new Date('03/05/2018 11:50:00 AM'), + EndDate: new Date('03/05/2018 12:20:00 PM') + }, + { + TaskId: 11, TaskName: 'Check level and refill power steering fluid', BaselineStartDate: new Date('03/05/2018 11:40:00 AM'), + BaselineEndDate: new Date('03/05/2018 12:00:00 PM'), StartDate: new Date('03/05/2018 11:50:00 AM'), + EndDate: new Date('03/05/2018 12:15:00 PM') + }, + { + TaskId: 12, TaskName: 'Check level and refill Automatic/Manual Transmission Fluid', + BaselineStartDate: new Date('03/05/2018 12:00:00 PM'), + BaselineEndDate: new Date('03/05/2018 12:35:00 PM'), StartDate: new Date('03/05/2018 11:50:00 AM'), + EndDate: new Date('03/05/2018 12:20:00 PM') + }, + { + TaskId: 13, TaskName: 'Grease and lubricate components', BaselineStartDate: new Date('03/05/2018 12:20:00 PM'), + BaselineEndDate: new Date('03/05/2018 12:35:00 PM'), StartDate: new Date('03/05/2018 12:20:00 PM'), + EndDate: new Date('03/05/2018 12:45:00 PM') + }, + { + TaskId: 14, TaskName: 'Inspect and replace the timing belt or timing chain if needed', + BaselineStartDate: new Date('03/05/2018 12:35:00 PM'), + BaselineEndDate: new Date('03/05/2018 1:00:00 PM'), StartDate: new Date('03/05/2018 12:45:00 PM'), + EndDate: new Date('03/05/2018 1:00:00 PM') + }, + { + TaskId: 15, TaskName: 'Wheel Balancing', BaselineStartDate: new Date('03/05/2018 1:00:00 PM'), + BaselineEndDate: new Date('03/05/2018 1:20:00 PM'), StartDate: new Date('03/05/2018 1:00:00 PM'), + EndDate: new Date('03/05/2018 1:45:00 PM') + }, + { + TaskId: 16, TaskName: 'Wheel Alignment', BaselineStartDate: new Date('03/05/2018 1:20:00 PM'), + BaselineEndDate: new Date('03/05/2018 1:45:00 PM'), StartDate: new Date('03/05/2018 1:45:00 PM'), + EndDate: new Date('03/05/2018 2:45:00 PM') + }, + { + TaskId: 17, TaskName: 'Check for proper operation of all lights, wipers etc.', BaselineStartDate: new Date('03/05/2018 1:50:00 PM'), + BaselineEndDate: new Date('03/05/2018 02:30:00 PM'), StartDate: new Date('03/05/2018 02:45:00 PM'), + EndDate: new Date('03/05/2018 03:30:00 PM') + }, + { + TaskId: 18, TaskName: 'Check for any Error codes in the ECU and take corrective action.', + BaselineStartDate: new Date('03/05/2018 2:30:00 PM'), + BaselineEndDate: new Date('03/05/2018 3:30:00 PM'), StartDate: new Date('03/05/2018 03:30:00 PM'), + EndDate: new Date('03/05/2018 04:15:00 PM') + }, + { + TaskId: 19, TaskName: 'Use scan tool read trouble code', BaselineStartDate: new Date('03/05/2018 03:30:00 PM'), + BaselineEndDate: new Date('03/05/2018 04:45:00 PM'), StartDate: new Date('03/05/2018 04:15:00 PM'), + EndDate: new Date('03/05/2018 04:45:00 PM') + }, + { + TaskId: 20, TaskName: 'Exterior washing', BaselineStartDate: new Date('03/05/2018 04:45:00 PM'), + BaselineEndDate: new Date('03/05/2018 05:15:00 PM'), StartDate: new Date('03/05/2018 04:45:00 PM'), + EndDate: new Date('03/05/2018 05:30:00 PM') + }, + { + TaskId: 21, TaskName: 'Interior vacuuming', BaselineStartDate: new Date('03/05/2018 05:15:00 PM'), + BaselineEndDate: new Date('03/05/2018 05:45:00 PM'), StartDate: new Date('03/05/2018 05:30:00 PM'), + EndDate: new Date('03/05/2018 06:00:00 PM') + }, + { + TaskId: 22, TaskName: 'Final service inspection', BaselineStartDate: new Date('03/05/2018 05:45:00 PM'), + BaselineEndDate: new Date('03/05/2018 06:00:00 PM'), StartDate: new Date('03/05/2018 06:00:00 PM'), + EndDate: new Date('03/05/2018 06:30:00 PM') + }, + { + TaskId: 23, TaskName: 'Vehicle handover', BaselineStartDate: new Date('03/05/2018 06:00:00 PM'), + BaselineEndDate: new Date('03/05/2018 06:00:00 PM'), StartDate: new Date('03/05/2018 06:30:00 PM'), + EndDate: new Date('03/05/2018 06:30:00 PM') + } +]; diff --git a/frontend/src/environments/environment.prod.ts b/frontend/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/frontend/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/frontend/src/environments/environment.ts b/frontend/src/environments/environment.ts new file mode 100644 index 0000000..f56ff47 --- /dev/null +++ b/frontend/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. diff --git a/frontend/src/favicon.ico b/frontend/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + SyncfusionGantt + + + + + + + + diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..61c6cc9 --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,14 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import {registerLicense} from '@syncfusion/ej2-base' +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; +registerLicense("ORg4AjUWIQA/Gnt2VVhjQlFaclhJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxRd0djW39ZdXZRRWNfUkQ="); +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); + + diff --git a/frontend/src/ntt-gantt/ntt-gantt.component.css b/frontend/src/ntt-gantt/ntt-gantt.component.css new file mode 100644 index 0000000..e6869f1 --- /dev/null +++ b/frontend/src/ntt-gantt/ntt-gantt.component.css @@ -0,0 +1,39 @@ +.example-radio-group { + display: flex; + flex-direction: column; + margin: 15px 0; + align-items: flex-start; +} + +.example-radio-button { + margin: 5px; +} + +#topbar { + display: flex; + flex-direction: row; + margin: 15px 0; + align-items: flex-start; + +} + +.mat-mdc-form-field + .mat-mdc-form-field { + margin-left: 8px; +} + +.toggleContainer{ + display: flex; + flex-direction: column; + align-items: flex-start; + margin-top: 0.5%; + width: 100%; +} + +.filter{ + margin-top: 0.5%; + margin-left: 1%; +} + +.checkbox{ + margin: 0 0.5%; +} diff --git a/frontend/src/ntt-gantt/ntt-gantt.component.html b/frontend/src/ntt-gantt/ntt-gantt.component.html new file mode 100644 index 0000000..bfccad9 --- /dev/null +++ b/frontend/src/ntt-gantt/ntt-gantt.component.html @@ -0,0 +1,181 @@ +
                + + Enter a date range + + + + + MM/DD/YYYY – MM/DD/YYYY + + + + Invalid start date + Invalid end date + + + + + + {{scalar}} + + + +
                + Details Anzeigen + Filter anwenden + Sortieren +
                + + + + +
                + + + +
                + +
                + + + + + + + + + + + + + diff --git a/frontend/src/ntt-gantt/ntt-gantt.component.spec.ts b/frontend/src/ntt-gantt/ntt-gantt.component.spec.ts new file mode 100644 index 0000000..66b54fb --- /dev/null +++ b/frontend/src/ntt-gantt/ntt-gantt.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NttGanttComponent } from './ntt-gantt.component'; + +describe('NttGanttComponent', () => { + let component: NttGanttComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ NttGanttComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(NttGanttComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/ntt-gantt/ntt-gantt.component.ts b/frontend/src/ntt-gantt/ntt-gantt.component.ts new file mode 100644 index 0000000..04a7a6a --- /dev/null +++ b/frontend/src/ntt-gantt/ntt-gantt.component.ts @@ -0,0 +1,833 @@ +import { FilterDialogComponent } from './../app/filter-dialog/filter-dialog.component'; +import { filteredData } from './../data'; +import { ImplementerDialogComponent } from './../app/implementer-dialog/implementer-dialog.component'; +import { Component, Inject, OnInit, ViewChild } from '@angular/core'; +import { MatPaginator, PageEvent } from '@angular/material/paginator'; +import { GanttComponent } from '@syncfusion/ej2-angular-gantt'; +import { DataService } from 'src/app/data.service'; +import { projectNewData } from 'src/data'; +import {FormGroup, FormControl} from '@angular/forms'; +import {MatDialog} from '@angular/material/dialog'; +import * as $ from 'jquery'; +import { StateDialogComponent } from 'src/app/state-dialog/state-dialog.component'; +import { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar'; + + +@Component({ + selector: 'ntt-gantt', + templateUrl: './ntt-gantt.component.html', + styleUrls: ['./ntt-gantt.component.css'] +}) +export class NttGanttComponent implements OnInit { + @ViewChild('ganttObject') + public ganttDefault!: GanttComponent; + + @ViewChild(MatPaginator) paginator: MatPaginator; + + public range = new FormGroup({ + start: new FormControl(new Date('12/01/2022')), + end: new FormControl(new Date('01/31/2024')), + }); + + public data: any[] = []; + public allResources: any[] = []; + public resources: any[] = []; + public taskSettings: object = {}; + public labelSettings: object = {}; + public projectStartDate: Date = new Date('12/01/2022'); + public projectEndDate: Date = new Date('01/31/2024'); + public resourceFields: object ={}; + public editSettings: object = {}; + public columns: object[] = []; + public toolbar: any[] = []; + public timelineSettings: object ={}; + public rendering: boolean = true; + public blockedTaskIDs : number [] = [8]; + public selectionSettings : object = {}; + public spin:boolean = true; + public sliceStart: number; + public sliceEnd: number; + public filterSettings: object; + public renderGantt: boolean; + public firstLoad: boolean; + public selectedScalar: string = 'Monat-Woche'; + public scalars: string[] = ['Woche-Tag', 'Monat-Woche', 'Jahr-Monat']; + public showDetails: boolean = true; + public panelOpenState:boolean; + public attributes: any[] = [ + //{value: 'vertrag', viewValue: 'WI Vertrag'}, + {value: 'resourceName', viewValue: 'Name'}, + {value: 'status', viewValue: 'Status'}, + //{value: 'implementer', viewValue: 'Implementer'}, + {value: 'changeid', viewValue: 'Change Id'}, + ]; + + public paketTypeList: any[] = [ + {name: 'Paket Typ A', checked: false}, + {name: 'Paket Typ B', checked: false}, + {name: 'Paket Typ C', checked: false}, + ]; + + public stateList: any[] = []; + + public vertragList: any[] = [ + {name: 'Vertrag A', checked: false}, + {name: 'Vertrag B', checked: false}, + {name: 'Vertrag C', checked: false}, + ]; + + public supportGroupList: any[] = [ + {name: 'SM ITSM', id: 'SG0001' }, + {name: 'Support Group B', id: 'SG0002' }, + {name: 'Support Group C', id: 'SG0003' }, + ]; + public selectedSupportGroup: any = this.supportGroupList[0]; + + public filterStartDate: Date; + public filterEndDate: Date; + + + public selectedAttribute: string; + public showFilters: boolean = false; + + // ["=",">","<","beinhaltet"]; + public selectedFilter: string; + public showCriterea: boolean = false; + public criteria: string = ''; + public filterEnabled: boolean = false; + public filters:any = null; + public sortEnabled: boolean = false; + public sortedData: any[] = []; + + private selectedRescourceIds : any[] = []; + private selectedrowindex: number[] = []; + private selectedrecords: any[] = []; + private selRecs: any[] = []; + public states : any[] = []; + private approvalPending: boolean; + public sort = null; + public oldSort = null; + + + /** + * The constructor injects required dependencies + * @param dataService injects the dataService for data management and backend communication + * @param matDialog injects the matDialog + */ + constructor(public dataService: DataService, public matDialog : MatDialog, private _snackBar: MatSnackBar ) { + + } + + + + + + + /** + * The function ngOnInit sets values which are required for rendering the gantt Chart. Furthermore it trims the resources (Changes Array) and sets the paginator to the first page. + */ + public ngOnInit(): void { + var WebFont = require('webfontloader'); + WebFont.load({ + google: { + families: [ + 'Material Icons', + ], + }, + }); + this.renderGantt = false; + this.firstLoad = true; + this.sliceStart = 0; + this.sliceEnd = 20; + // this.dataService.fetchChanges().then((res: any[])=>{ + // console.log(res); + // this.allResources = res; + // this.mapTasksToResources(0,20); + // this.range = new FormGroup({ + // start: new FormControl(new Date('12/01/'+(new Date().getFullYear()-1))), + // end: new FormControl(new Date('01/31/'+(new Date().getFullYear()+1))), + // }); + // this.renderGantt = true; + // }); + this.refreshData() + this.states = this.dataService.getStates(); + this.dataService.fetchStates().then((res: any [])=>{ + this.states = res; + this.stateList = res; + console.log(this.states); + }); + + + this.filterSettings = { + ignoreAccent: true + // columns: [ + // { field: 'vertrag', matchCase: false, operator: 'startswith', predicate: 'and', value: 'WV' }, + // ] + }; + + this.taskSettings = { + id: 'TaskID', + name: 'TaskName', + startDate: 'StartDate', + endDate: 'EndDate', + duration: 'Duration', + progress: 'Progress', + dependency: 'Predecessor', + resourceInfo: 'resources', + work: 'work', + expandState: 'isExpand', + child: 'subtasks', + isFixed: 'isFixed', + vertrag: 'vertrag' + }; + this.resourceFields = { + id: 'resourceId', + name: 'resourceName', + unit: 'Unit', + group: 'resourceGroup', + state: 'state', + stateName: 'stateName', + isRes: 'isRes', + vertrag: 'vertrag', + vertragName: 'vertragName', + supportGroup: 'supportGroup', + supportGroupId: 'supportGroupId', + implementerEdit: 'implementerEdit' + }; + this.editSettings = { + allowAdding: true, + allowEditing: true, + allowDeleting: true, + allowTaskbarEditing: true, + showDeleteConfirmDialog: true + }; + + this.selectionSettings = { + mode: 'Row', + type: 'Multiple', + }; + + this.columns = [ + { field: 'TaskName', headerText: 'Kurzbeschreibung', width: 250 }, + { field: 'stateName', headerText: 'Status', width: 250}, + { field: 'vertragName', headerText: 'Vertrag / Provider Cluster', width: 150 }, + { field: 'supportGroup', headerText: 'Gewählte Support Gruppe' }, + { field: 'StartDate', headerText: 'Geplantes Start-Datum'}, + // { field: 'approvalStatus', headerText: 'Active Approval', width: 100 }, + // { field: 'supportGroupId' }, + //{ field: 'Duration' }, + //{ field: 'TaskID', headerText: 'Taks ID', width: 250 }, + //{ field: 'work', headerText: 'Work' }, + //{ field: 'Progress' }, + //{ field: 'resourceGroup', headerText: 'Group' }, + ]; + + this.toolbar = ['Cancel']; + this.labelSettings = { + rightLabel: 'resources', + taskLabel: 'TaskName' + }; + + this.timelineSettings= { + topTier: { + //format: 'YYYY', + unit: 'Month' + }, + bottomTier: { + format: 'WW', + unit: 'Week', + count: 1 + } + }; + this.projectStartDate = this.range.controls.start.value; + this.projectEndDate = this.range.controls.end.value; + } + /** + * The function taskbarEditing catches the corresponding syncfsuions event and cancels the user action if the isFixed flag of a task (Date) is set true + * @param args event arguments from the syncfusion gantt chart + */ + public taskbarEditing(args: any) { + if(args.data.taskData.isFixed !== false ) { + args.cancel = true; + } + } + + public renderDetails(){ + // console.log(this.showDetails); + if(this.showDetails == false){ + this.refreshData(); + }else{ + this.refreshData(); + } + + } + + public changeScalar(){ + if(this.selectedScalar == "Woche-Tag"){ + this.timelineSettings= { + topTier: { + //format: 'WW', + unit: 'Week' + }, + bottomTier: { + format: 'dd', + unit: 'Day', + count: 1 + } + }; + } + + if(this.selectedScalar == "Monat-Woche"){ + this.timelineSettings= { + topTier: { + //format: 'YYYY', + unit: 'Month' + }, + bottomTier: { + format: 'WW', + unit: 'Week', + count: 1 + } + }; + } + + if(this.selectedScalar == "Jahr-Monat"){ + this.timelineSettings= { + topTier: { + //format: 'YYYY', + unit: 'Year' + }, + bottomTier: { + format: 'MM', + unit: 'Month', + count: 1 + } + }; + } + + } + + /** + * The function taskbarEdited catches the corresponding syncfsuions event and cancels the user action if the isFixed flag of a task (Date) is set true + * If the isFixed flag is false, it triggers the dataService to update the moved date + * @param args event arguments from the syncfusion gantt chart + */ + public taskbarEdited(args: any){ + if(args.data.taskData.isFixed !== false ) { + args.cancel = true; + }else{ + const found = this.allResources.find((resource) => { + return resource.resourceId == args.data.taskData.resources[0].resourceId; + }); + this.dataService.updateDatePerChange(found); + + } + } + + /** + * The function queryTaskbarInfo catches the corresponding syncfsuions event and colors the respective diamond depending on the status + * @param args event arguments from the syncfusion gantt chart + */ + public queryTaskbarInfo(args: any) { + if(args.data.taskData.isRes == false){ + if(args.data.taskData.TaskID.includes("D2")){ + if (args.data.taskData.resources[0].state == 0 ) { + args.milestoneColor = "red"; + } + if (args.data.taskData.resources[0].state == 1 ) { + args.milestoneColor = "orange"; + } + if (args.data.taskData.resources[0].state == 3 ) { + args.milestoneColor = "yellow"; + } + if (args.data.taskData.resources[0].state == 6 ) { + args.milestoneColor = "lightgreen"; + } + if (args.data.taskData.resources[0].state >= 10 ) { + args.milestoneColor = "lightgrey"; + } + }else{ + if (args.data.taskData.TaskID.includes("D1")||args.data.taskData.TaskID.includes("D4")){ + if(this.showDetails == false){ + args.taskbarElement.innerHTML = ""; + } + } + } + } + } + + /** + * The function onExpand catches the corresponding syncfsuions event and avoids a chart row from beeing expanded by the user + * @param args event arguments from the syncfusion gantt chart + */ + public onExpand(args: any){ + args.cancel = true; + } + + /** + * The function actionBegin catches the corresponding syncfsuions event + * @param event event arguments from the syncfusion gantt chart + */ + + + /** + * The function mapTasksToResources slices the allResources array to the resources array according the actual page conditions maps the actual tasks (Dates) to the actual resources (Changes) + * This function is triggered when a pageEvent is thrown respectively a user changes the page on the paginator + * @param start begin of slice + * @param end end of slice + */ + public mapTasksToResources(start : number, end : number){ + this.data = []; + this.resources = this.allResources; //.slice(start, end); + for (const resource of this.resources) { + for (const task of resource.tasks) { + this.data.push(task); + } + } + } + + /** + * The function load catches the corresponding syncfsuions event and triggers the loading spinner to start while the gantt chart is refrehshing + * @param args event arguments from the syncfusion gantt chart + */ + public load(args: any) { + this.spin = true; + } + + /** + * The function dataBound catches the corresponding syncfsuions event and stops the loading spinner + * @param args event arguments from the syncfusion gantt chart + */ + public dataBound(args: any) { + this.spin = false; + } + + /** + * The function created catches the corresponding syncfsuions event and stops the internal loading spinner + * @param args event arguments from the syncfusion gantt chart + */ + public created(args: any) { + this.ganttDefault.hideSpinner(); + this.ganttDefault.treeGrid.grid.hideSpinner(); + + } + + /** + * The function onChange catches the corresponding syncfsuions event + * @param args event arguments from the syncfusion gantt chart + */ + public onChange(args: any){ + + } + + /** + * The function handlePageEvent catches the corresponding matpaginator event and slices the gantt chart, that it fits to the actual page + * @param e pageEvent from the matpaginator + */ + public handlePageEvent(e: PageEvent):void { + let start = e.pageSize*e.pageIndex; + let end = start+ e.pageSize; + this.sliceStart = start; + this.sliceEnd = end; + //this.mapTasksToResources(start, end); + //this.quickRefresh(); + this.refreshData(); + // this.ganttDefault.dataSource = this.data; + // this.ganttDefault.resources = this.resources; + // this.ganttDefault.refresh(); + + } + + /** + * The function startDateChanged catches the corresponding date-range-picker event + * @param startDate new startDate from date-range-picker + */ + public startDateChanged(startDate: any){ + } + + /** + * The function endDateChanged catches the corresponding date-range-picker event and validates the selected start- and enddate bacause the gantt chart needs a valid Date to be displayed + * @param endDate new endDate from date-range-picker + */ + public endDateChanged(endDate: any){ + if(this.range.status == 'VALID' && this.range.controls.start.value && this.range.controls.end.value){ //event for Requesting new Records based on the Dates + } + + } + + /** + * The function rowSelected catches the corresponding syncfsuions event and checks if all selected resources (changes) have the same status, then it displays the corresponding buttons + * @param args event arguments from the syncfusion gantt chart + */ + public rowSelected(args: any) { + this.approvalPending = false; + this.selectedrowindex = this.ganttDefault.selectionModule.getSelectedRowIndexes(); // get the selected row indexes. + this.selectedrecords = this.ganttDefault.selectionModule.getSelectedRecords(); // get the selected records. + this.selRecs=[]; + if(this.selectedrowindex.length>this.resources.length-1){ + for (const record of this.selectedrecords) { + if(record.taskData.isRes == true){ + this.selRecs.push(record); + } + } + }else{ + this.selRecs = this.selectedrecords; + } + let allStates: boolean = true; + this.selectedRescourceIds = []; + for (const change of this.selRecs) { + if(change.taskData.approvalStatus == 1){ + this.approvalPending = true; + } + if(change.taskData.state == this.selRecs[0].taskData.state){ + if(allStates){ + allStates = true; + } + this.selectedRescourceIds.push(change.taskData.resourceId); + }else{ + allStates = false; + } + } + if(allStates){ + if(this.approvalPending == true){ + this.toolbar = ['Cancel',{text: "Genehmigen", id: "7"},{text: "Ablehnen", id: "8"}]; + } + else{ + if(this.selRecs[0].taskData.state > 0 &&this.selRecs[0].taskData.state < 4){ + this.toolbar = ['Cancel',{text: "Statusübergang", id: "6"} ,{text: "Implementer eintragen", id: "10"}]; + }else{ + this.toolbar = ['Cancel',{text: "Statusübergang", id: "6"}]; + } + } + }else{ + this.toolbar = ['Cancel']; + } + + this.approvalPending = false; + this.selRecs = []; + this.selectedrecords = []; + this.selectedrowindex = []; + + } + + /** + * The function rowDeselected catches the corresponding syncfsuions event + * When a line is deselected, it is checked if all resource states are equal after deselecting a resource, if they are equal then the respective buttons are displayed + * @param args event arguments from the syncfusion gantt chart + */ + public rowDeselected(args: any){ + this.selectedRescourceIds.forEach((element,index)=>{ + if(element == args.data.taskData.resourceId) delete this.selectedRescourceIds[index]; //TODO: auf memoryLeak prüfen + }); + + this.selectedrowindex= this.ganttDefault.selectionModule.getSelectedRowIndexes(); // get the selected row indexes. + this.selectedrecords= this.ganttDefault.selectionModule.getSelectedRecords(); // get the selected records. + this.selRecs = []; + if(this.selectedrowindex.length>this.resources.length-1){ + for (const record of this.selectedrecords) { + if(record.taskData.isRes == true){ + this.selRecs.push(record); + } + } + }else{ + this.selRecs = this.selectedrecords; + } + let allStates: boolean = true; + this.selectedRescourceIds = []; + for (const change of this.selRecs) { + if(change.taskData.state == this.selRecs[0].taskData.state){ + if(change.taskData.approvalStatus == 1){ + this.approvalPending = true; + } + if(allStates){ + allStates = true; + } + this.selectedRescourceIds.push(change.taskData.resourceId); + }else{ + allStates = false; + } + } + if(allStates){ + if(this.approvalPending == true){ + this.toolbar = ['Cancel',{text: "Genehmigen", id: "7"},{text: "Ablehnen", id: "8"}]; + } + else{ + if(this.selRecs[0].taskData.state > 0 &&this.selRecs[0].taskData.state < 4){ + this.toolbar = ['Cancel',{text: "Statusübergang", id: "6"} ,{text: "Implementer eintragen", id: "10"}]; + }else{ + this.toolbar = ['Cancel',{text: "Statusübergang", id: "6"}]; + } + } + }else{ + this.toolbar = ['Cancel']; + } + this.selRecs = []; + this.selectedrecords = []; + this.selectedrowindex = []; + this.approvalPending = false; + + } + + /** + * The function toolbarBtnClicked catches the corresponding syncfsuions event and executes the button logic when a button is clicked + * @param args + */ + public toolbarBtnClicked(args :any){ + if(args.item.text === "Statusübergang"){ + let data = {changes: [], states: this.states}; + for (const selectedRescourceId of this.selectedRescourceIds) { + for (const iterator of this.resources) { + if(iterator.resourceId == selectedRescourceId){ + data.changes.push({resourceId: iterator.resourceId, changeNr: iterator.changeNr, currentState: iterator.state}); + } + } + } + let dialogRef = StateDialogComponent; + this.matDialog.open(dialogRef, + { + data : data, + }).afterClosed().subscribe((res)=>{ + if(res=="Success"){ + this.refreshData(); + } + + }); + } + + if(args.item.text === "Implementer eintragen"){ + let data = {changes: []}; + for (const selectedRescourceId of this.selectedRescourceIds) { + for (const change of this.resources) { + if(change.resourceId == selectedRescourceId){ + // console.log(change); + data.changes.push({resourceId: change.resourceId, pkgId: change.changeNr, supportGroupId: change.supportGroupId}); + } + } + } + this.matDialog.open(ImplementerDialogComponent, + { + data : data, + }); + + } + + if(args.item.text === "Genehmigen"){ + for (const selectedRescourceId of this.selectedRescourceIds) { + for (const change of this.resources) { + if(change.resourceId == selectedRescourceId){ + this.dataService.approve(change); + } + } + } + //this.ganttDefault.refresh(); + } + + + if(args.item.text === "ablehnen"){ + for (const selectedRescourceId of this.selectedRescourceIds) { + for (const iterator of this.resources) { + if(iterator.resourceId == selectedRescourceId){ + for (const i of iterator.tasks) { + i.isFixed = true; + } + iterator.state = iterator.state - 1; + this.dataService.updateDatePerChange(iterator); + } + } + } + this.ganttDefault.refresh(); + } + } + + quickRefresh(){ + this.renderGantt = false; + let newData = []; + for (const dat of this.data) { + newData.push(dat); + } + this.data = newData; + this.renderGantt = true; + } + + refreshData(){ + this.renderGantt = false; + this.dataService.fetchChanges(this.mapRequestJSON()).then((res: any[])=>{ + this.allResources = res; + this.mapTasksToResources(this.sliceStart,this.sliceEnd); + // console.log(this.allResources) + this.renderGantt = true; + }); + + // this.mapTasksToResources(this.sliceStart, this.sliceEnd); + // this.data = []; + // this.resources = this.allResources.slice(this.sliceStart, this.sliceEnd); + // for (const resource of this.resources) { + // for (const task of resource.tasks) { + // this.data.push(task); + // } + // } + + } + + mapRequestJSON(){ + let request = + { + 'sliceStart': this.sliceStart, + 'sliceEnd': this.sliceEnd, + filter: this.filterEnabled ? this.filters : null, + sort: this.sortEnabled ? this.sort : { + 'column': 'ChangeNr', +        'mode': 'asc' + }, + + } + return request; + } +private oldFilters:{}; + applyFilter(){ + if(this.filterEnabled){ + this.oldFilters = this.filters + this.filters = null; + this.refreshData(); + }else{ + this.filters = this.oldFilters; + this.refreshData(); + } + + } + openFilterDialog(){ + let dialogRef = FilterDialogComponent; + this.matDialog.open(dialogRef, + { + data : [], + height: '70%', + width: '80%' + }).afterClosed().subscribe((res)=>{ + if(res){ + // console.log(res); + this.filters = res; + this.filterEnabled = true; + this.refreshData(); + } + }); + + + } + + + + public buildFilterObject(){ + this.filterEnabled = true; + let filter = [] + let critPaketTypeFilter = []; + let critStateTypeFilter = []; + let critVertragTypeFilter = []; + let critSupportGroupfilter = {}; + let critDateFilter = {}; + let critTextFilter = {}; + + + for (const paketType of this.paketTypeList) { + if(paketType.checked == true){ + critPaketTypeFilter.push(paketType.name); + } + } + + if(critPaketTypeFilter.length > 0){ + filter.push({ + "column": "paketType", +        "filter": "equals", +        "criteria": critPaketTypeFilter + }); + } + + for (const state of this.stateList) { + if(state.checked == true){ + critStateTypeFilter.push(state.stateNameEN); + } + } + + if(critStateTypeFilter.length > 0){ + filter.push({ + "column": "State", +        "filter": "equals", +        "criteria": critStateTypeFilter + }); + } + + for (const vertrag of this.vertragList) { + if(vertrag.checked == true){ + critVertragTypeFilter.push(vertrag.name); + } + } + + if(critVertragTypeFilter.length > 0){ + filter.push({ + "column": "Contract", +       "filter": "equals", +       "criteria": critVertragTypeFilter + }); + } + +// filter.push({ +// "column": "supportGroup", +//       "filter": "equals", +//       "criteria": [this.selectedSupportGroup.id] +// }); + + if(this.filterStartDate != null && this.filterEndDate != null){ + filter.push({ + "column": "D2", +       "filter": "dateRange", +       "criteria": [this.filterStartDate, this.filterEndDate] + }); + } + + if(this.criteria != null && this.criteria != ""){ + filter.push({ + "column": "ResourceName", +       "filter": "contains", +       "criteria": [this.criteria] + }); + } + this.filters = filter; + this.refreshData(); + } + public actionBegin(args: any) { + // console.log(args); //custom Action + if(args.requestType=='sorting'){ + let colName = ""; + let mode = "asc"; + args.cancel = true; + + switch (args.columnName) { + case 'TaskName': + colName = 'ResourceName'; + break; + case 'stateName': + colName = 'State'; + break; + case 'supportGroup': + colName = 'SupportGroup'; + break; + case 'approvalStatus': + colName = 'ApprovalStatus'; + break; + default: + break; + } + if(colName != ''){ + this.sortEnabled = true; + if(this.oldSort != null && this.oldSort.column == this.sort.column){ + mode = 'dsc' + } + this.oldSort = this.sort; + this.sort = { + 'column': colName, + 'mode': mode + } + this.refreshData(); + } + } + } +} diff --git a/frontend/src/polyfills.ts b/frontend/src/polyfills.ts new file mode 100644 index 0000000..429bb9e --- /dev/null +++ b/frontend/src/polyfills.ts @@ -0,0 +1,53 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes recent versions of Safari, Chrome (including + * Opera), Edge on the desktop, and iOS and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/frontend/src/styles.css b/frontend/src/styles.css new file mode 100644 index 0000000..9fa0e4e --- /dev/null +++ b/frontend/src/styles.css @@ -0,0 +1,16 @@ +@import '../node_modules/@syncfusion/ej2-material-theme/styles/material.css'; +/* You can add global styles to this file, and also import other style files */ +@import '../node_modules/@syncfusion/ej2-base/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-buttons/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-calendars/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-dropdowns/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-inputs/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-lists/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-layouts/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-navigations/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-popups/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-grids/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-treegrid/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-gantt/styles/material.css'; + diff --git a/frontend/src/test.ts b/frontend/src/test.ts new file mode 100644 index 0000000..c04c876 --- /dev/null +++ b/frontend/src/test.ts @@ -0,0 +1,26 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + (id: string): T; + keys(): string[]; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), +); + +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().forEach(context); diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/frontend/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..36b866c --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,32 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": false, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2020", + "module": "es2020", + "lib": [ + "es2020", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/frontend/tsconfig.spec.json b/frontend/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/frontend/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +}