From 1788c96aea9247cc36ef8b82734997f1a6a92fb4 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 23 八月 2024 11:07:42 +0800 Subject: [PATCH] 新增新版本。静安区特供版 --- src/composables/fetchData.js | 1 src/utils/chart/chart-option.js | 13 src/constant/radio-options/options-jingan.js | 31 src/utils/map/dialog.js | 26 src/model/Factor.js | 1 src/api/missionApi.js | 18 src/components/search/SearchBar.vue | 27 src/components/search/OptionTime.vue | 47 src/components/map/MapScene.vue | 1 src/components/map/MapToolbox.vue | 36 src/components/monitor/DataTable.vue | 13 src/lib/jquery.xml2json.js | 200 ++ src/constant/scene-types/options-jingan.js | 93 src/constant/device-type.js | 54 src/components/search/OptionType copy.vue | 54 src/views/realtimemode/component/DeviceChange.vue | 24 public/favicon.ico | 0 src/components/search/OptionType.vue | 19 src/utils/factor/data.js | 246 ++ src/views/LoginPage.vue | 185 + src/views/historymode/HistoryMode.vue | 75 src/components/monitor/FactorTrend.vue | 48 src/components/mission/MIssionCreate.vue | 44 src/components/mission/MissionManage.vue | 25 src/components/animation/HistoricalTrajectory.vue | 36 src/views/historymode/component/DataSheet.vue | 14 src/router/index.js | 2 .env.development | 2 src/constant/scene-types/options.js | 86 src/model/Legend.js | 9 src/components/monitor/FactorRadio.vue | 1 src/views/historymode/HistoryMode copy.vue | 237 ++ src/test.xml | 13 src/components/search/OptionLocation.vue | 23 .env.production | 2 src/model/FrameAnimation.js | 15 .env.production.jingan | 2 src/assets/common-style.css | 11 package-lock.json | 2058 +++++++++++++++++++ src/components/monitor/WeatherData.vue | 2 src/components/monitor/FactorCheckbox.vue | 19 src/components.d.ts | 3 src/views/realtimemode/RealtimeMode.vue | 92 src/styles/elementUI.scss | 7 src/lib/jquery.soap.js | 792 ++++++++ .env.development.jingan | 2 src/components/search/OptionDevice copy.vue | 72 src/api/index.js | 35 src/constant/factor-name.js | 1 src/constant/factor-unit.js | 4 src/views/realtimemode/component/RealTimeTrend.vue | 3 src/constant/checkbox-options/options-jingan.js | 51 src/views/historymode/component/TrendAnalysis.vue | 21 src/constant/scene-types.js | 89 src/components/SliderBar.vue | 12 src/model/FactorDatas.js | 7 src/components/monitor/DataSummary.vue | 4 src/views/realtimemode/component/DashBoard.vue | 9 package.json | 9 src/utils/map/sector.js | 19 src/views/realtimemode/RealtimeMode copy.vue | 186 + src/components/search/OptionDevice.vue | 32 src/components/search/OptionMission.vue | 21 src/constant/checkbox-options.js | 218 - src/utils/number.js | 4 src/constant/checkbox-options/options.js | 173 + src/constant/radio-options.js | 158 src/constant/radio-options/options.js | 74 68 files changed, 5,176 insertions(+), 735 deletions(-) diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..ebe9a97 --- /dev/null +++ b/.env.development @@ -0,0 +1,2 @@ +# 寮�鍙戞ā寮� +VITE_DATA_MODE='origin' \ No newline at end of file diff --git a/.env.development.jingan b/.env.development.jingan new file mode 100644 index 0000000..18f406d --- /dev/null +++ b/.env.development.jingan @@ -0,0 +1,2 @@ +# 寮�鍙戞ā寮忥紙閽堝闈欏畨鍖虹増鏈級 +VITE_DATA_MODE='jingan' \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..4213a54 --- /dev/null +++ b/.env.production @@ -0,0 +1,2 @@ +# 鐢熶骇妯″紡 +VITE_DATA_MODE='origin' \ No newline at end of file diff --git a/.env.production.jingan b/.env.production.jingan new file mode 100644 index 0000000..7bbc51d --- /dev/null +++ b/.env.production.jingan @@ -0,0 +1,2 @@ +# 鐢熶骇妯″紡锛堥拡瀵归潤瀹夊尯鐗堟湰锛� +VITE_DATA_MODE='jingan' \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d551b73..61ffb58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,11 +20,16 @@ "echarts": "^5.5.0", "element-plus": "^2.6.2", "jquery": "^3.7.1", + "jquery-xml2json": "^0.0.8", + "jquery.soap": "^1.7.3", + "js-base64": "^3.7.7", "moment": "^2.30.1", "pinia": "^2.1.7", + "strong-soap": "^4.1.3", "unplugin-vue-components": "^0.26.0", "vue": "^3.4.21", - "vue-router": "^4.3.0" + "vue-router": "^4.3.0", + "xml2json": "^0.12.0" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", @@ -76,6 +81,55 @@ "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", "engines": { "node": ">=10" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@cypress/request/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/@element-plus/icons-vue": { @@ -1263,6 +1317,14 @@ } } }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/abbrev/-/abbrev-2.0.0.tgz", @@ -1270,6 +1332,14 @@ "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accept-language": { + "version": "3.0.20", + "resolved": "https://registry.npmmirror.com/accept-language/-/accept-language-3.0.20.tgz", + "integrity": "sha512-xklPzRma4aoDEPk0ZfMjeuxB2FP4JBYlAR25OFUqCoOYDjYo6wGwAs49SnTN/MoB5VpnNX9tENfZ+vEIFmHQMQ==", + "dependencies": { + "bcp47": "^1.1.2" } }, "node_modules/acorn": { @@ -1364,6 +1434,22 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", @@ -1383,10 +1469,23 @@ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.13.1.tgz", + "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==" + }, "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -1398,12 +1497,36 @@ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bcp47": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/bcp47/-/bcp47-1.1.2.tgz", + "integrity": "sha512-JnkkL4GUpOvvanH9AZPX38CxhiLsXMBicBY2IAtqiVN8YulGDQybUydWA4W6yAMtw6iShtw+8HEF6cfrTHU+UQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "engines": { "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" } }, "node_modules/boolbase": { @@ -1416,7 +1539,6 @@ "version": "1.1.11", "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1433,6 +1555,11 @@ "node": ">=8" } }, + "node_modules/brackets2dots": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/brackets2dots/-/brackets2dots-1.1.0.tgz", + "integrity": "sha512-DEIJz+ebFQ2SYPpXd8owCjy+8H+9N2Pd9DeSf0J33oavLyBYpAtjLg/Z/RmdJdTeHmKVva+L411HjnvyV2rSOA==" + }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", @@ -1440,6 +1567,24 @@ "dev": true, "engines": { "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { @@ -1450,6 +1595,11 @@ "engines": { "node": ">=6" } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "node_modules/chai": { "version": "4.4.1", @@ -1480,6 +1630,14 @@ }, "engines": { "node": ">=10" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "engines": { + "node": "*" } }, "node_modules/check-error": { @@ -1525,6 +1683,11 @@ "node": ">= 6" } }, + "node_modules/cldrjs": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/cldrjs/-/cldrjs-0.5.5.tgz", + "integrity": "sha512-KDwzwbmLIPfCgd8JERVDpQKrUUM1U4KpFJJg2IROv89rF172lLufoJnqJ/Wea6fXL5bO6WjuLMzY8V52UWPvkA==" + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", @@ -1563,11 +1726,15 @@ "node": ">=14" } }, + "node_modules/compress": { + "version": "0.99.0", + "resolved": "https://registry.npmmirror.com/compress/-/compress-0.99.0.tgz", + "integrity": "sha512-+qy9iMBFGTLUqKwYkAqRtZ5Xdl1PGKrSMYCuiirsxSQ5OgDoyP9QO6YoZ4feHzhpufGOwJ+y4qRXz2ytzZ1l0g==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/config-chain": { "version": "1.1.13", @@ -1579,11 +1746,15 @@ "proto-list": "~1.2.1" } }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1591,6 +1762,14 @@ }, "engines": { "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "engines": { + "node": "*" } }, "node_modules/cssesc": { @@ -1622,6 +1801,25 @@ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/curry2": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/curry2/-/curry2-1.0.3.tgz", + "integrity": "sha512-2vXqPLsITt0ccyczu1BFl3tc8Q6BOCsTHt+NZYasd8wp60RQIYhGM3Beis5h5FgJPT11M1rfiKOR7dPL6cL14Q==", + "dependencies": { + "fast-bind": "^1.0.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-5.0.0.tgz", @@ -1641,9 +1839,9 @@ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -1680,12 +1878,37 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "node_modules/diff-sequences": { @@ -1709,11 +1932,25 @@ "node": ">=6.0.0" } }, + "node_modules/dotsplit.js": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/dotsplit.js/-/dotsplit.js-1.1.0.tgz", + "integrity": "sha512-oFVx9VEE+M3yM4oUkaiDa+U2RhOmjXWyXwtfdc5UiHDSZWleE96FS3nx3yXMVuhLJOdI2GMThvaegkwRYPgAFQ==" + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } }, "node_modules/echarts": { "version": "5.5.0", @@ -1872,12 +2109,39 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" } }, "node_modules/esbuild": { @@ -2152,6 +2416,24 @@ "node": ">=16.17" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fast-bind/-/fast-bind-1.0.0.tgz", + "integrity": "sha512-kna1xVU4nn4HW4RVwh6VYSWoii+u8EkWKS3I6YZluncEvtQwahHKhZTRPFHOOkeJK4m0/Tz2Ir9n10tARqeiXw==" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2221,6 +2503,11 @@ "engines": { "node": "^10.12.0 || >=12.0.0" } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "node_modules/fill-range": { "version": "7.0.1", @@ -2292,6 +2579,14 @@ "node": ">=14" } }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", @@ -2308,8 +2603,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -2338,6 +2632,24 @@ "node": "*" } }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-stream": { "version": "8.0.1", "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", @@ -2345,6 +2657,14 @@ "dev": true, "engines": { "node": ">=16" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" } }, "node_modules/glob": { @@ -2399,6 +2719,14 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/globalize": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/globalize/-/globalize-1.7.0.tgz", + "integrity": "sha512-faR46vTIbFCeAemyuc9E6/d7Wrx9k2ae2L60UhakztFg6VuE42gENVJNuPFtt7Sdjrk9m2w8+py7Jj+JTNy59w==", + "dependencies": { + "cldrjs": "^0.5.4" + } + }, "node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", @@ -2409,6 +2737,17 @@ }, "engines": { "node": ">=8" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/graphemer": { @@ -2426,6 +2765,39 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", @@ -2435,6 +2807,15 @@ }, "engines": { "node": ">= 0.4" + } + }, + "node_modules/hoek": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/hoek/-/hoek-4.3.1.tgz", + "integrity": "sha512-v7E+yIjcHECn973i0xHm4kJkEpv3C8sbYS4344WXbzYqRyiDD7rjnnKo4hsJkejQBAFdRMUGNHySeSPKSH9Rqw==", + "deprecated": "This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.", + "engines": { + "node": ">=6.0.0" } }, "node_modules/html-encoding-sniffer": { @@ -2460,6 +2841,51 @@ }, "engines": { "node": ">= 14" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/httpntlm": { + "version": "1.8.13", + "resolved": "https://registry.npmmirror.com/httpntlm/-/httpntlm-1.8.13.tgz", + "integrity": "sha512-2F2FDPiWT4rewPzNMg3uPhNkP3NExENlUGADRUDPQvuftuUTGW98nLZtGemCIW3G40VhWZYgkIDcQFAwZ3mf2Q==", + "funding": [ + { + "type": "paypal", + "url": "https://www.paypal.com/donate/?hosted_button_id=2CKNJLZJBW8ZC" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/samdecrock" + } + ], + "dependencies": { + "des.js": "^1.0.1", + "httpreq": ">=0.4.22", + "js-md4": "^0.3.2", + "underscore": "~1.12.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/httpreq": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/httpreq/-/httpreq-1.1.1.tgz", + "integrity": "sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==", + "engines": { + "node": ">= 6.15.1" } }, "node_modules/https-proxy-agent": { @@ -2537,7 +2963,6 @@ "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2546,14 +2971,24 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true + }, + "node_modules/invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz", + "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sindresorhus/invert-kv?sponsor=1" + } }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -2565,6 +3000,11 @@ "engines": { "node": ">=8" } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/is-core-module": { "version": "2.13.1", @@ -2634,11 +3074,31 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "dependencies": { + "punycode": "2.x.x" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "node_modules/jackspeak": { "version": "2.3.6", @@ -2655,10 +3115,51 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/joi": { + "version": "13.7.0", + "resolved": "https://registry.npmmirror.com/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dependencies": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/joi/node_modules/hoek": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/jquery": { "version": "3.7.1", "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + }, + "node_modules/jquery-xml2json": { + "version": "0.0.8", + "resolved": "https://registry.npmmirror.com/jquery-xml2json/-/jquery-xml2json-0.0.8.tgz", + "integrity": "sha512-PF8yh3sEeQev44ZWQ3c4Mxg1rXP8MEhOKPt5lDyaMe25SJaDI7pQvQOS5kpBPb1YC/d/0nEzUn+YewaXhAQFlw==" + }, + "node_modules/jquery.soap": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/jquery.soap/-/jquery.soap-1.7.3.tgz", + "integrity": "sha512-ZNMQ2Rmy8uQ/4CSJMz0IDZCYhdmT+SiAlLFMGDPvygthZfEsbj9TLPATBIjotx5STyTooRZBgmoaHbAXEAID1A==", + "dependencies": { + "jquery": ">=1.9.0" + } + }, + "node_modules/js-base64": { + "version": "3.7.7", + "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.7.tgz", + "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" }, "node_modules/js-beautify": { "version": "1.15.1", @@ -2690,6 +3191,11 @@ "node": ">=14" } }, + "node_modules/js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==" + }, "node_modules/js-tokens": { "version": "8.0.3", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-8.0.3.tgz", @@ -2707,6 +3213,11 @@ "bin": { "js-yaml": "bin/js-yaml.js" } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "node_modules/jsdom": { "version": "24.0.0", @@ -2763,6 +3274,11 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2775,11 +3291,30 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, "node_modules/jsonc-parser": { "version": "3.2.1", "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz", "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } }, "node_modules/keyv": { "version": "4.5.4", @@ -2788,6 +3323,17 @@ "dev": true, "dependencies": { "json-buffer": "3.0.1" + } + }, + "node_modules/lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "dependencies": { + "invert-kv": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/levn": { @@ -2883,6 +3429,48 @@ "node": ">=12" } }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/mem": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/mem/-/mem-5.1.1.tgz", + "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^2.1.0", + "p-is-promise": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", @@ -2891,8 +3479,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -2942,11 +3529,15 @@ "node": ">=12" } }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2961,6 +3552,17 @@ "dev": true, "engines": { "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/mlly": { @@ -2988,6 +3590,11 @@ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/nan": { + "version": "2.20.0", + "resolved": "https://registry.npmmirror.com/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==" + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", @@ -3004,6 +3611,24 @@ "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true + }, + "node_modules/node-expat": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/node-expat/-/node-expat-2.4.1.tgz", + "integrity": "sha512-uWgvQLgo883NKIL+66oJsK9ysKK3ej0YjVCPBZzO/7wMAuH68/Yb7+JwPWNaVq0yPaxrb48AoEXfYEc8gsmFbg==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.19.0" + } + }, + "node_modules/node-rsa": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/node-rsa/-/node-rsa-1.1.1.tgz", + "integrity": "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==", + "dependencies": { + "asn1": "^0.2.4" + } }, "node_modules/nopt": { "version": "7.2.0", @@ -3069,11 +3694,21 @@ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -3105,6 +3740,139 @@ }, "engines": { "node": ">= 0.8.0" + } + }, + "node_modules/os-locale": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/os-locale/-/os-locale-5.0.0.tgz", + "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", + "dependencies": { + "execa": "^4.0.0", + "lcid": "^3.0.0", + "mem": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-locale/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/os-locale/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-locale/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/os-locale/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-locale/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/os-locale/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-locale/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-locale/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/os-locale/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "engines": { + "node": ">=6" } }, "node_modules/p-limit": { @@ -3165,7 +3933,6 @@ "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3174,7 +3941,6 @@ "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -3211,6 +3977,11 @@ "engines": { "node": "*" } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -3376,23 +4147,43 @@ "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -3419,8 +4210,7 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { "version": "1.22.8", @@ -3528,11 +4318,29 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { "version": "1.76.0", @@ -3551,6 +4359,11 @@ "node": ">=14.0.0" } }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz", @@ -3562,6 +4375,30 @@ "engines": { "node": ">=v12.22.7" } + }, + "node_modules/selectn": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/selectn/-/selectn-1.1.2.tgz", + "integrity": "sha512-AaQlR5br4jWANaF5p5J1ctpsOKwFE5ljWK8ZUSrc4u4ZwcmFLyiowTMt7UjfzQN2/aXF3xnuSVnV4c3Q9tBDqQ==", + "dependencies": { + "brackets2dots": "^1.1.0", + "curry2": "^1.0.0", + "debug": "^2.5.2", + "dotsplit.js": "^1.0.3" + } + }, + "node_modules/selectn/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/selectn/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/semver": { "version": "7.6.0", @@ -3590,11 +4427,26 @@ "node": ">=10" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3606,9 +4458,25 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/siginfo": { @@ -3630,6 +4498,35 @@ "version": "1.2.0", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, "engines": { "node": ">=0.10.0" } @@ -3754,6 +4651,66 @@ "js-tokens": "^8.0.2" } }, + "node_modules/strong-globalize": { + "version": "6.0.6", + "resolved": "https://registry.npmmirror.com/strong-globalize/-/strong-globalize-6.0.6.tgz", + "integrity": "sha512-+mN0wTXBg9rLiKBk7jsyfXFWsg08q160XQcmJ3gNxSQ8wrC668dzR8JUp/wcK3NZ2eQ5h5tvc8O6Y+FC0D61lw==", + "dependencies": { + "accept-language": "^3.0.18", + "debug": "^4.2.0", + "globalize": "^1.6.0", + "lodash": "^4.17.20", + "md5": "^2.3.0", + "mkdirp": "^1.0.4", + "os-locale": "^5.0.0", + "yamljs": "^0.3.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/strong-soap": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/strong-soap/-/strong-soap-4.1.3.tgz", + "integrity": "sha512-Ts19vzoumipPPR3iWlmd2OVERAxlLdz6LXayDPBWyh9OuKyRw1hNrsaaGWzhlY2JY+5kq/j7mq2MpEVSYsk10w==", + "dependencies": { + "@cypress/request": "^3.0.1", + "compress": "^0.99.0", + "debug": "^4.3.6", + "httpntlm": "^1.8.13", + "lodash": "^4.17.21", + "node-rsa": "^1.1.1", + "sax": "^1.4.1", + "selectn": "^1.1.2", + "strong-globalize": "^6.0.6", + "uuid": "^10.0.0", + "xml-crypto": "^3.2.0", + "xmlbuilder": "^10.1.1" + }, + "engines": { + "node": "18 || 20 || 21" + } + }, + "node_modules/strong-soap/node_modules/xml-crypto": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/xml-crypto/-/xml-crypto-3.2.0.tgz", + "integrity": "sha512-qVurBUOQrmvlgmZqIVBqmb06TD2a/PpEUfFPgD7BuBfjmoH4zgkqaWSIJrnymlCvM2GGt9x+XtJFA+ttoAufqg==", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "xpath": "0.0.32" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/strong-soap/node_modules/xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmmirror.com/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", @@ -3834,11 +4791,25 @@ "node": ">=8.0" } }, + "node_modules/topo": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "deprecated": "This module has moved and is now available at @hapi/topo. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.", + "dependencies": { + "hoek": "6.x.x" + } + }, + "node_modules/topo/node_modules/hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmmirror.com/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==", + "deprecated": "This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues." + }, "node_modules/tough-cookie": { "version": "4.1.3", "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.3.tgz", "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -3866,6 +4837,22 @@ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "node_modules/type-check": { "version": "0.4.0", @@ -3903,11 +4890,15 @@ "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", "dev": true }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, "node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, "engines": { "node": ">= 4.0.0" } @@ -3999,7 +4990,6 @@ "version": "1.5.10", "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -4010,6 +5000,31 @@ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true + }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } }, "node_modules/vite": { "version": "5.2.6", @@ -4283,7 +5298,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -4392,8 +5406,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { "version": "8.16.0", @@ -4425,6 +5438,27 @@ "node": ">=12" } }, + "node_modules/xml2json": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/xml2json/-/xml2json-0.12.0.tgz", + "integrity": "sha512-EPJHRWJnJUYbJlzR4pBhZODwWdi2IaYGtDdteJi0JpZ4OD31IplWALuit8r73dJuM4iHZdDVKY1tLqY2UICejg==", + "dependencies": { + "hoek": "^4.2.1", + "joi": "^13.1.2", + "node-expat": "^2.3.18" + }, + "bin": { + "xml2json": "bin/xml2json" + } + }, + "node_modules/xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", @@ -4436,6 +5470,47 @@ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true + }, + "node_modules/yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "dependencies": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "bin": { + "json2yaml": "bin/json2yaml", + "yaml2json": "bin/yaml2json" + } + }, + "node_modules/yamljs/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/yamljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/yocto-queue": { "version": "0.1.0", @@ -4486,6 +5561,48 @@ "version": "3.6.1", "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" + }, + "@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } }, "@element-plus/icons-vue": { "version": "2.3.1", @@ -5265,11 +6382,24 @@ } } }, + "@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" + }, "abbrev": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/abbrev/-/abbrev-2.0.0.tgz", "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true + }, + "accept-language": { + "version": "3.0.20", + "resolved": "https://registry.npmmirror.com/accept-language/-/accept-language-3.0.20.tgz", + "integrity": "sha512-xklPzRma4aoDEPk0ZfMjeuxB2FP4JBYlAR25OFUqCoOYDjYo6wGwAs49SnTN/MoB5VpnNX9tENfZ+vEIFmHQMQ==", + "requires": { + "bcp47": "^1.1.2" + } }, "acorn": { "version": "8.11.3", @@ -5340,6 +6470,19 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", @@ -5356,10 +6499,20 @@ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.13.1.tgz", + "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==" + }, "axios": { - "version": "1.6.8", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "requires": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -5371,10 +6524,31 @@ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "bcp47": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/bcp47/-/bcp47-1.1.2.tgz", + "integrity": "sha512-JnkkL4GUpOvvanH9AZPX38CxhiLsXMBicBY2IAtqiVN8YulGDQybUydWA4W6yAMtw6iShtw+8HEF6cfrTHU+UQ==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, "binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } }, "boolbase": { "version": "1.0.0", @@ -5386,7 +6560,6 @@ "version": "1.1.11", "resolved": "https://registry.npmmirror.com/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" @@ -5400,17 +6573,39 @@ "fill-range": "^7.0.1" } }, + "brackets2dots": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/brackets2dots/-/brackets2dots-1.1.0.tgz", + "integrity": "sha512-DEIJz+ebFQ2SYPpXd8owCjy+8H+9N2Pd9DeSf0J33oavLyBYpAtjLg/Z/RmdJdTeHmKVva+L411HjnvyV2rSOA==" + }, "cac": { "version": "6.7.14", "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "chai": { "version": "4.4.1", @@ -5436,6 +6631,11 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" }, "check-error": { "version": "1.0.3", @@ -5471,6 +6671,11 @@ } } }, + "cldrjs": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/cldrjs/-/cldrjs-0.5.5.tgz", + "integrity": "sha512-KDwzwbmLIPfCgd8JERVDpQKrUUM1U4KpFJJg2IROv89rF172lLufoJnqJ/Wea6fXL5bO6WjuLMzY8V52UWPvkA==" + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", @@ -5500,11 +6705,15 @@ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true }, + "compress": { + "version": "0.99.0", + "resolved": "https://registry.npmmirror.com/compress/-/compress-0.99.0.tgz", + "integrity": "sha512-+qy9iMBFGTLUqKwYkAqRtZ5Xdl1PGKrSMYCuiirsxSQ5OgDoyP9QO6YoZ4feHzhpufGOwJ+y4qRXz2ytzZ1l0g==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "config-chain": { "version": "1.1.13", @@ -5516,16 +6725,25 @@ "proto-list": "~1.2.1" } }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/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" } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" }, "cssesc": { "version": "3.0.0", @@ -5547,6 +6765,22 @@ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "curry2": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/curry2/-/curry2-1.0.3.tgz", + "integrity": "sha512-2vXqPLsITt0ccyczu1BFl3tc8Q6BOCsTHt+NZYasd8wp60RQIYhGM3Beis5h5FgJPT11M1rfiKOR7dPL6cL14Q==", + "requires": { + "fast-bind": "^1.0.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, "data-urls": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-5.0.0.tgz", @@ -5563,9 +6797,9 @@ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "requires": { "ms": "2.1.2" } @@ -5591,10 +6825,29 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, "diff-sequences": { "version": "29.6.3", @@ -5611,11 +6864,25 @@ "esutils": "^2.0.2" } }, + "dotsplit.js": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/dotsplit.js/-/dotsplit.js-1.1.0.tgz", + "integrity": "sha512-oFVx9VEE+M3yM4oUkaiDa+U2RhOmjXWyXwtfdc5UiHDSZWleE96FS3nx3yXMVuhLJOdI2GMThvaegkwRYPgAFQ==" + }, "eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } }, "echarts": { "version": "5.5.0", @@ -5740,10 +7007,31 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, "esbuild": { "version": "0.20.2", @@ -5949,6 +7237,21 @@ "strip-final-newline": "^3.0.0" } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "fast-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fast-bind/-/fast-bind-1.0.0.tgz", + "integrity": "sha512-kna1xVU4nn4HW4RVwh6VYSWoii+u8EkWKS3I6YZluncEvtQwahHKhZTRPFHOOkeJK4m0/Tz2Ir9n10tARqeiXw==" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6012,6 +7315,11 @@ "flat-cache": "^3.0.4" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", @@ -6062,6 +7370,11 @@ "signal-exit": "^4.0.1" } }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", @@ -6075,8 +7388,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.3", @@ -6095,11 +7407,31 @@ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, "get-stream": { "version": "8.0.1", "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } }, "glob": { "version": "10.3.10", @@ -6143,6 +7475,14 @@ "is-glob": "^4.0.3" } }, + "globalize": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/globalize/-/globalize-1.7.0.tgz", + "integrity": "sha512-faR46vTIbFCeAemyuc9E6/d7Wrx9k2ae2L60UhakztFg6VuE42gENVJNuPFtt7Sdjrk9m2w8+py7Jj+JTNy59w==", + "requires": { + "cldrjs": "^0.5.4" + } + }, "globals": { "version": "13.24.0", "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", @@ -6150,6 +7490,14 @@ "dev": true, "requires": { "type-fest": "^0.20.2" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" } }, "graphemer": { @@ -6164,6 +7512,24 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, "hasown": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", @@ -6171,6 +7537,11 @@ "requires": { "function-bind": "^1.1.2" } + }, + "hoek": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/hoek/-/hoek-4.3.1.tgz", + "integrity": "sha512-v7E+yIjcHECn973i0xHm4kJkEpv3C8sbYS4344WXbzYqRyiDD7rjnnKo4hsJkejQBAFdRMUGNHySeSPKSH9Rqw==" }, "html-encoding-sniffer": { "version": "4.0.0", @@ -6190,6 +7561,32 @@ "agent-base": "^7.1.0", "debug": "^4.3.4" } + }, + "http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, + "httpntlm": { + "version": "1.8.13", + "resolved": "https://registry.npmmirror.com/httpntlm/-/httpntlm-1.8.13.tgz", + "integrity": "sha512-2F2FDPiWT4rewPzNMg3uPhNkP3NExENlUGADRUDPQvuftuUTGW98nLZtGemCIW3G40VhWZYgkIDcQFAwZ3mf2Q==", + "requires": { + "des.js": "^1.0.1", + "httpreq": ">=0.4.22", + "js-md4": "^0.3.2", + "underscore": "~1.12.1" + } + }, + "httpreq": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/httpreq/-/httpreq-1.1.1.tgz", + "integrity": "sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==" }, "https-proxy-agent": { "version": "7.0.4", @@ -6248,7 +7645,6 @@ "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -6257,14 +7653,18 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true + }, + "invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz", + "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==" }, "is-binary-path": { "version": "2.1.0", @@ -6273,6 +7673,11 @@ "requires": { "binary-extensions": "^2.0.0" } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-core-module": { "version": "2.13.1", @@ -6324,11 +7729,28 @@ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "requires": { + "punycode": "2.x.x" + } + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "jackspeak": { "version": "2.3.6", @@ -6340,10 +7762,45 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "joi": { + "version": "13.7.0", + "resolved": "https://registry.npmmirror.com/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + }, + "dependencies": { + "hoek": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" + } + } + }, "jquery": { "version": "3.7.1", "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + }, + "jquery-xml2json": { + "version": "0.0.8", + "resolved": "https://registry.npmmirror.com/jquery-xml2json/-/jquery-xml2json-0.0.8.tgz", + "integrity": "sha512-PF8yh3sEeQev44ZWQ3c4Mxg1rXP8MEhOKPt5lDyaMe25SJaDI7pQvQOS5kpBPb1YC/d/0nEzUn+YewaXhAQFlw==" + }, + "jquery.soap": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/jquery.soap/-/jquery.soap-1.7.3.tgz", + "integrity": "sha512-ZNMQ2Rmy8uQ/4CSJMz0IDZCYhdmT+SiAlLFMGDPvygthZfEsbj9TLPATBIjotx5STyTooRZBgmoaHbAXEAID1A==", + "requires": { + "jquery": ">=1.9.0" + } + }, + "js-base64": { + "version": "3.7.7", + "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.7.tgz", + "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" }, "js-beautify": { "version": "1.15.1", @@ -6364,6 +7821,11 @@ "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", "dev": true }, + "js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==" + }, "js-tokens": { "version": "8.0.3", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-8.0.3.tgz", @@ -6378,6 +7840,11 @@ "requires": { "argparse": "^2.0.1" } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "jsdom": { "version": "24.0.0", @@ -6422,6 +7889,11 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6434,11 +7906,27 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, "jsonc-parser": { "version": "3.2.1", "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz", "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true + }, + "jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } }, "keyv": { "version": "4.5.4", @@ -6447,6 +7935,14 @@ "dev": true, "requires": { "json-buffer": "3.0.1" + } + }, + "lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "requires": { + "invert-kv": "^3.0.0" } }, "levn": { @@ -6523,6 +8019,41 @@ "@jridgewell/sourcemap-codec": "^1.4.15" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "mem": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/mem/-/mem-5.1.1.tgz", + "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^2.1.0", + "p-is-promise": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + } + } + }, "memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", @@ -6531,8 +8062,7 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "merge2": { "version": "1.4.1", @@ -6567,11 +8097,15 @@ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6581,6 +8115,11 @@ "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mlly": { "version": "1.6.1", @@ -6604,6 +8143,11 @@ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "nan": { + "version": "2.20.0", + "resolved": "https://registry.npmmirror.com/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==" + }, "nanoid": { "version": "3.3.7", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", @@ -6614,6 +8158,23 @@ "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true + }, + "node-expat": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/node-expat/-/node-expat-2.4.1.tgz", + "integrity": "sha512-uWgvQLgo883NKIL+66oJsK9ysKK3ej0YjVCPBZzO/7wMAuH68/Yb7+JwPWNaVq0yPaxrb48AoEXfYEc8gsmFbg==", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.19.0" + } + }, + "node-rsa": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/node-rsa/-/node-rsa-1.1.1.tgz", + "integrity": "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==", + "requires": { + "asn1": "^0.2.4" + } }, "nopt": { "version": "7.2.0", @@ -6666,11 +8227,15 @@ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, + "object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "requires": { "wrappy": "1" } @@ -6697,6 +8262,93 @@ "prelude-ls": "^1.2.1", "type-check": "^0.4.0" } + }, + "os-locale": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/os-locale/-/os-locale-5.0.0.tgz", + "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", + "requires": { + "execa": "^4.0.0", + "lcid": "^3.0.0", + "mem": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + } + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" }, "p-limit": { "version": "3.1.0", @@ -6743,14 +8395,12 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -6778,6 +8428,11 @@ "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { "version": "1.0.0", @@ -6891,20 +8546,34 @@ "psl": { "version": "1.9.0", "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, "punycode": { "version": "2.3.1", "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + }, + "qs": { + "version": "6.10.4", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "requires": { + "side-channel": "^1.0.4" + } }, "querystringify": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "queue-microtask": { "version": "1.2.3", @@ -6928,8 +8597,7 @@ "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "resolve": { "version": "1.22.8", @@ -7014,11 +8682,15 @@ "queue-microtask": "^1.2.2" } }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { "version": "1.76.0", @@ -7031,6 +8703,11 @@ "source-map-js": ">=0.6.2 <2.0.0" } }, + "sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, "saxes": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz", @@ -7038,6 +8715,32 @@ "dev": true, "requires": { "xmlchars": "^2.2.0" + } + }, + "selectn": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/selectn/-/selectn-1.1.2.tgz", + "integrity": "sha512-AaQlR5br4jWANaF5p5J1ctpsOKwFE5ljWK8ZUSrc4u4ZwcmFLyiowTMt7UjfzQN2/aXF3xnuSVnV4c3Q9tBDqQ==", + "requires": { + "brackets2dots": "^1.1.0", + "curry2": "^1.0.0", + "debug": "^2.5.2", + "dotsplit.js": "^1.0.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } } }, "semver": { @@ -7060,11 +8763,23 @@ } } }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -7072,8 +8787,18 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } }, "siginfo": { "version": "2.0.0", @@ -7091,6 +8816,27 @@ "version": "1.2.0", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } }, "stackback": { "version": "0.0.2", @@ -7190,6 +8936,56 @@ "js-tokens": "^8.0.2" } }, + "strong-globalize": { + "version": "6.0.6", + "resolved": "https://registry.npmmirror.com/strong-globalize/-/strong-globalize-6.0.6.tgz", + "integrity": "sha512-+mN0wTXBg9rLiKBk7jsyfXFWsg08q160XQcmJ3gNxSQ8wrC668dzR8JUp/wcK3NZ2eQ5h5tvc8O6Y+FC0D61lw==", + "requires": { + "accept-language": "^3.0.18", + "debug": "^4.2.0", + "globalize": "^1.6.0", + "lodash": "^4.17.20", + "md5": "^2.3.0", + "mkdirp": "^1.0.4", + "os-locale": "^5.0.0", + "yamljs": "^0.3.0" + } + }, + "strong-soap": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/strong-soap/-/strong-soap-4.1.3.tgz", + "integrity": "sha512-Ts19vzoumipPPR3iWlmd2OVERAxlLdz6LXayDPBWyh9OuKyRw1hNrsaaGWzhlY2JY+5kq/j7mq2MpEVSYsk10w==", + "requires": { + "@cypress/request": "^3.0.1", + "compress": "^0.99.0", + "debug": "^4.3.6", + "httpntlm": "^1.8.13", + "lodash": "^4.17.21", + "node-rsa": "^1.1.1", + "sax": "^1.4.1", + "selectn": "^1.1.2", + "strong-globalize": "^6.0.6", + "uuid": "^10.0.0", + "xml-crypto": "^3.2.0", + "xmlbuilder": "^10.1.1" + }, + "dependencies": { + "xml-crypto": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/xml-crypto/-/xml-crypto-3.2.0.tgz", + "integrity": "sha512-qVurBUOQrmvlgmZqIVBqmb06TD2a/PpEUfFPgD7BuBfjmoH4zgkqaWSIJrnymlCvM2GGt9x+XtJFA+ttoAufqg==", + "requires": { + "@xmldom/xmldom": "^0.8.8", + "xpath": "0.0.32" + } + }, + "xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmmirror.com/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==" + } + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", @@ -7252,11 +9048,25 @@ "is-number": "^7.0.0" } }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "requires": { + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmmirror.com/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" + } + } + }, "tough-cookie": { "version": "4.1.3", "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.3.tgz", "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -7278,6 +9088,19 @@ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "type-check": { "version": "0.4.0", @@ -7306,11 +9129,15 @@ "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", "dev": true }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, "universalify": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" }, "unplugin": { "version": "1.10.0", @@ -7376,7 +9203,6 @@ "version": "1.5.10", "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -7387,6 +9213,21 @@ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true + }, + "uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } }, "vite": { "version": "5.2.6", @@ -7544,7 +9385,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -7626,8 +9466,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "ws": { "version": "8.16.0", @@ -7642,6 +9481,21 @@ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true }, + "xml2json": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/xml2json/-/xml2json-0.12.0.tgz", + "integrity": "sha512-EPJHRWJnJUYbJlzR4pBhZODwWdi2IaYGtDdteJi0JpZ4OD31IplWALuit8r73dJuM4iHZdDVKY1tLqY2UICejg==", + "requires": { + "hoek": "^4.2.1", + "joi": "^13.1.2", + "node-expat": "^2.3.18" + } + }, + "xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==" + }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", @@ -7654,6 +9508,38 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "requires": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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" + } + } + } + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index b002e29..c9aa419 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,9 @@ "type": "module", "scripts": { "dev": "vite", + "dev:jingan": "vite --mode development.jingan", "build": "vite build", + "build:jingan": "vite build --mode production.jingan", "preview": "vite preview", "test:unit": "vitest", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore", @@ -24,11 +26,16 @@ "echarts": "^5.5.0", "element-plus": "^2.6.2", "jquery": "^3.7.1", + "jquery-xml2json": "^0.0.8", + "jquery.soap": "^1.7.3", + "js-base64": "^3.7.7", "moment": "^2.30.1", "pinia": "^2.1.7", + "strong-soap": "^4.1.3", "unplugin-vue-components": "^0.26.0", "vue": "^3.4.21", - "vue-router": "^4.3.0" + "vue-router": "^4.3.0", + "xml2json": "^0.12.0" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", diff --git a/public/favicon.ico b/public/favicon.ico index df36fcf..43aa390 100644 --- a/public/favicon.ico +++ b/public/favicon.ico Binary files differ diff --git a/src/api/index.js b/src/api/index.js index ed45795..ef5ed5c 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,10 +1,13 @@ import axios from 'axios'; import { ElMessage } from 'element-plus'; -const debug = false; +const debug = true; -// let ip1 = 'http://114.215.109.124:8805/'; let ip1 = 'http://47.100.191.150:9029/'; +// console.log(import.meta.env); +if (import.meta.env.VITE_DATA_MODE == 'jingan') { + ip1 = 'http://114.215.109.124:8805/'; +} if (debug) { ip1 = 'http://192.168.0.138:8084/'; @@ -21,17 +24,21 @@ i.interceptors.request.use( function (config) { // 鍦ㄥ彂閫佽姹備箣鍓嶅仛浜涗粈涔� - console.log('==>璇锋眰寮�濮�'); - console.log(`${config.baseURL}${config.url}`); - if (config.data) { - console.log('==>璇锋眰鏁版嵁', config.data); + if (import.meta.env.DEV) { + console.log('==>璇锋眰寮�濮�'); + console.log(`${config.baseURL}${config.url}`); + if (config.data) { + console.log('==>璇锋眰鏁版嵁', config.data); + } } return config; }, function (error) { // 瀵硅姹傞敊璇仛浜涗粈涔� - console.log('==>璇锋眰寮�濮�'); - console.log(error); + if (import.meta.env.DEV) { + console.log('==>璇锋眰寮�濮�'); + console.log(error); + } ElMessage({ message: error, type: 'error' @@ -45,8 +52,10 @@ function (response) { // 2xx 鑼冨洿鍐呯殑鐘舵�佺爜閮戒細瑙﹀彂璇ュ嚱鏁般�� // 瀵瑰搷搴旀暟鎹仛鐐逛粈涔� - console.log(response); - console.log('==>璇锋眰缁撴潫'); + if (import.meta.env.DEV) { + console.log(response); + console.log('==>璇锋眰缁撴潫'); + } if (response.status == 200) { if ( response.data.success != undefined && @@ -71,8 +80,10 @@ function (error) { // 瓒呭嚭 2xx 鑼冨洿鐨勭姸鎬佺爜閮戒細瑙﹀彂璇ュ嚱鏁般�� // 瀵瑰搷搴旈敊璇仛鐐逛粈涔� - console.log(error); - console.log('==>璇锋眰缁撴潫'); + if (import.meta.env.DEV) { + console.log(error); + console.log('==>璇锋眰缁撴潫'); + } ElMessage({ message: error, type: 'error' diff --git a/src/api/missionApi.js b/src/api/missionApi.js index af08c4d..764199a 100644 --- a/src/api/missionApi.js +++ b/src/api/missionApi.js @@ -1,4 +1,5 @@ import { $http } from './index'; +import { Base64 } from 'js-base64'; /** * @@ -17,5 +18,22 @@ deleteMission(missionCode) { let params = `missionCode=${missionCode}`; return $http.post(`air/mission/delete?${params}`).then((res) => res.data); + }, + + downloadReport(missionCode) { + let params = `missionCode=${missionCode}`; + return $http + .get(`air/mission/report?${params}`, { responseType: 'blob' }) + .then((res) => { + const name = Base64.decode(res.headers.get('fileName')); + const url = window.URL.createObjectURL(res.data); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', name); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + window.URL.revokeObjectURL(url); + }); } }; diff --git a/src/assets/common-style.css b/src/assets/common-style.css index f3d4346..e2de279 100644 --- a/src/assets/common-style.css +++ b/src/assets/common-style.css @@ -181,7 +181,7 @@ } .time { - color: #ffffff9d; + color: #ffffffde; font-size: 12px; } @@ -415,7 +415,7 @@ } .custom-info { - border: solid 1px silver; + border: solid 1px rgb(255, 255, 255); } div.info-top { @@ -440,6 +440,7 @@ div.info-middle { padding: 0px 12px 4px 0px; /* line-height: 20px; */ + color: #ffffffde; } div.refresh-btn { @@ -527,4 +528,10 @@ color: var(--font-color); font-size: 16px; padding: 0px 4px; +} + +.text-clz { + /* background-color: aliceblue; */ + font-size: 14px; + line-height: 16px; } \ No newline at end of file diff --git a/src/components.d.ts b/src/components.d.ts index c720d3b..216f2b2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -11,6 +11,7 @@ BaseMap: typeof import('./components/map/BaseMap.vue')['default'] CardButton: typeof import('./components/CardButton.vue')['default'] CardDialog: typeof import('./components/CardDialog.vue')['default'] + copy: typeof import('./components/search/OptionType copy.vue')['default'] CoreHeader: typeof import('./components/core/CoreHeader.vue')['default'] CoreMenu: typeof import('./components/core/CoreMenu.vue')['default'] DataSummary: typeof import('./components/monitor/DataSummary.vue')['default'] @@ -57,11 +58,13 @@ MissionImport: typeof import('./components/mission/MissionImport.vue')['default'] MissionManage: typeof import('./components/mission/MissionManage.vue')['default'] OptionDevice: typeof import('./components/search/OptionDevice.vue')['default'] + 'OptionDevice copy': typeof import('./components/search/OptionDevice copy.vue')['default'] OptionLocation: typeof import('./components/search/OptionLocation.vue')['default'] OptionLocation2: typeof import('./components/search/OptionLocation2.vue')['default'] OptionMission: typeof import('./components/search/OptionMission.vue')['default'] OptionTime: typeof import('./components/search/OptionTime.vue')['default'] OptionType: typeof import('./components/search/OptionType.vue')['default'] + 'OptionType copy': typeof import('./components/search/OptionType copy.vue')['default'] ProgressLineChart: typeof import('./components/chart/ProgressLineChart.vue')['default'] RealTimeLineChart: typeof import('./components/chart/RealTimeLineChart.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] diff --git a/src/components/SliderBar.vue b/src/components/SliderBar.vue index 6acf1bd..9dfb8c5 100644 --- a/src/components/SliderBar.vue +++ b/src/components/SliderBar.vue @@ -1,6 +1,7 @@ <template> <el-row justify="center" align="middle" class="wrap"> - <el-form-item label="鏁版嵁閲�"> + <!-- <el-col :span="6"> --> + <el-form-item label="灞曠ず鏁版嵁閲�"> <el-select v-model="pageSize" @change="handleSizeChange" @@ -12,9 +13,12 @@ <el-option label="500" :value="500" /> </el-select> </el-form-item> + <!-- </el-col> --> + <!-- <el-col :span="18"> --> <div class="slider-wrap m-l-16"> <el-slider :model-value="progress" :marks="marks" @input="handleInput" /> </div> + <!-- </el-col> --> </el-row> </template> <script> @@ -62,6 +66,10 @@ height: 60px; } .slider-wrap { - min-width: 400px; + /* background-color: aliceblue; */ + min-width: 290px; +} +.el-form-item { + margin-bottom: 0px; } </style> diff --git a/src/components/animation/HistoricalTrajectory.vue b/src/components/animation/HistoricalTrajectory.vue index 4aaea2d..37d23be 100644 --- a/src/components/animation/HistoricalTrajectory.vue +++ b/src/components/animation/HistoricalTrajectory.vue @@ -2,28 +2,28 @@ <BaseCard size="middle-s" direction="up"> <template #content> <el-row align="middle" style="gap: 6px"> - <div>鍘嗗彶杞ㄨ抗</div> - <div class="map-btn-group"> - <font-awesome-icon - :icon="btnStop.icon" - :class="'btn-search m-r-2 ' + btnStop.clz" - @click="handleStop" - /> - <font-awesome-icon - :icon="btnPlay.icon" - class="btn-search" - @click="handlePlayOrPause" - /> - </div> - <div class="label-date margin-left-2"> - <span class="label-date-title">鍊嶉��</span> + <el-form-item label="鍘嗗彶杞ㄨ抗"> + <div class="map-btn-group"> + <font-awesome-icon + :icon="btnStop.icon" + :class="'btn-search m-r-2 ' + btnStop.clz" + @click="handleStop" + /> + <font-awesome-icon + :icon="btnPlay.icon" + class="btn-search" + @click="handlePlayOrPause" + /> + </div> + </el-form-item> + <el-form-item label="鍊嶉��"> <el-select v-model="speed" size="small" class="w-60"> <el-option label="1.0X" :value="1" /> <el-option label="4.0X" :value="4" /> <el-option label="8.0X" :value="8" /> <el-option label="16X" :value="16" /> </el-select> - </div> + </el-form-item> </el-row> </template> </BaseCard> @@ -140,4 +140,8 @@ .btn-disable { color: gray; } + +.el-form-item { + margin-bottom: 0px; +} </style> diff --git a/src/components/map/MapScene.vue b/src/components/map/MapScene.vue index b230c8c..c3cb97a 100644 --- a/src/components/map/MapScene.vue +++ b/src/components/map/MapScene.vue @@ -28,6 +28,7 @@ v-for="item in options" :key="item.label" :value="item.value" + :disabled="item.disabled" >{{ item.label }}</el-checkbox > </div> diff --git a/src/components/map/MapToolbox.vue b/src/components/map/MapToolbox.vue index 0b0db4d..39f98c7 100644 --- a/src/components/map/MapToolbox.vue +++ b/src/components/map/MapToolbox.vue @@ -72,25 +72,25 @@ this.value = !this.value; toolbox.toggleCoorPicking(this.value); } - }, - { - icon: 'fa fa-compass', - label: '鏁版嵁鏍囪', - value: true, - click: function () { - this.value = !this.value; - // todo 鏁版嵁鏍囪 - } - }, - { - icon: 'fa fa-compass', - label: '鏁版嵁寮规', - value: true, - click: function () { - this.value = !this.value; - // todo 鏁版嵁寮规 - } } + // { + // icon: 'fa fa-compass', + // label: '鏁版嵁鏍囪', + // value: true, + // click: function () { + // this.value = !this.value; + // // todo 鏁版嵁鏍囪 + // } + // }, + // { + // icon: 'fa fa-compass', + // label: '鏁版嵁寮规', + // value: true, + // click: function () { + // this.value = !this.value; + // // todo 鏁版嵁寮规 + // } + // } ] }; }, diff --git a/src/components/mission/MIssionCreate.vue b/src/components/mission/MIssionCreate.vue index 1966572..11ddbb4 100644 --- a/src/components/mission/MIssionCreate.vue +++ b/src/components/mission/MIssionCreate.vue @@ -33,14 +33,6 @@ /> </el-form-item> <OptionType v-model="formObj.deviceType"></OptionType> - <!-- <el-form-item label="璁惧缂栧彿" prop="acountname"> - <el-input - size="small" - clearable - v-model="formObj.deviceCode" - placeholder="璁惧缂栧彿" - /> - </el-form-item> --> <OptionDevice :type="formObj.deviceType" v-model="formObj.deviceCode" @@ -60,6 +52,7 @@ </CardDialog> </template> <script setup> +import moment from 'moment'; import { ref, reactive, computed } from 'vue'; import missionApi from '@/api/missionApi'; import { useFormConfirm } from '@/composables/formConfirm'; @@ -87,8 +80,23 @@ timeArray: [ { required: true, - message: '鏃堕棿涓嶈兘涓虹┖', - trigger: 'change' + // message: '鏃堕棿涓嶈兘涓虹┖', + trigger: 'change', + validator: (rule, value, callback) => { + console.log(rule); + console.log(value); + if (value == null) { + callback(new Error('鏃堕棿涓嶈兘涓虹┖')); + } else { + const st = moment(value[0]); + const et = moment(value[1]); + const range = et.diff(st, 'second'); + if (range > 12 * 60 * 60) { + callback(new Error('浠诲姟鏃堕暱鏈�澶氫负12灏忔椂')); + } + } + callback(); + } } ] }); @@ -121,4 +129,20 @@ } } }); + +if (import.meta.env.VITE_DATA_MODE == 'jingan') { + formObj.value.location = { + pCode: '31', + pName: '涓婃捣甯�', + cCode: '3100', + cName: '涓婃捣甯�', + dCode: '310106', + dName: '闈欏畨鍖�' + }; +} </script> +<style scoped> +/* .el-form-item { + margin-bottom: 0px; +} */ +</style> diff --git a/src/components/mission/MissionManage.vue b/src/components/mission/MissionManage.vue index 5884383..7e67122 100644 --- a/src/components/mission/MissionManage.vue +++ b/src/components/mission/MissionManage.vue @@ -41,7 +41,7 @@ align="center" :formatter="timeFormatter" /> - <el-table-column label="绠$悊" width="70" align="center"> + <el-table-column label="绠$悊" width="140" align="center"> <template #default="{ row }"> <el-button type="primary" @@ -49,6 +49,14 @@ class="el-button-custom" @click="deleteMission(row)" >鍒犻櫎</el-button + > + <el-button + :loading="row.downloadLoading" + type="primary" + size="small" + class="el-button-custom" + @click="downloadReport(row)" + >鎶ュ憡</el-button > </template> </el-table-column> @@ -61,16 +69,16 @@ </el-button> --> <MissionCreate></MissionCreate> </div> - <div> + <!-- <div> <el-button type="primary" class="el-button-custom"> 鏁版嵁瀵煎叆 </el-button> - </div> - <div> + </div> --> + <!-- <div> <el-button type="primary" class="el-button-custom"> 涓嬭浇妯℃澘 </el-button> - </div> + </div> --> </el-col> </el-row> </CardDialog> @@ -84,6 +92,7 @@ </template> <script> import moment from 'moment'; +import missionApi from '@/api/missionApi'; import { mapStores } from 'pinia'; import { useMissionStore } from '@/stores/mission'; import { useFetchData } from '@/composables/fetchData'; @@ -111,6 +120,12 @@ }; this.msgBoxVisible = true; }, + downloadReport(row) { + row.downloadLoading = true; + missionApi + .downloadReport(row.missionCode) + .finally(() => (row.downloadLoading = false)); + }, timeFormatter(row, col, cellValue, index) { return moment(cellValue).format('YYYY-MM-DD HH:mm:ss'); } diff --git a/src/components/monitor/DataSummary.vue b/src/components/monitor/DataSummary.vue index 4d4b9e2..39a61f0 100644 --- a/src/components/monitor/DataSummary.vue +++ b/src/components/monitor/DataSummary.vue @@ -70,12 +70,14 @@ total += v.factorData; count++; }); + let _avg = count == 0 ? 0 : Math.round((total / count) * 100) / 100; + if (isNaN(_avg)) _avg = '-'; list.push({ factorId: f.factorId, factor: factorName[f.factorName], min, max, - avg: count == 0 ? 0 : Math.round((total / count) * 100) / 100 + avg: _avg }); } } diff --git a/src/components/monitor/DataTable.vue b/src/components/monitor/DataTable.vue index 2681130..29619e0 100644 --- a/src/components/monitor/DataTable.vue +++ b/src/components/monitor/DataTable.vue @@ -65,6 +65,7 @@ import { FactorDatas } from '@/model/FactorDatas'; import { checkboxOptions } from '@/constant/checkbox-options'; import { TYPE0 } from '@/constant/device-type'; +import { windDir } from '@/constant/wind-dir'; export default { props: { @@ -112,13 +113,18 @@ if (Object.hasOwnProperty.call(this.factorDatas.factor, key)) { const f = this.factorDatas.factor[key]; f.datas.forEach((v, i) => { + const name = f.factorName; + let value = v.factorData; + if (name == 'WIND_DIRECTION') { + value = windDir(value); + } if (list.length <= i) { list.push({ index: i, - [f.factorName]: v.factorData + [name]: value }); } else { - list[i][f.factorName] = v.factorData; + list[i][name] = value; } }); } @@ -164,7 +170,8 @@ .el-table { --el-table-bg-color: transparent; --el-table-row-hover-bg-color: #23dad0a2; - --el-table-current-row-bg-color: #7dff5d96; + --el-table-current-row-bg-color: #23dad0a2; + /* --el-table-current-row-bg-color: #7dff5d96; */ --el-table-text-color: var(--font-color); } diff --git a/src/components/monitor/FactorCheckbox.vue b/src/components/monitor/FactorCheckbox.vue index 7e236e3..093920a 100644 --- a/src/components/monitor/FactorCheckbox.vue +++ b/src/components/monitor/FactorCheckbox.vue @@ -63,9 +63,7 @@ }, emits: ['update:modelValue'], data() { - return { - checkbox: [checkboxOptions(TYPE0)[0].value] - }; + return {}; }, computed: { options() { @@ -81,7 +79,7 @@ const e = array[i]; res.push(e.value); } - this.$emit('update:modelValue', res); + this.handleChange(res); } } }, @@ -95,10 +93,23 @@ <style scoped> .el-checkbox { --el-checkbox-text-color: white; + --main-color: #23dad1; + --el-checkbox-checked-text-color: var(--main-color); + --el-checkbox-checked-input-border-color: var(--main-color); + --el-checkbox-checked-bg-color: var(--main-color); + --el-checkbox-input-border-color-hover: var(--main-color); + + --el-checkbox-disabled-checked-input-fill: var(--main-color); + --el-checkbox-disabled-checked-input-border-color: var(--main-color); + --el-checkbox-disabled-checked-icon-color: white; margin-right: 6px; /* height: initial; */ } +.el-checkbox__input.is-disabled + span.el-checkbox__label { + color: var(--el-color-primary); +} + .vertical-class { display: flex; flex-direction: column; diff --git a/src/components/monitor/FactorRadio.vue b/src/components/monitor/FactorRadio.vue index afdd4d5..ce67151 100644 --- a/src/components/monitor/FactorRadio.vue +++ b/src/components/monitor/FactorRadio.vue @@ -52,6 +52,7 @@ <style scoped> .el-radio { --el-radio-text-color: white; + --el-color-primary: #23dad1; margin-right: 10px; height: initial; } diff --git a/src/components/monitor/FactorTrend.vue b/src/components/monitor/FactorTrend.vue index f2e0e3f..eddadbb 100644 --- a/src/components/monitor/FactorTrend.vue +++ b/src/components/monitor/FactorTrend.vue @@ -2,18 +2,6 @@ <BaseCard size="medium" direction="left"> <template #content> <el-scrollbar height="calc(98vh - var(--bevel-length-2))"> - <!-- <div v-for="item in factorTypes" :key="item"> - <el-row> - <div>{{ allSeries.get(item.value).name }}</div> - <div>{{ allSeries.get(item.value).currentData }}</div> - <div>{{ allSeries.get(item.value).min }}</div> - <div>{{ allSeries.get(item.value).max }}</div> - <RealTimeLineChart - v-show="selectFactorType.includes(item.value)" - :model-value="series(item.value)" - ></RealTimeLineChart> - </el-row> - </div> --> <div v-for="item in seriesList" :key="item.key"> <el-row v-show="selectFactorType.includes(item.series.key)" @@ -74,18 +62,8 @@ }; }, computed: { - factorTypes() { - return checkboxOptions(this.deviceType); - } - // seriesList() { - // const list = []; - // for (const iterator of this.allSeries) { - // list.push({ - // xAxis: this.xAxis, - // series: iterator[1] - // }); - // } - // return list; + // factorTypes() { + // return checkboxOptions(this.deviceType); // } }, watch: { @@ -165,12 +143,20 @@ }, toList() { const list = []; - for (const iterator of this.allSeries) { - list.push({ - xAxis: this.xAxis, - series: iterator[1] - }); - } + // for (const iterator of this.allSeries) { + // list.push({ + // xAxis: this.xAxis, + // series: iterator[1] + // }); + // } + checkboxOptions(this.deviceType).forEach((t) => { + if (this.allSeries.has(t.value)) { + list.push({ + xAxis: this.xAxis, + series: this.allSeries.get(t.value) + }); + } + }); this.seriesList = list; }, // getScaleValue(label, value) { @@ -199,7 +185,7 @@ } .factor-name { - color: var(--el-color-warning); + color: #23dad1; } .factor-unit { diff --git a/src/components/monitor/WeatherData.vue b/src/components/monitor/WeatherData.vue index 6609315..af32269 100644 --- a/src/components/monitor/WeatherData.vue +++ b/src/components/monitor/WeatherData.vue @@ -26,7 +26,7 @@ </template> <script> import { FactorDatas } from '@/model/FactorDatas'; -import { windDir } from '../../constant/wind-dir'; +import { windDir } from '@/constant/wind-dir'; export default { props: { diff --git a/src/components/search/OptionDevice copy.vue b/src/components/search/OptionDevice copy.vue new file mode 100644 index 0000000..6fc1b0a --- /dev/null +++ b/src/components/search/OptionDevice copy.vue @@ -0,0 +1,72 @@ +<template> + <el-form-item label="璁惧"> + <el-select + :model-value="modelValue" + @update:model-value="handleChange" + placeholder="璁惧" + size="small" + class="w-120" + > + <el-option + v-for="(s, i) in deviceList" + :key="i" + :label="s.label" + :value="s.value" + /> + </el-select> + </el-form-item> +</template> + +<script> +export default { + props: { + type: String, + modelValue: String + }, + emits: ['update:modelValue'], + data() { + return {}; + }, + computed: { + deviceList() { + const t = this.type ? this.type : '0a'; + return [1, 2, 3].map((v) => { + const label = `${this.getDeviceType(t)}璁惧${v}鍙穈; + const value = `${t}000000000${v}`; + return { + label: label, + value: value + }; + }); + } + }, + watch: { + deviceList(nV, oV) { + if (nV != oV) { + this.handleChange(nV[0].value); + } + } + }, + methods: { + handleChange(value) { + this.$emit('update:modelValue', value); + }, + getDeviceType(t) { + switch (t) { + case '0a': + return '杞﹁浇'; + case '0b': + return '鏃犱汉鏈�'; + case '0c': + return '鏃犱汉鑸�'; + default: + return '杞﹁浇'; + } + } + }, + mounted() { + this.handleChange(this.deviceList[0].value); + } +}; +</script> +<style scoped></style> diff --git a/src/components/search/OptionDevice.vue b/src/components/search/OptionDevice.vue index 6fc1b0a..2ba1468 100644 --- a/src/components/search/OptionDevice.vue +++ b/src/components/search/OptionDevice.vue @@ -8,7 +8,7 @@ class="w-120" > <el-option - v-for="(s, i) in deviceList" + v-for="(s, i) in deviceOptions" :key="i" :label="s.label" :value="s.value" @@ -18,6 +18,8 @@ </template> <script> +import { deviceList } from '@/constant/device-type'; + export default { props: { type: String, @@ -28,20 +30,12 @@ return {}; }, computed: { - deviceList() { - const t = this.type ? this.type : '0a'; - return [1, 2, 3].map((v) => { - const label = `${this.getDeviceType(t)}璁惧${v}鍙穈; - const value = `${t}000000000${v}`; - return { - label: label, - value: value - }; - }); + deviceOptions() { + return deviceList(this.type); } }, watch: { - deviceList(nV, oV) { + deviceOptions(nV, oV) { if (nV != oV) { this.handleChange(nV[0].value); } @@ -50,22 +44,10 @@ methods: { handleChange(value) { this.$emit('update:modelValue', value); - }, - getDeviceType(t) { - switch (t) { - case '0a': - return '杞﹁浇'; - case '0b': - return '鏃犱汉鏈�'; - case '0c': - return '鏃犱汉鑸�'; - default: - return '杞﹁浇'; - } } }, mounted() { - this.handleChange(this.deviceList[0].value); + this.handleChange(this.deviceOptions[0].value); } }; </script> diff --git a/src/components/search/OptionLocation.vue b/src/components/search/OptionLocation.vue index 71e5edc..b4ceed8 100644 --- a/src/components/search/OptionLocation.vue +++ b/src/components/search/OptionLocation.vue @@ -25,12 +25,7 @@ emits: ['update:modelValue'], data() { return { - typeList: [ - { - label: '闀垮畞鍖�', - value: '310105' - } - ] + typeList: [] }; }, methods: { @@ -40,6 +35,22 @@ } }, mounted() { + let options = [ + { + label: '闀垮畞鍖�', + value: '310105' + } + ]; + + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + options = [ + { + label: '闈欏畨鍖�', + value: '310106' + } + ]; + } + this.typeList = options; this.handleChange(this.typeList[0].value); } }; diff --git a/src/components/search/OptionMission.vue b/src/components/search/OptionMission.vue index 7ee4d9b..f26efe3 100644 --- a/src/components/search/OptionMission.vue +++ b/src/components/search/OptionMission.vue @@ -19,7 +19,6 @@ <script> import { mapStores } from 'pinia'; -import missionApi from '@/api/missionApi'; import { useFetchData } from '@/composables/fetchData'; import { useMissionStore } from '@/stores/mission'; @@ -43,23 +42,15 @@ }, methods: { fetchMission() { - // this.fetchData((page, pageSize) => { - // return missionApi - // .fethchMission({ type: this.type, page, pageSize }) - // .then((res) => { - // this.missionList = res.data; - // this.missionStore.missionList = res.data; - // // if (this.missionList.length > 0) { - // // this.handleChange(0); - // // } - // return res.head; - // }); - // }); - this.missionStore.fetchMission(this.type); + this.missionStore.fetchMission(this.type).then((res) => { + if (res.success && res.data.length > 0) { + this.index = 0; + this.handleChange(0); + } + }); }, handleChange(value) { this.$emit('update:modelValue', this.missionStore.missionList[value]); - // this.$emit('change', this.missionList[value]); } }, mounted() { diff --git a/src/components/search/OptionTime.vue b/src/components/search/OptionTime.vue index 29ccf19..bb11f85 100644 --- a/src/components/search/OptionTime.vue +++ b/src/components/search/OptionTime.vue @@ -7,20 +7,30 @@ start-placeholder="閫夋嫨寮�濮嬫椂闂�" end-placeholder="閫夋嫨缁撴潫鏃堕棿" size="small" + :disabled-date="diableData" /> </el-form-item> </template> <script> +import moment from 'moment'; +import { ElMessage } from 'element-plus'; + export default { props: { + // 鏃ユ湡鍊� modelValue: { type: Array }, + // 鎺т欢绫诲瀷 type: { type: String, default: 'datetimerange' - } + }, + // 鍏佽寮�濮嬫椂闂� + startDate: Date, + // 鍏佽缁撴潫鏃堕棿 + endDate: Date }, emits: ['update:modelValue'], data() { @@ -28,7 +38,40 @@ }, methods: { handleChange(value) { - this.$emit('update:modelValue', value); + // 鏃堕棿涓嶈兘瓒呰繃璁惧畾鐨勫紑濮嬬粨鏉熸椂闂� + let outRange = false; + if (this.startDate) { + outRange = + outRange || + moment(value[0]).isBefore(this.startDate) || + moment(value[1]).isBefore(this.startDate); + } + if (this.endDate) { + outRange = + outRange || + moment(value[0]).isAfter(this.endDate) || + moment(value[1]).isAfter(this.endDate); + } + if (outRange) { + ElMessage({ + message: '鎵�閫夋椂闂翠笉鑳借秴杩囪蛋鑸换鍔℃椂闂磋寖鍥�', + type: 'warning' + }); + } else { + this.$emit('update:modelValue', value); + } + }, + diableData(date) { + const time = moment(date); + let result1 = false; + let result2 = false; + if (this.startDate) { + result1 = time.isBefore(this.startDate); + } + if (this.endDate) { + result2 = time.isAfter(this.endDate); + } + return result1 || result2; } }, mounted() { diff --git a/src/components/search/OptionType copy.vue b/src/components/search/OptionType copy.vue new file mode 100644 index 0000000..b6e4817 --- /dev/null +++ b/src/components/search/OptionType copy.vue @@ -0,0 +1,54 @@ +<template> + <el-form-item label="绫诲瀷"> + <el-select + :model-value="modelValue" + @update:model-value="handleChange" + placeholder="绫诲瀷" + size="small" + class="w-80" + > + <el-option + v-for="(s, i) in typeList" + :key="i" + :label="s.label" + :value="s.value" + /> + </el-select> + </el-form-item> +</template> + +<script> +export default { + props: { + modelValue: String + }, + emits: ['update:modelValue'], + data() { + return { + typeList: [ + { + label: '杞﹁浇', + value: '0a' + }, + { + label: '鏃犱汉鏈�', + value: '0b' + }, + { + label: '鏃犱汉鑸�', + value: '0c' + } + ] + }; + }, + methods: { + handleChange(value) { + // todo 鏍规嵁璁惧绫诲瀷鍒囨崲鍦板浘杞藉叿鐨勫浘鏍囥�� + this.$emit('update:modelValue', value); + } + }, + mounted() { + this.handleChange(this.typeList[0].value); + } +}; +</script> diff --git a/src/components/search/OptionType.vue b/src/components/search/OptionType.vue index b6e4817..644898d 100644 --- a/src/components/search/OptionType.vue +++ b/src/components/search/OptionType.vue @@ -1,5 +1,5 @@ <template> - <el-form-item label="绫诲瀷"> + <el-form-item v-show="isShow" label="绫诲瀷"> <el-select :model-value="modelValue" @update:model-value="handleChange" @@ -18,6 +18,7 @@ </template> <script> +import { typeList } from '@/constant/device-type'; export default { props: { modelValue: String @@ -25,20 +26,8 @@ emits: ['update:modelValue'], data() { return { - typeList: [ - { - label: '杞﹁浇', - value: '0a' - }, - { - label: '鏃犱汉鏈�', - value: '0b' - }, - { - label: '鏃犱汉鑸�', - value: '0c' - } - ] + typeList: typeList(), + isShow: import.meta.env.VITE_DATA_MODE != 'jingan' }; }, methods: { diff --git a/src/components/search/SearchBar.vue b/src/components/search/SearchBar.vue index 4534886..a7de11b 100644 --- a/src/components/search/SearchBar.vue +++ b/src/components/search/SearchBar.vue @@ -8,7 +8,11 @@ :type="formSearch.type" v-model="formSearch.deviceCode" ></OptionDevice> - <OptionTime v-model="formSearch.timeArray"></OptionTime> + <OptionTime + v-model="formSearch.timeArray" + :start-date="dateRange[0]" + :end-date="dateRange[1]" + ></OptionTime> <el-button :loading="loading" type="primary" @@ -31,12 +35,14 @@ }, data() { return { - mission: {}, + mission: undefined, formSearch: { type: '', deviceCode: '', timeArray: [] - } + }, + // 鍙�夋棩鏈熻寖鍥达紝鏍规嵁璧拌埅浠诲姟鍐冲畾 + dateRange: [] }; }, emits: ['search'], @@ -52,8 +58,16 @@ new Date(nV.startTime), new Date(nV.endTime) ]; + this.dateRange = [new Date(nV.startTime), new Date(nV.endTime)]; this.formSearch.type = nV.deviceType; this.formSearch.deviceCode = nV.deviceCode; + + // 浠h〃棣栨杩涘叆鐣岄潰锛屾鏃惰嚜鍔ㄦ墽琛岄涓换鍔$殑鏁版嵁鏌ヨ鎿嶄綔 + if (oV == undefined) { + setTimeout(() => { + this.handleClick(); + }, 500); + } } } }, @@ -64,7 +78,7 @@ } }; </script> -<style lang="scss"> +<style scoped lang="scss"> .map-date-selector { display: inline-block; position: relative; @@ -78,4 +92,9 @@ .p-events-auto { } + +.el-form-item { + margin-bottom: 0px; + margin-right: 8px !important; +} </style> diff --git a/src/composables/fetchData.js b/src/composables/fetchData.js index c1b4937..350e92e 100644 --- a/src/composables/fetchData.js +++ b/src/composables/fetchData.js @@ -37,6 +37,7 @@ } loadStatus.value = 0; + return pageInfo; }) .catch(() => { loadStatus.value = 3; diff --git a/src/constant/checkbox-options.js b/src/constant/checkbox-options.js index 6f1178d..f9cc44d 100644 --- a/src/constant/checkbox-options.js +++ b/src/constant/checkbox-options.js @@ -1,186 +1,50 @@ import { TYPE0, TYPE1, TYPE2, TYPE4 } from '@/constant/device-type'; +import { + option1, + option2, + option3, + option4 +} from '@/constant/checkbox-options/options'; +import { option1 as option1Jingan } from '@/constant/checkbox-options/options-jingan'; // 鐩戞祴鍥犲瓙鍗曢�夋閫夐」 function checkboxOptions(deviceType) { - switch (deviceType) { - case TYPE0: - return option1; - case TYPE1: - return option3; - case TYPE2: - return option2; - case TYPE4: - return option4; - default: - return option1; + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + switch (deviceType) { + case TYPE0: + return option1Jingan; + default: + return option1Jingan; + } + } else { + switch (deviceType) { + case TYPE0: + return option1; + case TYPE1: + return option3; + case TYPE2: + return option2; + case TYPE4: + return option4; + default: + return option1; + } } } -const option1 = [ - { - label: 'NO2', - name: 'NO2', - value: '1' - }, - { - label: 'CO', - name: 'CO', - value: '2' - }, - { - label: 'H2S', - name: 'H2S', - value: '3' - }, - { - label: 'SO2', - name: 'SO2', - value: '4' - }, - { - label: 'O3', - name: 'O3', - value: '5' - }, - { - label: 'PM2.5', - name: 'PM25', - value: '6' - }, - { - label: 'PM10', - name: 'PM10', - value: '7' - }, - { - label: 'TVOC', - name: 'VOC', - value: '10' - }, - - // { - // label: "NOI", - // name: "NOI", - // value: "11" - // }, - { - label: '杞﹂��', - name: 'VELOCITY', - value: '14' - }, - { - label: '椋庨��', - name: 'WIND_SPEED', - value: '16' - }, - { - label: '椋庡悜', - name: 'WIND_DIRECTION', - value: '17' - }, - { - label: '楂樺害', - name: 'HEIGHT', - value: '18' +/** + * 榛樿閫夐」 + * @param {*} deviceType 璁惧绫诲瀷 + * @param {*} count 榛樿閫変腑涓暟 + * @returns + */ +function defaultFactorTypes(deviceType, count = 3) { + const list = checkboxOptions(deviceType); + if (list.length > count) { + return list.slice(0, count).map((v) => v.value); + } else { + return list.map((v) => v.value); } -]; +} -const option2 = [ - { - label: '娓╁害', - name: 'TMP', - value: '1' - }, - { - label: '鐢靛鐜�', - name: 'spC', - value: '2' - }, - { - label: '娴婂害', - name: 'tur', - value: '3' - }, - { - label: '婧惰В姘�', - name: 'DO', - value: '4' - }, - { - label: 'PH', - name: 'PH', - value: '5' - } -]; - -const option3 = [ - { - label: 'NO2', - name: 'NO2', - value: '1' - }, - { - label: 'CO', - name: 'CO', - value: '2' - }, - { - label: 'H2S', - name: 'H2S', - value: '3' - }, - { - label: 'SO2', - name: 'SO2', - value: '4' - }, - { - label: 'O3', - name: 'O3', - value: '5' - }, - { - label: 'PM2.5', - name: 'PM25', - value: '6' - }, - { - label: 'PM10', - name: 'PM10', - value: '7' - }, - { - label: 'TVOC', - name: 'VOC', - value: '10' - }, - { - label: '椋庨��', - name: 'WIND_SPEED', - value: '16' - }, - { - label: '椋庡悜', - name: 'WIND_DIRECTION', - value: '17' - } -]; - -const option4 = [ - { - label: 'A鐩哥數娴�', - name: 'EA', - value: '1' - }, - { - label: 'B鐩哥數娴�', - name: 'EB', - value: '2' - }, - { - label: 'C鐩哥數娴�', - name: 'EC', - value: '3' - } -]; -export { checkboxOptions }; +export { checkboxOptions, defaultFactorTypes }; diff --git a/src/constant/checkbox-options/options-jingan.js b/src/constant/checkbox-options/options-jingan.js new file mode 100644 index 0000000..7d23581 --- /dev/null +++ b/src/constant/checkbox-options/options-jingan.js @@ -0,0 +1,51 @@ +/** + * 涓婃捣甯傞潤瀹夊尯涓撴湁绯荤粺鍥捐〃鏄剧ず鍥犲瓙鍒囨崲閫夐」 + */ + +export const option1 = [ + { + label: 'NO', + name: 'NO', + value: '19' + }, + { + label: 'NO2', + name: 'NO2', + value: '1' + }, + { + label: 'CO', + name: 'CO', + value: '2' + }, + { + label: 'PM2.5', + name: 'PM25', + value: '6' + }, + { + label: 'PM10', + name: 'PM10', + value: '7' + }, + { + label: '娓╁害', + name: 'TEMPERATURE', + value: '8' + }, + { + label: '杞﹂��', + name: 'VELOCITY', + value: '14' + }, + { + label: '椋庨��', + name: 'WIND_SPEED', + value: '16' + } + // { + // label: '椋庡悜', + // name: 'WIND_DIRECTION', + // value: '17' + // } +]; diff --git a/src/constant/checkbox-options/options.js b/src/constant/checkbox-options/options.js new file mode 100644 index 0000000..3f6b106 --- /dev/null +++ b/src/constant/checkbox-options/options.js @@ -0,0 +1,173 @@ +/** + * 鍘熷绯荤粺鍥捐〃鏄剧ず鍥犲瓙鍒囨崲閫夐」 + */ + +const option1 = [ + { + label: 'NO2', + name: 'NO2', + value: '1' + }, + { + label: 'CO', + name: 'CO', + value: '2' + }, + { + label: 'H2S', + name: 'H2S', + value: '3' + }, + { + label: 'SO2', + name: 'SO2', + value: '4' + }, + { + label: 'O3', + name: 'O3', + value: '5' + }, + { + label: 'PM2.5', + name: 'PM25', + value: '6' + }, + { + label: 'PM10', + name: 'PM10', + value: '7' + }, + { + label: 'TVOC', + name: 'VOC', + value: '10' + }, + + // { + // label: "NOI", + // name: "NOI", + // value: "11" + // }, + { + label: '杞﹂��', + name: 'VELOCITY', + value: '14' + }, + { + label: '椋庨��', + name: 'WIND_SPEED', + value: '16' + }, + // { + // label: '椋庡悜', + // name: 'WIND_DIRECTION', + // value: '17' + // }, + { + label: '楂樺害', + name: 'HEIGHT', + value: '18' + } +]; + +const option2 = [ + { + label: '娓╁害', + name: 'TMP', + value: '1' + }, + { + label: '鐢靛鐜�', + name: 'spC', + value: '2' + }, + { + label: '娴婂害', + name: 'tur', + value: '3' + }, + { + label: '婧惰В姘�', + name: 'DO', + value: '4' + }, + { + label: 'PH', + name: 'PH', + value: '5' + } +]; + +const option3 = [ + { + label: 'NO2', + name: 'NO2', + value: '1' + }, + { + label: 'CO', + name: 'CO', + value: '2' + }, + { + label: 'H2S', + name: 'H2S', + value: '3' + }, + { + label: 'SO2', + name: 'SO2', + value: '4' + }, + { + label: 'O3', + name: 'O3', + value: '5' + }, + { + label: 'PM2.5', + name: 'PM25', + value: '6' + }, + { + label: 'PM10', + name: 'PM10', + value: '7' + }, + { + label: 'TVOC', + name: 'VOC', + value: '10' + }, + { + label: '椋庨��', + name: 'WIND_SPEED', + value: '16' + } + // { + // label: '椋庡悜', + // name: 'WIND_DIRECTION', + // value: '17' + // } +]; + +const option4 = [ + { + label: 'A鐩哥數娴�', + name: 'EA', + value: '1' + }, + { + label: 'B鐩哥數娴�', + name: 'EB', + value: '2' + }, + { + label: 'C鐩哥數娴�', + name: 'EC', + value: '3' + } +]; + +export { option1, option2, option3, option4 }; diff --git a/src/constant/device-type.js b/src/constant/device-type.js index 8d163f8..dde0588 100644 --- a/src/constant/device-type.js +++ b/src/constant/device-type.js @@ -9,4 +9,56 @@ // 鐢ㄧ數閲� const TYPE4 = '31'; -export { TYPE0, TYPE1, TYPE2, TYPE3, TYPE4 }; +function typeList() { + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + return [ + { + label: '杞﹁浇', + value: '0a' + } + ]; + } else { + return [ + { + label: '杞﹁浇', + value: '0a' + }, + { + label: '鏃犱汉鏈�', + value: '0b' + }, + { + label: '鏃犱汉鑸�', + value: '0c' + } + ]; + } +} + +// fixeme 2024.8.19 鍚庣画璁惧缂栧彿搴旇浠庢湇鍔″櫒鍔ㄦ�佽幏鍙栵紝鍚屾椂鏈夎澶囧彿鐨勫湪绾跨紪杈戝姛鑳� +function deviceList(type) { + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + return [ + { + label: '杞﹁浇璁惧1鍙�', + value: 'TX105' + } + ]; + } else { + const t = type ? type : '0a'; + const _typeList = typeList(); + const typeStr = _typeList.find((v) => { + return v.value == t; + }); + return [1, 2, 3].map((v) => { + const label = `${typeStr}璁惧${v}鍙穈; + const value = `${t}000000000${v}`; + return { + label: label, + value: value + }; + }); + } +} + +export { TYPE0, TYPE1, TYPE2, TYPE3, TYPE4, typeList, deviceList }; diff --git a/src/constant/factor-name.js b/src/constant/factor-name.js index 360e5f0..5857ead 100644 --- a/src/constant/factor-name.js +++ b/src/constant/factor-name.js @@ -2,6 +2,7 @@ * 鐩戞祴鍥犲瓙鍚嶇О */ export const factorName = { + NO: 'NO', NO2: 'NO2', //2 CO: 'CO', //4 H2S: 'H2S', //6 diff --git a/src/constant/factor-unit.js b/src/constant/factor-unit.js index 878baf0..ec21d10 100644 --- a/src/constant/factor-unit.js +++ b/src/constant/factor-unit.js @@ -2,6 +2,10 @@ * 鐩戞祴鍥犲瓙鍗曚綅 */ export const factorUnit = { + NO: { + scale: 1, + unit: '渭g/m鲁' + }, NO2: { scale: 1, unit: '渭g/m鲁' diff --git a/src/constant/radio-options.js b/src/constant/radio-options.js index 9cf3509..c56bd55 100644 --- a/src/constant/radio-options.js +++ b/src/constant/radio-options.js @@ -1,84 +1,94 @@ import { TYPE0, TYPE1, TYPE2 } from '@/constant/device-type'; +import { option1, option2 } from '@/constant/radio-options/options'; +import { option1 as option1Jingan } from '@/constant/radio-options/options-jingan'; // 鐩戞祴鍥犲瓙鍗曢�夋閫夐」 function radioOptions(deviceType) { - if ([TYPE0, TYPE1].includes(deviceType)) { - return option1; - } else if (deviceType == TYPE2) { - return option2; + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + if (TYPE0 == deviceType) { + return option1Jingan; + } else { + return []; + } } else { - return []; + if ([TYPE0, TYPE1].includes(deviceType)) { + return option1; + } else if (deviceType == TYPE2) { + return option2; + } else { + return []; + } } } -const option1 = [ - { - label: 'NO2', - name: 'NO2', - value: '1' - }, - { - label: 'CO', - name: 'CO', - value: '2' - }, - { - label: 'H2S', - name: 'H2S', - value: '3' - }, - { - label: 'SO2', - name: 'SO2', - value: '4' - }, - { - label: 'O3', - name: 'O3', - value: '5' - }, - { - label: 'PM2.5', - name: 'PM25', - value: '6' - }, - { - label: 'PM10', - name: 'PM10', - value: '7' - }, - { - label: 'TVOC', - name: 'VOC', - value: '10' - } -]; +// const option1 = [ +// { +// label: 'NO2', +// name: 'NO2', +// value: '1' +// }, +// { +// label: 'CO', +// name: 'CO', +// value: '2' +// }, +// { +// label: 'H2S', +// name: 'H2S', +// value: '3' +// }, +// { +// label: 'SO2', +// name: 'SO2', +// value: '4' +// }, +// { +// label: 'O3', +// name: 'O3', +// value: '5' +// }, +// { +// label: 'PM2.5', +// name: 'PM25', +// value: '6' +// }, +// { +// label: 'PM10', +// name: 'PM10', +// value: '7' +// }, +// { +// label: 'TVOC', +// name: 'VOC', +// value: '10' +// } +// ]; -const option2 = [ - { - label: '娓╁害', - name: 'TMP', - value: '1' - }, - { - label: '鐢靛鐜�', - name: 'spC', - value: '2' - }, - { - label: '娴婂害', - name: 'tur', - value: '3' - }, - { - label: '婧惰В姘�', - name: 'DO', - value: '4' - }, - { - label: 'PH', - name: 'PH', - value: '5' - } -]; +// const option2 = [ +// { +// label: '娓╁害', +// name: 'TMP', +// value: '1' +// }, +// { +// label: '鐢靛鐜�', +// name: 'spC', +// value: '2' +// }, +// { +// label: '娴婂害', +// name: 'tur', +// value: '3' +// }, +// { +// label: '婧惰В姘�', +// name: 'DO', +// value: '4' +// }, +// { +// label: 'PH', +// name: 'PH', +// value: '5' +// } +// ]; export { radioOptions }; diff --git a/src/constant/radio-options/options-jingan.js b/src/constant/radio-options/options-jingan.js new file mode 100644 index 0000000..d82ee85 --- /dev/null +++ b/src/constant/radio-options/options-jingan.js @@ -0,0 +1,31 @@ +/** + * 涓婃捣甯傞潤瀹夊尯涓撴湁绯荤粺鍦板浘鏄剧ず鍥犲瓙鍒囨崲閫夐」 + */ + +export const option1 = [ + { + label: 'NO', + name: 'NO', + value: '19' + }, + { + label: 'NO2', + name: 'NO2', + value: '1' + }, + { + label: 'CO', + name: 'CO', + value: '2' + }, + { + label: 'PM2.5', + name: 'PM25', + value: '6' + }, + { + label: 'PM10', + name: 'PM10', + value: '7' + } +]; diff --git a/src/constant/radio-options/options.js b/src/constant/radio-options/options.js new file mode 100644 index 0000000..12cb189 --- /dev/null +++ b/src/constant/radio-options/options.js @@ -0,0 +1,74 @@ +/** + * 鍘熷绯荤粺鍦板浘鏄剧ず鍥犲瓙鍒囨崲閫夐」 + */ + +export const option1 = [ + { + label: 'NO2', + name: 'NO2', + value: '1' + }, + { + label: 'CO', + name: 'CO', + value: '2' + }, + { + label: 'H2S', + name: 'H2S', + value: '3' + }, + { + label: 'SO2', + name: 'SO2', + value: '4' + }, + { + label: 'O3', + name: 'O3', + value: '5' + }, + { + label: 'PM2.5', + name: 'PM25', + value: '6' + }, + { + label: 'PM10', + name: 'PM10', + value: '7' + }, + { + label: 'TVOC', + name: 'VOC', + value: '10' + } +]; + +export const option2 = [ + { + label: '娓╁害', + name: 'TMP', + value: '1' + }, + { + label: '鐢靛鐜�', + name: 'spC', + value: '2' + }, + { + label: '娴婂害', + name: 'tur', + value: '3' + }, + { + label: '婧惰В姘�', + name: 'DO', + value: '4' + }, + { + label: 'PH', + name: 'PH', + value: '5' + } +]; diff --git a/src/constant/scene-types.js b/src/constant/scene-types.js index c0d9043..30c5590 100644 --- a/src/constant/scene-types.js +++ b/src/constant/scene-types.js @@ -8,90 +8,15 @@ import scene_18 from '@/assets/mipmap/scene_18.png'; import scene_19 from '@/assets/mipmap/scene_19.png'; import scene_20 from '@/assets/mipmap/scene_20.png'; +import { option } from '@/constant/scene-types/options'; +import { option as optionJingan } from '@/constant/scene-types/options-jingan'; function sceneTypes() { - return [ - { - label: '宸ュ湴', - value: '1' - }, - // { - // label: '鐮佸ご', - // value: '2', - // }, - // { - // label: '鎼呮媽绔�', - // value: '3', - // }, - { - label: '宸ヤ笟浼佷笟', - value: '4' - }, - { - label: '椁愰ギ', - value: '5' - }, - { - label: '姹戒慨', - value: '6' - }, - // { - // label: '闄嶅皹鐐�', - // value: '7', - // }, - // { - // label: '绌烘皵璐ㄩ噺鐩戞祴鐐�', - // value: '8', - // }, - // { - // label: '閬撹矾鎵皹鐩戞祴鐐�', - // value: '9', - // }, - // { - // label: '閬撹矾', - // value: '10', - // }, - // { - // label: '娌虫祦鏂潰', - // value: '11', - // }, - // { - // label: '宸ヤ笟鍥尯', - // value: '12', - // }, - // { - // label: '鏃犲浐瀹氬満鏅�', - // value: '13', - // }, - // { - // label: '鍫嗗満', - // value: '14', - // }, - { - label: '瀹為獙瀹�', - value: '15' - }, - { - label: '绮惧搧灏忓尯', - value: '16' - }, - { - label: '鍔犳补绔�', - value: '17' - }, - { - label: '鍟嗕笟浣�', - value: '18' - }, - { - label: '鍥芥帶鐐�', - value: '19' - }, - { - label: '甯傛帶鐐�', - value: '20' - } - ]; + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + return optionJingan; + } else { + return option; + } } function sceneIcon(type) { diff --git a/src/constant/scene-types/options-jingan.js b/src/constant/scene-types/options-jingan.js new file mode 100644 index 0000000..f8cc40f --- /dev/null +++ b/src/constant/scene-types/options-jingan.js @@ -0,0 +1,93 @@ +/** + * 涓婃捣甯傞潤瀹夊尯涓撴湁绯荤粺鍦板浘鏄剧ず鍦烘櫙绫诲瀷鍒囨崲閫夐」 + */ + +export const option = [ + { + label: '宸ュ湴', + value: '1' + }, + // { + // label: '鐮佸ご', + // value: '2', + // }, + // { + // label: '鎼呮媽绔�', + // value: '3', + // }, + { + label: '宸ヤ笟浼佷笟', + value: '4', + disabled: true + }, + { + label: '椁愰ギ', + value: '5', + disabled: true + }, + { + label: '姹戒慨', + value: '6', + disabled: true + }, + // { + // label: '闄嶅皹鐐�', + // value: '7', + // }, + // { + // label: '绌烘皵璐ㄩ噺鐩戞祴鐐�', + // value: '8', + // }, + // { + // label: '閬撹矾鎵皹鐩戞祴鐐�', + // value: '9', + // }, + // { + // label: '閬撹矾', + // value: '10', + // }, + // { + // label: '娌虫祦鏂潰', + // value: '11', + // }, + // { + // label: '宸ヤ笟鍥尯', + // value: '12', + // }, + // { + // label: '鏃犲浐瀹氬満鏅�', + // value: '13', + // }, + // { + // label: '鍫嗗満', + // value: '14', + // }, + { + label: '瀹為獙瀹�', + value: '15', + disabled: true + }, + { + label: '绮惧搧灏忓尯', + value: '16', + disabled: true + }, + { + label: '鍔犳补绔�', + value: '17', + disabled: true + }, + { + label: '鍟嗕笟浣�', + value: '18', + disabled: true + }, + { + label: '鍥芥帶鐐�', + value: '19' + }, + { + label: '甯傛帶鐐�', + value: '20' + } +]; diff --git a/src/constant/scene-types/options.js b/src/constant/scene-types/options.js new file mode 100644 index 0000000..1bba61d --- /dev/null +++ b/src/constant/scene-types/options.js @@ -0,0 +1,86 @@ +/** + * 鍘熷绯荤粺鍦板浘鏄剧ず鍦烘櫙绫诲瀷鍒囨崲閫夐」 + */ + +export const option = [ + { + label: '宸ュ湴', + value: '1' + }, + // { + // label: '鐮佸ご', + // value: '2', + // }, + // { + // label: '鎼呮媽绔�', + // value: '3', + // }, + { + label: '宸ヤ笟浼佷笟', + value: '4' + }, + { + label: '椁愰ギ', + value: '5' + }, + { + label: '姹戒慨', + value: '6' + }, + // { + // label: '闄嶅皹鐐�', + // value: '7', + // }, + // { + // label: '绌烘皵璐ㄩ噺鐩戞祴鐐�', + // value: '8', + // }, + // { + // label: '閬撹矾鎵皹鐩戞祴鐐�', + // value: '9', + // }, + // { + // label: '閬撹矾', + // value: '10', + // }, + // { + // label: '娌虫祦鏂潰', + // value: '11', + // }, + // { + // label: '宸ヤ笟鍥尯', + // value: '12', + // }, + // { + // label: '鏃犲浐瀹氬満鏅�', + // value: '13', + // }, + // { + // label: '鍫嗗満', + // value: '14', + // }, + { + label: '瀹為獙瀹�', + value: '15' + }, + { + label: '绮惧搧灏忓尯', + value: '16' + }, + { + label: '鍔犳补绔�', + value: '17' + }, + { + label: '鍟嗕笟浣�', + value: '18' + }, + { + label: '鍥芥帶鐐�', + value: '19' + }, + { + label: '甯傛帶鐐�', + value: '20' + } +]; diff --git a/src/lib/jquery.soap.js b/src/lib/jquery.soap.js new file mode 100644 index 0000000..afc3fdd --- /dev/null +++ b/src/lib/jquery.soap.js @@ -0,0 +1,792 @@ +import $ from 'jquery'; + +var enableLogging; +var globalConfig = { + // this setup once, defaults go here + appendMethodToURL: true, + async: true, + enableLogging: false, + noPrefix: false, + soap12: false, + withCredentials: false, + timeout: 5000 +}; +function soap(options) { + var config = {}; + // a configuration call will not have 'data' specified ('params' is used for backwards compatibility) + if (options && !options.params && !options.data) { + $.extend(globalConfig, options); // update global config + enableLogging = options.enableLogging; + log('jQuery.soap - globalConfig updated:', globalConfig); + return globalConfig; + } + $.extend(config, globalConfig, options); + // function log will only work below this line! + enableLogging = config.enableLogging; + + log('jquery.soap - config:', config); + + // fallbacks for changed properties + SOAPTool.fallbackDeprecated(config); + + var soapObject = SOAPTool.processData({ + data: config.data, + name: config.elementName ? config.elementName : config.method, + context: config.context, + prefix: + !!config.namespaceQualifier && !config.noPrefix + ? config.namespaceQualifier + ':' + : '' + }); + + if (!!config.namespaceQualifier && !!config.namespaceURL) { + soapObject.addNamespace(config.namespaceQualifier, config.namespaceURL); + } else if (config.namespaceURL) { + soapObject.attr('xmlns', config.namespaceURL); + } + + if (!!soapObject && !!config.url) { + // we have a request and somewhere to send it + // Create a SOAPEnvelope with the soapObject + var soapEnvelope = new SOAPEnvelope(soapObject); + // Additional attributes and namespaces for the Envelope + if (config.envAttributes) { + for (var i in config.envAttributes) { + soapEnvelope.addAttribute(i, config.envAttributes[i]); + } + } + // SOAPHeader + if (config.SOAPHeader) { + var soapHeader = SOAPTool.processData({ + data: config.SOAPHeader, + name: 'temp', + prefix: '' + }); + if (soapHeader) { + if (soapHeader.hasChildren()) { + for (var j in soapHeader.children) { + soapEnvelope.addHeader(soapHeader.children[j]); + } + } else { + soapEnvelope.addHeader(soapHeader); + } + } + } + // WSS + if (config.wss) { + var wssObj = SOAPTool.createWSS(config.wss); + // add to WSS Security header to soapEnvelope + if (wssObj) { + soapEnvelope.addHeader(wssObj); + } + } + // append Method? + if (!!config.appendMethodToURL && !!config.method) { + // fixme 2024.8.15 淇敼姝ゅ閫昏緫锛寀rl涓嶅啀鑷姩娣诲姞method浣滀负璺緞 + // config.url += config.method; + } + return soapEnvelope + .send({ + url: config.url, + context: config.context, + timeout: config.timeout, + async: config.async, + headers: config.HTTPHeaders ? config.HTTPHeaders : {}, + action: config.SOAPAction ? config.SOAPAction : config.method, + soap12: config.soap12, + beforeSend: config.beforeSend, + statusCode: config.statusCode + }) + .done(function (data, textStatus, jqXHR) { + var response = new SOAPResponse(textStatus, jqXHR); + log('jquery.soap - receive:', response.toString()); + if ($.isFunction(config.success)) { + config.success.call(this, response); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + log('jquery.soap - error:', errorThrown); + if ($.isFunction(config.error)) { + config.error.call(this, new SOAPResponse(textStatus, jqXHR)); + } + }); + } else { + var errDeferred = new $.Deferred(), + errmsg; + + if (!soapObject) { + errmsg = 'jquery.soap - no soapObject'; + } + if (!config.url) { + errmsg = 'jquery.soap - no url'; + } + if (errmsg) { + warn(errmsg); + errDeferred.reject(errmsg); + } + return errDeferred.promise(); + } +} + +//Soap request - this is what being sent +function SOAPEnvelope(soapObject) { + this.typeOf = 'SOAPEnvelope'; + this.prefix = 'soap'; + this.soapConfig = null; + this.attributes = {}; + this.headers = []; + this.bodies = []; + + // let's get the soap namespace prefix + var parts = soapObject.name.split(':'), + len; + if (parts[1] === 'Envelope' || parts[1] === 'Body') { + this.prefix = parts[0]; + if ( + soapObject.attr('xmlns:' + this.prefix) === SOAPTool.SOAP11.namespaceURL + ) { + this.soapConfig = this.SOAP11; + } + if ( + soapObject.attr('xmlns:' + this.prefix) === SOAPTool.SOAP12.namespaceURL + ) { + this.soapConfig = this.SOAP12; + } + // Envelope + var env = soapObject.find(this.prefix + ':Envelope'); + if (env && env.attributes) { + for (var i in env.attributes) { + this.addAttribute(i, env.attributes[i]); + } + } + // headers + var header = soapObject.find(this.prefix + ':Header'); + if (header && header.children) { + len = header.children.length; + for (var j = 0; j < len; j++) { + this.addHeader(header.children[j]); + } + } + // body + var body = soapObject.find(this.prefix + ':Body'); + if (body && body.children) { + len = body.children.length; + for (var k = 0; k < len; k++) { + this.addBody(body.children[k]); + } + } else { + len = soapObject.children.length; + for (var l = 0; l < len; l++) { + this.addBody(soapObject.children[l]); + } + } + } else { + // a soapObject with nothing, mere data + this.addBody(soapObject); + } +} + +SOAPEnvelope.prototype = { + addAttribute: function (name, value) { + this.attributes[name] = value; + }, + addNamespace: function (name, uri) { + this.addAttribute('xmlns:' + name, uri); + }, + addHeader: function (soapObject) { + this.headers.push(soapObject); + }, + addBody: function (soapObject) { + this.bodies.push(soapObject); + }, + toString: function () { + var soapEnv = new SOAPObject(this.prefix + ':Envelope'), + len; + //Add attributes + for (var name in this.attributes) { + soapEnv.attr(name, this.attributes[name]); + } + //Add Headers + len = this.headers.length; + if (len > 0) { + var soapHeader = soapEnv.newChild(this.prefix + ':Header'); + for (var i = 0; i < len; i++) { + soapHeader.appendChild(this.headers[i]); + } + } + //Add Bodies + len = this.bodies.length; + if (len > 0) { + var soapBody = soapEnv.newChild(this.prefix + ':Body'); + for (var j = 0; j < len; j++) { + soapBody.appendChild(this.bodies[j]); + } + } + // Check for main NS over here... + if (!soapEnv.attr('xmlns:' + this.prefix)) { + soapEnv.addNamespace(this.prefix, this.soapConfig.namespaceURL); + } + if (!soapEnv.attr('xmlns:xsi')) { + soapEnv.addNamespace('xsi', 'http://www.w3.org/2001/XMLSchema-instance'); + } + if (!soapEnv.attr('xmlns:xsd')) { + soapEnv.addNamespace('xsd', 'http://www.w3.org/2001/XMLSchema'); + } + return '<?xml version="1.0" encoding="UTF-8"?>' + soapEnv.toString(); + }, + send: function (options) { + var self = this; + if (!this.soapConfig) { + this.soapConfig = options.soap12 ? SOAPTool.SOAP12 : SOAPTool.SOAP11; + } + var contentType = this.soapConfig.type; + if (contentType === SOAPTool.SOAP11.type && !!options.action) { + options.headers.SOAPAction = options.action; + } + log('jquery.soap - beforeSend:', this.toString()); + return $.ajax({ + type: 'POST', + context: options.context, + statusCode: options.statusCode, + url: options.url, + async: options.async, + headers: options.headers, + timeout: options.timeout, + // crossDomain: true, + dataType: 'xml', + processData: false, + data: this.toString(), + contentType: + contentType + + '; charset=UTF-8' + + (options.soap12 ? '; action=' + options.action : ''), + xhrFields: { + // Add xhrFields, and set xhrFields.withCredentials = true by default, otherwise, + // it can't send a cross-domain request successfully in Chrome without this settings. + // You can use it to set withCredentials to true for cross-domain requests if needed. + // More about it is in jQuery official website. (http://api.jquery.com/jquery.ajax/). + // I hope it's useful and tested in Chrome & IE 11+ & IE Edge, Thanks. + withCredentials: options.withCredentials + }, + // second attempt to get some progres info (but still a no go) + // I still keep this in tho, we might see it working one day when browsers mature... + /* + //WRT issue #80 (https://github.com/doedje/jquery.soap/issues/80) commenting out the xhr function below for IE8 and IE9 compatability. Issue exists when used alongside any script that modifies the XMLHttpRequest object like, for example, the xdomain or xhook libraries. This could be explicitly enabled by users on a per-case basis if it is mentioned somewhere in the readme.md file. + xhr: function() { + var xhr = new window.XMLHttpRequest(); + xhr.upload.addEventListener("progress", function(evt) { + if (evt.lengthComputable) { + var progress = evt.loaded / evt.total; + log("jquery.soap - progress up: ", (progress * 100) + '% total: ' + evt.total); + } + }, false); + xhr.addEventListener("progress", function(evt) { + if (evt.lengthComputable) { + var progress = evt.loaded / evt.total; + log("jquery.soap - progress down: ", (progress * 100) + '% total: ' + evt.total); + } + }, false); + + return xhr; + }, + */ + beforeSend: function () { + if ($.isFunction(options.beforeSend)) { + return options.beforeSend.call(options.context, self); + } + } + }); + } +}; + +// SOAPObject - an abstraction layer to build SOAP Objects. +var SOAPObject = function (name) { + this.typeOf = 'SOAPObject'; + this.name = name; + this.ns = {}; + this.attributes = {}; + this._parent = null; + this.children = []; + this.value = undefined; +}; + +SOAPObject.prototype = { + attr: function (name, value) { + if ((!!name && !!value) || (!!name && value === '')) { + this.attributes[name] = value; + return this; + } else if (name) { + return this.attributes[name]; + } else { + return this.attributes; + } + }, + val: function (value) { + if (value === undefined) { + if (this.attr('xsi:nil') === 'true') { + return null; + } else { + return this.value; + } + } else if (value === null) { + this.attr('xsi:nil', 'true'); + return this; + } else { + this.value = value; + return this; + } + }, + addNamespace: function (name, url) { + this.ns[name] = url; + return this; + }, + appendChild: function (obj) { + obj._parent = this; + this.children.push(obj); + return obj; + }, + newChild: function (name) { + var obj = new SOAPObject(name); + this.appendChild(obj); + return obj; + }, + addParameter: function (name, value) { + var obj = new SOAPObject(name); + obj.val(value); + this.appendChild(obj); + return this; + }, + hasChildren: function () { + return this.children.length > 0 ? true : false; + }, + find: function (name) { + if (this.name === name) { + return this; + } else { + for (var i = 0, len = this.children.length; i < len; i++) { + var result = this.children[i].find(name); + if (result) { + return result; + } + } + } + }, + end: function () { + return this.parent(); + }, + parent: function () { + return this._parent; + }, + toString: function () { + var out = [], + encodedValue; + out.push('<' + this.name); + //Namespaces + for (var name in this.ns) { + out.push(' xmlns:' + name + '="' + this.ns[name] + '"'); + } + //Node Attributes + for (var attr in this.attributes) { + if (typeof this.attributes[attr] === 'string') { + out.push( + ' ' + + attr + + '="' + + SOAPTool.encodeXmlValue(this.attributes[attr]) + + '"' + ); + } + } + out.push('>'); + //Node children + if (this.hasChildren()) { + for (var cPos in this.children) { + var cObj = this.children[cPos]; + if (typeof cObj === 'object' && cObj.typeOf === 'SOAPObject') { + out.push(cObj.toString()); + } + } + } + //Node Value + if (this.value !== undefined) { + if (typeof this.value === 'string') { + switch (this.value.indexOf('<![CDATA[')) { + case -1: + // no CDATA blocks => encode everything + encodedValue = SOAPTool.encodeXmlValue(this.value); + break; + case 0: + if (this.value.indexOf(']]>') === this.value.length - 3) { + // entire value wrapped in one single CDATA block => no encoding required + encodedValue = this.value; + break; + } + default: + // encode with more advanced CDATA check + encodedValue = SOAPTool.encodeXmlValueWithCDataCheck(this.value); + } + } else if (typeof this.value === 'number') { + encodedValue = this.value.toString(); + } + out.push(encodedValue); + } + //Close Tag + out.push('</' + this.name + '>'); + return out.join(''); + } +}; + +//Soap response - this will be passed to the callback from SOAPEnvelope.send +var SOAPResponse = function (status, xhr) { + this.typeOf = 'SOAPResponse'; + this.status = status; + this.headers = xhr.getAllResponseHeaders().split('\n'); + this.httpCode = xhr.status; + this.httpText = xhr.statusText; + this.content = + xhr.responseXML === undefined || xhr.responseXML === null + ? xhr.responseText + : xhr.responseXML; + this.toString = function () { + if (typeof this.content === 'string') { + return this.content; + } + if ($.isXMLDoc(this.content)) { + return SOAPTool.dom2string(this.content); + } + throw new Error('Unexpected Content: ' + $.type(this.content)); + }; + this.toXML = function () { + if ($.isXMLDoc(this.content)) { + return this.content; + } + return $.parseXML(this.content); + }; + this.toJSON = function () { + if ($.xml2json) { + return $.xml2json(this.content); + } + warn( + "jQuery.soap - Missing JQuery Plugin 'xml2json', info at: https://github.com/doedje/jquery.soap#dependencies" + ); + }; +}; + +//Singleton SOAP Tool +var SOAPTool = { + SOAP11: { + type: 'text/xml', + namespaceURL: 'http://schemas.xmlsoap.org/soap/envelope/' + }, + SOAP12: { + type: 'application/soap+xml', + namespaceURL: 'http://www.w3.org/2003/05/soap-envelope' + }, + processData: function (options) { + var soapObject; + if ($.type(options.data) === 'string') { + // if data is XML string, parse to XML DOM + // ensure that string is not empty and contains more than whitespace + if (/\S/.test(options.data)) { + if (options.data.indexOf('<') > -1) { + options.data = $.parseXML(options.data); + } else { + // this is for bare parameters #125 + soapObject = SOAPTool.json2soap( + options.name, + options.data, + options.prefix + ); + } + } + } + if ($.isXMLDoc(options.data)) { + // if data is XML DOM, parse to SOAPObject + soapObject = SOAPTool.dom2soap(options.data.firstChild); + } else if ($.isArray(options.data)) { + // if data is an Array, asume SOAP::Lite + soapObject = SOAPTool.array2soap(options); + } else if ($.isPlainObject(options.data)) { + // if data is JSON, parse to SOAPObject + soapObject = SOAPTool.json2soap( + options.name, + options.data, + options.prefix + ); + } else if ($.isFunction(options.data)) { + // if data is function, the function should return a SOAPObject + soapObject = options.data.call(options.context, SOAPObject); + } + return soapObject; + }, + encodeXmlValue: function (value) { + var encodedValue, + xmlCharMap = { + '<': '<', + '>': '>', + '&': '&', + '"': '"', + "'": ''' + }, + encodedValue; + + encodedValue = value.replace(/[<>&"']/g, function (ch) { + return xmlCharMap[ch]; + }); + return encodedValue; + }, + encodeXmlValueWithCDataCheck: function (value) { + // This function will only encode the parts within value that are not inside a CDATA section, allowing multiple usages of CDATA-blocks + // ie. "encoding here <!CDATA[[ no encoding here ]]> encoding here <!CDATA[[ no encoding here ]]>" + var cdata = false, + valueArray = value.split(''), + encoded = [], + char; + + for (var i = 0, j = valueArray.length; i < j; i++) { + switch (valueArray[i]) { + case '<': + if (cdata) { + encoded.push('<'); + } else if (value.substr(i, 9) === '<![CDATA[') { + // if no CDATA section started, check if current char is part of CDATA start + encoded.push('<![CDATA['); + i += 8; // skip CDATA start chars + cdata = true; + } else { + encoded.push('<'); + } + break; + + case ']': + if (cdata && value.substr(i, 3) === ']]>') { + // if CDATA section started, check if current char is part of CDATA end + encoded.push(']]>'); + i += 2; // skip CDATA end chars + cdata = false; + } else { + encoded.push(']'); + } + break; + + case '>': + encoded.push(cdata ? '>' : '>'); + break; + case '&': + encoded.push(cdata ? '&' : '&'); + break; + case '"': + encoded.push(cdata ? '"' : '"'); + break; + case "'": + encoded.push(cdata ? "'" : '''); + break; + default: + encoded.push(valueArray[i]); + } + } + return encoded.join(''); + }, + json2soap: function (name, params, prefix, parentNode) { + var soapObject; + var childObject; + if (params === null) { + soapObject = new SOAPObject(prefix + name); + soapObject.attr('xsi:nil', 'true'); + } else if (typeof params == 'object') { + // added by DT - check if object is in fact an Array and treat accordingly + if (params.constructor.toString().indexOf('Array') > -1) { + // type is array + for (var i = 0, len = params.length; i < len; i++) { + childObject = this.json2soap(name, params[i], prefix, parentNode); + parentNode.appendChild(childObject); + } + } else if (params.constructor.toString().indexOf('String') > -1) { + // type is string + // handle String objects as string primitive value + soapObject = new SOAPObject(prefix + name); + soapObject.val(params); + } else if (params.constructor.toString().indexOf('Date') > -1) { + // type is Date + // handle Date objects as ISO8601 formated value + soapObject = new SOAPObject(prefix + name); + soapObject.val(params.toISOString()); + } else { + soapObject = new SOAPObject(prefix + name); + for (var y in params) { + childObject = this.json2soap(y, params[y], prefix, soapObject); + if (childObject) { + soapObject.appendChild(childObject); + } + } + } + } else if (typeof params == 'boolean') { + soapObject = new SOAPObject(prefix + name); + soapObject.val(params ? 'true' : 'false'); + } else { + soapObject = new SOAPObject(prefix + name); + soapObject.val(params); + } + return soapObject; + }, + dom2soap: function (xmldom) { + var whitespace = /^\s+$/, + soapObject = new SOAPObject(xmldom.nodeName), + len; + + len = xmldom.attributes.length; + for (var i = 0; i < len; i++) { + var attribute = xmldom.attributes[i]; + soapObject.attr(attribute.name, attribute.value); + } + len = xmldom.childNodes.length; + for (var j = 0; j < len; j++) { + var child = xmldom.childNodes[j]; + if (child.nodeType === 1) { + var childObject = SOAPTool.dom2soap(child); + soapObject.appendChild(childObject); + } + if (child.nodeType === 3 && !whitespace.test(child.nodeValue)) { + soapObject.val(child.nodeValue); + } + if (child.nodeType === 4) { + soapObject.val('<![CDATA[' + child.nodeValue + ']]>'); + } + } + return soapObject; + }, + array2soap: function (options) { + soapObject = new SOAPObject(options.name); + for (var index = 0, len = options.data.length; index < len; index++) { + if ($.isArray(options.data[index])) { + var new_item = soapObject.newChild('soapenc:Array'); + new_item.attr( + 'soapenc:arrayType', + 'xsd:string[' + options.data[index].length + ']' + ); + for ( + var item = 0, len2 = options.data[index].length; + item < len2; + item++ + ) { + new_item + .newChild('item') + .attr('type', 'xsd:string') + .val(options.data[index][item]) + .end(); + } + } else { + soapObject + .newChild('c-gensym' + index) + .attr('type', 'xsd:string') + .val(options.data[index]) + .end(); + } + } + return soapObject; + }, + dom2string: function (dom) { + if (typeof XMLSerializer !== 'undefined') { + return new window.XMLSerializer().serializeToString(dom); + } else { + return dom.xml; + } + }, + createWSS: function (wssValues) { + if (!!wssValues.username && !!wssValues.password) { + var wssConst = { + security: 'wsse:Security', + securityNS: + 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', + usernameToken: 'wsse:UsernameToken', + usernameTokenNS: + 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd', + username: 'wsse:Username', + usernameType: + 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', + password: 'wsse:Password', + passwordType: + 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText', + nonce: 'wsse:Nonce', + nonceType: + 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', + wsuCreated: 'wsu:Created', + wsuCreatedType: + 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' + }; + var WSSObj = new SOAPObject(wssConst.security) + .addNamespace('wsse', wssConst.securityNS) + .addNamespace('wsu', wssConst.usernameTokenNS) + .newChild(wssConst.usernameToken) + .newChild(wssConst.username) + .attr('Type', wssConst.usernameType) + .val(wssValues.username) + .end() + .newChild(wssConst.password) + .attr('Type', wssConst.passwordType) + .val(wssValues.password) + .end() + .end(); + var userTokenObj = WSSObj.find(wssConst.usernameToken); + if (wssValues.nonce) { + userTokenObj + .newChild(wssConst.nonce) + .attr('Type', wssConst.nonceType) + .val(wssValues.nonce); + } + if (wssValues.created) { + userTokenObj + .newChild(wssConst.wsuCreated) + .attr('Type', wssConst.wsuCreatedType) + .val(wssValues.created); + } + return WSSObj; + } + }, + fallbackDeprecated: function (config) { + // fallbacks for changed properties: (the old names will deprecate at version 2.0.0!) + var deprecated = { + // usage -> oldParam: 'newParam' + namespaceUrl: 'namespaceURL', + request: 'beforeSend', + params: 'data' + }; + for (var oldParam in deprecated) { + var newParam = deprecated[oldParam]; + if (!config[newParam] && !!config[oldParam]) { + warn( + 'jquery.soap: ' + + oldParam + + ' is deprecated, use ' + + newParam + + ' instead!' + ); + config[newParam] = config[oldParam]; + delete config[oldParam]; + } + } + } +}; +function log() { + if (enableLogging && typeof console === 'object') { + if ($.isFunction(console.log)) { + if (arguments.length == 1) { + console.log(arguments[0]); + } else { + console.log(arguments); + } + } + } +} +function warn() { + if (typeof console === 'object') { + if ($.isFunction(console.warn)) { + if (arguments.length == 1) { + console.warn(arguments[0]); + } else { + console.warn(arguments); + } + } + } +} +$.soap = soap; diff --git a/src/lib/jquery.xml2json.js b/src/lib/jquery.xml2json.js new file mode 100644 index 0000000..1f15cfb --- /dev/null +++ b/src/lib/jquery.xml2json.js @@ -0,0 +1,200 @@ +/* + ### jQuery XML to JSON Plugin v1.3 - 2013-02-18 ### + * https://www.fyneworks.com/ - diego@fyneworks.com + * Licensed under http://en.wikipedia.org/wiki/MIT_License + ### + Website: http://www.fyneworks.com/jquery/xml-to-json/ +*/ /* + # INSPIRED BY: http://www.terracoder.com/ + AND: http://www.thomasfrank.se/xml_to_json.html + AND: http://www.kawa.net/works/js/xml/objtree-e.html +*/ /* + This simple script converts XML (document of code) into a JSON object. It is the combination of 2 + 'xml to json' great parsers (see below) which allows for both 'simple' and 'extended' parsing modes. +*/ +import $ from 'jquery'; +// Avoid collisions + +// Add function to jQuery namespace +$.extend({ + // converts xml documents and xml text to json object + xml2json: function (xml, extended) { + if (!xml) return {}; // quick fail + + //### PARSER LIBRARY + // Core function + function parseXML(node, simple) { + if (!node) return null; + var txt = '', + obj = null, + att = null; + var nt = node.nodeType, + nn = jsVar(node.localName || node.nodeName); + var nv = node.text || node.nodeValue || ''; + /*DBG*/ //if(window.console) console.log(['x2j',nn,nt,nv.length+' bytes']); + if (node.childNodes) { + if (node.childNodes.length > 0) { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'CHILDREN',node.childNodes]); + $.each(node.childNodes, function (n, cn) { + var cnt = cn.nodeType, + cnn = jsVar(cn.localName || cn.nodeName); + var cnv = cn.text || cn.nodeValue || ''; + /*DBG*/ //if(window.console) console.log(['x2j',nn,'node>a',cnn,cnt,cnv]); + if (cnt == 8) { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'node>b',cnn,'COMMENT (ignore)']); + return; // ignore comment node + } else if (cnt == 3 || cnt == 4 || !cnn) { + // ignore white-space in between tags + if (cnv.match(/^\s+$/)) { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'node>c',cnn,'WHITE-SPACE (ignore)']); + return; + } + /*DBG*/ //if(window.console) console.log(['x2j',nn,'node>d',cnn,'TEXT']); + txt += cnv.replace(/^\s+/, '').replace(/\s+$/, ''); + // make sure we ditch trailing spaces from markup + } else { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'node>e',cnn,'OBJECT']); + obj = obj || {}; + if (obj[cnn]) { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'node>f',cnn,'ARRAY']); + + // http://forum.jquery.com/topic/jquery-jquery-xml2json-problems-when-siblings-of-the-same-tagname-only-have-a-textnode-as-a-child + if (!obj[cnn].length) obj[cnn] = myArr(obj[cnn]); + obj[cnn] = myArr(obj[cnn]); + + obj[cnn][obj[cnn].length] = parseXML(cn, true /* simple */); + obj[cnn].length = obj[cnn].length; + } else { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'node>g',cnn,'dig deeper...']); + obj[cnn] = parseXML(cn); + } + } + }); + } //node.childNodes.length>0 + } //node.childNodes + if (node.attributes) { + if (node.attributes.length > 0) { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'ATTRIBUTES',node.attributes]) + att = {}; + obj = obj || {}; + $.each(node.attributes, function (a, at) { + var atn = jsVar(at.name), + atv = at.value; + att[atn] = atv; + if (obj[atn]) { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'attr>',atn,'ARRAY']); + + // http://forum.jquery.com/topic/jquery-jquery-xml2json-problems-when-siblings-of-the-same-tagname-only-have-a-textnode-as-a-child + //if(!obj[atn].length) obj[atn] = myArr(obj[atn]);//[ obj[ atn ] ]; + obj[cnn] = myArr(obj[cnn]); + + obj[atn][obj[atn].length] = atv; + obj[atn].length = obj[atn].length; + } else { + /*DBG*/ //if(window.console) console.log(['x2j',nn,'attr>',atn,'TEXT']); + obj[atn] = atv; + } + }); + //obj['attributes'] = att; + } //node.attributes.length>0 + } //node.attributes + if (obj) { + obj = $.extend( + txt != '' ? new String(txt) : {}, + /* {text:txt},*/ obj || {} /*, att || {}*/ + ); + //txt = (obj.text) ? (typeof(obj.text)=='object' ? obj.text : [obj.text || '']).concat([txt]) : txt; + txt = obj.text ? [obj.text || ''].concat([txt]) : txt; + if (txt) obj.text = txt; + txt = ''; + } + var out = obj || txt; + //console.log([extended, simple, out]); + if (extended) { + if (txt) out = {}; //new String(out); + txt = out.text || txt || ''; + if (txt) out.text = txt; + if (!simple) out = myArr(out); + } + return out; + } // parseXML + // Core Function End + // Utility functions + var jsVar = function (s) { + return String(s || '').replace(/-/g, '_'); + }; + + // NEW isNum function: 01/09/2010 + // Thanks to Emile Grau, GigaTecnologies S.L., www.gigatransfer.com, www.mygigamail.com + function isNum(s) { + // based on utility function isNum from xml2json plugin (http://www.fyneworks.com/ - diego@fyneworks.com) + // few bugs corrected from original function : + // - syntax error : regexp.test(string) instead of string.test(reg) + // - regexp modified to accept comma as decimal mark (latin syntax : 25,24 ) + // - regexp modified to reject if no number before decimal mark : ".7" is not accepted + // - string is "trimmed", allowing to accept space at the beginning and end of string + var regexp = /^((-)?([0-9]+)(([\.\,]{0,1})([0-9]+))?$)/; + return ( + typeof s == 'number' || + regexp.test(String(s && typeof s == 'string' ? jQuery.trim(s) : '')) + ); + } + // OLD isNum function: (for reference only) + //var isNum = function(s){ return (typeof s == "number") || String((s && typeof s == "string") ? s : '').test(/^((-)?([0-9]*)((\.{0,1})([0-9]+))?$)/); }; + + var myArr = function (o) { + // http://forum.jquery.com/topic/jquery-jquery-xml2json-problems-when-siblings-of-the-same-tagname-only-have-a-textnode-as-a-child + //if(!o.length) o = [ o ]; o.length=o.length; + if (!$.isArray(o)) o = [o]; + o.length = o.length; + + // here is where you can attach additional functionality, such as searching and sorting... + return o; + }; + // Utility functions End + //### PARSER LIBRARY END + + // Convert plain text to xml + if (typeof xml == 'string') xml = $.text2xml(xml); + + // Quick fail if not xml (or if this is a node) + if (!xml.nodeType) return; + if (xml.nodeType == 3 || xml.nodeType == 4) return xml.nodeValue; + + // Find xml root node + var root = xml.nodeType == 9 ? xml.documentElement : xml; + + // Convert xml to json + var out = parseXML(root, true /* simple */); + + // Clean-up memory + xml = null; + root = null; + + // Send output + return out; + }, + + // Convert text to XML DOM + text2xml: function (str) { + // NOTE: I'd like to use jQuery for this, but jQuery makes all tags uppercase + //return $(xml)[0]; + + /* prior to jquery 1.9 */ + /* + var out; + try{ + var xml = ((!$.support.opacity && !$.support.style))?new ActiveXObject("Microsoft.XMLDOM"):new DOMParser(); + xml.async = false; + }catch(e){ throw new Error("XML Parser could not be instantiated") }; + try{ + if((!$.support.opacity && !$.support.style)) out = (xml.loadXML(str))?xml:false; + else out = xml.parseFromString(str, "text/xml"); + }catch(e){ throw new Error("Error parsing XML string") }; + return out; + */ + + /* jquery 1.9+ */ + return $.parseXML(str); + } +}); // extend $ diff --git a/src/model/Factor.js b/src/model/Factor.js index f142012..354a585 100644 --- a/src/model/Factor.js +++ b/src/model/Factor.js @@ -1,6 +1,7 @@ import { Legend } from './Legend'; const _hMap = { + 19: [0, 1000], //NO 1: [0, 1000], //NO2 2: [0, 2000], //CO 3: [0, 1000], //H2S diff --git a/src/model/FactorDatas.js b/src/model/FactorDatas.js index 58bc5a8..d3c2c1a 100644 --- a/src/model/FactorDatas.js +++ b/src/model/FactorDatas.js @@ -47,6 +47,9 @@ }] */ setData: function (dataList, drawMode, callback) { + if (dataList.length == 0) { + return; + } this.clearData(); dataList.forEach((d) => { @@ -67,6 +70,10 @@ // 鏂板涓�涓柊鏁版嵁 addData: function (dataList, drawMode, callback) { + if (dataList.length == 0) { + return; + } + var newGps = []; dataList.forEach((data) => { this.times.push(data.time); diff --git a/src/model/FrameAnimation.js b/src/model/FrameAnimation.js index 4ef624d..211fa0f 100644 --- a/src/model/FrameAnimation.js +++ b/src/model/FrameAnimation.js @@ -17,7 +17,7 @@ this.isPause = false; this.isRunning = false; - this.isStop = false; + this.isStop = true; // 鏄惁寮�鍚姩鎬佺粯鍒堕�熷害 this.dynamicSpeed = false; // 姣忎釜浠诲姟鑰楁椂锛堢锛� @@ -28,13 +28,13 @@ FrameAnimation.prototype = { start: function () { - if (this.intervalFlag != undefined) { - this.isPause = false; - this.isStop = false; - } else { - this.isRunning = true; + // 涓嶅瓨鍦ㄥ姩鐢讳换鍔℃椂閲嶆柊寮�濮嬶紝鍚﹀垯缁х画 + if (this.intervalFlag == undefined) { this._doTask(); } + this.isPause = false; + this.isStop = false; + this.isRunning = true; }, /** * 鍔ㄦ�佸姩鐢婚�熷害 @@ -67,8 +67,11 @@ }, pause: function () { this.isPause = true; + this.isRunning = false; }, stop: function () { + if (this.isStop) return; + if (this.intervalFlag != undefined) { clearInterval(this.intervalFlag); this.intervalFlag = undefined; diff --git a/src/model/Legend.js b/src/model/Legend.js index 304934e..dffc4e0 100644 --- a/src/model/Legend.js +++ b/src/model/Legend.js @@ -8,6 +8,7 @@ //鍚勭洃娴嬪洜瀛愭暟鎹垎绾э紙鏍囧噯锛� _legend_r: { + NO: [0, 100, 200, 700, 1200, 2340], NO2: [0, 100, 200, 700, 1200, 2340], CO: [0, 5, 10, 35, 60, 90], H2S: [0, 150, 500, 650, 800, 1600], @@ -25,6 +26,14 @@ //鍚勭洃娴嬪洜瀛愭暟鎹垎绾э紙鏍囧噯锛夊搴旈鑹� _legend_c: { + NO: [ + [0, 0.89, 0, 0.75], + [1, 1, 0, 0.75], + [1, 0.49, 0, 0.75], + [1, 0, 0, 0.75], + [0.6, 0, 0.3, 0.75], + [0.49, 0, 0.14, 0.75] + ], NO2: [ [0, 0.89, 0, 0.75], [1, 1, 0, 0.75], diff --git a/src/router/index.js b/src/router/index.js index 3587b77..1c06db5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -6,7 +6,7 @@ routes: [ { path: '/', - redirect: '/index/hmode' + redirect: '/login' }, // 鐧婚檰椤甸潰 { diff --git a/src/styles/elementUI.scss b/src/styles/elementUI.scss index b3203b6..30ea08a 100644 --- a/src/styles/elementUI.scss +++ b/src/styles/elementUI.scss @@ -2,13 +2,8 @@ // --el-text-color-regular: #ffffff; } -.el-form-item { - margin-bottom: 0px; - margin-right: 8px !important; -} - .el-form-item__label { - color: white !important; + color: rgba(255, 255, 255, 0.849) !important; } // .el-radio { diff --git a/src/test.xml b/src/test.xml new file mode 100644 index 0000000..201fdee --- /dev/null +++ b/src/test.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <soap:Body> + <GetData> + <compUser>user1</compUser> + <compPassword>User1@jingan</compPassword> + <mn>TX105</mn> + <dtFrom>2024-08-07 10:00:00</dtFrom> + <dtTo>2024-08-07 10:00:59</dtTo> + </GetData> + </soap:Body> +</soap:Envelope> \ No newline at end of file diff --git a/src/utils/chart/chart-option.js b/src/utils/chart/chart-option.js index 06357e1..5ce5a26 100644 --- a/src/utils/chart/chart-option.js +++ b/src/utils/chart/chart-option.js @@ -48,6 +48,8 @@ }, xAxis: { name: '鏃堕棿', + nameLocation: 'middle', + nameGap: 30, data: _xAxis, axisLabel: { textStyle: { @@ -74,7 +76,16 @@ } }, yAxis: { - name: '娴撳害(渭g/m鲁)', + name: '娴撳害(渭g/m鲁)/娓╁害(鈩�)/閫熷害(m/s)', + nameLocation: 'middle', + nameGap: 30, + // nameTruncate: { + // maxWidth: 100, + // ellipsis: '...' + // }, + // nameTextStyle: { + // color: 'red' + // }, axisLabel: { textStyle: { fontSize: fontSize diff --git a/src/utils/factor/data.js b/src/utils/factor/data.js new file mode 100644 index 0000000..472ccbc --- /dev/null +++ b/src/utils/factor/data.js @@ -0,0 +1,246 @@ +/** + * 鏁版嵁鑾峰彇绠$悊 + */ +import '@/lib/jquery.xml2json'; +import 'jquery.soap'; +// import '@/lib/jquery.soap'; +import $ from 'jquery'; +import moment from 'moment'; +import monitorDataApi from '@/api/monitorDataApi'; +import { ElMessage } from 'element-plus'; +import { parseFloatNAN } from '@/utils/number'; + +/**************************--鏈郴缁熷師濮嬭蛋鑸暟鎹幏鍙�--*********************************/ +/** + * 鑾峰彇鍘嗗彶鏁版嵁 + * @param {Object} params + * @returns + */ +function fetchOriginHistoryData(params) { + return monitorDataApi.fetchHistroyData(params); +} + +/** + * 鑾峰彇瀹炴椂鏈�鏂版暟鎹� + * @param {Object} params + * @returns + */ +function fetchOriginRealTimeData(params) { + return monitorDataApi.fetchNextData(params); +} + +/**************************--绗笁鏂圭敵娆g幆淇濊蛋鑸暟鎹幏鍙�--*********************************/ + +/** + * 鑾峰彇鐢虫鐜繚璧拌埅鏁版嵁 + * @date 2024.8.16 + * @param {Object} params + * @returns + */ +function fetchThirdPartyData(params) { + return new Promise((resolve, reject) => { + $.soap({ + // url: 'http://180.169.129.106:9001/WebService.asmx', + url: 'http://114.215.109.124:8082/jingan/WebService.asmx', + method: 'GetData', + appendMethodToURL: false, + namespaceURL: 'http://tempuri.org/', + SOAPAction: 'http://tempuri.org/GetData', + data: params, + success: function (soapResponse) { + const json = $.xml2json(soapResponse.toString()); + // console.log(json); + // todo 2024.8.16 鏁版嵁鏍煎紡杞崲 + const res = json.Body.GetDataResponse.GetDataResult; + if (res.ReturnCode != '0') { + reject(soapResponse); + ElMessage({ + message: res.ReturnMessage, + type: 'error' + }); + } else if (typeof res.ListInfo != 'object') { + resolve({ + success: true, + message: '璇锋眰鎴愬姛', + data: [] + }); + // reject(soapResponse); + ElMessage({ + message: '鏆傛棤鏂扮洃娴嬫暟鎹�', + type: 'warning' + }); + } else { + // 姝ゅ鏈変竴涓� $.xml2json 鏂规硶鐨勪竴涓壒鎬э紝褰撳瓧娈礑ataInfo涓彧鏈変竴涓�兼椂锛屾鏃禗ataInfo涓哄璞$被鍨嬶紝鑰岄潪鏁扮粍 + if (res.ListInfo.DataInfo.length == undefined) { + res.ListInfo.DataInfo = [res.ListInfo.DataInfo]; + } + const _res = res.ListInfo.DataInfo.map((value) => { + const _time = moment(value.PostTime).format('YYYY-MM-DD HH:mm:ss'); + return { + deviceCode: params.mn, + lat: parseFloat(value.Lat), + lng: parseFloat(value.Lon), + time: _time, + values: [ + { + factorId: '19', + factorName: 'NO', + factorData: parseFloatNAN(value.NO) + }, + { + factorId: '1', + factorName: 'NO2', + factorData: parseFloatNAN(value.NO2) + }, + { + factorId: '2', + factorName: 'CO', + factorData: parseFloatNAN(value.CO) * 1000 + }, + { + factorId: '6', + factorName: 'PM25', + factorData: parseFloatNAN(value.PM25) + }, + { + factorId: '7', + factorName: 'PM10', + factorData: parseFloatNAN(value.PM10) + }, + { + factorId: '8', + factorName: 'TEMPERATURE', + factorData: parseFloatNAN(value.Temperature) + }, + { + factorId: '14', + factorName: 'VELOCITY', + factorData: parseFloatNAN(value.Speed) + }, + { + factorId: '15', + factorName: 'TIME', + factorData: moment(_time).valueOf(), + statusList: [_time] + }, + { + factorId: '16', + factorName: 'WIND_SPEED', + factorData: parseFloatNAN(value.WindSpeed) + }, + { + factorId: '17', + factorName: 'WIND_DIRECTION', + factorData: parseFloatNAN(value.WindDirection) + } + ] + }; + }); + resolve({ + success: true, + message: '璇锋眰鎴愬姛', + data: _res + }); + } + }, + error: function (SOAPResponse) { + // show error + reject(SOAPResponse); + ElMessage({ + message: '鏁版嵁鑾峰彇澶辫触', + type: 'error' + }); + } + }); + }); +} + +/**************************--瀵瑰鏆撮湶缁熶竴鎺ュ彛--*********************************/ +/** + * 鑾峰彇鍘嗗彶鏁版嵁 + */ +function fetchHistoryData(params) { + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + const _params = { + compUser: 'user1', + compPassword: 'User1@jingan', + mn: params.deviceCode, + dtFrom: params.startTime + ? params.startTime + : moment().subtract(6, 'm').format('YYYY-MM-DD HH:mm:ss'), + dtTo: params.endTime + ? params.endTime + : moment().format('YYYY-MM-DD HH:mm:ss') + }; + return fetchThirdPartyData(_params); + } else { + return fetchOriginHistoryData(params); + } +} + +var fetchingTask; +var isFetching; +/** + * 寮�鍚疄鏃舵暟鎹惊鐜幏鍙� + * @param {Object} params + */ +function startLoopFetchRealTimeData(onParam, callback) { + // 鏃堕棿闂撮殧 + let interval; + // 鏁版嵁鑾峰彇鏂规硶 + let fetchFun; + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + // 璇ユ暟鎹紶杈撴渶浣庨棿闅斾负1鍒嗛挓锛屾瘡娆¤幏鍙栫粨鏉熸椂闂磋嚜鍔ㄨ皟鏁翠负寮�濮嬫椂闂寸殑1鍒嗛挓鍚� + fetchFun = fetchThirdPartyData; + interval = 60 * 1000; + } else { + fetchFun = fetchOriginRealTimeData; + interval = 10 * 1000; + } + // 寮�濮嬪惊鐜换鍔� + clearFetchingTask(); + fetchingTask = setInterval(() => { + if (isFetching) { + return; + } + isFetching = true; + // 鍙傛暟 + let _params; + if (typeof onParam === 'function') { + const params = onParam(); + if (import.meta.env.VITE_DATA_MODE == 'jingan') { + _params = { + compUser: 'user1', + compPassword: 'User1@jingan', + mn: params.deviceCode, + dtFrom: params.updateTime, + dtTo: moment().format('YYYY-MM-DD HH:mm:ss') + }; + } else { + _params = params; + } + } + fetchFun(_params) + .then((res) => { + if (typeof callback === 'function') { + callback(res); + } + }) + .finally(() => { + isFetching = false; + }); + }, interval); +} + +/** + * 娓呯悊鍘嗗彶瀹炴椂鏁版嵁鑾峰彇浠诲姟 + */ +function clearFetchingTask() { + if (fetchingTask) { + clearInterval(fetchingTask); + fetchingTask = undefined; + isFetching = false; + } +} + +export { fetchHistoryData, startLoopFetchRealTimeData, clearFetchingTask }; diff --git a/src/utils/map/dialog.js b/src/utils/map/dialog.js index 900ac0c..713af62 100644 --- a/src/utils/map/dialog.js +++ b/src/utils/map/dialog.js @@ -21,8 +21,9 @@ * @param {*} onClose 鍏抽棴寮瑰嚭妗嗗洖璋� * @returns */ - createInfoWindow(factorDatas, i, onClose) { + createInfoWindow(deviceCode, factorDatas, i, onClose) { let m = { + deviceCode: deviceCode, data: factorDatas, index: i, window: '', @@ -76,9 +77,9 @@ const time = marker.time; const factorList = marker.factorList; //瀹炰緥鍖栦俊鎭獥浣� - // var title = '<div>' + site.name + '</div>' + '<div class="sub-title">缂栧彿:' + site.code + '</div>', - var title = '', - content = '', + // var title = '<div class="time">缂栧彿:' + marker.deviceCode + '</div>'; + var title = '缂栧彿:' + marker.deviceCode; + var content = '', tag = ''; tag += "<div class='time'>" + '鏃堕棿: ' + time; @@ -127,6 +128,7 @@ var orderList = [ 'VOC', 'H2S', + 'NO', 'NO2', 'CO', 'SO2', @@ -139,7 +141,10 @@ 'WIND_DIRECTION' ]; orderList.forEach((e) => { - content += _contents.get(e); + const c = _contents.get(e); + if (c != undefined) { + content += c; + } }); // content += @@ -162,11 +167,12 @@ var top_t = document.createElement('div'); top_t.className = 'ff-border-top'; var top_c = document.createElement('div'); - top_c.className = 'ff-border-content flexbox flex-space-between'; + top_c.className = 'text-clz ff-border-content flexbox flex-space-between'; var titleD = document.createElement('div'); - var closeX = document.createElement('i'); - titleD.innerHTML = title; + var closeX = document.createElement('div'); + $(titleD).text(title); + // titleD.className = 'time'; closeX.className = 'text-close'; $(closeX).attr('aria-hidden', 'true'); $(closeX).text('X'); @@ -247,9 +253,9 @@ return info; }, - openNewWindow(factorDatas, i, onClose) { + openNewWindow(deviceCode, factorDatas, i, onClose) { if (!this.show) return; - const window = this.createInfoWindow(factorDatas, i, onClose); + const window = this.createInfoWindow(deviceCode, factorDatas, i, onClose); window.open(map, factorDatas.lnglats_GD[i]); }, diff --git a/src/utils/map/sector.js b/src/utils/map/sector.js index de4a8b5..32a88e6 100644 --- a/src/utils/map/sector.js +++ b/src/utils/map/sector.js @@ -109,7 +109,7 @@ function drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2) { if (distance == 0 || distance2 == 0) { - return; + return false; } // eslint-disable-next-line no-undef var sector = new AMap.Object3D.Mesh(); @@ -167,6 +167,7 @@ } object3Dlayer.add(sector); _sector = sector; + return true; } function drawTextMaker(list, list2, distance, distance2) { @@ -247,13 +248,14 @@ * @returns 鏁版嵁鍧愭爣鐐瑰拰鎵囧舰鏈�澶у崐寰� */ drawSector(fDatas, i) { - if (_sector != undefined) { - this.clearSector(); - } + this.clearSector(); const { sDeg, eDeg, lnglat, distance, distance2, list, list2 } = sectorParams(fDatas, i); - drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2); - drawElasticMarker(list, list2, distance, distance2); + if (drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2)) { + // 褰撻閫熷ぇ浜�0缁樺埗浜嗘墖褰㈡椂锛屾墠缁樺埗瀵瑰簲鐨勮窛绂荤瓑鏂囨湰鏍囪 + // drawElasticMarker(list, list2, distance, distance2); + drawTextMaker(list, list2, distance, distance2); + } return { p: lnglat, r: distance }; }, @@ -266,7 +268,8 @@ this.clearSectorMesh(); const { sDeg, eDeg, lnglat, distance, distance2, list, list2 } = sectorParams(fDatas, i); - drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2); - drawTextMaker(list, list2, distance, distance2); + if (drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2)) { + drawTextMaker(list, list2, distance, distance2); + } } }; diff --git a/src/utils/number.js b/src/utils/number.js new file mode 100644 index 0000000..4792e4c --- /dev/null +++ b/src/utils/number.js @@ -0,0 +1,4 @@ +export function parseFloatNAN(t) { + const res = parseFloat(t); + return isNaN(res) ? 0 : res; +} diff --git a/src/views/LoginPage.vue b/src/views/LoginPage.vue index ae1bd3e..e02c33d 100644 --- a/src/views/LoginPage.vue +++ b/src/views/LoginPage.vue @@ -1,9 +1,190 @@ <template> - <div>LoginPage</div> + <div class="background"> + <div class="title-content">椋炵窘澶ф皵鐜鏅鸿兘璧拌埅鐩戞祴绯荤粺</div> + + <div class="flexbox flex-space-around"> + <img :src="underwayPng" alt="璧拌埅鐩戞祴" class="img-1" /> + + <div class="input-box flexbox"> + <div class="flexbox-col align-items" style="margin: auto"> + <div class="flexbox-col input-content flex-space-between"> + <el-form + :model="formObj" + ref="formRef" + :rules="rules" + label-position="top" + > + <el-form-item label="鐢ㄦ埛鍚�" prop="userName"> + <el-input + size="default" + v-model="formObj.userName" + placeholder="鐢ㄦ埛鍚�" + style="width: 200px" + /> + </el-form-item> + <el-form-item label="瀵嗙爜" prop="password"> + <el-input + size="default" + type="password" + show-password + v-model="formObj.password" + placeholder="瀵嗙爜" + style="width: 200px" + /> + </el-form-item> + </el-form> + </div> + <div class="btn-login" @click="login">鐧诲綍</div> + </div> + </div> + </div> + </div> </template> <script> +import underwayPng from '@/assets/mipmap/underway-2.png'; +import { ElMessage } from 'element-plus'; + export default { - name: 'LoginPage' + data() { + return { + underwayPng: underwayPng, + formObj: {}, + rules: { + userName: [ + { + required: true, + message: '璇疯緭鍏ョ敤鎴峰悕', + trigger: 'blur' + } + ], + password: [ + { + required: true, + message: '璇疯緭鍏ュ瘑鐮�', + trigger: 'blur' + } + ] + } + }; + }, + methods: { + login() { + this.$refs.formRef.validate((valid) => { + if (valid) { + if ( + this.formObj.userName == 'jingan' && + this.formObj.password == 'jingan123' + ) { + this.$router.replace('/index/hmode'); + } else { + ElMessage({ + message: '鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒', + type: 'error' + }); + } + } + }); + } + } }; </script> +<style scoped> +.background { + background-color: #002378; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 100%; + height: 100%; + min-height: 768px; + min-width: 1366px; +} + +.title-content { + /* position: absolute; */ + width: 100%; + height: 200px; + padding: 3vh 0 0 0; + /* top: 80px; + left: 0; + right: 0; */ + color: white; + font-size: 1.4rem; + display: flex; + justify-content: center; + background-image: url('@/assets/mipmap/title_bg.png'); + background-size: contain; + background-repeat: no-repeat; +} + +.img-1 { + min-height: 500px; + height: 60vh; + /* margin-left: 6vw; */ +} + +.input-box { + width: 400px; + height: 420px; + /* background-color: aquamarine; */ + background-image: url('@/assets/mipmap/border.png'); + background-size: 100% 100%; + color: white; +} + +.input-content { +} + +.input-content .text-box { + width: 220px; + height: 28px; + font-size: 12px; + border-radius: 6px; +} + +.btn-login { + margin-top: 20px; + border-radius: 6px; + padding: 8px 60px; + box-shadow: 10px 10px 10px rgba(39, 39, 39, 0.473); + background: -moz-linear-gradient( + left, + rgb(109, 213, 231), + rgb(80, 166, 202), + rgb(65, 141, 186), + rgb(33, 90, 154), + rgb(13, 56, 133), + rgb(11, 53, 131) + ); + background: -ms-linear-gradient( + left, + rgb(109, 213, 231), + rgb(80, 166, 202), + rgb(65, 141, 186), + rgb(33, 90, 154), + rgb(13, 56, 133), + rgb(11, 53, 131) + ); + background: -o-linear-gradient( + left, + rgb(109, 213, 231), + rgb(80, 166, 202), + rgb(65, 141, 186), + rgb(33, 90, 154), + rgb(13, 56, 133), + rgb(11, 53, 131) + ); + background: -webkit-linear-gradient( + left, + rgb(109, 213, 231), + rgb(80, 166, 202), + rgb(65, 141, 186), + rgb(33, 90, 154), + rgb(13, 56, 133), + rgb(11, 53, 131) + ); + cursor: pointer; +} +</style> diff --git a/src/views/historymode/HistoryMode copy.vue b/src/views/historymode/HistoryMode copy.vue new file mode 100644 index 0000000..9421a94 --- /dev/null +++ b/src/views/historymode/HistoryMode copy.vue @@ -0,0 +1,237 @@ +<template> + <div class="p-events-none m-t-2"> + <el-row justify="center" align="middle" class="top-wrap"> + <SearchBar + v-show="status == 0" + :search-time="searchTime" + :loading="loading" + @search="fetchHistroyData" + ></SearchBar> + <TrajectoryState v-show="status != 0" :status="status"></TrajectoryState> + </el-row> + <el-row class="m-t-2"> + <FactorRadio + :device-type="deviceType" + @change="(e) => (factorType = e)" + ></FactorRadio> + </el-row> + <el-row class="m-t-2"> + <FactorLegend + class="m-t-2" + :factor="factorDatas.factor[factorType]" + ></FactorLegend> + </el-row> + <el-row class="historical" justify="center"> + <HistoricalTrajectory + :factor-datas="factorDatas" + :factor-type="factorType" + @change="(e) => (status = e)" + @stop="draw" + ></HistoricalTrajectory> + </el-row> + <TrendAnalysis + class="trend-analysis" + :locate-index="locateIndex" + @chart-click="handelIndexChange" + :factor-datas="factorDatas" + :device-type="deviceType" + ></TrendAnalysis> + <DataSheet + class="data-sheet" + :locate-index="locateIndex" + @table-click="handelIndexChange" + :factor-datas="factorDatas" + :device-type="deviceType" + ></DataSheet> + </div> +</template> + +<script> +import Layer from '@/utils/map/3dLayer'; +import marks from '@/utils/map/marks'; +import sector from '@/utils/map/sector'; +import mapUtil from '@/utils/map/util'; +import { DialogUtil } from '@/utils/map/dialog'; +import monitorDataApi from '@/api/monitorDataApi'; +import { useFetchData } from '@/composables/fetchData'; +import moment from 'moment'; +import { TYPE0 } from '@/constant/device-type'; +import { FactorDatas } from '@/model/FactorDatas'; +import TrendAnalysis from './component/TrendAnalysis.vue'; +import DataSheet from './component/DataSheet.vue'; +import { ElMessageBox, ElNotification, ElMessage } from 'element-plus'; + +export default { + components: { TrendAnalysis, DataSheet }, + setup() { + const { loading, fetchData } = useFetchData(10000); + return { loading, fetchData }; + }, + data() { + return { + // 鐩戞祴璁惧绫诲瀷 + deviceType: TYPE0, + // 鐩戞祴鍥犲瓙鐨勭被鍨嬬紪鍙� + factorType: '1', + // 鐩戞祴鏁版嵁 + factorDatas: new FactorDatas(), + // 鍐冲畾缁樺埗3D鍥惧舰鏃舵槸鍚︿笌鍘熷浘鍍忓悎骞� + merge: false, + // 鍐冲畾缁樺埗瀹�3D鍥惧舰鍚庡湴鍥捐瑙掓槸鍚﹁嚜鍔ㄥ洖涓� + setCenter: true, + // 缁樺埗妯″紡锛�0锛氳嚜鍔ㄦā寮忥紝鑷姩璁$畻褰撳墠鏁版嵁鐨勮寖鍥达紝缁樺埗鍚堥�傜殑姣斾緥锛�1锛氭墜鍔ㄦā寮忥紝鏍规嵁椤甸潰璁剧疆鐨勭粯鍥捐寖鍥磋繘琛岀粯鍒� + drawMode: 0, + searchTime: [], + // 褰撳墠閫変腑楂樹寒鐨勬暟鎹偣绱㈠紩 + locateIndex: undefined, + // 杞ㄨ抗鍔ㄧ敾鐘舵�� + status: 0 + }; + }, + watch: { + factorType(nValue, oValue) { + if (nValue != oValue && this.status == 0) { + this.draw(); + } + } + }, + methods: { + // 妫�鏌ユ暟鎹粡绾害鏄惁鍚堟硶 + checkDataIsValid(index) { + const lnglats_GD = this.factorDatas.lnglats_GD[index]; + const time = this.factorDatas.times[index]; + if (lnglats_GD[0] == 0 && lnglats_GD[1] == 0) { + ElMessage({ + message: `${time}鐨勬暟鎹粡绾害鏃犳晥`, + type: 'warning' + }); + return false; + } else { + this.locateIndex = index; + return true; + } + }, + // 鐩戝惉鎶樼嚎鍥惧拰琛ㄦ牸鐨勭偣鍑讳簨浠� + handelIndexChange(index) { + if (this.checkDataIsValid(index)) { + this.drawSector(index); + } + }, + draw() { + // 鍒锋柊鍥句緥 + const factor = this.factorDatas.factor[this.factorType]; + sector.clearSector(); + this.drawRoadMap(factor); + this.drawMassMarks(factor); + }, + // 缁樺埗3D璧拌璺嚎鍥� + drawRoadMap(e) { + this.factorDatas.refreshHeight(this.factorType); + + Layer.drawRoadMap(this.factorDatas, e, this.merge, this.setCenter); + // } + }, + drawMassMarks(e) { + marks.drawMassMarks(this.factorDatas, e, (index) => { + // 鏌ヨ鑼冨洿鍐呯殑鐩戞祴绔欑偣 + // SceneUtil.searchByCoordinate(lnglat[0], lnglat[1], distance); + if (this.checkDataIsValid(index)) { + this.drawSector(index); + } + }); + // 璋冩暣鍦板浘瑙嗚 + mapUtil.setBound(this.factorDatas.lnglats_GD); + }, + drawSector(index) { + // 1. 缁樺埗鏂版墖褰㈠尯鍩� + const pr = sector.drawSector(this.factorDatas, index); + // 璋冩暣瑙嗚灞呬腑鏄剧ず + mapUtil.setFitSector(pr); + // 2. 缁樺埗瀵硅瘽妗� + DialogUtil.openNewWindow(this.factorDatas, index, () => { + // 绉婚櫎鎵囧舰鍖哄煙 + sector.clearSector(); + }); + }, + onFetchData(type, data) { + // todo 鏍规嵁璁惧绫诲瀷鍒囨崲鍦板浘鐩戞祴鍥犲瓙灞曠ず鍗曢�夋銆佹姌绾垮浘澶嶉�夋銆佹暟鎹〃鏍煎閫夋鐨勫洜瀛愮被鍨� + this.deviceType = type; + this.factorDatas.setData(data, this.drawMode, () => { + this.factorDatas.refreshHeight(this.factorType); + this.draw(); + }); + }, + fetchHistroyData(option) { + const { deviceCode, type, timeArray } = option; + let startTime, endTime; + if (timeArray && timeArray.length == 2) { + startTime = moment(timeArray[0]).format('YYYY-MM-DD HH:mm:ss'); + endTime = moment(timeArray[1]).format('YYYY-MM-DD HH:mm:ss'); + } + this.fetchData((page, pageSize) => { + return monitorDataApi + .fetchHistroyData({ + deviceCode, + startTime, + endTime, + page, + perPage: pageSize + }) + .then((res) => this.onFetchData(type, res.data)); + }); + }, + fetchRealTimeData() { + // fixme 2024.5.3 姝ゅ鍒濆鑾峰彇鐨勬暟鎹紝鍙傛暟搴旇鐢眘earchbar鍐冲畾锛屽悗缁慨鏀� + this.fetchData((page) => { + return monitorDataApi + .fetchHistroyData({ + deviceCode: '0a0000000001', + // type: TYPE0, + page, + perPage: 100 + }) + .then((res) => { + if (res.data.length > 0) { + const s = new Date(res.data[0].time.replace(' ', 'T')); + const e = new Date( + res.data[res.data.length - 1].time.replace(' ', 'T') + ); + this.searchTime = [s, e]; + } + this.onFetchData(TYPE0, res.data); + }); + }); + } + }, + mounted() { + this.fetchRealTimeData(); + }, + unmounted() { + mapUtil.clearMap(); + } +}; +</script> +<style scoped> +.top-wrap { + height: 40px; +} + +.trend-analysis { + position: absolute; + left: 0; + bottom: 2px; +} + +.data-sheet { + position: absolute; + right: 0; + top: 0; +} + +.historical { + position: absolute; + bottom: 10px; + left: 0; + right: 0; +} +</style> diff --git a/src/views/historymode/HistoryMode.vue b/src/views/historymode/HistoryMode.vue index 9421a94..9df700d 100644 --- a/src/views/historymode/HistoryMode.vue +++ b/src/views/historymode/HistoryMode.vue @@ -52,14 +52,15 @@ import sector from '@/utils/map/sector'; import mapUtil from '@/utils/map/util'; import { DialogUtil } from '@/utils/map/dialog'; -import monitorDataApi from '@/api/monitorDataApi'; import { useFetchData } from '@/composables/fetchData'; import moment from 'moment'; import { TYPE0 } from '@/constant/device-type'; +import { radioOptions } from '@/constant/radio-options'; import { FactorDatas } from '@/model/FactorDatas'; import TrendAnalysis from './component/TrendAnalysis.vue'; import DataSheet from './component/DataSheet.vue'; -import { ElMessageBox, ElNotification, ElMessage } from 'element-plus'; +import { ElMessage } from 'element-plus'; +import { fetchHistoryData } from '@/utils/factor/data'; export default { components: { TrendAnalysis, DataSheet }, @@ -71,8 +72,10 @@ return { // 鐩戞祴璁惧绫诲瀷 deviceType: TYPE0, + // 鐩戞祴璁惧缂栧彿 + deviceCode: '', // 鐩戞祴鍥犲瓙鐨勭被鍨嬬紪鍙� - factorType: '1', + factorType: radioOptions(TYPE0)[0].value, // 鐩戞祴鏁版嵁 factorDatas: new FactorDatas(), // 鍐冲畾缁樺埗3D鍥惧舰鏃舵槸鍚︿笌鍘熷浘鍍忓悎骞� @@ -146,9 +149,10 @@ // 1. 缁樺埗鏂版墖褰㈠尯鍩� const pr = sector.drawSector(this.factorDatas, index); // 璋冩暣瑙嗚灞呬腑鏄剧ず - mapUtil.setFitSector(pr); + mapUtil.setCenter(pr.p); + // mapUtil.setFitSector(pr); // 2. 缁樺埗瀵硅瘽妗� - DialogUtil.openNewWindow(this.factorDatas, index, () => { + DialogUtil.openNewWindow(this.deviceCode, this.factorDatas, index, () => { // 绉婚櫎鎵囧舰鍖哄煙 sector.clearSector(); }); @@ -163,48 +167,45 @@ }, fetchHistroyData(option) { const { deviceCode, type, timeArray } = option; + this.deviceCode = deviceCode; let startTime, endTime; if (timeArray && timeArray.length == 2) { startTime = moment(timeArray[0]).format('YYYY-MM-DD HH:mm:ss'); endTime = moment(timeArray[1]).format('YYYY-MM-DD HH:mm:ss'); } this.fetchData((page, pageSize) => { - return monitorDataApi - .fetchHistroyData({ - deviceCode, - startTime, - endTime, - page, - perPage: pageSize - }) - .then((res) => this.onFetchData(type, res.data)); - }); - }, - fetchRealTimeData() { - // fixme 2024.5.3 姝ゅ鍒濆鑾峰彇鐨勬暟鎹紝鍙傛暟搴旇鐢眘earchbar鍐冲畾锛屽悗缁慨鏀� - this.fetchData((page) => { - return monitorDataApi - .fetchHistroyData({ - deviceCode: '0a0000000001', - // type: TYPE0, - page, - perPage: 100 - }) - .then((res) => { - if (res.data.length > 0) { - const s = new Date(res.data[0].time.replace(' ', 'T')); - const e = new Date( - res.data[res.data.length - 1].time.replace(' ', 'T') - ); - this.searchTime = [s, e]; - } - this.onFetchData(TYPE0, res.data); - }); + return fetchHistoryData({ + deviceCode, + startTime, + endTime, + page, + perPage: pageSize + }).then((res) => this.onFetchData(type, res.data)); }); } + // fetchRealTimeData() { + // // fixme 2024.5.3 姝ゅ鍒濆鑾峰彇鐨勬暟鎹紝鍙傛暟搴旇鐢眘earchbar鍐冲畾锛屽悗缁慨鏀� + // this.fetchData((page) => { + // return fetchHistoryData({ + // deviceCode: '0a0000000001', + // // type: TYPE0, + // page, + // perPage: 100 + // }).then((res) => { + // if (res.data.length > 0) { + // const s = new Date(res.data[0].time.replace(' ', 'T')); + // const e = new Date( + // res.data[res.data.length - 1].time.replace(' ', 'T') + // ); + // this.searchTime = [s, e]; + // } + // this.onFetchData(TYPE0, res.data); + // }); + // }); + // } }, mounted() { - this.fetchRealTimeData(); + // this.fetchRealTimeData(); }, unmounted() { mapUtil.clearMap(); diff --git a/src/views/historymode/component/DataSheet.vue b/src/views/historymode/component/DataSheet.vue index 526c7cc..778d322 100644 --- a/src/views/historymode/component/DataSheet.vue +++ b/src/views/historymode/component/DataSheet.vue @@ -41,7 +41,7 @@ <script> // import { toRefs } from 'vue'; import { TYPE0 } from '@/constant/device-type'; -import { checkboxOptions } from '@/constant/checkbox-options'; +import { defaultFactorTypes } from '@/constant/checkbox-options'; import { FactorDatas } from '@/model/FactorDatas'; // import { useDefaultFactorType } from "../../../composables/defaultFactorType"; @@ -63,7 +63,7 @@ }, data() { return { - selectFactorType: this.defaultFactorTypes(), + selectFactorType: defaultFactorTypes(this.deviceType), show: false }; }, @@ -71,21 +71,13 @@ watch: { deviceType(nV, oV) { if (nV != oV) { - this.selectFactorType = this.defaultFactorTypes(); + this.selectFactorType = defaultFactorTypes(nV); } } }, methods: { handleTableClick(index) { this.$emit('tableClick', index); - }, - defaultFactorTypes() { - const list = checkboxOptions(this.deviceType); - if (list.length > 3) { - return list.slice(0, 3).map((v) => v.value); - } else { - return list.map((v) => v.value); - } } } }; diff --git a/src/views/historymode/component/TrendAnalysis.vue b/src/views/historymode/component/TrendAnalysis.vue index cc5205b..665305f 100644 --- a/src/views/historymode/component/TrendAnalysis.vue +++ b/src/views/historymode/component/TrendAnalysis.vue @@ -1,7 +1,7 @@ <template> <el-row class="wrap"> <Transition name=""> - <el-col v-show="show" span="10"> + <el-col v-show="show" span="10" class="wrap-left"> <FactorCheckbox v-model="selectFactorType" :device-type="deviceType" @@ -28,11 +28,14 @@ * 鐩戞祴瑕佺礌瓒嬪娍鍒嗘瀽 */ import { FactorDatas } from '@/model/FactorDatas'; +import { defaultFactorTypes } from '@/constant/checkbox-options'; +import { TYPE0 } from '@/constant/device-type'; export default { props: { deviceType: { - type: String + type: String, + default: TYPE0 }, factorDatas: FactorDatas, // 褰撳墠閫変腑楂樹寒鐨勬暟鎹偣绱㈠紩 @@ -40,11 +43,18 @@ }, data() { return { - selectFactorType: ['1'], + selectFactorType: defaultFactorTypes(this.deviceType, 1), show: true }; }, emits: ['chartClick'], + watch: { + deviceType(nV, oV) { + if (nV != oV) { + this.selectFactorType = defaultFactorTypes(nV, 1); + } + } + }, methods: { handleChartClick(index) { this.$emit('chartClick', index); @@ -59,6 +69,11 @@ /* background-color: aliceblue; */ } +.wrap-left { + /* background-color: aliceblue; */ + min-width: 600px; +} + .slide-fade-enter-active { transition: all 0.3s ease-out; } diff --git a/src/views/realtimemode/RealtimeMode copy.vue b/src/views/realtimemode/RealtimeMode copy.vue new file mode 100644 index 0000000..9c352f2 --- /dev/null +++ b/src/views/realtimemode/RealtimeMode copy.vue @@ -0,0 +1,186 @@ +<template> + <div class="p-events-none m-t-2"> + <el-row justify="center" align="middle" class="top-wrap"> + <DeviceChange @change="onDeviceChange"></DeviceChange> + </el-row> + <el-row class="m-t-2"> + <FactorRadio + :device-type="deviceType" + @change="(e) => (factorType = e)" + ></FactorRadio> + </el-row> + <el-row class="m-t-2"> + <FactorLegend + class="m-t-2" + :factor="factorDatas.factor[factorType]" + ></FactorLegend> + </el-row> + <DashBoard class="dash-board" :factor-datas="factorDatas"></DashBoard> + <RealTimeTrend + class="real-time-trend" + :factor-datas="factorDatas" + :device-type="deviceType" + ></RealTimeTrend> + </div> +</template> + +<script> +import { useFetchData } from '@/composables/fetchData'; +import { TYPE0 } from '@/constant/device-type'; +import { FactorDatas } from '@/model/FactorDatas'; +import monitorDataApi from '@/api/monitorDataApi'; +import DashBoard from './component/DashBoard.vue'; +import RealTimeTrend from './component/RealTimeTrend.vue'; +import DeviceChange from './component/DeviceChange.vue'; +import { realTimeMapAnimation } from '@/utils/map/animation'; +import { startLoopFetchRealTimeData } from '@/utils/factor/data'; + +// const mapAnimation = new MapAnimation(); + +export default { + components: { DashBoard, RealTimeTrend, DeviceChange }, + setup() { + const { loading, fetchData } = useFetchData(10000); + return { loading, fetchData }; + }, + data() { + return { + // 鐩戞祴璁惧绫诲瀷 + deviceType: TYPE0, + deviceCode: '0a0000000001', + // 鐩戞祴鍥犲瓙鐨勭被鍨嬬紪鍙� + factorType: '1', + // 鏂拌幏鍙栫殑鐩戞祴鏁版嵁 + factorDatas: new FactorDatas(), + // 鍏ㄩ儴鐩戞祴鏁版嵁 + allFactorDatas: new FactorDatas() + }; + }, + watch: { + factorType(nV, oV) { + if (nV != oV) { + realTimeMapAnimation.setFactorType(nV); + } + } + }, + computed: { + latestTime() { + if (this.factorDatas.times.length == 0) { + return ''; + } else { + return this.factorDatas.times[this.factorDatas.times.length - 1]; + } + } + }, + methods: { + onDeviceChange({ type, deviceCode }) { + this.deviceType = type; + this.deviceCode = deviceCode; + this.clearFetchingTask(); + realTimeMapAnimation.stop(); + this.allFactorDatas.clearData(); + this.factorDatas.clearData(); + this.notFirstFetch = false; + this.fetchRealTimeData(); + }, + onFetchData(data) { + // todo 鏍规嵁璁惧绫诲瀷鍒囨崲鍦板浘鐩戞祴鍥犲瓙灞曠ず鍗曢�夋銆佹姌绾垮浘澶嶉�夋銆佹暟鎹〃鏍煎閫夋鐨勫洜瀛愮被鍨� + // this.deviceType = type; + const fDatas = new FactorDatas(); + fDatas.setData(data, this.drawMode, () => { + fDatas.refreshHeight(this.factorType); + // this.draw(); + this.factorDatas = fDatas; + }); + }, + fetchRealTimeData() { + this.fetchData((page) => { + return monitorDataApi + .fetchHistroyData({ + deviceCode: this.deviceCode, + // startTime: '2021-11-04 09:53:35', + page, + perPage: 100 + }) + .then((res) => { + this.onFetchData(res.data); + this.onMapData(res.data); + this.fetchNextData(); + }); + }); + }, + clearFetchingTask() { + if (this.fetchingTask) { + clearInterval(this.fetchingTask); + this.fetchingTask = undefined; + } + }, + fetchNextData() { + this.clearFetchingTask(); + this.fetchingTask = setInterval(() => { + if (this.isFetching) { + return; + } + + this.isFetching = true; + this.fetchData(() => { + return monitorDataApi + .fetchNextData({ + deviceCode: this.deviceCode, + updateTime: this.latestTime, + perPage: 10 + }) + .then((res) => { + this.onFetchData(res.data); + this.onMapData(res.data); + }) + .finally(() => (this.isFetching = false)); + }); + }, 10000); + }, + onMapData(dataList) { + let startIndex = this.allFactorDatas.length() - 1; + if (!this.notFirstFetch) { + startIndex = dataList.length - 2; + this.notFirstFetch = true; + } + startIndex = startIndex < 0 ? 0 : startIndex; + return new Promise((resolve, reject) => { + this.allFactorDatas.addData(dataList, this.drawMode, () => { + realTimeMapAnimation.moveAnimation( + this.allFactorDatas, + this.factorType, + startIndex + ); + }); + }); + } + }, + mounted() { + this.fetchRealTimeData(); + // startLoopFetchRealTimeData({ + // compUser: 'user1', + // compPassword: 'User1@jingan', + // mn: 'TX105', + // dtFrom: '2024-08-07 10:00:00', + // dtTo: '2024-08-07 10:00:59' + // }); + }, + unmounted() { + this.clearFetchingTask(); + realTimeMapAnimation.stop(); + } +}; +</script> +<style scoped> +.dash-board { + position: absolute; + left: 0; + bottom: 2px; +} +.real-time-trend { + position: absolute; + right: 0; + top: 0; +} +</style> diff --git a/src/views/realtimemode/RealtimeMode.vue b/src/views/realtimemode/RealtimeMode.vue index c4de517..f6ff253 100644 --- a/src/views/realtimemode/RealtimeMode.vue +++ b/src/views/realtimemode/RealtimeMode.vue @@ -25,14 +25,20 @@ </template> <script> +import moment from 'moment'; import { useFetchData } from '@/composables/fetchData'; import { TYPE0 } from '@/constant/device-type'; +import { radioOptions } from '@/constant/radio-options'; import { FactorDatas } from '@/model/FactorDatas'; -import monitorDataApi from '@/api/monitorDataApi'; import DashBoard from './component/DashBoard.vue'; import RealTimeTrend from './component/RealTimeTrend.vue'; import DeviceChange from './component/DeviceChange.vue'; import { realTimeMapAnimation } from '@/utils/map/animation'; +import { + fetchHistoryData, + startLoopFetchRealTimeData, + clearFetchingTask +} from '@/utils/factor/data'; // const mapAnimation = new MapAnimation(); @@ -46,9 +52,9 @@ return { // 鐩戞祴璁惧绫诲瀷 deviceType: TYPE0, - deviceCode: '0a0000000001', + deviceCode: '', // 鐩戞祴鍥犲瓙鐨勭被鍨嬬紪鍙� - factorType: '1', + factorType: radioOptions(TYPE0)[0].value, // 鏂拌幏鍙栫殑鐩戞祴鏁版嵁 factorDatas: new FactorDatas(), // 鍏ㄩ儴鐩戞祴鏁版嵁 @@ -63,11 +69,13 @@ } }, computed: { + // 鏁版嵁鏈�鏂版椂闂达紙鏈�鏂版暟鎹殑閲囨牱鏃堕棿鍔�1绉掞紱娌℃湁鏁版嵁鏃讹紝閲囩敤褰撳墠鏃堕棿鐨勫墠6鍒嗛挓锛� latestTime() { if (this.factorDatas.times.length == 0) { - return ''; + return moment().subtract(6, 'm').format('YYYY-MM-DD HH:mm:ss'); } else { - return this.factorDatas.times[this.factorDatas.times.length - 1]; + const _time = this.factorDatas.times[this.factorDatas.times.length - 1]; + return moment(_time).add(1, 's').format('YYYY-MM-DD HH:mm:ss'); } } }, @@ -93,50 +101,40 @@ }); }, fetchRealTimeData() { - // fixme 2024.5.3 姝ゅ鍒濆鑾峰彇鐨勬暟鎹紝鍙傛暟搴旇鐢眘earchbar鍐冲畾锛屽悗缁慨鏀� this.fetchData((page) => { - return monitorDataApi - .fetchHistroyData({ - deviceCode: this.deviceCode, - // startTime: '2021-11-04 09:53:35', - page, - perPage: 100 - }) - .then((res) => { - this.onFetchData(res.data); - this.onMapData(res.data); - this.fetchNextData(); - }); + return fetchHistoryData({ + deviceCode: this.deviceCode, + // startTime: '2024-08-20 06:00:00', + // endTime: '2024-08-20 06:02:00', + page, + perPage: 100 + }).then((res) => { + this.onFetchData(res.data); + this.onMapData(res.data); + // if (res.data.length > 0) { + // this.fetchNextData(res.data[res.data.length - 1].time); + // } + this.fetchNextData(); + }); }); }, clearFetchingTask() { - if (this.fetchingTask) { - clearInterval(this.fetchingTask); - this.fetchingTask = undefined; - } + clearFetchingTask(); }, fetchNextData() { - this.clearFetchingTask(); - this.fetchingTask = setInterval(() => { - if (this.isFetching) { - return; + startLoopFetchRealTimeData( + () => { + return { + deviceCode: this.deviceCode, + updateTime: this.latestTime, + perPage: 10 + }; + }, + (res) => { + this.onFetchData(res.data); + this.onMapData(res.data); } - - this.isFetching = true; - this.fetchData(() => { - return monitorDataApi - .fetchNextData({ - deviceCode: this.deviceCode, - updateTime: this.latestTime, - perPage: 10 - }) - .then((res) => { - this.onFetchData(res.data); - this.onMapData(res.data); - }) - .finally(() => (this.isFetching = false)); - }); - }, 10000); + ); }, onMapData(dataList) { let startIndex = this.allFactorDatas.length() - 1; @@ -157,12 +155,18 @@ } }, mounted() { - this.fetchRealTimeData(); + // this.fetchRealTimeData(); + // startLoopFetchRealTimeData({ + // compUser: 'user1', + // compPassword: 'User1@jingan', + // mn: 'TX105', + // dtFrom: '2024-08-07 10:00:00', + // dtTo: '2024-08-07 10:00:59' + // }); }, unmounted() { this.clearFetchingTask(); realTimeMapAnimation.stop(); - console.log('clear'); } }; </script> diff --git a/src/views/realtimemode/component/DashBoard.vue b/src/views/realtimemode/component/DashBoard.vue index 36078e4..30c87e6 100644 --- a/src/views/realtimemode/component/DashBoard.vue +++ b/src/views/realtimemode/component/DashBoard.vue @@ -46,8 +46,13 @@ }, methods: { getFactorData(factorDatas, index, key, scale = 10) { - let d = factorDatas.factor[key].datas[index].factorData; - return Math.round(d * scale) / scale; + const _factor = factorDatas.factor[key]; + if (_factor != undefined) { + let d = _factor.datas[index].factorData; + return Math.round(d * scale) / scale; + } else { + return '--'; + } }, refresh(factorDatas, index) { this.temprature = this.getFactorData(factorDatas, index, '8') + ''; diff --git a/src/views/realtimemode/component/DeviceChange.vue b/src/views/realtimemode/component/DeviceChange.vue index 3772b7d..4b78b7e 100644 --- a/src/views/realtimemode/component/DeviceChange.vue +++ b/src/views/realtimemode/component/DeviceChange.vue @@ -31,18 +31,22 @@ handleClick() { this.$emit('change', this.formSearch); } + }, + watch: { + // formSearch(nV, oV) { + // if (nV != oV) { + // this.handleChange(nV[0].value); + // } + // } + }, + mounted() { + this.$emit('change', this.formSearch); } }; </script> -<style lang="scss"> -.map-date-selector { - display: inline-block; - position: relative; - /* left: 0; - right: 0; - top: 0px; */ - /* padding: 0 4px; */ - /* color: ffffffbd; */ - /* background-color: antiquewhite; */ +<style scoped lang="scss"> +.el-form-item { + margin-bottom: 0px; + margin-right: 8px !important; } </style> diff --git a/src/views/realtimemode/component/RealTimeTrend.vue b/src/views/realtimemode/component/RealTimeTrend.vue index f22411e..ecda9af 100644 --- a/src/views/realtimemode/component/RealTimeTrend.vue +++ b/src/views/realtimemode/component/RealTimeTrend.vue @@ -30,6 +30,7 @@ </template> <script> import { TYPE0 } from '@/constant/device-type'; +import { defaultFactorTypes } from '@/constant/checkbox-options'; import { FactorDatas } from '@/model/FactorDatas'; export default { @@ -44,7 +45,7 @@ }, data() { return { - selectFactorType: ['1', '2', '3'], + selectFactorType: defaultFactorTypes(this.deviceType), show: true }; } -- Gitblit v1.9.3