diff --git a/hd-glasses-app/package-lock.json b/hd-glasses-app/package-lock.json index f809c6b..f2bc5f8 100644 --- a/hd-glasses-app/package-lock.json +++ b/hd-glasses-app/package-lock.json @@ -1,11674 +1,8 @@ { "name": "hd-glasses-app", "version": "0.1.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "hd-glasses-app", - "version": "0.1.0", - "dependencies": { - "amfe-flexible": "^2.2.1", - "axios": "^1.5.1", - "core-js": "^3.8.3", - "less": "^4.2.0", - "less-loader": "^11.1.3", - "lib-flexible": "^0.3.2", - "ol": "^8.1.0", - "postcss-pxtorem": "^5.1.1", - "vant": "^2.13.1", - "vue": "^2.6.14", - "vue-router": "^3.6.5" - }, - "devDependencies": { - "@babel/core": "^7.12.16", - "@babel/eslint-parser": "^7.12.16", - "@vue/cli-plugin-babel": "~5.0.0", - "@vue/cli-plugin-eslint": "~5.0.0", - "@vue/cli-service": "~5.0.0", - "eslint": "^7.32.0", - "eslint-plugin-vue": "^8.0.3", - "postcss-px2rem-exclude": "^0.0.6", - "vue-template-compiler": "^2.6.14" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@achrinza/node-ipc": { - "version": "9.2.7", - "resolved": "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.7.tgz", - "integrity": "sha512-/EvNkqB4HNxPWCZASmgrjqG8gIdPOolD67LGASvGMp/FY5ne0rbvpYg5o9x8RmgjAl8KdmNQ4YlV1et9DYiW8g==", - "dev": true, - "dependencies": { - "@node-ipc/js-queue": "2.0.3", - "event-pubsub": "4.3.0", - "js-message": "1.0.7" - }, - "engines": { - "node": "8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.23.0.tgz", - "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", - "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", - "dev": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.1", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.1.tgz", - "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.0.tgz", - "integrity": "sha512-kYsT+f5ARWF6AdFmqoEEp+hpqxEB8vGmRWfw2aj78M2vTwS2uHW91EF58iFm1Z9U8Y/RrLu2XKJn46P9ca1b0w==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/plugin-syntax-decorators": "^7.22.10" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.22.10", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz", - "integrity": "sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", - "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", - "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.22.20", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.22.20.tgz", - "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.20", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.15", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.15", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-modules-systemjs": "^7.22.11", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.22.15", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.19", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.0.tgz", - "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmmirror.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmmirror.com/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@node-ipc/js-queue": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", - "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", - "dev": true, - "dependencies": { - "easy-stack": "1.0.1" - }, - "engines": { - "node": ">=1.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@petamoriken/float16": { - "version": "3.8.4", - "resolved": "https://registry.npmmirror.com/@petamoriken/float16/-/float16-3.8.4.tgz", - "integrity": "sha512-kB+NJ5Br56ZhElKsf0pM7/PQfrDdDVMRz8f0JM6eVOGE+L89z9hwcst9QvWBBnazzuqGTGtPsJNZoQ1JdNiGSQ==" - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.23", - "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", - "dev": true - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "node_modules/@soda/friendly-errors-webpack-plugin": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", - "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "error-stack-parser": "^2.0.6", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@soda/get-current-script": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz", - "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", - "dev": true - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.3", - "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.3.tgz", - "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.11", - "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.11.tgz", - "integrity": "sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz", - "integrity": "sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.44.4", - "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.44.4.tgz", - "integrity": "sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.5", - "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz", - "integrity": "sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.2.tgz", - "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==" - }, - "node_modules/@types/express": { - "version": "4.17.19", - "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.19.tgz", - "integrity": "sha512-UtOfBtzN9OvpZPPbnnYunfjM7XCI4jyk1NvnFhTVz5krYAnW4o5DCoIekvms+8ApqhB4+9wSge1kBijdfTSmfg==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.37", - "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", - "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true - }, - "node_modules/@types/http-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.2.tgz", - "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.12", - "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.12.tgz", - "integrity": "sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" - }, - "node_modules/@types/mime": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.3.tgz", - "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.3.tgz", - "integrity": "sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.8.4", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.8.4.tgz", - "integrity": "sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==", - "dependencies": { - "undici-types": "~5.25.1" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz", - "integrity": "sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.5.tgz", - "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.2", - "resolved": "https://registry.npmmirror.com/@types/send/-/send-0.17.2.tgz", - "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.2", - "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.2.tgz", - "integrity": "sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.3", - "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.3.tgz", - "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.34", - "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.34.tgz", - "integrity": "sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.7", - "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.7.tgz", - "integrity": "sha512-6UrLjiDUvn40CMrAubXuIVtj2PEfKDffJS7ychvnPU44j+KVeXmdHHTgqcM/dxLUTHxlXHiFM8Skmb8ozGdTnQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vant/icons": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-3.0.2.tgz", - "integrity": "sha512-4OlRVMd0uiDtD9hgSISZW8hB95vU0fFtc41tQchRIyiXkR0tS+DydZOLb8/bQkithrNWhW7Uud38MbKjlJ9lJw==" - }, - "node_modules/@vant/popperjs": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", - "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" - }, - "node_modules/@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz", - "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==" - }, - "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz", - "integrity": "sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==", - "dev": true - }, - "node_modules/@vue/babel-plugin-jsx": { - "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz", - "integrity": "sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5", - "@vue/babel-helper-vue-transform-on": "^1.1.5", - "camelcase": "^6.3.0", - "html-tags": "^3.3.1", - "svg-tags": "^1.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-plugin-transform-vue-jsx": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz", - "integrity": "sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", - "html-tags": "^2.0.0", - "lodash.kebabcase": "^4.1.1", - "svg-tags": "^1.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-plugin-transform-vue-jsx/node_modules/html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/babel-preset-app": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-5.0.8.tgz", - "integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.16", - "@babel/helper-compilation-targets": "^7.12.16", - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-proposal-class-properties": "^7.12.13", - "@babel/plugin-proposal-decorators": "^7.12.13", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/plugin-transform-runtime": "^7.12.15", - "@babel/preset-env": "^7.12.16", - "@babel/runtime": "^7.12.13", - "@vue/babel-plugin-jsx": "^1.0.3", - "@vue/babel-preset-jsx": "^1.1.2", - "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.8.3", - "core-js-compat": "^3.8.3", - "semver": "^7.3.4" - }, - "peerDependencies": { - "@babel/core": "*", - "core-js": "^3", - "vue": "^2 || ^3.2.13" - }, - "peerDependenciesMeta": { - "core-js": { - "optional": true - }, - "vue": { - "optional": true - } - } - }, - "node_modules/@vue/babel-preset-app/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@vue/babel-preset-app/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@vue/babel-preset-app/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@vue/babel-preset-jsx": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz", - "integrity": "sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==", - "dev": true, - "dependencies": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", - "@vue/babel-sugar-composition-api-inject-h": "^1.4.0", - "@vue/babel-sugar-composition-api-render-instance": "^1.4.0", - "@vue/babel-sugar-functional-vue": "^1.4.0", - "@vue/babel-sugar-inject-h": "^1.4.0", - "@vue/babel-sugar-v-model": "^1.4.0", - "@vue/babel-sugar-v-on": "^1.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0", - "vue": "*" - }, - "peerDependenciesMeta": { - "vue": { - "optional": true - } - } - }, - "node_modules/@vue/babel-sugar-composition-api-inject-h": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz", - "integrity": "sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-composition-api-render-instance": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz", - "integrity": "sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-functional-vue": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz", - "integrity": "sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-inject-h": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz", - "integrity": "sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-v-model": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz", - "integrity": "sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", - "camelcase": "^5.0.0", - "html-tags": "^2.0.0", - "svg-tags": "^1.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-v-model/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@vue/babel-sugar-v-model/node_modules/html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/babel-sugar-v-on": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz", - "integrity": "sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", - "camelcase": "^5.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-v-on/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@vue/cli-overlay": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-5.0.8.tgz", - "integrity": "sha512-KmtievE/B4kcXp6SuM2gzsnSd8WebkQpg3XaB6GmFh1BJGRqa1UiW9up7L/Q67uOdTigHxr5Ar2lZms4RcDjwQ==", - "dev": true - }, - "node_modules/@vue/cli-plugin-babel": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-5.0.8.tgz", - "integrity": "sha512-a4qqkml3FAJ3auqB2kN2EMPocb/iu0ykeELwed+9B1c1nQ1HKgslKMHMPavYx3Cd/QAx2mBD4hwKBqZXEI/CsQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.16", - "@vue/babel-preset-app": "^5.0.8", - "@vue/cli-shared-utils": "^5.0.8", - "babel-loader": "^8.2.2", - "thread-loader": "^3.0.0", - "webpack": "^5.54.0" - }, - "peerDependencies": { - "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" - } - }, - "node_modules/@vue/cli-plugin-eslint": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-5.0.8.tgz", - "integrity": "sha512-d11+I5ONYaAPW1KyZj9GlrV/E6HZePq5L5eAF5GgoVdu6sxr6bDgEoxzhcS1Pk2eh8rn1MxG/FyyR+eCBj/CNg==", - "dev": true, - "dependencies": { - "@vue/cli-shared-utils": "^5.0.8", - "eslint-webpack-plugin": "^3.1.0", - "globby": "^11.0.2", - "webpack": "^5.54.0", - "yorkie": "^2.0.0" - }, - "peerDependencies": { - "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0", - "eslint": ">=7.5.0" - } - }, - "node_modules/@vue/cli-plugin-router": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.8.tgz", - "integrity": "sha512-Gmv4dsGdAsWPqVijz3Ux2OS2HkMrWi1ENj2cYL75nUeL+Xj5HEstSqdtfZ0b1q9NCce+BFB6QnHfTBXc/fCvMg==", - "dev": true, - "dependencies": { - "@vue/cli-shared-utils": "^5.0.8" - }, - "peerDependencies": { - "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" - } - }, - "node_modules/@vue/cli-plugin-vuex": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", - "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", - "dev": true, - "peerDependencies": { - "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" - } - }, - "node_modules/@vue/cli-service": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-5.0.8.tgz", - "integrity": "sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.12.16", - "@soda/friendly-errors-webpack-plugin": "^1.8.0", - "@soda/get-current-script": "^1.0.2", - "@types/minimist": "^1.2.0", - "@vue/cli-overlay": "^5.0.8", - "@vue/cli-plugin-router": "^5.0.8", - "@vue/cli-plugin-vuex": "^5.0.8", - "@vue/cli-shared-utils": "^5.0.8", - "@vue/component-compiler-utils": "^3.3.0", - "@vue/vue-loader-v15": "npm:vue-loader@^15.9.7", - "@vue/web-component-wrapper": "^1.3.0", - "acorn": "^8.0.5", - "acorn-walk": "^8.0.2", - "address": "^1.1.2", - "autoprefixer": "^10.2.4", - "browserslist": "^4.16.3", - "case-sensitive-paths-webpack-plugin": "^2.3.0", - "cli-highlight": "^2.1.10", - "clipboardy": "^2.3.0", - "cliui": "^7.0.4", - "copy-webpack-plugin": "^9.0.1", - "css-loader": "^6.5.0", - "css-minimizer-webpack-plugin": "^3.0.2", - "cssnano": "^5.0.0", - "debug": "^4.1.1", - "default-gateway": "^6.0.3", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "fs-extra": "^9.1.0", - "globby": "^11.0.2", - "hash-sum": "^2.0.0", - "html-webpack-plugin": "^5.1.0", - "is-file-esm": "^1.0.0", - "launch-editor-middleware": "^2.2.1", - "lodash.defaultsdeep": "^4.6.1", - "lodash.mapvalues": "^4.6.0", - "mini-css-extract-plugin": "^2.5.3", - "minimist": "^1.2.5", - "module-alias": "^2.2.2", - "portfinder": "^1.0.26", - "postcss": "^8.2.6", - "postcss-loader": "^6.1.1", - "progress-webpack-plugin": "^1.0.12", - "ssri": "^8.0.1", - "terser-webpack-plugin": "^5.1.1", - "thread-loader": "^3.0.0", - "vue-loader": "^17.0.0", - "vue-style-loader": "^4.1.3", - "webpack": "^5.54.0", - "webpack-bundle-analyzer": "^4.4.0", - "webpack-chain": "^6.5.1", - "webpack-dev-server": "^4.7.3", - "webpack-merge": "^5.7.3", - "webpack-virtual-modules": "^0.4.2", - "whatwg-fetch": "^3.6.2" - }, - "bin": { - "vue-cli-service": "bin/vue-cli-service.js" - }, - "engines": { - "node": "^12.0.0 || >= 14.0.0" - }, - "peerDependencies": { - "vue-template-compiler": "^2.0.0", - "webpack-sources": "*" - }, - "peerDependenciesMeta": { - "cache-loader": { - "optional": true - }, - "less-loader": { - "optional": true - }, - "pug-plain-loader": { - "optional": true - }, - "raw-loader": { - "optional": true - }, - "sass-loader": { - "optional": true - }, - "stylus-loader": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - }, - "webpack-sources": { - "optional": true - } - } - }, - "node_modules/@vue/cli-shared-utils": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz", - "integrity": "sha512-uK2YB7bBVuQhjOJF+O52P9yFMXeJVj7ozqJkwYE9PlMHL1LMHjtCYm4cSdOebuPzyP+/9p0BimM/OqxsevIopQ==", - "dev": true, - "dependencies": { - "@achrinza/node-ipc": "^9.2.5", - "chalk": "^4.1.2", - "execa": "^1.0.0", - "joi": "^17.4.0", - "launch-editor": "^2.2.1", - "lru-cache": "^6.0.0", - "node-fetch": "^2.6.7", - "open": "^8.0.2", - "ora": "^5.3.0", - "read-pkg": "^5.1.1", - "semver": "^7.3.4", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@vue/cli-shared-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-shared-utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", - "dependencies": { - "@babel/parser": "^7.18.4", - "postcss": "^8.4.14", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/component-compiler-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", - "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", - "dev": true, - "dependencies": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.36", - "postcss-selector-parser": "^6.0.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - }, - "optionalDependencies": { - "prettier": "^1.18.2 || ^2.0.0" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", - "dev": true - }, - "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/@vue/component-compiler-utils/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/@vue/vue-loader-v15": { - "name": "vue-loader", - "version": "15.10.2", - "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.2.tgz", - "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==", - "dev": true, - "dependencies": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - }, - "peerDependencies": { - "css-loader": "*", - "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" - }, - "peerDependenciesMeta": { - "cache-loader": { - "optional": true - }, - "prettier": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/@vue/vue-loader-v15/node_modules/hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", - "dev": true - }, - "node_modules/@vue/web-component-wrapper": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", - "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/amfe-flexible": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/amfe-flexible/-/amfe-flexible-2.2.1.tgz", - "integrity": "sha512-L2VfvDzoETBjhRptg5u/IUuzHSuxm22JpSRb404p/TBGeRfwWmmNEbB+TFPIP/sS/+pbM18bCFH9QnMojLuPNw==" - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmmirror.com/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.5", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", - "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "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" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001547", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", - "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==" - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/cli-highlight/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.1", - "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.1.tgz", - "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", - "dev": true, - "dependencies": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "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 - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog", - "dev": true, - "dependencies": { - "bluebird": "^3.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dependencies": { - "is-what": "^3.14.1" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "9.1.0", - "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", - "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.1", - "globby": "^11.0.3", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/core-js": { - "version": "3.33.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.33.0.tgz", - "integrity": "sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==", - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.33.0", - "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.33.0.tgz", - "integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/css": { - "version": "2.2.4", - "resolved": "https://registry.npmmirror.com/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/css-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "dev": true, - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "dev": true, - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/default-gateway/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", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/default-gateway/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/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==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/node_modules/which": { - "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" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmmirror.com/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "node_modules/easy-stack": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz", - "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.549", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.549.tgz", - "integrity": "sha512-gpXfJslSi4hYDkA0mTLEpYKRv9siAgSUgZ+UWyk+J5Cttpd1ThCVwdclzIwQSclz3hYn049+M2fgrP1WpvF8xg==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmmirror.com/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dev": true, - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmmirror.com/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/eslint-plugin-vue": { - "version": "8.7.1", - "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", - "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", - "dev": true, - "dependencies": { - "eslint-utils": "^3.0.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^8.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-plugin-vue/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-vue/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-vue/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "dev": true, - "dependencies": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/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", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmmirror.com/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/which": { - "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" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eslint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmmirror.com/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-pubsub": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz", - "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.6", - "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.6.tgz", - "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", - "dev": true - }, - "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 - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/geotiff": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/geotiff/-/geotiff-2.0.7.tgz", - "integrity": "sha512-FKvFTNowMU5K6lHYY2f83d4lS2rsCNdpUC28AX61x9ZzzqPNaWFElWv93xj0eJFaNyOYA63ic5OzJ88dHpoA5Q==", - "dependencies": { - "@petamoriken/float16": "^3.4.7", - "lerc": "^3.0.0", - "pako": "^2.0.4", - "parse-headers": "^2.0.2", - "quick-lru": "^6.1.1", - "web-worker": "^1.2.0", - "xml-utils": "^1.0.2" - }, - "engines": { - "node": ">=10.19" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "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": "*" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "dev": true - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "dev": true - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", - "dev": true, - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "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" - } - }, - "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 - }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "dependencies": { - "ci-info": "^1.5.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-file-esm": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/is-file-esm/-/is-file-esm-1.0.0.tgz", - "integrity": "sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==", - "dev": true, - "dependencies": { - "read-pkg-up": "^7.0.1" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/javascript-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", - "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", - "dev": true - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmmirror.com/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true - }, - "node_modules/js-message": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", - "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", - "dev": true, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/launch-editor-middleware": { - "version": "2.6.1", - "resolved": "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.6.1.tgz", - "integrity": "sha512-Fg/xYhf7ARmRp40n18wIfJyuAMEjXo67Yull7uF7d0OJ3qA4EYJISt1XfPPn69IIJ5jKgQwzcg6DqHYo95LL/g==", - "dev": true, - "dependencies": { - "launch-editor": "^2.6.1" - } - }, - "node_modules/lerc": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/lerc/-/lerc-3.0.0.tgz", - "integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==" - }, - "node_modules/less": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "11.1.3", - "resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-11.1.3.tgz", - "integrity": "sha512-A5b7O8dH9xpxvkosNrP0dFp2i/dISOJa9WwGF3WJflfqIERE2ybxh1BFDj5CovC2+jCE4M354mk90hN6ziXlVw==", - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lib-flexible": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/lib-flexible/-/lib-flexible-0.3.2.tgz", - "integrity": "sha512-9yowMWA70tKhKdCJDaltY0mNQG4OWo7pWKScnTp9aiSxS7s20ZYlwBRE3335nweOf5qKXVC7sDxJwMPM8/MFZg==" - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.invokemap": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz", - "integrity": "sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==", - "dev": true - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true - }, - "node_modules/lodash.mapvalues": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.pullall": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/lodash.pullall/-/lodash.pullall-4.2.0.tgz", - "integrity": "sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmmirror.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dev": true, - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "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==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "devOptional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - } - }, - "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==", - "dev": true - }, - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/module-alias": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz", - "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==", - "dev": true - }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natives": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", - "deprecated": "This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/needle": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz", - "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/ol": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/ol/-/ol-8.1.0.tgz", - "integrity": "sha512-cx3SH2plpFS9fM8pp1nCypgQXGJD7Mcb1E3mEySmy5XEw1DUEo+kkNzgtAZz5qupekqi7aU9iBJEjCoMfqvO2Q==", - "dependencies": { - "earcut": "^2.2.3", - "geotiff": "^2.0.7", - "pbf": "3.2.1", - "rbush": "^3.0.1" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "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" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmmirror.com/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dev": true, - "dependencies": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "dev": true, - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-px2rem-exclude": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/postcss-px2rem-exclude/-/postcss-px2rem-exclude-0.0.6.tgz", - "integrity": "sha512-Qm9hiIApFJP9KS4tHFd4DQTN/ByC+xQKPztR1FweDzmayBKiKctCMHNGnW8eQiz4mTfemtoVDnV/tvvJBuZY4g==", - "dev": true, - "dependencies": { - "postcss": "^5.0.0", - "px2rem": "~0.5.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-px2rem-exclude/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-pxtorem": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-pxtorem/-/postcss-pxtorem-5.1.1.tgz", - "integrity": "sha512-uvgIujL/pn0GbZ+rczESD2orHsbXrrCqi+q9wJO8PCk3ZGCoVVtu5hZTbtk+tbZHZP5UkTfCvqOrTZs9Ncqfsg==", - "dependencies": { - "postcss": "^7.0.27" - } - }, - "node_modules/postcss-pxtorem/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "node_modules/postcss-pxtorem/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "optional": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/progress-webpack-plugin": { - "version": "1.0.16", - "resolved": "https://registry.npmmirror.com/progress-webpack-plugin/-/progress-webpack-plugin-1.0.16.tgz", - "integrity": "sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA==", - "dev": true, - "dependencies": { - "chalk": "^2.1.0", - "figures": "^2.0.0", - "log-update": "^2.3.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "optional": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/px2rem": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/px2rem/-/px2rem-0.5.0.tgz", - "integrity": "sha512-R+LQj3Evbjbpmglo7D0PBVsnAbKP4WSvZEZUnF8RGIpWkIHFeAT+BlDOxxBxKVyMDecmfv9qdzNLTZLMq32osA==", - "dev": true, - "dependencies": { - "chalk": "~0.5.1", - "commander": "~2.6.0", - "css": "~2.2.0", - "extend": "~3.0.0", - "fs-extra": "~0.16.3" - }, - "bin": { - "px2rem": "bin/px2rem.js" - } - }, - "node_modules/px2rem/node_modules/ansi-regex": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha512-sGwIGMjhYdW26/IhwK2gkWWI8DRCVO6uj3hYgHT+zD+QL1pa37tM3ujhyfcJIYSbsxp7Gxhy7zrRW/1AHm4BmA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/px2rem/node_modules/ansi-styles": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-1.1.0.tgz", - "integrity": "sha512-f2PKUkN5QngiSemowa6Mrk9MPCdtFiOSmibjZ+j1qhLGHHYsqZwmBMRF3IRMVXo8sybDqx2fJl2d/8OphBoWkA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/px2rem/node_modules/chalk": { - "version": "0.5.1", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha512-bIKA54hP8iZhyDT81TOsJiQvR1gW+ZYSXFaZUAvoD4wCHdbHY2actmpTE4x344ZlFqHbvoxKOaESULTZN2gstg==", - "dev": true, - "dependencies": { - "ansi-styles": "^1.1.0", - "escape-string-regexp": "^1.0.0", - "has-ansi": "^0.1.0", - "strip-ansi": "^0.3.0", - "supports-color": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/px2rem/node_modules/commander": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-2.6.0.tgz", - "integrity": "sha512-PhbTMT+ilDXZKqH8xbvuUY2ZEQNef0Q7DKxgoEKb4ccytsdvVVJmYqR0sGbi96nxU6oGrwEIQnclpK2NBZuQlg==", - "dev": true, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/px2rem/node_modules/fs-extra": { - "version": "0.16.5", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-0.16.5.tgz", - "integrity": "sha512-yb7ti8kVH+qboUQWYxUuOPj/qcMUA6lO68ErZoPQOTP+7qroCIN/1gZ1lLk/rs2p0gPFzrvPYujKGnHTu+HHxA==", - "dev": true, - "dependencies": { - "graceful-fs": "^3.0.5", - "jsonfile": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/px2rem/node_modules/graceful-fs": { - "version": "3.0.12", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-3.0.12.tgz", - "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", - "dev": true, - "dependencies": { - "natives": "^1.1.3" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/px2rem/node_modules/has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha512-1YsTg1fk2/6JToQhtZkArMkurq8UoWU1Qe0aR3VUHjgij4nOylSWLWAtBXoZ4/dXOmugfLGm1c+QhuD0JyedFA==", - "dev": true, - "dependencies": { - "ansi-regex": "^0.2.0" - }, - "bin": { - "has-ansi": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/px2rem/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/px2rem/node_modules/jsonfile/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "optional": true - }, - "node_modules/px2rem/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/px2rem/node_modules/strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha512-DerhZL7j6i6/nEnVG0qViKXI0OKouvvpsAiaj7c+LfqZZZxdwZtv8+UiA/w4VUJpT8UzX0pR1dcHOii1GbmruQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^0.2.1" - }, - "bin": { - "strip-ansi": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/px2rem/node_modules/supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha512-tdCZ28MnM7k7cJDJc7Eq80A9CsRFAAOZUy41npOZCs++qSjfIy7o5Rh46CBk+Dk5FbKJ33X3Tqg4YrV07N5RaA==", - "dev": true, - "bin": { - "supports-color": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "node_modules/quick-lru": { - "version": "6.1.2", - "resolved": "https://registry.npmmirror.com/quick-lru/-/quick-lru-6.1.2.tgz", - "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "dependencies": { - "quickselect": "^2.0.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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 - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "dependencies": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "dependencies": { - "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==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "optional": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "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==", - "dev": true - }, - "node_modules/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dev": true, - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmmirror.com/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.21.0", - "resolved": "https://registry.npmmirror.com/terser/-/terser-5.21.0.tgz", - "integrity": "sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/thread-loader": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/thread-loader/-/thread-loader-3.0.4.tgz", - "integrity": "sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==", - "dev": true, - "dependencies": { - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.1.0", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "webpack": "^4.27.0 || ^5.0.0" - } - }, - "node_modules/thread-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/thread-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vant": { - "version": "2.13.1", - "resolved": "https://registry.npmmirror.com/vant/-/vant-2.13.1.tgz", - "integrity": "sha512-eFMcovqm2vOAJz79yi4jAquP8CYFDIl48cRxt8K/bswzh8rOG1iQ0RYWy1om/h/He+J7AIb98sEjuMax+Z0IfA==", - "dependencies": { - "@babel/runtime": "7.x", - "@vant/icons": "^3.0.2", - "@vant/popperjs": "^1.1.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "vue-lazyload": "1.2.3" - }, - "peerDependencies": { - "vue": ">= 2.6.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vue": { - "version": "2.7.14", - "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", - "dependencies": { - "@vue/compiler-sfc": "2.7.14", - "csstype": "^3.1.0" - } - }, - "node_modules/vue-eslint-parser": { - "version": "8.3.0", - "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", - "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", - "dev": true, - "dependencies": { - "debug": "^4.3.2", - "eslint-scope": "^7.0.0", - "eslint-visitor-keys": "^3.1.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vue-eslint-parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", - "dev": true - }, - "node_modules/vue-lazyload": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz", - "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g==" - }, - "node_modules/vue-loader": { - "version": "17.3.0", - "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.3.0.tgz", - "integrity": "sha512-VUURABiN0TIUz0yvJJ/V/rZjGUh10JZtD+IDI5bXFslzFi9mV6ebKkPzoqiSi8e0vh8Ip7JHJx+I0AzAG0KsCA==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "watchpack": "^2.4.0" - }, - "peerDependencies": { - "webpack": "^4.1.0 || ^5.0.0-0" - }, - "peerDependenciesMeta": { - "@vue/compiler-sfc": { - "optional": true - }, - "vue": { - "optional": true - } - } - }, - "node_modules/vue-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/vue-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vue-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vue-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/vue-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/vue-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/vue-router": { - "version": "3.6.5", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz", - "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==" - }, - "node_modules/vue-style-loader": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz", - "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", - "dev": true, - "dependencies": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "node_modules/vue-style-loader/node_modules/hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", - "dev": true - }, - "node_modules/vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", - "dev": true - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-worker": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/web-worker/-/web-worker-1.2.0.tgz", - "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/webpack": { - "version": "5.88.2", - "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.88.2.tgz", - "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.9.1", - "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz", - "integrity": "sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "is-plain-object": "^5.0.0", - "lodash.debounce": "^4.0.8", - "lodash.escape": "^4.0.1", - "lodash.flatten": "^4.4.0", - "lodash.invokemap": "^4.6.0", - "lodash.pullall": "^4.2.0", - "lodash.uniqby": "^4.7.0", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/webpack-chain": { - "version": "6.5.1", - "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", - "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", - "dev": true, - "dependencies": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmmirror.com/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.4.6", - "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz", - "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.19", - "resolved": "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", - "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-utils": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/xml-utils/-/xml-utils-1.7.0.tgz", - "integrity": "sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw==" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yorkie": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/yorkie/-/yorkie-2.0.0.tgz", - "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "execa": "^0.8.0", - "is-ci": "^1.0.10", - "normalize-path": "^1.0.0", - "strip-indent": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yorkie/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/yorkie/node_modules/execa": { - "version": "0.8.0", - "resolved": "https://registry.npmmirror.com/execa/-/execa-0.8.0.tgz", - "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==", - "dev": true, - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yorkie/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yorkie/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/yorkie/node_modules/normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz", - "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yorkie/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - } - }, "dependencies": { "@aashutoshrathi/word-wrap": { "version": "1.2.6", @@ -12054,8 +388,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "requires": {} + "dev": true }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -12971,6 +1304,7 @@ "version": "0.3.3", "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -12980,17 +1314,20 @@ "@jridgewell/resolve-uri": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true }, "@jridgewell/source-map": { "version": "0.3.5", "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz", "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -12999,12 +1336,14 @@ "@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true }, "@jridgewell/trace-mapping": { "version": "0.3.19", "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -13209,6 +1548,7 @@ "version": "8.44.4", "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.44.4.tgz", "integrity": "sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA==", + "dev": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -13218,6 +1558,7 @@ "version": "3.7.5", "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz", "integrity": "sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==", + "dev": true, "requires": { "@types/eslint": "*", "@types/estree": "*" @@ -13226,7 +1567,8 @@ "@types/estree": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.2.tgz", - "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==" + "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==", + "dev": true }, "@types/express": { "version": "4.17.19", @@ -13276,7 +1618,8 @@ "@types/json-schema": { "version": "7.0.13", "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", + "dev": true }, "@types/mime": { "version": "1.3.3", @@ -13294,6 +1637,7 @@ "version": "20.8.4", "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.8.4.tgz", "integrity": "sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==", + "dev": true, "requires": { "undici-types": "~5.25.1" } @@ -13631,8 +1975,7 @@ "version": "5.0.8", "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", - "dev": true, - "requires": {} + "dev": true }, "@vue/cli-service": { "version": "5.0.8", @@ -13695,6 +2038,29 @@ "webpack-merge": "^5.7.3", "webpack-virtual-modules": "^0.4.2", "whatwg-fetch": "^3.6.2" + }, + "dependencies": { + "@vue/vue-loader-v15": { + "version": "npm:vue-loader@15.10.2", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.2.tgz", + "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + } + } + } } }, "@vue/cli-shared-utils": { @@ -13859,27 +2225,6 @@ } } }, - "@vue/vue-loader-v15": { - "version": "npm:vue-loader@15.10.2", - "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.2.tgz", - "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==", - "dev": true, - "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - }, - "dependencies": { - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", - "dev": true - } - } - }, "@vue/web-component-wrapper": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", @@ -13890,6 +2235,7 @@ "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz", "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -13898,22 +2244,26 @@ "@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true }, "@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -13923,12 +2273,14 @@ "@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -13940,6 +2292,7 @@ "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } @@ -13948,6 +2301,7 @@ "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, "requires": { "@xtuc/long": "4.2.2" } @@ -13955,12 +2309,14 @@ "@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -13976,6 +2332,7 @@ "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -13988,6 +2345,7 @@ "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -13999,6 +2357,7 @@ "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -14012,6 +2371,7 @@ "version": "1.11.6", "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" @@ -14020,12 +2380,14 @@ "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true }, "accepts": { "version": "1.3.8", @@ -14040,20 +2402,20 @@ "acorn": { "version": "8.10.0", "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==" + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true }, "acorn-import-assertions": { "version": "1.9.0", "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "requires": {} + "dev": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "8.2.0", @@ -14071,6 +2433,7 @@ "version": "6.12.6", "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14111,7 +2474,7 @@ "version": "3.5.2", "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} + "dev": true }, "amfe-flexible": { "version": "2.2.1", @@ -14445,6 +2808,7 @@ "version": "4.22.1", "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.1.tgz", "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, "requires": { "caniuse-lite": "^1.0.30001541", "electron-to-chromium": "^1.4.535", @@ -14465,7 +2829,8 @@ "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "bytes": { "version": "3.0.0", @@ -14520,7 +2885,8 @@ "caniuse-lite": { "version": "1.0.30001547", "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", - "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==" + "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==", + "dev": true }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -14569,7 +2935,8 @@ "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true }, "ci-info": { "version": "1.6.0", @@ -14969,8 +3336,7 @@ "version": "6.4.1", "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true, - "requires": {} + "dev": true }, "css-loader": { "version": "6.8.1", @@ -15156,8 +3522,7 @@ "version": "3.1.0", "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "requires": {} + "dev": true }, "csso": { "version": "4.2.0", @@ -15483,7 +3848,8 @@ "electron-to-chromium": { "version": "1.4.549", "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.549.tgz", - "integrity": "sha512-gpXfJslSi4hYDkA0mTLEpYKRv9siAgSUgZ+UWyk+J5Cttpd1ThCVwdclzIwQSclz3hYn049+M2fgrP1WpvF8xg==" + "integrity": "sha512-gpXfJslSi4hYDkA0mTLEpYKRv9siAgSUgZ+UWyk+J5Cttpd1ThCVwdclzIwQSclz3hYn049+M2fgrP1WpvF8xg==", + "dev": true }, "emoji-regex": { "version": "8.0.0", @@ -15516,6 +3882,7 @@ "version": "5.15.0", "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -15567,12 +3934,14 @@ "es-module-lexer": { "version": "1.3.1", "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==" + "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", + "dev": true }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true }, "escape-html": { "version": "1.0.3", @@ -15848,6 +4217,7 @@ "version": "5.1.1", "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -16008,6 +4378,7 @@ "version": "4.3.0", "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "requires": { "estraverse": "^5.2.0" }, @@ -16015,14 +4386,16 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true } } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true }, "esutils": { "version": "2.0.3", @@ -16051,7 +4424,8 @@ "events": { "version": "3.3.0", "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true }, "execa": { "version": "1.0.0", @@ -16139,7 +4513,8 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "fast-glob": { "version": "3.3.1", @@ -16168,7 +4543,8 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -16440,7 +4816,8 @@ "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "globals": { "version": "11.12.0", @@ -16729,8 +5106,7 @@ "version": "5.1.0", "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "ieee754": { "version": "1.2.1", @@ -16934,6 +5310,7 @@ "version": "27.5.1", "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -16943,12 +5320,14 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -17017,12 +5396,14 @@ "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -17129,8 +5510,7 @@ "less-loader": { "version": "11.1.3", "resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-11.1.3.tgz", - "integrity": "sha512-A5b7O8dH9xpxvkosNrP0dFp2i/dISOJa9WwGF3WJflfqIERE2ybxh1BFDj5CovC2+jCE4M354mk90hN6ziXlVw==", - "requires": {} + "integrity": "sha512-A5b7O8dH9xpxvkosNrP0dFp2i/dISOJa9WwGF3WJflfqIERE2ybxh1BFDj5CovC2+jCE4M354mk90hN6ziXlVw==" }, "levn": { "version": "0.4.1", @@ -17162,7 +5542,8 @@ "loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true }, "loader-utils": { "version": "1.4.2", @@ -17494,7 +5875,8 @@ "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==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "merge2": { "version": "1.4.1", @@ -17521,8 +5903,7 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "devOptional": true + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { "version": "1.52.0", @@ -17655,8 +6036,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "7.2.5", @@ -17736,7 +6116,8 @@ "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "nice-try": { "version": "1.0.5", @@ -17772,7 +6153,8 @@ "node-releases": { "version": "2.0.13", "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true }, "normalize-package-data": { "version": "2.5.0", @@ -18273,29 +6655,25 @@ "version": "5.1.2", "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-discard-duplicates": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-discard-empty": { "version": "5.1.1", "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "requires": {} + "dev": true }, "postcss-discard-overridden": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-loader": { "version": "6.2.1", @@ -18400,8 +6778,7 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.3", @@ -18436,8 +6813,7 @@ "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "requires": {} + "dev": true }, "postcss-normalize-display-values": { "version": "5.1.0", @@ -18787,7 +7163,8 @@ "punycode": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true }, "px2rem": { "version": "0.5.0", @@ -18935,6 +7312,7 @@ "version": "2.1.0", "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -19201,13 +7579,13 @@ "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==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sax": { "version": "1.3.0", @@ -19297,6 +7675,7 @@ "version": "6.0.1", "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz", "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, "requires": { "randombytes": "^2.1.0" } @@ -19526,6 +7905,7 @@ "version": "0.5.21", "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -19629,15 +8009,6 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", @@ -19649,6 +8020,15 @@ "strip-ansi": "^6.0.1" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -19772,12 +8152,14 @@ "tapable": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true }, "terser": { "version": "5.21.0", "resolved": "https://registry.npmmirror.com/terser/-/terser-5.21.0.tgz", "integrity": "sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==", + "dev": true, "requires": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -19788,7 +8170,8 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true } } }, @@ -19796,6 +8179,7 @@ "version": "5.3.9", "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", @@ -19808,6 +8192,7 @@ "version": "3.3.0", "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -19949,7 +8334,8 @@ "undici-types": { "version": "5.25.3", "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", + "dev": true }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -19995,6 +8381,7 @@ "version": "1.0.13", "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -20004,6 +8391,7 @@ "version": "4.4.1", "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "requires": { "punycode": "^2.1.0" } @@ -20271,6 +8659,7 @@ "version": "2.4.0", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -20309,6 +8698,7 @@ "version": "5.88.2", "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.88.2.tgz", "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", @@ -20340,6 +8730,7 @@ "version": "3.3.0", "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -20532,8 +8923,7 @@ "version": "8.14.2", "resolved": "https://registry.npmmirror.com/ws/-/ws-8.14.2.tgz", "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -20550,7 +8940,8 @@ "webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true }, "webpack-virtual-modules": { "version": "0.4.6", @@ -20653,8 +9044,7 @@ "version": "7.5.9", "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "requires": {} + "dev": true }, "xml-utils": { "version": "1.7.0", diff --git a/hs-im-app-server/app-service.iml b/hs-im-app-server/app-service.iml index 62517ff..07f2314 100644 --- a/hs-im-app-server/app-service.iml +++ b/hs-im-app-server/app-service.iml @@ -1,5 +1,5 @@ - + @@ -10,4 +10,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hs-im-app-server/src/main/resources/application-dev.yml b/hs-im-app-server/src/main/resources/application-dev.yml new file mode 100644 index 0000000..d551616 --- /dev/null +++ b/hs-im-app-server/src/main/resources/application-dev.yml @@ -0,0 +1,47 @@ +spring: + profiles: + active: dev + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + password: beAs0LHX2GyTxMw4 + url: jdbc:mysql://192.168.2.201:3306/im-core?serverTimezone=UTC&useSSL=false&characterEncoding=UTF8 + username: root + hikari: + max-lifetime: 50000 + + application: + name: app.service + +# logger 配置 +logging: + config: classpath:logback-spring.xml + +server: + port: 8989 + +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + mapper-locations: classpath*:mapper/*.xml + global-config: + db-config: + update-strategy: NOT_EMPTY + +mybatis: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +appConfig: + imUrl: http://192.168.1.117:28000 + imVersion: v1 + appId: 10000 + adminId: admin + privateKey: 123456 + +httpclient: + maxTotal: 100 + defaultMaxPerRoute: 50 + connectTimeout: 2000 + connectionRequestTimeout: 2000 + socketTimeout: 5000 + staleConnectionCheckEnabled: true diff --git a/hs-im-app-server/src/main/resources/application-prod.yml b/hs-im-app-server/src/main/resources/application-prod.yml new file mode 100644 index 0000000..859d9a4 --- /dev/null +++ b/hs-im-app-server/src/main/resources/application-prod.yml @@ -0,0 +1,47 @@ +spring: + profiles: + active: prod + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + password: Mars@23600800 + url: jdbc:mysql://172.16.2.3:3306/im-core?serverTimezone=UTC&useSSL=false&characterEncoding=UTF8 + username: root + hikari: + max-lifetime: 50000 + + application: + name: app.service + +# logger 配置 +logging: + config: classpath:logback-spring.xml + +server: + port: 8989 + +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + mapper-locations: classpath*:mapper/*.xml + global-config: + db-config: + update-strategy: NOT_EMPTY + +mybatis: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +appConfig: + imUrl: http://172.16.2.3:28000 + imVersion: v1 + appId: 10000 + adminId: admin + privateKey: 123456 + +httpclient: + maxTotal: 100 + defaultMaxPerRoute: 50 + connectTimeout: 2000 + connectionRequestTimeout: 2000 + socketTimeout: 5000 + staleConnectionCheckEnabled: true diff --git a/hs-im-app-server/src/main/resources/application.yml b/hs-im-app-server/src/main/resources/application.yml index d551616..3d7808a 100644 --- a/hs-im-app-server/src/main/resources/application.yml +++ b/hs-im-app-server/src/main/resources/application.yml @@ -1,47 +1,3 @@ spring: profiles: active: dev - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - password: beAs0LHX2GyTxMw4 - url: jdbc:mysql://192.168.2.201:3306/im-core?serverTimezone=UTC&useSSL=false&characterEncoding=UTF8 - username: root - hikari: - max-lifetime: 50000 - - application: - name: app.service - -# logger 配置 -logging: - config: classpath:logback-spring.xml - -server: - port: 8989 - -mybatis-plus: - configuration: - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - mapper-locations: classpath*:mapper/*.xml - global-config: - db-config: - update-strategy: NOT_EMPTY - -mybatis: - configuration: - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - -appConfig: - imUrl: http://192.168.1.117:28000 - imVersion: v1 - appId: 10000 - adminId: admin - privateKey: 123456 - -httpclient: - maxTotal: 100 - defaultMaxPerRoute: 50 - connectTimeout: 2000 - connectionRequestTimeout: 2000 - socketTimeout: 5000 - staleConnectionCheckEnabled: true diff --git a/hs-im-server/README.md b/hs-im-server/README.md index e22830f..c9a59fe 100644 --- a/hs-im-server/README.md +++ b/hs-im-server/README.md @@ -1,7 +1,7 @@ rabitMQTT ```bash -docker run -d -it -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management +docker run -d -it -p 5672:5672 -p 15672:15672 --name rabbitmq 172.16.2.189:8083/rabbitmq:management ``` 在web管理后台新建Exchanges : `messageService2Pipeline` diff --git a/hs-im-server/build/app-service-1.0-SNAPSHOT.jar b/hs-im-server/build/app-service-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..6ea0288 Binary files /dev/null and b/hs-im-server/build/app-service-1.0-SNAPSHOT.jar differ diff --git a/hs-im-server/build/docker-compose.yml b/hs-im-server/build/docker-compose.yml new file mode 100644 index 0000000..804de1c --- /dev/null +++ b/hs-im-server/build/docker-compose.yml @@ -0,0 +1,60 @@ +version: '3' +services: + im-tcp: + image: 172.16.2.189:8083/java:1.8 + restart: always + environment: + LANG: en_US.UTF-8 + LC_ALL: en_US.UTF-8 + TZ: Asia/Shanghai + container_name: system + volumes: + - ./hd_1.yml:/hd-znzq/system + - ./im-service-1.0.0-SNAPSHOT.jar:/hd-znzq/system + network_mode: host + command: java -Dfile.encoding=UTF-8 -jar /hd-znzq/system/im-service-1.0.0-SNAPSHOT.jar /hd-znzq/system/hd_1.yml + im-message-store: + image: 172.16.2.189:8083/java:1.8 + restart: always + environment: + LANG: en_US.UTF-8 + LC_ALL: en_US.UTF-8 + TZ: Asia/Shanghai + container_name: system + volumes: + - ./im-message-store-1.0.0-SNAPSHOT.jar:/hd-znzq/system + network_mode: host + command: java -Dfile.encoding=UTF-8 -jar /hd-znzq/system/im-message-store-1.0.0-SNAPSHOT.jar + im-service: + image: 172.16.2.189:8083/java:1.8 + restart: always + environment: + LANG: en_US.UTF-8 + LC_ALL: en_US.UTF-8 + TZ: Asia/Shanghai + container_name: system + volumes: + - ./im-service-1.0.0-SNAPSHOT.jar:/hd-znzq/system + network_mode: host + command: java -Dfile.encoding=UTF-8 -jar /hd-znzq/system/im-service-1.0.0-SNAPSHOT.jar + + im-app-web: + image: 172.16.2.189:8083/nginx:1.25 + restart: always + container_name: web +# ports: +# - 19000:80 + network_mode: host + volumes: + - ./im-uniapp/dist/:/usr/share/nginx/html/ + - ./im-uniapp/conf/nginx.conf:/etc/nginx/nginx.conf + hd-glasses-app: + image: 172.16.2.189:8083/nginx:1.25 + restart: always + container_name: web + # ports: + # - 19000:80 + network_mode: host + volumes: + - ./hd-glasses-app/dist/:/usr/share/nginx/html/ + - ./hd-glasses-app/conf/nginx.conf:/etc/nginx/nginx.conf - diff --git a/hs-im-server/build/hd-glasses-app/conf/nginx.conf b/hs-im-server/build/hd-glasses-app/conf/nginx.conf new file mode 100644 index 0000000..5e74a54 --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/conf/nginx.conf @@ -0,0 +1,69 @@ +user root; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + gzip on; + gzip_min_length 1k; + gzip_comp_level 9; + gzip_types text/plain application/x-javascript text/javascript application/x-httpd-php text/css text/xml text/jsp application/eot application/ttf application/otf application/svg application/woff application/javascript application/xml image/jpeg image/gif image/png; + gzip_vary on; + gzip_disable "MSIE [1-6]."; + + server { + listen 20081; + server_name localhost; + + location ^~/znzq { + proxy_pass http://127.0.0.1:8080/znzq; + proxy_set_header Host 127.0.0.1; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /znzq/websocket { + proxy_pass http://127.0.0.1:8080/znzq/websocket; + proxy_http_version 1.1; + proxy_connect_timeout 3600s; + + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location / { + root /usr/share/nginx/html/; + index index.html index.htm; + if (!-e $request_filename) { + rewrite ^(.*)$ /index.html?s=$1last; + break; + } + } + } + + include /etc/nginx/conf.d/*.conf; +} diff --git a/hs-im-server/build/hd-glasses-app/dist/css/10.619efbf9.css b/hs-im-server/build/hd-glasses-app/dist/css/10.619efbf9.css new file mode 100644 index 0000000..19b5d6a --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/css/10.619efbf9.css @@ -0,0 +1 @@ +:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:hsla(0,0%,50%,.25);--ol-partial-background-color:hsla(0,0%,100%,.75);--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:none}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}#content{width:100%;height:100vh}#content #map{width:100%;height:100%}.ol-touch .ol-control button{font-size:26px}.actionList{position:fixed;bottom:0;left:0;height:2.66667rem;width:100%;display:flex;flex-direction:row;justify-content:space-around;flex-wrap:wrap} \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/css/app.c4c80034.css b/hs-im-server/build/hd-glasses-app/dist/css/app.c4c80034.css new file mode 100644 index 0000000..3494f95 --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/css/app.c4c80034.css @@ -0,0 +1 @@ +#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:.8rem} \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/css/chunk-vendors.fda3ab26.css b/hs-im-server/build/hd-glasses-app/dist/css/chunk-vendors.fda3ab26.css new file mode 100644 index 0000000..08632a3 --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/css/chunk-vendors.fda3ab26.css @@ -0,0 +1 @@ +html{-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,Segoe UI,Arial,Roboto,PingFang SC,miui,Hiragino Sans GB,Microsoft Yahei,sans-serif}a{text-decoration:none}button,input,textarea{color:inherit;font:inherit}[class*=van-]:focus,a:focus,button:focus,input:focus,textarea:focus{outline:0}ol,ul{margin:0;padding:0;list-style:none}.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{display:table;clear:both;content:""}[class*=van-hairline]:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #ebedf0;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after,.van-hairline-unset--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}@-webkit-keyframes van-slide-up-enter{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes van-slide-up-enter{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes van-slide-up-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes van-slide-up-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes van-slide-down-enter{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-enter{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes van-slide-down-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes van-slide-left-enter{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-enter{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes van-slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes van-slide-right-enter{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes van-slide-right-enter{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes van-slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes van-slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes van-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes van-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-fade-out{0%{opacity:1}to{opacity:0}}@-webkit-keyframes van-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes van-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.van-fade-enter-active{-webkit-animation:van-fade-in .3s ease-out both;animation:van-fade-in .3s ease-out both}.van-fade-leave-active{-webkit-animation:van-fade-out .3s ease-in both;animation:van-fade-out .3s ease-in both}.van-slide-up-enter-active{-webkit-animation:van-slide-up-enter .3s ease-out both;animation:van-slide-up-enter .3s ease-out both}.van-slide-up-leave-active{-webkit-animation:van-slide-up-leave .3s ease-in both;animation:van-slide-up-leave .3s ease-in both}.van-slide-down-enter-active{-webkit-animation:van-slide-down-enter .3s ease-out both;animation:van-slide-down-enter .3s ease-out both}.van-slide-down-leave-active{-webkit-animation:van-slide-down-leave .3s ease-in both;animation:van-slide-down-leave .3s ease-in both}.van-slide-left-enter-active{-webkit-animation:van-slide-left-enter .3s ease-out both;animation:van-slide-left-enter .3s ease-out both}.van-slide-left-leave-active{-webkit-animation:van-slide-left-leave .3s ease-in both;animation:van-slide-left-leave .3s ease-in both}.van-slide-right-enter-active{-webkit-animation:van-slide-right-enter .3s ease-out both;animation:van-slide-right-enter .3s ease-out both}.van-slide-right-leave-active{-webkit-animation:van-slide-right-leave .3s ease-in both;animation:van-slide-right-leave .3s ease-in both}.van-overlay{position:fixed;top:0;left:0;z-index:1;width:100%;height:100%;background-color:rgba(0,0,0,.7)}.van-info{position:absolute;top:0;right:0;box-sizing:border-box;min-width:16px;padding:0 3px;color:#fff;font-weight:500;font-size:12px;font-family:-apple-system-font,Helvetica Neue,Arial,sans-serif;line-height:1.2;text-align:center;background-color:#ee0a24;border:1px solid #fff;border-radius:16px;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%}.van-info--dot{width:8px;min-width:0;height:8px;background-color:#ee0a24;border-radius:100%}.van-sidebar-item{position:relative;display:block;box-sizing:border-box;padding:20px 12px;overflow:hidden;color:#323233;font-size:14px;line-height:20px;background-color:#f7f8fa;cursor:pointer;-webkit-user-select:none;user-select:none}.van-sidebar-item:active{background-color:#f2f3f5}.van-sidebar-item__text{position:relative;display:inline-block;word-break:break-all}.van-sidebar-item:not(:last-child):after{border-bottom-width:1px}.van-sidebar-item--select{color:#323233;font-weight:500}.van-sidebar-item--select,.van-sidebar-item--select:active{background-color:#fff}.van-sidebar-item--select:before{position:absolute;top:50%;left:0;width:4px;height:16px;background-color:#ee0a24;-webkit-transform:translateY(-50%);transform:translateY(-50%);content:""}.van-sidebar-item--disabled{color:#c8c9cc;cursor:not-allowed}.van-sidebar-item--disabled:active{background-color:#f7f8fa}.van-icon{position:relative;font:normal normal normal 14px/1 vant-icon;font:normal normal normal 14px/1 var(--van-icon-font-family,"vant-icon");font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.van-icon,.van-icon:before{display:inline-block}.van-icon-contact:before{content:"\e753"}.van-icon-notes:before{content:"\e63c"}.van-icon-records:before{content:"\e63d"}.van-icon-cash-back-record:before{content:"\e63e"}.van-icon-newspaper:before{content:"\e63f"}.van-icon-discount:before{content:"\e640"}.van-icon-completed:before{content:"\e641"}.van-icon-user:before{content:"\e642"}.van-icon-description:before{content:"\e643"}.van-icon-list-switch:before{content:"\e6ad"}.van-icon-list-switching:before{content:"\e65a"}.van-icon-link-o:before{content:"\e751"}.van-icon-miniprogram-o:before{content:"\e752"}.van-icon-qq:before{content:"\e74e"}.van-icon-wechat-moments:before{content:"\e74f"}.van-icon-weibo:before{content:"\e750"}.van-icon-cash-o:before{content:"\e74d"}.van-icon-guide-o:before{content:"\e74c"}.van-icon-invitation:before{content:"\e6d6"}.van-icon-shield-o:before{content:"\e74b"}.van-icon-exchange:before{content:"\e6af"}.van-icon-eye:before{content:"\e6b0"}.van-icon-enlarge:before{content:"\e6b1"}.van-icon-expand-o:before{content:"\e6b2"}.van-icon-eye-o:before{content:"\e6b3"}.van-icon-expand:before{content:"\e6b4"}.van-icon-filter-o:before{content:"\e6b5"}.van-icon-fire:before{content:"\e6b6"}.van-icon-fail:before{content:"\e6b7"}.van-icon-failure:before{content:"\e6b8"}.van-icon-fire-o:before{content:"\e6b9"}.van-icon-flag-o:before{content:"\e6ba"}.van-icon-font:before{content:"\e6bb"}.van-icon-font-o:before{content:"\e6bc"}.van-icon-gem-o:before{content:"\e6bd"}.van-icon-flower-o:before{content:"\e6be"}.van-icon-gem:before{content:"\e6bf"}.van-icon-gift-card:before{content:"\e6c0"}.van-icon-friends:before{content:"\e6c1"}.van-icon-friends-o:before{content:"\e6c2"}.van-icon-gold-coin:before{content:"\e6c3"}.van-icon-gold-coin-o:before{content:"\e6c4"}.van-icon-good-job-o:before{content:"\e6c5"}.van-icon-gift:before{content:"\e6c6"}.van-icon-gift-o:before{content:"\e6c7"}.van-icon-gift-card-o:before{content:"\e6c8"}.van-icon-good-job:before{content:"\e6c9"}.van-icon-home-o:before{content:"\e6ca"}.van-icon-goods-collect:before{content:"\e6cb"}.van-icon-graphic:before{content:"\e6cc"}.van-icon-goods-collect-o:before{content:"\e6cd"}.van-icon-hot-o:before{content:"\e6ce"}.van-icon-info:before{content:"\e6cf"}.van-icon-hotel-o:before{content:"\e6d0"}.van-icon-info-o:before{content:"\e6d1"}.van-icon-hot-sale-o:before{content:"\e6d2"}.van-icon-hot:before{content:"\e6d3"}.van-icon-like:before{content:"\e6d4"}.van-icon-idcard:before{content:"\e6d5"}.van-icon-like-o:before{content:"\e6d7"}.van-icon-hot-sale:before{content:"\e6d8"}.van-icon-location-o:before{content:"\e6d9"}.van-icon-location:before{content:"\e6da"}.van-icon-label:before{content:"\e6db"}.van-icon-lock:before{content:"\e6dc"}.van-icon-label-o:before{content:"\e6dd"}.van-icon-map-marked:before{content:"\e6de"}.van-icon-logistics:before{content:"\e6df"}.van-icon-manager:before{content:"\e6e0"}.van-icon-more:before{content:"\e6e1"}.van-icon-live:before{content:"\e6e2"}.van-icon-manager-o:before{content:"\e6e3"}.van-icon-medal:before{content:"\e6e4"}.van-icon-more-o:before{content:"\e6e5"}.van-icon-music-o:before{content:"\e6e6"}.van-icon-music:before{content:"\e6e7"}.van-icon-new-arrival-o:before{content:"\e6e8"}.van-icon-medal-o:before{content:"\e6e9"}.van-icon-new-o:before{content:"\e6ea"}.van-icon-free-postage:before{content:"\e6eb"}.van-icon-newspaper-o:before{content:"\e6ec"}.van-icon-new-arrival:before{content:"\e6ed"}.van-icon-minus:before{content:"\e6ee"}.van-icon-orders-o:before{content:"\e6ef"}.van-icon-new:before{content:"\e6f0"}.van-icon-paid:before{content:"\e6f1"}.van-icon-notes-o:before{content:"\e6f2"}.van-icon-other-pay:before{content:"\e6f3"}.van-icon-pause-circle:before{content:"\e6f4"}.van-icon-pause:before{content:"\e6f5"}.van-icon-pause-circle-o:before{content:"\e6f6"}.van-icon-peer-pay:before{content:"\e6f7"}.van-icon-pending-payment:before{content:"\e6f8"}.van-icon-passed:before{content:"\e6f9"}.van-icon-plus:before{content:"\e6fa"}.van-icon-phone-circle-o:before{content:"\e6fb"}.van-icon-phone-o:before{content:"\e6fc"}.van-icon-printer:before{content:"\e6fd"}.van-icon-photo-fail:before{content:"\e6fe"}.van-icon-phone:before{content:"\e6ff"}.van-icon-photo-o:before{content:"\e700"}.van-icon-play-circle:before{content:"\e701"}.van-icon-play:before{content:"\e702"}.van-icon-phone-circle:before{content:"\e703"}.van-icon-point-gift-o:before{content:"\e704"}.van-icon-point-gift:before{content:"\e705"}.van-icon-play-circle-o:before{content:"\e706"}.van-icon-shrink:before{content:"\e707"}.van-icon-photo:before{content:"\e708"}.van-icon-qr:before{content:"\e709"}.van-icon-qr-invalid:before{content:"\e70a"}.van-icon-question-o:before{content:"\e70b"}.van-icon-revoke:before{content:"\e70c"}.van-icon-replay:before{content:"\e70d"}.van-icon-service:before{content:"\e70e"}.van-icon-question:before{content:"\e70f"}.van-icon-search:before{content:"\e710"}.van-icon-refund-o:before{content:"\e711"}.van-icon-service-o:before{content:"\e712"}.van-icon-scan:before{content:"\e713"}.van-icon-share:before{content:"\e714"}.van-icon-send-gift-o:before{content:"\e715"}.van-icon-share-o:before{content:"\e716"}.van-icon-setting:before{content:"\e717"}.van-icon-points:before{content:"\e718"}.van-icon-photograph:before{content:"\e719"}.van-icon-shop:before{content:"\e71a"}.van-icon-shop-o:before{content:"\e71b"}.van-icon-shop-collect-o:before{content:"\e71c"}.van-icon-shop-collect:before{content:"\e71d"}.van-icon-smile:before{content:"\e71e"}.van-icon-shopping-cart-o:before{content:"\e71f"}.van-icon-sign:before{content:"\e720"}.van-icon-sort:before{content:"\e721"}.van-icon-star-o:before{content:"\e722"}.van-icon-smile-comment-o:before{content:"\e723"}.van-icon-stop:before{content:"\e724"}.van-icon-stop-circle-o:before{content:"\e725"}.van-icon-smile-o:before{content:"\e726"}.van-icon-star:before{content:"\e727"}.van-icon-success:before{content:"\e728"}.van-icon-stop-circle:before{content:"\e729"}.van-icon-records-o:before{content:"\e72a"}.van-icon-shopping-cart:before{content:"\e72b"}.van-icon-tosend:before{content:"\e72c"}.van-icon-todo-list:before{content:"\e72d"}.van-icon-thumb-circle-o:before{content:"\e72e"}.van-icon-thumb-circle:before{content:"\e72f"}.van-icon-umbrella-circle:before{content:"\e730"}.van-icon-underway:before{content:"\e731"}.van-icon-upgrade:before{content:"\e732"}.van-icon-todo-list-o:before{content:"\e733"}.van-icon-tv-o:before{content:"\e734"}.van-icon-underway-o:before{content:"\e735"}.van-icon-user-o:before{content:"\e736"}.van-icon-vip-card-o:before{content:"\e737"}.van-icon-vip-card:before{content:"\e738"}.van-icon-send-gift:before{content:"\e739"}.van-icon-wap-home:before{content:"\e73a"}.van-icon-wap-nav:before{content:"\e73b"}.van-icon-volume-o:before{content:"\e73c"}.van-icon-video:before{content:"\e73d"}.van-icon-wap-home-o:before{content:"\e73e"}.van-icon-volume:before{content:"\e73f"}.van-icon-warning:before{content:"\e740"}.van-icon-weapp-nav:before{content:"\e741"}.van-icon-wechat-pay:before{content:"\e742"}.van-icon-warning-o:before{content:"\e743"}.van-icon-wechat:before{content:"\e744"}.van-icon-setting-o:before{content:"\e745"}.van-icon-youzan-shield:before{content:"\e746"}.van-icon-warn-o:before{content:"\e747"}.van-icon-smile-comment:before{content:"\e748"}.van-icon-user-circle-o:before{content:"\e749"}.van-icon-video-o:before{content:"\e74a"}.van-icon-add-square:before{content:"\e65c"}.van-icon-add:before{content:"\e65d"}.van-icon-arrow-down:before{content:"\e65e"}.van-icon-arrow-up:before{content:"\e65f"}.van-icon-arrow:before{content:"\e660"}.van-icon-after-sale:before{content:"\e661"}.van-icon-add-o:before{content:"\e662"}.van-icon-alipay:before{content:"\e663"}.van-icon-ascending:before{content:"\e664"}.van-icon-apps-o:before{content:"\e665"}.van-icon-aim:before{content:"\e666"}.van-icon-award:before{content:"\e667"}.van-icon-arrow-left:before{content:"\e668"}.van-icon-award-o:before{content:"\e669"}.van-icon-audio:before{content:"\e66a"}.van-icon-bag-o:before{content:"\e66b"}.van-icon-balance-list:before{content:"\e66c"}.van-icon-back-top:before{content:"\e66d"}.van-icon-bag:before{content:"\e66e"}.van-icon-balance-pay:before{content:"\e66f"}.van-icon-balance-o:before{content:"\e670"}.van-icon-bar-chart-o:before{content:"\e671"}.van-icon-bars:before{content:"\e672"}.van-icon-balance-list-o:before{content:"\e673"}.van-icon-birthday-cake-o:before{content:"\e674"}.van-icon-bookmark:before{content:"\e675"}.van-icon-bill:before{content:"\e676"}.van-icon-bell:before{content:"\e677"}.van-icon-browsing-history-o:before{content:"\e678"}.van-icon-browsing-history:before{content:"\e679"}.van-icon-bookmark-o:before{content:"\e67a"}.van-icon-bulb-o:before{content:"\e67b"}.van-icon-bullhorn-o:before{content:"\e67c"}.van-icon-bill-o:before{content:"\e67d"}.van-icon-calendar-o:before{content:"\e67e"}.van-icon-brush-o:before{content:"\e67f"}.van-icon-card:before{content:"\e680"}.van-icon-cart-o:before{content:"\e681"}.van-icon-cart-circle:before{content:"\e682"}.van-icon-cart-circle-o:before{content:"\e683"}.van-icon-cart:before{content:"\e684"}.van-icon-cash-on-deliver:before{content:"\e685"}.van-icon-cash-back-record-o:before{content:"\e686"}.van-icon-cashier-o:before{content:"\e687"}.van-icon-chart-trending-o:before{content:"\e688"}.van-icon-certificate:before{content:"\e689"}.van-icon-chat:before{content:"\e68a"}.van-icon-clear:before{content:"\e68b"}.van-icon-chat-o:before{content:"\e68c"}.van-icon-checked:before{content:"\e68d"}.van-icon-clock:before{content:"\e68e"}.van-icon-clock-o:before{content:"\e68f"}.van-icon-close:before{content:"\e690"}.van-icon-closed-eye:before{content:"\e691"}.van-icon-circle:before{content:"\e692"}.van-icon-cluster-o:before{content:"\e693"}.van-icon-column:before{content:"\e694"}.van-icon-comment-circle-o:before{content:"\e695"}.van-icon-cluster:before{content:"\e696"}.van-icon-comment:before{content:"\e697"}.van-icon-comment-o:before{content:"\e698"}.van-icon-comment-circle:before{content:"\e699"}.van-icon-completed-o:before{content:"\e69a"}.van-icon-credit-pay:before{content:"\e69b"}.van-icon-coupon:before{content:"\e69c"}.van-icon-debit-pay:before{content:"\e69d"}.van-icon-coupon-o:before{content:"\e69e"}.van-icon-contact-o:before{content:"\e69f"}.van-icon-descending:before{content:"\e6a0"}.van-icon-desktop-o:before{content:"\e6a1"}.van-icon-diamond-o:before{content:"\e6a2"}.van-icon-description-o:before{content:"\e6a3"}.van-icon-delete:before{content:"\e6a4"}.van-icon-diamond:before{content:"\e6a5"}.van-icon-delete-o:before{content:"\e6a6"}.van-icon-cross:before{content:"\e6a7"}.van-icon-edit:before{content:"\e6a8"}.van-icon-ellipsis:before{content:"\e6a9"}.van-icon-down:before{content:"\e6aa"}.van-icon-discount-o:before{content:"\e6ab"}.van-icon-ecard-pay:before{content:"\e6ac"}.van-icon-envelop-o:before{content:"\e6ae"}@font-face{font-weight:400;font-family:vant-icon;font-style:normal;font-display:auto;src:url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAGL8AA0AAAAA6SgAAGKgAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCUhEICoOoBILIXQuECgABNgIkA4QQBCAFhQ4Hlicbj7ZFB3LYOIBhOG/7KEqjrI5CckpqLfv/nNwYQy3QrP8HqSyT0KreOBC6oV3YaCNcHtGFZdNfJs0K3ObxOB3jel2BnkhyW3HUmbbpKvaF/2F/+AxsG/mTnLxQ8ftt593970giiaZM0kbMJCiNSis0tRKANnKdCL5V097IukKp1yqEwfj1H57Pbe+PbRz77ILtf9hxMc4xGBvsf7i3sXGNcxunynELyIYyFA9MEUxB7zzSFM3i43GW5XElUGKXmFZqytCsDLEyO928c2+JTY/UgPqRB0iBPwY3x61tjLrd8yPPeIFR3Xa/Ko41DM4rqawV8d4B63AskFKHLHYdRuxubxxgFpDGnGg/5nyVrtLGkp7hp2guAAzJiQOl/JQ4Y1/sq30NOM7GCZcofwCUdr5vziooIFdKZSc/dWhaHgA6Lb77nvbSZtU94K3qlkb2I+JIMvyvaeGQJ5FSKTUcQ/gAkB0P/65leQOcJMhJBGkdvKpsXfISpIKWnmrlZn6T3ycRbG8njurMmoBHTn5N5/S4btDGbZkUQTWu6urAEIda/bJ7Hcqs+7831WrDbpoZai2555x0V6qiNjpXuXEuuiR7/f5vdPf//RuNboIDNAgOjKQDAWkHAMU5kKBmCAJCGXJ4oNw64xqANEVSayhSmuVqz3DOWR95m/lIddGEZ4Lkwg3Ci2ejM+ll+QXhhRteEl4QGafOaR8mzISTJwmMPi8V6sb8WDPyZqjeYpQiTUCwbUp9/PI31vpPl3vcTWN9cl23SFGfgNwCut2Pqf/smn8n/c1aGk00goIccMfQVqE2rYijelABf3yTyvYWkshqd800339ZiAOk0ihRbhihigqbeaPZl9zFOgo9djn/gFZ5Eb8yvH5/0DZ9rDFfxjPo9+p+LCLwAbyF7bPfLbxbELYXzWpjjJxsxPV7qQ6IWc/DjqhAkvYQe89A5gEn5C21NuLGwwTwFR9/40EfE/zB9F3xoZAO+WBoZN5j8fJuh9Ny/ZeOIo2mRH3jIi6jS1Bcg2RXHlUIhgXuRUXUssSJ7EhhtrKLuqlVIetsJBH7kCWLMel2gHxoMtbmKZ2RCulqJziTblpEY5xlFKce29TPvbt0wBOxQ3dQH1I0e/UK8OPPQ4wOmU8wwJixLP2hM7MXMDMDM6Ghd13K1GDBIreYzaZrZNhp5GgmDWVF3RyhgXcYdVRt/K1ktavWlvWPSiAT1GkvJDGqNtNQjRl9ZnrrUWKnkxNOno+A3wEnY6rbPDxwCTWdwJr5G1pr/QDnbiTmPU2nDygO91cZ3Ctg7lTvI37TlW0txun9tJV0DeznjL1yHge6+BFK6wcgp+5pXVLaZJ5fHJM6N9axFgMg42zMNXe2tMUKv4EW9ycnzIVGd5BW975V259xOw62mDHEfqy7DCIC2Jv3wLcgFterTUUEiNm/KJIRJafCmkgI4PgqU86Nyaq/YHFR+LkqBgJYvJOkkikLzK4VdCm4y/N7R+ISxqnuY6d0SBnRUUdcOJCQGPciGYL3e0jF7GS/V43RUvtrHGUlD1/N3hZGVTXlEhWenFfMGy78E0oPNpvtulC2DKWquL8HTrtedp/SgdAOs4zsMJttXEjCNrs2E5lMy/Jmx+zthMxyORyTKcDWBWjGbLRCitzz7lJpbSQ05G0ZtR+LqkK59pqzlksgsqKWo8jAqm2qlQ1eoytL0wyBBUDYG0A22EjhtlWepykw3dXmoHTYbWidrRMEKjUW13AVFKLpVFa8qlb/UZZURxhu0KOJBI5E6n3fb66uKsduUcv/Gxl1BkP9ZoANzfHe5ll2YhK3YzwBCZcodzAHOU0VXzRw4V7fVdHAXegAPPe3RJVXpXK+4OSoelAoWa1a1TYIKVjJ7cW6F8WCBfMJDTWPXLFeRF6elR2zGSCCEq63EdbJrbFk9+DNC+VjUu7oTimbXVdsrgfqTtWEs9MCMG9YafRcx3LnDlF1+4upNJjwOuwc7Q1hU4PxWOo3PGUcl9X2xU2Z6fhqGgTCAOKctMbIgiL16urBZ6vh+Ycoxfttre9F4/iqOzsFbrzqwZs57qLM7ZAilHDuy5TRe3EdgURP4y6akzEKR0QEPxh6eE+W29sjFIpb9KnOP8R5JiNe1thAQKXSUE32liigsbda6XxShBDnPjpGzmldyY36QZe8pReOfGmYOBfjmNpKqodtll2GEWEi50mRyayZuJ2Ew7WAetPBteI2xvpxQgipwE6tcgFcj6Cg9R20FYf0adxFMExD1QVJgQzlCwfjraFgXMZapZqGdFGlg3qZG/AAaS+Vg09WbV2mT9eIFBLmVoV7r9JYsdTIeg/JZLkHJ7LYQ+Mf1ESoWX5gB/GSKMyxTS4+cZ+Lm7J0drJrO48wh9gBlVIhkojJSBMKQax/ClJIG5/IJ5JrbSvlCLEkKyzJXB+B+4KqWGZVed6BXY3cLcIOqvUuW8YmlYLcl1zdCTpEBDfs034M8MiY6n0DQiF0Ksm7kNvpfzeVcOrLq3IytWU9I3ynxX75LJUOAAnrSNgiHxeRpdx7ZrwVJWig2Ler7IPhJEo59W8uo7fjFgLuc6KoybEetkjCuPIwW412skDEL0hhHPPRMaoPAzaCim9hYRTnB1F31AjSRiGMeFVEsHrl5rDpv7UQV8XogpIqeFHNtHEeauPt8j7RhRjH4FxGVw81Nre49Lrs57odNvSlQx4CU/Zhk8l/YeSoC8zlCqbksfIvjczdRjOxAUwdDjk79Y4Ab1OMJqo3o3QoamCyhtaQF/ChgVgT40VmVa6xo+9fgeQKYqw96yqtLMEio32nFHiEgIA3lvsfSjvSsqJWZDNTWb1J6X7WJIRxX7+iIhxcw9xf+jBa/3SvwvNdeyi0utc+XUJNz5dFiGY/i3brLVbpfOFukqrTJ5aTxT/b3tL2Lq2rN/5xY1+/t+iJtIRwlLK1ns3J1OjMUoXye1Zu8NldIIIxwggMPvj5zrmIgxqh8xD9XraO4CJDOnsDSo/yhZt+bmf13eDz6MvwqzOMG5AgKm6zjFxBMJ7Xp1t4hdr1Y+vqL/zlzL726wqxQfdUtSsiw7p62DpS8kDf3gfhQv/nwLheDr+MPg++WKX9eW3ffPC3K+vyNatC8K/WoySc5cDQXUOnJuGCTBK2UdaJMGBfKNOGyz+rmzXa9WNAPtNcSk3M8k+xzzz2C+pOIyr90q9bsmAT/I38z4b6KHB3q6sdU97Gicae63ZTtYB3sOxwnTJkgE7cNOoRGjbUlX4vF7NeHx1rk4d5tXcnjth5i1qq1AkpldveHs7LERosH9abvuJ06HLYIWY2y3k83tExhyeNaCq6FFOlOofDFNZmarZXMyhVCF4eVEwz73b4biNEvUe+HyMR0mtlqln3HQiciNe1tIQ0VRFm41M0z/VCGl0y7Q/mnhVtvCdPfBPWOjDJ9OIL+3fK3z8sXZ7VaZjSU7kodwJBLtAXKJy4v+63Z3QSTg0r+wClK5Wclwez90LO9usx6nOjZ3/LKWArd6WVP7p+XZsRIxrxcJE5L0o1+M60c9CSslldqOoE4ajXR0/aFuQEdK8sV4lnlHIqXaV4MFAc4DESB1IGWUjIPKumVg+/ZLz8THTpu0g8PMqjOEi4bnXMI5Nmd+jdqIbclZ+d51PosFmRslRDC8MJ9ztcXFMInvHlKqArleW92r3GU94mBbYNyHhKXDy8U6dOnHnxmfyR8w27febnTZmK2KxPDpHUq5+nDgOell3+rk3rb64+HdiBbAaSYfnWxtrrTs/aM6ETKlao2kuiJdsbbg1r8nB0YCecRV3jKXZ61d3o59yY9sbKU77lS0Ygm3Zgb667wXvXn42WRKodKpYTOlvrbw7pN04EmbKv/5b2YujNXjz+d+wp3YbfXcXZkkO6g9xUlMmJVMG0lPpSPLv4M8CnNVvRxo0pgCEI9FnvLd59Q46/YOAj8K1jFpvsIdTppfAoJb559hyK0hDO0Pj1E5eqOEcq8vdThz+MkycZ8Qhpu2jz55cLJJHoJqE/wCbc71b2TAxZ11YoD4+tyvhtzlAnIb1jRkNjpSswM62AUdPjI1KmulLF/UjcRe7BM2GAt8cs6uT/bgeDYZ/L70lGsp9XqtwMrOaY/TXMs+CWdix7gMGR0NrARWAI+BGG0BIk3I8gYdGwADUgZ5Jq4iFZ3NftPq4ik7jm4tS3IhkLJxaayEnjlh854TwL+6Zz888p1nr3XsDFqedWFjBeJ1zxO5OLGXPGmLkrL5s0eh/iWyaVSXXq8mem95S0DhUFqNXOpKmzZxz+oYXKda+CekjSGz9/sBXWmd243w7TXtRJygXveC+eBDak0E8twa5SUVj9pqjHMOgZByV9hBBBPZTifr4NZNdrYoDmLL6ICE3O6Ye9TjmwoIexaHDYtohPVf0fvteLsvLVwvcGaCCMlNgZ/UHrXqu1i6BmplEx8m95pPYh1k6bG1QMONSOFe6r2dWZ9JqFIUKcUSoAXYLYahqu8B6VHk8Sy/ESYWaj5exbKvXcl+PfUIi9v7JRtYRQCIJAJCIaBhJcYLw5SLJJAKhE1nht/gnQgjBhrgmwciD7cng6UaUcxI28tc1tascGG1AGkJu2YRgOU8c3Gf2onOM+sIdSNG9JQd/Y16Ns3AqSAkCEvJXThEATbXKIKYxRzAUcLFgahVP2QyHtkZGbgloC1TmrrtYix2vur+7M2ZL75Uo4+6kGZZQfxqBCrI9Doai04KktiWEDOmCrOgbbXDRxrVTh5brqXQuUOGEDM1zOz3xzOozRwoCrpduTPkqiRpw/Lh1abD3quUdUxXFlmKwLZVbDFQ1ZmU89QYcZMtXnuy/sdyej9ehqi/kWNP0biiLsdUXp1jZjDMB1ehj/fkuUjZWRqko3e+SQdZbU0OWkNxjGBK8BEv6ljpbfJ8rOAxdjixKG81IS9gJPMITnGJn5D2ZSHn0w4pKhqPz+vHcgZmcEy8Nro36ugfNV5+2CGFKZeGnEo554ycaI44Q5/fCjNZtBLdZjhzLIxX9A0IsjwppWUC+8kKtLxBdvKYoXWc66Yb0YhrYmr1dKXaNJpK4VC93qAnDmqvUPhbTNl8cOUHi5JkY49eHOnHjoETatGgzOBP1uNdW+knIBMx7fbWOigUwHVxRAos0sqVJ6mBjKLrzrZhPjy4+tT0ThxP7fHAnFFN18az3XqKozjYOh+lDQKoHBmLCYDRtwtYnL2tY/R5ni2uh2xjqcoWEvYs+hIKv6G/Fh7FXgurAEACrADT3VwvbQi2m9iRLWLYPktIAAMjSA4UnqqadDVxEM5iwMNdFBRJUy1Uq3saInw8fATVERUug/PtXEvP0eNqEqbmOfKmrUiB0pgTyaaqRQJavPFK1APOb4FUWiGUkXsCojTmPda0UAdoqtsAT5qVdnfkypLScWqBTIpjnEhipo/Izf5pwBvGJGZUTCLVERffHqUOTo9p5rbze6drjpd5camECFXdym/WCgBDAib5r3iU06MUjlZszK1ZipXCDFC/MnvshzYz9DPz+PSBEIzpX1zLADRYZW8hzfNfNp00zN+25pYtKMaNK4L7sWVYqvEgVkXxkDPWVFpbr7HDzzqW5mjecVW65HcJQIqMNxUh3rN35a358wn0zI2uk6B92wV1xxUofqj8JglY8qpBFhH42pebHXL0mFITcOKMMjjg1lBYsOXDRoAk+OYqHhH38SjcaNnpcIgsb3RYaFHt6fKefvu2DSBpy43kRNYoUd5yb0jiAA5noIT5DjmtSe+UGUtXoUcDNWaSis3MQJtfZFsfRnMRQRuCHe+5413Y40pJGvrX69IqXhHqipWsKOZJk8lGzU306yrZEfzz0zqt6nPz/ia85XtdsJpYUYVBYTLQn4b+u0ohgptJUmKcp4e3o3YD/T5Hhor2nmPj+wZ5ddqN9XJT+owfLL8w9GoTO3/OLACU2zzfbWqXZkffH/9veEHiDNmLQ5J3pwbtx9rmMrYB5exQHRFOhEUKfoFqiFt1pFV4syuUheIAuk1Y57ipMqZ2H2pSZMIDpkgVHtcVcTK8pZDL460QDOP+S3+xeQ5wKWL/R3l5/Nh622JFE0WV6a1WHSv1+/u2w2WDqzdef5va7YoTcHDhpKy+fCFfM7yi8dMrGmeQiammxzc6dgNDNTzTHejs2VxVp4SwrNjkgUtZXiS7dqf20reb/9BQHeDikV8PtsJGcqHKd0Rw9sPZSZKF4gUYhUYVqa3TJyB9iLSumBULFUClKzb20snZmZXgU6XrGStqTQP7q8I3rpMFpesXxCM5c+I8UIajxqUaP4iQBlKld7bvNjYTD00QcRIRJxt48/GvrwYwKlm/rUYlFBCTtnrKcNM7r1jDg9rdt5nj+K7UwBSDFSupnoWa/fbTHExjOzr+wmqWyc1p14sCwB7gDPBvIV02Vuz0PqSxjHBBs1QlekNIU+ayx70mGy/L+X9rmj36g+bk7A+qM3I51bc8ZN3JO1Oy2O3RJM9FWzf22gRxP82Qk6u7bNjKw+7WwK9EBPWM+OsvaMuzkUoXH13NnKNpauc44lcQxASqe1Fpsg9klapkuJDmemJhHBSxn2idhFIRnRJL6w6LxoLbLNBXZ+li15SKW0pHlxTyLLX1XXM21m3g2taLhKpyVCQyQxQ2xmqdF+lSA9Y/pQjtInrirlSU1bx5sc7sD8iktBfVuwS8AmNT3wuvJZdzoWbfIbqfJpFmJ8N4IuCmX6T0JUEMpmL6eb7AlxfkV/HvMOLDAZ7ycSEZKjMQYjdFGMvQQuZpsWJcqh26na01c316luLYzJrEWphZURaGHWX7v494kTktAOCI76n2L+Rx9/8YSMjFYX1Byneuy1U/Fb6cTLzbEr+r5s6tMcPptZ+zGHg5iPPqfdtAvQdCEEzgqhwC++sf8veFZjXTiPmOsxkjakH2pjneD7xZEV5s9lHKBcsdVLLxxu3NhQOI0ZIK/MJUq/hLxycSBFdDvdFAPSGxkVS1ghLF9FWHvWg+PlHdZZlp5DCE+c9patZiWaYwaRgHKK4Jc10Qz19VPFVjwJS7zNHpUu8WY8IckIUyaOx8CxHmMP741QnXDPg38XcDeAQidRiJqxQuqSY9zDpbR851Z0R2IPZUa8EY5+o+OJG2RpqLEKthzJ2z2+W8m5XtKCd5M32YUGAy4zSxm3U4gX7b5lBDyc1w4bErdzizxW7eR6HoLYTDpCyVFakgOd1avnh58uiWhsAQx4pCP4+KPPK7cr/qF88hMPTc+s/5Rb6WdUrqqQoMAqzY7jyeGjWSEQ6uBmGYWDXqFreHDdYOAWN6qX+mVsDmL8zFbf4uVjNnROSkRhv+VTIzqc9g9re0Xc3oMpgIiXY9m0O/4Nuru2Ke871QbHRBZ7rdftLTa7JOwJADtkBqE7VXSI87oBocSZ1LbxXDJnY2jmA3HaEwBXtpo4sB1juUwc6RPY+iyg6Ej95uwXudZvnABwEmJSAfgCumqw0beaEaBIAByLraFTcogQLYx++TcejlZpUntnGF1AgE5gxhy55kJ52pJEQuieOHMHRCKKG1ZSeqgEWbF9c/InUWfZpe3ILJSaYW05tAbQwNq6bJDm9JG8JusOuXK7piiAosgcLZgq4NNZDIwMhJRZ1RVF7gJxL21paOj2NjyC62rA3NMscELjsnYDxVKr7ggi2gsVJqui7ESzt7QCMX9ixUqZDwz8OiEQDuUks0PofpJyik9ebyJDcGLnI2rpSjOfbbQvarINI8YBXXaju/1mz4bcmUUlFvlka9fqpnpuKgELjF1nd888Yau3+Hv75VdPt2+t72uZsTojb7ahPVyumLc/Nqmo97h5dyfjuI1vH2eIHBX1s+Ld9YHdHoqnI/OJ6Go5EC9TvuCT6DHkCN3gxBgfu8Mz01+R5XVJbvp4Lmo3O4k/u4wdtvwFMxBL2fWYy52Hw/aJ0utoOSxIp1o+i2JopLimQHKh0KEoKre8vs40TuQFwdwW2AKOQfKWlFWJ4gxsK5xc1I8CSQKpqeUk6qIFgbK8ChwrZ2odLeo++KiUigeU9WPHF0qhFr04oaUkP1PstVvr2x2bBb7Mdzuy2hvdXTd7JA5pKiluhWnb6x+fmg9e7fIujHRtFblfR7RCbZ+1u6zcYxB7cvK5v2NFdtNsazvm46t1zDcKHXs+B87Gug50fiuoR4Whpmwf1t68EsZFxu1cBPgkeAxws7gpcAd5/5byP0giocEeOvR/2WIA5rMWiI+KlO14iZz04k796FIfXf6/9xbRNgYXgovDSfzZ+HJ4aTT3FqFMzBbJFeHnWFKyod0ARGcCR3hmDh8B3mcLCOGBAmBMYsc7HVR5kQ2XyUDqTOIDbi4pX06WIGJVczltjmuIJ7hP8vi3d4MOvJdHSw5bISOwCzm8lTM75bXd3imzpeUXE0t5sYhZM29HPy6G0AnEwncEOTXGConA+aO00yGF7tgJ4F+G3CO4NBKB2grUblh6fkkRAxKsdYLHBYhVDLWrRDnwi1iXTbkaqibraiewrzvBaRyV3t8JysbUT1OJpiajh8BBumeZUWhEWaDlVbQkQQwf7ACWPkFe+lmaJKO8DE1d/ekVxOc3c5/7lQKCc13d4qEOArSOeHl18LbkNpIqJsUwXm6npDiOPMR6Kp7SeYx9quwKsMv0qqoBoa19e6zexp4IsUvYHOF+c2Lh830xKvKVRaJK9shsi8E4YYGiNnoNpkwV5+fdKbaZMrdLbVh5nOn6yuFcU+e8B/6BE2CFHCV7t08v7WYnGpotBWoZljAjeJWQHOwQuGn7PBF/5nGxRQAMR3QVCNDH2gBDX2Bo54XvE4MKAX0EDG7EZDARDzpcNjTHIrVg6mX7E84OfTK9HllyZagqEOelLqCTVQDV1v1KN/vLl+W3jmC+SmUuDghxFAyq4rqTdwwVPnDSSVuypsvtb2WvEyL+qLCOEbUd87R8I9eoR437+qUOLLIB63l4OS2ldKTYrMAp3Ky2AMmpFSovWoSXZIVjU8kmA2+TZFRkNZRctfin3JedRThhfn97PbuzsRnLFUE81X2iqtR70rRJvd7GnIt1XGJdKi5y/nmyXnFS2JG9avfp/PnFarMpt1mVirWQB9KDxzAHR2M7fyfcuCpOQK0NFo+3sqgpA1c0EcjJJ1W9MLq/Jq3qk+XAi7xLhFkFODf8IdWmTIrNdpNGhSlRKpXUjv2Q0iAaz4QEIV9oaCXeOUUg7udzQNooA4oaELMBBINFf1hZY6dfVZGWJjWYqFWpd2aURfGSc++XjYPPxl7dVNE9Jisbv3TVtqbjGoxG6rmg/oomOpE7oR+DLJDlEXJ/+jMxNxSleldxtUJ7Ahm9XL0ikCBc1cHOQOMBDnJ3YYYkQgdR5ap2mPcOIxRlxeXASsI71xcIkBFNKELyvUrDK3M0d2LrhFT9gaVpBuIK6hW4k7DmBNFbw8FnKEHu7rBwLI3oAR1jvzA1N0eifxTM3lbihP/aonGMue2KvCuetKR2a9TmWXAb4i9kEzkLMSH4whYoGJu280VP4V9EkmHtOfRgo8DSlx8ckbPwwnDQAU50HPcn7UnrqWlfckrfxwwNaSv3lDKntmx/ur10rKCxrZNEjGT+aPkwuL7JeVwicJFH8uzdfTRQyDQJbjpjfF13tAMKMEtFo1HwTRSqXWBrneOu8ZN13o+uyx+qTux0XRegCiGYo4iBe8p3nSeyUOl8ja+2bdW+OldvhXhU1ltug8YGetcRCwEXBGYsIWZYuKeMtiO693pSRZfSgskV81skD6hJ+zEeEgUCIk/KL4M0MCpChi9mg6c1w1Uce5BCAntKaHl6DCQhKNSo459yc6Fm9SiupskVjRzUsdXBtcL+0SqGrN5qrAn95N4DlGS/GkFu6kwlBvupGeoaRmGtuWidz1wYFo77J28wajIaiwT50nAJbbZXDL90xEuKsG+0vhSkt6DAMccXLyL0LJJpwHbwjxnjLUmKxM3J2kvHzmeoQ0I6Ip4o6G2gY988e8XiFY50YVGs5CL5ivDap1/99BTezQhTO6Lf7rLViVy0+xYEyOFnVXtUj5J6H7yvVNpudFhxFpnc/ELH3WYqrC8N0nvLb2an0WcXMGm/njDDdUsKSZtcmZNNDnMOBq5cDem0/dPtWRzOD6Z1BTqiVSOBs6zbvMn9nEajn5625DLkKS6Fycrk21lVDF+cM2uJvcy8G0ramyNKQ2LVgFZp84afccW7udwq5YWDVYbRjelQcnqaErDo+Im8mZNp4maJUC1Eq3x+KbXeWi3AZnvcR3i5OPQhc2J1sptrkD5Z+JDhj9siW5w1PqFVQ6iXOvhaJ70zh7UYgBpw0GNbXXeRs/ijPCQhDhYVg0TBNstseiTNajwiCRJHsMn2REeIiokCuJIr/9U43yZzx2LYWjnUBKnmRb/ITNarNwu5DYwX4qH/dcctmVxXzOwmqQCUrneNmchvIq+gi45eG3hoLIGqVWkjdJprT8z4FDlD2KmtYB3HYjV2Up+qN9bg1GmtVLE0Ku0RYwFRCTXt9JJRLeCVmkZVVB948N4aGLNvvBg4B24SCSLGB/a7XLCwpxkvQaLNhyiLP4OM6DDToJ4kC7zK8vV6SnNSrry7K3EjUqjjFRgWtOSwBNDEqoB0MjwgAUG8cMmIzkahDzsd0yvXJKK/1bh8NFKqu4sxyHHX9aoNy7c6hG58k61OzT+3YnnHJZ/YqdlXEXSvjrqZTUxZQZmapcTqr0bxxIHmDe08ZEhN5xYPF8CQUxRFeLp2vVQry+9cWWBslchhf/rqL8HEwu7147/2kcBg54HzmgcupCPRuWu/+lKbObfODp1TzcCOff5R2DN4YG0tHTiwBw81l/37Vt+eoByZAnkOX4tJQh/e+ByNceEc6E9qHr0hwVa4F9Qnyci69/CA+OZbcTogXvJm6ih89zijBzI0y6BFdugne4Wqakd0/vi5HnElKLTmVHqYLdqW64L167bP2hO15XbGXZzQeGoChj3/hH7IDYStrbHvkA6tCGDpMoNhaR54PrmmfagTvJstwwBeygVjgD3JUjuuSsZU5MtbG9rx4k/kc4m5MgfAl4qFbP7njozwBTmZJO+d/oeeKDavzqR6NF2kyBZqV2V61PHFOj1cStNZFNm6f5z19f3i2xUKOhNu7Gs/vx3Xaf0dPSj5jJDW+uS2VvfXfo5QkI7UajywzY3KYgNVb8na4CWH/4wVCeCbVY5WDJF8oPZi6xNP8yOQsBy/L/Gyr80pQ8Pmq4oiy1BWYV8YB/qlV5TCsJzimMPBz1sgJveWa2K4Ji8yhjBUyuqB7n6szQNdUMBrMedSoW4XbFYIoYC07ndGhk/U4H0Dwj3BUenWACbUKU5wZRa2arle1SqyzrMdG1/IOc/I5qdo8S7XC9VQiEQ/saBrlAexB2P0jRCidGqx8iaKCBzqIYyCVdE/RtbIiue99lJZkUsv4XL29Ph8wP0aP0SU2GdH5OflV+5luSePoelYdluZraw2vBhxFmJcq0WvrqZHOO9E+zQ5S0OvyVn2h1hvhuIjceLDlebLqrcr8Xwe2RJ64IlBMR1d3rqgDRQdLnmg0vn5ttbbSZdudnOZJ7EdITSSxuPtyzTGRoqvIFq5DYVotOlQU+BkCW0wuRiqKtTLPq5OqBbbJY1Hg+R44kL/0LKhOezNK2IhE0eQ0d62EAtYuVkiy8xj2E4x9YzAvMIT8riA/0kJQ1c4MydfIyUe64rOzYNCk3wZg6ynCu3JAiyGfdf+p/gE+pflcfX+mzXoNEhDOoO4ap6rGkLpI8SIFs9H86omOQ3Bqf9gJj5uxrvwsUZ25h+FfZUsX8AsQwSuH91blxfzwwqVkWq31K2HzwTmvdy+Z6j/AaHKodwq46W4h9kSB4etKW8BTcNqvqZAMXGSsgQrQzLmCQUBsb2BAR1BRHeFU42IIY5Hfh+KBfJeeVhVK90oXykSh0H1WiCmuHvDftBAzcpnHWyFlXEC+u+kt/nM0bHduB9YLCf7eZMKrCop0eSU6WHjJqq5DbL8dKXFhrpPSzcyIu+WCVHXHfFJFemNwF8Yis8IuwJY+2Ly6dn2Ke08dAthw79F07KncXQ2x3MVb7x16Gyu54RDkQ2utBMu3jx1UOaKaWhefR7dT1hztEfkrFNtqxFScDuk+ISpjTJKDTWYI5rnGLHgVGuMKS2sd+amCoc3Lfhzmv5MOCu+DXB+y67zjmBiUhhO6TAGBm5nyAiD5/UX0CFbqf9wsBriNdAMCiwu+5aeNF9wdq37PA8V/jIKb91Utu69RclnyO2S8M6eAC5TJKGVGK2yepC5CP3Ll/TSWVp03Pr03GfT/on48rVsPMis/nElixIS3eJP4YxNZjcflVPhvLU/r5WZUuh1qngBzJObajd4s8xssF2HwZyrn156HscYtt0yd4+F0+GVno45zjPjOrwOXhtBVQKj4QpWSqGiaiFjjzQZJUPlKQnVmBAvk2a0n31Zt2ypy7C/eCZ+Zq/r2C1NCd/bCttLVaAP966y4PbBjxMDhDl34EDBYTgnux9HxY6u+Yi3j8pIumHhGOL59qeaN/LwLh4rRsYTRIhe6zOdY2SvVeS3Jmx85cJOzshdzCydusQzdIYyVJHsFxxdACdM/3UfTmxKHhg0Aix5iNvcX7YOxOk13nE5hWmzJvu7W9V3ZlHi5CO850dfPx1IR1KY+nlz2GMCG0DjDh/uwoRkLGu8JFPigI6H4H8YM6hpxueWSjxKWnywFzt9+Bm1ekz+Umkn1leW+pwmvgE2CBiBg5bVrxzcfo8ng41Ko5VC0yUNbfb3fCRLewT4ReCj7lAB7r6Frav6poQev0yvVqw8HndczbG2eBtKq+fwXb7kC6JY86fWTM2319yJh9xJZJwckwTfnrgXMxOScQSPgn9fAYfZ8ERrH2JgB/6+2xWl5SIRv5p5zpB2NvKIKZhbGMny0j1gJ/D3Nv1q8W6wg3EL6qunY8rm8469u0zAXKbAxFdbchNFudUJjsmQsOUXD1KQylvoCcQbaFw32zxzXXfsYAY6AdV5zm5mJlYuVAuWQl7DCRVtVWfmV3RFS970KG/I6oPC31Ml2G4ruveWnr9WvbnMnIb8acXaZle56EbT4yszo2wh1IqDYHh77BFSS+r1ZvvIlfr9dIIRoYFVV6pK51bPOaHhasK0HgghBdoFOO5yj37Vy4zqefqVtrCMcK2nLXGlpzu6TDaPlDMp4/1ILwBOHqjHkOzH8kvqqLYdClg53VGR0j3duFVUirolh+jrNAHTM+DEvnx5dmyUqW8lQpCkTtKyZGYiDvGo1lhRNvwqnI6Ee0eSx4/Eu9JR2uVgbDAwMlrD22NVnTrVb30dmpiE/r7IQ5Zr0o4CdC+I/B3bBTADdcMCW083yoAJ1yAMEADvVtHsZ7NcIzSAMmgjT79gAFCuirWyrTdsLNvDH9QFBRwPD58vwjiFFH3Y2dFDh6xcfmsShe4R3Sqwpx96933ufa4Px0ozbiBWl8N0bJ92pnilwOZ2hp04+ZYfEUz47fCubhuyRJZE1bVUxJZqNKWxFXcNEMhQrtlSa4u0KNreYaZtqytNaeOTstK6BGuZsiC5yZgDc1DTHX5kFp2trNCT73Qos4oaADDtg91n59yXXlMNVJcjcALv54e2H8KRixgDI46RAWyEBmAXDGgj8GxIz9Ksgw2CmjaLukPsDuHscdBa+5whCMJWSYnVLrPPjZ63PX77XLVr33ptgTA3yJhPyskh5RuD+E0Reg0ICSo4wACGoSZ+cySiiRdkuvxRMQXxNjd7IT4ni5OLZGVnIeaiG/IzBXLfqPnt4+W5IfGdQeApE8G/1N+JAtRlBZZ/NnX2X4r7ReatbmmxAus//6h9YqwyWsxPF6Q0SUl8zCZ1xFoYwAQboHwYgFeTnNTYkLhUgg92P0atpfb1eIXvwQ+Ln9CY1zmYuM6kPWnmHvQFdq8tW7hEZ338C6OzV6+40TIUvEvADJQB8w+HeO0wOEsDeNjOR06sSoDPKTpAmCjfx0IACh0HugAAwxhoBX+B0JnZSAACAITDq+JxbhgUyKMgw3Zgf0Rvk5mKcBAo8wGu3eM0BsqgjfvhWXS2svBAsGFCHXJgtGZkRKOAEKiVBd+vp5Y2JdUnJNQnNf1lgECGsvVfj53B3xtP9lmsE7J+2Q3tapyLJeetVmc6gMu7I1br+b5z8o2hCcsoK7jjjOgixXScNi7uNmZdrRW3cSquKiP/30LlvHKQp/Dd5r47D5RH5ikLD84tSZFbjSqgaefNi6vQzG8Fl9ri5mkq5oPWtkv/Is2gDaZ6LHMHVvBPxR2NOPcxM/gxBWWgIJlzKg+Eb+hP6U3ZZpB9oe42YMp9MRng2j0G32Fg74x+ajpzaJ+CMZobeS4XdD+ncA07hdZ3S2c+HxuPr1rRv9Ol+wOle/f//la8eIcB/SgsA527B7ssvjw31zuOTS68Kr4at1+MT98t5v+S6/vLj63ZX+zzzgsy1a7BjbqgVJkmrSHmCxtFGrhfKqTChKcr0R3z33/YKB1T5msi3Z9v3FLzfZ8RqK6G6PQ35O3X37fOtd/gLgrgsHmun13NsOdkt4rlOpOn5CBEmwaTk9L94enhQ+lDgemB+0PVRSpVUZ3KwobrLKrhOlXRM/cKAwC4MVMJI1MVlRYgrpDRywIlf4yB2MMktMt7Cx+A3agbHqiiFsTkq1T5MQXUqu8QoYAGOtA94yoqQW5ZDgqiP/0BsfAQDGBqWouypERs7kAJLqceyg8+XXpvTq4yRxGZE5n3EYUFMpStP37MVLhEyS6dTEpOcoXpQOkMsDotlmOf1zKutS3AtfuBe9KsC345T67bJU+Tp/6x67uM/keEAqaIbt5LOpaDdXSAOTL348hcxQEoEoCWuBntgC7YkbAzfmfCjnHZ/kBjwJBxKMAYuH9rtT1Kdx1a7ViNVVixEQsWPpiI7o04eOEPlsQHUYF9RYvKui38gEP88QNH8DktBudUo5QynuFSTGV8/hoWCm6JcKXCfKmXA/h1ldUMC0NewTDNljNtTPncyt8huhUJXEalOTLSPAcBg3MeL6d+FAXoonkJyY2JiY3JMWHFefN9XX6qn5VtlcY4/Rw5BxHgPcGa8A7nh29no943WDe80QivasIrgo/sQOJZ+4p1oS9WZ3ed3c0Fc6udc2vasBZYebw/IMCJMhDnzz97wj7CgD2F7gQbdfZi/aFL63D8MAksNQOTIu9VxeyvjzK3PmDrJ0beAtEyus/PYfJBhHOfA1v5g89O2G8d6+09day6gsK80mjrPQIQ9Xu6ardebLVZ+2UXf6L1NTT0IQDpv8/1RsMR/AiG5MRHaQUegdbi3u9HAFBVRnanCeW+cuf/ip1ehAz6pJmbFyX0cTu3OUe4g0Udn5TA8LS4NymNVNTalCX4xROReggZ8LXG6TVpueJrb9Zo/uRyUC73T03HkmtmcWxarJ5u5Q746A4T+oUGX8PCol3ng52pSYJ734mGmLO+UyzufQ6EWLggHKgTzhcaAhyeRd03FwBilLAT7VhkR/N11RjfwbdjDoSJ8lEm4hjI/LewjznGkiiEjB2YI9EpQSAwWoMwo7QEYqurXQ6o33U3nosc2ln8SvvNs7fl6MPRAOHdlgJ0PX2ajwLarE0DjBhz2OYYlAcpWcVXQ/5U//RuAxjsPl3okc99/wc+fjvr/X/1r4dYD4mdbJ8Z9tY+QWiQHnCd49z3CZBf9/By9OqnWtZE0z8oiE5ymn4eDwgjn+APY0Q8ouZd+u2OcccYNo5AXNIRQL7kQ/+0w27YYTma9Q4rR1L5qVF5/DxBPBgjBoRfCiwvoiLNuZEVBjyPSqcjIlfy6rhEKbXTniEMPx4CUP9fJg//F/qf20g4/eiSPw8FAJwFEHAq4UjfTY7EeM8FkkBmuP43yTrRDAAateMIC5m2J8PtMR0bi6vUqG37wOIrYxlZMosbdsNCG3VwTmhmWE4J3zYq3Da9Rmz8khZ60P87xEYVwm7g9l3vfrc9DuwtfbxLPrnPa+Nk7JuPM4+CNnA08/GbsZMbvfZNync9Lt0LSmpz9IsQdGG2/jOTWIgii8rxGiwgYDg68Xbe+zycIHBkEImn9InO5vFuHfmr4Kl78HhabLRyVzCYAXsk70sPpaRXKaHtWgBmgEOu3qAoo2VN8RqLXyuod2D1xbGLMUmVkXMXz4305VM9NAaMwwxk89lwRrutvvRKqTXbVnq8tG5LZxfi7Heis0iXsw8xLYYZMIhJfQHMaHq+ta70cqYtAUpPlNra5/chfc6HoVlU+CBAdfVx+ke/2X5zGezTz1Aw+45hJ1wohNgQCHXlz7XsG6dbBH4krXQ4bs/YuFK017i9Np+i9f9bHfXryAaAuuj4ND6M2VXpk9hdGDYVtaPMrsEMB0FRTIOivnf9BzilgNhtJ+wDdviwbMHic3czOx90ZLQV3QbF1gMXfHwY0d0yUWBM6ZKcJVcDUgOiegTs6IBoDhawPkDLiVLl+lECJ9zDOL+2PciLZAb7zQWorplwfNDvn9hmX2vWynu+HiuSPPkap+1m/U2bU8P3TFrh4XtvZZa12Tf2H79BHNdOYTdv1V7hbv8RX6FK4tOMlsiTn4i5C86ILEYaP0m1Av9xO/dK7S0n5sAANkubhUdoAJkPHnJHDo45kKPYFIYNznA2ASzhOPPvvaK9P4l+ekf0zt9j9PLan3bw09XQ8IU+vj4vff4LSLSG39pPXY6t8Grnrq2ivc2vRC/FPuLYWz7/0/LFqOfjHSfKGK9gnv0RDGCyXywR+rMPgRF85qUvJF9csjMFDOGnO/CGQzgiQFiIYBGGUrrjCAA8nbkEwkLee2xrxztJ49A0v/Nn5ba9x1FR4QJ3Itw9k/EqUW6GqMEJvHi8djwltLD1OLOWebw1aip5lgcf6fdfPIuxcX4Jt/ISWADYq7Vr7Ali9+0xqaTwQhu2Rw1GadYFWql149Zt1jLjEtgkS+teUj4En6vMCuyTgA/smP3+Df1DJD5id8wkTP78Ygpd/1Z9f/OAfRP+iZQbIQCwWhCRdEU5E30vLtAPnk7T3Iib1ga74bZTaZHzQ3YbuzWuTYQQtlXzqbC4nraegcSVemQuooLQuJm2Ge3OZohCXAb+/MngrvqyUb5GMH0o1vPtrZYD6dv47w9pqF+vqQbYiTNhvBZFvnlLeUHwG+ni3Dmxf5W0PIUEH4N6n0VnkdnL/ES8mwwhkk7XTBm+Llpu0T1U59ItDw1OA8NaX+9E+4HYg760KbZek1CaVHHXgIcM5W1YalghWbBJuQXrxWO6U+RtCS2V492WKSr0H+Iw2XKPo8c6TYz50aw+pG/d+tVzomA1vG593wjatR7Hx3Gu/3lTCNhtXiCrqMGXtFYoSxVqc2zuWQMeMpTWd4/PvorapCIs4TzQ1n8x1aN7AGf8fFR49GfhIULQsXJ4r2gvQQ/gpuMoMBgp8a2Tm14l28mvDICcKL2SEqXETa8Tq7/UR7rUviqHSXdF87kB1q9f1clZdIS0IhqBzJg3BQMYhNjnCkCbdsHAxT1sqNesjXvvrVvvMKi4Ud9RJlLXAErG4o6iu8Px52Kb4OaJf24ePb3l9uaYbeH98qUL7sHv3Pv5VVxLu4LVnrCwwrEmoqOqU14VviCVnUoCfX4zD/z6/rgmVi6uki+qUi7xdzJM8960VSxZnFXzAXBTm8s0JWp1iaZsUlOmLilRl2kmS2felALryOik3WGfn8h2NQ8n2StkIAGOolO2YGRi/opeFii5bx03fe6CN/RZ5I3YRgcRCmh8EkUFA/NLPUexUQIECEZ85tidQ4EsTnKtsBueTiFgu3/G78N/SA7wZL52RqOA+qSmtxiT50V2DPtKfYvoEt9wBrb6TN98Bs9XQi863uohbFAqHxpSA154MTMtlAMOI17MtRDwJ4wImG3hxc1xVCmglsXEPsC+W1dd2pt495pvxf8Nkd5uGZP4bQOEi+B7DgzcxYVLEwAfJKzcvePD8bGxwfsPQyMG61KK8fKpy9XzrnmM+X1nVmOM8EiJVC2nyaVAdY0OW+OzKA5fb2c+pv+fyYKsAGLKvNT//FPfQ1UvWBBDhiiyt9WbYkriJTTpTxckPek8nMAx2zBmPZXDwxgRxDKxgl4PAWzqtl4s+K/FqssEf4yP/QwO6oU3ILMAe2FeUoOjlWi6KZCdGom32jMoPXLUiTq7+lDGVuTsR4a8ulAC/J8EyBJPsY+BOPu6ZgNslP42HXtIJ8DRTg8jroO1cE1FcBefqKvBV1zfnwXj56mdRkxYivPh+EYT2EN8bOKLPnuBO9x+Jo5tMCoNSdogrSExKt0gPaNdgFXtVhSbVUiEOEis4MbYzLsjqkatKD7HetY+Vt9N9jDQpBuIZn6r158L6pdNEKj32mR5oxqaY8BR8S5PyUEk2ZbqimkMGxu2T+PTVvs4Me6xyopSHx5qxwk2mRDjI2iEnR4ZQ/y0UY7zQgZ0Puw/odde+jF6/Ju1Ac39E6WZsBTOLI3fweaAtTuvfa74/EAYfxPvR048zMdwT8KDpKutjpAG/u2HobXzP8wyO5EGWukem72XQItKUU0AG9UKMAjbTTATNn6U77xQGNxyZGJg1R7UHZv9esptpebqAVXs23kGFziVVXeGc38h1eVICEAaiAlpcSs2vXc3gRZlB2hQKaoVlEtsxg0fiaN5cJm0W44k7i44W44mqz7WZu6XtJxMuRHUH3SeQl5HTcj6g85RHPJ5H4dBTuQi+4OIW9SuLifqrK3dt89CLKPpu/Ly+pzmNPj0qduLzf0tp6XtFZ1QRJApor1pL2Bfv5oaP18YnJ3EaO+bsDahv46qjdYK+2sloqzZFHste/Lu3XPRE2Ai6BwawJgFKJoiO8QTnV+XT7J3gofeU1O/Dm5yp1Xt5Pq7A54+UCofPA1w+3N3VqW5Nw3+uuZGZpY+oonv3fvYMAXxpinvBsdzzY69bC4ni7rzPkzNmv/JiQ/JlcczTrDtc9Rz22X2edFz7f9snqpdjoSnCNEtcKemidW5RDw68DQNON5O5W53p40ND7MhEzCnGzL8j9PeYqFuQT0RJomFEALx2C94Yey7MT6muozzC7c9Tq6iD1vkv6gXU/RiVYlVQPPwA86bxyq2ybU5zt7enYKdfX1IScqZ1Mg5EIxl2zvMol29q3fQhzDQPuCetOUK9QHHqW/8aRP5MmxPNr+6VCbzhEfzBv6XXm1+YmP4imx/vkE9/gNundI6JYcKI90ylolltGVgty+7n7XnbdEy6ywK0I9Y/XcP5kf/DdlY34PujHtdw9ubGASYZxfwPVcJQEwSK0UgF/72rthH7CLiEfcYH8BjdEYqHe/N75zn7BKEpD8LjZ7b+ICYN7z+yhDmiA4a8Jv66/2BsvNekB+p7ZbYnIabhFmizQAAeRfM4lttJD/IdwzOnczPCUxDPtbsxYrVQTWdTZ8bPnuVGbgRt/TqM8PnTZ01QepibK/m4zQkJzBvoKLs3AqgCf1oukuupYHqyu18xerfWFkYb+Ub9cXFfD4AbKmcahrZ5qS9T9yvGV61246Z1wNB9nY1tKib7rfTr5b+4c+1R6FFO4brAL/DVFX4Eumes3/hewnLrz2JiDr11rmbHk/+l/jviXKOu6NPR/YE1G4qn1NUJGi1yYU5mS37VvMrx9d9GME1pJh8SwW6yMzoBeHpheY3U3et7S7tdFYcBKOvqV2eFk+nJy3As5+aSO33VHyE2lzwoRpGJeX6TBA44cJcwGGd8IGZfpSF9s+4naiTRVq5p1ddXKNZ/E8orXimOn1exc5TB99aeCsi9OSGBQkHxAtD8ozQHsmjqRC+NbUMz8QymqLSmvxrWQUZhs/kvHXzu5ZA/ideCYpG6PMPz9g3jzWtSnl9f2V+66KxlL6hANrroEZFKrnG9v/6ZvSzGx/6pnLnt3U3Ut2w78rdaltFaeXyLGlDK5YeKz3ypZ/QbPKde4u8jrLhhVCWlgs+e/1B+PWDXuPbj6d5ZKEm6PWrS3t+Svnnww8+2prF6fntQjopcen2O4nJP4KaTktgajYpnd0UW5H4l/eVD3L8ctjzNz6cw9lhzDH/9M+Jb9wgtogeacF43cxPJ+4PmyiEA2Zw/wugOEZgN/L5ps0iwxixugOYIGEjiLzEoDj33xeApobu9VNI7etgkXXE1WDvIx6nRwVXvw75yXsMY64vn19+eHmBT8E78tyM3EPm0Y/B6Hp8lH5s9Lxp9BoIvRQXmqoLqRrK8LDrQ8N0iKeTATgf1vX+GX7l7Rx6nR6qP9+0L2Ti/a47JzPKfUEGhAO7rjQWK9b73XpcXfc18/nJ9NY5tzse8vYsTm9eZ7z2w9sHQko4IT4n5FhZWVz1jh8LeAWJeY+Ytc7FTacbWNou9aLgAmvNohoYoAzUjc5WMuBZZBa1n4vLzwTXxXRpZRqjNwxg+rrFTc5a5qPEPF4BCP2FOwtT/IG01lojT6aRDDsDvZNrHm94nFG3ZcGWgc6NlRsxLNP9KnWDXpubnvJ2QaDODbHbDVgrsrbfvq15rRBt/BD74B2RYkbz+PH2rMygg/UHbVubNAyM0aTZaptOpnhbFH9zv/PrTNhEyL16Pkk8NJdsGRKT+PX3QibCQIiaHleu0ZTHJSRXhoAMdsc8sV6cngtBMIPWQQM0KpQjMYjTOuZmsEBo8ryEuNjyMs2RNPpXb2bEhJbmzQnpfM+zrtnnpjeFoW2vzL0ItqjzVZER2dkKoLuFvzVPF9eYCJFUxUZQjixNtLjQ9Au0j4Ey4NcdyvDgNLk8zSxPTQvmBVTkKXMUihxl3hzcHKyb9/JYaKZkQz05uZc2PmeBPpzB+fiOWJrGiWtTTgyBVwIel0QUhaTK5am5BlQw97FrY1x5rKasRVNermk5UQC9rHmIgdtopsRP86w4muoa5Q4BJxxTKubmFRUUIDChrpqVdyFgJx2dnAV5S4tS+csyMEUZfOOzvNjxwYt5VKeDbUSXo90Zg/Whit0efqS1EDu0M8QrKkrVhkmLUIAOogAdTu4f9uEHYtE8qa8WapRqf2AJrWgJM01ZRLuGFIa2dgZ/NGAftIMHu9de1F5cm7DJnKKWHYmPPyJTm1M2laAAGfnIVoGNhkYQp3P/ls+3OoBwEMDlu7Blyb4GQ23jBQpZ0VnUZXfgDsJCWImBPwdgrhHXKNFjise/uHb/2otu3n1N0ONB/OvMaBGvfmZQ1vbHjzUzCtE7y7DlG0WK15rbt7efX/6gWXyYOWTDQ2rxBRUXnrLf+tqB/WwXt68u5v/w/12yj/vIvitybXvzuY3YRt4zy7PAaP6zX8N/xXh04Ma8fmMC6p7bUpKcTDP7c0zSnzpPgxifGPDX++JpMNeXIidJWb8ePv9rmjv0+cHpg89VAwAAAObte/XmdhSgEhGFzlU7GSZ5mEd4ZlB0qjOdS+f4JenCLoiC/5TrQqjUPgiCwPBzhIXgNuZCmcEH3sAwrMexWYO9mCaAGfDAaKKa/+6AXQOkBsKWwA/hZDKJJLP4PKH6ImcRX6qIVMYZnC9ynz0u443Hr6rFBcKoSTGFVcWdzwYAAGhjBMOwOi9GclbwIQRYMSlb9ZBiIAd0+FHEk1HJJ/b/xX1hNEKK3wI8SV44pC19MiF1fPRpjeTGk5I5IVQIIpMCftMMFAblrPNcCzcMxGZ+J6LyldQ/Ghf/uSBtwZ9iLFqZ3yA2m1i48OBBsuh9PsBqamajZykbKAOY44xoxmcty35zJ/a1Il4VH3koUq/SK/YXhraY5ocKyL+rZoPPB7wUTPORl/yX7Xh/mHKZYpky7qbEUoNHABwnjMMb1SeNIAn0LV+MEWMCorGIRVv+AKMBGKcBxG6N0Vy0EUfmi5baYQBjU/j3/n1csFPyuDujhJWwYNZU1NFV5IRy3QKW4Y6/MQFgFNCOgPc0b0UE64TA5oBS34O0jjAyPvoPNcew8cHxj70wuqJFuljzW0ny3lN5RSylhTlWv1Sa+9XfXtnQEyyZj/l0IpWSSm4XYr/itWXpC0k3t1pSjaQ6MoC3JIxd9zm1e3LtryG3/vuE/kkzqX91aMGeBtrzzSG9z0L/Dks3aqtDKUmMI4r1Jd7iC415MimpJVWaxHpG+mb7ddenP/ISVJ4ymSysAIQEy4JDw6RhSplEvJLlDwvO9gxtUylkihDQ8RWrlKCvD8XotfoYtfvx2vhVhQJbtFYdJAg9l38eCZAL5QjfX8xZMT9MvSxmmToMdGX8SSaJ+4LW1NT0SnWCtXMnC36ErZbW1sjWiPo8iuczHr6w+8ZGh009creblgE+xgcDJp9scK5XvxlIvCQgLzrtn2Xx3mR+g1at1jbwrY7Pu7dxt7kZ/423t+P2ugjbcWJvgNgk2Ldgbp2lqTGgmd+Um9sY2BBYz5LUb5Bsc+4BBi+4ODtn507WamlvAVfPrT2JavX9Txz4ghTjJ2NPoGyvv7/KlS6tH7MwlUWsvFN7k0t+0yyWtijo3KNSpFpSze2WvFi6xeuKHeniVkoqq8s9wyTeIMNGWjvZTb3kd+UT+if/vetP3VMQuvo+8qw3ZLMnSxYmk8k8VQm8Hz91Xd/+DekZK0ma2kKSyvIaL4i9S9YrjjCSKKHVWmP6wpCgEIVModo21HNWAPuzVoolMmWYNCw0WBYMxB4Zc/IicyIU2cqc8v8UagAezio0/5YrcxTZORF5keWYOU2eGpS9PHuaF8SXPc7OWf5Hmtw8GpwGMpQdFj1YsWC4wYMsTW6MxZuT/s/4nPLdRwzpye6M+l/Dkd2H9cb/MUwhm157K73dm5Sb3OHo601gINyhh4JOo+qwdW1t5SiOMFGcse8Jq/8M7wy7/5t9DNykuv6sIwlhiyQ5TBc222H3sGzMYeYe4TuC5WlQqHtaMFBd5vyN/c0b4B3gI+NvkvA9Q1rJpzJvbq3wLdvfncKtKqnCz1bwny99ffcO19WBxG/ZEShAWQPbXd3rGVUnl42fBACcHF92Mn0KH8ddU8n52Ebs4pS0MdvIeEfH+IhtLC1lcWwRr0sasMNfTmgNPWzKKb+8KoJjZitQzJ6KoVjFI/VTzvc4byBjbv3bZiGigmKwdhg+LvP7HdOjowgrmGkV1GXIJg9jCNQh99NybyXfyk36OyfAigtwsOmnUOclEkOgp52phhk0x8uTdNAY2O+oZn38B8sdcANmzxRu2rYNA071t7ZelP3k+HSkn2uJLvnzi2KCxW5E1nSUd3Jn4Y98LtvXAOKD68T1D2yJX8hyf3aW3kZnx7muk1S2hxi4a2I2S1ffm42ezc93RzmW9wGwVpRbxUSYqOPGEZ13p6PTeUduOJCmq8brdLa6Rx2SV5FD8A9DjhAm//th9/xNnImwmxc/XKir9fLweeYNSpYGmgTw5fjLNIFJQLssoEJLsiNqGKNxpTbeOKOdRCpF2xbqaot3H9XkFKAXcO02p8lfzgvW7TKZ1pKbpzGXdmR8JKkxKbFhqQG/yy8Xf1qwQiZMFcUL4iuEEnZrlSfsY0kUJIp0wqCq5R+vrhf3nsn992iRtkkkPqUvPkxGKk1v/AzK3vrli95dIlYKS7xLsEvM0oUv6Eea66ct+2o6FF81Dg9etAam5KTsydbl6OB/u6527ROujF/5fYM9MUX4tjCpohuMzz3I5xZeOYZf0OKZbZXjlfKHKcx0AT9GSkpVyozyzKJA2fMVBWUGpbtNLQPsyu7jp1gle6BxN1jUW/Aj5IcU6nxac395ZjRH/s42pz/79kFzXn7eerKQLl6EEtJOAF1vyg34FhfZRPi3AbntGNEXFqk3hyhtSgfRJ2zLkGxEmFgN1fBSQVItdCtNVjOyv6EoWZogTpAdNiHNMjkR7OeAEIcAcUB+jmA5IUOaHYe7cvcMbYaWlCR6XzgiGBYdFH0kGBGeFWmSaDOJNkGjoMhnxkcJvTkzNH/ca5enynOX17nHXxefE3TxA08YUyk7vDQ95tzcJM8dlJ6zGq+3qFrjAkNSeq6W+lZPmVD71PDY9lHHiIPnerPgQTMuYbUFqJbRZreHYFaZMFERCVCVHV8fhF2zLBQ2Vv67tFImTOMlihLN3jBl5XK2TGjFRBgvWSiZU7k5TfpwADKO79CRrKKg4aBhkbhBHXP+qGPlVhkzgSl7Z0vvVikzhRnUWOksvFK0P9dr7PCy7+rDYowJxu+MKUbN+9cXXpcVaZZpyhWG5vIE0R5RcgeQl+5k1onrmE/+poDqlikqSlEIfCCUQyiG4QLc7dJh+chLG58gvqEwh2OpqDX0QGKLeljGr28QE47I6qCkWoFP10C7q59k2YQ0OYZBWkGMMwfYw8f4Y/ZhOCdwsC/zZwAXYcf5Pjmdn8aizHQseC/Kd4XrC39uu2AUMPYuDTW14jmach2p9Xz4SJNHp/59KvkycN7cIJOMwfTdWz4GYvMj7Ha3kbA5lqA5M2y4DxneaKZgxUSDq7/X0jS9lOEeCeulQWNfYDnyED7PHtcDc8m7Y2cYGHTLBfftBH0iH1heBLGCMOSmq/bFsqsHAAfCN2saO8BfFjNGqrzo2FTEGH9MddmOPWQ77q91d3Xhs/LynKgzL79v97per+WdmsiKbCxzDMcBox7kG3AEazLEePaSv+EFqEjBnQbYoMM6Oc71fQZY84XmK509M+bLGMUz/Zc07an1kJeamTaxjWk2N5dm89TVY0D+Y2s8YdOHE+l6AMj6Ny/94MtLaYQIZmMKz/f/f9/XkAHQWCa6WRQovSI7WH3E4/eTLigpIiX6O7Xj4HULRImcImx4SGpJIQ4nc+kDN92Mg7/4CYZqV2m8d27UY8Zwgd/FrFn3vbt0ruvyFnlJasgWEDkJIEhsgXzMy5VmT5+9LGC5u689R3HH7D1rYAN13fl3fz0dcQcKsqraF0TbVKb6B5nnd1R9kzNHZZAZ8bmsq3F6WaqqlJxJqZiRfv2lmNS60+2zwBDpBQu/NdQ36PfMnhhUprfRUlJ3fqOC4Eh1P4jNryUIAkdBNC9GUxg2MTI8jN3YTthRsGSguUzmE5j72hcMTob6DGZmPN8PG7aLa1y2+AOMGOT+x6Hg3C8KqQIO7E9NV1SQL8CIw6SM4he/iQyzaO9+dNSOJjyLNBxwokHj3waBpvJfi2H17sZuaI6fsKJq6tLEs70auXf7LZsUXpB66GBq22WZLcnUbMrTi7b/w70dePrM6vej0fi7IiLEXEEM99Yc6uWCJ3hEYPC6nOyZsi2aGk8ffkbWhtJ09p7Hb/j4bs1eB7AXMAMF6Czqptl1e980tUesxwtJRiYjiuFKBvmrT/PL7HbyQrHYv82KeVkc9q+HWNh51HEWqytkzdfv13EBnO/zZfUaoJLUDiRvr/7SZxnM4C7Kj5U1wV1slfzNnD7KTYbxwpKQVNxG1G1JDSmRb7ns4tLv3nPPMhf9BOFGTL9xp7dmVe2QwO+Xgwz3zYG7AOjTJz5kUQBkuX7Qof4uOiUiCXKd/N3jiDo4uyIdorC6JywaAMia9//935fXmMIkoJRGnu8Pl97UA+UW2izlAVG3G4UQB9q5kCyF5gog9LL14wcUUHmf6L8AHd1J/Fr5xy5gBVrLnwPcuANvt/tNA/fQO6XWbX+FQ9NwiW27Lw9RN24YgsL/2mYtDRJz7TWgd5W0O4TfflrNCn+62moabOm36G7D0AaThgKj8/tP98CIaxAwJCOO+5qAwfzC/vPn+yfu5892MYsyme+gAIlHZtvxEa1+XuS+UralH+TfBCNNX7+/pvpLn3wYcOvo60hIF+vIYplQi2t1gsqrV9BpGqCN0Fyx+sWLXZKndWTO0vsDWA03vn//6NYX+K+0ZoN1AwohG8YCw+fju1+zcazwPtb4mTjUDgCwO8+jqBsTzS43u0aoWOg72WASTPqm0ql1FO9XVNfzwvsnZHgUO27nspYWqaTvn7L+48f6nza3hmEIE33af+x4/+Yef5VpLr25d+BVZO/8I23hlDE3zwDRY3gxdCicEhghTRejlJH2XzawUQrwVfMgYUSEqZ1+et0yJZapM7X6n/8+ZGfIcEg/6J3oJJvU9WmLYg4fjuN6kan+flJixIm6PTLUixc/rSyIzFMozdG5Z5VmRXZOZK6yghRPYyCfb0qNLDDIdfLg1NC0HcGpuW+YzaQ/QNAtzbB9TDg+bO/V/UBryKCuVcXoA4xCC6OYYY3TYYbhxGKGha7TpmMCy84sDw+PnHU7z2bnHQ+qK9Tn6+rYTezPMg2FujxWvV9TUJ2w6NeJoQQbJZ72QAdcZxGATiMAwVGACPgCBBqHkOmql3UUnoUbi/MrciaN45tPqmmpjTCos1Tv0i29/rTA5LoIo+uc+ZV29rxbq7sU7H5oXGTQL1pnhhfp1w0bFq2DJh2Hu92NoJP79b9BjltNYcYwTJiIsAyvsKEwgsy9NGRYtUF1QLaF3oSPmZMbaY5UxFODbzInWoR1u3BFP+I3smN2yf7eBa/1n5KtnaWqWkcRzxz/7tAnH8aobR2NwcqaxiNhASuw9ix72p5frp6vWlMSWwY1y2pqc3iFIleRnR1pVpYBuBSYI7MUiqzKA2WUtZ/iMTKLOqy1Unx5FJ/G211/uD8IbmG4xB6wG7075qANxAZXx7GVgyFQ6sKTM4bnJGyxPWJuNQ3Qyd//ZwDkPmdzb2Qn3ZBO5KSeQ1jvF2f76L03iw8ZPu0NdR1sM4dTeblln07PfS9lW8bFTGG+uNIXqKWPa8+mhhYu28esZe5rDS1sRwFCIEy0/V7DiHU4jUizEhjh0rpI9vD2cBDsouQYzpFu5JhuUNkj73YFV4r+vNPzqQoKm+FWK/OTmqsMnYWHkMNsqnJNMvpH9TZOg7FaH98+s21L/k/kQDQV9Ux89hQE67NNjGUZFG/6q9aHHMNmjuFh6yu6N2VZhokBvs9Pzf8erHvA72qK40l83LsXXlN3H3Uc6fbG02nkiOOoTwdWa/Mv9KtJMxlAyM3jj4VfxL2x5XNuEDXZiyX2WkEo81bNd/pMBX5k6bWYp+Y7v/QIHp5kxMc6ttxEZCmUyFDGJzU3dBn3tAwBzptsAiFb6Iz13fElxMDcwCBenWj9utczuqaSG5KSGpYagpDRD2ia7Wdy/hjdR/4/6qSDM8YHB424a8R48EH1mZAN6n7021ta7s58Xl7+XM7RBOABGn+5e+RH/81ZRsCuF701MTNo67to4NufBob2eULRkGdffl8opArPLzTw07cD0XcjU9K+k6MB1RW6KGlaRGZWkYJLZQAAsDFCqFtll7LeE7wHAOQABwxRirdzwEI2RTSZJJJcOcE74ndHJ113XxoWmm4IDQt6npX1Q8YPZVk/BPnH+qtpAGHQ0lh97ORtE+n3pet0d/x00yik0bCiWJ5ekCcOaUuePFM5vvvFHvPZy9KKEDIVZfMPJwdtPoiEOvM6qaQoErUztzOEFJ10dYYiByNwmhuZpSkPW1HYjwQKLvtYZm7/uT227Wj1GWpQ8uRUc0JWfcZy8xnMSmhuOJTAzjBXR7RWRWSa2QmH1l/xPxd6Pux86LmQ8WsBvFbRJT7i2F0oQLy5FnHqu4AXo/J5TQuql4IgCU0cRyt5nqTp+eV/PJVFvLXVjjP+QS7pwCiNxiQJHfg0OaXlm+/upanXYMpQqDOl8aOkr1gFRr/3JFCg/M+fKlm50r0JtswEXta4XO7j/CM8Drxk1Bsz+2G9u9gwNQUUNPmmpeBL0vDFv+N67mnYICUDXv/cgDsIc7cfLM4KpvK4H33ZRe0z2Jnx61+U1m2rifWQMydPBXLTu5fJ4/o82u9VDebsfoUTuF1j9RiwO/A2N0h0OW6BlJG5OZHl2f1wPUADt6W3lImCr+kk2mwxrto7MMoKjbt5+qA8J4PlZP32wKCvJ1RM41evK9MwYylPL/V1s2qsqoLo6AKVddSAhwxl69FH3+rEhdXxlVptZXz1UwMeMpStnz5uh4lG+45WBLaMBl5vCay4Ph+O9meaLYSdM59OaHYeSmBnmqsiWqsjMrjLauC87xLgjne3HyzJDPbkccr7btVxdzvJ28uhPdrX/ouKxfUN/sWZxbpFJxbVRtfd6l6UXzfiJHf++efHknM210meWSrzEmAguUZP4sxwf+HOcLy5D7jivnUecGEXZXn67wl6hn9N0fq+ufMNQ6/szjdO1Jmf76QZ+i5eaHvSYF58jyFo4ToISo1tLA891jV+M/kptmSU0klhX1mcExOGb0k7jSO/UuqzeE2nvl+2MN8NYABnIqB+sP9TIRMGesc3Kfy7JPnR1DyT5zVuC9eb5EFK5mWT/L3Igd70bLmHB8l/SBcRzT7k9x49+Cuj78l1B5YWScJNt1J/I/54tt9/aL0LxECwzLrhgQ+/7+B3MnK9h4eXN1ke7E8lkwPJWSSOL9cj3JuHkiiaymwvyQ42pYj2AK1oBHWRmN/8Jzgi4rfUW6ZwSdHSA+tOGn2/Cqa/53eIHRGtG/IneXjIs+negWQvf1I2L5nkQfLmtnCvmTw/7Rzy33/0p+MPaJQi9g5JtlelhkJCed7hHlxfDimLHEgmU/2D5WRvLw+PevJ3soN9fJ8HG6wyGIoB/6/4z9cD9kxNb2nTp1FFGpcuilBAA5007DHj6k9PsU4u+JqDvzUjGM99vv/K00V4DVMlFqiw6rYcBCfVHGkJ5FKHabP4YsI59Cxmt6e2DDPRQXgH6fsGB7c0jm1FJlvDfuYD57+fAYPOA5ZvK3yA6QDuj2AEICY8L8/bWp8l9//SgQFMLbxcuXVRlqmCfqZePuU1TA3kHmmpSWq9XQUVSizUYTBg/LqrdAbnA5s79VFy+vuvekiXvPtWe4x+3lu7InSjkCmNsP0eve/30D9Cw22rK91emjQ3NOSrwnjeG4o3eCDRUTu4Z9g+Nk6Mna+y3oeJ7qpPLPYfUSo0N4maV3a5IR5gU7XK0w/DbEbqttS1kRyOzaVuo64JFWwmX6h50iKfuLTCF1V9vrsQ6HERCxmxj0D/JWRbu3yd9kfUvvqY/8PBgd1nORNhE5y/tv8rJm5ODN/0/2toIpxc5YHwsz/s+Uzu8KPBs9gYu5d5mtnLHpsiUE8mlemJqp/NSApkRR8b8CUzzgaBUZg5BAD5Dfn5neENC2FUp/O5rLBi8rmfI6Jz3KfpI938CHYr+UkGrTxOFs9TE+RBAl/JDA/j7bixHdg0iP2MFHOtIyOzc+vleYVUmAFfocqz6reG5x1jXo0yESJ8gBEj7EEHcfIWfusor9ABfH+/+wXrLOuLu66+O4zd38vgv5s59qSpD3EaDBnHrhrw5HteEhMpuwn0nXCiC9q7kP5zSvtyw8+1yYQ6eE49PFTUfagE+Tm7fDGrQVIv6ZQ44TMJZCvFs8vDSg4nW8leXRQrcE+G7q+ah902JUx8+YFl7Bev+3xSdvRLjy/85pTRftkxdD0+qyy8IqJ5YY16XgxmxUsaSyPywnKyNewFntuvL8mLzQ4s7Fgulf3l+ZDeNvP2XaRYyQk2TfHqIp/XV2UP0UpWvaRB4pR0gjPAtDzZUJ+inj0XzELyiqNWDoiy3Q8ymldkND9wz8zmvhk/p/4HiJ4z9WXGwnTpJuCLrHr00q9dK5r3/R8hqdlf7NmSkdjKMAjThVahZWisi0Shgf0je0fQTj2+44urtcDToz2eBkUXuq5iHdqlQJ8efXIxr+tf479dCqDG5acXV2H3ErO49jVnaPXofbEZuV9C4rydYRVbHsw3qouSVqp6VBukb77zHxzICdupq3Q02WdvO15euhq0NR/5tnmlZexZ8Fd/wmQKxSO4jOYlZoRmcRLDKF4IWRfLyvXuOedFLUH/74he+cArqXA58R3LBv7bXdD6rnhtYdvBiawPGO+iAKW3FLSdupl9R/cDWe0RTlaTKbCH3kPoofbgVAS5o3g/tb1Gd0e0Yw6NRP9akKi8pXSnAxqIijRnfwXU4VxlDAHZLSaIfwDgPvulXw+4zq4UqvRj9zo2dE70vfL3OlM9+bjq9+n2urQwVV379O9Vjyerz3j5v+q74WQps3ZYThrwpzrK+n4uv+QIRBKXW6SwKccREPJ3uQSJ+P2771BjQEbuUt60l+b2oP/zT0XnXzGBoe96vpycJv/+dcyjoeihRzFf/06ennzp+W5oYMxfFPWxyDCBExMBau0tqVdgBhT+nZkZRo4dcxBTON6ugUkYtz/uDEj0qdoa42bu27rMzLcqtZN6wVbOFj3v68rY/kz1Z+PbnM3GuJq4ZAhoawooe6Kdv+ZFpsmNgiK5UZGtPPwiZA+lIF5Nc8Ng8zZ4luuGt4GttOdcN23bFtjNnYW3bIEZoO7jmG3pp05GZmVFKsrqy5NuZK8uPR2eTk7BnvlnX/tVO2j/p3J3RsSatenb+bqO+Hk+vp98ld/X3X9/M0uwloq4UrW6NK6ipVldHlNsi81rN5I6QCU/bU0+q+SKSr4opeUkoi4tY+VxlK3vNpXFVoRpAGGrfWii2ndYHbimAuM76TBNRWncGt22mkaZcXH64uY1QJtfflmI/Agi53acDm/x21d6kmQkPZLJHhlJpJOlGz1awk93zI30ivjK1JMvkesqkE2P+4pdpPn8ImHJl3rNJzr1Q2Ex30JqeRVa/dCzQieXgBWSZl9PoE4HVxna//qEg9TTR2Do5XG+m/0FtDT4Fisq4stZyTPmmGNsvPI0EOnX9PWuibYCBUNztfFnv2gbUDDiLnfxt3vDX303dRUGrF18x8c8L+39Xguv4Vn7bhes9qgDVw90/p5defkCWP1J8YNd7P+egpdRZDSa6uWK1a5dSF35G2utTTYol2tif1u4SXtg5twDkzI1zOZX6JdDKaKm+hUE/L/Ns8AXUpdPkDeHLiNsWVMXi/jiug9yQUbGkqAt1G61qbAmI787fBP1/4mMssh+ox5A98np1OUmac/lt9bvnOvL8FNlXH264Yp2k983VWlH5LdX3VNkxz76R7z0xWephfcqruekcLMCywU1qk2VZIZZUkX68bB4cuW3nXbm6XwwtBEwDAz465MAgiR+wvYcTw+ve/4PfCCJiE8v/Mnngf99n1kxexV/7q7PgfBbZol4LqUwcnRJyDzHEhB/Qu/xak17x03/Ak7+uVxOHvtemq6/571+tD8l7XWu0JYncvfxFwQsaGprHl7AaxMUFAiqf9NT6lj0IF8SwZ4qjPymOSTPsQQkXNZ7vOq0d9z0K/DPP5fHyWU/0+n6A1hoV1e0+4akE376T0Dtw8frGa1FZ3dV6KekVLX4Qk2qiTKKGriGW9trm0Cjdju4+87RfVCvuD9UlL+s60Oll7ZECp74DxP6/V0+QeHemcdIfOlFI4MeoDILgbuHDDx6uOEFqgcCgmlWOGwmL6naIl/ofsQBRoBz5ZlKERyswiSkBBUq5gCDmvgIFGk5NQLGwBFkB4w1Lce32OMjPRzJfDxyRyC8fVSx5Vhf9baYxB3eORaMgSE/pYmeAEoiO4TVGo/6fmBQlHAcdMYHgc5JH66NjWYliAiwb0wjj5bkKDFiAWJEBazEkyYOBz3UTgJQL6GhBAUENuoJb+nzRf0KAQNXmHnD4v5rQYCxiEgN3dIHdqAdxAAHpDasidu9yfzKh6V5JmnT0ojLgEg8wgEdR3tBkeArunz+kkMIm3svAl8ASB4yfPR+ANwAXM8GD7pxPxAq7YeAN8jfTwKeoNnwGA2uMcgweHA/BdDAqEGFwSf7fUAElJFPA37Q28BD7CF7x4MB6O2HABsk7icBOigzPHDQYZBhcON+CuCCowYVBr/e7wNsYHY9GgiGFgI9cIA6UAUWbgfWAjGoBovfZROoAQtAG6iHcQPAm0fMVMRgzQHQCarGwUin0OpVXRZp2R2AQlAHGsAi0AKq8ov6Hssn4OGELKI2UIdGh8LR8WKgAkoQDQAG80OkUkZ7lk28LYBF02t0fDXSAGJAGPV1tB44ZqM1CeMDiNaBFm0sOPB2Y6MZjJrRAygBwKgv7uhsiFm4sJ6dGT8YCBGW1e9uGQOgMfipdhAPonSr+oC5UmCpVUUbFvWukQ12AWzqMnxG7qDADf4ZuQgYTkRMQkpGTkFJhSo16ljY/Pjj4EKgAgTi4RMQEhGTkJIJIhcsRKgw4SIoRFKKEk0lhppGrDhaGFy8BImSJEuRCoZAYXAEEoXGYHF4ApFEplBpdAazCsDmcHl8gVAklkhlcoVSpdZodXqD0WS2WG12h9Pl9nh5+/j6AUAQGAKFwRFIFBqDxeEJRBKZQqXRGUwWu+cAh8vjC4QisUQanY1coVSpNVqd3mA0mS1Wm93hTOqc2+P1+YEQjKAYTpAUzbA8vkAoEks4qUyuUKrUGq1ObzCazBarze5wutwer89PGRdSaWPZjuv5T8XGszqYYJelkMBMOW1N1QQFFNcyNLxBIdVlQITb6LhvWQTHNZX/dl43N1ZqqUy5xjfrVqb25VEEXNN0Y2vFEbdwuUwhfBk6t0lpXrdmP5EseHShifh6jHJfeSek/6U+EbBgzj044QjEm0CVZhceYZepMNwkJjmX9Tu23AiDDkgGB+6urMEAMqw6oms4Wgmgb1JLNjy1DCgvA4hfBrTC5t/3+jjUzY2C8MKDlqnasm5gnCFdY+5la49t35gP6I8CAXbeu+SxxnW0TIL0XlIRjLuT+sVFGoNEHQydCToOzwr83PLvZcKYiVrvEJKZpnZs7ndY+ZUXwgkbcOKeyPfL6AYfwVTNHMmPOR9hgIrYUdneMaXiV1FshBAyw6VJYMAiRRfWYiu4K1jXktlJGO0FXXZT/m0oHTE+O516CB98UCpy1YBR/n4qx7ByF04C+UcIFrEyqxjNd2kMORcqiTACwX3TyDF5UjgHRMkg61q2HEDfEbwWDLnRZXwY2HZ/h+FYhn4488WtuEdIiRUOtzFsAxE2k+SmISUGxoDJmAFXs2CgY4ME2kLKY+UK63lGB9gT2DBt8O7e//IY35IJsTLTOAlmMhZyBgLjYY7lJy/d7K4wkKy0RL4lzwxcMjrAHnS+AFjGnBHcMSALyvChbM2CyaKbEgMUDG5iYUL2ZM7MzlD0EYBhZ1LYIctfBpDI0Gc1JGH/UQ1C58xID8AyNi0Lo6wcAzeOhMocsiPpAtxgu6z620C4vOeifjyJFwdzKzPgU2ZQMIRoZiuxo8xGGmKWJLzKqIPno8HwKCE4GqMtBdDAoWdbjqkvIM1BV03C0uhcmIYGGqj8ZYACzbi+xSdBiJsx3+jexq+jyukcZY1Rjckfc9gLJ15QVYhpkyCeeeRuXlCsUI5n9WdKE5BoplmJo77JKoeO01l1w0Bq8r5wT+9salZosLKG4AGzZCSffegO6F/iM8IaXWvybTMCNNDKg4LAvQyVR5eCSaBNgooW5quWY2kwxQirMj2ZOyNkNHMk1KoAnDVKUKmoOQlkHokjWZABIDWjQ0wZx1pebPJyBxOu20pQpqFHa37EnWYAq80I5FqRxE5Q6yUGcNYsHBY8aGJO9OGxYNbpRtcT0rYCNIewdAJMFhMicdLK8EiNrfna5OVGktnON67OuYG0nvZkP15OlG05P1BAe25nWUvIjNpp5aBvFSjNgVtQHqxu7kGLZZvxJWLZfY21NtZ+5MttqFb4uqmhYB7tiBwwYl+3CVsK0rSqJspDqsPldaFqTri8/rNZGyFvLMmW0ql8yDwIq91fEjqAaRwrDQKCYyxoY3foM0aMlEJwjzrwoMuRjBsWFqjFVX5t5Tu1aQAAAAA=) format("woff2"),url(//at.alicdn.com/t/c/font_2553510_kfwma2yq1rs.woff?t=1694918397022) format("woff")}.van-icon__image{display:block;width:1em;height:1em;object-fit:contain}.van-tabbar-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#646566;font-size:12px;line-height:1;cursor:pointer}.van-tabbar-item__icon{position:relative;margin-bottom:4px;font-size:22px}.van-tabbar-item__icon .van-icon{display:block}.van-tabbar-item__icon img{display:block;height:20px}.van-tabbar-item--active{color:#1989fa;background-color:#fff}.van-tabbar-item .van-info{margin-top:4px}.van-step{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#969799;font-size:14px}.van-step__circle{display:block;width:5px;height:5px;background-color:#969799;border-radius:50%}.van-step__line{position:absolute;background-color:#ebedf0;-webkit-transition:background-color .3s;transition:background-color .3s}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;-webkit-transform:none;transform:none}.van-step--horizontal:last-child{position:absolute;right:1px;width:auto}.van-step--horizontal:last-child .van-step__title{margin-left:0;-webkit-transform:none;transform:none}.van-step--horizontal:last-child .van-step__circle-container{right:-9px;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:30px;left:-8px;z-index:1;padding:0 8px;background-color:#fff;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:3px;font-size:12px;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media (max-width:321px){.van-step--horizontal .van-step__title{font-size:11px}}.van-step--horizontal .van-step__line{top:30px;left:0;width:100%;height:1px}.van-step--horizontal .van-step__icon{display:block;font-size:12px}.van-step--horizontal .van-step--process{color:#323233}.van-step--vertical{display:block;float:none;padding:10px 10px 10px 0;line-height:18px}.van-step--vertical:not(:last-child):after{border-bottom-width:1px}.van-step--vertical .van-step__circle-container{position:absolute;top:19px;left:-15px;z-index:1;font-size:12px;line-height:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:16px;left:-15px;width:1px;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:#323233}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:#07c160}.van-step__icon,.van-step__title{-webkit-transition:color .3s;transition:color .3s}.van-step__icon--active,.van-step__icon--finish,.van-step__title--active,.van-step__title--finish{color:#07c160}.van-rate{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;cursor:pointer;-webkit-user-select:none;user-select:none}.van-rate__item{position:relative}.van-rate__item:not(:last-child){padding-right:4px}.van-rate__icon{display:block;width:1em;color:#c8c9cc;font-size:20px}.van-rate__icon--half{position:absolute;top:0;left:0;width:.5em;overflow:hidden}.van-rate__icon--full{color:#ee0a24}.van-rate__icon--disabled{color:#c8c9cc}.van-rate--disabled{cursor:not-allowed}.van-rate--readonly{cursor:default}.van-notice-bar{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:40px;padding:0 16px;color:#ed6a0c;font-size:14px;line-height:24px;background-color:#fffbe8}.van-notice-bar__left-icon,.van-notice-bar__right-icon{min-width:24px;font-size:16px}.van-notice-bar__right-icon{text-align:right;cursor:pointer}.van-notice-bar__wrap{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:100%;overflow:hidden}.van-notice-bar__content{position:absolute;white-space:nowrap;-webkit-transition-timing-function:linear;transition-timing-function:linear}.van-notice-bar__content.van-ellipsis{max-width:100%}.van-notice-bar--wrapable{height:auto;padding:8px 16px}.van-notice-bar--wrapable .van-notice-bar__wrap{height:auto}.van-notice-bar--wrapable .van-notice-bar__content{position:relative;white-space:normal;word-wrap:break-word}.van-nav-bar{position:relative;z-index:1;line-height:22px;text-align:center;background-color:#fff;-webkit-user-select:none;user-select:none}.van-nav-bar--fixed{position:fixed;top:0;left:0;width:100%}.van-nav-bar--safe-area-inset-top{padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.van-nav-bar .van-icon{color:#1989fa}.van-nav-bar__content{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:46px}.van-nav-bar__arrow{margin-right:4px;font-size:16px}.van-nav-bar__title{max-width:60%;margin:0 auto;color:#323233;font-weight:500;font-size:16px}.van-nav-bar__left,.van-nav-bar__right{position:absolute;top:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 16px;font-size:14px;cursor:pointer}.van-nav-bar__left:active,.van-nav-bar__right:active{opacity:.7}.van-nav-bar__left{left:0}.van-nav-bar__right{right:0}.van-nav-bar__text{color:#1989fa}.van-grid-item{position:relative;box-sizing:border-box}.van-grid-item--square{height:0}.van-grid-item__icon{font-size:28px}.van-grid-item__icon-wrapper{position:relative}.van-grid-item__text{color:#646566;font-size:12px;line-height:1.5;word-break:break-all}.van-grid-item__icon+.van-grid-item__text{margin-top:8px}.van-grid-item__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;box-sizing:border-box;height:100%;padding:16px 8px;background-color:#fff}.van-grid-item__content:after{z-index:1;border-width:0 1px 1px 0}.van-grid-item__content--square{position:absolute;top:0;right:0;left:0}.van-grid-item__content--center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-grid-item__content--horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.van-grid-item__content--horizontal .van-grid-item__icon+.van-grid-item__text{margin-top:0;margin-left:8px}.van-grid-item__content--surround:after{border-width:1px}.van-grid-item__content--clickable{cursor:pointer}.van-grid-item__content--clickable:active{background-color:#f2f3f5}.van-goods-action-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:48px;height:100%;color:#646566;font-size:10px;line-height:1;text-align:center;background-color:#fff;cursor:pointer}.van-goods-action-icon:active{background-color:#f2f3f5}.van-goods-action-icon__icon{position:relative;width:1em;margin:0 auto 5px;color:#323233;font-size:18px}.van-checkbox{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-checkbox--disabled{cursor:not-allowed}.van-checkbox--label-disabled{cursor:default}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:1em;font-size:20px;line-height:1em;cursor:pointer}.van-checkbox__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid #c8c9cc;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.van-checkbox__icon--round .van-icon{border-radius:100%}.van-checkbox__icon--checked .van-icon{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-checkbox__icon--disabled{cursor:not-allowed}.van-checkbox__icon--disabled .van-icon{background-color:#ebedf0;border-color:#c8c9cc}.van-checkbox__icon--disabled.van-checkbox__icon--checked .van-icon{color:#c8c9cc}.van-checkbox__label{margin-left:8px;color:#323233;line-height:20px}.van-checkbox__label--left{margin:0 8px 0 0}.van-checkbox__label--disabled{color:#c8c9cc}.van-coupon{margin:0 12px 12px;overflow:hidden;background-color:#fff;border-radius:8px;box-shadow:0 0 4px rgba(0,0,0,.1)}.van-coupon:active{background-color:#f2f3f5}.van-coupon__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;min-height:84px;padding:14px 0;color:#323233}.van-coupon__head{position:relative;min-width:96px;padding:0 8px;color:#ee0a24;text-align:center}.van-coupon__amount,.van-coupon__condition,.van-coupon__name,.van-coupon__valid{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-coupon__amount{margin-bottom:6px;font-weight:500;font-size:30px}.van-coupon__amount span{font-weight:400;font-size:40%}.van-coupon__amount span:not(:empty){margin-left:2px}.van-coupon__condition{font-size:12px;line-height:16px;white-space:pre-wrap}.van-coupon__body{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;border-radius:0 8px 8px 0}.van-coupon__name{margin-bottom:10px;font-weight:700;font-size:14px;line-height:20px}.van-coupon__valid{font-size:12px}.van-coupon__corner{position:absolute;top:0;right:16px;bottom:0}.van-coupon__description{padding:8px 16px;font-size:12px;border-top:1px dashed #ebedf0}.van-coupon--disabled:active{background-color:#fff}.van-coupon--disabled .van-coupon-item__content{height:74px}.van-coupon--disabled .van-coupon__head{color:inherit}.van-image{position:relative;display:inline-block}.van-image--round{overflow:hidden;border-radius:50%}.van-image--round img{border-radius:inherit}.van-image__error,.van-image__img,.van-image__loading{display:block;width:100%;height:100%}.van-image__error,.van-image__loading{position:absolute;top:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#969799;font-size:14px;background-color:#f7f8fa}.van-image__error-icon,.van-image__loading-icon{color:#dcdee0;font-size:32px}.van-radio{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-radio--disabled{cursor:not-allowed}.van-radio--label-disabled{cursor:default}.van-radio--horizontal{margin-right:12px}.van-radio__icon{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:1em;font-size:20px;line-height:1em;cursor:pointer}.van-radio__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid #c8c9cc;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.van-radio__icon--round .van-icon{border-radius:100%}.van-radio__icon--checked .van-icon{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-radio__icon--disabled{cursor:not-allowed}.van-radio__icon--disabled .van-icon{background-color:#ebedf0;border-color:#c8c9cc}.van-radio__icon--disabled.van-radio__icon--checked .van-icon{color:#c8c9cc}.van-radio__label{margin-left:8px;color:#323233;line-height:20px}.van-radio__label--left{margin:0 8px 0 0}.van-radio__label--disabled{color:#c8c9cc}.van-tag{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 4px;color:#fff;font-size:12px;line-height:16px;border-radius:2px}.van-tag--default{background-color:#969799}.van-tag--default.van-tag--plain{color:#969799}.van-tag--danger{background-color:#ee0a24}.van-tag--danger.van-tag--plain{color:#ee0a24}.van-tag--primary{background-color:#1989fa}.van-tag--primary.van-tag--plain{color:#1989fa}.van-tag--success{background-color:#07c160}.van-tag--success.van-tag--plain{color:#07c160}.van-tag--warning{background-color:#ff976a}.van-tag--warning.van-tag--plain{color:#ff976a}.van-tag--plain{background-color:#fff;border-color:currentColor}.van-tag--plain:before{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid;border-color:inherit;border-radius:inherit;content:"";pointer-events:none}.van-tag--medium{padding:2px 6px}.van-tag--large{padding:4px 8px;font-size:14px;border-radius:4px}.van-tag--mark{border-radius:0 999px 999px 0}.van-tag--mark:after{display:block;width:2px;content:""}.van-tag--round{border-radius:999px}.van-tag__close{margin-left:2px;cursor:pointer}.van-card{position:relative;box-sizing:border-box;padding:8px 16px;color:#323233;font-size:12px;background-color:#fafafa}.van-card:not(:first-child){margin-top:8px}.van-card__header{display:-webkit-box;display:-webkit-flex;display:flex}.van-card__thumb{position:relative;-webkit-box-flex:0;-webkit-flex:none;flex:none;width:88px;height:88px;margin-right:8px}.van-card__thumb img{border-radius:8px}.van-card__content{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;min-width:0;min-height:88px}.van-card__content--centered{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{max-height:32px;font-weight:500;line-height:16px}.van-card__desc{max-height:20px;color:#646566}.van-card__bottom,.van-card__desc{line-height:20px}.van-card__price{display:inline-block;color:#323233;font-weight:500;font-size:12px}.van-card__price-integer{font-size:16px}.van-card__price-decimal,.van-card__price-integer{font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-card__origin-price{display:inline-block;margin-left:5px;color:#969799;font-size:10px;text-decoration:line-through}.van-card__num{float:right;color:#969799}.van-card__tag{position:absolute;top:2px;left:0}.van-card__footer{-webkit-box-flex:0;-webkit-flex:none;flex:none;text-align:right}.van-card__footer .van-button{margin-left:5px}.van-cell{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;width:100%;padding:10px 16px;overflow:hidden;color:#323233;font-size:14px;line-height:24px;background-color:#fff}.van-cell:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:16px;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-cell--borderless:after,.van-cell:last-child:after{display:none}.van-cell__label{margin-top:4px;color:#969799;font-size:12px;line-height:18px}.van-cell__title,.van-cell__value{-webkit-box-flex:1;-webkit-flex:1;flex:1}.van-cell__value{position:relative;overflow:hidden;color:#969799;text-align:right;vertical-align:middle;word-wrap:break-word}.van-cell__value--alone{color:#323233;text-align:left}.van-cell__left-icon,.van-cell__right-icon{height:24px;font-size:16px;line-height:24px}.van-cell__left-icon{margin-right:4px}.van-cell__right-icon{margin-left:4px;color:#969799}.van-cell--clickable{cursor:pointer}.van-cell--clickable:active{background-color:#f2f3f5}.van-cell--required{overflow:visible}.van-cell--required:before{position:absolute;left:8px;color:#ee0a24;font-size:14px;content:"*"}.van-cell--center{-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-cell--large{padding-top:12px;padding-bottom:12px}.van-cell--large .van-cell__title{font-size:16px}.van-cell--large .van-cell__label{font-size:14px}.van-coupon-cell__value--selected{color:#323233}.van-contact-card{padding:16px}.van-contact-card__value{margin-left:5px;line-height:20px}.van-contact-card--add .van-contact-card__value{line-height:40px}.van-contact-card--add .van-cell__left-icon{color:#1989fa;font-size:40px}.van-contact-card:before{position:absolute;right:0;bottom:0;left:0;height:2px;background:-webkit-repeating-linear-gradient(135deg,#ff6c6c,#ff6c6c 20%,transparent 0,transparent 25%,#1989fa 0,#1989fa 45%,transparent 0,transparent 50%);background:repeating-linear-gradient(-45deg,#ff6c6c,#ff6c6c 20%,transparent 0,transparent 25%,#1989fa 0,#1989fa 45%,transparent 0,transparent 50%);background-size:80px;content:""}.van-collapse-item{position:relative}.van-collapse-item--border:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:0;right:16px;left:16px;border-top:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-collapse-item__title .van-cell__right-icon:before{-webkit-transform:rotate(90deg) translateZ(0);transform:rotate(90deg) translateZ(0);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.van-collapse-item__title:after{right:16px;display:none}.van-collapse-item__title--expanded .van-cell__right-icon:before{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.van-collapse-item__title--expanded:after{display:block}.van-collapse-item__title--borderless:after{display:none}.van-collapse-item__title--disabled{cursor:not-allowed}.van-collapse-item__title--disabled,.van-collapse-item__title--disabled .van-cell__right-icon{color:#c8c9cc}.van-collapse-item__title--disabled:active{background-color:#fff}.van-collapse-item__wrapper{overflow:hidden;-webkit-transition:height .3s ease-in-out;transition:height .3s ease-in-out;will-change:height}.van-collapse-item__content{padding:12px 16px;color:#969799;font-size:14px;line-height:1.5;background-color:#fff}.van-field__label{-webkit-box-flex:0;-webkit-flex:none;flex:none;box-sizing:border-box;width:6.2em;margin-right:12px;color:#646566;text-align:left;word-wrap:break-word}.van-field__label--center{text-align:center}.van-field__label--right{text-align:right}.van-field--disabled .van-field__label{color:#c8c9cc}.van-field__value{overflow:visible}.van-field__body{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-field__control{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:#323233;line-height:inherit;text-align:left;background-color:transparent;border:0;resize:none}.van-field__control::-webkit-input-placeholder{color:#c8c9cc}.van-field__control::placeholder{color:#c8c9cc}.van-field__control:disabled{color:#c8c9cc;cursor:not-allowed;opacity:1;-webkit-text-fill-color:#c8c9cc}.van-field__control:read-only{cursor:default}.van-field__control--center{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center}.van-field__control--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;text-align:right}.van-field__control--custom{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;min-height:24px}.van-field__control[type=date],.van-field__control[type=datetime-local],.van-field__control[type=time]{min-height:24px}.van-field__control[type=search]{-webkit-appearance:none}.van-field__button,.van-field__clear,.van-field__icon,.van-field__right-icon{-webkit-flex-shrink:0;flex-shrink:0}.van-field__clear,.van-field__right-icon{margin-right:-8px;padding:0 8px;line-height:inherit}.van-field__clear{color:#c8c9cc;font-size:16px;cursor:pointer}.van-field__left-icon .van-icon,.van-field__right-icon .van-icon{display:block;font-size:16px;line-height:inherit}.van-field__left-icon{margin-right:4px}.van-field__right-icon{color:#969799}.van-field__button{padding-left:8px}.van-field__error-message{color:#ee0a24;font-size:12px;text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{margin-top:4px;color:#646566;font-size:12px;line-height:16px;text-align:right}.van-field--error .van-field__control::-webkit-input-placeholder{color:#ee0a24;-webkit-text-fill-color:currentColor}.van-field--error .van-field__control,.van-field--error .van-field__control::placeholder{color:#ee0a24;-webkit-text-fill-color:currentColor}.van-field--min-height .van-field__control{min-height:60px}.van-search{-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;padding:10px 12px;background-color:#fff}.van-search,.van-search__content{display:-webkit-box;display:-webkit-flex;display:flex}.van-search__content{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-left:12px;background-color:#f7f8fa;border-radius:2px}.van-search__content--round{border-radius:999px}.van-search__label{padding:0 5px;color:#323233;font-size:14px;line-height:34px}.van-search .van-cell{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:5px 8px 5px 0;background-color:transparent}.van-search .van-cell .van-field__left-icon{color:#969799}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:0 8px;color:#323233;font-size:14px;line-height:34px;cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:#f2f3f5}.van-overflow-hidden{overflow:hidden!important}.van-popup{position:fixed;max-height:100%;overflow-y:auto;background-color:#fff;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-overflow-scrolling:touch}.van-popup--center{top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.van-popup--center.van-popup--round{border-radius:16px}.van-popup--top{top:0;left:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 16px 16px}.van-popup--right{top:50%;right:0;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:16px 0 0 16px}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:16px 16px 0 0}.van-popup--left{top:50%;left:0;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 16px 16px 0}.van-popup--safe-area-inset-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-popup-slide-bottom-enter-active,.van-popup-slide-left-enter-active,.van-popup-slide-right-enter-active,.van-popup-slide-top-enter-active{-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.van-popup-slide-bottom-leave-active,.van-popup-slide-left-leave-active,.van-popup-slide-right-leave-active,.van-popup-slide-top-leave-active{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}.van-popup-slide-top-enter,.van-popup-slide-top-leave-active{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.van-popup-slide-right-enter,.van-popup-slide-right-leave-active{-webkit-transform:translate3d(100%,-50%,0);transform:translate3d(100%,-50%,0)}.van-popup-slide-bottom-enter,.van-popup-slide-bottom-leave-active{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.van-popup-slide-left-enter,.van-popup-slide-left-leave-active{-webkit-transform:translate3d(-100%,-50%,0);transform:translate3d(-100%,-50%,0)}.van-popup__close-icon{position:absolute;z-index:1;color:#c8c9cc;font-size:22px;cursor:pointer}.van-popup__close-icon:active{color:#969799}.van-popup__close-icon--top-left{top:16px;left:16px}.van-popup__close-icon--top-right{top:16px;right:16px}.van-popup__close-icon--bottom-left{bottom:16px;left:16px}.van-popup__close-icon--bottom-right{right:16px;bottom:16px}.van-share-sheet__header{padding:12px 16px 4px;text-align:center}.van-share-sheet__title{margin-top:8px;color:#323233;font-weight:400;font-size:14px;line-height:20px}.van-share-sheet__description{display:block;margin-top:8px;color:#969799;font-size:12px;line-height:16px}.van-share-sheet__options{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;padding:16px 0 16px 8px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.van-share-sheet__options--border:before{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:0;right:0;left:16px;border-top:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-share-sheet__options::-webkit-scrollbar{height:0}.van-share-sheet__option{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.van-share-sheet__option:active{opacity:.7}.van-share-sheet__icon{width:48px;height:48px;margin:0 16px}.van-share-sheet__name{margin-top:8px;padding:0 4px;color:#646566;font-size:12px}.van-share-sheet__option-description{padding:0 4px;color:#c8c9cc;font-size:12px}.van-share-sheet__cancel{display:block;width:100%;padding:0;font-size:16px;line-height:48px;text-align:center;background:#fff;border:none;cursor:pointer}.van-share-sheet__cancel:before{display:block;height:8px;background-color:#f7f8fa;content:" "}.van-share-sheet__cancel:active{background-color:#f2f3f5}.van-popover{position:absolute;overflow:visible;background-color:transparent;-webkit-transition:opacity .15s,-webkit-transform .15s;transition:opacity .15s,-webkit-transform .15s;transition:opacity .15s,transform .15s;transition:opacity .15s,transform .15s,-webkit-transform .15s}.van-popover__wrapper{display:inline-block}.van-popover__arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;border-width:6px}.van-popover__content{overflow:hidden;border-radius:8px}.van-popover__action{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;width:128px;height:44px;padding:0 16px;font-size:14px;line-height:20px;cursor:pointer}.van-popover__action:last-child .van-popover__action-text:after{display:none}.van-popover__action-text{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%}.van-popover__action-icon{margin-right:8px;font-size:20px}.van-popover__action--with-icon .van-popover__action-text{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.van-popover[data-popper-placement^=top] .van-popover__arrow{bottom:0;border-top-color:currentColor;border-bottom-width:0;-webkit-transform:translate(-50%,100%);transform:translate(-50%,100%)}.van-popover[data-popper-placement=top]{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.van-popover[data-popper-placement=top] .van-popover__arrow{left:50%}.van-popover[data-popper-placement=top-start]{-webkit-transform-origin:0 100%;transform-origin:0 100%}.van-popover[data-popper-placement=top-start] .van-popover__arrow{left:16px}.van-popover[data-popper-placement=top-end]{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.van-popover[data-popper-placement=top-end] .van-popover__arrow{right:16px}.van-popover[data-popper-placement^=left] .van-popover__arrow{right:0;border-right-width:0;border-left-color:currentColor;-webkit-transform:translate(100%,-50%);transform:translate(100%,-50%)}.van-popover[data-popper-placement=left]{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.van-popover[data-popper-placement=left] .van-popover__arrow{top:50%}.van-popover[data-popper-placement=left-start]{-webkit-transform-origin:100% 0;transform-origin:100% 0}.van-popover[data-popper-placement=left-start] .van-popover__arrow{top:16px}.van-popover[data-popper-placement=left-end]{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.van-popover[data-popper-placement=left-end] .van-popover__arrow{bottom:16px}.van-popover[data-popper-placement^=right] .van-popover__arrow{left:0;border-right-color:currentColor;border-left-width:0;-webkit-transform:translate(-100%,-50%);transform:translate(-100%,-50%)}.van-popover[data-popper-placement=right]{-webkit-transform-origin:0 50%;transform-origin:0 50%}.van-popover[data-popper-placement=right] .van-popover__arrow{top:50%}.van-popover[data-popper-placement=right-start]{-webkit-transform-origin:0 0;transform-origin:0 0}.van-popover[data-popper-placement=right-start] .van-popover__arrow{top:16px}.van-popover[data-popper-placement=right-end]{-webkit-transform-origin:0 100%;transform-origin:0 100%}.van-popover[data-popper-placement=right-end] .van-popover__arrow{bottom:16px}.van-popover[data-popper-placement^=bottom] .van-popover__arrow{top:0;border-top-width:0;border-bottom-color:currentColor;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.van-popover[data-popper-placement=bottom]{-webkit-transform-origin:50% 0;transform-origin:50% 0}.van-popover[data-popper-placement=bottom] .van-popover__arrow{left:50%}.van-popover[data-popper-placement=bottom-start]{-webkit-transform-origin:0 0;transform-origin:0 0}.van-popover[data-popper-placement=bottom-start] .van-popover__arrow{left:16px}.van-popover[data-popper-placement=bottom-end]{-webkit-transform-origin:100% 0;transform-origin:100% 0}.van-popover[data-popper-placement=bottom-end] .van-popover__arrow{right:16px}.van-popover--light{color:#323233}.van-popover--light .van-popover__content{background-color:#fff;box-shadow:0 2px 12px rgba(50,50,51,.12)}.van-popover--light .van-popover__arrow{color:#fff}.van-popover--light .van-popover__action:active{background-color:#f2f3f5}.van-popover--light .van-popover__action--disabled{color:#c8c9cc;cursor:not-allowed}.van-popover--light .van-popover__action--disabled:active{background-color:transparent}.van-popover--dark{color:#fff}.van-popover--dark .van-popover__content{background-color:#4a4a4a}.van-popover--dark .van-popover__arrow{color:#4a4a4a}.van-popover--dark .van-popover__action:active{background-color:rgba(0,0,0,.2)}.van-popover--dark .van-popover__action--disabled{color:#969799}.van-popover--dark .van-popover__action--disabled:active{background-color:transparent}.van-popover--dark .van-popover__action-text:after{border-color:#646566}.van-popover-zoom-enter,.van-popover-zoom-leave-active{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}.van-popover-zoom-enter-active{-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.van-popover-zoom-leave-active{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}.van-notify{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:8px 16px;color:#fff;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word}.van-notify--primary{background-color:#1989fa}.van-notify--success{background-color:#07c160}.van-notify--danger{background-color:#ee0a24}.van-notify--warning{background-color:#ff976a}.van-dropdown-item{position:fixed;right:0;left:0;z-index:10;overflow:hidden}.van-dropdown-item__icon{display:block;line-height:inherit}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active,.van-dropdown-item__option--active .van-dropdown-item__icon{color:#ee0a24}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__content{position:absolute;max-height:80%}.van-loading{color:#c8c9cc;font-size:0}.van-loading,.van-loading__spinner{position:relative;vertical-align:middle}.van-loading__spinner{display:inline-block;width:30px;max-width:100%;height:30px;max-height:100%;-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--spinner i{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__spinner--spinner i:before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__spinner--circular{-webkit-animation-duration:2s;animation-duration:2s}.van-loading__circular{display:block;width:100%;height:100%}.van-loading__circular circle{-webkit-animation:van-circular 1.5s ease-in-out infinite;animation:van-circular 1.5s ease-in-out infinite;stroke:currentColor;stroke-width:3;stroke-linecap:round}.van-loading__text{display:inline-block;margin-left:8px;color:#969799;font-size:14px;vertical-align:middle}.van-loading--vertical{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-loading--vertical .van-loading__text{margin:8px 0 0}@-webkit-keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}to{stroke-dasharray:90,150;stroke-dashoffset:-120}}@keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}to{stroke-dasharray:90,150;stroke-dashoffset:-120}}.van-loading__spinner--spinner i:first-of-type{-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__spinner--spinner i:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__spinner--spinner i:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__spinner--spinner i:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__spinner--spinner i:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__spinner--spinner i:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__spinner--spinner i:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__spinner--spinner i:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__spinner--spinner i:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__spinner--spinner i:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__spinner--spinner i:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__spinner--spinner i:nth-of-type(12){-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:.3125}.van-pull-refresh{overflow:hidden;-webkit-user-select:none;user-select:none}.van-pull-refresh__track{position:relative;height:100%;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-pull-refresh__head{position:absolute;left:0;width:100%;height:50px;overflow:hidden;color:#969799;font-size:14px;line-height:50px;text-align:center;-webkit-transform:translateY(-100%);transform:translateY(-100%)}.van-number-keyboard{position:fixed;bottom:0;left:0;z-index:100;width:100%;padding-bottom:22px;background-color:#f2f3f5;-webkit-user-select:none;user-select:none}.van-number-keyboard--with-title{border-radius:20px 20px 0 0}.van-number-keyboard__header{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:content-box;height:34px;padding-top:6px;color:#646566;font-size:16px}.van-number-keyboard__title{display:inline-block;font-weight:400}.van-number-keyboard__title-left{position:absolute;left:0}.van-number-keyboard__body{display:-webkit-box;display:-webkit-flex;display:flex;padding:6px 0 0 6px}.van-number-keyboard__keys{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:3;-webkit-flex:3;flex:3;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-number-keyboard__close{position:absolute;right:0;height:100%;padding:0 16px;color:#576b95;font-size:14px;background-color:transparent;border:none;cursor:pointer}.van-number-keyboard__close:active{opacity:.7}.van-number-keyboard__sidebar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.van-number-keyboard--unfit{padding-bottom:0}.van-key{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:48px;font-size:28px;line-height:1.5;background-color:#fff;border-radius:8px;cursor:pointer}.van-key--large{position:absolute;top:0;right:6px;bottom:6px;left:0;height:auto}.van-key--blue,.van-key--delete{font-size:16px}.van-key--active{background-color:#ebedf0}.van-key--blue{color:#fff;background-color:#1989fa}.van-key--blue.van-key--active{background-color:#0570db}.van-key__wrapper{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-flex-basis:33%;flex-basis:33%;box-sizing:border-box;padding:0 6px 6px 0}.van-key__wrapper--wider{-webkit-flex-basis:66%;flex-basis:66%}.van-key__delete-icon{width:32px;height:22px}.van-key__collapse-icon{width:30px;height:24px}.van-key__loading-icon{color:#fff}.van-list__error-text,.van-list__finished-text,.van-list__loading{color:#969799;font-size:14px;line-height:50px;text-align:center}.van-list__placeholder{height:0;pointer-events:none}.van-switch{position:relative;display:inline-block;box-sizing:content-box;width:2em;font-size:30px;border:1px solid rgba(0,0,0,.1);border-radius:1em;cursor:pointer;-webkit-transition:background-color .3s;transition:background-color .3s}.van-switch,.van-switch__node{height:1em;background-color:#fff}.van-switch__node{position:absolute;top:0;left:0;width:1em;font-size:inherit;border-radius:100%;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05);-webkit-transition:-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:transform .3s cubic-bezier(.3,1.05,.4,1.05),-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05)}.van-switch__loading{top:25%;left:25%;width:50%;height:50%;line-height:1}.van-switch--on{background-color:#1989fa}.van-switch--on .van-switch__node{-webkit-transform:translateX(1em);transform:translateX(1em)}.van-switch--on .van-switch__loading{color:#1989fa}.van-switch--disabled{cursor:not-allowed;opacity:.5}.van-switch--loading{cursor:default}.van-switch-cell{padding-top:9px;padding-bottom:9px}.van-switch-cell--large{padding-top:11px;padding-bottom:11px}.van-switch-cell .van-switch{float:right}.van-button{position:relative;display:inline-block;box-sizing:border-box;height:44px;margin:0;padding:0;font-size:16px;line-height:1.2;text-align:center;border-radius:2px;cursor:pointer;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-appearance:none}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:#000;border:inherit;border-color:#000;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:" "}.van-button:active:before{opacity:.1}.van-button--disabled:before,.van-button--loading:before{display:none}.van-button--default{color:#323233;background-color:#fff;border:1px solid #ebedf0}.van-button--primary{color:#fff;background-color:#07c160;border:1px solid #07c160}.van-button--info{color:#fff;background-color:#1989fa;border:1px solid #1989fa}.van-button--danger{color:#fff;background-color:#ee0a24;border:1px solid #ee0a24}.van-button--warning{color:#fff;background-color:#ff976a;border:1px solid #ff976a}.van-button--plain{background-color:#fff}.van-button--plain.van-button--primary{color:#07c160}.van-button--plain.van-button--info{color:#1989fa}.van-button--plain.van-button--danger{color:#ee0a24}.van-button--plain.van-button--warning{color:#ff976a}.van-button--large{width:100%;height:50px}.van-button--normal{padding:0 15px;font-size:14px}.van-button--small{height:32px;padding:0 8px;font-size:12px}.van-button__loading{color:inherit;font-size:inherit}.van-button--mini{height:24px;padding:0 4px;font-size:10px}.van-button--mini+.van-button--mini{margin-left:4px}.van-button--block{display:block;width:100%}.van-button--disabled{cursor:not-allowed;opacity:.5}.van-button--loading{cursor:default}.van-button--round{border-radius:999px}.van-button--square{border-radius:0}.van-button__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%}.van-button__content:before{content:" "}.van-button__icon{font-size:1.2em;line-height:inherit}.van-button__icon+.van-button__text,.van-button__loading+.van-button__text,.van-button__text+.van-button__icon,.van-button__text+.van-button__loading{margin-left:4px}.van-button--hairline{border-width:0}.van-button--hairline:after{border-color:inherit;border-radius:4px}.van-button--hairline.van-button--round:after{border-radius:999px}.van-button--hairline.van-button--square:after{border-radius:0}.van-submit-bar{position:fixed;bottom:0;left:0;z-index:100;width:100%;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff;-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:8px 12px;color:#f56723;font-size:12px;line-height:1.5;background-color:#fff7cc}.van-submit-bar__tip-icon{min-width:18px;font-size:12px;vertical-align:middle}.van-submit-bar__tip-text{vertical-align:middle}.van-submit-bar__bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;height:50px;padding:0 16px;font-size:14px}.van-submit-bar__text{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-right:12px;color:#323233;text-align:right}.van-submit-bar__text span{display:inline-block}.van-submit-bar__suffix-label{margin-left:5px;font-weight:500}.van-submit-bar__price{color:#ee0a24;font-weight:500;font-size:12px}.van-submit-bar__price--integer{font-size:20px;font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-submit-bar__button{width:110px;height:40px;font-weight:500;border:none}.van-submit-bar__button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(90deg,#ff6034,#ee0a24)}.van-submit-bar--unfit{padding-bottom:0}.van-goods-action-button{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;font-weight:500;font-size:14px;border:none;border-radius:0}.van-goods-action-button--first{margin-left:5px;border-top-left-radius:999px;border-bottom-left-radius:999px}.van-goods-action-button--last{margin-right:5px;border-top-right-radius:999px;border-bottom-right-radius:999px}.van-goods-action-button--warning{background:-webkit-linear-gradient(left,#ffd01e,#ff8917);background:linear-gradient(90deg,#ffd01e,#ff8917)}.van-goods-action-button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(90deg,#ff6034,#ee0a24)}@media (max-width:321px){.van-goods-action-button{font-size:13px}}.van-toast{position:fixed;top:50%;left:50%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:content-box;width:88px;max-width:70%;min-height:88px;padding:16px;color:#fff;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-break:break-all;background-color:rgba(0,0,0,.7);border-radius:8px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.van-toast--unclickable{overflow:hidden}.van-toast--unclickable *{pointer-events:none}.van-toast--html,.van-toast--text{width:-webkit-fit-content;width:fit-content;min-width:96px;min-height:0;padding:8px 12px}.van-toast--html .van-toast__text,.van-toast--text .van-toast__text{margin-top:0}.van-toast--top{top:20%}.van-toast--bottom{top:auto;bottom:20%}.van-toast__icon{font-size:36px}.van-toast__loading{padding:4px;color:#fff}.van-toast__text{margin-top:8px}.van-calendar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;height:100%;background-color:#fff}.van-calendar__popup.van-popup--bottom,.van-calendar__popup.van-popup--top{height:80%}.van-calendar__popup.van-popup--left,.van-calendar__popup.van-popup--right{height:100%}.van-calendar__popup .van-popup__close-icon{top:11px}.van-calendar__header{-webkit-flex-shrink:0;flex-shrink:0;box-shadow:0 2px 10px hsla(220,1%,50%,.16)}.van-calendar__header-subtitle,.van-calendar__header-title,.van-calendar__month-title{height:44px;font-weight:500;line-height:44px;text-align:center}.van-calendar__header-title{font-size:16px}.van-calendar__header-subtitle,.van-calendar__month-title{font-size:14px}.van-calendar__weekdays{display:-webkit-box;display:-webkit-flex;display:flex}.van-calendar__weekday{-webkit-box-flex:1;-webkit-flex:1;flex:1;font-size:12px;line-height:30px;text-align:center}.van-calendar__body{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:auto;-webkit-overflow-scrolling:touch}.van-calendar__days{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{position:absolute;top:50%;left:50%;z-index:0;color:rgba(242,243,245,.8);font-size:160px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);pointer-events:none}.van-calendar__day,.van-calendar__selected-day{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center}.van-calendar__day{position:relative;width:14.285%;height:64px;font-size:16px;cursor:pointer}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{color:#fff;background-color:#ee0a24}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:#ee0a24}.van-calendar__day--middle:after{position:absolute;top:0;right:0;bottom:0;left:0;background-color:currentColor;opacity:.1;content:""}.van-calendar__day--disabled{color:#c8c9cc;cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{position:absolute;right:0;left:0;font-size:10px;line-height:14px}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{width:54px;height:54px;color:#fff;background-color:#ee0a24;border-radius:4px}.van-calendar__footer{-webkit-flex-shrink:0;flex-shrink:0;padding:0 16px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer--unfit{padding-bottom:0}.van-calendar__confirm{height:36px;margin:7px 0}.van-picker{position:relative;background-color:#fff;-webkit-user-select:none;user-select:none}.van-picker__toolbar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;height:44px}.van-picker__cancel,.van-picker__confirm{height:100%;padding:0 16px;font-size:14px;background-color:transparent;border:none;cursor:pointer}.van-picker__cancel:active,.van-picker__confirm:active{opacity:.7}.van-picker__confirm{color:#576b95}.van-picker__cancel{color:#969799}.van-picker__title{max-width:50%;font-weight:500;font-size:16px;line-height:20px;text-align:center}.van-picker__columns{position:relative;cursor:grab}.van-picker__columns,.van-picker__loading{display:-webkit-box;display:-webkit-flex;display:flex}.van-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#1989fa;background-color:hsla(0,0%,100%,.9)}.van-picker__frame{top:50%;right:16px;left:16px;z-index:2;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-picker__frame,.van-picker__mask{position:absolute;pointer-events:none}.van-picker__mask{top:0;left:0;z-index:1;width:100%;height:100%;background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-image:linear-gradient(180deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),linear-gradient(0deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-repeat:no-repeat;background-position:top,bottom;-webkit-transform:translateZ(0);transform:translateZ(0)}.van-picker-column{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:hidden;font-size:16px}.van-picker-column__wrapper{-webkit-transition-timing-function:cubic-bezier(.23,1,.68,1);transition-timing-function:cubic-bezier(.23,1,.68,1)}.van-picker-column__item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;padding:0 4px;color:#000}.van-picker-column__item--disabled{cursor:not-allowed;opacity:.3}.van-action-sheet{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;max-height:80%;overflow:hidden;color:#323233}.van-action-sheet__content{-webkit-box-flex:1;-webkit-flex:1 auto;flex:1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-action-sheet__cancel,.van-action-sheet__item{display:block;width:100%;padding:14px 16px;font-size:16px;background-color:#fff;border:none;cursor:pointer}.van-action-sheet__cancel:active,.van-action-sheet__item:active{background-color:#f2f3f5}.van-action-sheet__item{line-height:22px}.van-action-sheet__item--disabled,.van-action-sheet__item--loading{color:#c8c9cc}.van-action-sheet__item--disabled:active,.van-action-sheet__item--loading:active{background-color:#fff}.van-action-sheet__item--disabled{cursor:not-allowed}.van-action-sheet__item--loading{cursor:default}.van-action-sheet__cancel{-webkit-flex-shrink:0;flex-shrink:0;box-sizing:border-box;color:#646566}.van-action-sheet__subname{margin-top:8px;color:#969799;font-size:12px;line-height:18px}.van-action-sheet__gap{display:block;height:8px;background-color:#f7f8fa}.van-action-sheet__header{-webkit-flex-shrink:0;flex-shrink:0;font-weight:500;font-size:16px;line-height:48px;text-align:center}.van-action-sheet__description{position:relative;-webkit-flex-shrink:0;flex-shrink:0;padding:20px 16px;color:#969799;font-size:14px;line-height:20px;text-align:center}.van-action-sheet__description:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:16px;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-action-sheet__loading-icon .van-loading__spinner{width:22px;height:22px}.van-action-sheet__close{position:absolute;top:0;right:0;z-index:1;padding:0 16px;color:#c8c9cc;font-size:22px;line-height:inherit}.van-action-sheet__close:active{color:#969799}.van-goods-action{position:fixed;right:0;bottom:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:content-box;height:50px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-goods-action--unfit{padding-bottom:0}.van-dialog{position:fixed;top:45%;left:50%;width:320px;overflow:hidden;font-size:16px;background-color:#fff;border-radius:16px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:.3s;transition:.3s;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}@media (max-width:321px){.van-dialog{width:90%}}.van-dialog__header{padding-top:26px;font-weight:500;line-height:24px;text-align:center}.van-dialog__header--isolated{padding:24px 0}.van-dialog__content--isolated{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;min-height:104px}.van-dialog__message{-webkit-box-flex:1;-webkit-flex:1;flex:1;max-height:60vh;padding:26px 24px;overflow-y:auto;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word;-webkit-overflow-scrolling:touch}.van-dialog__message--has-title{padding-top:8px;color:#646566}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__footer{display:-webkit-box;display:-webkit-flex;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-dialog__cancel,.van-dialog__confirm{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:48px;margin:0;border:0}.van-dialog__confirm,.van-dialog__confirm:active{color:#ee0a24}.van-dialog--round-button .van-dialog__footer{position:relative;height:auto;padding:8px 24px 16px}.van-dialog--round-button .van-dialog__message{padding-bottom:16px;color:#323233}.van-dialog--round-button .van-dialog__cancel,.van-dialog--round-button .van-dialog__confirm{height:36px}.van-dialog--round-button .van-dialog__confirm{color:#fff}.van-dialog-bounce-enter{-webkit-transform:translate3d(-50%,-50%,0) scale(.7);transform:translate3d(-50%,-50%,0) scale(.7);opacity:0}.van-dialog-bounce-leave-active{-webkit-transform:translate3d(-50%,-50%,0) scale(.9);transform:translate3d(-50%,-50%,0) scale(.9);opacity:0}.van-contact-edit{padding:16px}.van-contact-edit__fields{overflow:hidden;border-radius:4px}.van-contact-edit__fields .van-field__label{width:4.1em}.van-contact-edit__switch-cell{margin-top:10px;padding-top:9px;padding-bottom:9px;border-radius:4px}.van-contact-edit__buttons{padding:32px 0}.van-contact-edit .van-button{margin-bottom:12px;font-size:16px}.van-address-edit{padding:12px}.van-address-edit__fields{overflow:hidden;border-radius:8px}.van-address-edit__fields .van-field__label{width:4.1em}.van-address-edit__default{margin-top:12px;overflow:hidden;border-radius:8px}.van-address-edit__buttons{padding:32px 4px}.van-address-edit__buttons .van-button{margin-bottom:12px}.van-address-edit-detail{padding:0}.van-address-edit-detail__search-item{background-color:#f2f3f5}.van-address-edit-detail__keyword{color:#ee0a24}.van-address-edit-detail__finish{color:#1989fa;font-size:12px}.van-radio-group--horizontal{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-contact-list{box-sizing:border-box;height:100%;padding-bottom:80px}.van-contact-list__item{padding:16px}.van-contact-list__item-value{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding-right:32px;padding-left:8px}.van-contact-list__item-tag{-webkit-box-flex:0;-webkit-flex:none;flex:none;margin-left:8px;padding-top:0;padding-bottom:0;line-height:1.4em}.van-contact-list__group{box-sizing:border-box;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch}.van-contact-list__edit{font-size:16px}.van-contact-list__bottom{position:fixed;right:0;bottom:0;left:0;z-index:999;padding:0 16px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-contact-list__add{height:40px;margin:5px 0}.van-address-list{box-sizing:border-box;height:100%;padding:12px 12px 80px}.van-address-list__bottom{position:fixed;bottom:0;left:0;z-index:999;box-sizing:border-box;width:100%;padding:0 16px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-address-list__add{height:40px;margin:5px 0}.van-address-list__disabled-text{padding:20px 0 16px;color:#969799;font-size:14px;line-height:20px}.van-address-item{padding:12px;background-color:#fff;border-radius:8px}.van-address-item:not(:last-child){margin-bottom:12px}.van-address-item__value{padding-right:44px}.van-address-item__name{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-bottom:8px;font-size:16px;line-height:22px}.van-address-item__tag{-webkit-box-flex:0;-webkit-flex:none;flex:none;margin-left:8px;padding-top:0;padding-bottom:0;line-height:1.4em}.van-address-item__address{color:#323233;font-size:13px;line-height:18px}.van-address-item--disabled .van-address-item__address,.van-address-item--disabled .van-address-item__name{color:#c8c9cc}.van-address-item__edit{position:absolute;top:50%;right:16px;color:#969799;font-size:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-address-item .van-cell{padding:0}.van-address-item .van-radio__label{margin-left:12px}.van-address-item .van-radio__icon--checked .van-icon{background-color:#ee0a24;border-color:#ee0a24}.van-badge{display:inline-block;box-sizing:border-box;min-width:16px;padding:0 3px;color:#fff;font-weight:500;font-size:12px;font-family:-apple-system-font,Helvetica Neue,Arial,sans-serif;line-height:1.2;text-align:center;background-color:#ee0a24;border:1px solid #fff;border-radius:999px}.van-badge--fixed{position:absolute;top:0;right:0;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%}.van-badge--dot{width:8px;min-width:0;height:8px;background-color:#ee0a24;border-radius:100%}.van-badge__wrapper{position:relative;display:inline-block}.van-tab__pane,.van-tab__pane-wrapper{-webkit-flex-shrink:0;flex-shrink:0;box-sizing:border-box;width:100%}.van-tab__pane-wrapper--inactive{height:0;overflow:visible}.van-sticky--fixed{position:fixed;top:0;right:0;left:0;z-index:99}.van-tab{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:0 4px;color:#646566;font-size:14px;line-height:20px;cursor:pointer}.van-tab--active{color:#323233;font-weight:500}.van-tab--disabled{color:#c8c9cc;cursor:not-allowed}.van-tab__text--ellipsis{display:-webkit-box;overflow:hidden;-webkit-line-clamp:1;-webkit-box-orient:vertical}.van-tab__text-wrapper,.van-tabs{position:relative}.van-tabs__wrap{overflow:hidden}.van-tabs__wrap--page-top{position:fixed}.van-tabs__wrap--content-bottom{top:auto;bottom:0}.van-tabs__wrap--scrollable .van-tab{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;padding:0 12px}.van-tabs__wrap--scrollable .van-tabs__nav{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.van-tabs__wrap--scrollable .van-tabs__nav::-webkit-scrollbar{display:none}.van-tabs__nav{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;background-color:#fff;-webkit-user-select:none;user-select:none}.van-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:15px}.van-tabs__nav--line.van-tabs__nav--complete{padding-right:8px;padding-left:8px}.van-tabs__nav--card{box-sizing:border-box;height:30px;margin:0 16px;border:1px solid #ee0a24;border-radius:2px}.van-tabs__nav--card .van-tab{color:#ee0a24;border-right:1px solid #ee0a24}.van-tabs__nav--card .van-tab:last-child{border-right:none}.van-tabs__nav--card .van-tab.van-tab--active{color:#fff;background-color:#ee0a24}.van-tabs__nav--card .van-tab--disabled{color:#c8c9cc}.van-tabs__line{position:absolute;bottom:15px;left:0;z-index:1;width:40px;height:3px;background-color:#ee0a24;border-radius:3px}.van-tabs__track{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;width:100%;height:100%;will-change:left}.van-tabs__content--animated{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:44px}.van-tabs--card>.van-tabs__wrap{height:30px}.van-coupon-list{position:relative;height:100%;background-color:#f7f8fa}.van-coupon-list__field{padding:5px 0 5px 16px}.van-coupon-list__field .van-field__body{height:34px;padding-left:12px;line-height:34px;background:#f7f8fa;border-radius:17px}.van-coupon-list__field .van-field__body::-webkit-input-placeholder{color:#c8c9cc}.van-coupon-list__field .van-field__body::placeholder{color:#c8c9cc}.van-coupon-list__field .van-field__clear{margin-right:0}.van-coupon-list__exchange-bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;background-color:#fff}.van-coupon-list__exchange{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:32px;font-size:16px;line-height:30px;border:0}.van-coupon-list .van-tabs__wrap{box-shadow:0 6px 12px -12px #969799}.van-coupon-list__list{box-sizing:border-box;padding:16px 0 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-coupon-list__list--with-bottom{padding-bottom:66px}.van-coupon-list__bottom{position:absolute;bottom:0;left:0;z-index:999;box-sizing:border-box;width:100%;padding:5px 16px;font-weight:500;background-color:#fff}.van-coupon-list__close{height:40px}.van-coupon-list__empty{padding-top:60px;text-align:center}.van-coupon-list__empty p{margin:16px 0;color:#969799;font-size:14px;line-height:20px}.van-coupon-list__empty img{width:200px;height:200px}.van-cascader__header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;height:48px;padding:0 16px}.van-cascader__title{font-weight:500;font-size:16px;line-height:20px}.van-cascader__close-icon{color:#c8c9cc;font-size:22px}.van-cascader__close-icon:active{color:#969799}.van-cascader__tabs .van-tab{-webkit-box-flex:0;-webkit-flex:none;flex:none;padding:0 10px}.van-cascader__tabs.van-tabs--line .van-tabs__wrap{height:48px}.van-cascader__tabs .van-tabs__nav--complete{padding-right:6px;padding-left:6px}.van-cascader__tab{color:#323233;font-weight:500}.van-cascader__tab--unselected{color:#969799;font-weight:400}.van-cascader__option{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;padding:10px 16px;font-size:14px;line-height:20px}.van-cascader__option:active{background-color:#f2f3f5}.van-cascader__option--selected{color:#ee0a24;font-weight:500}.van-cascader__selected-icon{font-size:18px}.van-cascader__options{box-sizing:border-box;height:384px;padding-top:6px;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-cell-group{background-color:#fff}.van-cell-group--inset{margin:0 16px;overflow:hidden;border-radius:8px}.van-cell-group__title{padding:16px 16px 8px;color:#969799;font-size:14px;line-height:16px}.van-cell-group__title--inset{padding:16px 16px 8px 32px}.van-panel{background:#fff}.van-panel__header-value{color:#ee0a24}.van-panel__footer{padding:8px 16px}.van-checkbox-group--horizontal{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-circle{position:relative;display:inline-block;width:100px;height:100px;text-align:center}.van-circle svg{position:absolute;top:0;left:0;width:100%;height:100%}.van-circle__layer{stroke:#fff}.van-circle__hover{fill:none;stroke:#1989fa;stroke-linecap:round}.van-circle__text{position:absolute;top:50%;left:0;box-sizing:border-box;width:100%;padding:0 4px;color:#323233;font-weight:500;font-size:14px;line-height:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-col{float:left;box-sizing:border-box;min-height:1px}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%}.van-count-down{color:#323233;font-size:14px;line-height:20px}.van-divider{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:16px 0;color:#969799;font-size:14px;line-height:24px;border-color:#ebedf0;border-style:solid;border-width:0}.van-divider:after,.van-divider:before{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box;height:1px;border-color:inherit;border-style:inherit;border-width:1px 0 0}.van-divider:before{content:""}.van-divider--hairline:after,.van-divider--hairline:before{-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--content-center:before,.van-divider--content-left:before,.van-divider--content-right:before{margin-right:16px}.van-divider--content-center:after,.van-divider--content-left:after,.van-divider--content-right:after{margin-left:16px;content:""}.van-divider--content-left:before,.van-divider--content-right:after{max-width:10%}.van-dropdown-menu{-webkit-user-select:none;user-select:none}.van-dropdown-menu__bar{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:48px;background-color:#fff;box-shadow:0 2px 12px hsla(210,1%,40%,.12)}.van-dropdown-menu__bar--opened{z-index:11}.van-dropdown-menu__item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:0;cursor:pointer}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:#969799}.van-dropdown-menu__title{position:relative;box-sizing:border-box;max-width:100%;padding:0 8px;color:#323233;font-size:15px;line-height:22px}.van-dropdown-menu__title:after{position:absolute;top:50%;right:-4px;margin-top:-5px;border:3px solid;border-color:transparent transparent #dcdee0 #dcdee0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:.8;content:""}.van-dropdown-menu__title--active{color:#ee0a24}.van-dropdown-menu__title--active:after{border-color:transparent transparent currentColor currentColor}.van-dropdown-menu__title--down:after{margin-top:-1px;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.van-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:32px 0}.van-empty__image{width:160px;height:160px}.van-empty__image img{width:100%;height:100%}.van-empty__description{margin-top:16px;padding:0 60px;color:#969799;font-size:14px;line-height:20px}.van-empty__bottom{margin-top:24px}.van-grid{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-swipe{position:relative;overflow:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);cursor:grab;-webkit-user-select:none;user-select:none}.van-swipe__track{display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.van-swipe__track--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.van-swipe__indicators{position:absolute;bottom:12px;left:50%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.van-swipe__indicators--vertical{top:50%;bottom:auto;left:12px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-swipe__indicators--vertical .van-swipe__indicator:not(:last-child){margin-bottom:6px}.van-swipe__indicator{width:6px;height:6px;background-color:#ebedf0;border-radius:100%;opacity:.3;-webkit-transition:opacity .2s,background-color .2s;transition:opacity .2s,background-color .2s}.van-swipe__indicator:not(:last-child){margin-right:6px}.van-swipe__indicator--active{background-color:#1989fa;opacity:1}.van-swipe-item{position:relative;-webkit-flex-shrink:0;flex-shrink:0;width:100%;height:100%}.van-image-preview{position:fixed;top:0;left:0;width:100%;height:100%}.van-image-preview__swipe{height:100%}.van-image-preview__swipe-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;overflow:hidden}.van-image-preview__cover{position:absolute;top:0;left:0}.van-image-preview__image{width:100%;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-image-preview__image--vertical{width:auto;height:100%}.van-image-preview__image img{-webkit-user-drag:none}.van-image-preview__image .van-image__error{top:30%;height:40%}.van-image-preview__image .van-image__error-icon{font-size:36px}.van-image-preview__image .van-image__loading{background-color:transparent}.van-image-preview__index{position:absolute;top:16px;left:50%;color:#fff;font-size:14px;line-height:20px;text-shadow:0 1px 1px #323233;-webkit-transform:translate(-50%);transform:translate(-50%)}.van-image-preview__overlay{background-color:rgba(0,0,0,.9)}.van-image-preview__close-icon{position:absolute;z-index:1;color:#c8c9cc;font-size:22px;cursor:pointer}.van-image-preview__close-icon:active{color:#969799}.van-image-preview__close-icon--top-left{top:16px;left:16px}.van-image-preview__close-icon--top-right{top:16px;right:16px}.van-image-preview__close-icon--bottom-left{bottom:16px;left:16px}.van-image-preview__close-icon--bottom-right{right:16px;bottom:16px}.van-uploader{position:relative;display:inline-block}.van-uploader__wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-uploader__wrapper--disabled{opacity:.5}.van-uploader__input{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;cursor:pointer;opacity:0}.van-uploader__input-wrapper{position:relative}.van-uploader__input:disabled{cursor:not-allowed}.van-uploader__upload{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;width:80px;height:80px;margin:0 8px 8px 0;background-color:#f7f8fa}.van-uploader__upload:active{background-color:#f2f3f5}.van-uploader__upload--readonly:active{background-color:#f7f8fa}.van-uploader__upload-icon{color:#dcdee0;font-size:24px}.van-uploader__upload-text{margin-top:8px;color:#969799;font-size:12px}.van-uploader__preview{position:relative;margin:0 8px 8px 0;cursor:pointer}.van-uploader__preview-image{display:block;width:80px;height:80px;overflow:hidden}.van-uploader__preview-delete{position:absolute;top:0;right:0;width:14px;height:14px;background-color:rgba(0,0,0,.7);border-radius:0 0 0 12px}.van-uploader__preview-delete-icon{position:absolute;top:-2px;right:-2px;color:#fff;font-size:16px;-webkit-transform:scale(.5);transform:scale(.5)}.van-uploader__mask,.van-uploader__preview-cover{position:absolute;top:0;right:0;bottom:0;left:0}.van-uploader__mask{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff;background-color:rgba(50,50,51,.88)}.van-uploader__mask-icon{font-size:22px}.van-uploader__mask-message{margin-top:6px;padding:0 4px;font-size:12px;line-height:14px}.van-uploader__loading{width:22px;height:22px;color:#fff}.van-uploader__file{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:80px;height:80px;background-color:#f7f8fa}.van-uploader__file-icon{color:#646566;font-size:20px}.van-uploader__file-name{box-sizing:border-box;width:100%;margin-top:8px;padding:0 4px;color:#646566;font-size:12px;text-align:center}.van-index-anchor{z-index:1;box-sizing:border-box;padding:0 16px;color:#323233;font-weight:500;font-size:14px;line-height:32px;background-color:transparent}.van-index-anchor--sticky{position:fixed;top:0;right:0;left:0;color:#ee0a24;background-color:#fff}.van-index-bar__sidebar{position:fixed;top:50%;right:0;z-index:2;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;-webkit-user-select:none;user-select:none}.van-index-bar__index{padding:0 8px 0 16px;font-weight:500;font-size:10px;line-height:14px}.van-index-bar__index--active{color:#ee0a24}.van-pagination{display:-webkit-box;display:-webkit-flex;display:flex;font-size:14px}.van-pagination__item,.van-pagination__page-desc{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-pagination__item{-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box;min-width:36px;height:40px;color:#1989fa;background-color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.van-pagination__item:active{color:#fff;background-color:#1989fa}.van-pagination__item:after{border-width:1px 0 1px 1px}.van-pagination__item:last-child:after{border-right-width:1px}.van-pagination__item--active{color:#fff;background-color:#1989fa}.van-pagination__next,.van-pagination__prev{padding:0 4px;cursor:pointer}.van-pagination__item--disabled,.van-pagination__item--disabled:active{color:#646566;background-color:#f7f8fa;cursor:not-allowed;opacity:.5}.van-pagination__page{-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0}.van-pagination__page-desc{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;color:#646566}.van-pagination--simple .van-pagination__next:after,.van-pagination--simple .van-pagination__prev:after{border-width:1px}.van-password-input{position:relative;margin:0 16px;-webkit-user-select:none;user-select:none}.van-password-input__error-info,.van-password-input__info{margin-top:16px;font-size:14px;text-align:center}.van-password-input__info{color:#969799}.van-password-input__error-info{color:#ee0a24}.van-password-input__security{display:-webkit-box;display:-webkit-flex;display:flex;width:100%;height:50px;cursor:pointer}.van-password-input__security:after{border-radius:6px}.van-password-input__security li{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;font-size:20px;line-height:1.2;background-color:#fff}.van-password-input__security i{width:10px;height:10px;background-color:#000;border-radius:100%;visibility:hidden}.van-password-input__cursor,.van-password-input__security i{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.van-password-input__cursor{width:1px;height:40%;background-color:#323233;-webkit-animation:van-cursor-flicker 1s infinite;animation:van-cursor-flicker 1s infinite}@-webkit-keyframes van-cursor-flicker{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes van-cursor-flicker{0%{opacity:0}50%{opacity:1}to{opacity:0}}.van-progress{position:relative;height:4px;background:#ebedf0;border-radius:4px}.van-progress__portion{position:absolute;left:0;height:100%;background:#1989fa;border-radius:inherit}.van-progress__pivot{position:absolute;top:50%;box-sizing:border-box;min-width:3.6em;padding:0 5px;color:#fff;font-size:10px;line-height:1.6;text-align:center;word-break:keep-all;background-color:#1989fa;border-radius:1em;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-row:after{display:table;clear:both;content:""}.van-row--flex{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-row--flex:after{display:none}.van-row--justify-center{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-row--justify-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.van-row--justify-space-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.van-row--justify-space-around{-webkit-justify-content:space-around;justify-content:space-around}.van-row--align-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-row--align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end}.van-sidebar{width:80px;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-tree-select{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;font-size:14px;-webkit-user-select:none;user-select:none}.van-tree-select__nav{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow-y:auto;background-color:#f7f8fa;-webkit-overflow-scrolling:touch}.van-tree-select__nav-item{padding:14px 12px}.van-tree-select__content{-webkit-box-flex:2;-webkit-flex:2;flex:2;overflow-y:auto;background-color:#fff;-webkit-overflow-scrolling:touch}.van-tree-select__item{position:relative;padding:0 32px 0 16px;font-weight:500;line-height:48px;cursor:pointer}.van-tree-select__item--active{color:#ee0a24}.van-tree-select__item--disabled{color:#c8c9cc;cursor:not-allowed}.van-tree-select__selected{position:absolute;top:50%;right:16px;margin-top:-8px;font-size:16px}.van-skeleton{display:-webkit-box;display:-webkit-flex;display:flex;padding:0 16px}.van-skeleton__avatar{-webkit-flex-shrink:0;flex-shrink:0;width:32px;height:32px;margin-right:16px;background-color:#f2f3f5}.van-skeleton__avatar--round{border-radius:999px}.van-skeleton__content{width:100%}.van-skeleton__avatar+.van-skeleton__content{padding-top:8px}.van-skeleton__row,.van-skeleton__title{height:16px;background-color:#f2f3f5}.van-skeleton__title{width:40%;margin:0}.van-skeleton__row:not(:first-child){margin-top:12px}.van-skeleton__title+.van-skeleton__row{margin-top:20px}.van-skeleton--animate{-webkit-animation:van-skeleton-blink 1.2s ease-in-out infinite;animation:van-skeleton-blink 1.2s ease-in-out infinite}.van-skeleton--round .van-skeleton__row,.van-skeleton--round .van-skeleton__title{border-radius:999px}@-webkit-keyframes van-skeleton-blink{50%{opacity:.6}}@keyframes van-skeleton-blink{50%{opacity:.6}}.van-stepper{font-size:0;-webkit-user-select:none;user-select:none}.van-stepper__minus,.van-stepper__plus{position:relative;box-sizing:border-box;width:28px;height:28px;margin:0;padding:0;color:#323233;vertical-align:middle;background-color:#f2f3f5;border:0;cursor:pointer}.van-stepper__minus:before,.van-stepper__plus:before{width:50%;height:1px}.van-stepper__minus:after,.van-stepper__plus:after{width:1px;height:50%}.van-stepper__minus:after,.van-stepper__minus:before,.van-stepper__plus:after,.van-stepper__plus:before{position:absolute;top:50%;left:50%;background-color:currentColor;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);content:""}.van-stepper__minus:active,.van-stepper__plus:active{background-color:#e8e8e8}.van-stepper__minus--disabled,.van-stepper__plus--disabled{color:#c8c9cc;background-color:#f7f8fa;cursor:not-allowed}.van-stepper__minus--disabled:active,.van-stepper__plus--disabled:active{background-color:#f7f8fa}.van-stepper__minus{border-radius:4px 0 0 4px}.van-stepper__minus:after{display:none}.van-stepper__plus{border-radius:0 4px 4px 0}.van-stepper__input{box-sizing:border-box;width:32px;height:28px;margin:0 2px;padding:0;color:#323233;font-size:14px;line-height:normal;text-align:center;vertical-align:middle;background-color:#f2f3f5;border:0;border-width:1px 0;border-radius:0;-webkit-appearance:none}.van-stepper__input:disabled{color:#c8c9cc;background-color:#f2f3f5;-webkit-text-fill-color:#c8c9cc;opacity:1}.van-stepper__input:read-only{cursor:default}.van-stepper--round .van-stepper__input{background-color:transparent}.van-stepper--round .van-stepper__minus,.van-stepper--round .van-stepper__plus{border-radius:100%}.van-stepper--round .van-stepper__minus:active,.van-stepper--round .van-stepper__plus:active{opacity:.7}.van-stepper--round .van-stepper__minus--disabled,.van-stepper--round .van-stepper__minus--disabled:active,.van-stepper--round .van-stepper__plus--disabled,.van-stepper--round .van-stepper__plus--disabled:active{opacity:.3}.van-stepper--round .van-stepper__plus{color:#fff;background-color:#ee0a24}.van-stepper--round .van-stepper__minus{color:#ee0a24;background-color:#fff;border:1px solid #ee0a24}.van-sku-container{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;min-height:50%;max-height:80%;overflow-y:visible;font-size:14px;background:#fff}.van-sku-body{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;min-height:44px;overflow-y:scroll;-webkit-overflow-scrolling:touch}.van-sku-body::-webkit-scrollbar{display:none}.van-sku-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;margin:0 16px}.van-sku-header__img-wrap{-webkit-flex-shrink:0;flex-shrink:0;width:96px;height:96px;margin:12px 12px 12px 0;overflow:hidden;border-radius:4px}.van-sku-header__goods-info{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;padding:12px 20px 12px 0}.van-sku-header-item{margin-top:8px;color:#969799;font-size:12px;line-height:16px}.van-sku__price-symbol{font-size:16px;vertical-align:bottom}.van-sku__price-num{font-weight:500;font-size:22px;vertical-align:bottom;word-wrap:break-word}.van-sku__goods-price{margin-left:-2px;color:#ee0a24}.van-sku__price-tag{position:relative;display:inline-block;margin-left:8px;padding:0 5px;overflow:hidden;color:#ee0a24;font-size:12px;line-height:16px;border-radius:8px}.van-sku__price-tag:before{position:absolute;top:0;left:0;width:100%;height:100%;background:currentColor;opacity:.1;content:""}.van-sku-group-container{padding-top:12px}.van-sku-group-container--hide-soldout .van-sku-row__item--disabled{display:none}.van-sku-row{margin:0 16px 12px}.van-sku-row:last-child{margin-bottom:0}.van-sku-row__image-item,.van-sku-row__item{position:relative;overflow:hidden;color:#323233;border-radius:4px;cursor:pointer}.van-sku-row__image-item:before,.van-sku-row__item:before{position:absolute;top:0;left:0;width:100%;height:100%;background:#f7f8fa;content:""}.van-sku-row__image-item--active,.van-sku-row__item--active{color:#ee0a24}.van-sku-row__image-item--active:before,.van-sku-row__item--active:before{background:currentColor;opacity:.1}.van-sku-row__item{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:40px;margin:0 12px 12px 0;font-size:13px;line-height:16px;vertical-align:middle}.van-sku-row__item-img{z-index:1;width:24px;height:24px;margin:4px 0 4px 4px;object-fit:cover;border-radius:2px}.van-sku-row__item-name{z-index:1;padding:8px}.van-sku-row__item--disabled{color:#c8c9cc;background:#f2f3f5;cursor:not-allowed}.van-sku-row__item--disabled .van-sku-row__item-img{opacity:.3}.van-sku-row__image{margin-right:0}.van-sku-row__image-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;width:110px;margin:0 4px 4px 0;border:1px solid transparent}.van-sku-row__image-item:last-child{margin-right:0}.van-sku-row__image-item-img{width:100%;height:110px}.van-sku-row__image-item-img-icon{position:absolute;top:0;right:0;z-index:3;width:18px;height:18px;color:#fff;line-height:18px;text-align:center;background-color:rgba(0,0,0,.4);border-bottom-left-radius:4px}.van-sku-row__image-item-name{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;height:40px;padding:4px;font-size:12px;line-height:16px}.van-sku-row__image-item-name span{word-wrap:break-word}.van-sku-row__image-item--active{border-color:currentColor}.van-sku-row__image-item--disabled{color:#c8c9cc;cursor:not-allowed}.van-sku-row__image-item--disabled:before{z-index:2;background:#f2f3f5;opacity:.4}.van-sku-row__title{padding-bottom:12px}.van-sku-row__title-multiple{color:#969799}.van-sku-row__scroller{margin:0 -16px;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}.van-sku-row__scroller::-webkit-scrollbar{display:none}.van-sku-row__row{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;margin-bottom:4px;padding:0 16px}.van-sku-row__indicator{width:40px;height:4px;background:#ebedf0;border-radius:2px}.van-sku-row__indicator-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;padding-bottom:16px}.van-sku-row__indicator-slider{width:50%;height:100%;background-color:#ee0a24;border-radius:2px}.van-sku-stepper-stock{padding:12px 16px;overflow:hidden;line-height:30px}.van-sku__stepper{float:right;padding-left:4px}.van-sku__stepper-title{float:left}.van-sku__stepper-quota{float:right;color:#ee0a24;font-size:12px}.van-sku__stock{display:inline-block;margin-right:8px;color:#969799;font-size:12px}.van-sku__stock-num--highlight{color:#ee0a24}.van-sku-messages{padding-bottom:32px}.van-sku-messages__image-cell .van-cell__title{max-width:6.2em;margin-right:12px;color:#646566;text-align:left;word-wrap:break-word}.van-sku-messages__image-cell .van-cell__value{overflow:visible;text-align:left}.van-sku-messages__image-cell-label{color:#969799;font-size:12px;line-height:18px}.van-sku-messages__cell-block{position:relative}.van-sku-messages__cell-block:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:16px;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-sku-messages__cell-block:last-child:after{display:none}.van-sku-messages__extra-message{margin-top:-2px;padding:0 16px 12px;color:#969799;font-size:12px;line-height:18px}.van-sku-actions{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;padding:8px 16px}.van-sku-actions .van-button{height:40px;font-weight:500;font-size:14px;border:none;border-radius:0}.van-sku-actions .van-button:first-of-type{border-top-left-radius:20px;border-bottom-left-radius:20px}.van-sku-actions .van-button:last-of-type{border-top-right-radius:20px;border-bottom-right-radius:20px}.van-sku-actions .van-button--warning{background:-webkit-linear-gradient(left,#ffd01e,#ff8917);background:linear-gradient(90deg,#ffd01e,#ff8917)}.van-sku-actions .van-button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(90deg,#ff6034,#ee0a24)}.van-slider{position:relative;width:100%;height:2px;background-color:#ebedf0;border-radius:999px;cursor:pointer}.van-slider:before{position:absolute;top:-8px;right:0;bottom:-8px;left:0;content:""}.van-slider__bar{position:relative;width:100%;height:100%;background-color:#1989fa;border-radius:inherit;-webkit-transition:all .2s;transition:all .2s}.van-slider__button{width:24px;height:24px;background-color:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.5)}.van-slider__button-wrapper,.van-slider__button-wrapper-right{position:absolute;top:50%;right:0;-webkit-transform:translate3d(50%,-50%,0);transform:translate3d(50%,-50%,0);cursor:grab}.van-slider__button-wrapper-left{position:absolute;top:50%;left:0;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);cursor:grab}.van-slider--disabled{cursor:not-allowed;opacity:.5}.van-slider--disabled .van-slider__button-wrapper,.van-slider--disabled .van-slider__button-wrapper-left,.van-slider--disabled .van-slider__button-wrapper-right{cursor:not-allowed}.van-slider--vertical{display:inline-block;width:2px;height:100%}.van-slider--vertical .van-slider__button-wrapper,.van-slider--vertical .van-slider__button-wrapper-right{top:auto;right:50%;bottom:0;-webkit-transform:translate3d(50%,50%,0);transform:translate3d(50%,50%,0)}.van-slider--vertical .van-slider__button-wrapper-left{top:0;right:50%;left:auto;-webkit-transform:translate3d(50%,-50%,0);transform:translate3d(50%,-50%,0)}.van-slider--vertical:before{top:0;right:-8px;bottom:0;left:-8px}.van-steps{overflow:hidden;background-color:#fff}.van-steps--horizontal{padding:10px 10px 0}.van-steps--horizontal .van-steps__items{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;margin:0 0 10px;padding-bottom:22px}.van-steps--vertical{padding:0 0 0 32px}.van-swipe-cell{position:relative;overflow:hidden;cursor:grab}.van-swipe-cell__wrapper{-webkit-transition-timing-function:cubic-bezier(.18,.89,.32,1);transition-timing-function:cubic-bezier(.18,.89,.32,1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-swipe-cell__left,.van-swipe-cell__right{position:absolute;top:0;height:100%}.van-swipe-cell__left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.van-tabbar{z-index:1;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:content-box;width:100%;height:50px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-tabbar--fixed{position:fixed;bottom:0;left:0}.van-tabbar--unfit{padding-bottom:0} \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/favicon.ico b/hs-im-server/build/hd-glasses-app/dist/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/hs-im-server/build/hd-glasses-app/dist/favicon.ico differ diff --git a/hs-im-server/build/hd-glasses-app/dist/index.html b/hs-im-server/build/hd-glasses-app/dist/index.html new file mode 100644 index 0000000..1e289bb --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/index.html @@ -0,0 +1 @@ +hd-glasses-app
\ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js b/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js new file mode 100644 index 0000000..00141b2 --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js @@ -0,0 +1,2 @@ +(self["webpackChunkhd_glasses_app"]=self["webpackChunkhd_glasses_app"]||[]).push([[10],{7010:function(t,e,i){"use strict";i.r(e),i.d(e,{default:function(){return Cu}});var n=function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"content"}},[e("div",{ref:"map",staticStyle:{width:"100vw",height:"100vh"},attrs:{id:"map"}}),e("div",{attrs:{id:"overlay-box"}}),e("div",{staticClass:"actionList"},[e("van-grid",{attrs:{"column-num":3}},[e("van-grid-item",[e("van-button",{attrs:{size:"mini",type:"primary"},on:{click:function(e){t.canAddPoints=!0}}},[t._v("开始新增点位")])],1),e("van-grid-item",[e("van-button",{attrs:{size:"mini",type:"primary"},on:{click:function(e){t.canAddPoints=!1}}},[t._v("结束新增点位")])],1),e("van-grid-item",[e("van-button",{attrs:{size:"mini",type:"primary"},on:{click:t.clearPointsLayers}},[t._v("清除点位")])],1),e("van-grid-item",[e("van-button",{attrs:{size:"mini",type:"primary"},on:{click:function(e){return t.startAnimation()}}},[t._v("开始沿轨迹运动")])],1),e("van-grid-item",[e("van-button",{attrs:{size:"mini",type:"primary"},on:{click:function(e){return t.stopAnimation()}}},[t._v("结束沿轨迹运动")])],1)],1),e("br")],1)])},s=[];i(7658);class r{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}}var o=r,a={PROPERTYCHANGE:"propertychange"};class h{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}}var l=h;function c(t,e,i){let n,s;i=i||u;let r=0,o=t.length,a=!1;while(r>1),s=+i(t[n],e),s<0?r=n+1:(o=n,a=!s);return a?r:~r}function u(t,e){return t>e?1:t0?s-1:s}return n-1}if(i>0){for(let i=1;i0||i&&0===r)}))}function m(){return!0}function y(){return!1}function v(){}function x(t){let e,i,n,s=!1;return function(){const r=Array.prototype.slice.call(arguments);return s&&this===n&&f(r,i)||(s=!0,n=this,i=r,e=t.apply(this,arguments)),e}}function E(t){for(const e in t)delete t[e]}function C(t){let e;for(e in t)return!1;return!e}class S extends l{constructor(t){super(),this.eventTarget_=t,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(t,e){if(!t||!e)return;const i=this.listeners_||(this.listeners_={}),n=i[t]||(i[t]=[]);n.includes(e)||n.push(e)}dispatchEvent(t){const e="string"===typeof t,i=e?t:t.type,n=this.listeners_&&this.listeners_[i];if(!n)return;const s=e?new o(t):t;s.target||(s.target=this.eventTarget_||this);const r=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});let h;i in r||(r[i]=0,a[i]=0),++r[i];for(let o=0,l=n.length;o0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=v,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}}}var w=S,R={CHANGE:"change",ERROR:"error",BLUR:"blur",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",FOCUS:"focus",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",RESIZE:"resize",TOUCHMOVE:"touchmove",WHEEL:"wheel"};function T(t,e,i,n,s){if(n&&n!==t&&(i=i.bind(n)),s){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const r={target:t,type:e,listener:i};return t.addEventListener(e,i),r}function I(t,e,i,n){return T(t,e,i,n,!0)}function M(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),E(t))}class L extends w{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(R.CHANGE)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let s=0;s1?(i=s,n=r):h>0&&(i+=o*h,n+=a*h)}return Y(t,e,i,n)}function Y(t,e,i,n){const s=i-t,r=n-e;return s*s+r*r}function B(t){const e=t.length;for(let n=0;ns&&(s=e,i=o)}if(0===s)return null;const r=t[i];t[i]=t[n],t[n]=r;for(let o=n+1;o=0;n--){i[n]=t[n][e]/t[n][n];for(let s=n-1;s>=0;s--)t[s][e]-=t[s][n]*i[n]}return i}function K(t){return t*Math.PI/180}function V(t,e){const i=t%e;return i*e<0?i+e:i}function j(t,e,i){return t+i*(e-t)}function Z(t,e){const i=Math.pow(10,e);return Math.round(t*i)/i}function U(t,e){return Math.floor(Z(t,e))}function H(t,e){return Math.ceil(Z(t,e))}class q extends N{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"===typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[G.OPACITY]=void 0!==t.opacity?t.opacity:1,W("number"===typeof e[G.OPACITY],"Layer opacity must be a number"),e[G.VISIBLE]=void 0===t.visible||t.visible,e[G.Z_INDEX]=t.zIndex,e[G.MAX_RESOLUTION]=void 0!==t.maxResolution?t.maxResolution:1/0,e[G.MIN_RESOLUTION]=void 0!==t.minResolution?t.minResolution:0,e[G.MIN_ZOOM]=void 0!==t.minZoom?t.minZoom:-1/0,e[G.MAX_ZOOM]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},i=this.getZIndex();return e.opacity=z(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==i||e.managed?i:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return O()}getLayerStatesArray(t){return O()}getExtent(){return this.get(G.EXTENT)}getMaxResolution(){return this.get(G.MAX_RESOLUTION)}getMinResolution(){return this.get(G.MIN_RESOLUTION)}getMinZoom(){return this.get(G.MIN_ZOOM)}getMaxZoom(){return this.get(G.MAX_ZOOM)}getOpacity(){return this.get(G.OPACITY)}getSourceState(){return O()}getVisible(){return this.get(G.VISIBLE)}getZIndex(){return this.get(G.Z_INDEX)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(G.EXTENT,t)}setMaxResolution(t){this.set(G.MAX_RESOLUTION,t)}setMinResolution(t){this.set(G.MIN_RESOLUTION,t)}setMaxZoom(t){this.set(G.MAX_ZOOM,t)}setMinZoom(t){this.set(G.MIN_ZOOM,t)}setOpacity(t){W("number"===typeof t,"Layer opacity must be a number"),this.set(G.OPACITY,t)}setVisible(t){this.set(G.VISIBLE,t)}setZIndex(t){this.set(G.Z_INDEX,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}}var J=q,$={PRERENDER:"prerender",POSTRENDER:"postrender",PRECOMPOSE:"precompose",POSTCOMPOSE:"postcompose",RENDERCOMPLETE:"rendercomplete"},Q={ANIMATING:0,INTERACTING:1},tt={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};const et=42,it=256;const nt={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};class st{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||nt[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}}var rt=st;const ot=6378137,at=Math.PI*ot,ht=[-at,-at,at,at],lt=[-180,-85,180,85],ct=ot*Math.log(Math.tan(Math.PI/2));class ut extends rt{constructor(t){super({code:t,units:"m",extent:ht,global:!0,worldExtent:lt,getPointResolution:function(t,e){return t/Math.cosh(e[1]/ot)}})}}const dt=[new ut("EPSG:3857"),new ut("EPSG:102100"),new ut("EPSG:102113"),new ut("EPSG:900913"),new ut("http://www.opengis.net/def/crs/EPSG/0/3857"),new ut("http://www.opengis.net/gml/srs/epsg.xml#3857")];function gt(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let s=0;sct?i=ct:i<-ct&&(i=-ct),e[s+1]=i}return e}function _t(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let s=0;ss&&(h|=Tt.RIGHT),ar&&(h|=Tt.ABOVE),h===Tt.UNKNOWN&&(h=Tt.INTERSECTING),h}function kt(){return[1/0,1/0,-1/0,-1/0]}function Nt(t,e,i,n,s){return s?(s[0]=t,s[1]=e,s[2]=i,s[3]=n,s):[t,e,i,n]}function Gt(t){return Nt(1/0,1/0,-1/0,-1/0,t)}function Wt(t,e){const i=t[0],n=t[1];return Nt(i,n,i,n,e)}function zt(t,e,i,n,s){const r=Gt(s);return Kt(r,t,e,i,n)}function Xt(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function Yt(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function Bt(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function Kt(t,e,i,n,s){for(;ie[0]?n[0]=t[0]:n[0]=e[0],t[1]>e[1]?n[1]=t[1]:n[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function oe(t){return t[2]=o&&f<=h),n||!(r&Tt.RIGHT)||s&Tt.RIGHT||(p=g-(d-h)*_,n=p>=a&&p<=l),n||!(r&Tt.BELOW)||s&Tt.BELOW||(f=d-(g-a)/_,n=f>=o&&f<=h),n||!(r&Tt.LEFT)||s&Tt.LEFT||(p=g-(d-o)*_,n=p>=a&&p<=l)}return n}function le(t,e,i,n){if(oe(t))return Gt(i);let s=[];if(n>1){const e=t[2]-t[0],i=t[3]-t[1];for(let r=0;r=i[2])){const e=se(i),s=Math.floor((n[0]-i[0])/e),r=s*e;t[0]-=r,t[2]-=r}return t}function ue(t,e){if(e.canWrapX()){const i=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[i[0],t[1],i[2],t[3]]];ce(t,e);const n=se(i);if(se(t)>n)return[[i[0],t[1],i[2],t[3]]];if(t[0]i[2])return[[t[0],t[1],i[2],t[3]],[i[0],t[1],t[2]-n,t[3]]]}return[t]}function de(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function ge(t,e){let i=!0;for(let n=t.length-1;n>=0;--n)if(t[n]!=e[n]){i=!1;break}return i}function _e(t,e){const i=Math.cos(e),n=Math.sin(e),s=t[0]*i-t[1]*n,r=t[1]*i+t[0]*n;return t[0]=s,t[1]=r,t}function fe(t,e){return t[0]*=e,t[1]*=e,t}function pe(t,e){if(e.canWrapX()){const i=se(e.getExtent()),n=me(t,e,i);n&&(t[0]-=n*i)}return t}function me(t,e,i){const n=e.getExtent();let s=0;return e.canWrapX()&&(t[0]n[2])&&(i=i||se(n),s=Math.floor((t[0]-n[0])/i)),s}const ye=6371008.8;function ve(t,e,i){i=i||ye;const n=K(t[1]),s=K(e[1]),r=(s-n)/2,o=K(e[0]-t[0])/2,a=Math.sin(r)*Math.sin(r)+Math.sin(o)*Math.sin(o)*Math.cos(n)*Math.cos(s);return 2*i*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}const xe={info:1,warn:2,error:3,none:4};let Ee=xe.info;function Ce(...t){Ee>xe.warn||console.warn(...t)}let Se=!0;function we(t){const e=void 0===t||t;Se=!e}function Re(t,e){if(void 0!==e)for(let i=0,n=t.length;i=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(Se=!1,Ce("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t)}function Be(t,e){return We?Ge(t,e,We):t}function Ke(t,e){return We?Ge(t,We,e):t}function Ve(t,e){if(!We)return t;const i=Le(e).getUnits(),n=We.getUnits();return i&&n?t*nt[i]/nt[n]:t}function je(){Ae(dt),Ae(vt),Oe(vt,dt,gt,_t)}function Ze(t,e,i){return function(n,s,r,o,a){if(!n)return;if(!s&&!e)return n;const h=e?0:r[0]*s,l=e?0:r[1]*s,c=a?a[0]:0,u=a?a[1]:0;let d=t[0]+h/2+c,g=t[2]-h/2+c,_=t[1]+l/2+u,f=t[3]-l/2+u;d>g&&(d=(g+d)/2,g=d),_>f&&(_=(f+_)/2,f=_);let p=z(n[0],d,g),m=z(n[1],_,f);if(o&&i&&s){const t=30*s;p+=-t*Math.log(1+Math.max(0,d-n[0])/t)+t*Math.log(1+Math.max(0,n[0]-g)/t),m+=-t*Math.log(1+Math.max(0,_-n[1])/t)+t*Math.log(1+Math.max(0,n[1]-f)/t)}return[p,m]}}function Ue(t){return t}function He(t,e,i,n){const s=se(e)/i[0],r=te(e)/i[1];return n?Math.min(t,Math.max(s,r)):Math.min(t,Math.min(s,r))}function qe(t,e,i){let n=Math.min(t,e);const s=50;return n*=Math.log(1+s*Math.max(0,t/e-1))/s+1,i&&(n=Math.max(n,i),n/=Math.log(1+s*Math.max(0,i/t-1))/s+1),z(n,i/2,2*e)}function Je(t,e,i,n){return e=void 0===e||e,function(s,r,o,a){if(void 0!==s){const h=t[0],l=t[t.length-1],c=i?He(h,i,o,n):h;if(a)return e?qe(s,c,l):z(s,l,c);const u=Math.min(c,s),g=Math.floor(d(t,u,r));return t[g]>c&&g1)u=i;else{if(d>0){for(let s=0;ss&&(s=a),r=i,o=n}return s}function Yi(t,e,i,n,s){for(let r=0,o=i.length;r0){const i=l.pop(),r=l.pop();let o=0;const a=t[r],u=t[r+1],d=t[i],g=t[i+1];for(let e=r+n;eo&&(c=e,o=s)}o>s&&(h[(c-e)/n]=1,r+n0&&_>d)&&(g<0&&f0&&f>g)?(a=i,h=u):(r[o++]=a,r[o++]=h,l=a,c=h,a=i,h=u)}return r[o++]=a,r[o++]=h,o}function Ji(t,e,i,n,s,r,o,a){for(let h=0,l=i.length;hr&&(i-a)*(r-h)-(s-a)*(n-h)>0&&o++:n<=r&&(i-a)*(r-h)-(s-a)*(n-h)<0&&o--,a=i,h=n}return 0!==o}function cn(t,e,i,n,s,r){if(0===i.length)return!1;if(!ln(t,e,i[0],n,s,r))return!1;for(let o=1,a=i.length;oy&&(l=(c+d)/2,cn(t,e,i,n,l,f)&&(m=l,y=s)),c=d}return isNaN(m)&&(m=s[r]),o?(o.push(m,f,y),o):[m,f,y]}function dn(t,e,i,n,s){let r;for(e+=n;e=s[0]&&r[2]<=s[2]||(r[1]>=s[1]&&r[3]<=s[3]||dn(t,e,i,n,(function(t,e){return he(s,t,e)})))))}function _n(t,e,i,n,s){return!!gn(t,e,i,n,s)||(!!ln(t,e,i,n,s[0],s[1])||(!!ln(t,e,i,n,s[0],s[3])||(!!ln(t,e,i,n,s[2],s[1])||!!ln(t,e,i,n,s[2],s[3]))))}function fn(t,e,i,n,s){if(!_n(t,e,i[0],n,s))return!1;if(1===i.length)return!0;for(let r=1,o=i.length;r0}function yn(t,e,i,n,s){s=void 0!==s&&s;for(let r=0,o=i.length;r1&&"function"===typeof arguments[i-1]&&(e=arguments[i-1],--i);let n=0;for(;n0}getInteracting(){return this.hints_[Q.INTERACTING]>0}cancelAnimations(){let t;this.setHint(Q.ANIMATING,-this.hints_[Q.ANIMATING]);for(let e=0,i=this.animations_.length;e=0;--i){const n=this.animations_[i];let s=!0;for(let i=0,r=n.length;i0?o/r.duration:1;a>=1?(r.complete=!0,a=1):s=!1;const h=r.easing(a);if(r.sourceCenter){const t=r.sourceCenter[0],e=r.sourceCenter[1],i=r.targetCenter[0],n=r.targetCenter[1];this.nextCenter_=r.targetCenter;const s=t+h*(i-t),o=e+h*(n-e);this.targetCenter_=[s,o]}if(r.sourceResolution&&r.targetResolution){const t=1===h?r.targetResolution:r.sourceResolution+h*(r.targetResolution-r.sourceResolution);if(r.anchor){const e=this.getViewportSize_(this.getRotation()),i=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(i,r.anchor)}this.nextResolution_=r.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==r.sourceRotation&&void 0!==r.targetRotation){const t=1===h?V(r.targetRotation+Math.PI,2*Math.PI)-Math.PI:r.sourceRotation+h*(r.targetRotation-r.sourceRotation);if(r.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,r.anchor)}this.nextRotation_=r.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!r.complete)break}if(s){this.animations_[i]=null,this.setHint(Q.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=n[0].callback;t&&Rn(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const n=this.getCenterInternal();return void 0!==n&&(i=[n[0]-e[0],n[1]-e[1]],_e(i,t-this.getRotation()),de(i,e)),i}calculateCenterZoom(t,e){let i;const n=this.getCenterInternal(),s=this.getResolution();if(void 0!==n&&void 0!==s){const r=e[0]-t*(e[0]-n[0])/s,o=e[1]-t*(e[1]-n[1])/s;i=[r,o]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],n=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(n*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(n*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?Xe(t,this.getProjection()):t}getCenterInternal(){return this.get(tt.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){const e=this.calculateExtentInternal(t);return Be(e,this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();W(e,"The view center is not defined");const i=this.getResolution();W(void 0!==i,"The view resolution is not defined");const n=this.getRotation();return W(void 0!==n,"The view rotation is not defined"),$t(e,i,n,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(tt.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(Ke(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=se(t)/e[0],n=te(t)/e[1];return Math.max(i,n)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,n=Math.log(e/i)/Math.log(t);return function(i){const s=e/Math.pow(t,i*n);return s}}getRotation(){return this.get(tt.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,s=Math.log(i/n)/e;return function(t){const n=Math.log(i/t)/e/s;return n}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let n=this.getCenterInternal();const s=this.padding_;if(s){const t=this.getViewportSizeMinusPadding_();n=bn(n,this.getViewportSize_(),[t[0]/2+s[3],t[1]/2+s[0]],e,i)}return{center:n.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,i,n=this.minZoom_||0;if(this.resolutions_){const s=d(this.resolutions_,t,1);n=s,e=this.resolutions_[s],i=s==this.resolutions_.length-1?2:e/this.resolutions_[s+1]}else e=this.maxResolution_,i=this.zoomFactor_;return n+Math.log(e/t)/Math.log(i)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=z(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,z(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(W(Array.isArray(t)||"function"===typeof t.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(t)){W(!oe(t),"Cannot fit empty extent provided as `geometry`");const e=Ke(t,this.getProjection());i=Cn(e)}else if("Circle"===t.getType()){const e=Ke(t.getExtent(),this.getProjection());i=Cn(e),i.rotate(this.getRotation(),qt(e))}else{const e=ze();i=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),n=Math.sin(-e),s=t.getFlatCoordinates(),r=t.getStride();let o=1/0,a=1/0,h=-1/0,l=-1/0;for(let c=0,u=s.length;c{this.dispatchEvent("sourceready")}),0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}isVisible(t){let e;const i=this.getMapInternal();let n;!t&&i&&(t=i.getView()),e=t instanceof An?{viewState:t.getState(),extent:t.calculateExtent()}:t,!e.layerStatesArray&&i&&(e.layerStatesArray=i.getLayerGroup().getLayerStatesArray()),n=e.layerStatesArray?e.layerStatesArray.find((t=>t.layer===this)):this.getLayerState();const s=this.getExtent();return Pn(n,e.viewState)&&(!s||re(s,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];let e;const i=this.getSource();if(i&&(e=i.getAttributions()),!e)return[];const n=t instanceof An?t.getViewStateAndExtent():t;let s=e(n);return Array.isArray(s)||(s=[s]),s}render(t,e){const i=this.getRenderer();return i.prepareFrame(t)?(this.rendered=!0,i.renderFrame(t,e)):null}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(G.MAP,t)}getMapInternal(){return this.get(G.MAP)}setMap(t){this.mapPrecomposeKey_&&(M(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(M(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=T(t,$.PRECOMPOSE,(function(t){const e=t,i=e.frameState.layerStatesArray,n=this.getLayerState(!1);W(!i.some((function(t){return t.layer===n.layer})),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),i.push(n)}),this),this.mapRenderKey_=T(this,R.CHANGE,t.render,t),this.changed())}setSource(t){this.set(G.SOURCE,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}}function Pn(t,e){if(!t.visible)return!1;const i=e.resolution;if(i=t.maxResolution)return!1;const n=e.zoom;return n>t.minZoom&&n<=t.maxZoom}var Dn=On,Fn={PRELOAD:"preload",USE_INTERIM_TILES_ON_ERROR:"useInterimTilesOnError"};class kn extends Dn{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un,this.setPreload(void 0!==t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError)}getPreload(){return this.get(Fn.PRELOAD)}setPreload(t){this.set(Fn.PRELOAD,t)}getUseInterimTilesOnError(){return this.get(Fn.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(t){this.set(Fn.USE_INTERIM_TILES_ON_ERROR,t)}getData(t){return super.getData(t)}}var Nn=kn,Gn=(i(541),{IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4});class Wn extends A{constructor(t){super(),this.ready=!0,this.boundHandleImageChange_=this.handleImageChange_.bind(this),this.layer_=t,this.declutterExecutorGroup=null}getFeatures(t){return O()}getData(t){return null}prepareFrame(t){return O()}renderFrame(t,e){return O()}loadedTileCallback(t,e,i){t[e]||(t[e]={}),t[e][i.tileCoord.toString()]=i}createLoadedTileFinder(t,e,i){return(n,s)=>{const r=this.loadedTileCallback.bind(this,i,n);return t.forEachLoadedTile(e,n,s,r)}}forEachFeatureAtCoordinate(t,e,i,n,s){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;e.getState()!==Gn.LOADED&&e.getState()!==Gn.ERROR||this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=Gn.LOADED&&e!=Gn.ERROR&&t.addEventListener(R.CHANGE,this.boundHandleImageChange_),e==Gn.IDLE&&(t.load(),e=t.getState()),e==Gn.LOADED}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}}var zn=Wn;class Xn extends o{constructor(t,e,i,n){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=n}}var Yn=Xn;const Bn=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,Kn=/^([a-z]*)$|^hsla?\(.*\)$/i;function Vn(t){return"string"===typeof t?t:Jn(t)}function jn(t){const e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);const t=getComputedStyle(e).color;return document.body.removeChild(e),t}return""}const Zn=function(){const t=1024,e={};let i=0;return function(n){let s;if(e.hasOwnProperty(n))s=e[n];else{if(i>=t){let t=0;for(const n in e)0===(3&t++)&&(delete e[n],--i)}s=Hn(n),e[n]=s,++i}return s}}();function Un(t){return Array.isArray(t)?t:Zn(t)}function Hn(t){let e,i,n,s,r;if(Kn.exec(t)&&(t=jn(t)),Bn.exec(t)){const o=t.length-1;let a;a=o<=4?1:2;const h=4===o||8===o;e=parseInt(t.substr(1+0*a,a),16),i=parseInt(t.substr(1+1*a,a),16),n=parseInt(t.substr(1+2*a,a),16),s=h?parseInt(t.substr(1+3*a,a),16):255,1==a&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,h&&(s=(s<<4)+s)),r=[e,i,n,s/255]}else if(t.startsWith("rgba("))r=t.slice(5,-1).split(",").map(Number),qn(r);else{if(!t.startsWith("rgb("))throw new Error("Invalid color");r=t.slice(4,-1).split(",").map(Number),r.push(1),qn(r)}return r}function qn(t){return t[0]=z(t[0]+.5|0,0,255),t[1]=z(t[1]+.5|0,0,255),t[2]=z(t[2]+.5|0,0,255),t[3]=z(t[3],0,1),t}function Jn(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];n!=(0|n)&&(n=n+.5|0);const s=void 0===t[3]?1:Math.round(100*t[3])/100;return"rgba("+e+","+i+","+n+","+s+")"}function $n(t,e,i,n){let s;return s=i&&i.length?i.shift():_i?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(s.width=t),e&&(s.height=e),s.getContext("2d",n)}function Qn(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function ts(t){let e=t.offsetWidth;const i=getComputedStyle(t);return e+=parseInt(i.marginLeft,10)+parseInt(i.marginRight,10),e}function es(t){let e=t.offsetHeight;const i=getComputedStyle(t);return e+=parseInt(i.marginTop,10)+parseInt(i.marginBottom,10),e}function is(t,e){const i=e.parentNode;i&&i.replaceChild(t,e)}function ns(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}function ss(t){while(t.lastChild)t.removeChild(t.lastChild)}function rs(t,e){const i=t.childNodes;for(let n=0;1;++n){const s=i[n],r=e[n];if(!s&&!r)break;s!==r&&(s?r?t.insertBefore(r,s):(t.removeChild(s),--n):t.appendChild(r))}}const os=[];let as=null;function hs(){as=$n(1,1,void 0,{willReadFrequently:!0})}class ls extends zn{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=mi(),this.pixelTransform=mi(),this.inversePixelTransform=mi(),this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){let n;as||hs(),as.clearRect(0,0,1,1);try{as.drawImage(t,e,i,1,1,0,0,1,1),n=as.getImageData(0,0,1,1).data}catch(s){return as=null,null}return n}getBackground(t){const e=this.getLayer();let i=e.getBackground();return"function"===typeof i&&(i=i(t.viewState.resolution)),i||void 0}useContainer(t,e,i){const n=this.getLayer().getClassName();let s,r;if(t&&t.className===n&&(!i||t&&t.style.backgroundColor&&f(Un(t.style.backgroundColor),Un(i)))){const e=t.firstElementChild;e instanceof HTMLCanvasElement&&(r=e.getContext("2d"))}if(r&&r.canvas.style.transform===e?(this.container=t,this.context=r,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){s=document.createElement("div"),s.className=n;let t=s.style;t.position="absolute",t.width="100%",t.height="100%",r=$n();const e=r.canvas;s.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=s,this.context=r}this.containerReused||!i||this.container.style.backgroundColor||(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const n=ie(i),s=ne(i),r=Ht(i),o=Ut(i);Ei(e.coordinateToPixelTransform,n),Ei(e.coordinateToPixelTransform,s),Ei(e.coordinateToPixelTransform,r),Ei(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;Ei(a,n),Ei(a,s),Ei(a,r),Ei(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){const s=new Yn(t,this.inversePixelTransform,i,e);n.dispatchEvent(s)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_($.PRERENDER,t,e)}postRender(t,e){this.dispatchRenderEvent_($.POSTRENDER,t,e)}getRenderTransform(t,e,i,n,s,r,o){const a=s/2,h=r/2,l=n/e,c=-l,u=-t[0]+o,d=-t[1];return Si(this.tempTransform,a,h,l,c,-i,u,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}}var cs=ls,us={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4};class ds extends w{constructor(t,e,i){super(),i=i||{},this.tileCoord=t,this.state=e,this.interimTile=null,this.key="",this.transition_=void 0===i.transition?250:i.transition,this.transitionStarts_={},this.interpolate=!!i.interpolate}changed(){this.dispatchEvent(R.CHANGE)}release(){this.state===us.ERROR&&this.setState(us.EMPTY)}getKey(){return this.key+"/"+this.tileCoord}getInterimTile(){if(!this.interimTile)return this;let t=this.interimTile;do{if(t.getState()==us.LOADED)return this.transition_=0,t;t=t.interimTile}while(t);return this}refreshInterimChain(){if(!this.interimTile)return;let t=this.interimTile,e=this;do{if(t.getState()==us.LOADED){t.interimTile=null;break}t.getState()==us.LOADING?e=t:t.getState()==us.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}getTileCoord(){return this.tileCoord}getState(){return this.state}setState(t){if(this.state!==us.ERROR&&this.state>t)throw new Error("Tile load sequence violation");this.state=t,this.changed()}load(){O()}getAlpha(t,e){if(!this.transition_)return 1;let i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;const n=e-i+1e3/60;return n>=this.transition_?1:si(n/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}}var gs=ds;function _s(t,e,i){const n=t;let s=!0,r=!1,o=!1;const a=[I(n,R.LOAD,(function(){o=!0,r||e()}))];return n.src&&fi?(r=!0,n.decode().then((function(){s&&e()})).catch((function(t){s&&(o?e():i())}))):a.push(I(n,R.ERROR,i)),function(){s=!1,a.forEach(M)}}function fs(t,e){return new Promise(((i,n)=>{function s(){o(),i(t)}function r(){o(),n(new Error("Image load error"))}function o(){t.removeEventListener("load",s),t.removeEventListener("error",r)}t.addEventListener("load",s),t.addEventListener("error",r),e&&(t.src=e)}))}function ps(t,e){return e&&(t.src=e),fi?new Promise(((e,i)=>t.decode().then((()=>e(t)),i))):fs(t)}class ms extends gs{constructor(t,e,i,n,s,r){super(t,e,r),this.crossOrigin_=n,this.src_=i,this.key=i,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.unlisten_=null,this.tileLoadFunction_=s}getImage(){return this.image_}setImage(t){this.image_=t,this.state=us.LOADED,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=us.ERROR,this.unlistenImage_(),this.image_=ys(),this.changed()}handleImageLoad_(){const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=us.LOADED:this.state=us.EMPTY,this.unlistenImage_(),this.changed()}load(){this.state==us.ERROR&&(this.state=us.IDLE,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==us.IDLE&&(this.state=us.LOADING,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=_s(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}function ys(){const t=$n(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}var vs=ms;const xs=.5,Es=10,Cs=.25;class Ss{constructor(t,e,i,n,s,r){this.sourceProj_=t,this.targetProj_=e;let o={};const a=ke(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){const e=t[0]+"/"+t[1];return o[e]||(o[e]=a(t)),o[e]},this.maxSourceExtent_=n,this.errorThresholdSquared_=s*s,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!n&&!!this.sourceProj_.getExtent()&&se(n)>=se(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?se(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?se(this.targetProj_.getExtent()):null;const h=ie(i),l=ne(i),c=Ht(i),u=Ut(i),d=this.transformInv_(h),g=this.transformInv_(l),_=this.transformInv_(c),f=this.transformInv_(u),p=Es+(r?Math.max(0,Math.ceil(Math.log2(Zt(i)/(r*r*256*256)))):0);if(this.addQuad_(h,l,c,u,d,g,_,f,p),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach((function(e,i,n){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])})),this.triangles_.forEach((e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const i=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];i[0][0]-t>this.sourceWorldWidth_/2&&(i[0][0]-=this.sourceWorldWidth_),i[1][0]-t>this.sourceWorldWidth_/2&&(i[1][0]-=this.sourceWorldWidth_),i[2][0]-t>this.sourceWorldWidth_/2&&(i[2][0]-=this.sourceWorldWidth_);const n=Math.min(i[0][0],i[1][0],i[2][0]),s=Math.max(i[0][0],i[1][0],i[2][0]);s-n.5&&c<1;let g=!1;if(h>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){const s=It([t,e,i,n]),r=se(s)/this.targetWorldWidth_;g=r>Cs||g}!d&&this.sourceProj_.isGlobal()&&c&&(g=c>Cs||g)}if(!g&&this.maxSourceExtent_&&isFinite(l[0])&&isFinite(l[1])&&isFinite(l[2])&&isFinite(l[3])&&!re(l,this.maxSourceExtent_))return;let _=0;if(!g&&(!isFinite(s[0])||!isFinite(s[1])||!isFinite(r[0])||!isFinite(r[1])||!isFinite(o[0])||!isFinite(o[1])||!isFinite(a[0])||!isFinite(a[1])))if(h>0)g=!0;else if(_=(isFinite(s[0])&&isFinite(s[1])?0:8)+(isFinite(r[0])&&isFinite(r[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=_&&2!=_&&4!=_&&8!=_)return;if(h>0){if(!g){const e=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=this.transformInv_(e);let r;if(d){const t=(V(s[0],u)+V(o[0],u))/2;r=t-V(n[0],u)}else r=(s[0]+o[0])/2-n[0];const a=(s[1]+o[1])/2-n[1],h=r*r+a*a;g=h>this.errorThresholdSquared_}if(g){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){const l=[(e[0]+i[0])/2,(e[1]+i[1])/2],c=this.transformInv_(l),u=[(n[0]+t[0])/2,(n[1]+t[1])/2],d=this.transformInv_(u);this.addQuad_(t,e,l,u,s,r,c,d,h-1),this.addQuad_(u,l,i,n,d,c,o,a,h-1)}else{const l=[(t[0]+e[0])/2,(t[1]+e[1])/2],c=this.transformInv_(l),u=[(i[0]+n[0])/2,(i[1]+n[1])/2],d=this.transformInv_(u);this.addQuad_(t,l,u,n,s,c,d,a,h-1),this.addQuad_(l,e,i,u,c,r,o,d,h-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&_)&&this.addTriangle_(t,i,n,s,o,a),0==(14&_)&&this.addTriangle_(t,i,e,s,o,r),_&&(0==(13&_)&&this.addTriangle_(e,n,t,r,a,s),0==(7&_)&&this.addTriangle_(e,n,i,r,a,o))}calculateSourceExtent(){const t=kt();return this.triangles_.forEach((function(e,i,n){const s=e.source;Bt(t,s[0]),Bt(t,s[1]),Bt(t,s[2])})),t}getTriangles(){return this.triangles_}}var ws=Ss;let Rs;const Ts=[];function Is(t,e,i,n,s){t.beginPath(),t.moveTo(0,0),t.lineTo(e,i),t.lineTo(n,s),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,n)+1,Math.max(i,s)),t.restore()}function Ms(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function Ls(){if(void 0===Rs){const t=$n(6,6,Ts);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Is(t,4,5,4,0),Is(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;Rs=Ms(e,0)||Ms(e,4)||Ms(e,8),Qn(t),Ts.push(t.canvas)}return Rs}function bs(t,e,i,n){const s=Ne(i,e,t);let r=be(e,n,i);const o=e.getMetersPerUnit();void 0!==o&&(r*=o);const a=t.getMetersPerUnit();void 0!==a&&(r/=a);const h=t.getExtent();if(!h||Ot(h,s)){const e=be(t,r,s)/r;isFinite(e)&&e>0&&(r/=e)}return r}function As(t,e,i,n){const s=qt(i);let r=bs(t,e,s,n);return(!isFinite(r)||r<=0)&&jt(i,(function(i){return r=bs(t,e,i,n),isFinite(r)&&r>0})),r}function Os(t,e,i,n,s,r,o,a,h,l,c,u){const d=$n(Math.round(i*t),Math.round(i*e),Ts);if(u||(d.imageSmoothingEnabled=!1),0===h.length)return d.canvas;function g(t){return Math.round(t*i)/i}d.scale(i,i),d.globalCompositeOperation="lighter";const _=kt();h.forEach((function(t,e,i){Yt(_,t.extent)}));const f=se(_),p=te(_),m=$n(Math.round(i*f/n),Math.round(i*p/n),Ts);u||(m.imageSmoothingEnabled=!1);const y=i/n;h.forEach((function(t,e,i){const n=t.extent[0]-_[0],s=-(t.extent[3]-_[3]),r=se(t.extent),o=te(t.extent);t.image.width>0&&t.image.height>0&&m.drawImage(t.image,l,l,t.image.width-2*l,t.image.height-2*l,n*y,s*y,r*y,o*y)}));const v=ie(o);return a.getTriangles().forEach((function(t,e,s){const o=t.source,a=t.target;let h=o[0][0],l=o[0][1],c=o[1][0],f=o[1][1],p=o[2][0],y=o[2][1];const x=g((a[0][0]-v[0])/r),E=g(-(a[0][1]-v[1])/r),C=g((a[1][0]-v[0])/r),S=g(-(a[1][1]-v[1])/r),w=g((a[2][0]-v[0])/r),R=g(-(a[2][1]-v[1])/r),T=h,I=l;h=0,l=0,c-=T,f-=I,p-=T,y-=I;const M=[[c,f,0,0,C-x],[p,y,0,0,w-x],[0,0,c,f,S-E],[0,0,p,y,R-E]],L=B(M);if(L){if(d.save(),d.beginPath(),Ls()||!u){d.moveTo(C,S);const t=4,e=x-C,i=E-S;for(let n=0;n{e&&e.getState()==us.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})})),this.sourceTiles_.length=0,0===t.length)this.state=us.ERROR;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"===typeof i?i:i[0],s="number"===typeof i?i:i[1],r=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Os(n,s,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),r,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=us.LOADED}this.changed()}load(){if(this.state==us.IDLE){this.state=us.LOADING,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach((e=>{const i=e.getState();if(i==us.IDLE||i==us.LOADING){t++;const i=T(e,R.CHANGE,(function(n){const s=e.getState();s!=us.LOADED&&s!=us.ERROR&&s!=us.EMPTY||(M(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}})),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){const n=t.getState();n==us.IDLE&&t.load()}))}}unlistenSources_(){this.sourcesListenerKeys_.forEach(M),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Qn(this.canvas_.getContext("2d")),Ts.push(this.canvas_),this.canvas_=null),super.release()}}var Ds=Ps;class Fs{constructor(t,e,i,n){this.minX=t,this.maxX=e,this.minY=i,this.maxY=n}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}}function ks(t,e,i,n,s){return void 0!==s?(s.minX=t,s.maxX=e,s.minY=i,s.maxY=n,s):new Fs(t,e,i,n)}var Ns=Fs;function Gs(t){return t[0]>0&&t[1]>0}function Ws(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]*e+.5|0,i[1]=t[1]*e+.5|0,i}function zs(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}class Xs extends cs{constructor(t){super(t),this.extentChanged=!0,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=kt(),this.tmpTileRange_=new Ns(0,0,0,0)}isDrawableTile(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==us.LOADED||i==us.EMPTY||i==us.ERROR&&!n}getTile(t,e,i,n){const s=n.pixelRatio,r=n.viewState.projection,o=this.getLayer(),a=o.getSource();let h=a.getTile(t,e,i,s,r);return h.getState()==us.ERROR&&o.getUseInterimTilesOnError()&&o.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(h)||(h=h.getInterimTile()),h}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=Ei(e.pixelToCoordinateTransform,t.slice()),s=i.getExtent();if(s&&!Ot(s,n))return null;const r=e.pixelRatio,o=e.viewState.projection,a=e.viewState,h=i.getRenderSource(),l=h.getTileGridForProjection(a.projection),c=h.getTilePixelRatio(e.pixelRatio);for(let u=l.getZForResolution(a.resolution);u>=l.getMinZoom();--u){const t=l.getTileCoordForCoordAndZ(n,u),e=h.getTile(u,t[1],t[2],r,o);if(!(e instanceof vs||e instanceof Ds)||e instanceof Ds&&e.getState()===us.EMPTY)return null;if(e.getState()!==us.LOADED)continue;const i=l.getOrigin(u),s=zs(l.getTileSize(u)),d=l.getResolution(u),g=Math.floor(c*((n[0]-i[0])/d-t[1]*s[0])),_=Math.floor(c*((i[1]-n[1])/d-t[2]*s[1])),f=Math.round(c*h.getGutterForProjection(a.projection));return this.getImageData(e.getImage(),g+f,_+f)}return null}loadedTileCallback(t,e,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(t,e,i)}prepareFrame(t){return!!this.getLayer().getSource()}renderFrame(t,e){const i=t.layerStatesArray[t.layerIndex],n=t.viewState,s=n.projection,r=n.resolution,o=n.center,a=n.rotation,h=t.pixelRatio,l=this.getLayer(),c=l.getSource(),d=c.getRevision(),g=c.getTileGridForProjection(s),_=g.getZForResolution(r,c.zDirection),f=g.getResolution(_);let p=t.extent;const m=t.viewState.resolution,y=c.getTilePixelRatio(h),v=Math.round(se(p)/m*h),x=Math.round(te(p)/m*h),E=i.extent&&Ke(i.extent,s);E&&(p=ee(p,Ke(i.extent,s)));const C=f*v/2/y,S=f*x/2/y,w=[o[0]-C,o[1]-S,o[0]+C,o[1]+S],R=g.getTileRangeForExtentAndZ(p,_),T={};T[_]={};const I=this.createLoadedTileFinder(c,s,T),M=this.tmpExtent,L=this.tmpTileRange_;this.newTiles_=!1;const b=a?Qt(n.center,m,a,t.size):void 0;for(let u=R.minX;u<=R.maxX;++u)for(let e=R.minY;e<=R.maxY;++e){if(a&&!g.tileCoordIntersectsViewport([_,u,e],b))continue;const n=this.getTile(_,u,e,t);if(this.isDrawableTile(n)){const e=D(this);if(n.getState()==us.LOADED){T[_][n.tileCoord.toString()]=n;let t=n.inTransition(e);t&&1!==i.opacity&&(n.endTransition(e),t=!1),this.newTiles_||!t&&this.renderedTiles.includes(n)||(this.newTiles_=!0)}if(1===n.getAlpha(e,t.time))continue}const s=g.getTileCoordChildTileRange(n.tileCoord,L,M);let r=!1;s&&(r=I(_+1,s)),r||g.forEachTileCoordParentTileRange(n.tileCoord,I,L,M)}const A=f/r*h/y;Si(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/h,1/h,a,-v/2,-x/2);const O=Ii(this.pixelTransform);this.useContainer(e,O,this.getBackground(t));const P=this.context,F=P.canvas;wi(this.inversePixelTransform,this.pixelTransform),Si(this.tempTransform,v/2,x/2,A,A,0,-v/2,-x/2),F.width!=v||F.height!=x?(F.width=v,F.height=x):this.containerReused||P.clearRect(0,0,v,x),E&&this.clipUnrotated(P,t,E),c.getInterpolate()||(P.imageSmoothingEnabled=!1),this.preRender(P,t),this.renderedTiles.length=0;let k,N,G,W=Object.keys(T).map(Number);W.sort(u),1!==i.opacity||this.containerReused&&!c.getOpaque(t.viewState.projection)?(k=[],N=[]):W=W.reverse();for(let u=W.length-1;u>=0;--u){const e=W[u],i=c.getTilePixelSize(e,h,s),n=g.getResolution(e),r=n/f,o=i[0]*r*A,a=i[1]*r*A,l=g.getTileCoordForCoordAndZ(ie(w),e),d=g.getTileCoordExtent(l),p=Ei(this.tempTransform,[y*(d[0]-w[0])/f,y*(w[3]-d[3])/f]),m=y*c.getGutterForProjection(s),v=T[e];for(const s in v){const i=v[s],n=i.tileCoord,r=l[1]-n[1],h=Math.round(p[0]-(r-1)*o),u=l[2]-n[2],d=Math.round(p[1]-(u-1)*a),g=Math.round(p[0]-r*o),f=Math.round(p[1]-u*a),y=h-g,x=d-f,E=_===e,C=E&&1!==i.getAlpha(D(this),t.time);let S=!1;if(!C)if(k){G=[g,f,g+y,f,g+y,f+x,g,f+x];for(let t=0,i=k.length;tMath.max(e,Cr(t,i))),0);return i[e]=n,n}function wr(t,e){const i=[],n=[],s=[];let r=0,o=0,a=0,h=0;for(let l=0,c=e.length;l<=c;l+=2){const u=e[l];if("\n"===u||l===c){r=Math.max(r,o),s.push(o),o=0,a+=h;continue}const d=e[l+1]||t.font,g=Cr(d,u);i.push(g),o+=g;const _=xr(d);n.push(_),h=Math.max(h,_)}return{width:r,height:a,widths:i,heights:n,lineWidths:s}}function Rr(t,e,i,n,s,r,o,a,h,l,c){t.save(),1!==i&&(t.globalAlpha*=i),e&&t.transform.apply(t,e),n.contextInstructions?(t.translate(h,l),t.scale(c[0],c[1]),Tr(n,t)):c[0]<0||c[1]<0?(t.translate(h,l),t.scale(c[0],c[1]),t.drawImage(n,s,r,o,a,0,0,o,a)):t.drawImage(n,s,r,o,a,h,l,o*c[0],a*c[1]),t.restore()}function Tr(t,e){const i=t.contextInstructions;for(let n=0,s=i.length;nthis.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];0!==(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const n=Yr(t,e,i);return n in this.cache_?this.cache_[n]:null}set(t,e,i,n){const s=Yr(t,e,i);this.cache_[s]=n,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function Yr(t,e,i){const n=i?Vn(i):"null";return e+":"+t+":"+n}const Br=new Xr;let Kr=null;class Vr extends w{constructor(t,e,i,n,s){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=i,this.canvas_={},this.color_=s,this.imageState_=void 0===n?Gn.IDLE:n,this.size_=t&&t.width&&t.height?[t.width,t.height]:null,this.src_=e,this.tainted_}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(void 0===this.tainted_&&this.imageState_===Gn.LOADED){Kr||(Kr=$n(1,1,void 0,{willReadFrequently:!0})),Kr.drawImage(this.image_,0,0);try{Kr.getImageData(0,0,1,1),this.tainted_=!1}catch(t){Kr=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(R.CHANGE)}handleImageError_(){this.imageState_=Gn.ERROR,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=Gn.LOADED,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=$n(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===Gn.IDLE){this.image_||this.initializeImage_(),this.imageState_=Gn.LOADING;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch(t){this.handleImageError_()}this.image_ instanceof HTMLImageElement&&ps(this.image_,this.src_).then((t=>{this.image_=t,this.handleImageLoad_()})).catch(this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==Gn.LOADED)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const n=i.getContext("2d");n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle=Vn(this.color_),n.fillRect(0,0,i.width/t,i.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=i}}function jr(t,e,i,n,s){let r=void 0===e?void 0:Br.get(e,i,s);return r||(r=new Vr(t,t instanceof HTMLImageElement?t.src||void 0:e,i,n,s),Br.set(e,i,s,r)),r}function Zr(t,e,i,n){return void 0!==i&&void 0!==n?[i/t,n/e]:void 0!==i?i/t:void 0!==n?n/e:1}class Ur extends Zs{constructor(t){t=t||{};const e=void 0!==t.opacity?t.opacity:1,i=void 0!==t.rotation?t.rotation:0,n=void 0!==t.scale?t.scale:1,s=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:i,scale:n,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:s,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null;const r=void 0!==t.img?t.img:null;let o,a=t.src;if(W(!(void 0!==a&&r),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!r||(a=r.src||D(r)),W(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),W(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==t.src?o=Gn.IDLE:void 0!==r&&(o=r instanceof HTMLImageElement?r.complete?r.src?Gn.LOADED:Gn.IDLE:Gn.LOADING:Gn.LOADED),this.color_=void 0!==t.color?Un(t.color):null,this.iconImage_=jr(r,a,this.crossOrigin_,o,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,void 0!==t.width||void 0!==t.height){let e,i;if(t.size)[e,i]=t.size;else{const n=this.getImage(1);if(n.width&&n.height)e=n.width,i=n.height;else if(n instanceof HTMLImageElement){this.initialOptions_=t;const e=()=>{if(this.unlistenImageChange(e),!this.initialOptions_)return;const i=this.iconImage_.getSize();this.setScale(Zr(i[0],i[1],t.width,t.height))};return void this.listenImageChange(e)}}void 0!==e&&this.setScale(Zr(e,i,t.width,t.height))}}clone(){let t,e,i;return this.initialOptions_?(e=this.initialOptions_.width,i=this.initialOptions_.height):(t=this.getScale(),t=Array.isArray(t)?t.slice():t),new Ur({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:t,width:e,height:i,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=i[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();return this.size_?this.size_[0]*t[0]:this.iconImage_.getImageState()==Gn.LOADED?this.iconImage_.getSize()[0]*t[0]:void 0}getHeight(){const t=this.getScaleArray();return this.size_?this.size_[1]*t[1]:this.iconImage_.getImageState()==Gn.LOADED?this.iconImage_.getSize()[1]*t[1]:void 0}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(R.CHANGE,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(R.CHANGE,t)}}var Hr=Ur;const qr="#333";class Jr{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.scale_=t.scale,this.scaleArray_=zs(void 0!==t.scale?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.repeat_=t.repeat,this.textBaseline_=t.textBaseline,this.fill_=void 0!==t.fill?t.fill:new Or({color:qr}),this.maxAngle_=void 0!==t.maxAngle?t.maxAngle:Math.PI/4,this.placement_=void 0!==t.placement?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=void 0!==t.stroke?t.stroke:null,this.offsetX_=void 0!==t.offsetX?t.offsetX:0,this.offsetY_=void 0!==t.offsetY?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=void 0===t.padding?null:t.padding}clone(){const t=this.getScale();return new Jr({font:this.getFont(),placement:this.getPlacement(),repeat:this.getRepeat(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getRepeat(){return this.repeat_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRepeat(t){this.repeat_=t}setRotateWithView(t){this.rotateWithView_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=zs(void 0!==t?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}}var $r=Jr;let Qr=0;const to=1<",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match"},mo={[po.Number]:Co(Eo(1,1/0,ro),eo),[po.String]:Co(Eo(1,1/0,ro),io),[po.Get]:Co(yo,ro),[po.Var]:Co(vo,ro),[po.Resolution]:Co(xo,eo),[po.Any]:Co(Eo(2,1/0,to),to),[po.All]:Co(Eo(2,1/0,to),to),[po.Not]:Co(Eo(1,1,to),to),[po.Equal]:Co(Eo(2,2,ro),to),[po.NotEqual]:Co(Eo(2,2,ro),to),[po.GreaterThan]:Co(Eo(2,2,ro),to),[po.GreaterThanOrEqualTo]:Co(Eo(2,2,ro),to),[po.LessThan]:Co(Eo(2,2,ro),to),[po.LessThanOrEqualTo]:Co(Eo(2,2,ro),to),[po.Multiply]:Co(Eo(2,1/0,eo),eo),[po.Divide]:Co(Eo(2,2,eo),eo),[po.Add]:Co(Eo(2,1/0,eo),eo),[po.Subtract]:Co(Eo(2,2,eo),eo),[po.Clamp]:Co(Eo(3,3,eo),eo),[po.Mod]:Co(Eo(2,2,eo),eo),[po.Pow]:Co(Eo(2,2,eo),eo),[po.Abs]:Co(Eo(1,1,eo),eo),[po.Floor]:Co(Eo(1,1,eo),eo),[po.Ceil]:Co(Eo(1,1,eo),eo),[po.Round]:Co(Eo(1,1,eo),eo),[po.Sin]:Co(Eo(1,1,eo),eo),[po.Cos]:Co(Eo(1,1,eo),eo),[po.Atan]:Co(Eo(1,2,eo),eo),[po.Sqrt]:Co(Eo(1,1,eo),eo),[po.Match]:Co(Eo(4,1/0,io|eo),ro)};function yo(t,e){if(2!==t.length)throw new Error("Expected 1 argument for get operation");const i=fo(t[1],e);if(!(i instanceof uo))throw new Error("Expected a literal argument for get operation");if("string"!==typeof i.value)throw new Error("Expected a string argument for get operation");return e.properties.add(i.value),[i]}function vo(t,e){if(2!==t.length)throw new Error("Expected 1 argument for var operation");const i=fo(t[1],e);if(!(i instanceof uo))throw new Error("Expected a literal argument for var operation");if("string"!==typeof i.value)throw new Error("Expected a string argument for get operation");return e.variables.add(i.value),[i]}function xo(t,e){const i=t[0];if(1!==t.length)throw new Error(`Expected no arguments for ${i} operation`);return[]}function Eo(t,e,i){return function(n,s){const r=n[0],o=n.length-1;if(t===e){if(o!==t){const e=1===t?"":"s";throw new Error(`Expected ${t} argument${e} for operation ${r}, got ${o}`)}}else if(oe)throw new Error(`Expected ${t} to ${e} arguments for operation ${r}, got ${o}`);const a=new Array(o);for(let t=0;tt.resolution;case po.Any:case po.All:case po.Not:return bo(t,e);case po.Equal:case po.NotEqual:case po.LessThan:case po.LessThanOrEqualTo:case po.GreaterThan:case po.GreaterThanOrEqualTo:return Lo(t,e);case po.Multiply:case po.Divide:case po.Add:case po.Subtract:case po.Clamp:case po.Mod:case po.Pow:case po.Abs:case po.Floor:case po.Ceil:case po.Round:case po.Sin:case po.Cos:case po.Atan:case po.Sqrt:return Ao(t,e);case po.Match:return Oo(t,e);default:throw new Error(`Unsupported operator ${i}`)}}function Io(t,e){const i=t.operator,n=t.args.length,s=new Array(n);for(let r=0;r{for(let e=0;et.properties[n];case po.Var:return t=>t.variables[n];default:throw new Error(`Unsupported accessor operator ${t.operator}`)}}function Lo(t,e){const i=t.operator,n=To(t.args[0],e),s=To(t.args[1],e);switch(i){case po.Equal:return t=>n(t)===s(t);case po.NotEqual:return t=>n(t)!==s(t);case po.LessThan:return t=>n(t)n(t)<=s(t);case po.GreaterThan:return t=>n(t)>s(t);case po.GreaterThanOrEqualTo:return t=>n(t)>=s(t);default:throw new Error(`Unsupported comparison operator ${i}`)}}function bo(t,e){const i=t.operator,n=t.args.length,s=new Array(n);for(let r=0;r{for(let e=0;e{for(let e=0;e!s[0](t);default:throw new Error(`Unsupported logical operator ${i}`)}}function Ao(t,e){const i=t.operator,n=t.args.length,s=new Array(n);for(let r=0;r{let e=1;for(let i=0;is[0](t)/s[1](t);case po.Add:return t=>{let e=0;for(let i=0;is[0](t)-s[1](t);case po.Clamp:return t=>{const e=s[0](t),i=s[1](t);if(en?n:e};case po.Mod:return t=>s[0](t)%s[1](t);case po.Pow:return t=>Math.pow(s[0](t),s[1](t));case po.Abs:return t=>Math.abs(s[0](t));case po.Floor:return t=>Math.floor(s[0](t));case po.Ceil:return t=>Math.ceil(s[0](t));case po.Round:return t=>Math.round(s[0](t));case po.Sin:return t=>Math.sin(s[0](t));case po.Cos:return t=>Math.cos(s[0](t));case po.Atan:return 2===n?t=>Math.atan2(s[0](t),s[1](t)):t=>Math.atan(s[0](t));case po.Sqrt:return t=>Math.sqrt(s[0](t));default:throw new Error(`Unsupported numeric operator ${i}`)}}function Oo(t,e){const i=t.args.length,n=new Array(i);for(let s=0;s{const e=n[0](t);for(let s=1;s4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return i}function ca(t,e){if("number"===typeof t)return t;const i=oa(t,e);if(2!==i.length)throw new Error(`Expected an array of two numbers for ${e}`);return i}const ua={RENDER_ORDER:"renderOrder"};class da extends Dn{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=void 0!==t.declutter&&t.declutter,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(ua.RENDER_ORDER)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t){t.declutterTree||(t.declutterTree=new Vs(9)),this.getRenderer().renderDeclutter(t)}setRenderOrder(t){this.set(ua.RENDER_ORDER,t)}setStyle(t){this.style_=ga(t),this.styleFunction_=null===t?void 0:kr(this.style_),this.changed()}}function ga(t){if(void 0===t)return Gr;if(!t)return null;if("function"===typeof t)return t;if(t instanceof zr)return t;if(!Array.isArray(t))return Fo([t]);if(0===t.length)return[];const e=t.length,i=t[0];if(i instanceof zr){const i=new Array(e);for(let n=0;no&&(this.instructions.push([xa.CUSTOM,o,h,t,i,$i]),this.hitDetectionInstructions.push([xa.CUSTOM,o,h,t,n||i,$i]));break;case"Point":a=t.getFlatCoordinates(),this.coordinates.push(a[0],a[1]),h=this.coordinates.length,this.instructions.push([xa.CUSTOM,o,h,t,i]),this.hitDetectionInstructions.push([xa.CUSTOM,o,h,t,n||i]);break;default:}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[xa.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[xa.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const i=t.length;let n,s,r=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[xa.SET_FILL_STYLE,e];return"string"!==typeof e&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[xa.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;"string"===typeof i&&t.currentFillStyle==i||(void 0!==i&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,n=t.lineCap,s=t.lineDash,r=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=n||s!=t.currentLineDash&&!f(t.currentLineDash,s)||t.currentLineDashOffset!=r||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=h)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=n,t.currentLineDash=s,t.currentLineDashOffset=r,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=h)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[xa.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=bt(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;Lt(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}}var wa=Sa;class Ra extends wa{constructor(t,e,i,n){super(t,e,i,n),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),s=this.coordinates.length,r=this.appendFlatPointCoordinates(i,n);this.instructions.push([xa.DRAW_IMAGE,s,r,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,s,r,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),s=this.coordinates.length,r=this.appendFlatPointCoordinates(i,n);this.instructions.push([xa.DRAW_IMAGE,s,r,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,s,r,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),n=t.getSize(),s=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=n[1],this.opacity_=t.getOpacity(),this.originX_=s[0],this.originY_=s[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=n[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}}var Ta=Ra;class Ia extends wa{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinates_(t,e,i,n){const s=this.coordinates.length,r=this.appendFlatLineCoordinates(t,e,i,n,!1,!1),o=[xa.MOVE_TO_LINE_TO,s,r];return this.instructions.push(o),this.hitDetectionInstructions.push(o),i}drawLineString(t,e){const i=this.state,n=i.strokeStyle,s=i.lineWidth;if(void 0===n||void 0===s)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,or,ar],ya);const r=t.getFlatCoordinates(),o=t.getStride();this.drawFlatCoordinates_(r,0,r.length,o),this.hitDetectionInstructions.push(ma),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,n=i.strokeStyle,s=i.lineWidth;if(void 0===n||void 0===s)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,or,ar],ya);const r=t.getEnds(),o=t.getFlatCoordinates(),a=t.getStride();let h=0;for(let l=0,c=r.length;l=t){const e=(t-a+u)/u,d=j(i,l,e),g=j(n,c,e);h.push(d,g),r.push(h),h=[d,g],a==t&&(o+=s),a=0}else if(a0&&r.push(h),r}function Oa(t,e,i,n,s){let r,o,a,h,l,c,u,d,g,_,f=i,p=i,m=0,y=0,v=i;for(o=i;ot&&(y>m&&(m=y,f=v,p=o),y=0,v=o-s)),a=h,u=g,d=_),l=i,c=n}return y+=h,y>m?[v,o]:[f,p]}const Pa={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};class Da extends wa{constructor(t,e,i,n){super(t,e,i,n),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[sr]={fillStyle:sr},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,n=this.textStrokeState_,s=this.textState_;if(""===this.text_||!s||!i&&!n)return;const r=this.coordinates;let o=r.length;const a=t.getType();let h=null,l=t.getStride();if("line"!==s.placement||"LineString"!=a&&"MultiLineString"!=a&&"Polygon"!=a&&"MultiPolygon"!=a){let i=s.overflow?null:[];switch(a){case"Point":case"MultiPoint":h=t.getFlatCoordinates();break;case"LineString":h=t.getFlatMidpoint();break;case"Circle":h=t.getCenter();break;case"MultiLineString":h=t.getFlatMidpoints(),l=2;break;case"Polygon":h=t.getFlatInteriorPoint(),s.overflow||i.push(h[2]/this.resolution),l=3;break;case"MultiPolygon":const e=t.getFlatInteriorPoints();h=[];for(let t=0,n=e.length;t{const n=r[2*(t+i)]===h[i*l]&&r[2*(t+i)+1]===h[i*l+1];return n||--t,n}))}this.saveTextStates_(),(s.backgroundFill||s.backgroundStroke)&&(this.setFillStrokeStyle(s.backgroundFill,s.backgroundStroke),s.backgroundFill&&this.updateFillStyle(this.state,this.createFill),s.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let c=s.padding;if(c!=gr&&(s.scale[0]<0||s.scale[1]<0)){let t=s.padding[0],e=s.padding[1],i=s.padding[2],n=s.padding[3];s.scale[0]<0&&(e=-e,n=-n),s.scale[1]<0&&(t=-t,i=-i),c=[t,e,i,n]}const u=this.pixelRatio;this.instructions.push([xa.DRAW_IMAGE,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,c==gr?gr:c.map((function(t){return t*u})),!!s.backgroundFill,!!s.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]);const d=1/u,g=this.state.fillStyle;s.backgroundFill&&(this.state.fillStyle=sr,this.hitDetectionInstructions.push(this.createFill(this.state))),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[d,d],NaN,void 0,this.declutterImageWithText_,c,!!s.backgroundFill,!!s.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?sr:this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]),s.backgroundFill&&(this.state.fillStyle=g,this.hitDetectionInstructions.push(this.createFill(this.state))),this.endGeometry(e)}else{if(!re(this.getBufferedMaxExtent(),t.getExtent()))return;let i;if(h=t.getFlatCoordinates(),"LineString"==a)i=[h.length];else if("MultiLineString"==a)i=t.getEnds();else if("Polygon"==a)i=t.getEnds().slice(0,1);else if("MultiPolygon"==a){const e=t.getEndss();i=[];for(let t=0,n=e.length;tt[2]}else I=x>R;const M=Math.PI,L=[],b=C+n===e;let A;if(e=C,p=0,m=S,d=t[e],g=t[e+1],b){y(),A=Math.atan2(g-f,d-_),I&&(A+=A>0?-M:M);const t=(R+x)/2,e=(T+E)/2;return L[0]=[t,e,(w-r)/2,A,s],L}s=s.replace(/\n/g," ");for(let O=0,P=s.length;O0?-M:M),void 0!==A){let e=t-A;if(e+=e>M?-2*M:e<-M?2*M:0,Math.abs(e)>o)return null}A=t;const u=O;let x=0;for(;O0&&t.push("\n",""),t.push(e,""),t}class qa{constructor(t,e,i,n){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=n.instructions,this.coordinates=n.coordinates,this.coordinateCache_={},this.renderedTransform_=mi(),this.hitDetectionInstructions=n.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=n.fillStates||{},this.strokeStates=n.strokeStates||{},this.textStates=n.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,n){const s=t+e+i+n;if(this.labels_[s])return this.labels_[s];const r=n?this.strokeStates[n]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],h=this.pixelRatio,l=[a.scale[0]*h,a.scale[1]*h],c=Array.isArray(t),u=a.justify?Pa[a.justify]:Ua(Array.isArray(t)?t[0]:t,a.textAlign||ur),d=n&&r.lineWidth?r.lineWidth:0,g=c?t:t.split("\n").reduce(Ha,[]),{width:_,height:f,widths:p,heights:m,lineWidths:y}=wr(a,g),v=_+d,x=[],E=(v+2)*l[0],C=(f+d)*l[1],S={width:E<0?Math.floor(E):Math.ceil(E),height:C<0?Math.floor(C):Math.ceil(C),contextInstructions:x};1==l[0]&&1==l[1]||x.push("scale",l),n&&(x.push("strokeStyle",r.strokeStyle),x.push("lineWidth",d),x.push("lineCap",r.lineCap),x.push("lineJoin",r.lineJoin),x.push("miterLimit",r.miterLimit),x.push("setLineDash",[r.lineDash]),x.push("lineDashOffset",r.lineDashOffset)),i&&x.push("fillStyle",o.fillStyle),x.push("textBaseline","middle"),x.push("textAlign","center");const w=.5-u;let R=u*v+w*d;const T=[],I=[];let M,L=0,b=0,A=0,O=0;for(let P=0,D=g.length;Pt?t-h:s,v=r+l>e?e-l:r,x=g[3]+y*u[0]+g[1],E=g[0]+v*u[1]+g[2],C=p-g[3],S=m-g[0];let w;return(_||0!==c)&&(Ya[0]=C,Va[0]=C,Ya[1]=S,Ba[1]=S,Ba[0]=C+x,Ka[0]=Ba[0],Ka[1]=S+E,Va[1]=Ka[1]),0!==c?(w=Si(mi(),i,n,1,1,c,-i,-n),Ei(w,Ya),Ei(w,Ba),Ei(w,Ka),Ei(w,Va),Nt(Math.min(Ya[0],Ba[0],Ka[0],Va[0]),Math.min(Ya[1],Ba[1],Ka[1],Va[1]),Math.max(Ya[0],Ba[0],Ka[0],Va[0]),Math.max(Ya[1],Ba[1],Ka[1],Va[1]),Xa)):Nt(Math.min(C,C+x),Math.min(S,S+E),Math.max(C,C+x),Math.max(S,S+E),Xa),d&&(p=Math.round(p),m=Math.round(m)),{drawImageX:p,drawImageY:m,drawImageW:y,drawImageH:v,originX:h,originY:l,declutterBox:{minX:Xa[0],minY:Xa[1],maxX:Xa[2],maxY:Xa[3],value:f},canvasTransform:w,scale:u}}replayImageOrLabel_(t,e,i,n,s,r,o){const a=!(!r&&!o),h=n.declutterBox,l=t.canvas,c=o?o[2]*n.scale[0]/2:0,u=h.minX-c<=l.width/e&&h.maxX+c>=0&&h.minY-c<=l.height/e&&h.maxY+c>=0;return u&&(a&&this.replayTextBackground_(t,Ya,Ba,Ka,Va,r,o),Rr(t,n.canvasTransform,s,i,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0}fill_(t){if(this.alignFill_){const e=Ei(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t["strokeStyle"]=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,n){const s=this.textStates[e],r=this.createLabel(t,e,n,i),o=this.strokeStates[i],a=this.pixelRatio,h=Ua(Array.isArray(t)?t[0]:t,s.textAlign||ur),l=Pa[s.textBaseline||dr],c=o&&o.lineWidth?o.lineWidth:0,u=r.width/a-2*s.scale[0],d=h*u+2*(.5-h)*c,g=l*r.height/a+2*(.5-l)*c;return{label:r,anchorX:d,anchorY:g}}execute_(t,e,i,n,s,r,o,a){let h;this.pixelCoordinates_&&f(i,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Mi(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),xi(this.renderedTransform_,i));let l=0;const c=n.length;let u,d,g,_,p,m,y,v,x,E,C,S,w=0,R=0,T=0,I=null,M=null;const L=this.coordinateCache_,b=this.viewRotation_,A=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,O={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},P=this.instructions!=n||this.overlaps?0:200;let D,F,k,N;while(lP&&(this.fill_(t),R=0),T>P&&(t.stroke(),T=0),R||T||(t.beginPath(),_=NaN,p=NaN),++l;break;case xa.CIRCLE:w=i[1];const n=h[w],c=h[w+1],f=h[w+2],G=h[w+3],W=f-n,z=G-c,X=Math.sqrt(W*W+z*z);t.moveTo(n+X,c),t.arc(n,c,X,0,2*Math.PI,!0),++l;break;case xa.CLOSE_PATH:t.closePath(),++l;break;case xa.CUSTOM:w=i[1],u=i[2];const Y=i[3],B=i[4],K=6==i.length?i[5]:void 0;O.geometry=Y,O.feature=D,l in L||(L[l]=[]);const V=L[l];K?K(h,w,u,2,V):(V[0]=h[w],V[1]=h[w+1],V.length=2),B(V,O),++l;break;case xa.DRAW_IMAGE:w=i[1],u=i[2],v=i[3],d=i[4],g=i[5];let j=i[6];const Z=i[7],U=i[8],H=i[9],q=i[10];let J=i[11];const $=i[12];let Q=i[13];const tt=i[14],et=i[15];if(!v&&i.length>=20){x=i[19],E=i[20],C=i[21],S=i[22];const t=this.drawLabelWithPointPlacement_(x,E,C,S);v=t.label,i[3]=v;const e=i[23];d=(t.anchorX-e)*this.pixelRatio,i[4]=d;const n=i[24];g=(t.anchorY-n)*this.pixelRatio,i[5]=g,j=v.height,i[6]=j,Q=v.width,i[13]=Q}let it,nt,st,rt;i.length>25&&(it=i[25]),i.length>17?(nt=i[16],st=i[17],rt=i[18]):(nt=gr,st=!1,rt=!1),q&&A?J+=b:q||A||(J-=b);let ot=0;for(;w0){if(!r||"Image"!==g&&"Text"!==g||r.includes(t)){const i=(d[a]-3)/4,r=n-i%o,h=n-(i/o|0),l=s(t,e,r*r+h*h);if(l)return l}l.clearRect(0,0,o,o);break}}const f=Object.keys(this.executorsByZIndex_).map(Number);let p,m,y,v,x;for(f.sort(u),p=f.length-1;p>=0;--p){const t=f[p].toString();for(y=this.executorsByZIndex_[t],m=$a.length-1;m>=0;--m)if(g=$a[m],v=y[g],void 0!==v&&(x=v.executeHitDetection(l,a,i,_,c),x))return x}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],n=e[1],s=e[2],r=e[3],o=[i,n,i,r,s,r,s,n];return Mi(o,0,8,2,t,o),o}isEmpty(){return C(this.executorsByZIndex_)}execute(t,e,i,n,s,r,o){const a=Object.keys(this.executorsByZIndex_).map(Number);let h,l,c,d,g,_;for(a.sort(u),this.maxExtent_&&(t.save(),this.clip(t,i)),r=r||$a,o&&a.reverse(),h=0,l=a.length;hi)break;let a=n[o];a||(a=[],n[o]=a),a.push(4*((t+r)*e+(t+s))+3),r>0&&a.push(4*((t-r)*e+(t+s))+3),s>0&&(a.push(4*((t+r)*e+(t-s))+3),r>0&&a.push(4*((t-r)*e+(t-s))+3))}const s=[];for(let r=0,o=n.length;rt*this.pixelRatio_)),lineDashOffset:(s||ar)*this.pixelRatio_,lineJoin:void 0!==r?r:hr,lineWidth:(void 0!==o?o:_r)*this.pixelRatio_,miterLimit:void 0!==a?a:lr,strokeStyle:Us(t||cr)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),n=t.getAnchor(),s=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=n[0]*i,this.imageAnchorY_=n[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=s[0],this.imageOriginY_=s[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const r=t.getScaleArray();this.imageScale_=[r[0]*this.pixelRatio_/i,r[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:Us(t||sr)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),n=i.getLineDash(),s=i.getLineDashOffset(),r=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:rr,lineDash:n||or,lineDashOffset:s||ar,lineJoin:void 0!==r?r:hr,lineWidth:void 0!==o?o:_r,miterLimit:void 0!==a?a:lr,strokeStyle:Us(t||cr)}}else this.textStrokeState_=null;const n=t.getFont(),s=t.getOffsetX(),r=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),h=t.getScaleArray(),l=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==n?n:nr,textAlign:void 0!==c?c:ur,textBaseline:void 0!==u?u:dr},this.text_=void 0!==l?Array.isArray(l)?l.reduce(((t,e,i)=>t+(i%2?" ":e)),""):l:"",this.textOffsetX_=void 0!==s?this.pixelRatio_*s:0,this.textOffsetY_=void 0!==r?this.pixelRatio_*r:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*h[0],this.pixelRatio_*h[1]]}else this.text_=""}}var sh=nh;const rh=.5;function oh(t,e,i,n,s,r,o){const a=t[0]*rh,h=t[1]*rh,l=$n(a,h);l.imageSmoothingEnabled=!1;const c=l.canvas,d=new sh(l,rh,s,null,o),g=i.length,_=Math.floor(16777215/g),f={};for(let u=1;u<=g;++u){const t=i[u-1],e=t.getStyleFunction()||n;if(!e)continue;let o=e(t,r);if(!o)continue;Array.isArray(o)||(o=[o]);const a=u*_,h=a.toString(16).padStart(7,"#00000");for(let i=0,n=o.length;i{if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];Ei(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,n=this.renderedRotation_,s=this.renderedProjection_,r=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],h=t[0]*rh,l=t[1]*rh;a.push(this.getRenderTransform(e,i,n,rh,h,l,0).slice());const c=o.getSource(),u=s.getExtent();if(c.getWrapX()&&s.canWrapX()&&!Pt(u,r)){let t=r[0];const s=se(u);let o,c=0;while(tu[2])++c,o=s*c,a.push(this.getRenderTransform(e,i,n,rh,h,l,o).slice()),t-=s}this.hitDetectionImageData_=oh(t,a,this.renderedFeatures_,o.getStyleFunction(),r,i,n)}e(ah(t,this.renderedFeatures_,this.hitDetectionImageData_))}))}forEachFeatureAtCoordinate(t,e,i,n,s){if(!this.replayGroup_)return;const r=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),h={},l=function(t,e,i){const r=D(t),o=h[r];if(o){if(!0!==o&&ic=n.forEachFeatureAtCoordinate(t,r,o,i,l,n===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map((t=>t.value)):null))),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const n=t.viewHints[Q.ANIMATING],s=t.viewHints[Q.INTERACTING],r=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!r&&n||!o&&s)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,h=t.viewState,l=h.projection,c=h.resolution,u=t.pixelRatio,d=e.getRevision(),g=e.getRenderBuffer();let _=e.getRenderOrder();void 0===_&&(_=ch);const p=h.center.slice(),m=Lt(a,g*c),y=m.slice(),v=[m.slice()],x=l.getExtent();if(i.getWrapX()&&l.canWrapX()&&!Pt(x,t.extent)){const t=se(x),e=Math.max(se(m)/2,t);m[0]=x[0]-e,m[2]=x[2]+e,pe(p,l);const i=ce(v[0],l);i[0]x[0]&&i[2]>x[2]&&v.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==c&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&Pt(this.wrappedRenderedExtent_,m))return f(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=p,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const E=new Ga(dh(c,u),m,c,u);let C;this.getLayer().getDeclutter()&&(C=new Ga(dh(c,u),m,c,u));const S=ze();let w;if(S){for(let t=0,e=v.length;t{let i;const n=t.getStyleFunction()||e.getStyleFunction();if(n&&(i=n(t,c)),i){const e=this.renderFeature(t,R,i,E,w,C);T=T&&!e}},M=Be(m,l),L=i.getFeaturesInExtent(M);_&&L.sort(_);for(let f=0,O=L.length;f0)this.pop()}extend(t){for(let e=0,i=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new bh(Mh.ADD,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,n=e.length;i=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new bh(Mh.REMOVE,e,t)),e}setAt(t,e){const i=this.getLength();if(t>=i)return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const n=this.array_[t];this.array_[t]=e,this.dispatchEvent(new bh(Mh.REMOVE,n,t)),this.dispatchEvent(new bh(Mh.ADD,e,t))}updateLength_(){this.set(Lh.LENGTH,this.array_.length)}assertUnique_(t,e){for(let i=0,n=this.array_.length;i=200&&a.status<300){const t=e.getType();let n;"json"==t||"text"==t?n=a.responseText:"xml"==t?(n=a.responseXML,n||(n=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(n=a.response),n?r(e.readFeatures(n,{extent:i,featureProjection:s}),e.readProjection(n)):o()}else o()},a.onerror=o,a.send()}function Yh(t,e){return function(i,n,s,r,o){const a=this;Xh(t,e,i,n,s,(function(t,e){a.addFeatures(t),void 0!==r&&r(t)}),o||v)}}class Bh extends o{constructor(t,e,i){super(t),this.feature=e,this.features=i}}class Kh extends Nh{constructor(t){t=t||{},super({attributions:t.attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=v,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(W(this.format_,"`format` must be set when `url` is set"),this.loader_=Yh(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:Wh;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,n;this.featuresRtree_=e?new Dh:null,this.loadedExtentsRtree_=new Dh,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?n=t.features:t.features&&(i=t.features,n=i.getArray()),e||void 0!==i||(i=new Oh(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=D(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Bh(Gh.ADDFEATURE,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[T(e,R.CHANGE,this.handleFeatureChange_,this),T(e,a.PROPERTYCHANGE,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const n=e.getId();return void 0!==n&&(n.toString()in this.idIndex_?i=!1:this.idIndex_[n.toString()]=e),i&&(W(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],n=[];for(let s=0,r=t.length;s{e||(e=!0,this.addFeature(t.element),e=!1)})),t.addEventListener(Mh.REMOVE,(t=>{e||(e=!0,this.removeFeature(t.element),e=!1)})),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){const e=this.featureChangeKeys_[t];e.forEach(M)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=t=>{this.removeFeatureInternal(t)};this.featuresRtree_.forEach(t);for(const e in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[e])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new Bh(Gh.CLEAR);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){const n=i.getGeometry();if(n.intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){const n=i.getGeometry();if(n.intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),C(this.nullGeometryFeatures_)||_(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){const i=e&&e.canWrapX()&&this.getWrapX();if(!i)return this.featuresRtree_.getInExtent(t);const n=ue(t,e);return[].concat(...n.map((t=>this.featuresRtree_.getInExtent(t))))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],n=t[1];let s=null;const r=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||m,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),h=o;if(o=e.closestPointXY(i,n,r,o),o{--this.loadingExtentsCount_,this.dispatchEvent(new Bh(Gh.FEATURESLOADEND,void 0,t))}),(()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Bh(Gh.FEATURESLOADERROR))})),n.insert(t,{extent:t.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(Xt(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=D(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);const i=this.removeFeatureInternal(t);i&&this.changed()}removeFeatureInternal(t){const e=D(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(M),delete this.featureChangeKeys_[e];const n=t.getId();return void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Bh(Gh.REMOVEFEATURE,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){W(this.format_,"`format` must be set when `url` is set"),this.url_=t,this.setLoader(Yh(t,this.format_))}}var Vh=Kh;class jh{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){while(this.canExpireCache())this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;while(e)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return W(void 0!==i,"Tried to get a value for a key that does not exist in the cache"),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return W(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){if(this.containsKey(t))return this.entries_[t].value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){W(!(t in this.entries_),"Tried to set a value for a key that is used already");const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}}var Zh=jh;function Uh(t,e,i,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=i,n):[t,e,i]}function Hh(t,e,i){return t+"/"+e+"/"+i}function qh(t){return Hh(t[0],t[1],t[2])}function Jh(t){return t.split("/").map(Number)}function $h(t){return(t[1]<i||i>e.getMaxZoom())return!1;const r=e.getFullTileRange(i);return!r||r.containsXY(n,s)}class tl extends Zh{clear(){while(this.getCount()>0)this.pop().release();super.clear()}expireCache(t){while(this.canExpireCache()){const e=this.peekLast();if(e.getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=this.peekFirstKey(),e=Jh(t),i=e[0];this.forEach((t=>{t.tileCoord[0]!==i&&(this.remove(qh(t.tileCoord)),t.release())}))}}var el=tl,il={TILELOADSTART:"tileloadstart",TILELOADEND:"tileloadend",TILELOADERROR:"tileloaderror"};const nl=[0,0,0],sl=5;class rl{constructor(t){let e;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,W(p(this.resolutions_,(function(t,e){return e-t}),!0),"`resolutions` must be sorted in descending order"),!t.origins)for(let n=0,s=this.resolutions_.length-1;n=this.minZoom){if(2===this.zoomFactor_?(r=Math.floor(r/2),o=Math.floor(o/2),s=ks(r,r,o,o,i)):s=this.getTileRangeForExtentAndZ(a,h,i),e(h,s))return!0;--h}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]this.maxZoom||e0?n:Math.max(r/i[0],s/i[1]);const o=e+1,a=new Array(o);for(let h=0;hi.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,n){}}class fl extends o{constructor(t,e){super(t),this.tile=e}}var pl=_l;function ml(t,e){const i=/\{z\}/g,n=/\{x\}/g,s=/\{y\}/g,r=/\{-y\}/g;return function(o,a,h){if(o)return t.replace(i,o[0].toString()).replace(n,o[1].toString()).replace(s,o[2].toString()).replace(r,(function(){const t=o[0],i=e.getFullTileRange(t);W(i,"The {-y} placeholder requires a tile grid with extent");const n=i.getHeight()-o[2]-1;return n.toString()}))}}function yl(t,e){const i=t.length,n=new Array(i);for(let s=0;sthis.getTileInternal(t,e,i,n,r)),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.getInterpolate());return _.key=c,h?(_.interimTile=h,_.refreshInterimChain(),o.replace(l,_)):o.set(l,_),_}getTileInternal(t,e,i,n,s){let r=null;const o=Hh(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(r=this.tileCache.get(o),r.key!=a){const h=r;r=this.createTile_(t,e,i,n,s,a),h.getState()==us.IDLE?r.interimTile=h.interimTile:r.interimTile=h,r.refreshInterimChain(),this.tileCache.replace(o,r)}}else r=this.createTile_(t,e,i,n,s,a),this.tileCache.set(o,r);return r}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=Le(t);if(i){const t=D(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}}function wl(t,e){t.getImage().src=e}var Rl=Sl;class Tl extends Rl{constructor(t){t=t||{};const e=void 0!==t.projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:cl({extent:gl(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}}var Il=Tl;class Ml extends N{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"===typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const t=new Ml(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());const e=this.getGeometry();e&&t.setGeometry(e.clone());const i=this.getStyle();return i&&t.setStyle(i),t}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(M(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=T(t,R.CHANGE,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?Ll(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()}}function Ll(t){if("function"===typeof t)return t;let e;if(Array.isArray(t))e=t;else{W("function"===typeof t.getZIndex,"Expected an `ol/style/Style` or an array of `ol/style/Style.js`");const i=t;e=[i]}return function(){return e}}var bl=Ml;class Al extends l{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){O()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;Si(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),wi(n,i)}forEachFeatureAtCoordinate(t,e,i,n,s,r,o,a){let h;const l=e.viewState;function c(t,e,i,n){return s.call(r,e,t?i:null,n)}const u=l.projection,d=pe(t.slice(),u),g=[[0,0]];if(u.canWrapX()&&n){const t=u.getExtent(),e=se(t);g.push([-e,0],[e,0])}const _=e.layerStatesArray,f=_.length,p=[],m=[];for(let v=0;v=0;--n){const s=_[n],r=s.layer;if(r.hasRenderer()&&Pn(s,l)&&o.call(a,r)){const n=r.getRenderer(),o=r.getSource();if(n&&o){const r=o.getWrapX()?d:t,a=c.bind(null,s.managed);m[0]=r[0]+g[v][0],m[1]=r[1]+g[v][1],h=n.forEachFeatureAtCoordinate(m,e,i,a,p)}if(h)return h}}if(0===p.length)return;const y=1/p.length;return p.forEach(((t,e)=>t.distanceSq+=e*y)),p.sort(((t,e)=>t.distanceSq-e.distanceSq)),p.some((t=>h=t.callback(t.feature,t.layer,t.geometry))),h}hasFeatureAtCoordinate(t,e,i,n,s,r){const o=this.forEachFeatureAtCoordinate(t,e,i,n,m,this,s,r);return void 0!==o}getMap(){return this.map_}renderFrame(t){O()}flushDeclutterItems(t){}scheduleExpireIconCache(t){Br.canExpireCache()&&t.postRenderFunctions.push(Ol)}}function Ol(t,e){Br.expire()}var Pl=Al;class Dl extends Pl{constructor(t){super(t),this.fontChangeListenerKey_=T(fr,a.PROPERTYCHANGE,t.redrawText.bind(t)),this.element_=document.createElement("div");const e=this.element_.style;e.position="absolute",e.width="100%",e.height="100%",e.zIndex="0",this.element_.className=Js+" ol-layers";const i=t.getViewport();i.insertBefore(this.element_,i.firstChild||null),this.children_=[],this.renderedVisible_=!0,this.declutterLayers_=[]}dispatchRenderEvent(t,e){const i=this.getMap();if(i.hasListener(t)){const n=new Yn(t,void 0,e);i.dispatchEvent(n)}}disposeInternal(){M(this.fontChangeListenerKey_),this.element_.parentNode.removeChild(this.element_),super.disposeInternal()}renderFrame(t){if(!t)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(t),this.dispatchRenderEvent($.PRECOMPOSE,t);const e=t.layerStatesArray.sort((function(t,e){return t.zIndex-e.zIndex})),i=t.viewState;this.children_.length=0;const n=this.declutterLayers_;n.length=0;let s=null;for(let r=0,o=e.length;r=0;--i)e[i].renderDeclutter(t);e.length=0}}var Fl=Dl;class kl extends o{constructor(t,e){super(t),this.layer=e}}const Nl={LAYERS:"layers"};class Gl extends J{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(Nl.LAYERS,this.handleLayersChanged_),i?Array.isArray(i)?i=new Oh(i.slice(),{unique:!0}):W("function"===typeof i.getArray,"Expected `layers` to be an array or a `Collection`"):i=new Oh(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(M),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(T(t,Mh.ADD,this.handleLayersAdd_,this),T(t,Mh.REMOVE,this.handleLayersRemove_,this));for(const i in this.listenerKeys_)this.listenerKeys_[i].forEach(M);E(this.listenerKeys_);const e=t.getArray();for(let i=0,n=e.length;i{this.clickTimeoutId_=void 0;const e=new Bl(Kl.SINGLECLICK,this.map_,t);this.dispatchEvent(e)}),250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==Kl.POINTERUP||e.type==Kl.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=Kl.POINTERDOWN&&e.type!=Kl.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new Bl(Kl.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(M),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new Bl(Kl.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(T(t,Kl.POINTERMOVE,this.handlePointerMove_,this),T(t,Kl.POINTERUP,this.handlePointerUp_,this),T(this.element_,Kl.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(T(this.element_.getRootNode(),Kl.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new Bl(Kl.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new Bl(Kl.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"===typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(M(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(R.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(M(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(M),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}}var Zl=jl,Ul={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend",LOADSTART:"loadstart",LOADEND:"loadend"},Hl={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"};const ql=1/0;class Jl{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,E(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const n=this.keyFunction_(i);return delete this.queuedElements_[n],i}enqueue(t){W(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=ql&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,n=e.length,s=e[t],r=i[t],o=t;while(t>1){const s=this.getLeftChildIndex_(t),r=this.getRightChildIndex_(t),o=rt){const t=this.getParentIndex_(e);if(!(n[t]>r))break;i[e]=i[t],n[e]=n[t],e=t}i[e]=s,n[e]=r}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let n=0;const s=e.length;let r,o,a;for(o=0;o0)n=this.dequeue()[0],s=n.getKey(),i=n.getState(),i!==us.IDLE||s in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[s]=!0,++this.tilesLoading_,++r,n.load())}}var tc=Ql;function ec(t,e,i,n,s){if(!t||!(i in t.wantedTiles))return ql;if(!t.wantedTiles[i][e.getKey()])return ql;const r=t.viewState.center,o=n[0]-r[0],a=n[1]-r[1];return 65536*Math.log(s)+Math.sqrt(o*o+a*a)/s}class ic extends N{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){ns(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&ns(this.element);for(let e=0,i=this.listenerKeys.length;ee.getAttributions(t))))),i=!this.getMap().getAllLayers().some((t=>t.getSource()&&!1===t.getSource().getAttributionsCollapsible()));return this.overrideCollapsible_||this.setCollapsible(i),e}updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=this.collectSourceAttributions_(t),i=e.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!f(e,this.renderedAttributions_)){ss(this.ulElement_);for(let t=0,i=e.length;t0&&i%(2*Math.PI)!==0?e.animate({rotation:0,duration:this.duration_,easing:ri}):e.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(Hs);t||0!==i?t&&0!==i&&this.element.classList.remove(Hs):this.element.classList.add(Hs)}this.label_.style.transform=t}this.rotation_=i}}var ac=oc;class hc extends nc{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,n=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",s=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",r=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",h=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=n,l.setAttribute("type","button"),l.title=a,l.appendChild("string"===typeof r?document.createTextNode(r):r),l.addEventListener(R.CLICK,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=s,c.setAttribute("type","button"),c.title=h,c.appendChild("string"===typeof o?document.createTextNode(o):o),c.addEventListener(R.CLICK,this.handleClick_.bind(this,-i),!1);const u=e+" "+Js+" "+$s,d=this.element;d.className=u,d.appendChild(l),d.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap(),i=e.getView();if(!i)return;const n=i.getZoom();if(void 0!==n){const e=i.getConstrainedZoom(n+t);this.duration_>0?(i.getAnimating()&&i.cancelAnimations(),i.animate({zoom:e,duration:this.duration_,easing:ri})):i.setZoom(e)}}}var lc=hc;function cc(t){t=t||{};const e=new Oh,i=void 0===t.zoom||t.zoom;i&&e.push(new lc(t.zoomOptions));const n=void 0===t.rotate||t.rotate;n&&e.push(new ac(t.rotateOptions));const s=void 0===t.attribution||t.attribution;return s&&e.push(new rc(t.attributionOptions)),e}var uc={ACTIVE:"active"};class dc extends N{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(uc.ACTIVE)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(uc.ACTIVE,t)}setMap(t){this.map_=t}}function gc(t,e,i){const n=t.getCenterInternal();if(n){const s=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:ai,center:t.getConstrainedCenter(s)})}}function _c(t,e,i,n){const s=t.getZoom();if(void 0===s)return;const r=t.getConstrainedZoom(s+e),o=t.getResolutionForZoom(r);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==n?n:250,easing:ri})}var fc=dc;class pc extends fc{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==Kl.DBLCLICK){const i=t.originalEvent,n=t.map,s=t.coordinate,r=i.shiftKey?-this.delta_:this.delta_,o=n.getView();_c(o,r,s,this.duration_),i.preventDefault(),e=!0}return!e}}var mc=pc;class yc extends fc{constructor(t){t=t||{},super(t),t.handleDownEvent&&(this.handleDownEvent=t.handleDownEvent),t.handleDragEvent&&(this.handleDragEvent=t.handleDragEvent),t.handleMoveEvent&&(this.handleMoveEvent=t.handleMoveEvent),t.handleUpEvent&&(this.handleUpEvent=t.handleUpEvent),t.stopDown&&(this.stopDown=t.stopDown),this.handlingDownUpSequence=!1,this.targetPointers=[]}getPointerCount(){return this.targetPointers.length}handleDownEvent(t){return!1}handleDragEvent(t){}handleEvent(t){if(!t.originalEvent)return!0;let e=!1;if(this.updateTrackedPointers_(t),this.handlingDownUpSequence){if(t.type==Kl.POINTERDRAG)this.handleDragEvent(t),t.originalEvent.preventDefault();else if(t.type==Kl.POINTERUP){const e=this.handleUpEvent(t);this.handlingDownUpSequence=e&&this.targetPointers.length>0}}else if(t.type==Kl.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==Kl.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}}function vc(t){const e=t.length;let i=0,n=0;for(let s=0;s0&&this.condition_(t)){const e=t.map,i=e.getView();return this.lastCentroid=null,i.getAnimating()&&i.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}}var Dc=Pc;class Fc extends xc{constructor(t){t=t||{},super({stopDown:y}),this.condition_=t.condition?t.condition:Cc,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!Ac(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===ti)return;const n=e.getSize(),s=t.pixel,r=Math.atan2(n[1]/2-s[1],s[0]-n[0]/2);if(void 0!==this.lastAngle_){const t=r-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=r}handleUpEvent(t){if(!Ac(t))return!0;const e=t.map,i=e.getView();return i.endInteraction(this.duration_),!1}handleDownEvent(t){if(!Ac(t))return!1;if(Tc(t)&&this.condition_(t)){const e=t.map;return e.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}}var kc=Fc;class Nc extends l{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",n=this.element_.style;n.left=Math.min(t[0],e[0])+i,n.top=Math.min(t[1],e[1])+i,n.width=Math.abs(e[0]-t[0])+i,n.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]],n=i.map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new En([n])}getGeometry(){return this.geometry_}}var Gc=Nc;const Wc={BOXSTART:"boxstart",BOXDRAG:"boxdrag",BOXEND:"boxend",BOXCANCEL:"boxcancel"};class zc extends o{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}class Xc extends xc{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new Gc(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:Tc,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const n=i[0]-e[0],s=i[1]-e[1];return n*n+s*s>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new zc(Wc.BOXDRAG,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new zc(e?Wc.BOXEND:Wc.BOXCANCEL,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new zc(Wc.BOXSTART,t.coordinate,t)),!0)}onBoxEnd(t){}}var Yc=Xc;class Bc extends Yc{constructor(t){t=t||{};const e=t.condition?t.condition:Lc;super({condition:e,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap(),i=e.getView();let n=this.getGeometry();if(this.out_){const t=i.rotatedExtentForGeometry(n),e=i.getResolutionForExtentInternal(t),s=i.getResolution()/e;n=n.clone(),n.scale(s*s)}i.fitInternal(n,{duration:this.duration_,easing:ri})}}var Kc=Bc,Vc={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"};class jc extends fc{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return Ic(t)&&bc(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==R.KEYDOWN){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&(n==Vc.DOWN||n==Vc.LEFT||n==Vc.RIGHT||n==Vc.UP)){const s=t.map,r=s.getView(),o=r.getResolution()*this.pixelDelta_;let a=0,h=0;n==Vc.DOWN?h=-o:n==Vc.LEFT?a=-o:n==Vc.RIGHT?a=o:h=o;const l=[a,h];_e(l,r.getRotation()),gc(r,l,this.duration_),i.preventDefault(),e=!0}}return!e}}var Zc=jc;class Uc extends fc{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!Mc(t)&&bc(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==R.KEYDOWN||t.type==R.KEYPRESS){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&("+"===n||"-"===n)){const s=t.map,r="+"===n?this.delta_:-this.delta_,o=s.getView();_c(o,r,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}}var Hc=Uc;class qc{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[i+2]>t)i-=3;const n=this.points_[e+2]-this.points_[i+2];if(n<1e3/60)return!1;const s=this.points_[e]-this.points_[i],r=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(r,s),this.initialVelocity_=Math.sqrt(s*s+r*r)/n,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}}var Jc=qc;class $c extends fc{constructor(t){t=t||{},super(t),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:Rc;this.condition_=t.onFocusOnly?Ec(wc,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;const e=t.getView();e.endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;const e=t.type;if(e!==R.WHEEL)return!0;const i=t.map,n=t.originalEvent;let s;if(n.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==R.WHEEL&&(s=n.deltaY,li&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(s/=gi),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(s*=40)),0===s)return!1;this.lastDelta_=s;const r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(s)<4?"trackpad":"wheel");const o=i.getView();if("trackpad"===this.mode_&&!o.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),o.adjustZoom(-s/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=s;const a=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,i),a),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-z(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),_c(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}}var Qc=$c;class tu extends xc{constructor(t){t=t||{};const e=t;e.stopDown||(e.stopDown=y),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],n=this.targetPointers[1],s=Math.atan2(n.clientY-i.clientY,n.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=s;const r=t.map,o=r.getView();o.getConstraints().rotation!==ti&&(this.anchor_=r.getCoordinateFromPixelInternal(r.getEventPixel(vc(this.targetPointers))),this.rotating_&&(r.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map,i=e.getView();return i.endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}}var eu=tu;class iu extends xc{constructor(t){t=t||{};const e=t;e.stopDown||(e.stopDown=y),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.targetPointers[1],s=i.clientX-n.clientX,r=i.clientY-n.clientY,o=Math.sqrt(s*s+r*r);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,h=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(vc(this.targetPointers))),a.render(),h.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map,i=e.getView(),n=this.lastScaleDelta_>1?1:-1;return i.endInteraction(this.duration_,n),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}}var nu=iu;function su(t){t=t||{};const e=new Oh,i=new Jc(-.005,.05,100),n=void 0===t.altShiftDragRotate||t.altShiftDragRotate;n&&e.push(new kc);const s=void 0===t.doubleClickZoom||t.doubleClickZoom;s&&e.push(new mc({delta:t.zoomDelta,duration:t.zoomDuration}));const r=void 0===t.dragPan||t.dragPan;r&&e.push(new Dc({onFocusOnly:t.onFocusOnly,kinetic:i}));const o=void 0===t.pinchRotate||t.pinchRotate;o&&e.push(new eu);const a=void 0===t.pinchZoom||t.pinchZoom;a&&e.push(new nu({duration:t.zoomDuration}));const h=void 0===t.keyboard||t.keyboard;h&&(e.push(new Zc),e.push(new Hc({delta:t.zoomDelta,duration:t.zoomDuration})));const l=void 0===t.mouseWheelZoom||t.mouseWheelZoom;l&&e.push(new Qc({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));const c=void 0===t.shiftDragZoom||t.shiftDragZoom;return c&&e.push(new Kc({duration:t.zoomDuration})),e}function ru(t){t instanceof Dn?t.setMapInternal(null):t instanceof Wl&&t.getLayers().forEach(ru)}function ou(t,e){if(t instanceof Dn)t.setMapInternal(e);else if(t instanceof Wl){const i=t.getLayers().getArray();for(let t=0,n=i.length;tthis.updateSize())),this.controls=e.controls||cc(),this.interactions=e.interactions||su({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new tc(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Hl.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(Hl.VIEW,this.handleViewChanged_),this.addChangeListener(Hl.SIZE,this.handleSizeChanged_),this.addChangeListener(Hl.TARGET,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof An||t.view.then((function(t){i.setView(new An(t))})),this.controls.addEventListener(Mh.ADD,(t=>{t.element.setMap(this)})),this.controls.addEventListener(Mh.REMOVE,(t=>{t.element.setMap(null)})),this.interactions.addEventListener(Mh.ADD,(t=>{t.element.setMap(this)})),this.interactions.addEventListener(Mh.REMOVE,(t=>{t.element.setMap(null)})),this.overlays_.addEventListener(Mh.ADD,(t=>{this.addOverlayInternal_(t.element)})),this.overlays_.addEventListener(Mh.REMOVE,(t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)})),this.controls.forEach((t=>{t.setMap(this)})),this.interactions.forEach((t=>{t.setMap(this)})),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){const e=this.getLayerGroup().getLayers();e.push(t)}handleLayerAdd_(t){ou(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const n=this.getCoordinateFromPixelInternal(t);i=void 0!==i?i:{};const s=void 0!==i.hitTolerance?i.hitTolerance:0,r=void 0!==i.layerFilter?i.layerFilter:m,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,s,o,e,null,r,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];function e(i){i.forEach((function(i){i instanceof Wl?e(i.getLayers()):t.push(i)}))}return e(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t);e=void 0!==e?e:{};const n=void 0!==e.layerFilter?e.layerFilter:m,s=void 0!==e.hitTolerance?e.hitTolerance:0,r=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,s,r,n,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_,i=e.getBoundingClientRect(),n=this.getSize(),s=i.width/n[0],r=i.height/n[1],o="changedTouches"in t?t.changedTouches[0]:t;return[(o.clientX-i.left)/s,(o.clientY-i.top)/r]}getTarget(){return this.get(Hl.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return Xe(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?Ei(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Hl.LAYERGROUP)}setLayers(t){const e=this.getLayerGroup();if(t instanceof Oh)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){const t=this.getLayerGroup().getLayers();return t}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e=0;i--){const n=e[i];if(n.getMap()!==this||!n.getActive()||!this.getTargetElement())continue;const s=n.handleEvent(t);if(!s||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,n=i;if(t){const e=t.viewHints;if(e[Q.ANIMATING]||e[Q.INTERACTING]){const e=Date.now()-t.time>8;i=e?0:8,n=e?0:2}}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()}),0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new kl("removelayer",e)),this.set(Hl.LAYERGROUP,t)}setSize(t){this.set(Hl.SIZE,t)}setTarget(t){this.set(Hl.TARGET,t)}setView(t){if(!t||t instanceof An)return void this.set(Hl.VIEW,t);this.set(Hl.VIEW,new An);const e=this;t.then((function(t){e.setView(new An(t))}))}updateSize(){const t=this.getTargetElement();let e;if(t){const i=getComputedStyle(t),n=t.offsetWidth-parseFloat(i["borderLeftWidth"])-parseFloat(i["paddingLeft"])-parseFloat(i["paddingRight"])-parseFloat(i["borderRightWidth"]),s=t.offsetHeight-parseFloat(i["borderTopWidth"])-parseFloat(i["paddingTop"])-parseFloat(i["paddingBottom"])-parseFloat(i["borderBottomWidth"]);isNaN(n)||isNaN(s)||(e=[n,s],!Gs(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&Ce("No map visible because the map container's width or height are 0."))}const i=this.getSize();!e||i&&f(e,i)||(this.setSize(e),this.updateViewportSize_())}updateViewportSize_(){const t=this.getView();if(t){let e;const i=getComputedStyle(this.viewport_);i.width&&i.height&&(e=[parseInt(i.width,10),parseInt(i.height,10)]),t.setViewportSize(e)}}}function hu(t){let e=null;void 0!==t.keyboardEventTarget&&(e="string"===typeof t.keyboardEventTarget?document.getElementById(t.keyboardEventTarget):t.keyboardEventTarget);const i={},n=t.layers&&"function"===typeof t.layers.getLayers?t.layers:new Wl({layers:t.layers});let s,r,o;return i[Hl.LAYERGROUP]=n,i[Hl.TARGET]=t.target,i[Hl.VIEW]=t.view instanceof An?t.view:new An,void 0!==t.controls&&(Array.isArray(t.controls)?s=new Oh(t.controls.slice()):(W("function"===typeof t.controls.getArray,"Expected `controls` to be an array or an `ol/Collection.js`"),s=t.controls)),void 0!==t.interactions&&(Array.isArray(t.interactions)?r=new Oh(t.interactions.slice()):(W("function"===typeof t.interactions.getArray,"Expected `interactions` to be an array or an `ol/Collection.js`"),r=t.interactions)),void 0!==t.overlays?Array.isArray(t.overlays)?o=new Oh(t.overlays.slice()):(W("function"===typeof t.overlays.getArray,"Expected `overlays` to be an array or an `ol/Collection.js`"),o=t.overlays):o=new Oh,{controls:s,interactions:r,keyboardEventTarget:e,overlays:o,values:i}}var lu=au;const cu={ELEMENT:"element",MAP:"map",OFFSET:"offset",POSITION:"position",POSITIONING:"positioning"};class uu extends N{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container "+qs,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(cu.ELEMENT,this.handleElementChanged),this.addChangeListener(cu.MAP,this.handleMapChanged),this.addChangeListener(cu.OFFSET,this.handleOffsetChanged),this.addChangeListener(cu.POSITION,this.handlePositionChanged),this.addChangeListener(cu.POSITIONING,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(cu.ELEMENT)}getId(){return this.id}getMap(){return this.get(cu.MAP)||null}getOffset(){return this.get(cu.OFFSET)}getPosition(){return this.get(cu.POSITION)}getPositioning(){return this.get(cu.POSITIONING)}handleElementChanged(){ss(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(ns(this.element),M(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=T(t,Ul.POSTRENDER,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(cu.ELEMENT,t)}setMap(t){this.set(cu.MAP,t)}setOffset(t){this.set(cu.OFFSET,t)}setPosition(t){this.set(cu.POSITION,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(cu.POSITION))return;const i=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),s=this.getRect(n,[ts(n),es(n)]);t=t||{};const r=void 0===t.margin?20:t.margin;if(!Pt(i,s)){const n=s[0]-i[0],o=i[2]-s[2],a=s[1]-i[1],h=i[3]-s[3],l=[0,0];if(n<0?l[0]=n-r:o<0&&(l[0]=Math.abs(o)+r),a<0?l[1]=a-r:h<0&&(l[1]=Math.abs(h)+r),0!==l[0]||0!==l[1]){const i=e.getView().getCenterInternal(),n=e.getPixelFromCoordinateInternal(i);if(!n)return;const s=[n[0]+l[0],n[1]+l[1]],r=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(s),duration:r.duration,easing:r.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),n=i.left+window.pageXOffset,s=i.top+window.pageYOffset;return[n,s,n+e[0],s+e[1]]}setPositioning(t){this.set(cu.POSITIONING,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(i,n)}updateRenderedPosition(t,e){const i=this.element.style,n=this.getOffset(),s=this.getPositioning();this.setVisible(!0);const r=Math.round(t[0]+n[0])+"px",o=Math.round(t[1]+n[1])+"px";let a="0%",h="0%";"bottom-right"==s||"center-right"==s||"top-right"==s?a="-100%":"bottom-center"!=s&&"center-center"!=s&&"top-center"!=s||(a="-50%"),"bottom-left"==s||"bottom-center"==s||"bottom-right"==s?h="-100%":"center-left"!=s&&"center-center"!=s&&"center-right"!=s||(h="-50%");const l=`translate(${a}, ${h}) translate(${r}, ${o})`;this.rendered.transform_!=l&&(this.rendered.transform_=l,i.transform=l)}getOptions(){return this.options}}var du=uu;function gu(t,e,i,n,s,r,o){let a,h;const l=(i-e)/n;if(1===l)a=e;else if(2===l)a=e,h=s;else if(0!==l){let r=t[e],o=t[e+1],l=0;const u=[0];for(let s=e+n;s1?o:2,r=r||new Array(o);for(let c=0;c>1;sthis.styles[t.get("type")]}),this.map=new lu({target:"map",layers:[new Ks({source:new Il({url:"http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}"})})],view:new An({projection:"EPSG:4326",center:[113.948306,22.562039],zoom:16})}),this.map.addLayer(this.vectorLayer)},clickMap(){this.map.on("click",(t=>{this.canAddPoints&&this.addPoints(t.coordinate)}))},addPoints(t){this.coordinate.push(t),console.log(JSON.stringify(this.coordinate)),0==Object.keys(this.pointLayer).length&&(this.pointLayer=new Ih({source:new Vh}),this.map.addLayer(this.pointLayer));const e=new bl({geometry:new an(t)});e.setStyle(new zr({image:new Hr({src:"https://smart-garden-manage.oss-cn-chengdu.aliyuncs.com/shexiangtou.png",scale:.3})})),this.pointLayer.getSource().addFeature(e)},addText(t){const e=document.getElementById("overlay-box"),i=document.createElement("span");i.contentEditable=!0,i.id=t[0];let n=document.createTextNode("摄像头"+t[0].toFixed(2));i.appendChild(n),e.appendChild(i);let s=new du({position:t,element:document.getElementById(t[0]),offset:[-25,30]});this.map.addOverlay(s)},moveFeature(t){let e=t.frameState.time;this.distance=(this.distance+this.speed*(e-this.lastTime)/1e3)%1,this.lastTime=e;const i=this.route.getCoordinateAt(this.distance>1?2-this.distance:this.distance);this.geometryMove.setCoordinates(i);const n=mu(t);n.setStyle(this.styles.featureMove),n.drawGeometry(this.geometryMove),this.map.render()},startAnimation(){this.lastTime=Date.now(),this.vectorLayer.on("postrender",this.moveFeature),this.featureMove.setGeometry(null)},stopAnimation(){this.featureMove.setGeometry(this.geometryMove),this.vectorLayer.un("postrender",this.moveFeature)}}},vu=yu,xu=i(3736),Eu=(0,xu.Z)(vu,n,s,!1,null,null,null),Cu=Eu.exports},5325:function(t,e,i){i(7658),function(e,i){t.exports=i()}(0,(function(){"use strict";function t(t,n,s,r,o){!function t(i,n,s,r,o){for(;r>s;){if(r-s>600){var a=r-s+1,h=n-s+1,l=Math.log(a),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(a-c)/a)*(h-a/2<0?-1:1),d=Math.max(s,Math.floor(n-h*c/a+u)),g=Math.min(r,Math.floor(n+(a-h)*c/a+u));t(i,n,d,g,o)}var _=i[n],f=s,p=r;for(e(i,s,n),o(i[r],_)>0&&e(i,s,r);f0;)p--}0===o(i[s],_)?e(i,s,p):e(i,++p,r),p<=n&&(s=p+1),n<=p&&(r=p-1)}}(t,n,s||0,r||t.length-1,o||i)}function e(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function i(t,e){return te?1:0}var n=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function s(t,e,i){if(!i)return e.indexOf(t);for(var n=0;n=t.minX&&e.maxY>=t.minY}function _(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function f(e,i,n,s,r){for(var o=[i,n];o.length;)if(!((n=o.pop())-(i=o.pop())<=s)){var a=i+Math.ceil((n-i)/s/2)*s;t(e,a,i,n,r),o.push(i,a,a,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(t){var e=this.data,i=[];if(!g(t,e))return i;for(var n=this.toBBox,s=[];e;){for(var r=0;r=0&&s[e].children.length>this._maxEntries;)this._split(s,e),e--;this._adjustParentBBoxes(n,s,e)},n.prototype._split=function(t,e){var i=t[e],n=i.children.length,s=this._minEntries;this._chooseSplitAxis(i,s,n);var o=this._chooseSplitIndex(i,s,n),a=_(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,r(i,this.toBBox),r(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},n.prototype._splitRoot=function(t,e){this.data=_([t,e]),this.data.height=t.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(t,e,i){for(var n,s,r,a,h,l,u,d=1/0,g=1/0,_=e;_<=i-e;_++){var f=o(t,0,_,this.toBBox),p=o(t,_,i,this.toBBox),m=(s=f,r=p,a=void 0,h=void 0,l=void 0,u=void 0,a=Math.max(s.minX,r.minX),h=Math.max(s.minY,r.minY),l=Math.min(s.maxX,r.maxX),u=Math.min(s.maxY,r.maxY),Math.max(0,l-a)*Math.max(0,u-h)),y=c(f)+c(p);m=e;g--){var _=t.children[g];a(h,t.leaf?s(_):_),l+=u(h)}return l},n.prototype._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)a(e[n],t)},n.prototype._condense=function(t){for(var e=t.length-1,i=void 0;e>=0;e--)0===t[e].children.length?e>0?(i=t[e-1].children).splice(i.indexOf(t[e]),1):this.clear():r(t[e],this.toBBox)},n}))}}]); +//# sourceMappingURL=10.bf685dc9.js.map \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js.map b/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js.map new file mode 100644 index 0000000..b62e87e --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/10.bf685dc9.js","mappings":"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","sources":["webpack://hd-glasses-app/./src/pages/map.vue","webpack://hd-glasses-app/./node_modules/ol/events/Event.js","webpack://hd-glasses-app/./node_modules/ol/ObjectEventType.js","webpack://hd-glasses-app/./node_modules/ol/Disposable.js","webpack://hd-glasses-app/./node_modules/ol/array.js","webpack://hd-glasses-app/./node_modules/ol/functions.js","webpack://hd-glasses-app/./node_modules/ol/obj.js","webpack://hd-glasses-app/./node_modules/ol/events/Target.js","webpack://hd-glasses-app/./node_modules/ol/events/EventType.js","webpack://hd-glasses-app/./node_modules/ol/events.js","webpack://hd-glasses-app/./node_modules/ol/Observable.js","webpack://hd-glasses-app/./node_modules/ol/util.js","webpack://hd-glasses-app/./node_modules/ol/Object.js","webpack://hd-glasses-app/./node_modules/ol/layer/Property.js","webpack://hd-glasses-app/./node_modules/ol/asserts.js","webpack://hd-glasses-app/./node_modules/ol/math.js","webpack://hd-glasses-app/./node_modules/ol/layer/Base.js","webpack://hd-glasses-app/./node_modules/ol/render/EventType.js","webpack://hd-glasses-app/./node_modules/ol/ViewHint.js","webpack://hd-glasses-app/./node_modules/ol/ViewProperty.js","webpack://hd-glasses-app/./node_modules/ol/tilegrid/common.js","webpack://hd-glasses-app/./node_modules/ol/proj/Units.js","webpack://hd-glasses-app/./node_modules/ol/proj/Projection.js","webpack://hd-glasses-app/./node_modules/ol/proj/epsg3857.js","webpack://hd-glasses-app/./node_modules/ol/proj/epsg4326.js","webpack://hd-glasses-app/./node_modules/ol/proj/projections.js","webpack://hd-glasses-app/./node_modules/ol/proj/transforms.js","webpack://hd-glasses-app/./node_modules/ol/extent/Relationship.js","webpack://hd-glasses-app/./node_modules/ol/extent.js","webpack://hd-glasses-app/./node_modules/ol/coordinate.js","webpack://hd-glasses-app/./node_modules/ol/sphere.js","webpack://hd-glasses-app/./node_modules/ol/console.js","webpack://hd-glasses-app/./node_modules/ol/proj.js","webpack://hd-glasses-app/./node_modules/ol/centerconstraint.js","webpack://hd-glasses-app/./node_modules/ol/resolutionconstraint.js","webpack://hd-glasses-app/./node_modules/ol/rotationconstraint.js","webpack://hd-glasses-app/./node_modules/ol/easing.js","webpack://hd-glasses-app/./node_modules/ol/has.js","webpack://hd-glasses-app/./node_modules/ol/transform.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/transform.js","webpack://hd-glasses-app/./node_modules/ol/geom/Geometry.js","webpack://hd-glasses-app/./node_modules/ol/geom/SimpleGeometry.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/closest.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/deflate.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/simplify.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/inflate.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/area.js","webpack://hd-glasses-app/./node_modules/ol/geom/LinearRing.js","webpack://hd-glasses-app/./node_modules/ol/geom/Point.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/contains.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/interiorpoint.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/segments.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/intersectsextent.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/reverse.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/orient.js","webpack://hd-glasses-app/./node_modules/ol/geom/Polygon.js","webpack://hd-glasses-app/./node_modules/ol/View.js","webpack://hd-glasses-app/./node_modules/ol/layer/Layer.js","webpack://hd-glasses-app/./node_modules/ol/layer/TileProperty.js","webpack://hd-glasses-app/./node_modules/ol/layer/BaseTile.js","webpack://hd-glasses-app/./node_modules/ol/ImageState.js","webpack://hd-glasses-app/./node_modules/ol/renderer/Layer.js","webpack://hd-glasses-app/./node_modules/ol/render/Event.js","webpack://hd-glasses-app/./node_modules/ol/color.js","webpack://hd-glasses-app/./node_modules/ol/dom.js","webpack://hd-glasses-app/./node_modules/ol/renderer/canvas/Layer.js","webpack://hd-glasses-app/./node_modules/ol/TileState.js","webpack://hd-glasses-app/./node_modules/ol/Tile.js","webpack://hd-glasses-app/./node_modules/ol/Image.js","webpack://hd-glasses-app/./node_modules/ol/ImageTile.js","webpack://hd-glasses-app/./node_modules/ol/reproj/common.js","webpack://hd-glasses-app/./node_modules/ol/reproj/Triangulation.js","webpack://hd-glasses-app/./node_modules/ol/reproj.js","webpack://hd-glasses-app/./node_modules/ol/reproj/Tile.js","webpack://hd-glasses-app/./node_modules/ol/TileRange.js","webpack://hd-glasses-app/./node_modules/ol/size.js","webpack://hd-glasses-app/./node_modules/ol/renderer/canvas/TileLayer.js","webpack://hd-glasses-app/./node_modules/ol/layer/Tile.js","webpack://hd-glasses-app/./node_modules/ol/style/Image.js","webpack://hd-glasses-app/./node_modules/ol/colorlike.js","webpack://hd-glasses-app/./node_modules/ol/css.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas.js","webpack://hd-glasses-app/./node_modules/ol/style/RegularShape.js","webpack://hd-glasses-app/./node_modules/ol/style/Circle.js","webpack://hd-glasses-app/./node_modules/ol/style/Fill.js","webpack://hd-glasses-app/./node_modules/ol/style/Stroke.js","webpack://hd-glasses-app/./node_modules/ol/style/Style.js","webpack://hd-glasses-app/./node_modules/ol/style/IconImageCache.js","webpack://hd-glasses-app/./node_modules/ol/style/IconImage.js","webpack://hd-glasses-app/./node_modules/ol/style/Icon.js","webpack://hd-glasses-app/./node_modules/ol/style/Text.js","webpack://hd-glasses-app/./node_modules/ol/expr/expression.js","webpack://hd-glasses-app/./node_modules/ol/expr/cpu.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/style.js","webpack://hd-glasses-app/./node_modules/ol/layer/BaseVector.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Instruction.js","webpack://hd-glasses-app/./node_modules/ol/render/VectorContext.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Builder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/ImageBuilder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/LineStringBuilder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/PolygonBuilder.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/linechunk.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/straightchunk.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/TextBuilder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/BuilderGroup.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/textpath.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/length.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Executor.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/ExecutorGroup.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Immediate.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/hitdetect.js","webpack://hd-glasses-app/./node_modules/ol/renderer/vector.js","webpack://hd-glasses-app/./node_modules/ol/renderer/canvas/VectorLayer.js","webpack://hd-glasses-app/./node_modules/ol/layer/Vector.js","webpack://hd-glasses-app/./node_modules/ol/CollectionEventType.js","webpack://hd-glasses-app/./node_modules/ol/Collection.js","webpack://hd-glasses-app/./node_modules/ol/structs/RBush.js","webpack://hd-glasses-app/./node_modules/ol/source/Source.js","webpack://hd-glasses-app/./node_modules/ol/source/VectorEventType.js","webpack://hd-glasses-app/./node_modules/ol/loadingstrategy.js","webpack://hd-glasses-app/./node_modules/ol/featureloader.js","webpack://hd-glasses-app/./node_modules/ol/source/Vector.js","webpack://hd-glasses-app/./node_modules/ol/structs/LRUCache.js","webpack://hd-glasses-app/./node_modules/ol/tilecoord.js","webpack://hd-glasses-app/./node_modules/ol/TileCache.js","webpack://hd-glasses-app/./node_modules/ol/source/TileEventType.js","webpack://hd-glasses-app/./node_modules/ol/tilegrid/TileGrid.js","webpack://hd-glasses-app/./node_modules/ol/tilegrid.js","webpack://hd-glasses-app/./node_modules/ol/source/Tile.js","webpack://hd-glasses-app/./node_modules/ol/tileurlfunction.js","webpack://hd-glasses-app/./node_modules/ol/source/UrlTile.js","webpack://hd-glasses-app/./node_modules/ol/source/TileImage.js","webpack://hd-glasses-app/./node_modules/ol/source/XYZ.js","webpack://hd-glasses-app/./node_modules/ol/Feature.js","webpack://hd-glasses-app/./node_modules/ol/renderer/Map.js","webpack://hd-glasses-app/./node_modules/ol/renderer/Composite.js","webpack://hd-glasses-app/./node_modules/ol/layer/Group.js","webpack://hd-glasses-app/./node_modules/ol/MapEvent.js","webpack://hd-glasses-app/./node_modules/ol/MapBrowserEvent.js","webpack://hd-glasses-app/./node_modules/ol/MapBrowserEventType.js","webpack://hd-glasses-app/./node_modules/ol/pointer/EventType.js","webpack://hd-glasses-app/./node_modules/ol/MapBrowserEventHandler.js","webpack://hd-glasses-app/./node_modules/ol/MapEventType.js","webpack://hd-glasses-app/./node_modules/ol/MapProperty.js","webpack://hd-glasses-app/./node_modules/ol/structs/PriorityQueue.js","webpack://hd-glasses-app/./node_modules/ol/TileQueue.js","webpack://hd-glasses-app/./node_modules/ol/control/Control.js","webpack://hd-glasses-app/./node_modules/ol/control/Attribution.js","webpack://hd-glasses-app/./node_modules/ol/control/Rotate.js","webpack://hd-glasses-app/./node_modules/ol/control/Zoom.js","webpack://hd-glasses-app/./node_modules/ol/control/defaults.js","webpack://hd-glasses-app/./node_modules/ol/interaction/Property.js","webpack://hd-glasses-app/./node_modules/ol/interaction/Interaction.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DoubleClickZoom.js","webpack://hd-glasses-app/./node_modules/ol/interaction/Pointer.js","webpack://hd-glasses-app/./node_modules/ol/events/condition.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragPan.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragRotate.js","webpack://hd-glasses-app/./node_modules/ol/render/Box.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragBox.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragZoom.js","webpack://hd-glasses-app/./node_modules/ol/events/Key.js","webpack://hd-glasses-app/./node_modules/ol/interaction/KeyboardPan.js","webpack://hd-glasses-app/./node_modules/ol/interaction/KeyboardZoom.js","webpack://hd-glasses-app/./node_modules/ol/Kinetic.js","webpack://hd-glasses-app/./node_modules/ol/interaction/MouseWheelZoom.js","webpack://hd-glasses-app/./node_modules/ol/interaction/PinchRotate.js","webpack://hd-glasses-app/./node_modules/ol/interaction/PinchZoom.js","webpack://hd-glasses-app/./node_modules/ol/interaction/defaults.js","webpack://hd-glasses-app/./node_modules/ol/Map.js","webpack://hd-glasses-app/./node_modules/ol/Overlay.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/interpolate.js","webpack://hd-glasses-app/./node_modules/ol/geom/LineString.js","webpack://hd-glasses-app/./node_modules/ol/render.js","webpack://hd-glasses-app/src/pages/map.vue","webpack://hd-glasses-app/./src/pages/map.vue?6ecf","webpack://hd-glasses-app/./src/pages/map.vue?6c6a","webpack://hd-glasses-app/./node_modules/rbush/rbush.min.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"content\"}},[_c('div',{ref:\"map\",staticStyle:{\"width\":\"100vw\",\"height\":\"100vh\"},attrs:{\"id\":\"map\"}}),_c('div',{attrs:{\"id\":\"overlay-box\"}}),_c('div',{staticClass:\"actionList\"},[_c('van-grid',{attrs:{\"column-num\":3}},[_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.canAddPoints=true}}},[_vm._v(\"开始新增点位\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.canAddPoints=false}}},[_vm._v(\"结束新增点位\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":_vm.clearPointsLayers}},[_vm._v(\"清除点位\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){return _vm.startAnimation()}}},[_vm._v(\"开始沿轨迹运动\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){return _vm.stopAnimation()}}},[_vm._v(\"结束沿轨迹运动\")])],1)],1),_c('br')],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @module ol/events/Event\n */\n\n/**\n * @classdesc\n * Stripped down implementation of the W3C DOM Level 2 Event interface.\n * See https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface.\n *\n * This implementation only provides `type` and `target` properties, and\n * `stopPropagation` and `preventDefault` methods. It is meant as base class\n * for higher level events defined in the library, and works with\n * {@link module:ol/events/Target~Target}.\n */\nclass BaseEvent {\n /**\n * @param {string} type Type.\n */\n constructor(type) {\n /**\n * @type {boolean}\n */\n this.propagationStopped;\n\n /**\n * @type {boolean}\n */\n this.defaultPrevented;\n\n /**\n * The event type.\n * @type {string}\n * @api\n */\n this.type = type;\n\n /**\n * The event target.\n * @type {Object}\n * @api\n */\n this.target = null;\n }\n\n /**\n * Prevent default. This means that no emulated `click`, `singleclick` or `doubleclick` events\n * will be fired.\n * @api\n */\n preventDefault() {\n this.defaultPrevented = true;\n }\n\n /**\n * Stop event propagation.\n * @api\n */\n stopPropagation() {\n this.propagationStopped = true;\n }\n}\n\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function stopPropagation(evt) {\n evt.stopPropagation();\n}\n\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function preventDefault(evt) {\n evt.preventDefault();\n}\n\nexport default BaseEvent;\n","/**\n * @module ol/ObjectEventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a property is changed.\n * @event module:ol/Object.ObjectEvent#propertychange\n * @api\n */\n PROPERTYCHANGE: 'propertychange',\n};\n\n/**\n * @typedef {'propertychange'} Types\n */\n","/**\n * @module ol/Disposable\n */\n\n/**\n * @classdesc\n * Objects that need to clean up after themselves.\n */\nclass Disposable {\n constructor() {\n /**\n * The object has already been disposed.\n * @type {boolean}\n * @protected\n */\n this.disposed = false;\n }\n\n /**\n * Clean up.\n */\n dispose() {\n if (!this.disposed) {\n this.disposed = true;\n this.disposeInternal();\n }\n }\n\n /**\n * Extension point for disposable objects.\n * @protected\n */\n disposeInternal() {}\n}\n\nexport default Disposable;\n","/**\n * @module ol/array\n */\n\n/**\n * Performs a binary search on the provided sorted list and returns the index of the item if found. If it can't be found it'll return -1.\n * https://github.com/darkskyapp/binary-search\n *\n * @param {Array<*>} haystack Items to search through.\n * @param {*} needle The item to look for.\n * @param {Function} [comparator] Comparator function.\n * @return {number} The index of the item if found, -1 if not.\n */\nexport function binarySearch(haystack, needle, comparator) {\n let mid, cmp;\n comparator = comparator || ascending;\n let low = 0;\n let high = haystack.length;\n let found = false;\n\n while (low < high) {\n /* Note that \"(low + high) >>> 1\" may overflow, and results in a typecast\n * to double (which gives the wrong results). */\n mid = low + ((high - low) >> 1);\n cmp = +comparator(haystack[mid], needle);\n\n if (cmp < 0.0) {\n /* Too low. */\n low = mid + 1;\n } else {\n /* Key found or too high */\n high = mid;\n found = !cmp;\n }\n }\n\n /* Key not found. */\n return found ? low : ~low;\n}\n\n/**\n * Compare function sorting arrays in ascending order. Safe to use for numeric values.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is less than, equal to, or greater than the second.\n */\nexport function ascending(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\n/**\n * Compare function sorting arrays in descending order. Safe to use for numeric values.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is greater than, equal to, or less than the second.\n */\nexport function descending(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\n/**\n * {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution} can use a function\n * of this type to determine which nearest resolution to use.\n *\n * This function takes a `{number}` representing a value between two array entries,\n * a `{number}` representing the value of the nearest higher entry and\n * a `{number}` representing the value of the nearest lower entry\n * as arguments and returns a `{number}`. If a negative number or zero is returned\n * the lower value will be used, if a positive number is returned the higher value\n * will be used.\n * @typedef {function(number, number, number): number} NearestDirectionFunction\n * @api\n */\n\n/**\n * @param {Array} arr Array in descending order.\n * @param {number} target Target.\n * @param {number|NearestDirectionFunction} direction\n * 0 means return the nearest,\n * > 0 means return the largest nearest,\n * < 0 means return the smallest nearest.\n * @return {number} Index.\n */\nexport function linearFindNearest(arr, target, direction) {\n if (arr[0] <= target) {\n return 0;\n }\n\n const n = arr.length;\n if (target <= arr[n - 1]) {\n return n - 1;\n }\n\n if (typeof direction === 'function') {\n for (let i = 1; i < n; ++i) {\n const candidate = arr[i];\n if (candidate === target) {\n return i;\n }\n if (candidate < target) {\n if (direction(target, arr[i - 1], candidate) > 0) {\n return i - 1;\n }\n return i;\n }\n }\n return n - 1;\n }\n\n if (direction > 0) {\n for (let i = 1; i < n; ++i) {\n if (arr[i] < target) {\n return i - 1;\n }\n }\n return n - 1;\n }\n\n if (direction < 0) {\n for (let i = 1; i < n; ++i) {\n if (arr[i] <= target) {\n return i;\n }\n }\n return n - 1;\n }\n\n for (let i = 1; i < n; ++i) {\n if (arr[i] == target) {\n return i;\n }\n if (arr[i] < target) {\n if (arr[i - 1] - target < target - arr[i]) {\n return i - 1;\n }\n return i;\n }\n }\n return n - 1;\n}\n\n/**\n * @param {Array<*>} arr Array.\n * @param {number} begin Begin index.\n * @param {number} end End index.\n */\nexport function reverseSubArray(arr, begin, end) {\n while (begin < end) {\n const tmp = arr[begin];\n arr[begin] = arr[end];\n arr[end] = tmp;\n ++begin;\n --end;\n }\n}\n\n/**\n * @param {Array} arr The array to modify.\n * @param {!Array|VALUE} data The elements or arrays of elements to add to arr.\n * @template VALUE\n */\nexport function extend(arr, data) {\n const extension = Array.isArray(data) ? data : [data];\n const length = extension.length;\n for (let i = 0; i < length; i++) {\n arr[arr.length] = extension[i];\n }\n}\n\n/**\n * @param {Array} arr The array to modify.\n * @param {VALUE} obj The element to remove.\n * @template VALUE\n * @return {boolean} If the element was removed.\n */\nexport function remove(arr, obj) {\n const i = arr.indexOf(obj);\n const found = i > -1;\n if (found) {\n arr.splice(i, 1);\n }\n return found;\n}\n\n/**\n * @param {Array|Uint8ClampedArray} arr1 The first array to compare.\n * @param {Array|Uint8ClampedArray} arr2 The second array to compare.\n * @return {boolean} Whether the two arrays are equal.\n */\nexport function equals(arr1, arr2) {\n const len1 = arr1.length;\n if (len1 !== arr2.length) {\n return false;\n }\n for (let i = 0; i < len1; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Sort the passed array such that the relative order of equal elements is preserved.\n * See https://en.wikipedia.org/wiki/Sorting_algorithm#Stability for details.\n * @param {Array<*>} arr The array to sort (modifies original).\n * @param {!function(*, *): number} compareFnc Comparison function.\n * @api\n */\nexport function stableSort(arr, compareFnc) {\n const length = arr.length;\n const tmp = Array(arr.length);\n let i;\n for (i = 0; i < length; i++) {\n tmp[i] = {index: i, value: arr[i]};\n }\n tmp.sort(function (a, b) {\n return compareFnc(a.value, b.value) || a.index - b.index;\n });\n for (i = 0; i < arr.length; i++) {\n arr[i] = tmp[i].value;\n }\n}\n\n/**\n * @param {Array<*>} arr The array to test.\n * @param {Function} [func] Comparison function.\n * @param {boolean} [strict] Strictly sorted (default false).\n * @return {boolean} Return index.\n */\nexport function isSorted(arr, func, strict) {\n const compare = func || ascending;\n return arr.every(function (currentVal, index) {\n if (index === 0) {\n return true;\n }\n const res = compare(arr[index - 1], currentVal);\n return !(res > 0 || (strict && res === 0));\n });\n}\n","/**\n * @module ol/functions\n */\n\nimport {equals as arrayEquals} from './array.js';\n\n/**\n * Always returns true.\n * @return {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n\n/**\n * Always returns false.\n * @return {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() {}\n\n/**\n * Wrap a function in another function that remembers the last return. If the\n * returned function is called twice in a row with the same arguments and the same\n * this object, it will return the value from the first call in the second call.\n *\n * @param {function(...any): ReturnType} fn The function to memoize.\n * @return {function(...any): ReturnType} The memoized function.\n * @template ReturnType\n */\nexport function memoizeOne(fn) {\n let called = false;\n\n /** @type {ReturnType} */\n let lastResult;\n\n /** @type {Array} */\n let lastArgs;\n\n let lastThis;\n\n return function () {\n const nextArgs = Array.prototype.slice.call(arguments);\n if (!called || this !== lastThis || !arrayEquals(nextArgs, lastArgs)) {\n called = true;\n lastThis = this;\n lastArgs = nextArgs;\n lastResult = fn.apply(this, arguments);\n }\n return lastResult;\n };\n}\n\n/**\n * @template T\n * @param {function(): (T | Promise)} getter A function that returns a value or a promise for a value.\n * @return {Promise} A promise for the value.\n */\nexport function toPromise(getter) {\n function promiseGetter() {\n let value;\n try {\n value = getter();\n } catch (err) {\n return Promise.reject(err);\n }\n if (value instanceof Promise) {\n return value;\n }\n return Promise.resolve(value);\n }\n return promiseGetter();\n}\n","/**\n * @module ol/obj\n */\n\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (const property in object) {\n delete object[property];\n }\n}\n\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n let property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n","/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport Event from './Event.js';\nimport {VOID} from '../functions.js';\nimport {clear} from '../obj.js';\n\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nclass Target extends Disposable {\n /**\n * @param {*} [target] Default event target for dispatched events.\n */\n constructor(target) {\n super();\n\n /**\n * @private\n * @type {*}\n */\n this.eventTarget_ = target;\n\n /**\n * @private\n * @type {Object}\n */\n this.pendingRemovals_ = null;\n\n /**\n * @private\n * @type {Object}\n */\n this.dispatching_ = null;\n\n /**\n * @private\n * @type {Object>}\n */\n this.listeners_ = null;\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n addEventListener(type, listener) {\n if (!type || !listener) {\n return;\n }\n const listeners = this.listeners_ || (this.listeners_ = {});\n const listenersForType = listeners[type] || (listeners[type] = []);\n if (!listenersForType.includes(listener)) {\n listenersForType.push(listener);\n }\n }\n\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n dispatchEvent(event) {\n const isString = typeof event === 'string';\n const type = isString ? event : event.type;\n const listeners = this.listeners_ && this.listeners_[type];\n if (!listeners) {\n return;\n }\n\n const evt = isString ? new Event(event) : /** @type {Event} */ (event);\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\n const dispatching = this.dispatching_ || (this.dispatching_ = {});\n const pendingRemovals =\n this.pendingRemovals_ || (this.pendingRemovals_ = {});\n if (!(type in dispatching)) {\n dispatching[type] = 0;\n pendingRemovals[type] = 0;\n }\n ++dispatching[type];\n let propagate;\n for (let i = 0, ii = listeners.length; i < ii; ++i) {\n if ('handleEvent' in listeners[i]) {\n propagate = /** @type {import(\"../events.js\").ListenerObject} */ (\n listeners[i]\n ).handleEvent(evt);\n } else {\n propagate = /** @type {import(\"../events.js\").ListenerFunction} */ (\n listeners[i]\n ).call(this, evt);\n }\n if (propagate === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n if (--dispatching[type] === 0) {\n let pr = pendingRemovals[type];\n delete pendingRemovals[type];\n while (pr--) {\n this.removeEventListener(type, VOID);\n }\n delete dispatching[type];\n }\n return propagate;\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n this.listeners_ && clear(this.listeners_);\n }\n\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\n getListeners(type) {\n return (this.listeners_ && this.listeners_[type]) || undefined;\n }\n\n /**\n * @param {string} [type] Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n hasListener(type) {\n if (!this.listeners_) {\n return false;\n }\n return type\n ? type in this.listeners_\n : Object.keys(this.listeners_).length > 0;\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners_ && this.listeners_[type];\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n if (this.pendingRemovals_ && type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n } else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n }\n}\n\nexport default Target;\n","/**\n * @module ol/events/EventType\n */\n\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~BaseEvent#change\n * @api\n */\n CHANGE: 'change',\n\n /**\n * Generic error event. Triggered when an error occurs.\n * @event module:ol/events/Event~BaseEvent#error\n * @api\n */\n ERROR: 'error',\n\n BLUR: 'blur',\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n FOCUS: 'focus',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n RESIZE: 'resize',\n TOUCHMOVE: 'touchmove',\n WHEEL: 'wheel',\n};\n","/**\n * @module ol/events\n */\nimport {clear} from './obj.js';\n\n/**\n * Key to use with {@link module:ol/Observable.unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener Listener.\n * @property {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @property {string} type Type.\n * @api\n */\n\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n\n/**\n * @typedef {Object} ListenerObject\n * @property {ListenerFunction} handleEvent HandleEvent listener function.\n */\n\n/**\n * @typedef {ListenerFunction|ListenerObject} Listener\n */\n\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events.unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [thisArg] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean} [once] If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, thisArg, once) {\n if (thisArg && thisArg !== target) {\n listener = listener.bind(thisArg);\n }\n if (once) {\n const originalListener = listener;\n listener = function () {\n target.removeEventListener(type, listener);\n originalListener.apply(this, arguments);\n };\n }\n const eventsKey = {\n target: target,\n type: type,\n listener: listener,\n };\n target.addEventListener(type, listener);\n return eventsKey;\n}\n\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events.unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events.listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [thisArg] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, thisArg) {\n return listen(target, type, listener, thisArg, true);\n}\n\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events.listen} or {@link module:ol/events.listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n key.target.removeEventListener(key.type, key.listener);\n clear(key);\n }\n}\n","/**\n * @module ol/Observable\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport {listen, listenOnce, unlistenByKey} from './events.js';\n\n/***\n * @template {string} Type\n * @template {Event|import(\"./events/Event.js\").default} EventClass\n * @template Return\n * @typedef {(type: Type, listener: (event: EventClass) => ?) => Return} OnSignature\n */\n\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => ?) => Return extends void ? void : Return[]} CombinedOnSignature\n */\n\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n\n/***\n * @template Return\n * @typedef {OnSignature & CombinedOnSignature} ObservableOnSignature\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").default\n * @api\n */\nclass Observable extends EventTarget {\n constructor() {\n super();\n\n this.on =\n /** @type {ObservableOnSignature} */ (\n this.onInternal\n );\n\n this.once =\n /** @type {ObservableOnSignature} */ (\n this.onceInternal\n );\n\n this.un = /** @type {ObservableOnSignature} */ (this.unInternal);\n\n /**\n * @private\n * @type {number}\n */\n this.revision_ = 0;\n }\n\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n changed() {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n }\n\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n getRevision() {\n return this.revision_;\n }\n\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n onInternal(type, listener) {\n if (Array.isArray(type)) {\n const len = type.length;\n const keys = new Array(len);\n for (let i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n }\n return listen(this, /** @type {string} */ (type), listener);\n }\n\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n onceInternal(type, listener) {\n let key;\n if (Array.isArray(type)) {\n const len = type.length;\n key = new Array(len);\n for (let i = 0; i < len; ++i) {\n key[i] = listenOnce(this, type[i], listener);\n }\n } else {\n key = listenOnce(this, /** @type {string} */ (type), listener);\n }\n /** @type {Object} */ (listener).ol_key = key;\n return key;\n }\n\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @protected\n */\n unInternal(type, listener) {\n const key = /** @type {Object} */ (listener).ol_key;\n if (key) {\n unByKey(key);\n } else if (Array.isArray(type)) {\n for (let i = 0, ii = type.length; i < ii; ++i) {\n this.removeEventListener(type[i], listener);\n }\n } else {\n this.removeEventListener(type, listener);\n }\n }\n}\n\n/**\n * Listen for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.on;\n\n/**\n * Listen once for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.once;\n\n/**\n * Unlisten for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @api\n */\nObservable.prototype.un;\n\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (let i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n } else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\n\nexport default Observable;\n","/**\n * @module ol/util\n */\n\n/**\n * @return {never} Any return.\n */\nexport function abstract() {\n throw new Error('Unimplemented abstract method.');\n}\n\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nlet uidCounter_ = 0;\n\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport const VERSION = '8.1.0';\n","/**\n * @module ol/Object\n */\nimport Event from './events/Event.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport Observable from './Observable.js';\nimport {getUid} from './util.js';\nimport {isEmpty} from './obj.js';\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Object~BaseObject} instances are instances of this type.\n */\nexport class ObjectEvent extends Event {\n /**\n * @param {string} type The event type.\n * @param {string} key The property name.\n * @param {*} oldValue The old value for `key`.\n */\n constructor(type, key, oldValue) {\n super(type);\n\n /**\n * The name of the property whose value is changing.\n * @type {string}\n * @api\n */\n this.key = key;\n\n /**\n * The old value. To get the new value use `e.target.get(e.key)` where\n * `e` is the event object.\n * @type {*}\n * @api\n */\n this.oldValue = oldValue;\n }\n}\n\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ObjectOnSignature\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Most non-trivial classes inherit from this.\n *\n * This extends {@link module:ol/Observable~Observable} with observable\n * properties, where each property is observable as well as the object as a\n * whole.\n *\n * Classes that inherit from this have pre-defined properties, to which you can\n * add your owns. The pre-defined properties are listed in this documentation as\n * 'Observable Properties', and have their own accessors; for example,\n * {@link module:ol/Map~Map} has a `target` property, accessed with\n * `getTarget()` and changed with `setTarget()`. Not all properties are however\n * settable. There are also general-purpose accessors `get()` and `set()`. For\n * example, `get('target')` is equivalent to `getTarget()`.\n *\n * The `set` accessors trigger a change event, and you can monitor this by\n * registering a listener. For example, {@link module:ol/View~View} has a\n * `center` property, so `view.on('change:center', function(evt) {...});` would\n * call the function whenever the value of the center property changes. Within\n * the function, `evt.target` would be the view, so `evt.target.getCenter()`\n * would return the new center.\n *\n * You can add your own observable properties with\n * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`.\n * You can listen for changes on that property value with\n * `object.on('change:prop', listener)`. You can get a list of all\n * properties with {@link module:ol/Object~BaseObject#getProperties}.\n *\n * Note that the observable properties are separate from standard JS properties.\n * You can, for example, give your map object a title with\n * `map.title='New title'` and with `map.set('title', 'Another title')`. The\n * first will be a `hasOwnProperty`; the second will appear in\n * `getProperties()`. Only the second is observable.\n *\n * Properties can be deleted by using the unset method. E.g.\n * object.unset('foo').\n *\n * @fires ObjectEvent\n * @api\n */\nclass BaseObject extends Observable {\n /**\n * @param {Object} [values] An object with key-value pairs.\n */\n constructor(values) {\n super();\n\n /***\n * @type {ObjectOnSignature}\n */\n this.on;\n\n /***\n * @type {ObjectOnSignature}\n */\n this.once;\n\n /***\n * @type {ObjectOnSignature}\n */\n this.un;\n\n // Call {@link module:ol/util.getUid} to ensure that the order of objects' ids is\n // the same as the order in which they were created. This also helps to\n // ensure that object properties are always added in the same order, which\n // helps many JavaScript engines generate faster code.\n getUid(this);\n\n /**\n * @private\n * @type {Object}\n */\n this.values_ = null;\n\n if (values !== undefined) {\n this.setProperties(values);\n }\n }\n\n /**\n * Gets a value.\n * @param {string} key Key name.\n * @return {*} Value.\n * @api\n */\n get(key) {\n let value;\n if (this.values_ && this.values_.hasOwnProperty(key)) {\n value = this.values_[key];\n }\n return value;\n }\n\n /**\n * Get a list of object property names.\n * @return {Array} List of property names.\n * @api\n */\n getKeys() {\n return (this.values_ && Object.keys(this.values_)) || [];\n }\n\n /**\n * Get an object of all property names and values.\n * @return {Object} Object.\n * @api\n */\n getProperties() {\n return (this.values_ && Object.assign({}, this.values_)) || {};\n }\n\n /**\n * Get an object of all property names and values.\n * @return {Object?} Object.\n */\n getPropertiesInternal() {\n return this.values_;\n }\n\n /**\n * @return {boolean} The object has properties.\n */\n hasProperties() {\n return !!this.values_;\n }\n\n /**\n * @param {string} key Key name.\n * @param {*} oldValue Old value.\n */\n notify(key, oldValue) {\n let eventType;\n eventType = `change:${key}`;\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n eventType = ObjectEventType.PROPERTYCHANGE;\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n }\n\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n addChangeListener(key, listener) {\n this.addEventListener(`change:${key}`, listener);\n }\n\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n removeChangeListener(key, listener) {\n this.removeEventListener(`change:${key}`, listener);\n }\n\n /**\n * Sets a value.\n * @param {string} key Key name.\n * @param {*} value Value.\n * @param {boolean} [silent] Update without triggering an event.\n * @api\n */\n set(key, value, silent) {\n const values = this.values_ || (this.values_ = {});\n if (silent) {\n values[key] = value;\n } else {\n const oldValue = values[key];\n values[key] = value;\n if (oldValue !== value) {\n this.notify(key, oldValue);\n }\n }\n }\n\n /**\n * Sets a collection of key-value pairs. Note that this changes any existing\n * properties and adds new ones (it does not remove any existing properties).\n * @param {Object} values Values.\n * @param {boolean} [silent] Update without triggering an event.\n * @api\n */\n setProperties(values, silent) {\n for (const key in values) {\n this.set(key, values[key], silent);\n }\n }\n\n /**\n * Apply any properties from another object without triggering events.\n * @param {BaseObject} source The source object.\n * @protected\n */\n applyProperties(source) {\n if (!source.values_) {\n return;\n }\n Object.assign(this.values_ || (this.values_ = {}), source.values_);\n }\n\n /**\n * Unsets a property.\n * @param {string} key Key name.\n * @param {boolean} [silent] Unset without triggering an event.\n * @api\n */\n unset(key, silent) {\n if (this.values_ && key in this.values_) {\n const oldValue = this.values_[key];\n delete this.values_[key];\n if (isEmpty(this.values_)) {\n this.values_ = null;\n }\n if (!silent) {\n this.notify(key, oldValue);\n }\n }\n }\n}\n\nexport default BaseObject;\n","/**\n * @module ol/layer/Property\n */\n\n/**\n * @enum {string}\n */\nexport default {\n OPACITY: 'opacity',\n VISIBLE: 'visible',\n EXTENT: 'extent',\n Z_INDEX: 'zIndex',\n MAX_RESOLUTION: 'maxResolution',\n MIN_RESOLUTION: 'minResolution',\n MAX_ZOOM: 'maxZoom',\n MIN_ZOOM: 'minZoom',\n SOURCE: 'source',\n MAP: 'map',\n};\n","/**\n * @module ol/asserts\n */\n\n/**\n * @param {*} assertion Assertion we expected to be truthy.\n * @param {string} errorMessage Error message.\n */\nexport function assert(assertion, errorMessage) {\n if (!assertion) {\n throw new Error(errorMessage);\n }\n}\n","/**\n * @module ol/math\n */\n\n/**\n * Takes a number and clamps it to within the provided bounds.\n * @param {number} value The input number.\n * @param {number} min The minimum value to return.\n * @param {number} max The maximum value to return.\n * @return {number} The input number if it is within bounds, or the nearest\n * number within the bounds.\n */\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n\n/**\n * Returns the square of the closest distance between the point (x, y) and the\n * line segment (x1, y1) to (x2, y2).\n * @param {number} x X.\n * @param {number} y Y.\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredSegmentDistance(x, y, x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n if (dx !== 0 || dy !== 0) {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n return squaredDistance(x, y, x1, y1);\n}\n\n/**\n * Returns the square of the distance between the points (x1, y1) and (x2, y2).\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredDistance(x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n return dx * dx + dy * dy;\n}\n\n/**\n * Solves system of linear equations using Gaussian elimination method.\n *\n * @param {Array>} mat Augmented matrix (n x n + 1 column)\n * in row-major order.\n * @return {Array} The resulting vector.\n */\nexport function solveLinearSystem(mat) {\n const n = mat.length;\n\n for (let i = 0; i < n; i++) {\n // Find max in the i-th column (ignoring i - 1 first rows)\n let maxRow = i;\n let maxEl = Math.abs(mat[i][i]);\n for (let r = i + 1; r < n; r++) {\n const absValue = Math.abs(mat[r][i]);\n if (absValue > maxEl) {\n maxEl = absValue;\n maxRow = r;\n }\n }\n\n if (maxEl === 0) {\n return null; // matrix is singular\n }\n\n // Swap max row with i-th (current) row\n const tmp = mat[maxRow];\n mat[maxRow] = mat[i];\n mat[i] = tmp;\n\n // Subtract the i-th row to make all the remaining rows 0 in the i-th column\n for (let j = i + 1; j < n; j++) {\n const coef = -mat[j][i] / mat[i][i];\n for (let k = i; k < n + 1; k++) {\n if (i == k) {\n mat[j][k] = 0;\n } else {\n mat[j][k] += coef * mat[i][k];\n }\n }\n }\n }\n\n // Solve Ax=b for upper triangular matrix A (mat)\n const x = new Array(n);\n for (let l = n - 1; l >= 0; l--) {\n x[l] = mat[l][n] / mat[l][l];\n for (let m = l - 1; m >= 0; m--) {\n mat[m][n] -= mat[m][l] * x[l];\n }\n }\n return x;\n}\n\n/**\n * Converts radians to to degrees.\n *\n * @param {number} angleInRadians Angle in radians.\n * @return {number} Angle in degrees.\n */\nexport function toDegrees(angleInRadians) {\n return (angleInRadians * 180) / Math.PI;\n}\n\n/**\n * Converts degrees to radians.\n *\n * @param {number} angleInDegrees Angle in degrees.\n * @return {number} Angle in radians.\n */\nexport function toRadians(angleInDegrees) {\n return (angleInDegrees * Math.PI) / 180;\n}\n\n/**\n * Returns the modulo of a / b, depending on the sign of b.\n *\n * @param {number} a Dividend.\n * @param {number} b Divisor.\n * @return {number} Modulo.\n */\nexport function modulo(a, b) {\n const r = a % b;\n return r * b < 0 ? r + b : r;\n}\n\n/**\n * Calculates the linearly interpolated value of x between a and b.\n *\n * @param {number} a Number\n * @param {number} b Number\n * @param {number} x Value to be interpolated.\n * @return {number} Interpolated value.\n */\nexport function lerp(a, b, x) {\n return a + x * (b - a);\n}\n\n/**\n * Returns a number with a limited number of decimal digits.\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The input number with a limited number of decimal digits.\n */\nexport function toFixed(n, decimals) {\n const factor = Math.pow(10, decimals);\n return Math.round(n * factor) / factor;\n}\n\n/**\n * Rounds a number to the nearest integer value considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The nearest integer.\n */\nexport function round(n, decimals) {\n return Math.round(toFixed(n, decimals));\n}\n\n/**\n * Rounds a number to the next smaller integer considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The next smaller integer.\n */\nexport function floor(n, decimals) {\n return Math.floor(toFixed(n, decimals));\n}\n\n/**\n * Rounds a number to the next bigger integer considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The next bigger integer.\n */\nexport function ceil(n, decimals) {\n return Math.ceil(toFixed(n, decimals));\n}\n","/**\n * @module ol/layer/Base\n */\nimport BaseObject from '../Object.js';\nimport LayerProperty from './Property.js';\nimport {abstract} from '../util.js';\nimport {assert} from '../asserts.js';\nimport {clamp} from '../math.js';\n\n/**\n * A css color, or a function called with a view resolution returning a css color.\n *\n * @typedef {string|function(number):string} BackgroundColor\n * @api\n */\n\n/**\n * @typedef {import(\"../ObjectEventType\").Types|'change:extent'|'change:maxResolution'|'change:maxZoom'|\n * 'change:minResolution'|'change:minZoom'|'change:opacity'|'change:visible'|'change:zIndex'} BaseLayerObjectEventTypes\n */\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseLayerOnSignature\n */\n\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number | undefined} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {BackgroundColor} [background] Background color for the layer. If not specified, no background\n * will be rendered.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Note that with {@link module:ol/layer/Base~BaseLayer} and all its subclasses, any property set in\n * the options is set as a {@link module:ol/Object~BaseObject} property on the layer object, so\n * is observable, and has get/set accessors.\n *\n * @api\n */\nclass BaseLayer extends BaseObject {\n /**\n * @param {Options} options Layer options.\n */\n constructor(options) {\n super();\n\n /***\n * @type {BaseLayerOnSignature}\n */\n this.on;\n\n /***\n * @type {BaseLayerOnSignature}\n */\n this.once;\n\n /***\n * @type {BaseLayerOnSignature}\n */\n this.un;\n\n /**\n * @type {BackgroundColor|false}\n * @private\n */\n this.background_ = options.background;\n\n /**\n * @type {Object}\n */\n const properties = Object.assign({}, options);\n if (typeof options.properties === 'object') {\n delete properties.properties;\n Object.assign(properties, options.properties);\n }\n\n properties[LayerProperty.OPACITY] =\n options.opacity !== undefined ? options.opacity : 1;\n assert(\n typeof properties[LayerProperty.OPACITY] === 'number',\n 'Layer opacity must be a number'\n );\n\n properties[LayerProperty.VISIBLE] =\n options.visible !== undefined ? options.visible : true;\n properties[LayerProperty.Z_INDEX] = options.zIndex;\n properties[LayerProperty.MAX_RESOLUTION] =\n options.maxResolution !== undefined ? options.maxResolution : Infinity;\n properties[LayerProperty.MIN_RESOLUTION] =\n options.minResolution !== undefined ? options.minResolution : 0;\n properties[LayerProperty.MIN_ZOOM] =\n options.minZoom !== undefined ? options.minZoom : -Infinity;\n properties[LayerProperty.MAX_ZOOM] =\n options.maxZoom !== undefined ? options.maxZoom : Infinity;\n\n /**\n * @type {string}\n * @private\n */\n this.className_ =\n properties.className !== undefined ? properties.className : 'ol-layer';\n delete properties.className;\n\n this.setProperties(properties);\n\n /**\n * @type {import(\"./Layer.js\").State}\n * @private\n */\n this.state_ = null;\n }\n\n /**\n * Get the background for this layer.\n * @return {BackgroundColor|false} Layer background.\n */\n getBackground() {\n return this.background_;\n }\n\n /**\n * @return {string} CSS class name.\n */\n getClassName() {\n return this.className_;\n }\n\n /**\n * This method is not meant to be called by layers or layer renderers because the state\n * is incorrect if the layer is included in a layer group.\n *\n * @param {boolean} [managed] Layer is managed.\n * @return {import(\"./Layer.js\").State} Layer state.\n */\n getLayerState(managed) {\n /** @type {import(\"./Layer.js\").State} */\n const state =\n this.state_ ||\n /** @type {?} */ ({\n layer: this,\n managed: managed === undefined ? true : managed,\n });\n const zIndex = this.getZIndex();\n state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1);\n state.visible = this.getVisible();\n state.extent = this.getExtent();\n state.zIndex = zIndex === undefined && !state.managed ? Infinity : zIndex;\n state.maxResolution = this.getMaxResolution();\n state.minResolution = Math.max(this.getMinResolution(), 0);\n state.minZoom = this.getMinZoom();\n state.maxZoom = this.getMaxZoom();\n this.state_ = state;\n\n return state;\n }\n\n /**\n * @abstract\n * @param {Array} [array] Array of layers (to be\n * modified in place).\n * @return {Array} Array of layers.\n */\n getLayersArray(array) {\n return abstract();\n }\n\n /**\n * @abstract\n * @param {Array} [states] Optional list of layer\n * states (to be modified in place).\n * @return {Array} List of layer states.\n */\n getLayerStatesArray(states) {\n return abstract();\n }\n\n /**\n * Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it\n * will be visible regardless of extent.\n * @return {import(\"../extent.js\").Extent|undefined} The layer extent.\n * @observable\n * @api\n */\n getExtent() {\n return /** @type {import(\"../extent.js\").Extent|undefined} */ (\n this.get(LayerProperty.EXTENT)\n );\n }\n\n /**\n * Return the maximum resolution of the layer. Returns Infinity if\n * the layer has no maximum resolution set.\n * @return {number} The maximum resolution of the layer.\n * @observable\n * @api\n */\n getMaxResolution() {\n return /** @type {number} */ (this.get(LayerProperty.MAX_RESOLUTION));\n }\n\n /**\n * Return the minimum resolution of the layer. Returns 0 if\n * the layer has no minimum resolution set.\n * @return {number} The minimum resolution of the layer.\n * @observable\n * @api\n */\n getMinResolution() {\n return /** @type {number} */ (this.get(LayerProperty.MIN_RESOLUTION));\n }\n\n /**\n * Return the minimum zoom level of the layer. Returns -Infinity if\n * the layer has no minimum zoom set.\n * @return {number} The minimum zoom level of the layer.\n * @observable\n * @api\n */\n getMinZoom() {\n return /** @type {number} */ (this.get(LayerProperty.MIN_ZOOM));\n }\n\n /**\n * Return the maximum zoom level of the layer. Returns Infinity if\n * the layer has no maximum zoom set.\n * @return {number} The maximum zoom level of the layer.\n * @observable\n * @api\n */\n getMaxZoom() {\n return /** @type {number} */ (this.get(LayerProperty.MAX_ZOOM));\n }\n\n /**\n * Return the opacity of the layer (between 0 and 1).\n * @return {number} The opacity of the layer.\n * @observable\n * @api\n */\n getOpacity() {\n return /** @type {number} */ (this.get(LayerProperty.OPACITY));\n }\n\n /**\n * @abstract\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n getSourceState() {\n return abstract();\n }\n\n /**\n * Return the value of this layer's `visible` property. To find out whether the layer\n * is visible on a map, use `isVisible()` instead.\n * @return {boolean} The value of the `visible` property of the layer.\n * @observable\n * @api\n */\n getVisible() {\n return /** @type {boolean} */ (this.get(LayerProperty.VISIBLE));\n }\n\n /**\n * Return the Z-index of the layer, which is used to order layers before\n * rendering. Returns undefined if the layer is unmanaged.\n * @return {number|undefined} The Z-index of the layer.\n * @observable\n * @api\n */\n getZIndex() {\n return /** @type {number|undefined} */ (this.get(LayerProperty.Z_INDEX));\n }\n\n /**\n * Sets the background color.\n * @param {BackgroundColor} [background] Background color.\n */\n setBackground(background) {\n this.background_ = background;\n this.changed();\n }\n\n /**\n * Set the extent at which the layer is visible. If `undefined`, the layer\n * will be visible at all extents.\n * @param {import(\"../extent.js\").Extent|undefined} extent The extent of the layer.\n * @observable\n * @api\n */\n setExtent(extent) {\n this.set(LayerProperty.EXTENT, extent);\n }\n\n /**\n * Set the maximum resolution at which the layer is visible.\n * @param {number} maxResolution The maximum resolution of the layer.\n * @observable\n * @api\n */\n setMaxResolution(maxResolution) {\n this.set(LayerProperty.MAX_RESOLUTION, maxResolution);\n }\n\n /**\n * Set the minimum resolution at which the layer is visible.\n * @param {number} minResolution The minimum resolution of the layer.\n * @observable\n * @api\n */\n setMinResolution(minResolution) {\n this.set(LayerProperty.MIN_RESOLUTION, minResolution);\n }\n\n /**\n * Set the maximum zoom (exclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} maxZoom The maximum zoom of the layer.\n * @observable\n * @api\n */\n setMaxZoom(maxZoom) {\n this.set(LayerProperty.MAX_ZOOM, maxZoom);\n }\n\n /**\n * Set the minimum zoom (inclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} minZoom The minimum zoom of the layer.\n * @observable\n * @api\n */\n setMinZoom(minZoom) {\n this.set(LayerProperty.MIN_ZOOM, minZoom);\n }\n\n /**\n * Set the opacity of the layer, allowed values range from 0 to 1.\n * @param {number} opacity The opacity of the layer.\n * @observable\n * @api\n */\n setOpacity(opacity) {\n assert(typeof opacity === 'number', 'Layer opacity must be a number');\n this.set(LayerProperty.OPACITY, opacity);\n }\n\n /**\n * Set the visibility of the layer (`true` or `false`).\n * @param {boolean} visible The visibility of the layer.\n * @observable\n * @api\n */\n setVisible(visible) {\n this.set(LayerProperty.VISIBLE, visible);\n }\n\n /**\n * Set Z-index of the layer, which is used to order layers before rendering.\n * The default Z-index is 0.\n * @param {number} zindex The z-index of the layer.\n * @observable\n * @api\n */\n setZIndex(zindex) {\n this.set(LayerProperty.Z_INDEX, zindex);\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n if (this.state_) {\n this.state_.layer = null;\n this.state_ = null;\n }\n super.disposeInternal();\n }\n}\n\nexport default BaseLayer;\n","/**\n * @module ol/render/EventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered before a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#prerender\n * @api\n */\n PRERENDER: 'prerender',\n\n /**\n * Triggered after a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n\n /**\n * Triggered before layers are composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\n * @event module:ol/render/Event~RenderEvent#precompose\n * @api\n */\n PRECOMPOSE: 'precompose',\n\n /**\n * Triggered after layers are composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\n * @event module:ol/render/Event~RenderEvent#postcompose\n * @api\n */\n POSTCOMPOSE: 'postcompose',\n\n /**\n * Triggered when rendering is complete, i.e. all sources and tiles have\n * finished loading for the current viewport, and all tiles are faded in.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#rendercomplete\n * @api\n */\n RENDERCOMPLETE: 'rendercomplete',\n};\n\n/**\n * @typedef {'postrender'|'precompose'|'postcompose'|'rendercomplete'} MapRenderEventTypes\n */\n\n/**\n * @typedef {'postrender'|'prerender'} LayerRenderEventTypes\n */\n","/**\n * @module ol/ViewHint\n */\n\n/**\n * @enum {number}\n */\nexport default {\n ANIMATING: 0,\n INTERACTING: 1,\n};\n","/**\n * @module ol/ViewProperty\n */\n\n/**\n * @enum {string}\n */\nexport default {\n CENTER: 'center',\n RESOLUTION: 'resolution',\n ROTATION: 'rotation',\n};\n","/**\n * @module ol/tilegrid/common\n */\n\n/**\n * Default maximum zoom for default tile grids.\n * @type {number}\n */\nexport const DEFAULT_MAX_ZOOM = 42;\n\n/**\n * Default tile size.\n * @type {number}\n */\nexport const DEFAULT_TILE_SIZE = 256;\n","/**\n * @module ol/proj/Units\n */\n\n/**\n * @typedef {'radians' | 'degrees' | 'ft' | 'm' | 'pixels' | 'tile-pixels' | 'us-ft'} Units\n * Projection units.\n */\n\n/**\n * See http://duff.ess.washington.edu/data/raster/drg/docs/geotiff.txt\n * @type {Object}\n */\nconst unitByCode = {\n '9001': 'm',\n '9002': 'ft',\n '9003': 'us-ft',\n '9101': 'radians',\n '9102': 'degrees',\n};\n\n/**\n * @param {number} code Unit code.\n * @return {Units} Units.\n */\nexport function fromCode(code) {\n return unitByCode[code];\n}\n\n/**\n * @typedef {Object} MetersPerUnitLookup\n * @property {number} radians Radians\n * @property {number} degrees Degrees\n * @property {number} ft Feet\n * @property {number} m Meters\n * @property {number} us-ft US feet\n */\n\n/**\n * Meters per unit lookup table.\n * @const\n * @type {MetersPerUnitLookup}\n * @api\n */\nexport const METERS_PER_UNIT = {\n // use the radius of the Normal sphere\n 'radians': 6370997 / (2 * Math.PI),\n 'degrees': (2 * Math.PI * 6370997) / 360,\n 'ft': 0.3048,\n 'm': 1,\n 'us-ft': 1200 / 3937,\n};\n","/**\n * @module ol/proj/Projection\n */\nimport {METERS_PER_UNIT} from './Units.js';\n\n/**\n * @typedef {Object} Options\n * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.\n * @property {import(\"./Units.js\").Units} [units] Units. Required unless a\n * proj4 projection is defined for `code`.\n * @property {import(\"../extent.js\").Extent} [extent] The validity extent for the SRS.\n * @property {string} [axisOrientation='enu'] The axis orientation as specified in Proj4.\n * @property {boolean} [global=false] Whether the projection is valid for the whole globe.\n * @property {number} [metersPerUnit] The meters per unit for the SRS.\n * If not provided, the `units` are used to get the meters per unit from the {@link METERS_PER_UNIT}\n * lookup table.\n * @property {import(\"../extent.js\").Extent} [worldExtent] The world extent for the SRS.\n * @property {function(number, import(\"../coordinate.js\").Coordinate):number} [getPointResolution]\n * Function to determine resolution at a point. The function is called with a\n * `number` view resolution and a {@link module:ol/coordinate~Coordinate} as arguments, and returns\n * the `number` resolution in projection units at the passed coordinate. If this is `undefined`,\n * the default {@link module:ol/proj.getPointResolution} function will be used.\n */\n\n/**\n * @classdesc\n * Projection definition class. One of these is created for each projection\n * supported in the application and stored in the {@link module:ol/proj} namespace.\n * You can use these in applications, but this is not required, as API params\n * and options use {@link module:ol/proj~ProjectionLike} which means the simple string\n * code will suffice.\n *\n * You can use {@link module:ol/proj.get} to retrieve the object for a particular\n * projection.\n *\n * The library includes definitions for `EPSG:4326` and `EPSG:3857`, together\n * with the following aliases:\n * * `EPSG:4326`: CRS:84, urn:ogc:def:crs:EPSG:6.6:4326,\n * urn:ogc:def:crs:OGC:1.3:CRS84, urn:ogc:def:crs:OGC:2:84,\n * http://www.opengis.net/gml/srs/epsg.xml#4326,\n * urn:x-ogc:def:crs:EPSG:4326\n * * `EPSG:3857`: EPSG:102100, EPSG:102113, EPSG:900913,\n * urn:ogc:def:crs:EPSG:6.18:3:3857,\n * http://www.opengis.net/gml/srs/epsg.xml#3857\n *\n * If you use [proj4js](https://github.com/proj4js/proj4js), aliases can\n * be added using `proj4.defs()`. After all required projection definitions are\n * added, call the {@link module:ol/proj/proj4.register} function.\n *\n * @api\n */\nclass Projection {\n /**\n * @param {Options} options Projection options.\n */\n constructor(options) {\n /**\n * @private\n * @type {string}\n */\n this.code_ = options.code;\n\n /**\n * Units of projected coordinates. When set to `TILE_PIXELS`, a\n * `this.extent_` and `this.worldExtent_` must be configured properly for each\n * tile.\n * @private\n * @type {import(\"./Units.js\").Units}\n */\n this.units_ = /** @type {import(\"./Units.js\").Units} */ (options.units);\n\n /**\n * Validity extent of the projection in projected coordinates. For projections\n * with `TILE_PIXELS` units, this is the extent of the tile in\n * tile pixel space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = options.extent !== undefined ? options.extent : null;\n\n /**\n * Extent of the world in EPSG:4326. For projections with\n * `TILE_PIXELS` units, this is the extent of the tile in\n * projected coordinate space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.worldExtent_ =\n options.worldExtent !== undefined ? options.worldExtent : null;\n\n /**\n * @private\n * @type {string}\n */\n this.axisOrientation_ =\n options.axisOrientation !== undefined ? options.axisOrientation : 'enu';\n\n /**\n * @private\n * @type {boolean}\n */\n this.global_ = options.global !== undefined ? options.global : false;\n\n /**\n * @private\n * @type {boolean}\n */\n this.canWrapX_ = !!(this.global_ && this.extent_);\n\n /**\n * @private\n * @type {function(number, import(\"../coordinate.js\").Coordinate):number|undefined}\n */\n this.getPointResolutionFunc_ = options.getPointResolution;\n\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.defaultTileGrid_ = null;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.metersPerUnit_ = options.metersPerUnit;\n }\n\n /**\n * @return {boolean} The projection is suitable for wrapping the x-axis\n */\n canWrapX() {\n return this.canWrapX_;\n }\n\n /**\n * Get the code for this projection, e.g. 'EPSG:4326'.\n * @return {string} Code.\n * @api\n */\n getCode() {\n return this.code_;\n }\n\n /**\n * Get the validity extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getExtent() {\n return this.extent_;\n }\n\n /**\n * Get the units of this projection.\n * @return {import(\"./Units.js\").Units} Units.\n * @api\n */\n getUnits() {\n return this.units_;\n }\n\n /**\n * Get the amount of meters per unit of this projection. If the projection is\n * not configured with `metersPerUnit` or a units identifier, the return is\n * `undefined`.\n * @return {number|undefined} Meters.\n * @api\n */\n getMetersPerUnit() {\n return this.metersPerUnit_ || METERS_PER_UNIT[this.units_];\n }\n\n /**\n * Get the world extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getWorldExtent() {\n return this.worldExtent_;\n }\n\n /**\n * Get the axis orientation of this projection.\n * Example values are:\n * enu - the default easting, northing, elevation.\n * neu - northing, easting, up - useful for \"lat/long\" geographic coordinates,\n * or south orientated transverse mercator.\n * wnu - westing, northing, up - some planetary coordinate systems have\n * \"west positive\" coordinate systems\n * @return {string} Axis orientation.\n * @api\n */\n getAxisOrientation() {\n return this.axisOrientation_;\n }\n\n /**\n * Is this projection a global projection which spans the whole world?\n * @return {boolean} Whether the projection is global.\n * @api\n */\n isGlobal() {\n return this.global_;\n }\n\n /**\n * Set if the projection is a global projection which spans the whole world\n * @param {boolean} global Whether the projection is global.\n * @api\n */\n setGlobal(global) {\n this.global_ = global;\n this.canWrapX_ = !!(global && this.extent_);\n }\n\n /**\n * @return {import(\"../tilegrid/TileGrid.js\").default} The default tile grid.\n */\n getDefaultTileGrid() {\n return this.defaultTileGrid_;\n }\n\n /**\n * @param {import(\"../tilegrid/TileGrid.js\").default} tileGrid The default tile grid.\n */\n setDefaultTileGrid(tileGrid) {\n this.defaultTileGrid_ = tileGrid;\n }\n\n /**\n * Set the validity extent for this projection.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n setExtent(extent) {\n this.extent_ = extent;\n this.canWrapX_ = !!(this.global_ && extent);\n }\n\n /**\n * Set the world extent for this projection.\n * @param {import(\"../extent.js\").Extent} worldExtent World extent\n * [minlon, minlat, maxlon, maxlat].\n * @api\n */\n setWorldExtent(worldExtent) {\n this.worldExtent_ = worldExtent;\n }\n\n /**\n * Set the getPointResolution function (see {@link module:ol/proj.getPointResolution}\n * for this projection.\n * @param {function(number, import(\"../coordinate.js\").Coordinate):number} func Function\n * @api\n */\n setGetPointResolution(func) {\n this.getPointResolutionFunc_ = func;\n }\n\n /**\n * Get the custom point resolution function for this projection (if set).\n * @return {function(number, import(\"../coordinate.js\").Coordinate):number|undefined} The custom point\n * resolution function (if set).\n */\n getPointResolutionFunc() {\n return this.getPointResolutionFunc_;\n }\n}\n\nexport default Projection;\n","/**\n * @module ol/proj/epsg3857\n */\nimport Projection from './Projection.js';\n\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n/**\n * @const\n * @type {number}\n */\nexport const HALF_SIZE = Math.PI * RADIUS;\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE];\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const WORLD_EXTENT = [-180, -85, 180, 85];\n\n/**\n * Maximum safe value in y direction\n * @const\n * @type {number}\n */\nexport const MAX_SAFE_Y = RADIUS * Math.log(Math.tan(Math.PI / 2));\n\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nclass EPSG3857Projection extends Projection {\n /**\n * @param {string} code Code.\n */\n constructor(code) {\n super({\n code: code,\n units: 'm',\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function (resolution, point) {\n return resolution / Math.cosh(point[1] / RADIUS);\n },\n });\n }\n}\n\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('http://www.opengis.net/def/crs/EPSG/0/3857'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857'),\n];\n\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [output] Output array of coordinate values.\n * @param {number} [dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, output, dimension) {\n const length = input.length;\n dimension = dimension > 1 ? dimension : 2;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n for (let i = 0; i < length; i += dimension) {\n output[i] = (HALF_SIZE * input[i]) / 180;\n let y = RADIUS * Math.log(Math.tan((Math.PI * (+input[i + 1] + 90)) / 360));\n if (y > MAX_SAFE_Y) {\n y = MAX_SAFE_Y;\n } else if (y < -MAX_SAFE_Y) {\n y = -MAX_SAFE_Y;\n }\n output[i + 1] = y;\n }\n return output;\n}\n\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [output] Output array of coordinate values.\n * @param {number} [dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, output, dimension) {\n const length = input.length;\n dimension = dimension > 1 ? dimension : 2;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n for (let i = 0; i < length; i += dimension) {\n output[i] = (180 * input[i]) / HALF_SIZE;\n output[i + 1] =\n (360 * Math.atan(Math.exp(input[i + 1] / RADIUS))) / Math.PI - 90;\n }\n return output;\n}\n","/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\n\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [-180, -90, 180, 90];\n\n/**\n * @const\n * @type {number}\n */\nexport const METERS_PER_UNIT = (Math.PI * RADIUS) / 180;\n\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nclass EPSG4326Projection extends Projection {\n /**\n * @param {string} code Code.\n * @param {string} [axisOrientation] Axis orientation.\n */\n constructor(code, axisOrientation) {\n super({\n code: code,\n units: 'degrees',\n extent: EXTENT,\n axisOrientation: axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT,\n });\n }\n}\n\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/OGC/1.3/CRS84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/EPSG/0/4326', 'neu'),\n];\n","/**\n * @module ol/proj/projections\n */\n\n/**\n * @type {Object}\n */\nlet cache = {};\n\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return (\n cache[code] ||\n cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\\w+)$/, 'EPSG:$3')] ||\n null\n );\n}\n\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n","/**\n * @module ol/proj/transforms\n */\nimport {isEmpty} from '../obj.js';\n\n/**\n * @private\n * @type {!Object>}\n */\nlet transforms = {};\n\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n const transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n let transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n","/**\n * @module ol/extent/Relationship\n */\n\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16,\n};\n","/**\n * @module ol/extent\n */\nimport Relationship from './extent/Relationship.js';\n\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n\n/**\n * Extent corner.\n * @typedef {'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'} Corner\n */\n\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n const extent = createEmpty();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent} [dest] Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, dest) {\n const minX = Math.min.apply(null, xs);\n const minY = Math.min.apply(null, ys);\n const maxX = Math.max.apply(null, xs);\n const maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, dest);\n}\n\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, dest) {\n if (dest) {\n dest[0] = extent[0] - value;\n dest[1] = extent[1] - value;\n dest[2] = extent[2] + value;\n dest[3] = extent[3] + value;\n return dest;\n }\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value,\n ];\n}\n\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent} [dest] Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, dest) {\n if (dest) {\n dest[0] = extent[0];\n dest[1] = extent[1];\n dest[2] = extent[2];\n dest[3] = extent[3];\n return dest;\n }\n return extent.slice();\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n let dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n } else if (extent[2] < x) {\n dx = x - extent[2];\n } else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n } else if (extent[3] < y) {\n dy = y - extent[3];\n } else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return (\n extent1[0] <= extent2[0] &&\n extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] &&\n extent2[3] <= extent1[3]\n );\n}\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {import(\"./extent/Relationship.js\").default} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const x = coordinate[0];\n const y = coordinate[1];\n let relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n } else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n } else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent} [dest] Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, dest) {\n if (dest) {\n dest[0] = minX;\n dest[1] = minY;\n dest[2] = maxX;\n dest[3] = maxY;\n return dest;\n }\n return [minX, minY, maxX, maxY];\n}\n\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(dest) {\n return createOrUpdate(Infinity, Infinity, -Infinity, -Infinity, dest);\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, dest) {\n const x = coordinate[0];\n const y = coordinate[1];\n return createOrUpdate(x, y, x, y, dest);\n}\n\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, dest) {\n const extent = createOrUpdateEmpty(dest);\n return extendCoordinates(extent, coordinates);\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(\n flatCoordinates,\n offset,\n end,\n stride,\n dest\n) {\n const extent = createOrUpdateEmpty(dest);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n\n/**\n * @param {Array>} rings Rings.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, dest) {\n const extent = createOrUpdateEmpty(dest);\n return extendRings(extent, rings);\n}\n\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return (\n extent1[0] == extent2[0] &&\n extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] &&\n extent1[3] == extent2[3]\n );\n}\n\n/**\n * Determine if two extents are approximately equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {number} tolerance Tolerance in extent coordinate units.\n * @return {boolean} The two extents differ by less than the tolerance.\n */\nexport function approximatelyEquals(extent1, extent2, tolerance) {\n return (\n Math.abs(extent1[0] - extent2[0]) < tolerance &&\n Math.abs(extent1[2] - extent2[2]) < tolerance &&\n Math.abs(extent1[1] - extent2[1]) < tolerance &&\n Math.abs(extent1[3] - extent2[3]) < tolerance\n );\n}\n\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(\n extent,\n flatCoordinates,\n offset,\n end,\n stride\n) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (let i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @return {S|boolean} Value.\n * @template S\n */\nexport function forEachCorner(extent, callback) {\n let val;\n val = callback(getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback(getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n let area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {Corner} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n let coordinate;\n if (corner === 'bottom-left') {\n coordinate = getBottomLeft(extent);\n } else if (corner === 'bottom-right') {\n coordinate = getBottomRight(extent);\n } else if (corner === 'top-left') {\n coordinate = getTopLeft(extent);\n } else if (corner === 'top-right') {\n coordinate = getTopRight(extent);\n } else {\n throw new Error('Invalid corner');\n }\n return coordinate;\n}\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n const minX = Math.min(extent1[0], extent2[0]);\n const minY = Math.min(extent1[1], extent2[1]);\n const maxX = Math.max(extent1[2], extent2[2]);\n const maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent} [dest] Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, dest) {\n const [x0, y0, x1, y1, x2, y2, x3, y3] = getRotatedViewport(\n center,\n resolution,\n rotation,\n size\n );\n return createOrUpdate(\n Math.min(x0, x1, x2, x3),\n Math.min(y0, y1, y2, y3),\n Math.max(x0, x1, x2, x3),\n Math.max(y0, y1, y2, y3),\n dest\n );\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @return {Array} Linear ring representing the viewport.\n */\nexport function getRotatedViewport(center, resolution, rotation, size) {\n const dx = (resolution * size[0]) / 2;\n const dy = (resolution * size[1]) / 2;\n const cosRotation = Math.cos(rotation);\n const sinRotation = Math.sin(rotation);\n const xCos = dx * cosRotation;\n const xSin = dx * sinRotation;\n const yCos = dy * cosRotation;\n const ySin = dy * sinRotation;\n const x = center[0];\n const y = center[1];\n return [\n x - xCos + ySin,\n y - xSin - yCos,\n x - xCos - ySin,\n y - xSin + yCos,\n x + xCos - ySin,\n y + xSin + yCos,\n x + xCos + ySin,\n y + xSin - yCos,\n x - xCos + ySin,\n y - xSin - yCos,\n ];\n}\n\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n const intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent} [dest] Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, dest) {\n const intersection = dest ? dest : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n } else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n } else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n } else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n } else {\n intersection[3] = extent2[3];\n }\n } else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return (\n extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1]\n );\n}\n\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, dest) {\n if (dest) {\n dest[0] = extent[0];\n dest[1] = extent[1];\n dest[2] = extent[2];\n dest[3] = extent[3];\n return dest;\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n const deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n const deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n let intersects = false;\n const startRel = coordinateRelationship(extent, start);\n const endRel = coordinateRelationship(extent, end);\n if (\n startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING\n ) {\n intersects = true;\n } else {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const startX = start[0];\n const startY = start[1];\n const endX = end[0];\n const endY = end[1];\n const slope = (endY - startY) / (endX - startX);\n let x, y;\n if (!!(endRel & Relationship.ABOVE) && !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - (endY - maxY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)\n ) {\n // potentially intersects right\n y = endY - (endX - maxX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)\n ) {\n // potentially intersects bottom\n x = endX - (endY - minY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)\n ) {\n // potentially intersects left\n y = endY - (endX - minX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n }\n return intersects;\n}\n\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent} [dest] Destination extent.\n * @param {number} [stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, dest, stops) {\n if (isEmpty(extent)) {\n return createOrUpdateEmpty(dest);\n }\n let coordinates = [];\n if (stops > 1) {\n const width = extent[2] - extent[0];\n const height = extent[3] - extent[1];\n for (let i = 0; i < stops; ++i) {\n coordinates.push(\n extent[0] + (width * i) / stops,\n extent[1],\n extent[2],\n extent[1] + (height * i) / stops,\n extent[2] - (width * i) / stops,\n extent[3],\n extent[0],\n extent[3] - (height * i) / stops\n );\n }\n } else {\n coordinates = [\n extent[0],\n extent[1],\n extent[2],\n extent[1],\n extent[2],\n extent[3],\n extent[0],\n extent[3],\n ];\n }\n transformFn(coordinates, coordinates, 2);\n const xs = [];\n const ys = [];\n for (let i = 0, l = coordinates.length; i < l; i += 2) {\n xs.push(coordinates[i]);\n ys.push(coordinates[i + 1]);\n }\n return _boundingExtentXYs(xs, ys, dest);\n}\n\n/**\n * Modifies the provided extent in-place to be within the real world\n * extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Extent} The extent within the real world extent.\n */\nexport function wrapX(extent, projection) {\n const projectionExtent = projection.getExtent();\n const center = getCenter(extent);\n if (\n projection.canWrapX() &&\n (center[0] < projectionExtent[0] || center[0] >= projectionExtent[2])\n ) {\n const worldWidth = getWidth(projectionExtent);\n const worldsAway = Math.floor(\n (center[0] - projectionExtent[0]) / worldWidth\n );\n const offset = worldsAway * worldWidth;\n extent[0] -= offset;\n extent[2] -= offset;\n }\n return extent;\n}\n\n/**\n * Fits the extent to the real world\n *\n * If the extent does not cross the anti meridian, this will return the extent in an array\n * If the extent crosses the anti meridian, the extent will be sliced, so each part fits within the\n * real world\n *\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Array} The extent within the real world extent.\n */\nexport function wrapAndSliceX(extent, projection) {\n if (projection.canWrapX()) {\n const projectionExtent = projection.getExtent();\n\n if (!isFinite(extent[0]) || !isFinite(extent[2])) {\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n\n wrapX(extent, projection);\n const worldWidth = getWidth(projectionExtent);\n\n if (getWidth(extent) > worldWidth) {\n // the extent wraps around on itself\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n if (extent[0] < projectionExtent[0]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0] + worldWidth, extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2], extent[3]],\n ];\n }\n if (extent[2] > projectionExtent[2]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0], extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2] - worldWidth, extent[3]],\n ];\n }\n }\n\n return [extent];\n}\n","/**\n * @module ol/coordinate\n */\nimport {getWidth} from './extent.js';\nimport {modulo, toFixed} from './math.js';\nimport {padNumber} from './string.js';\n\n/**\n * An array of numbers representing an `xy`, `xyz` or `xyzm` coordinate.\n * Example: `[16, 48]`.\n * @typedef {Array} Coordinate\n * @api\n */\n\n/**\n * A function that takes a {@link module:ol/coordinate~Coordinate} and\n * transforms it into a `{string}`.\n *\n * @typedef {function((Coordinate|undefined)): string} CoordinateFormat\n * @api\n */\n\n/**\n * Add `delta` to `coordinate`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {add} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * add(coord, [-2, 4]);\n * // coord is now [5.85, 51.983333]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {Coordinate} delta Delta.\n * @return {Coordinate} The input coordinate adjusted by\n * the given delta.\n * @api\n */\nexport function add(coordinate, delta) {\n coordinate[0] += +delta[0];\n coordinate[1] += +delta[1];\n return coordinate;\n}\n\n/**\n * Calculates the point closest to the passed coordinate on the passed circle.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {import(\"./geom/Circle.js\").default} circle The circle.\n * @return {Coordinate} Closest point on the circumference.\n */\nexport function closestOnCircle(coordinate, circle) {\n const r = circle.getRadius();\n const center = circle.getCenter();\n const x0 = center[0];\n const y0 = center[1];\n const x1 = coordinate[0];\n const y1 = coordinate[1];\n\n let dx = x1 - x0;\n const dy = y1 - y0;\n if (dx === 0 && dy === 0) {\n dx = 1;\n }\n const d = Math.sqrt(dx * dx + dy * dy);\n\n const x = x0 + (r * dx) / d;\n const y = y0 + (r * dy) / d;\n\n return [x, y];\n}\n\n/**\n * Calculates the point closest to the passed coordinate on the passed segment.\n * This is the foot of the perpendicular of the coordinate to the segment when\n * the foot is on the segment, or the closest segment coordinate when the foot\n * is outside the segment.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {Array} segment The two coordinates\n * of the segment.\n * @return {Coordinate} The foot of the perpendicular of\n * the coordinate to the segment.\n */\nexport function closestOnSegment(coordinate, segment) {\n const x0 = coordinate[0];\n const y0 = coordinate[1];\n const start = segment[0];\n const end = segment[1];\n const x1 = start[0];\n const y1 = start[1];\n const x2 = end[0];\n const y2 = end[1];\n const dx = x2 - x1;\n const dy = y2 - y1;\n const along =\n dx === 0 && dy === 0\n ? 0\n : (dx * (x0 - x1) + dy * (y0 - y1)) / (dx * dx + dy * dy || 0);\n let x, y;\n if (along <= 0) {\n x = x1;\n y = y1;\n } else if (along >= 1) {\n x = x2;\n y = y2;\n } else {\n x = x1 + along * dx;\n y = y1 + along * dy;\n }\n return [x, y];\n}\n\n/**\n * Returns a {@link module:ol/coordinate~CoordinateFormat} function that can be\n * used to format\n * a {Coordinate} to a string.\n *\n * Example without specifying the fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const stringifyFunc = createStringXY();\n * const out = stringifyFunc(coord);\n * // out is now '8, 48'\n *\n * Example with explicitly specifying 2 fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const stringifyFunc = createStringXY(2);\n * const out = stringifyFunc(coord);\n * // out is now '7.85, 47.98'\n *\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {CoordinateFormat} Coordinate format.\n * @api\n */\nexport function createStringXY(fractionDigits) {\n return (\n /**\n * @param {Coordinate} coordinate Coordinate.\n * @return {string} String XY.\n */\n function (coordinate) {\n return toStringXY(coordinate, fractionDigits);\n }\n );\n}\n\n/**\n * @param {string} hemispheres Hemispheres.\n * @param {number} degrees Degrees.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} String.\n */\nexport function degreesToStringHDMS(hemispheres, degrees, fractionDigits) {\n const normalizedDegrees = modulo(degrees + 180, 360) - 180;\n const x = Math.abs(3600 * normalizedDegrees);\n const decimals = fractionDigits || 0;\n\n let deg = Math.floor(x / 3600);\n let min = Math.floor((x - deg * 3600) / 60);\n let sec = toFixed(x - deg * 3600 - min * 60, decimals);\n\n if (sec >= 60) {\n sec = 0;\n min += 1;\n }\n\n if (min >= 60) {\n min = 0;\n deg += 1;\n }\n\n let hdms = deg + '\\u00b0';\n if (min !== 0 || sec !== 0) {\n hdms += ' ' + padNumber(min, 2) + '\\u2032';\n }\n if (sec !== 0) {\n hdms += ' ' + padNumber(sec, 2, decimals) + '\\u2033';\n }\n if (normalizedDegrees !== 0) {\n hdms += ' ' + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0);\n }\n\n return hdms;\n}\n\n/**\n * Transforms the given {@link module:ol/coordinate~Coordinate} to a string\n * using the given string template. The strings `{x}` and `{y}` in the template\n * will be replaced with the first and second coordinate values respectively.\n *\n * Example without specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const template = 'Coordinate is ({x}|{y}).';\n * const out = format(coord, template);\n * // out is now 'Coordinate is (8|48).'\n *\n * Example explicitly specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const template = 'Coordinate is ({x}|{y}).';\n * const out = format(coord, template, 2);\n * // out is now 'Coordinate is (7.85|47.98).'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {string} template A template string with `{x}` and `{y}` placeholders\n * that will be replaced by first and second coordinate values.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Formatted coordinate.\n * @api\n */\nexport function format(coordinate, template, fractionDigits) {\n if (coordinate) {\n return template\n .replace('{x}', coordinate[0].toFixed(fractionDigits))\n .replace('{y}', coordinate[1].toFixed(fractionDigits));\n }\n return '';\n}\n\n/**\n * @param {Coordinate} coordinate1 First coordinate.\n * @param {Coordinate} coordinate2 Second coordinate.\n * @return {boolean} The two coordinates are equal.\n */\nexport function equals(coordinate1, coordinate2) {\n let equals = true;\n for (let i = coordinate1.length - 1; i >= 0; --i) {\n if (coordinate1[i] != coordinate2[i]) {\n equals = false;\n break;\n }\n }\n return equals;\n}\n\n/**\n * Rotate `coordinate` by `angle`. `coordinate` is modified in place and\n * returned by the function.\n *\n * Example:\n *\n * import {rotate} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const rotateRadians = Math.PI / 2; // 90 degrees\n * rotate(coord, rotateRadians);\n * // coord is now [-47.983333, 7.85]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} angle Angle in radian.\n * @return {Coordinate} Coordinate.\n * @api\n */\nexport function rotate(coordinate, angle) {\n const cosAngle = Math.cos(angle);\n const sinAngle = Math.sin(angle);\n const x = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n const y = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n coordinate[0] = x;\n coordinate[1] = y;\n return coordinate;\n}\n\n/**\n * Scale `coordinate` by `scale`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {scale as scaleCoordinate} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const scale = 1.2;\n * scaleCoordinate(coord, scale);\n * // coord is now [9.42, 57.5799996]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} scale Scale factor.\n * @return {Coordinate} Coordinate.\n */\nexport function scale(coordinate, scale) {\n coordinate[0] *= scale;\n coordinate[1] *= scale;\n return coordinate;\n}\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Squared distance between coord1 and coord2.\n */\nexport function squaredDistance(coord1, coord2) {\n const dx = coord1[0] - coord2[0];\n const dy = coord1[1] - coord2[1];\n return dx * dx + dy * dy;\n}\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Distance between coord1 and coord2.\n */\nexport function distance(coord1, coord2) {\n return Math.sqrt(squaredDistance(coord1, coord2));\n}\n\n/**\n * Calculate the squared distance from a coordinate to a line segment.\n *\n * @param {Coordinate} coordinate Coordinate of the point.\n * @param {Array} segment Line segment (2\n * coordinates).\n * @return {number} Squared distance from the point to the line segment.\n */\nexport function squaredDistanceToSegment(coordinate, segment) {\n return squaredDistance(coordinate, closestOnSegment(coordinate, segment));\n}\n\n/**\n * Format a geographic coordinate with the hemisphere, degrees, minutes, and\n * seconds.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringHDMS} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringHDMS(coord);\n * // out is now '47° 58′ 60″ N 7° 50′ 60″ E'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringHDMS} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringHDMS(coord, 1);\n * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Hemisphere, degrees, minutes and seconds.\n * @api\n */\nexport function toStringHDMS(coordinate, fractionDigits) {\n if (coordinate) {\n return (\n degreesToStringHDMS('NS', coordinate[1], fractionDigits) +\n ' ' +\n degreesToStringHDMS('EW', coordinate[0], fractionDigits)\n );\n }\n return '';\n}\n\n/**\n * Format a coordinate as a comma delimited string.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringXY(coord);\n * // out is now '8, 48'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringXY(coord, 1);\n * // out is now '7.8, 48.0'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} XY.\n * @api\n */\nexport function toStringXY(coordinate, fractionDigits) {\n return format(coordinate, '{x}, {y}', fractionDigits);\n}\n\n/**\n * Modifies the provided coordinate in-place to be within the real world\n * extent. The lower projection extent boundary is inclusive, the upper one\n * exclusive.\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {Coordinate} The coordinate within the real world extent.\n */\nexport function wrapX(coordinate, projection) {\n if (projection.canWrapX()) {\n const worldWidth = getWidth(projection.getExtent());\n const worldsAway = getWorldsAway(coordinate, projection, worldWidth);\n if (worldsAway) {\n coordinate[0] -= worldsAway * worldWidth;\n }\n }\n return coordinate;\n}\n/**\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {number} [sourceExtentWidth] Width of the source extent.\n * @return {number} Offset in world widths.\n */\nexport function getWorldsAway(coordinate, projection, sourceExtentWidth) {\n const projectionExtent = projection.getExtent();\n let worldsAway = 0;\n if (\n projection.canWrapX() &&\n (coordinate[0] < projectionExtent[0] || coordinate[0] > projectionExtent[2])\n ) {\n sourceExtentWidth = sourceExtentWidth || getWidth(projectionExtent);\n worldsAway = Math.floor(\n (coordinate[0] - projectionExtent[0]) / sourceExtentWidth\n );\n }\n return worldsAway;\n}\n","/**\n * @module ol/sphere\n */\nimport {toDegrees, toRadians} from './math.js';\n\n/**\n * Object literal with options for the {@link getLength} or {@link getArea}\n * functions.\n * @typedef {Object} SphereMetricOptions\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857']\n * Projection of the geometry. By default, the geometry is assumed to be in\n * Web Mercator.\n * @property {number} [radius=6371008.8] Sphere radius. By default, the\n * [mean Earth radius](https://en.wikipedia.org/wiki/Earth_radius#Mean_radius)\n * for the WGS84 ellipsoid is used.\n */\n\n/**\n * The mean Earth radius (1/3 * (2a + b)) for the WGS84 ellipsoid.\n * https://en.wikipedia.org/wiki/Earth_radius#Mean_radius\n * @type {number}\n */\nexport const DEFAULT_RADIUS = 6371008.8;\n\n/**\n * Get the great circle distance (in meters) between two geographic coordinates.\n * @param {Array} c1 Starting coordinate.\n * @param {Array} c2 Ending coordinate.\n * @param {number} [radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {number} The great circle distance between the points (in meters).\n * @api\n */\nexport function getDistance(c1, c2, radius) {\n radius = radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lat2 = toRadians(c2[1]);\n const deltaLatBy2 = (lat2 - lat1) / 2;\n const deltaLonBy2 = toRadians(c2[0] - c1[0]) / 2;\n const a =\n Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\n Math.sin(deltaLonBy2) *\n Math.sin(deltaLonBy2) *\n Math.cos(lat1) *\n Math.cos(lat2);\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n}\n\n/**\n * Get the cumulative great circle length of linestring coordinates (geographic).\n * @param {Array} coordinates Linestring coordinates.\n * @param {number} radius The sphere radius to use.\n * @return {number} The length (in meters).\n */\nfunction getLengthInternal(coordinates, radius) {\n let length = 0;\n for (let i = 0, ii = coordinates.length; i < ii - 1; ++i) {\n length += getDistance(coordinates[i], coordinates[i + 1], radius);\n }\n return length;\n}\n\n/**\n * Get the spherical length of a geometry. This length is the sum of the\n * great circle distances between coordinates. For polygons, the length is\n * the sum of all rings. For points, the length is zero. For multi-part\n * geometries, the length is the sum of the length of each part.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [options] Options for the\n * length calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical length (in meters).\n * @api\n */\nexport function getLength(geometry, options) {\n options = options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== 'GeometryCollection') {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let length = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case 'Point':\n case 'MultiPoint': {\n break;\n }\n case 'LineString':\n case 'LinearRing': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n length = getLengthInternal(coordinates, radius);\n break;\n }\n case 'MultiLineString':\n case 'Polygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n length += getLengthInternal(coordinates[i], radius);\n }\n break;\n }\n case 'MultiPolygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n for (j = 0, jj = coords.length; j < jj; ++j) {\n length += getLengthInternal(coords[j], radius);\n }\n }\n break;\n }\n case 'GeometryCollection': {\n const geometries =\n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (\n geometry\n ).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n length += getLength(geometries[i], options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return length;\n}\n\n/**\n * Returns the spherical area for a list of coordinates.\n *\n * [Reference](https://trs.jpl.nasa.gov/handle/2014/40409)\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for\n * Polygons on a Sphere\", JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007\n *\n * @param {Array} coordinates List of coordinates of a linear\n * ring. If the ring is oriented clockwise, the area will be positive,\n * otherwise it will be negative.\n * @param {number} radius The sphere radius.\n * @return {number} Area (in square meters).\n */\nfunction getAreaInternal(coordinates, radius) {\n let area = 0;\n const len = coordinates.length;\n let x1 = coordinates[len - 1][0];\n let y1 = coordinates[len - 1][1];\n for (let i = 0; i < len; i++) {\n const x2 = coordinates[i][0];\n const y2 = coordinates[i][1];\n area +=\n toRadians(x2 - x1) *\n (2 + Math.sin(toRadians(y1)) + Math.sin(toRadians(y2)));\n x1 = x2;\n y1 = y2;\n }\n return (area * radius * radius) / 2.0;\n}\n\n/**\n * Get the spherical area of a geometry. This is the area (in meters) assuming\n * that polygon edges are segments of great circles on a sphere.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [options] Options for the area\n * calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical area (in square meters).\n * @api\n */\nexport function getArea(geometry, options) {\n options = options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== 'GeometryCollection') {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let area = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case 'Point':\n case 'MultiPoint':\n case 'LineString':\n case 'MultiLineString':\n case 'LinearRing': {\n break;\n }\n case 'Polygon': {\n coordinates = /** @type {import(\"./geom/Polygon.js\").default} */ (\n geometry\n ).getCoordinates();\n area = Math.abs(getAreaInternal(coordinates[0], radius));\n for (i = 1, ii = coordinates.length; i < ii; ++i) {\n area -= Math.abs(getAreaInternal(coordinates[i], radius));\n }\n break;\n }\n case 'MultiPolygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n area += Math.abs(getAreaInternal(coords[0], radius));\n for (j = 1, jj = coords.length; j < jj; ++j) {\n area -= Math.abs(getAreaInternal(coords[j], radius));\n }\n }\n break;\n }\n case 'GeometryCollection': {\n const geometries =\n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (\n geometry\n ).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n area += getArea(geometries[i], options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return area;\n}\n\n/**\n * Returns the coordinate at the given distance and bearing from `c1`.\n *\n * @param {import(\"./coordinate.js\").Coordinate} c1 The origin point (`[lon, lat]` in degrees).\n * @param {number} distance The great-circle distance between the origin\n * point and the target point.\n * @param {number} bearing The bearing (in radians).\n * @param {number} [radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {import(\"./coordinate.js\").Coordinate} The target point.\n */\nexport function offset(c1, distance, bearing, radius) {\n radius = radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lon1 = toRadians(c1[0]);\n const dByR = distance / radius;\n const lat = Math.asin(\n Math.sin(lat1) * Math.cos(dByR) +\n Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing)\n );\n const lon =\n lon1 +\n Math.atan2(\n Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1),\n Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat)\n );\n return [toDegrees(lon), toDegrees(lat)];\n}\n","/**\n * @module ol/console\n */\n\n/**\n * @typedef {'info'|'warn'|'error'|'none'} Level\n */\n\n/**\n * @type {Object}\n */\nconst levels = {\n info: 1,\n warn: 2,\n error: 3,\n none: 4,\n};\n\n/**\n * @type {number}\n */\nlet level = levels.info;\n\n/**\n * Set the logging level. By default, the level is set to 'info' and all\n * messages will be logged. Set to 'warn' to only display warnings and errors.\n * Set to 'error' to only display errors. Set to 'none' to silence all messages.\n *\n * @param {Level} l The new level.\n */\nexport function setLevel(l) {\n level = levels[l];\n}\n\nexport function log(...args) {\n if (level > levels.info) {\n return;\n }\n console.log(...args); // eslint-disable-line no-console\n}\n\nexport function warn(...args) {\n if (level > levels.warn) {\n return;\n }\n console.warn(...args); // eslint-disable-line no-console\n}\n\nexport function error(...args) {\n if (level > levels.error) {\n return;\n }\n console.error(...args); // eslint-disable-line no-console\n}\n","/**\n * @module ol/proj\n */\n\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection~Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj.addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection~Projection} object for the new projection and add it with\n * {@link module:ol/proj.addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj.addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection~Projection} with\n * {@link module:ol/proj.addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport Projection from './proj/Projection.js';\nimport {\n PROJECTIONS as EPSG3857_PROJECTIONS,\n fromEPSG4326,\n toEPSG4326,\n} from './proj/epsg3857.js';\nimport {PROJECTIONS as EPSG4326_PROJECTIONS} from './proj/epsg4326.js';\nimport {METERS_PER_UNIT} from './proj/Units.js';\nimport {\n add as addProj,\n clear as clearProj,\n get as getProj,\n} from './proj/projections.js';\nimport {\n add as addTransformFunc,\n clear as clearTransformFuncs,\n get as getTransformFunc,\n} from './proj/transforms.js';\nimport {applyTransform, getWidth} from './extent.js';\nimport {clamp, modulo} from './math.js';\nimport {equals, getWorldsAway} from './coordinate.js';\nimport {getDistance} from './sphere.js';\nimport {warn} from './console.js';\n\n/**\n * A projection as {@link module:ol/proj/Projection~Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\n\nexport {METERS_PER_UNIT};\n\nexport {Projection};\n\nlet showCoordinateWarning = true;\n\n/**\n * @param {boolean} [disable = true] Disable console info about `useGeographic()`\n */\nexport function disableCoordinateWarning(disable) {\n const hide = disable === undefined ? true : disable;\n showCoordinateWarning = !hide;\n}\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [output] Output array of coordinate values.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, output) {\n if (output !== undefined) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n output[i] = input[i];\n }\n output = output;\n } else {\n output = input.slice();\n }\n return output;\n}\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [output] Output array of coordinate values.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, output) {\n if (output !== undefined && input !== output) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n output[i] = input[i];\n }\n input = output;\n }\n return input;\n}\n\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n addProj(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection|null} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string'\n ? getProj(/** @type {string} */ (projectionLike))\n : /** @type {Projection} */ (projectionLike) || null;\n}\n\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the `point` pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {import(\"./proj/Units.js\").Units} [units] Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, units) {\n projection = get(projection);\n let pointResolution;\n const getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n if (units && units !== projection.getUnits()) {\n const metersPerUnit = projection.getMetersPerUnit();\n if (metersPerUnit) {\n pointResolution =\n (pointResolution * metersPerUnit) / METERS_PER_UNIT[units];\n }\n }\n } else {\n const projUnits = projection.getUnits();\n if ((projUnits == 'degrees' && !units) || units == 'degrees') {\n pointResolution = resolution;\n } else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n const toEPSG4326 = getTransformFromProjections(\n projection,\n get('EPSG:4326')\n );\n if (toEPSG4326 === identityTransform && projUnits !== 'degrees') {\n // no transform is available\n pointResolution = resolution * projection.getMetersPerUnit();\n } else {\n let vertices = [\n point[0] - resolution / 2,\n point[1],\n point[0] + resolution / 2,\n point[1],\n point[0],\n point[1] - resolution / 2,\n point[0],\n point[1] + resolution / 2,\n ];\n vertices = toEPSG4326(vertices, vertices, 2);\n const width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n const height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n }\n const metersPerUnit = units\n ? METERS_PER_UNIT[units]\n : projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function (source) {\n projections.forEach(function (destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(\n projections1,\n projections2,\n forwardTransform,\n inverseTransform\n) {\n projections1.forEach(function (projection1) {\n projections2.forEach(function (projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n clearProj();\n clearTransformFuncs();\n}\n\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n }\n if (typeof projection === 'string') {\n return get(projection);\n }\n return /** @type {Projection} */ (projection);\n}\n\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array} [output] Output.\n * @param {number} [dimension] Dimension.\n * @return {Array} Output.\n */\n function (input, output, dimension) {\n const length = input.length;\n dimension = dimension !== undefined ? dimension : 2;\n output = output !== undefined ? output : new Array(length);\n for (let i = 0; i < length; i += dimension) {\n const point = coordTransform(input.slice(i, i + dimension));\n const pointLength = point.length;\n for (let j = 0, jj = dimension; j < jj; ++j) {\n output[i + j] = j >= pointLength ? input[i + j] : point[j];\n }\n }\n return output;\n }\n );\n}\n\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}. If the transform function can only\n * transform less dimensions than the input coordinate, it is supposeed to return a coordinate\n * with only the length it can transform. The other dimensions will be taken unchanged from the\n * source.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n const sourceProj = get(source);\n const destProj = get(destination);\n addTransformFunc(\n sourceProj,\n destProj,\n createTransformFromCoordinateTransform(forward)\n );\n addTransformFunc(\n destProj,\n sourceProj,\n createTransformFromCoordinateTransform(inverse)\n );\n}\n\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike} [projection] Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, projection) {\n disableCoordinateWarning();\n return transform(\n coordinate,\n 'EPSG:4326',\n projection !== undefined ? projection : 'EPSG:3857'\n );\n}\n\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike} [projection] Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, projection) {\n const lonLat = transform(\n coordinate,\n projection !== undefined ? projection : 'EPSG:3857',\n 'EPSG:4326'\n );\n const lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n const equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n }\n const transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n}\n\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(\n sourceProjection,\n destinationProjection\n) {\n const sourceCode = sourceProjection.getCode();\n const destinationCode = destinationProjection.getCode();\n let transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n const sourceProjection = get(source);\n const destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj.transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n const transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @param {number} [stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination, stops) {\n const transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc, undefined, stops);\n}\n\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(\n point,\n sourceProjection,\n destinationProjection\n) {\n const transformFunc = getTransformFromProjections(\n sourceProjection,\n destinationProjection\n );\n return transformFunc(point);\n}\n\n/**\n * @type {Projection|null}\n */\nlet userProjection = null;\n\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * This includes all API methods except for those interacting with tile grids,\n * plus {@link import(\"./Map.js\").FrameState} and {@link import(\"./View.js\").State}.\n * @param {ProjectionLike} projection The user projection.\n * @api\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n\n/**\n * Clear the user projection if set.\n * @api\n */\nexport function clearUserProjection() {\n userProjection = null;\n}\n\n/**\n * Get the projection for coordinates supplied from and returned by API methods.\n * @return {Projection|null} The user projection (or null if not set).\n * @api\n */\nexport function getUserProjection() {\n return userProjection;\n}\n\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods.\n * This includes all API methods except for those interacting with tile grids,\n * plus {@link import(\"./Map.js\").FrameState} and {@link import(\"./View.js\").State}.\n * @api\n */\nexport function useGeographic() {\n setUserProjection('EPSG:4326');\n}\n\n/**\n * Return a coordinate transformed into the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} sourceProjection The input coordinate projection.\n * @return {Array} The input coordinate in the user projection.\n */\nexport function toUserCoordinate(coordinate, sourceProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, sourceProjection, userProjection);\n}\n\n/**\n * Return a coordinate transformed from the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {Array} The input coordinate transformed.\n */\nexport function fromUserCoordinate(coordinate, destProjection) {\n if (!userProjection) {\n if (\n showCoordinateWarning &&\n !equals(coordinate, [0, 0]) &&\n coordinate[0] >= -180 &&\n coordinate[0] <= 180 &&\n coordinate[1] >= -90 &&\n coordinate[1] <= 90\n ) {\n showCoordinateWarning = false;\n warn(\n 'Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.'\n );\n }\n return coordinate;\n }\n return transform(coordinate, userProjection, destProjection);\n}\n\n/**\n * Return an extent transformed into the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} sourceProjection The input extent projection.\n * @return {import(\"./extent.js\").Extent} The input extent in the user projection.\n */\nexport function toUserExtent(extent, sourceProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, sourceProjection, userProjection);\n}\n\n/**\n * Return an extent transformed from the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {import(\"./extent.js\").Extent} The input extent transformed.\n */\nexport function fromUserExtent(extent, destProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, userProjection, destProjection);\n}\n\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in input projection units per pixel.\n * @param {ProjectionLike} sourceProjection The input projection.\n * @return {number} Resolution in user projection units per pixel.\n */\nexport function toUserResolution(resolution, sourceProjection) {\n if (!userProjection) {\n return resolution;\n }\n const sourceUnits = get(sourceProjection).getUnits();\n const userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[sourceUnits]) / METERS_PER_UNIT[userUnits]\n : resolution;\n}\n\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in user projection units per pixel.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {number} Resolution in destination projection units per pixel.\n */\nexport function fromUserResolution(resolution, destProjection) {\n if (!userProjection) {\n return resolution;\n }\n const sourceUnits = get(destProjection).getUnits();\n const userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[userUnits]) / METERS_PER_UNIT[sourceUnits]\n : resolution;\n}\n\n/**\n * Creates a safe coordinate transform function from a coordinate transform function.\n * \"Safe\" means that it can handle wrapping of x-coordinates for global projections,\n * and that coordinates exceeding the source projection validity extent's range will be\n * clamped to the validity range.\n * @param {Projection} sourceProj Source projection.\n * @param {Projection} destProj Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} transform Transform function (source to destination).\n * @return {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} Safe transform function (source to destination).\n */\nexport function createSafeCoordinateTransform(sourceProj, destProj, transform) {\n return function (coord) {\n let transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n const sourceExtent = sourceProj.getExtent();\n const sourceExtentWidth = getWidth(sourceExtent);\n coord = coord.slice(0);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n coord[0] = coord[0] - worldsAway * sourceExtentWidth;\n }\n coord[0] = clamp(coord[0], sourceExtent[0], sourceExtent[2]);\n coord[1] = clamp(coord[1], sourceExtent[1], sourceExtent[3]);\n transformed = transform(coord);\n } else {\n transformed = transform(coord);\n }\n if (worldsAway && destProj.canWrapX()) {\n // Move transformed coordinate back to the offset world\n transformed[0] += worldsAway * getWidth(destProj.getExtent());\n }\n return transformed;\n };\n}\n\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(\n EPSG4326_PROJECTIONS,\n EPSG3857_PROJECTIONS,\n fromEPSG4326,\n toEPSG4326\n );\n}\n\naddCommon();\n","/**\n * @module ol/centerconstraint\n */\nimport {clamp} from './math.js';\n\n/**\n * @typedef {function((import(\"./coordinate.js\").Coordinate|undefined), number, import(\"./size.js\").Size, boolean=, Array=): (import(\"./coordinate.js\").Coordinate|undefined)} Type\n */\n\n/**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {boolean} onlyCenter If true, the constraint will only apply to the view center.\n * @param {boolean} smooth If true, the view will be able to go slightly out of the given extent\n * (only during interaction and animation).\n * @return {Type} The constraint.\n */\nexport function createExtent(extent, onlyCenter, smooth) {\n return (\n /**\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center Center.\n * @param {number|undefined} resolution Resolution.\n * @param {import(\"./size.js\").Size} size Viewport size; unused if `onlyCenter` was specified.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @param {Array} [centerShift] Shift between map center and viewport center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\n function (center, resolution, size, isMoving, centerShift) {\n if (!center) {\n return undefined;\n }\n if (!resolution && !onlyCenter) {\n return center;\n }\n const viewWidth = onlyCenter ? 0 : size[0] * resolution;\n const viewHeight = onlyCenter ? 0 : size[1] * resolution;\n const shiftX = centerShift ? centerShift[0] : 0;\n const shiftY = centerShift ? centerShift[1] : 0;\n let minX = extent[0] + viewWidth / 2 + shiftX;\n let maxX = extent[2] - viewWidth / 2 + shiftX;\n let minY = extent[1] + viewHeight / 2 + shiftY;\n let maxY = extent[3] - viewHeight / 2 + shiftY;\n\n // note: when zooming out of bounds, min and max values for x and y may\n // end up inverted (min > max); this has to be accounted for\n if (minX > maxX) {\n minX = (maxX + minX) / 2;\n maxX = minX;\n }\n if (minY > maxY) {\n minY = (maxY + minY) / 2;\n maxY = minY;\n }\n\n let x = clamp(center[0], minX, maxX);\n let y = clamp(center[1], minY, maxY);\n\n // during an interaction, allow some overscroll\n if (isMoving && smooth && resolution) {\n const ratio = 30 * resolution;\n x +=\n -ratio * Math.log(1 + Math.max(0, minX - center[0]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[0] - maxX) / ratio);\n y +=\n -ratio * Math.log(1 + Math.max(0, minY - center[1]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[1] - maxY) / ratio);\n }\n\n return [x, y];\n }\n );\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} [center] Center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\nexport function none(center) {\n return center;\n}\n","/**\n * @module ol/resolutionconstraint\n */\nimport {clamp} from './math.js';\nimport {getHeight, getWidth} from './extent.js';\nimport {linearFindNearest} from './array.js';\n\n/**\n * @typedef {function((number|undefined), number, import(\"./size.js\").Size, boolean=): (number|undefined)} Type\n */\n\n/**\n * Returns a modified resolution taking into account the viewport size and maximum\n * allowed extent.\n * @param {number} resolution Resolution\n * @param {import(\"./extent.js\").Extent} maxExtent Maximum allowed extent.\n * @param {import(\"./size.js\").Size} viewportSize Viewport size.\n * @param {boolean} showFullExtent Whether to show the full extent.\n * @return {number} Capped resolution.\n */\nfunction getViewportClampedResolution(\n resolution,\n maxExtent,\n viewportSize,\n showFullExtent\n) {\n const xResolution = getWidth(maxExtent) / viewportSize[0];\n const yResolution = getHeight(maxExtent) / viewportSize[1];\n\n if (showFullExtent) {\n return Math.min(resolution, Math.max(xResolution, yResolution));\n }\n return Math.min(resolution, Math.min(xResolution, yResolution));\n}\n\n/**\n * Returns a modified resolution to be between maxResolution and minResolution while\n * still allowing the value to be slightly out of bounds.\n * Note: the computation is based on the logarithm function (ln):\n * - at 1, ln(x) is 0\n * - above 1, ln(x) keeps increasing but at a much slower pace than x\n * The final result is clamped to prevent getting too far away from bounds.\n * @param {number} resolution Resolution.\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @return {number} Smoothed resolution.\n */\nfunction getSmoothClampedResolution(resolution, maxResolution, minResolution) {\n let result = Math.min(resolution, maxResolution);\n const ratio = 50;\n\n result *=\n Math.log(1 + ratio * Math.max(0, resolution / maxResolution - 1)) / ratio +\n 1;\n if (minResolution) {\n result = Math.max(result, minResolution);\n result /=\n Math.log(1 + ratio * Math.max(0, minResolution / resolution - 1)) /\n ratio +\n 1;\n }\n return clamp(result, minResolution / 2, maxResolution * 2);\n}\n\n/**\n * @param {Array} resolutions Resolutions.\n * @param {boolean} [smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [maxExtent] Maximum allowed extent.\n * @param {boolean} [showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToResolutions(\n resolutions,\n smooth,\n maxExtent,\n showFullExtent\n) {\n smooth = smooth !== undefined ? smooth : true;\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, isMoving) {\n if (resolution !== undefined) {\n const maxResolution = resolutions[0];\n const minResolution = resolutions[resolutions.length - 1];\n const cappedMaxRes = maxExtent\n ? getViewportClampedResolution(\n maxResolution,\n maxExtent,\n size,\n showFullExtent\n )\n : maxResolution;\n\n // during interacting or animating, allow intermediary values\n if (isMoving) {\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(\n resolution,\n cappedMaxRes,\n minResolution\n );\n }\n\n const capped = Math.min(cappedMaxRes, resolution);\n const z = Math.floor(linearFindNearest(resolutions, capped, direction));\n if (resolutions[z] > cappedMaxRes && z < resolutions.length - 1) {\n return resolutions[z + 1];\n }\n return resolutions[z];\n }\n return undefined;\n }\n );\n}\n\n/**\n * @param {number} power Power.\n * @param {number} maxResolution Maximum resolution.\n * @param {number} [minResolution] Minimum resolution.\n * @param {boolean} [smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [maxExtent] Maximum allowed extent.\n * @param {boolean} [showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToPower(\n power,\n maxResolution,\n minResolution,\n smooth,\n maxExtent,\n showFullExtent\n) {\n smooth = smooth !== undefined ? smooth : true;\n minResolution = minResolution !== undefined ? minResolution : 0;\n\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, isMoving) {\n if (resolution !== undefined) {\n const cappedMaxRes = maxExtent\n ? getViewportClampedResolution(\n maxResolution,\n maxExtent,\n size,\n showFullExtent\n )\n : maxResolution;\n\n // during interacting or animating, allow intermediary values\n if (isMoving) {\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(\n resolution,\n cappedMaxRes,\n minResolution\n );\n }\n\n const tolerance = 1e-9;\n const minZoomLevel = Math.ceil(\n Math.log(maxResolution / cappedMaxRes) / Math.log(power) - tolerance\n );\n const offset = -direction * (0.5 - tolerance) + 0.5;\n const capped = Math.min(cappedMaxRes, resolution);\n const cappedZoomLevel = Math.floor(\n Math.log(maxResolution / capped) / Math.log(power) + offset\n );\n const zoomLevel = Math.max(minZoomLevel, cappedZoomLevel);\n const newResolution = maxResolution / Math.pow(power, zoomLevel);\n return clamp(newResolution, minResolution, cappedMaxRes);\n }\n return undefined;\n }\n );\n}\n\n/**\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @param {boolean} [smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [maxExtent] Maximum allowed extent.\n * @param {boolean} [showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createMinMaxResolution(\n maxResolution,\n minResolution,\n smooth,\n maxExtent,\n showFullExtent\n) {\n smooth = smooth !== undefined ? smooth : true;\n\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, isMoving) {\n if (resolution !== undefined) {\n const cappedMaxRes = maxExtent\n ? getViewportClampedResolution(\n maxResolution,\n maxExtent,\n size,\n showFullExtent\n )\n : maxResolution;\n\n if (!smooth || !isMoving) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(\n resolution,\n cappedMaxRes,\n minResolution\n );\n }\n return undefined;\n }\n );\n}\n","/**\n * @module ol/rotationconstraint\n */\nimport {toRadians} from './math.js';\n\n/**\n * @typedef {function((number|undefined), boolean=): (number|undefined)} Type\n */\n\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function disable(rotation) {\n if (rotation !== undefined) {\n return 0;\n }\n return undefined;\n}\n\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function none(rotation) {\n if (rotation !== undefined) {\n return rotation;\n }\n return undefined;\n}\n\n/**\n * @param {number} n N.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToN(n) {\n const theta = (2 * Math.PI) / n;\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, isMoving) {\n if (isMoving) {\n return rotation;\n }\n\n if (rotation !== undefined) {\n rotation = Math.floor(rotation / theta + 0.5) * theta;\n return rotation;\n }\n return undefined;\n }\n );\n}\n\n/**\n * @param {number} [tolerance] Tolerance.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToZero(tolerance) {\n tolerance = tolerance || toRadians(5);\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, isMoving) {\n if (isMoving) {\n return rotation;\n }\n\n if (rotation !== undefined) {\n if (Math.abs(rotation) <= tolerance) {\n return 0;\n }\n return rotation;\n }\n return undefined;\n }\n );\n}\n","/**\n * @module ol/easing\n */\n\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing.inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n }\n return 1 - inAndOut(2 * (t - 0.5));\n}\n","/**\n * @module ol/has\n */\n\nconst ua =\n typeof navigator !== 'undefined' && typeof navigator.userAgent !== 'undefined'\n ? navigator.userAgent.toLowerCase()\n : '';\n\n/**\n * User agent string says we are dealing with Firefox as browser.\n * @type {boolean}\n */\nexport const FIREFOX = ua.includes('firefox');\n\n/**\n * User agent string says we are dealing with Safari as browser.\n * @type {boolean}\n */\nexport const SAFARI = ua.includes('safari') && !ua.includes('chrom');\n\n/**\n * https://bugs.webkit.org/show_bug.cgi?id=237906\n * @type {boolean}\n */\nexport const SAFARI_BUG_237906 =\n SAFARI &&\n (ua.includes('version/15.4') ||\n /cpu (os|iphone os) 15_4 like mac os x/.test(ua));\n\n/**\n * User agent string says we are dealing with a WebKit engine.\n * @type {boolean}\n */\nexport const WEBKIT = ua.includes('webkit') && !ua.includes('edge');\n\n/**\n * User agent string says we are dealing with a Mac as platform.\n * @type {boolean}\n */\nexport const MAC = ua.includes('macintosh');\n\n/**\n * The ratio between physical pixels and device-independent pixels\n * (dips) on the device (`window.devicePixelRatio`).\n * @const\n * @type {number}\n * @api\n */\nexport const DEVICE_PIXEL_RATIO =\n typeof devicePixelRatio !== 'undefined' ? devicePixelRatio : 1;\n\n/**\n * The execution context is a worker with OffscreenCanvas available.\n * @const\n * @type {boolean}\n */\nexport const WORKER_OFFSCREEN_CANVAS =\n typeof WorkerGlobalScope !== 'undefined' &&\n typeof OffscreenCanvas !== 'undefined' &&\n self instanceof WorkerGlobalScope; //eslint-disable-line\n\n/**\n * Image.prototype.decode() is supported.\n * @type {boolean}\n */\nexport const IMAGE_DECODE =\n typeof Image !== 'undefined' && Image.prototype.decode;\n\n/**\n * createImageBitmap() is supported.\n * @type {boolean}\n */\nexport const CREATE_IMAGE_BITMAP = typeof createImageBitmap === 'function';\n\n/**\n * @type {boolean}\n */\nexport const PASSIVE_EVENT_LISTENERS = (function () {\n let passive = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passive = true;\n },\n });\n\n window.addEventListener('_', null, options);\n window.removeEventListener('_', null, options);\n } catch (error) {\n // passive not supported\n }\n return passive;\n})();\n","/**\n * @module ol/transform\n */\nimport {WORKER_OFFSCREEN_CANVAS} from './has.js';\nimport {assert} from './asserts.js';\n\n/**\n * An array representing an affine 2d transformation for use with\n * {@link module:ol/transform} functions. The array has 6 elements.\n * @typedef {!Array} Transform\n * @api\n */\n\n/**\n * Collection of affine 2d transformation functions. The functions work on an\n * array of 6 elements. The element order is compatible with the [SVGMatrix\n * interface](https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix) and is\n * a subset (elements a to f) of a 3×3 matrix:\n * ```\n * [ a c e ]\n * [ b d f ]\n * [ 0 0 1 ]\n * ```\n */\n\n/**\n * @private\n * @type {Transform}\n */\nconst tmp_ = new Array(6);\n\n/**\n * Create an identity transform.\n * @return {!Transform} Identity transform.\n */\nexport function create() {\n return [1, 0, 0, 1, 0, 0];\n}\n\n/**\n * Resets the given transform to an identity transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Transform.\n */\nexport function reset(transform) {\n return set(transform, 1, 0, 0, 1, 0, 0);\n}\n\n/**\n * Multiply the underlying matrices of two transforms and return the result in\n * the first transform.\n * @param {!Transform} transform1 Transform parameters of matrix 1.\n * @param {!Transform} transform2 Transform parameters of matrix 2.\n * @return {!Transform} transform1 multiplied with transform2.\n */\nexport function multiply(transform1, transform2) {\n const a1 = transform1[0];\n const b1 = transform1[1];\n const c1 = transform1[2];\n const d1 = transform1[3];\n const e1 = transform1[4];\n const f1 = transform1[5];\n const a2 = transform2[0];\n const b2 = transform2[1];\n const c2 = transform2[2];\n const d2 = transform2[3];\n const e2 = transform2[4];\n const f2 = transform2[5];\n\n transform1[0] = a1 * a2 + c1 * b2;\n transform1[1] = b1 * a2 + d1 * b2;\n transform1[2] = a1 * c2 + c1 * d2;\n transform1[3] = b1 * c2 + d1 * d2;\n transform1[4] = a1 * e2 + c1 * f2 + e1;\n transform1[5] = b1 * e2 + d1 * f2 + f1;\n\n return transform1;\n}\n\n/**\n * Set the transform components a-f on a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} a The a component of the transform.\n * @param {number} b The b component of the transform.\n * @param {number} c The c component of the transform.\n * @param {number} d The d component of the transform.\n * @param {number} e The e component of the transform.\n * @param {number} f The f component of the transform.\n * @return {!Transform} Matrix with transform applied.\n */\nexport function set(transform, a, b, c, d, e, f) {\n transform[0] = a;\n transform[1] = b;\n transform[2] = c;\n transform[3] = d;\n transform[4] = e;\n transform[5] = f;\n return transform;\n}\n\n/**\n * Set transform on one matrix from another matrix.\n * @param {!Transform} transform1 Matrix to set transform to.\n * @param {!Transform} transform2 Matrix to set transform from.\n * @return {!Transform} transform1 with transform from transform2 applied.\n */\nexport function setFromArray(transform1, transform2) {\n transform1[0] = transform2[0];\n transform1[1] = transform2[1];\n transform1[2] = transform2[2];\n transform1[3] = transform2[3];\n transform1[4] = transform2[4];\n transform1[5] = transform2[5];\n return transform1;\n}\n\n/**\n * Transforms the given coordinate with the given transform returning the\n * resulting, transformed coordinate. The coordinate will be modified in-place.\n *\n * @param {Transform} transform The transformation.\n * @param {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} coordinate The coordinate to transform.\n * @return {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} return coordinate so that operations can be\n * chained together.\n */\nexport function apply(transform, coordinate) {\n const x = coordinate[0];\n const y = coordinate[1];\n coordinate[0] = transform[0] * x + transform[2] * y + transform[4];\n coordinate[1] = transform[1] * x + transform[3] * y + transform[5];\n return coordinate;\n}\n\n/**\n * Applies rotation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} angle Angle in radians.\n * @return {!Transform} The rotated transform.\n */\nexport function rotate(transform, angle) {\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0));\n}\n\n/**\n * Applies scale to a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scaled transform.\n */\nexport function scale(transform, x, y) {\n return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0));\n}\n\n/**\n * Creates a scale transform.\n * @param {!Transform} target Transform to overwrite.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scale transform.\n */\nexport function makeScale(target, x, y) {\n return set(target, x, 0, 0, y, 0, 0);\n}\n\n/**\n * Applies translation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} dx Translation x.\n * @param {number} dy Translation y.\n * @return {!Transform} The translated transform.\n */\nexport function translate(transform, dx, dy) {\n return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy));\n}\n\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative).\n * @param {!Transform} transform The transform (will be modified in place).\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {!Transform} The composite transform.\n */\nexport function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) {\n const sin = Math.sin(angle);\n const cos = Math.cos(angle);\n transform[0] = sx * cos;\n transform[1] = sy * sin;\n transform[2] = -sx * sin;\n transform[3] = sy * cos;\n transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1;\n transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1;\n return transform;\n}\n\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative). The resulting transform\n * string can be applied as `transform` property of an HTMLElement's style.\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {string} The composite css transform.\n * @api\n */\nexport function composeCssTransform(dx1, dy1, sx, sy, angle, dx2, dy2) {\n return toString(compose(create(), dx1, dy1, sx, sy, angle, dx2, dy2));\n}\n\n/**\n * Invert the given transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (source) transform.\n */\nexport function invert(source) {\n return makeInverse(source, source);\n}\n\n/**\n * Invert the given transform.\n * @param {!Transform} target Transform to be set as the inverse of\n * the source transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (target) transform.\n */\nexport function makeInverse(target, source) {\n const det = determinant(source);\n assert(det !== 0, 'Transformation matrix cannot be inverted');\n\n const a = source[0];\n const b = source[1];\n const c = source[2];\n const d = source[3];\n const e = source[4];\n const f = source[5];\n\n target[0] = d / det;\n target[1] = -b / det;\n target[2] = -c / det;\n target[3] = a / det;\n target[4] = (c * f - d * e) / det;\n target[5] = -(a * f - b * e) / det;\n\n return target;\n}\n\n/**\n * Returns the determinant of the given matrix.\n * @param {!Transform} mat Matrix.\n * @return {number} Determinant.\n */\nexport function determinant(mat) {\n return mat[0] * mat[3] - mat[1] * mat[2];\n}\n\n/**\n * @type {HTMLElement}\n * @private\n */\nlet transformStringDiv;\n\n/**\n * A rounded string version of the transform. This can be used\n * for CSS transforms.\n * @param {!Transform} mat Matrix.\n * @return {string} The transform as a string.\n */\nexport function toString(mat) {\n const transformString = 'matrix(' + mat.join(', ') + ')';\n if (WORKER_OFFSCREEN_CANVAS) {\n return transformString;\n }\n const node =\n transformStringDiv || (transformStringDiv = document.createElement('div'));\n node.style.transform = transformString;\n return node.style.transform;\n}\n","/**\n * @module ol/geom/flat/transform\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function transform2D(\n flatCoordinates,\n offset,\n end,\n stride,\n transform,\n dest\n) {\n dest = dest ? dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const x = flatCoordinates[j];\n const y = flatCoordinates[j + 1];\n dest[i++] = transform[0] * x + transform[2] * y + transform[4];\n dest[i++] = transform[1] * x + transform[3] * y + transform[5];\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} angle Angle.\n * @param {Array} anchor Rotation anchor point.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function rotate(\n flatCoordinates,\n offset,\n end,\n stride,\n angle,\n anchor,\n dest\n) {\n dest = dest ? dest : [];\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + deltaX * cos - deltaY * sin;\n dest[i++] = anchorY + deltaX * sin + deltaY * cos;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * Scale the coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} sx Scale factor in the x-direction.\n * @param {number} sy Scale factor in the y-direction.\n * @param {Array} anchor Scale anchor point.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function scale(\n flatCoordinates,\n offset,\n end,\n stride,\n sx,\n sy,\n anchor,\n dest\n) {\n dest = dest ? dest : [];\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + sx * deltaX;\n dest[i++] = anchorY + sy * deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function translate(\n flatCoordinates,\n offset,\n end,\n stride,\n deltaX,\n deltaY,\n dest\n) {\n dest = dest ? dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n dest[i++] = flatCoordinates[j] + deltaX;\n dest[i++] = flatCoordinates[j + 1] + deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n","/**\n * @module ol/geom/Geometry\n */\nimport BaseObject from '../Object.js';\nimport {abstract} from '../util.js';\nimport {\n compose as composeTransform,\n create as createTransform,\n} from '../transform.js';\nimport {\n createEmpty,\n createOrUpdateEmpty,\n getHeight,\n returnOrUpdate,\n} from '../extent.js';\nimport {get as getProjection, getTransform} from '../proj.js';\nimport {memoizeOne} from '../functions.js';\nimport {transform2D} from './flat/transform.js';\n\n/**\n * @typedef {'XY' | 'XYZ' | 'XYM' | 'XYZM'} GeometryLayout\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available.\n */\n\n/**\n * @typedef {'Point' | 'LineString' | 'LinearRing' | 'Polygon' | 'MultiPoint' | 'MultiLineString' | 'MultiPolygon' | 'GeometryCollection' | 'Circle'} Type\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'`, `'MultiLineString'`, `'MultiPolygon'`,\n * `'GeometryCollection'`, or `'Circle'`.\n */\n\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nconst tmpTransform = createTransform();\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for vector geometries.\n *\n * To get notified of changes to the geometry, register a listener for the\n * generic `change` event on your geometry instance.\n *\n * @abstract\n * @api\n */\nclass Geometry extends BaseObject {\n constructor() {\n super();\n\n /**\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = createEmpty();\n\n /**\n * @private\n * @type {number}\n */\n this.extentRevision_ = -1;\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryRevision = 0;\n\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} revision The geometry revision.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n this.simplifyTransformedInternal = memoizeOne(function (\n revision,\n squaredTolerance,\n transform\n ) {\n if (!transform) {\n return this.getSimplifiedGeometry(squaredTolerance);\n }\n const clone = this.clone();\n clone.applyTransform(transform);\n return clone.getSimplifiedGeometry(squaredTolerance);\n });\n }\n\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n simplifyTransformed(squaredTolerance, transform) {\n return this.simplifyTransformedInternal(\n this.getRevision(),\n squaredTolerance,\n transform\n );\n }\n\n /**\n * Make a complete copy of the geometry.\n * @abstract\n * @return {!Geometry} Clone.\n */\n clone() {\n return abstract();\n }\n\n /**\n * @abstract\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n return abstract();\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n containsXY(x, y) {\n const coord = this.getClosestPoint([x, y]);\n return coord[0] === x && coord[1] === y;\n }\n\n /**\n * Return the closest point of the geometry to the passed point as\n * {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} point Point.\n * @param {import(\"../coordinate.js\").Coordinate} [closestPoint] Closest point.\n * @return {import(\"../coordinate.js\").Coordinate} Closest point.\n * @api\n */\n getClosestPoint(point, closestPoint) {\n closestPoint = closestPoint ? closestPoint : [NaN, NaN];\n this.closestPointXY(point[0], point[1], closestPoint, Infinity);\n return closestPoint;\n }\n\n /**\n * Returns true if this geometry includes the specified coordinate. If the\n * coordinate is on the boundary of the geometry, returns false.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains coordinate.\n * @api\n */\n intersectsCoordinate(coordinate) {\n return this.containsXY(coordinate[0], coordinate[1]);\n }\n\n /**\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return abstract();\n }\n\n /**\n * Get the extent of the geometry.\n * @param {import(\"../extent.js\").Extent} [extent] Extent.\n * @return {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n getExtent(extent) {\n if (this.extentRevision_ != this.getRevision()) {\n const extent = this.computeExtent(this.extent_);\n if (isNaN(extent[0]) || isNaN(extent[1])) {\n createOrUpdateEmpty(extent);\n }\n this.extentRevision_ = this.getRevision();\n }\n return returnOrUpdate(this.extent_, extent);\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} angle Rotation angle in radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n abstract();\n }\n\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n scale(sx, sy, anchor) {\n abstract();\n }\n\n /**\n * Create a simplified version of this geometry. For linestrings, this uses\n * the [Douglas Peucker](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm)\n * algorithm. For polygons, a quantization-based\n * simplification is used to preserve topology.\n * @param {number} tolerance The tolerance distance for simplification.\n * @return {Geometry} A new, simplified version of the original geometry.\n * @api\n */\n simplify(tolerance) {\n return this.getSimplifiedGeometry(tolerance * tolerance);\n }\n\n /**\n * Create a simplified version of this geometry using the Douglas Peucker\n * algorithm.\n * See https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Geometry} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n return abstract();\n }\n\n /**\n * Get the type of this geometry.\n * @abstract\n * @return {Type} Geometry type.\n */\n getType() {\n return abstract();\n }\n\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @abstract\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n */\n applyTransform(transformFn) {\n abstract();\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n */\n intersectsExtent(extent) {\n return abstract();\n }\n\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @abstract\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n translate(deltaX, deltaY) {\n abstract();\n }\n\n /**\n * Transform each coordinate of the geometry from one coordinate reference\n * system to another. The geometry is modified in place.\n * For example, a line will be transformed to a line and a circle to a circle.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Geometry} This geometry. Note that original geometry is\n * modified in place.\n * @api\n */\n transform(source, destination) {\n /** @type {import(\"../proj/Projection.js\").default} */\n const sourceProj = getProjection(source);\n const transformFn =\n sourceProj.getUnits() == 'tile-pixels'\n ? function (inCoordinates, outCoordinates, stride) {\n const pixelExtent = sourceProj.getExtent();\n const projectedExtent = sourceProj.getWorldExtent();\n const scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(\n tmpTransform,\n projectedExtent[0],\n projectedExtent[3],\n scale,\n -scale,\n 0,\n 0,\n 0\n );\n transform2D(\n inCoordinates,\n 0,\n inCoordinates.length,\n stride,\n tmpTransform,\n outCoordinates\n );\n return getTransform(sourceProj, destination)(\n inCoordinates,\n outCoordinates,\n stride\n );\n }\n : getTransform(sourceProj, destination);\n this.applyTransform(transformFn);\n return this;\n }\n}\n\nexport default Geometry;\n","/**\n * @module ol/geom/SimpleGeometry\n */\nimport Geometry from './Geometry.js';\nimport {abstract} from '../util.js';\nimport {createOrUpdateFromFlatCoordinates, getCenter} from '../extent.js';\nimport {rotate, scale, transform2D, translate} from './flat/transform.js';\n\n/**\n * @classdesc\n * Abstract base class; only used for creating subclasses; do not instantiate\n * in apps, as cannot be rendered.\n *\n * @abstract\n * @api\n */\nclass SimpleGeometry extends Geometry {\n constructor() {\n super();\n\n /**\n * @protected\n * @type {import(\"./Geometry.js\").GeometryLayout}\n */\n this.layout = 'XY';\n\n /**\n * @protected\n * @type {number}\n */\n this.stride = 2;\n\n /**\n * @protected\n * @type {Array}\n */\n this.flatCoordinates = null;\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return createOrUpdateFromFlatCoordinates(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n extent\n );\n }\n\n /**\n * @abstract\n * @return {Array<*> | null} Coordinates.\n */\n getCoordinates() {\n return abstract();\n }\n\n /**\n * Return the first coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} First coordinate.\n * @api\n */\n getFirstCoordinate() {\n return this.flatCoordinates.slice(0, this.stride);\n }\n\n /**\n * @return {Array} Flat coordinates.\n */\n getFlatCoordinates() {\n return this.flatCoordinates;\n }\n\n /**\n * Return the last coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} Last point.\n * @api\n */\n getLastCoordinate() {\n return this.flatCoordinates.slice(\n this.flatCoordinates.length - this.stride\n );\n }\n\n /**\n * Return the {@link import(\"./Geometry.js\").GeometryLayout layout} of the geometry.\n * @return {import(\"./Geometry.js\").GeometryLayout} Layout.\n * @api\n */\n getLayout() {\n return this.layout;\n }\n\n /**\n * Create a simplified version of this geometry using the Douglas Peucker algorithm.\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n if (this.simplifiedGeometryRevision !== this.getRevision()) {\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n this.simplifiedGeometryRevision = this.getRevision();\n }\n // If squaredTolerance is negative or if we know that simplification will not\n // have any effect then just return this.\n if (\n squaredTolerance < 0 ||\n (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 &&\n squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)\n ) {\n return this;\n }\n\n const simplifiedGeometry =\n this.getSimplifiedGeometryInternal(squaredTolerance);\n const simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates();\n if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) {\n return simplifiedGeometry;\n }\n // Simplification did not actually remove any coordinates. We now know\n // that any calls to getSimplifiedGeometry with a squaredTolerance less\n // than or equal to the current squaredTolerance will also not have any\n // effect. This allows us to short circuit simplification (saving CPU\n // cycles) and prevents the cache of simplified geometries from filling\n // up with useless identical copies of this geometry (saving memory).\n this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance;\n return this;\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n * @protected\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n return this;\n }\n\n /**\n * @return {number} Stride.\n */\n getStride() {\n return this.stride;\n }\n\n /**\n * @param {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n * @param {Array} flatCoordinates Flat coordinates.\n */\n setFlatCoordinates(layout, flatCoordinates) {\n this.stride = getStrideForLayout(layout);\n this.layout = layout;\n this.flatCoordinates = flatCoordinates;\n }\n\n /**\n * @abstract\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n setCoordinates(coordinates, layout) {\n abstract();\n }\n\n /**\n * @param {import(\"./Geometry.js\").GeometryLayout|undefined} layout Layout.\n * @param {Array<*>} coordinates Coordinates.\n * @param {number} nesting Nesting.\n * @protected\n */\n setLayout(layout, coordinates, nesting) {\n /** @type {number} */\n let stride;\n if (layout) {\n stride = getStrideForLayout(layout);\n } else {\n for (let i = 0; i < nesting; ++i) {\n if (coordinates.length === 0) {\n this.layout = 'XY';\n this.stride = 2;\n return;\n }\n coordinates = /** @type {Array} */ (coordinates[0]);\n }\n stride = coordinates.length;\n layout = getLayoutForStride(stride);\n }\n this.layout = layout;\n this.stride = stride;\n }\n\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n * @api\n */\n applyTransform(transformFn) {\n if (this.flatCoordinates) {\n transformFn(this.flatCoordinates, this.flatCoordinates, this.stride);\n this.changed();\n }\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n rotate(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n angle,\n anchor,\n flatCoordinates\n );\n this.changed();\n }\n }\n\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n scale(sx, sy, anchor) {\n if (sy === undefined) {\n sy = sx;\n }\n if (!anchor) {\n anchor = getCenter(this.getExtent());\n }\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n scale(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n sx,\n sy,\n anchor,\n flatCoordinates\n );\n this.changed();\n }\n }\n\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n translate(deltaX, deltaY) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n translate(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n deltaX,\n deltaY,\n flatCoordinates\n );\n this.changed();\n }\n }\n}\n\n/**\n * @param {number} stride Stride.\n * @return {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n */\nfunction getLayoutForStride(stride) {\n let layout;\n if (stride == 2) {\n layout = 'XY';\n } else if (stride == 3) {\n layout = 'XYZ';\n } else if (stride == 4) {\n layout = 'XYZM';\n }\n return /** @type {import(\"./Geometry.js\").GeometryLayout} */ (layout);\n}\n\n/**\n * @param {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n * @return {number} Stride.\n */\nexport function getStrideForLayout(layout) {\n let stride;\n if (layout == 'XY') {\n stride = 2;\n } else if (layout == 'XYZ' || layout == 'XYM') {\n stride = 3;\n } else if (layout == 'XYZM') {\n stride = 4;\n }\n return /** @type {number} */ (stride);\n}\n\n/**\n * @param {SimpleGeometry} simpleGeometry Simple geometry.\n * @param {import(\"../transform.js\").Transform} transform Transform.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed flat coordinates.\n */\nexport function transformGeom2D(simpleGeometry, transform, dest) {\n const flatCoordinates = simpleGeometry.getFlatCoordinates();\n if (!flatCoordinates) {\n return null;\n }\n const stride = simpleGeometry.getStride();\n return transform2D(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n transform,\n dest\n );\n}\n\nexport default SimpleGeometry;\n","/**\n * @module ol/geom/flat/closest\n */\nimport {lerp, squaredDistance as squaredDx} from '../../math.js';\n\n/**\n * Returns the point on the 2D line segment flatCoordinates[offset1] to\n * flatCoordinates[offset2] that is closest to the point (x, y). Extra\n * dimensions are linearly interpolated.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset1 Offset 1.\n * @param {number} offset2 Offset 2.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n */\nfunction assignClosest(\n flatCoordinates,\n offset1,\n offset2,\n stride,\n x,\n y,\n closestPoint\n) {\n const x1 = flatCoordinates[offset1];\n const y1 = flatCoordinates[offset1 + 1];\n const dx = flatCoordinates[offset2] - x1;\n const dy = flatCoordinates[offset2 + 1] - y1;\n let offset;\n if (dx === 0 && dy === 0) {\n offset = offset1;\n } else {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n offset = offset2;\n } else if (t > 0) {\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = lerp(\n flatCoordinates[offset1 + i],\n flatCoordinates[offset2 + i],\n t\n );\n }\n closestPoint.length = stride;\n return;\n } else {\n offset = offset1;\n }\n }\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n}\n\n/**\n * Return the squared of the largest distance between any pair of consecutive\n * coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function maxSquaredDelta(flatCoordinates, offset, end, stride, max) {\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n for (offset += stride; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n const squaredDelta = squaredDx(x1, y1, x2, y2);\n if (squaredDelta > max) {\n max = squaredDelta;\n }\n x1 = x2;\n y1 = y2;\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function arrayMaxSquaredDelta(\n flatCoordinates,\n offset,\n ends,\n stride,\n max\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n max = maxSquaredDelta(flatCoordinates, offset, end, stride, max);\n offset = end;\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function multiArrayMaxSquaredDelta(\n flatCoordinates,\n offset,\n endss,\n stride,\n max\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n max = arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max);\n offset = ends[ends.length - 1];\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestPoint(\n flatCoordinates,\n offset,\n end,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n if (offset == end) {\n return minSquaredDistance;\n }\n let i, squaredDistance;\n if (maxDelta === 0) {\n // All points are identical, so just test the first point.\n squaredDistance = squaredDx(\n x,\n y,\n flatCoordinates[offset],\n flatCoordinates[offset + 1]\n );\n if (squaredDistance < minSquaredDistance) {\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n return minSquaredDistance;\n }\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n let index = offset + stride;\n while (index < end) {\n assignClosest(\n flatCoordinates,\n index - stride,\n index,\n stride,\n x,\n y,\n tmpPoint\n );\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n index += stride;\n } else {\n // Skip ahead multiple points, because we know that all the skipped\n // points cannot be any closer than the closest point we have found so\n // far. We know this because we know how close the current point is, how\n // close the closest point we have found so far is, and the maximum\n // distance between consecutive points. For example, if we're currently\n // at distance 10, the best we've found so far is 3, and that the maximum\n // distance between consecutive points is 2, then we'll need to skip at\n // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of\n // finding a closer point. We use Math.max(..., 1) to ensure that we\n // always advance at least one point, to avoid an infinite loop.\n index +=\n stride *\n Math.max(\n ((Math.sqrt(squaredDistance) - Math.sqrt(minSquaredDistance)) /\n maxDelta) |\n 0,\n 1\n );\n }\n }\n if (isRing) {\n // Check the closing segment.\n assignClosest(\n flatCoordinates,\n end - stride,\n offset,\n stride,\n x,\n y,\n tmpPoint\n );\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestArrayPoint(\n flatCoordinates,\n offset,\n ends,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n minSquaredDistance = assignClosestPoint(\n flatCoordinates,\n offset,\n end,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n );\n offset = end;\n }\n return minSquaredDistance;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestMultiArrayPoint(\n flatCoordinates,\n offset,\n endss,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n minSquaredDistance = assignClosestArrayPoint(\n flatCoordinates,\n offset,\n ends,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n );\n offset = ends[ends.length - 1];\n }\n return minSquaredDistance;\n}\n","/**\n * @module ol/geom/flat/deflate\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinate(flatCoordinates, offset, coordinate, stride) {\n for (let i = 0, ii = coordinate.length; i < ii; ++i) {\n flatCoordinates[offset++] = coordinate[i];\n }\n return offset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} coordinates Coordinates.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinates(\n flatCoordinates,\n offset,\n coordinates,\n stride\n) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n const coordinate = coordinates[i];\n for (let j = 0; j < stride; ++j) {\n flatCoordinates[offset++] = coordinate[j];\n }\n }\n return offset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} coordinatess Coordinatess.\n * @param {number} stride Stride.\n * @param {Array} [ends] Ends.\n * @return {Array} Ends.\n */\nexport function deflateCoordinatesArray(\n flatCoordinates,\n offset,\n coordinatess,\n stride,\n ends\n) {\n ends = ends ? ends : [];\n let i = 0;\n for (let j = 0, jj = coordinatess.length; j < jj; ++j) {\n const end = deflateCoordinates(\n flatCoordinates,\n offset,\n coordinatess[j],\n stride\n );\n ends[i++] = end;\n offset = end;\n }\n ends.length = i;\n return ends;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>>} coordinatesss Coordinatesss.\n * @param {number} stride Stride.\n * @param {Array>} [endss] Endss.\n * @return {Array>} Endss.\n */\nexport function deflateMultiCoordinatesArray(\n flatCoordinates,\n offset,\n coordinatesss,\n stride,\n endss\n) {\n endss = endss ? endss : [];\n let i = 0;\n for (let j = 0, jj = coordinatesss.length; j < jj; ++j) {\n const ends = deflateCoordinatesArray(\n flatCoordinates,\n offset,\n coordinatesss[j],\n stride,\n endss[i]\n );\n if (ends.length === 0) {\n ends[0] = offset;\n }\n endss[i++] = ends;\n offset = ends[ends.length - 1];\n }\n endss.length = i;\n return endss;\n}\n","/**\n * @module ol/geom/flat/simplify\n */\n// Based on simplify-js https://github.com/mourner/simplify-js\n// Copyright (c) 2012, Vladimir Agafonkin\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice,\n// this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n// POSSIBILITY OF SUCH DAMAGE.\n\nimport {squaredDistance, squaredSegmentDistance} from '../../math.js';\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {boolean} highQuality Highest quality.\n * @param {Array} [simplifiedFlatCoordinates] Simplified flat\n * coordinates.\n * @return {Array} Simplified line string.\n */\nexport function simplifyLineString(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n highQuality,\n simplifiedFlatCoordinates\n) {\n simplifiedFlatCoordinates =\n simplifiedFlatCoordinates !== undefined ? simplifiedFlatCoordinates : [];\n if (!highQuality) {\n end = radialDistance(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0\n );\n flatCoordinates = simplifiedFlatCoordinates;\n offset = 0;\n stride = 2;\n }\n simplifiedFlatCoordinates.length = douglasPeucker(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0\n );\n return simplifiedFlatCoordinates;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function douglasPeucker(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n) {\n const n = (end - offset) / stride;\n if (n < 3) {\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n /** @type {Array} */\n const markers = new Array(n);\n markers[0] = 1;\n markers[n - 1] = 1;\n /** @type {Array} */\n const stack = [offset, end - stride];\n let index = 0;\n while (stack.length > 0) {\n const last = stack.pop();\n const first = stack.pop();\n let maxSquaredDistance = 0;\n const x1 = flatCoordinates[first];\n const y1 = flatCoordinates[first + 1];\n const x2 = flatCoordinates[last];\n const y2 = flatCoordinates[last + 1];\n for (let i = first + stride; i < last; i += stride) {\n const x = flatCoordinates[i];\n const y = flatCoordinates[i + 1];\n const squaredDistance = squaredSegmentDistance(x, y, x1, y1, x2, y2);\n if (squaredDistance > maxSquaredDistance) {\n index = i;\n maxSquaredDistance = squaredDistance;\n }\n }\n if (maxSquaredDistance > squaredTolerance) {\n markers[(index - offset) / stride] = 1;\n if (first + stride < index) {\n stack.push(first, index);\n }\n if (index + stride < last) {\n stack.push(index, last);\n }\n }\n }\n for (let i = 0; i < n; ++i) {\n if (markers[i]) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride + 1];\n }\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n simplifiedOffset = douglasPeucker(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n );\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerMultiArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEndss\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n const simplifiedEnds = [];\n simplifiedOffset = douglasPeuckerArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n );\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function radialDistance(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n) {\n if (end <= offset + stride) {\n // zero or one point, no simplification possible, so copy and return\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n // copy first point\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n let x2 = x1;\n let y2 = y1;\n for (offset += stride; offset < end; offset += stride) {\n x2 = flatCoordinates[offset];\n y2 = flatCoordinates[offset + 1];\n if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {\n // copy point at offset\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n }\n }\n if (x2 != x1 || y2 != y1) {\n // copy last point\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {number} value Value.\n * @param {number} tolerance Tolerance.\n * @return {number} Rounded value.\n */\nexport function snap(value, tolerance) {\n return tolerance * Math.round(value / tolerance);\n}\n\n/**\n * Simplifies a line string using an algorithm designed by Tim Schaub.\n * Coordinates are snapped to the nearest value in a virtual grid and\n * consecutive duplicate coordinates are discarded. This effectively preserves\n * topology as the simplification of any subsection of a line string is\n * independent of the rest of the line string. This means that, for examples,\n * the common edge between two polygons will be simplified to the same line\n * string independently in both polygons. This implementation uses a single\n * pass over the coordinates and eliminates intermediate collinear points.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function quantize(\n flatCoordinates,\n offset,\n end,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n) {\n // do nothing if the line is empty\n if (offset == end) {\n return simplifiedOffset;\n }\n // snap the first coordinate (P1)\n let x1 = snap(flatCoordinates[offset], tolerance);\n let y1 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // add the first coordinate to the output\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n // find the next coordinate that does not snap to the same value as the first\n // coordinate (P2)\n let x2, y2;\n do {\n x2 = snap(flatCoordinates[offset], tolerance);\n y2 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n if (offset == end) {\n // all coordinates snap to the same value, the line collapses to a point\n // push the last snapped value anyway to ensure that the output contains\n // at least two points\n // FIXME should we really return at least two points anyway?\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n }\n } while (x2 == x1 && y2 == y1);\n while (offset < end) {\n // snap the next coordinate (P3)\n const x3 = snap(flatCoordinates[offset], tolerance);\n const y3 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // skip P3 if it is equal to P2\n if (x3 == x2 && y3 == y2) {\n continue;\n }\n // calculate the delta between P1 and P2\n const dx1 = x2 - x1;\n const dy1 = y2 - y1;\n // calculate the delta between P3 and P1\n const dx2 = x3 - x1;\n const dy2 = y3 - y1;\n // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from\n // P1 in the same direction then P2 is on the straight line between P1 and\n // P3\n if (\n dx1 * dy2 == dy1 * dx2 &&\n ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) &&\n ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))\n ) {\n // discard P2 and set P2 = P3\n x2 = x3;\n y2 = y3;\n continue;\n }\n // either P1, P2, and P3 are not colinear, or they are colinear but P3 is\n // between P3 and P1 or on the opposite half of the line to P2. add P2,\n // and continue with P1 = P2 and P2 = P3\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n x2 = x3;\n y2 = y3;\n }\n // add the last point (P2)\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function quantizeArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n simplifiedOffset = quantize(\n flatCoordinates,\n offset,\n end,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n );\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function quantizeMultiArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEndss\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n const simplifiedEnds = [];\n simplifiedOffset = quantizeArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n );\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n","/**\n * @module ol/geom/flat/inflate\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Array} [coordinates] Coordinates.\n * @return {Array} Coordinates.\n */\nexport function inflateCoordinates(\n flatCoordinates,\n offset,\n end,\n stride,\n coordinates\n) {\n coordinates = coordinates !== undefined ? coordinates : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n coordinates[i++] = flatCoordinates.slice(j, j + stride);\n }\n coordinates.length = i;\n return coordinates;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array>} [coordinatess] Coordinatess.\n * @return {Array>} Coordinatess.\n */\nexport function inflateCoordinatesArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n coordinatess\n) {\n coordinatess = coordinatess !== undefined ? coordinatess : [];\n let i = 0;\n for (let j = 0, jj = ends.length; j < jj; ++j) {\n const end = ends[j];\n coordinatess[i++] = inflateCoordinates(\n flatCoordinates,\n offset,\n end,\n stride,\n coordinatess[i]\n );\n offset = end;\n }\n coordinatess.length = i;\n return coordinatess;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array>>} [coordinatesss]\n * Coordinatesss.\n * @return {Array>>} Coordinatesss.\n */\nexport function inflateMultiCoordinatesArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n coordinatesss\n) {\n coordinatesss = coordinatesss !== undefined ? coordinatesss : [];\n let i = 0;\n for (let j = 0, jj = endss.length; j < jj; ++j) {\n const ends = endss[j];\n coordinatesss[i++] =\n ends.length === 1 && ends[0] === offset\n ? []\n : inflateCoordinatesArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n coordinatesss[i]\n );\n offset = ends[ends.length - 1];\n }\n coordinatesss.length = i;\n return coordinatesss;\n}\n","/**\n * @module ol/geom/flat/area\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRing(flatCoordinates, offset, end, stride) {\n let twiceArea = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n twiceArea += y1 * x2 - x1 * y2;\n x1 = x2;\n y1 = y2;\n }\n return twiceArea / 2;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRings(flatCoordinates, offset, ends, stride) {\n let area = 0;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n area += linearRing(flatCoordinates, offset, end, stride);\n offset = end;\n }\n return area;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRingss(flatCoordinates, offset, endss, stride) {\n let area = 0;\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n area += linearRings(flatCoordinates, offset, ends, stride);\n offset = ends[ends.length - 1];\n }\n return area;\n}\n","/**\n * @module ol/geom/LinearRing\n */\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {assignClosestPoint, maxSquaredDelta} from './flat/closest.js';\nimport {closestSquaredDistanceXY} from '../extent.js';\nimport {deflateCoordinates} from './flat/deflate.js';\nimport {douglasPeucker} from './flat/simplify.js';\nimport {inflateCoordinates} from './flat/inflate.js';\nimport {linearRing as linearRingArea} from './flat/area.js';\n\n/**\n * @classdesc\n * Linear ring geometry. Only used as part of polygon; cannot be rendered\n * on its own.\n *\n * @api\n */\nclass LinearRing extends SimpleGeometry {\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `layout` are also accepted.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n constructor(coordinates, layout) {\n super();\n\n /**\n * @private\n * @type {number}\n */\n this.maxDelta_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDeltaRevision_ = -1;\n\n if (layout !== undefined && !Array.isArray(coordinates[0])) {\n this.setFlatCoordinates(\n layout,\n /** @type {Array} */ (coordinates)\n );\n } else {\n this.setCoordinates(\n /** @type {Array} */ (\n coordinates\n ),\n layout\n );\n }\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!LinearRing} Clone.\n * @api\n */\n clone() {\n return new LinearRing(this.flatCoordinates.slice(), this.layout);\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(\n maxSquaredDelta(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n 0\n )\n );\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n this.maxDelta_,\n true,\n x,\n y,\n closestPoint,\n minSquaredDistance\n );\n }\n\n /**\n * Return the area of the linear ring on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n getArea() {\n return linearRingArea(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride\n );\n }\n\n /**\n * Return the coordinates of the linear ring.\n * @return {Array} Coordinates.\n * @api\n */\n getCoordinates() {\n return inflateCoordinates(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride\n );\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {LinearRing} Simplified LinearRing.\n * @protected\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n const simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0\n );\n return new LinearRing(simplifiedFlatCoordinates, 'XY');\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n getType() {\n return 'LinearRing';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n intersectsExtent(extent) {\n return false;\n }\n\n /**\n * Set the coordinates of the linear ring.\n * @param {!Array} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n */\n setCoordinates(coordinates, layout) {\n this.setLayout(layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(\n this.flatCoordinates,\n 0,\n coordinates,\n this.stride\n );\n this.changed();\n }\n}\n\nexport default LinearRing;\n","/**\n * @module ol/geom/Point\n */\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {containsXY, createOrUpdateFromCoordinate} from '../extent.js';\nimport {deflateCoordinate} from './flat/deflate.js';\nimport {squaredDistance as squaredDx} from '../math.js';\n\n/**\n * @classdesc\n * Point geometry.\n *\n * @api\n */\nclass Point extends SimpleGeometry {\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n constructor(coordinates, layout) {\n super();\n this.setCoordinates(coordinates, layout);\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!Point} Clone.\n * @api\n */\n clone() {\n const point = new Point(this.flatCoordinates.slice(), this.layout);\n point.applyProperties(this);\n return point;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n const flatCoordinates = this.flatCoordinates;\n const squaredDistance = squaredDx(\n x,\n y,\n flatCoordinates[0],\n flatCoordinates[1]\n );\n if (squaredDistance < minSquaredDistance) {\n const stride = this.stride;\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n return minSquaredDistance;\n }\n\n /**\n * Return the coordinate of the point.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinates.\n * @api\n */\n getCoordinates() {\n return !this.flatCoordinates ? [] : this.flatCoordinates.slice();\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return createOrUpdateFromCoordinate(this.flatCoordinates, extent);\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n getType() {\n return 'Point';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n intersectsExtent(extent) {\n return containsXY(extent, this.flatCoordinates[0], this.flatCoordinates[1]);\n }\n\n /**\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n */\n setCoordinates(coordinates, layout) {\n this.setLayout(layout, coordinates, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinate(\n this.flatCoordinates,\n 0,\n coordinates,\n this.stride\n );\n this.changed();\n }\n}\n\nexport default Point;\n","/**\n * @module ol/geom/flat/contains\n */\nimport {forEachCorner} from '../../extent.js';\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} Contains extent.\n */\nexport function linearRingContainsExtent(\n flatCoordinates,\n offset,\n end,\n stride,\n extent\n) {\n const outside = forEachCorner(\n extent,\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains (x, y).\n */\n function (coordinate) {\n return !linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n coordinate[0],\n coordinate[1]\n );\n }\n );\n return !outside;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n x,\n y\n) {\n // https://geomalgorithms.com/a03-_inclusion.html\n // Copyright 2000 softSurfer, 2012 Dan Sunday\n // This code may be freely used and modified for any purpose\n // providing that this copyright notice is included with it.\n // SoftSurfer makes no warranty for this code, and cannot be held\n // liable for any real or imagined damage resulting from its use.\n // Users of this code must verify correctness for their application.\n let wn = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n if (y1 <= y) {\n if (y2 > y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) > 0) {\n wn++;\n }\n } else if (y2 <= y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) < 0) {\n wn--;\n }\n x1 = x2;\n y1 = y2;\n }\n return wn !== 0;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingsContainsXY(\n flatCoordinates,\n offset,\n ends,\n stride,\n x,\n y\n) {\n if (ends.length === 0) {\n return false;\n }\n if (!linearRingContainsXY(flatCoordinates, offset, ends[0], stride, x, y)) {\n return false;\n }\n for (let i = 1, ii = ends.length; i < ii; ++i) {\n if (\n linearRingContainsXY(flatCoordinates, ends[i - 1], ends[i], stride, x, y)\n ) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingssContainsXY(\n flatCoordinates,\n offset,\n endss,\n stride,\n x,\n y\n) {\n if (endss.length === 0) {\n return false;\n }\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/interiorpoint\n */\nimport {ascending} from '../../array.js';\nimport {linearRingsContainsXY} from './contains.js';\n\n/**\n * Calculates a point that is likely to lie in the interior of the linear rings.\n * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @param {number} flatCentersOffset Flat center offset.\n * @param {Array} [dest] Destination.\n * @return {Array} Destination point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointOfArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n flatCenters,\n flatCentersOffset,\n dest\n) {\n let i, ii, x, x1, x2, y1, y2;\n const y = flatCenters[flatCentersOffset + 1];\n /** @type {Array} */\n const intersections = [];\n // Calculate intersections with the horizontal line\n for (let r = 0, rr = ends.length; r < rr; ++r) {\n const end = ends[r];\n x1 = flatCoordinates[end - stride];\n y1 = flatCoordinates[end - stride + 1];\n for (i = offset; i < end; i += stride) {\n x2 = flatCoordinates[i];\n y2 = flatCoordinates[i + 1];\n if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) {\n x = ((y - y1) / (y2 - y1)) * (x2 - x1) + x1;\n intersections.push(x);\n }\n x1 = x2;\n y1 = y2;\n }\n }\n // Find the longest segment of the horizontal line that has its center point\n // inside the linear ring.\n let pointX = NaN;\n let maxSegmentLength = -Infinity;\n intersections.sort(ascending);\n x1 = intersections[0];\n for (i = 1, ii = intersections.length; i < ii; ++i) {\n x2 = intersections[i];\n const segmentLength = Math.abs(x2 - x1);\n if (segmentLength > maxSegmentLength) {\n x = (x1 + x2) / 2;\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n pointX = x;\n maxSegmentLength = segmentLength;\n }\n }\n x1 = x2;\n }\n if (isNaN(pointX)) {\n // There is no horizontal line that has its center point inside the linear\n // ring. Use the center of the the linear ring's extent.\n pointX = flatCenters[flatCentersOffset];\n }\n if (dest) {\n dest.push(pointX, y, maxSegmentLength);\n return dest;\n }\n return [pointX, y, maxSegmentLength];\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @return {Array} Interior points as XYM coordinates, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointsOfMultiArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n flatCenters\n) {\n let interiorPoints = [];\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n interiorPoints = getInteriorPointOfArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n flatCenters,\n 2 * i,\n interiorPoints\n );\n offset = ends[ends.length - 1];\n }\n return interiorPoints;\n}\n","/**\n * @module ol/geom/flat/segments\n */\n\n/**\n * This function calls `callback` for each segment of the flat coordinates\n * array. If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {function(import(\"../../coordinate.js\").Coordinate, import(\"../../coordinate.js\").Coordinate): T} callback Function\n * called for each segment.\n * @return {T|boolean} Value.\n * @template T\n */\nexport function forEach(flatCoordinates, offset, end, stride, callback) {\n let ret;\n offset += stride;\n for (; offset < end; offset += stride) {\n ret = callback(\n flatCoordinates.slice(offset - stride, offset),\n flatCoordinates.slice(offset, offset + stride)\n );\n if (ret) {\n return ret;\n }\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/intersectsextent\n */\nimport {\n containsExtent,\n createEmpty,\n extendFlatCoordinates,\n intersects,\n intersectsSegment,\n} from '../../extent.js';\nimport {forEach as forEachSegment} from './segments.js';\nimport {linearRingContainsExtent, linearRingContainsXY} from './contains.js';\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineString(\n flatCoordinates,\n offset,\n end,\n stride,\n extent\n) {\n const coordinatesExtent = extendFlatCoordinates(\n createEmpty(),\n flatCoordinates,\n offset,\n end,\n stride\n );\n if (!intersects(extent, coordinatesExtent)) {\n return false;\n }\n if (containsExtent(extent, coordinatesExtent)) {\n return true;\n }\n if (coordinatesExtent[0] >= extent[0] && coordinatesExtent[2] <= extent[2]) {\n return true;\n }\n if (coordinatesExtent[1] >= extent[1] && coordinatesExtent[3] <= extent[3]) {\n return true;\n }\n return forEachSegment(\n flatCoordinates,\n offset,\n end,\n stride,\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} point1 Start point.\n * @param {import(\"../../coordinate.js\").Coordinate} point2 End point.\n * @return {boolean} `true` if the segment and the extent intersect,\n * `false` otherwise.\n */\n function (point1, point2) {\n return intersectsSegment(extent, point1, point2);\n }\n );\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineStringArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n extent\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n if (\n intersectsLineString(flatCoordinates, offset, ends[i], stride, extent)\n ) {\n return true;\n }\n offset = ends[i];\n }\n return false;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRing(\n flatCoordinates,\n offset,\n end,\n stride,\n extent\n) {\n if (intersectsLineString(flatCoordinates, offset, end, stride, extent)) {\n return true;\n }\n if (\n linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n extent[0],\n extent[1]\n )\n ) {\n return true;\n }\n if (\n linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n extent[0],\n extent[3]\n )\n ) {\n return true;\n }\n if (\n linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n extent[2],\n extent[1]\n )\n ) {\n return true;\n }\n if (\n linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n extent[2],\n extent[3]\n )\n ) {\n return true;\n }\n return false;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n extent\n) {\n if (!intersectsLinearRing(flatCoordinates, offset, ends[0], stride, extent)) {\n return false;\n }\n if (ends.length === 1) {\n return true;\n }\n for (let i = 1, ii = ends.length; i < ii; ++i) {\n if (\n linearRingContainsExtent(\n flatCoordinates,\n ends[i - 1],\n ends[i],\n stride,\n extent\n )\n ) {\n if (\n !intersectsLineString(\n flatCoordinates,\n ends[i - 1],\n ends[i],\n stride,\n extent\n )\n ) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingMultiArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n extent\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n if (\n intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent)\n ) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/reverse\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n */\nexport function coordinates(flatCoordinates, offset, end, stride) {\n while (offset < end - stride) {\n for (let i = 0; i < stride; ++i) {\n const tmp = flatCoordinates[offset + i];\n flatCoordinates[offset + i] = flatCoordinates[end - stride + i];\n flatCoordinates[end - stride + i] = tmp;\n }\n offset += stride;\n end -= stride;\n }\n}\n","/**\n * @module ol/geom/flat/orient\n */\nimport {coordinates as reverseCoordinates} from './reverse.js';\n\n/**\n * Is the linear ring oriented clockwise in a coordinate system with a bottom-left\n * coordinate origin? For a coordinate system with a top-left coordinate origin,\n * the ring's orientation is clockwise when this function returns false.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {boolean} Is clockwise.\n */\nexport function linearRingIsClockwise(flatCoordinates, offset, end, stride) {\n // https://stackoverflow.com/q/1165647/clockwise-method#1165943\n // https://github.com/OSGeo/gdal/blob/master/gdal/ogr/ogrlinearring.cpp\n let edge = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n edge += (x2 - x1) * (y2 + y1);\n x1 = x2;\n y1 = y2;\n }\n return edge === 0 ? undefined : edge > 0;\n}\n\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingsAreOriented(\n flatCoordinates,\n offset,\n ends,\n stride,\n right\n) {\n right = right !== undefined ? right : false;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n const isClockwise = linearRingIsClockwise(\n flatCoordinates,\n offset,\n end,\n stride\n );\n if (i === 0) {\n if ((right && isClockwise) || (!right && !isClockwise)) {\n return false;\n }\n } else {\n if ((right && !isClockwise) || (!right && isClockwise)) {\n return false;\n }\n }\n offset = end;\n }\n return true;\n}\n\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingssAreOriented(\n flatCoordinates,\n offset,\n endss,\n stride,\n right\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n if (!linearRingsAreOriented(flatCoordinates, offset, ends, stride, right)) {\n return false;\n }\n if (ends.length) {\n offset = ends[ends.length - 1];\n }\n }\n return true;\n}\n\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {boolean} [right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRings(\n flatCoordinates,\n offset,\n ends,\n stride,\n right\n) {\n right = right !== undefined ? right : false;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n const isClockwise = linearRingIsClockwise(\n flatCoordinates,\n offset,\n end,\n stride\n );\n const reverse =\n i === 0\n ? (right && isClockwise) || (!right && !isClockwise)\n : (right && !isClockwise) || (!right && isClockwise);\n if (reverse) {\n reverseCoordinates(flatCoordinates, offset, end, stride);\n }\n offset = end;\n }\n return offset;\n}\n\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRingsArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n right\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n offset = orientLinearRings(\n flatCoordinates,\n offset,\n endss[i],\n stride,\n right\n );\n }\n return offset;\n}\n\n/**\n * Return a two-dimensional endss\n * @param {Array} flatCoordinates Flat coordinates\n * @param {Array} ends Linear ring end indexes\n * @return {Array>} Two dimensional endss array that can\n * be used to construct a MultiPolygon\n */\nexport function inflateEnds(flatCoordinates, ends) {\n const endss = [];\n let offset = 0;\n let prevEndIndex = 0;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n // classifies an array of rings into polygons with outer rings and holes\n if (!linearRingIsClockwise(flatCoordinates, offset, end, 2)) {\n endss.push(ends.slice(prevEndIndex, i + 1));\n } else {\n if (endss.length === 0) {\n continue;\n }\n endss[endss.length - 1].push(ends[prevEndIndex]);\n }\n prevEndIndex = i + 1;\n offset = end;\n }\n return endss;\n}\n","/**\n * @module ol/geom/Polygon\n */\nimport LinearRing from './LinearRing.js';\nimport Point from './Point.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {arrayMaxSquaredDelta, assignClosestArrayPoint} from './flat/closest.js';\nimport {closestSquaredDistanceXY, getCenter, isEmpty} from '../extent.js';\nimport {deflateCoordinatesArray} from './flat/deflate.js';\nimport {extend} from '../array.js';\nimport {getInteriorPointOfArray} from './flat/interiorpoint.js';\nimport {inflateCoordinatesArray} from './flat/inflate.js';\nimport {intersectsLinearRingArray} from './flat/intersectsextent.js';\nimport {linearRingsAreOriented, orientLinearRings} from './flat/orient.js';\nimport {linearRings as linearRingsArea} from './flat/area.js';\nimport {linearRingsContainsXY} from './flat/contains.js';\nimport {modulo} from '../math.js';\nimport {quantizeArray} from './flat/simplify.js';\nimport {offset as sphereOffset} from '../sphere.js';\n\n/**\n * @classdesc\n * Polygon geometry.\n *\n * @api\n */\nclass Polygon extends SimpleGeometry {\n /**\n * @param {!Array>|!Array} coordinates\n * Array of linear rings that define the polygon. The first linear ring of the\n * array defines the outer-boundary or surface of the polygon. Each subsequent\n * linear ring defines a hole in the surface of the polygon. A linear ring is\n * an array of vertices' coordinates where the first coordinate and the last are\n * equivalent. (For internal use, flat coordinates in combination with\n * `layout` and `ends` are also accepted.)\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @param {Array} [ends] Ends (for internal use with flat coordinates).\n */\n constructor(coordinates, layout, ends) {\n super();\n\n /**\n * @type {Array}\n * @private\n */\n this.ends_ = [];\n\n /**\n * @private\n * @type {number}\n */\n this.flatInteriorPointRevision_ = -1;\n\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n this.flatInteriorPoint_ = null;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDelta_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDeltaRevision_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.orientedRevision_ = -1;\n\n /**\n * @private\n * @type {Array}\n */\n this.orientedFlatCoordinates_ = null;\n\n if (layout !== undefined && ends) {\n this.setFlatCoordinates(\n layout,\n /** @type {Array} */ (coordinates)\n );\n this.ends_ = ends;\n } else {\n this.setCoordinates(\n /** @type {Array>} */ (\n coordinates\n ),\n layout\n );\n }\n }\n\n /**\n * Append the passed linear ring to this polygon.\n * @param {LinearRing} linearRing Linear ring.\n * @api\n */\n appendLinearRing(linearRing) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = linearRing.getFlatCoordinates().slice();\n } else {\n extend(this.flatCoordinates, linearRing.getFlatCoordinates());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!Polygon} Clone.\n * @api\n */\n clone() {\n const polygon = new Polygon(\n this.flatCoordinates.slice(),\n this.layout,\n this.ends_.slice()\n );\n polygon.applyProperties(this);\n return polygon;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(\n arrayMaxSquaredDelta(\n this.flatCoordinates,\n 0,\n this.ends_,\n this.stride,\n 0\n )\n );\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestArrayPoint(\n this.flatCoordinates,\n 0,\n this.ends_,\n this.stride,\n this.maxDelta_,\n true,\n x,\n y,\n closestPoint,\n minSquaredDistance\n );\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n containsXY(x, y) {\n return linearRingsContainsXY(\n this.getOrientedFlatCoordinates(),\n 0,\n this.ends_,\n this.stride,\n x,\n y\n );\n }\n\n /**\n * Return the area of the polygon on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n getArea() {\n return linearRingsArea(\n this.getOrientedFlatCoordinates(),\n 0,\n this.ends_,\n this.stride\n );\n }\n\n /**\n * Get the coordinate array for this geometry. This array has the structure\n * of a GeoJSON coordinate array for polygons.\n *\n * @param {boolean} [right] Orient coordinates according to the right-hand\n * rule (counter-clockwise for exterior and clockwise for interior rings).\n * If `false`, coordinates will be oriented according to the left-hand rule\n * (clockwise for exterior and counter-clockwise for interior rings).\n * By default, coordinate orientation will depend on how the geometry was\n * constructed.\n * @return {Array>} Coordinates.\n * @api\n */\n getCoordinates(right) {\n let flatCoordinates;\n if (right !== undefined) {\n flatCoordinates = this.getOrientedFlatCoordinates().slice();\n orientLinearRings(flatCoordinates, 0, this.ends_, this.stride, right);\n } else {\n flatCoordinates = this.flatCoordinates;\n }\n\n return inflateCoordinatesArray(flatCoordinates, 0, this.ends_, this.stride);\n }\n\n /**\n * @return {Array} Ends.\n */\n getEnds() {\n return this.ends_;\n }\n\n /**\n * @return {Array} Interior point.\n */\n getFlatInteriorPoint() {\n if (this.flatInteriorPointRevision_ != this.getRevision()) {\n const flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoint_ = getInteriorPointOfArray(\n this.getOrientedFlatCoordinates(),\n 0,\n this.ends_,\n this.stride,\n flatCenter,\n 0\n );\n this.flatInteriorPointRevision_ = this.getRevision();\n }\n return this.flatInteriorPoint_;\n }\n\n /**\n * Return an interior point of the polygon.\n * @return {Point} Interior point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n * @api\n */\n getInteriorPoint() {\n return new Point(this.getFlatInteriorPoint(), 'XYM');\n }\n\n /**\n * Return the number of rings of the polygon, this includes the exterior\n * ring and any interior rings.\n *\n * @return {number} Number of rings.\n * @api\n */\n getLinearRingCount() {\n return this.ends_.length;\n }\n\n /**\n * Return the Nth linear ring of the polygon geometry. Return `null` if the\n * given index is out of range.\n * The exterior linear ring is available at index `0` and the interior rings\n * at index `1` and beyond.\n *\n * @param {number} index Index.\n * @return {LinearRing|null} Linear ring.\n * @api\n */\n getLinearRing(index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LinearRing(\n this.flatCoordinates.slice(\n index === 0 ? 0 : this.ends_[index - 1],\n this.ends_[index]\n ),\n this.layout\n );\n }\n\n /**\n * Return the linear rings of the polygon.\n * @return {Array} Linear rings.\n * @api\n */\n getLinearRings() {\n const layout = this.layout;\n const flatCoordinates = this.flatCoordinates;\n const ends = this.ends_;\n const linearRings = [];\n let offset = 0;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n const linearRing = new LinearRing(\n flatCoordinates.slice(offset, end),\n layout\n );\n linearRings.push(linearRing);\n offset = end;\n }\n return linearRings;\n }\n\n /**\n * @return {Array} Oriented flat coordinates.\n */\n getOrientedFlatCoordinates() {\n if (this.orientedRevision_ != this.getRevision()) {\n const flatCoordinates = this.flatCoordinates;\n if (linearRingsAreOriented(flatCoordinates, 0, this.ends_, this.stride)) {\n this.orientedFlatCoordinates_ = flatCoordinates;\n } else {\n this.orientedFlatCoordinates_ = flatCoordinates.slice();\n this.orientedFlatCoordinates_.length = orientLinearRings(\n this.orientedFlatCoordinates_,\n 0,\n this.ends_,\n this.stride\n );\n }\n this.orientedRevision_ = this.getRevision();\n }\n return this.orientedFlatCoordinates_;\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Polygon} Simplified Polygon.\n * @protected\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n const simplifiedFlatCoordinates = [];\n const simplifiedEnds = [];\n simplifiedFlatCoordinates.length = quantizeArray(\n this.flatCoordinates,\n 0,\n this.ends_,\n this.stride,\n Math.sqrt(squaredTolerance),\n simplifiedFlatCoordinates,\n 0,\n simplifiedEnds\n );\n return new Polygon(simplifiedFlatCoordinates, 'XY', simplifiedEnds);\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n getType() {\n return 'Polygon';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n intersectsExtent(extent) {\n return intersectsLinearRingArray(\n this.getOrientedFlatCoordinates(),\n 0,\n this.ends_,\n this.stride,\n extent\n );\n }\n\n /**\n * Set the coordinates of the polygon.\n * @param {!Array>} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n */\n setCoordinates(coordinates, layout) {\n this.setLayout(layout, coordinates, 2);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n const ends = deflateCoordinatesArray(\n this.flatCoordinates,\n 0,\n coordinates,\n this.stride,\n this.ends_\n );\n this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1];\n this.changed();\n }\n}\n\nexport default Polygon;\n\n/**\n * Create an approximation of a circle on the surface of a sphere.\n * @param {import(\"../coordinate.js\").Coordinate} center Center (`[lon, lat]` in degrees).\n * @param {number} radius The great-circle distance from the center to\n * the polygon vertices in meters.\n * @param {number} [n] Optional number of vertices for the resulting\n * polygon. Default is `32`.\n * @param {number} [sphereRadius] Optional radius for the sphere (defaults to\n * the Earth's mean radius using the WGS84 ellipsoid).\n * @return {Polygon} The \"circular\" polygon.\n * @api\n */\nexport function circular(center, radius, n, sphereRadius) {\n n = n ? n : 32;\n /** @type {Array} */\n const flatCoordinates = [];\n for (let i = 0; i < n; ++i) {\n extend(\n flatCoordinates,\n sphereOffset(center, radius, (2 * Math.PI * i) / n, sphereRadius)\n );\n }\n flatCoordinates.push(flatCoordinates[0], flatCoordinates[1]);\n return new Polygon(flatCoordinates, 'XY', [flatCoordinates.length]);\n}\n\n/**\n * Create a polygon from an extent. The layout used is `XY`.\n * @param {import(\"../extent.js\").Extent} extent The extent.\n * @return {Polygon} The polygon.\n * @api\n */\nexport function fromExtent(extent) {\n if (isEmpty(extent)) {\n throw new Error('Cannot create polygon from empty extent');\n }\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const flatCoordinates = [\n minX,\n minY,\n minX,\n maxY,\n maxX,\n maxY,\n maxX,\n minY,\n minX,\n minY,\n ];\n return new Polygon(flatCoordinates, 'XY', [flatCoordinates.length]);\n}\n\n/**\n * Create a regular polygon from a circle.\n * @param {import(\"./Circle.js\").default} circle Circle geometry.\n * @param {number} [sides] Number of sides of the polygon. Default is 32.\n * @param {number} [angle] Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n * @return {Polygon} Polygon geometry.\n * @api\n */\nexport function fromCircle(circle, sides, angle) {\n sides = sides ? sides : 32;\n const stride = circle.getStride();\n const layout = circle.getLayout();\n const center = circle.getCenter();\n const arrayLength = stride * (sides + 1);\n const flatCoordinates = new Array(arrayLength);\n for (let i = 0; i < arrayLength; i += stride) {\n flatCoordinates[i] = 0;\n flatCoordinates[i + 1] = 0;\n for (let j = 2; j < stride; j++) {\n flatCoordinates[i + j] = center[j];\n }\n }\n const ends = [flatCoordinates.length];\n const polygon = new Polygon(flatCoordinates, layout, ends);\n makeRegular(polygon, center, circle.getRadius(), angle);\n return polygon;\n}\n\n/**\n * Modify the coordinates of a polygon to make it a regular polygon.\n * @param {Polygon} polygon Polygon geometry.\n * @param {import(\"../coordinate.js\").Coordinate} center Center of the regular polygon.\n * @param {number} radius Radius of the regular polygon.\n * @param {number} [angle] Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n */\nexport function makeRegular(polygon, center, radius, angle) {\n const flatCoordinates = polygon.getFlatCoordinates();\n const stride = polygon.getStride();\n const sides = flatCoordinates.length / stride - 1;\n const startAngle = angle ? angle : 0;\n for (let i = 0; i <= sides; ++i) {\n const offset = i * stride;\n const angle = startAngle + (modulo(i, sides) * 2 * Math.PI) / sides;\n flatCoordinates[offset] = center[0] + radius * Math.cos(angle);\n flatCoordinates[offset + 1] = center[1] + radius * Math.sin(angle);\n }\n polygon.changed();\n}\n","/**\n * @module ol/View\n */\nimport BaseObject from './Object.js';\nimport ViewHint from './ViewHint.js';\nimport ViewProperty from './ViewProperty.js';\nimport {DEFAULT_TILE_SIZE} from './tilegrid/common.js';\nimport {\n METERS_PER_UNIT,\n createProjection,\n disableCoordinateWarning,\n fromUserCoordinate,\n fromUserExtent,\n getUserProjection,\n toUserCoordinate,\n toUserExtent,\n} from './proj.js';\nimport {VOID} from './functions.js';\nimport {\n add as addCoordinate,\n equals as coordinatesEqual,\n equals,\n rotate as rotateCoordinate,\n} from './coordinate.js';\nimport {assert} from './asserts.js';\nimport {none as centerNone, createExtent} from './centerconstraint.js';\nimport {clamp, modulo} from './math.js';\nimport {\n createMinMaxResolution,\n createSnapToPower,\n createSnapToResolutions,\n} from './resolutionconstraint.js';\nimport {\n createSnapToN,\n createSnapToZero,\n disable,\n none as rotationNone,\n} from './rotationconstraint.js';\nimport {easeOut, inAndOut} from './easing.js';\nimport {\n getCenter,\n getForViewAndSize,\n getHeight,\n getWidth,\n isEmpty,\n} from './extent.js';\nimport {linearFindNearest} from './array.js';\nimport {fromExtent as polygonFromExtent} from './geom/Polygon.js';\n\n/**\n * An animation configuration\n *\n * @typedef {Object} Animation\n * @property {import(\"./coordinate.js\").Coordinate} [sourceCenter] Source center.\n * @property {import(\"./coordinate.js\").Coordinate} [targetCenter] Target center.\n * @property {number} [sourceResolution] Source resolution.\n * @property {number} [targetResolution] Target resolution.\n * @property {number} [sourceRotation] Source rotation.\n * @property {number} [targetRotation] Target rotation.\n * @property {import(\"./coordinate.js\").Coordinate} [anchor] Anchor.\n * @property {number} start Start.\n * @property {number} duration Duration.\n * @property {boolean} complete Complete.\n * @property {function(number):number} easing Easing.\n * @property {function(boolean):void} callback Callback.\n */\n\n/**\n * @typedef {Object} Constraints\n * @property {import(\"./centerconstraint.js\").Type} center Center.\n * @property {import(\"./resolutionconstraint.js\").Type} resolution Resolution.\n * @property {import(\"./rotationconstraint.js\").Type} rotation Rotation.\n */\n\n/**\n * @typedef {Object} FitOptions\n * @property {import(\"./size.js\").Size} [size] The size in pixels of the box to fit\n * the extent into. Default is the current size of the first map in the DOM that\n * uses this view, or `[100, 100]` if no such map is found.\n * @property {!Array} [padding=[0, 0, 0, 0]] Padding (in pixels) to be\n * cleared inside the view. Values in the array are top, right, bottom and left\n * padding.\n * @property {boolean} [nearest=false] If the view `constrainResolution` option is `true`,\n * get the nearest extent instead of the closest that actually fits the view.\n * @property {number} [minResolution=0] Minimum resolution that we zoom to.\n * @property {number} [maxZoom] Maximum zoom level that we zoom to. If\n * `minResolution` is given, this property is ignored.\n * @property {number} [duration] The duration of the animation in milliseconds.\n * By default, there is no animation to the target extent.\n * @property {function(number):number} [easing] The easing function used during\n * the animation (defaults to {@link module:ol/easing.inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n * @property {function(boolean):void} [callback] Function called when the view is in\n * its final position. The callback will be called with `true` if the animation\n * series completed on its own or `false` if it was cancelled.\n */\n\n/**\n * @typedef {Object} ViewOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The initial center for\n * the view. If a user projection is not set, the coordinate system for the center is\n * specified with the `projection` option. Layer sources will not be fetched if this\n * is not set, but the center can be set later with {@link #setCenter}.\n * @property {boolean|number} [constrainRotation=true] Rotation constraint.\n * `false` means no constraint. `true` means no constraint, but snap to zero\n * near zero. A number constrains the rotation to that number of values. For\n * example, `4` will constrain the rotation to 0, 90, 180, and 270 degrees.\n * @property {boolean} [enableRotation=true] Enable rotation.\n * If `false`, a rotation constraint that always sets the rotation to zero is\n * used. The `constrainRotation` option has no effect if `enableRotation` is\n * `false`.\n * @property {import(\"./extent.js\").Extent} [extent] The extent that constrains the\n * view, in other words, nothing outside of this extent can be visible on the map.\n * @property {boolean} [constrainOnlyCenter=false] If true, the extent\n * constraint will only apply to the view center and not the whole extent.\n * @property {boolean} [smoothExtentConstraint=true] If true, the extent\n * constraint will be applied smoothly, i.e. allow the view to go slightly outside\n * of the given `extent`.\n * @property {number} [maxResolution] The maximum resolution used to determine\n * the resolution constraint. It is used together with `minResolution` (or\n * `maxZoom`) and `zoomFactor`. If unspecified it is calculated in such a way\n * that the projection's validity extent fits in a 256x256 px tile. If the\n * projection is Spherical Mercator (the default) then `maxResolution` defaults\n * to `40075016.68557849 / 256 = 156543.03392804097`.\n * @property {number} [minResolution] The minimum resolution used to determine\n * the resolution constraint. It is used together with `maxResolution` (or\n * `minZoom`) and `zoomFactor`. If unspecified it is calculated assuming 29\n * zoom levels (with a factor of 2). If the projection is Spherical Mercator\n * (the default) then `minResolution` defaults to\n * `40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253`.\n * @property {number} [maxZoom=28] The maximum zoom level used to determine the\n * resolution constraint. It is used together with `minZoom` (or\n * `maxResolution`) and `zoomFactor`. Note that if `minResolution` is also\n * provided, it is given precedence over `maxZoom`.\n * @property {number} [minZoom=0] The minimum zoom level used to determine the\n * resolution constraint. It is used together with `maxZoom` (or\n * `minResolution`) and `zoomFactor`. Note that if `maxResolution` is also\n * provided, it is given precedence over `minZoom`.\n * @property {boolean} [multiWorld=false] If `false` the view is constrained so\n * only one world is visible, and you cannot pan off the edge. If `true` the map\n * may show multiple worlds at low zoom levels. Only used if the `projection` is\n * global. Note that if `extent` is also provided it is given precedence.\n * @property {boolean} [constrainResolution=false] If true, the view will always\n * animate to the closest zoom level after an interaction; false means\n * intermediary zoom levels are allowed.\n * @property {boolean} [smoothResolutionConstraint=true] If true, the resolution\n * min/max values will be applied smoothly, i. e. allow the view to exceed slightly\n * the given resolution or zoom bounds.\n * @property {boolean} [showFullExtent=false] Allow the view to be zoomed out to\n * show the full configured extent. By default, when a view is configured with an\n * extent, users will not be able to zoom out so the viewport exceeds the extent in\n * either dimension. This means the full extent may not be visible if the viewport\n * is taller or wider than the aspect ratio of the configured extent. If\n * showFullExtent is true, the user will be able to zoom out so that the viewport\n * exceeds the height or width of the configured extent, but not both, allowing the\n * full extent to be shown.\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857'] The\n * projection. The default is Spherical Mercator.\n * @property {number} [resolution] The initial resolution for the view. The\n * units are `projection` units per pixel (e.g. meters per pixel). An\n * alternative to setting this is to set `zoom`. Layer sources will not be\n * fetched if neither this nor `zoom` are defined, but they can be set later\n * with {@link #setZoom} or {@link #setResolution}.\n * @property {Array} [resolutions] Resolutions that determine the\n * zoom levels if specified. The index in the array corresponds to the zoom level,\n * therefore the resolution values have to be in descending order. It also constrains\n * the resolution by the minimum and maximum value. If set the `maxResolution`,\n * `minResolution`, `minZoom`, `maxZoom`, and `zoomFactor` options are ignored.\n * @property {number} [rotation=0] The initial rotation for the view in radians\n * (positive rotation clockwise, 0 means North).\n * @property {number} [zoom] Only used if `resolution` is not defined. Zoom\n * level used to calculate the initial resolution for the view.\n * @property {number} [zoomFactor=2] The zoom factor used to compute the\n * corresponding resolution.\n * @property {!Array} [padding=[0, 0, 0, 0]] Padding (in css pixels).\n * If the map viewport is partially covered with other content (overlays) along\n * its edges, this setting allows to shift the center of the viewport away from\n * that content. The order of the values is top, right, bottom, left.\n */\n\n/**\n * @typedef {Object} AnimationOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The center of the view at the end of\n * the animation.\n * @property {number} [zoom] The zoom level of the view at the end of the\n * animation. This takes precedence over `resolution`.\n * @property {number} [resolution] The resolution of the view at the end\n * of the animation. If `zoom` is also provided, this option will be ignored.\n * @property {number} [rotation] The rotation of the view at the end of\n * the animation.\n * @property {import(\"./coordinate.js\").Coordinate} [anchor] Optional anchor to remain fixed\n * during a rotation or resolution animation.\n * @property {number} [duration=1000] The duration of the animation in milliseconds.\n * @property {function(number):number} [easing] The easing function used\n * during the animation (defaults to {@link module:ol/easing.inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n */\n\n/**\n * @typedef {Object} State\n * @property {import(\"./coordinate.js\").Coordinate} center Center (in view projection coordinates).\n * @property {import(\"./proj/Projection.js\").default} projection Projection.\n * @property {number} resolution Resolution.\n * @property {import(\"./coordinate.js\").Coordinate} [nextCenter] The next center during an animation series.\n * @property {number} [nextResolution] The next resolution during an animation series.\n * @property {number} [nextRotation] The next rotation during an animation series.\n * @property {number} rotation Rotation.\n * @property {number} zoom Zoom.\n */\n\n/**\n * Like {@link import(\"./Map.js\").FrameState}, but just `viewState` and `extent`.\n * @typedef {Object} ViewStateLayerStateExtent\n * @property {State} viewState View state.\n * @property {import(\"./extent.js\").Extent} extent Extent (in user projection coordinates).\n * @property {Array} [layerStatesArray] Layer states.\n */\n\n/**\n * Default min zoom level for the map view.\n * @type {number}\n */\nconst DEFAULT_MIN_ZOOM = 0;\n\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:center'|'change:resolution'|'change:rotation'} ViewObjectEventTypes\n */\n\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ViewOnSignature\n */\n\n/**\n * @classdesc\n * A View object represents a simple 2D view of the map.\n *\n * This is the object to act upon to change the center, resolution,\n * and rotation of the map.\n *\n * A View has a `projection`. The projection determines the\n * coordinate system of the center, and its units determine the units of the\n * resolution (projection units per pixel). The default projection is\n * Web Mercator (EPSG:3857).\n *\n * ### The view states\n *\n * A View is determined by three states: `center`, `resolution`,\n * and `rotation`. Each state has a corresponding getter and setter, e.g.\n * `getCenter` and `setCenter` for the `center` state.\n *\n * The `zoom` state is actually not saved on the view: all computations\n * internally use the `resolution` state. Still, the `setZoom` and `getZoom`\n * methods are available, as well as `getResolutionForZoom` and\n * `getZoomForResolution` to switch from one system to the other.\n *\n * ### The constraints\n *\n * `setCenter`, `setResolution` and `setRotation` can be used to change the\n * states of the view, but any constraint defined in the constructor will\n * be applied along the way.\n *\n * A View object can have a *resolution constraint*, a *rotation constraint*\n * and a *center constraint*.\n *\n * The *resolution constraint* typically restricts min/max values and\n * snaps to specific resolutions. It is determined by the following\n * options: `resolutions`, `maxResolution`, `maxZoom` and `zoomFactor`.\n * If `resolutions` is set, the other three options are ignored. See\n * documentation for each option for more information. By default, the view\n * only has a min/max restriction and allow intermediary zoom levels when\n * pinch-zooming for example.\n *\n * The *rotation constraint* snaps to specific angles. It is determined\n * by the following options: `enableRotation` and `constrainRotation`.\n * By default rotation is allowed and its value is snapped to zero when approaching the\n * horizontal.\n *\n * The *center constraint* is determined by the `extent` option. By\n * default the view center is not constrained at all.\n *\n * ### Changing the view state\n *\n * It is important to note that `setZoom`, `setResolution`, `setCenter` and\n * `setRotation` are subject to the above mentioned constraints. As such, it\n * may sometimes not be possible to know in advance the resulting state of the\n * View. For example, calling `setResolution(10)` does not guarantee that\n * `getResolution()` will return `10`.\n *\n * A consequence of this is that, when applying a delta on the view state, one\n * should use `adjustCenter`, `adjustRotation`, `adjustZoom` and `adjustResolution`\n * rather than the corresponding setters. This will let view do its internal\n * computations. Besides, the `adjust*` methods also take an `anchor`\n * argument which allows specifying an origin for the transformation.\n *\n * ### Interacting with the view\n *\n * View constraints are usually only applied when the view is *at rest*, meaning that\n * no interaction or animation is ongoing. As such, if the user puts the view in a\n * state that is not equivalent to a constrained one (e.g. rotating the view when\n * the snap angle is 0), an animation will be triggered at the interaction end to\n * put back the view to a stable state;\n *\n * @api\n */\nclass View extends BaseObject {\n /**\n * @param {ViewOptions} [options] View options.\n */\n constructor(options) {\n super();\n\n /***\n * @type {ViewOnSignature}\n */\n this.on;\n\n /***\n * @type {ViewOnSignature}\n */\n this.once;\n\n /***\n * @type {ViewOnSignature}\n */\n this.un;\n\n options = Object.assign({}, options);\n\n /**\n * @private\n * @type {Array}\n */\n this.hints_ = [0, 0];\n\n /**\n * @private\n * @type {Array>}\n */\n this.animations_ = [];\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.updateAnimationKey_;\n\n /**\n * @private\n * @const\n * @type {import(\"./proj/Projection.js\").default}\n */\n this.projection_ = createProjection(options.projection, 'EPSG:3857');\n\n /**\n * @private\n * @type {import(\"./size.js\").Size}\n */\n this.viewportSize_ = [100, 100];\n\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate|undefined}\n */\n this.targetCenter_ = null;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.targetResolution_;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.targetRotation_;\n\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate}\n */\n this.nextCenter_ = null;\n\n /**\n * @private\n * @type {number}\n */\n this.nextResolution_;\n\n /**\n * @private\n * @type {number}\n */\n this.nextRotation_;\n\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate|undefined}\n */\n this.cancelAnchor_ = undefined;\n\n if (options.projection) {\n disableCoordinateWarning();\n }\n if (options.center) {\n options.center = fromUserCoordinate(options.center, this.projection_);\n }\n if (options.extent) {\n options.extent = fromUserExtent(options.extent, this.projection_);\n }\n\n this.applyOptions_(options);\n }\n\n /**\n * Set up the view with the given options.\n * @param {ViewOptions} options View options.\n */\n applyOptions_(options) {\n const properties = Object.assign({}, options);\n for (const key in ViewProperty) {\n delete properties[key];\n }\n this.setProperties(properties, true);\n\n const resolutionConstraintInfo = createResolutionConstraint(options);\n\n /**\n * @private\n * @type {number}\n */\n this.maxResolution_ = resolutionConstraintInfo.maxResolution;\n\n /**\n * @private\n * @type {number}\n */\n this.minResolution_ = resolutionConstraintInfo.minResolution;\n\n /**\n * @private\n * @type {number}\n */\n this.zoomFactor_ = resolutionConstraintInfo.zoomFactor;\n\n /**\n * @private\n * @type {Array|undefined}\n */\n this.resolutions_ = options.resolutions;\n\n /**\n * @type {Array|undefined}\n * @private\n */\n this.padding_ = options.padding;\n\n /**\n * @private\n * @type {number}\n */\n this.minZoom_ = resolutionConstraintInfo.minZoom;\n\n const centerConstraint = createCenterConstraint(options);\n const resolutionConstraint = resolutionConstraintInfo.constraint;\n const rotationConstraint = createRotationConstraint(options);\n\n /**\n * @private\n * @type {Constraints}\n */\n this.constraints_ = {\n center: centerConstraint,\n resolution: resolutionConstraint,\n rotation: rotationConstraint,\n };\n\n this.setRotation(options.rotation !== undefined ? options.rotation : 0);\n this.setCenterInternal(\n options.center !== undefined ? options.center : null\n );\n if (options.resolution !== undefined) {\n this.setResolution(options.resolution);\n } else if (options.zoom !== undefined) {\n this.setZoom(options.zoom);\n }\n }\n\n /**\n * Padding (in css pixels).\n * If the map viewport is partially covered with other content (overlays) along\n * its edges, this setting allows to shift the center of the viewport away from that\n * content. The order of the values in the array is top, right, bottom, left.\n * The default is no padding, which is equivalent to `[0, 0, 0, 0]`.\n * @type {Array|undefined}\n * @api\n */\n get padding() {\n return this.padding_;\n }\n set padding(padding) {\n let oldPadding = this.padding_;\n this.padding_ = padding;\n const center = this.getCenterInternal();\n if (center) {\n const newPadding = padding || [0, 0, 0, 0];\n oldPadding = oldPadding || [0, 0, 0, 0];\n const resolution = this.getResolution();\n const offsetX =\n (resolution / 2) *\n (newPadding[3] - oldPadding[3] + oldPadding[1] - newPadding[1]);\n const offsetY =\n (resolution / 2) *\n (newPadding[0] - oldPadding[0] + oldPadding[2] - newPadding[2]);\n this.setCenterInternal([center[0] + offsetX, center[1] - offsetY]);\n }\n }\n\n /**\n * Get an updated version of the view options used to construct the view. The\n * current resolution (or zoom), center, and rotation are applied to any stored\n * options. The provided options can be used to apply new min/max zoom or\n * resolution limits.\n * @param {ViewOptions} newOptions New options to be applied.\n * @return {ViewOptions} New options updated with the current view state.\n */\n getUpdatedOptions_(newOptions) {\n const options = this.getProperties();\n\n // preserve resolution (or zoom)\n if (options.resolution !== undefined) {\n options.resolution = this.getResolution();\n } else {\n options.zoom = this.getZoom();\n }\n\n // preserve center\n options.center = this.getCenterInternal();\n\n // preserve rotation\n options.rotation = this.getRotation();\n\n return Object.assign({}, options, newOptions);\n }\n\n /**\n * Animate the view. The view's center, zoom (or resolution), and rotation\n * can be animated for smooth transitions between view states. For example,\n * to animate the view to a new zoom level:\n *\n * view.animate({zoom: view.getZoom() + 1});\n *\n * By default, the animation lasts one second and uses in-and-out easing. You\n * can customize this behavior by including `duration` (in milliseconds) and\n * `easing` options (see {@link module:ol/easing}).\n *\n * To chain together multiple animations, call the method with multiple\n * animation objects. For example, to first zoom and then pan:\n *\n * view.animate({zoom: 10}, {center: [0, 0]});\n *\n * If you provide a function as the last argument to the animate method, it\n * will get called at the end of an animation series. The callback will be\n * called with `true` if the animation series completed on its own or `false`\n * if it was cancelled.\n *\n * Animations are cancelled by user interactions (e.g. dragging the map) or by\n * calling `view.setCenter()`, `view.setResolution()`, or `view.setRotation()`\n * (or another method that calls one of these).\n *\n * @param {...(AnimationOptions|function(boolean): void)} var_args Animation\n * options. Multiple animations can be run in series by passing multiple\n * options objects. To run multiple animations in parallel, call the method\n * multiple times. An optional callback can be provided as a final\n * argument. The callback will be called with a boolean indicating whether\n * the animation completed without being cancelled.\n * @api\n */\n animate(var_args) {\n if (this.isDef() && !this.getAnimating()) {\n this.resolveConstraints(0);\n }\n const args = new Array(arguments.length);\n for (let i = 0; i < args.length; ++i) {\n let options = arguments[i];\n if (options.center) {\n options = Object.assign({}, options);\n options.center = fromUserCoordinate(\n options.center,\n this.getProjection()\n );\n }\n if (options.anchor) {\n options = Object.assign({}, options);\n options.anchor = fromUserCoordinate(\n options.anchor,\n this.getProjection()\n );\n }\n args[i] = options;\n }\n this.animateInternal.apply(this, args);\n }\n\n /**\n * @param {...(AnimationOptions|function(boolean): void)} var_args Animation options.\n */\n animateInternal(var_args) {\n let animationCount = arguments.length;\n let callback;\n if (\n animationCount > 1 &&\n typeof arguments[animationCount - 1] === 'function'\n ) {\n callback = arguments[animationCount - 1];\n --animationCount;\n }\n\n let i = 0;\n for (; i < animationCount && !this.isDef(); ++i) {\n // if view properties are not yet set, shortcut to the final state\n const state = arguments[i];\n if (state.center) {\n this.setCenterInternal(state.center);\n }\n if (state.zoom !== undefined) {\n this.setZoom(state.zoom);\n } else if (state.resolution) {\n this.setResolution(state.resolution);\n }\n if (state.rotation !== undefined) {\n this.setRotation(state.rotation);\n }\n }\n if (i === animationCount) {\n if (callback) {\n animationCallback(callback, true);\n }\n return;\n }\n\n let start = Date.now();\n let center = this.targetCenter_.slice();\n let resolution = this.targetResolution_;\n let rotation = this.targetRotation_;\n const series = [];\n for (; i < animationCount; ++i) {\n const options = /** @type {AnimationOptions} */ (arguments[i]);\n\n const animation = {\n start: start,\n complete: false,\n anchor: options.anchor,\n duration: options.duration !== undefined ? options.duration : 1000,\n easing: options.easing || inAndOut,\n callback: callback,\n };\n\n if (options.center) {\n animation.sourceCenter = center;\n animation.targetCenter = options.center.slice();\n center = animation.targetCenter;\n }\n\n if (options.zoom !== undefined) {\n animation.sourceResolution = resolution;\n animation.targetResolution = this.getResolutionForZoom(options.zoom);\n resolution = animation.targetResolution;\n } else if (options.resolution) {\n animation.sourceResolution = resolution;\n animation.targetResolution = options.resolution;\n resolution = animation.targetResolution;\n }\n\n if (options.rotation !== undefined) {\n animation.sourceRotation = rotation;\n const delta =\n modulo(options.rotation - rotation + Math.PI, 2 * Math.PI) - Math.PI;\n animation.targetRotation = rotation + delta;\n rotation = animation.targetRotation;\n }\n\n // check if animation is a no-op\n if (isNoopAnimation(animation)) {\n animation.complete = true;\n // we still push it onto the series for callback handling\n } else {\n start += animation.duration;\n }\n series.push(animation);\n }\n this.animations_.push(series);\n this.setHint(ViewHint.ANIMATING, 1);\n this.updateAnimations_();\n }\n\n /**\n * Determine if the view is being animated.\n * @return {boolean} The view is being animated.\n * @api\n */\n getAnimating() {\n return this.hints_[ViewHint.ANIMATING] > 0;\n }\n\n /**\n * Determine if the user is interacting with the view, such as panning or zooming.\n * @return {boolean} The view is being interacted with.\n * @api\n */\n getInteracting() {\n return this.hints_[ViewHint.INTERACTING] > 0;\n }\n\n /**\n * Cancel any ongoing animations.\n * @api\n */\n cancelAnimations() {\n this.setHint(ViewHint.ANIMATING, -this.hints_[ViewHint.ANIMATING]);\n let anchor;\n for (let i = 0, ii = this.animations_.length; i < ii; ++i) {\n const series = this.animations_[i];\n if (series[0].callback) {\n animationCallback(series[0].callback, false);\n }\n if (!anchor) {\n for (let j = 0, jj = series.length; j < jj; ++j) {\n const animation = series[j];\n if (!animation.complete) {\n anchor = animation.anchor;\n break;\n }\n }\n }\n }\n this.animations_.length = 0;\n this.cancelAnchor_ = anchor;\n this.nextCenter_ = null;\n this.nextResolution_ = NaN;\n this.nextRotation_ = NaN;\n }\n\n /**\n * Update all animations.\n */\n updateAnimations_() {\n if (this.updateAnimationKey_ !== undefined) {\n cancelAnimationFrame(this.updateAnimationKey_);\n this.updateAnimationKey_ = undefined;\n }\n if (!this.getAnimating()) {\n return;\n }\n const now = Date.now();\n let more = false;\n for (let i = this.animations_.length - 1; i >= 0; --i) {\n const series = this.animations_[i];\n let seriesComplete = true;\n for (let j = 0, jj = series.length; j < jj; ++j) {\n const animation = series[j];\n if (animation.complete) {\n continue;\n }\n const elapsed = now - animation.start;\n let fraction =\n animation.duration > 0 ? elapsed / animation.duration : 1;\n if (fraction >= 1) {\n animation.complete = true;\n fraction = 1;\n } else {\n seriesComplete = false;\n }\n const progress = animation.easing(fraction);\n if (animation.sourceCenter) {\n const x0 = animation.sourceCenter[0];\n const y0 = animation.sourceCenter[1];\n const x1 = animation.targetCenter[0];\n const y1 = animation.targetCenter[1];\n this.nextCenter_ = animation.targetCenter;\n const x = x0 + progress * (x1 - x0);\n const y = y0 + progress * (y1 - y0);\n this.targetCenter_ = [x, y];\n }\n if (animation.sourceResolution && animation.targetResolution) {\n const resolution =\n progress === 1\n ? animation.targetResolution\n : animation.sourceResolution +\n progress *\n (animation.targetResolution - animation.sourceResolution);\n if (animation.anchor) {\n const size = this.getViewportSize_(this.getRotation());\n const constrainedResolution = this.constraints_.resolution(\n resolution,\n 0,\n size,\n true\n );\n this.targetCenter_ = this.calculateCenterZoom(\n constrainedResolution,\n animation.anchor\n );\n }\n this.nextResolution_ = animation.targetResolution;\n this.targetResolution_ = resolution;\n this.applyTargetState_(true);\n }\n if (\n animation.sourceRotation !== undefined &&\n animation.targetRotation !== undefined\n ) {\n const rotation =\n progress === 1\n ? modulo(animation.targetRotation + Math.PI, 2 * Math.PI) -\n Math.PI\n : animation.sourceRotation +\n progress *\n (animation.targetRotation - animation.sourceRotation);\n if (animation.anchor) {\n const constrainedRotation = this.constraints_.rotation(\n rotation,\n true\n );\n this.targetCenter_ = this.calculateCenterRotate(\n constrainedRotation,\n animation.anchor\n );\n }\n this.nextRotation_ = animation.targetRotation;\n this.targetRotation_ = rotation;\n }\n this.applyTargetState_(true);\n more = true;\n if (!animation.complete) {\n break;\n }\n }\n if (seriesComplete) {\n this.animations_[i] = null;\n this.setHint(ViewHint.ANIMATING, -1);\n this.nextCenter_ = null;\n this.nextResolution_ = NaN;\n this.nextRotation_ = NaN;\n const callback = series[0].callback;\n if (callback) {\n animationCallback(callback, true);\n }\n }\n }\n // prune completed series\n this.animations_ = this.animations_.filter(Boolean);\n if (more && this.updateAnimationKey_ === undefined) {\n this.updateAnimationKey_ = requestAnimationFrame(\n this.updateAnimations_.bind(this)\n );\n }\n }\n\n /**\n * @param {number} rotation Target rotation.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Rotation anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for rotation and anchor.\n */\n calculateCenterRotate(rotation, anchor) {\n let center;\n const currentCenter = this.getCenterInternal();\n if (currentCenter !== undefined) {\n center = [currentCenter[0] - anchor[0], currentCenter[1] - anchor[1]];\n rotateCoordinate(center, rotation - this.getRotation());\n addCoordinate(center, anchor);\n }\n return center;\n }\n\n /**\n * @param {number} resolution Target resolution.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Zoom anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for resolution and anchor.\n */\n calculateCenterZoom(resolution, anchor) {\n let center;\n const currentCenter = this.getCenterInternal();\n const currentResolution = this.getResolution();\n if (currentCenter !== undefined && currentResolution !== undefined) {\n const x =\n anchor[0] -\n (resolution * (anchor[0] - currentCenter[0])) / currentResolution;\n const y =\n anchor[1] -\n (resolution * (anchor[1] - currentCenter[1])) / currentResolution;\n center = [x, y];\n }\n return center;\n }\n\n /**\n * Returns the current viewport size.\n * @private\n * @param {number} [rotation] Take into account the rotation of the viewport when giving the size\n * @return {import(\"./size.js\").Size} Viewport size or `[100, 100]` when no viewport is found.\n */\n getViewportSize_(rotation) {\n const size = this.viewportSize_;\n if (rotation) {\n const w = size[0];\n const h = size[1];\n return [\n Math.abs(w * Math.cos(rotation)) + Math.abs(h * Math.sin(rotation)),\n Math.abs(w * Math.sin(rotation)) + Math.abs(h * Math.cos(rotation)),\n ];\n }\n return size;\n }\n\n /**\n * Stores the viewport size on the view. The viewport size is not read every time from the DOM\n * to avoid performance hit and layout reflow.\n * This should be done on map size change.\n * Note: the constraints are not resolved during an animation to avoid stopping it\n * @param {import(\"./size.js\").Size} [size] Viewport size; if undefined, [100, 100] is assumed\n */\n setViewportSize(size) {\n this.viewportSize_ = Array.isArray(size) ? size.slice() : [100, 100];\n if (!this.getAnimating()) {\n this.resolveConstraints(0);\n }\n }\n\n /**\n * Get the view center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The center of the view.\n * @observable\n * @api\n */\n getCenter() {\n const center = this.getCenterInternal();\n if (!center) {\n return center;\n }\n return toUserCoordinate(center, this.getProjection());\n }\n\n /**\n * Get the view center without transforming to user projection.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The center of the view.\n */\n getCenterInternal() {\n return /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (\n this.get(ViewProperty.CENTER)\n );\n }\n\n /**\n * @return {Constraints} Constraints.\n */\n getConstraints() {\n return this.constraints_;\n }\n\n /**\n * @return {boolean} Resolution constraint is set\n */\n getConstrainResolution() {\n return this.get('constrainResolution');\n }\n\n /**\n * @param {Array} [hints] Destination array.\n * @return {Array} Hint.\n */\n getHints(hints) {\n if (hints !== undefined) {\n hints[0] = this.hints_[0];\n hints[1] = this.hints_[1];\n return hints;\n }\n return this.hints_.slice();\n }\n\n /**\n * Calculate the extent for the current view state and the passed size.\n * The size is the pixel dimensions of the box into which the calculated extent\n * should fit. In most cases you want to get the extent of the entire map,\n * that is `map.getSize()`.\n * @param {import(\"./size.js\").Size} [size] Box pixel size. If not provided, the size\n * of the map that uses this view will be used.\n * @return {import(\"./extent.js\").Extent} Extent.\n * @api\n */\n calculateExtent(size) {\n const extent = this.calculateExtentInternal(size);\n return toUserExtent(extent, this.getProjection());\n }\n\n /**\n * @param {import(\"./size.js\").Size} [size] Box pixel size. If not provided,\n * the map's last known viewport size will be used.\n * @return {import(\"./extent.js\").Extent} Extent.\n */\n calculateExtentInternal(size) {\n size = size || this.getViewportSizeMinusPadding_();\n const center = /** @type {!import(\"./coordinate.js\").Coordinate} */ (\n this.getCenterInternal()\n );\n assert(center, 'The view center is not defined');\n const resolution = /** @type {!number} */ (this.getResolution());\n assert(resolution !== undefined, 'The view resolution is not defined');\n const rotation = /** @type {!number} */ (this.getRotation());\n assert(rotation !== undefined, 'The view rotation is not defined');\n\n return getForViewAndSize(center, resolution, rotation, size);\n }\n\n /**\n * Get the maximum resolution of the view.\n * @return {number} The maximum resolution of the view.\n * @api\n */\n getMaxResolution() {\n return this.maxResolution_;\n }\n\n /**\n * Get the minimum resolution of the view.\n * @return {number} The minimum resolution of the view.\n * @api\n */\n getMinResolution() {\n return this.minResolution_;\n }\n\n /**\n * Get the maximum zoom level for the view.\n * @return {number} The maximum zoom level.\n * @api\n */\n getMaxZoom() {\n return /** @type {number} */ (\n this.getZoomForResolution(this.minResolution_)\n );\n }\n\n /**\n * Set a new maximum zoom level for the view.\n * @param {number} zoom The maximum zoom level.\n * @api\n */\n setMaxZoom(zoom) {\n this.applyOptions_(this.getUpdatedOptions_({maxZoom: zoom}));\n }\n\n /**\n * Get the minimum zoom level for the view.\n * @return {number} The minimum zoom level.\n * @api\n */\n getMinZoom() {\n return /** @type {number} */ (\n this.getZoomForResolution(this.maxResolution_)\n );\n }\n\n /**\n * Set a new minimum zoom level for the view.\n * @param {number} zoom The minimum zoom level.\n * @api\n */\n setMinZoom(zoom) {\n this.applyOptions_(this.getUpdatedOptions_({minZoom: zoom}));\n }\n\n /**\n * Set whether the view should allow intermediary zoom levels.\n * @param {boolean} enabled Whether the resolution is constrained.\n * @api\n */\n setConstrainResolution(enabled) {\n this.applyOptions_(this.getUpdatedOptions_({constrainResolution: enabled}));\n }\n\n /**\n * Get the view projection.\n * @return {import(\"./proj/Projection.js\").default} The projection of the view.\n * @api\n */\n getProjection() {\n return this.projection_;\n }\n\n /**\n * Get the view resolution.\n * @return {number|undefined} The resolution of the view.\n * @observable\n * @api\n */\n getResolution() {\n return /** @type {number|undefined} */ (this.get(ViewProperty.RESOLUTION));\n }\n\n /**\n * Get the resolutions for the view. This returns the array of resolutions\n * passed to the constructor of the View, or undefined if none were given.\n * @return {Array|undefined} The resolutions of the view.\n * @api\n */\n getResolutions() {\n return this.resolutions_;\n }\n\n /**\n * Get the resolution for a provided extent (in map units) and size (in pixels).\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {import(\"./size.js\").Size} [size] Box pixel size.\n * @return {number} The resolution at which the provided extent will render at\n * the given size.\n * @api\n */\n getResolutionForExtent(extent, size) {\n return this.getResolutionForExtentInternal(\n fromUserExtent(extent, this.getProjection()),\n size\n );\n }\n\n /**\n * Get the resolution for a provided extent (in map units) and size (in pixels).\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {import(\"./size.js\").Size} [size] Box pixel size.\n * @return {number} The resolution at which the provided extent will render at\n * the given size.\n */\n getResolutionForExtentInternal(extent, size) {\n size = size || this.getViewportSizeMinusPadding_();\n const xResolution = getWidth(extent) / size[0];\n const yResolution = getHeight(extent) / size[1];\n return Math.max(xResolution, yResolution);\n }\n\n /**\n * Return a function that returns a value between 0 and 1 for a\n * resolution. Exponential scaling is assumed.\n * @param {number} [power] Power.\n * @return {function(number): number} Resolution for value function.\n */\n getResolutionForValueFunction(power) {\n power = power || 2;\n const maxResolution = this.getConstrainedResolution(this.maxResolution_);\n const minResolution = this.minResolution_;\n const max = Math.log(maxResolution / minResolution) / Math.log(power);\n return (\n /**\n * @param {number} value Value.\n * @return {number} Resolution.\n */\n function (value) {\n const resolution = maxResolution / Math.pow(power, value * max);\n return resolution;\n }\n );\n }\n\n /**\n * Get the view rotation.\n * @return {number} The rotation of the view in radians.\n * @observable\n * @api\n */\n getRotation() {\n return /** @type {number} */ (this.get(ViewProperty.ROTATION));\n }\n\n /**\n * Return a function that returns a resolution for a value between\n * 0 and 1. Exponential scaling is assumed.\n * @param {number} [power] Power.\n * @return {function(number): number} Value for resolution function.\n */\n getValueForResolutionFunction(power) {\n const logPower = Math.log(power || 2);\n const maxResolution = this.getConstrainedResolution(this.maxResolution_);\n const minResolution = this.minResolution_;\n const max = Math.log(maxResolution / minResolution) / logPower;\n return (\n /**\n * @param {number} resolution Resolution.\n * @return {number} Value.\n */\n function (resolution) {\n const value = Math.log(maxResolution / resolution) / logPower / max;\n return value;\n }\n );\n }\n\n /**\n * Returns the size of the viewport minus padding.\n * @private\n * @param {number} [rotation] Take into account the rotation of the viewport when giving the size\n * @return {import(\"./size.js\").Size} Viewport size reduced by the padding.\n */\n getViewportSizeMinusPadding_(rotation) {\n let size = this.getViewportSize_(rotation);\n const padding = this.padding_;\n if (padding) {\n size = [\n size[0] - padding[1] - padding[3],\n size[1] - padding[0] - padding[2],\n ];\n }\n return size;\n }\n\n /**\n * @return {State} View state.\n */\n getState() {\n const projection = this.getProjection();\n const resolution = this.getResolution();\n const rotation = this.getRotation();\n let center = /** @type {import(\"./coordinate.js\").Coordinate} */ (\n this.getCenterInternal()\n );\n const padding = this.padding_;\n if (padding) {\n const reducedSize = this.getViewportSizeMinusPadding_();\n center = calculateCenterOn(\n center,\n this.getViewportSize_(),\n [reducedSize[0] / 2 + padding[3], reducedSize[1] / 2 + padding[0]],\n resolution,\n rotation\n );\n }\n return {\n center: center.slice(0),\n projection: projection !== undefined ? projection : null,\n resolution: resolution,\n nextCenter: this.nextCenter_,\n nextResolution: this.nextResolution_,\n nextRotation: this.nextRotation_,\n rotation: rotation,\n zoom: this.getZoom(),\n };\n }\n\n /**\n * @return {ViewStateLayerStateExtent} Like `FrameState`, but just `viewState` and `extent`.\n */\n getViewStateAndExtent() {\n return {\n viewState: this.getState(),\n extent: this.calculateExtent(),\n };\n }\n\n /**\n * Get the current zoom level. This method may return non-integer zoom levels\n * if the view does not constrain the resolution, or if an interaction or\n * animation is underway.\n * @return {number|undefined} Zoom.\n * @api\n */\n getZoom() {\n let zoom;\n const resolution = this.getResolution();\n if (resolution !== undefined) {\n zoom = this.getZoomForResolution(resolution);\n }\n return zoom;\n }\n\n /**\n * Get the zoom level for a resolution.\n * @param {number} resolution The resolution.\n * @return {number|undefined} The zoom level for the provided resolution.\n * @api\n */\n getZoomForResolution(resolution) {\n let offset = this.minZoom_ || 0;\n let max, zoomFactor;\n if (this.resolutions_) {\n const nearest = linearFindNearest(this.resolutions_, resolution, 1);\n offset = nearest;\n max = this.resolutions_[nearest];\n if (nearest == this.resolutions_.length - 1) {\n zoomFactor = 2;\n } else {\n zoomFactor = max / this.resolutions_[nearest + 1];\n }\n } else {\n max = this.maxResolution_;\n zoomFactor = this.zoomFactor_;\n }\n return offset + Math.log(max / resolution) / Math.log(zoomFactor);\n }\n\n /**\n * Get the resolution for a zoom level.\n * @param {number} zoom Zoom level.\n * @return {number} The view resolution for the provided zoom level.\n * @api\n */\n getResolutionForZoom(zoom) {\n if (this.resolutions_) {\n if (this.resolutions_.length <= 1) {\n return 0;\n }\n const baseLevel = clamp(\n Math.floor(zoom),\n 0,\n this.resolutions_.length - 2\n );\n const zoomFactor =\n this.resolutions_[baseLevel] / this.resolutions_[baseLevel + 1];\n return (\n this.resolutions_[baseLevel] /\n Math.pow(zoomFactor, clamp(zoom - baseLevel, 0, 1))\n );\n }\n return (\n this.maxResolution_ / Math.pow(this.zoomFactor_, zoom - this.minZoom_)\n );\n }\n\n /**\n * Fit the given geometry or extent based on the given map size and border.\n * The size is pixel dimensions of the box to fit the extent into.\n * In most cases you will want to use the map size, that is `map.getSize()`.\n * Takes care of the map angle.\n * @param {import(\"./geom/SimpleGeometry.js\").default|import(\"./extent.js\").Extent} geometryOrExtent The geometry or\n * extent to fit the view to.\n * @param {FitOptions} [options] Options.\n * @api\n */\n fit(geometryOrExtent, options) {\n /** @type {import(\"./geom/SimpleGeometry.js\").default} */\n let geometry;\n assert(\n Array.isArray(geometryOrExtent) ||\n typeof (/** @type {?} */ (geometryOrExtent).getSimplifiedGeometry) ===\n 'function',\n 'Invalid extent or geometry provided as `geometry`'\n );\n if (Array.isArray(geometryOrExtent)) {\n assert(\n !isEmpty(geometryOrExtent),\n 'Cannot fit empty extent provided as `geometry`'\n );\n const extent = fromUserExtent(geometryOrExtent, this.getProjection());\n geometry = polygonFromExtent(extent);\n } else if (geometryOrExtent.getType() === 'Circle') {\n const extent = fromUserExtent(\n geometryOrExtent.getExtent(),\n this.getProjection()\n );\n geometry = polygonFromExtent(extent);\n geometry.rotate(this.getRotation(), getCenter(extent));\n } else {\n const userProjection = getUserProjection();\n if (userProjection) {\n geometry = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometryOrExtent\n .clone()\n .transform(userProjection, this.getProjection())\n );\n } else {\n geometry = geometryOrExtent;\n }\n }\n\n this.fitInternal(geometry, options);\n }\n\n /**\n * Calculate rotated extent\n * @param {import(\"./geom/SimpleGeometry.js\").default} geometry The geometry.\n * @return {import(\"./extent\").Extent} The rotated extent for the geometry.\n */\n rotatedExtentForGeometry(geometry) {\n const rotation = this.getRotation();\n const cosAngle = Math.cos(rotation);\n const sinAngle = Math.sin(-rotation);\n const coords = geometry.getFlatCoordinates();\n const stride = geometry.getStride();\n let minRotX = +Infinity;\n let minRotY = +Infinity;\n let maxRotX = -Infinity;\n let maxRotY = -Infinity;\n for (let i = 0, ii = coords.length; i < ii; i += stride) {\n const rotX = coords[i] * cosAngle - coords[i + 1] * sinAngle;\n const rotY = coords[i] * sinAngle + coords[i + 1] * cosAngle;\n minRotX = Math.min(minRotX, rotX);\n minRotY = Math.min(minRotY, rotY);\n maxRotX = Math.max(maxRotX, rotX);\n maxRotY = Math.max(maxRotY, rotY);\n }\n return [minRotX, minRotY, maxRotX, maxRotY];\n }\n\n /**\n * @param {import(\"./geom/SimpleGeometry.js\").default} geometry The geometry.\n * @param {FitOptions} [options] Options.\n */\n fitInternal(geometry, options) {\n options = options || {};\n let size = options.size;\n if (!size) {\n size = this.getViewportSizeMinusPadding_();\n }\n const padding =\n options.padding !== undefined ? options.padding : [0, 0, 0, 0];\n const nearest = options.nearest !== undefined ? options.nearest : false;\n let minResolution;\n if (options.minResolution !== undefined) {\n minResolution = options.minResolution;\n } else if (options.maxZoom !== undefined) {\n minResolution = this.getResolutionForZoom(options.maxZoom);\n } else {\n minResolution = 0;\n }\n\n const rotatedExtent = this.rotatedExtentForGeometry(geometry);\n\n // calculate resolution\n let resolution = this.getResolutionForExtentInternal(rotatedExtent, [\n size[0] - padding[1] - padding[3],\n size[1] - padding[0] - padding[2],\n ]);\n resolution = isNaN(resolution)\n ? minResolution\n : Math.max(resolution, minResolution);\n resolution = this.getConstrainedResolution(resolution, nearest ? 0 : 1);\n\n // calculate center\n const rotation = this.getRotation();\n const sinAngle = Math.sin(rotation);\n const cosAngle = Math.cos(rotation);\n const centerRot = getCenter(rotatedExtent);\n centerRot[0] += ((padding[1] - padding[3]) / 2) * resolution;\n centerRot[1] += ((padding[0] - padding[2]) / 2) * resolution;\n const centerX = centerRot[0] * cosAngle - centerRot[1] * sinAngle;\n const centerY = centerRot[1] * cosAngle + centerRot[0] * sinAngle;\n const center = this.getConstrainedCenter([centerX, centerY], resolution);\n const callback = options.callback ? options.callback : VOID;\n\n if (options.duration !== undefined) {\n this.animateInternal(\n {\n resolution: resolution,\n center: center,\n duration: options.duration,\n easing: options.easing,\n },\n callback\n );\n } else {\n this.targetResolution_ = resolution;\n this.targetCenter_ = center;\n this.applyTargetState_(false, true);\n animationCallback(callback, true);\n }\n }\n\n /**\n * Center on coordinate and view position.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n * @api\n */\n centerOn(coordinate, size, position) {\n this.centerOnInternal(\n fromUserCoordinate(coordinate, this.getProjection()),\n size,\n position\n );\n }\n\n /**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n */\n centerOnInternal(coordinate, size, position) {\n this.setCenterInternal(\n calculateCenterOn(\n coordinate,\n size,\n position,\n this.getResolution(),\n this.getRotation()\n )\n );\n }\n\n /**\n * Calculates the shift between map and viewport center.\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @return {Array|undefined} Center shift.\n */\n calculateCenterShift(center, resolution, rotation, size) {\n let centerShift;\n const padding = this.padding_;\n if (padding && center) {\n const reducedSize = this.getViewportSizeMinusPadding_(-rotation);\n const shiftedCenter = calculateCenterOn(\n center,\n size,\n [reducedSize[0] / 2 + padding[3], reducedSize[1] / 2 + padding[0]],\n resolution,\n rotation\n );\n centerShift = [\n center[0] - shiftedCenter[0],\n center[1] - shiftedCenter[1],\n ];\n }\n return centerShift;\n }\n\n /**\n * @return {boolean} Is defined.\n */\n isDef() {\n return !!this.getCenterInternal() && this.getResolution() !== undefined;\n }\n\n /**\n * Adds relative coordinates to the center of the view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate} deltaCoordinates Relative value to add.\n * @api\n */\n adjustCenter(deltaCoordinates) {\n const center = toUserCoordinate(this.targetCenter_, this.getProjection());\n this.setCenter([\n center[0] + deltaCoordinates[0],\n center[1] + deltaCoordinates[1],\n ]);\n }\n\n /**\n * Adds relative coordinates to the center of the view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate} deltaCoordinates Relative value to add.\n */\n adjustCenterInternal(deltaCoordinates) {\n const center = this.targetCenter_;\n this.setCenterInternal([\n center[0] + deltaCoordinates[0],\n center[1] + deltaCoordinates[1],\n ]);\n }\n\n /**\n * Multiply the view resolution by a ratio, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} ratio The ratio to apply on the view resolution.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The origin of the transformation.\n * @api\n */\n adjustResolution(ratio, anchor) {\n anchor = anchor && fromUserCoordinate(anchor, this.getProjection());\n this.adjustResolutionInternal(ratio, anchor);\n }\n\n /**\n * Multiply the view resolution by a ratio, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} ratio The ratio to apply on the view resolution.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The origin of the transformation.\n */\n adjustResolutionInternal(ratio, anchor) {\n const isMoving = this.getAnimating() || this.getInteracting();\n const size = this.getViewportSize_(this.getRotation());\n const newResolution = this.constraints_.resolution(\n this.targetResolution_ * ratio,\n 0,\n size,\n isMoving\n );\n\n if (anchor) {\n this.targetCenter_ = this.calculateCenterZoom(newResolution, anchor);\n }\n\n this.targetResolution_ *= ratio;\n this.applyTargetState_();\n }\n\n /**\n * Adds a value to the view zoom level, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} delta Relative value to add to the zoom level.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The origin of the transformation.\n * @api\n */\n adjustZoom(delta, anchor) {\n this.adjustResolution(Math.pow(this.zoomFactor_, -delta), anchor);\n }\n\n /**\n * Adds a value to the view rotation, optionally using an anchor. Any rotation\n * constraint will apply.\n * @param {number} delta Relative value to add to the zoom rotation, in radians.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The rotation center.\n * @api\n */\n adjustRotation(delta, anchor) {\n if (anchor) {\n anchor = fromUserCoordinate(anchor, this.getProjection());\n }\n this.adjustRotationInternal(delta, anchor);\n }\n\n /**\n * @param {number} delta Relative value to add to the zoom rotation, in radians.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The rotation center.\n */\n adjustRotationInternal(delta, anchor) {\n const isMoving = this.getAnimating() || this.getInteracting();\n const newRotation = this.constraints_.rotation(\n this.targetRotation_ + delta,\n isMoving\n );\n if (anchor) {\n this.targetCenter_ = this.calculateCenterRotate(newRotation, anchor);\n }\n this.targetRotation_ += delta;\n this.applyTargetState_();\n }\n\n /**\n * Set the center of the current view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center The center of the view.\n * @observable\n * @api\n */\n setCenter(center) {\n this.setCenterInternal(\n center ? fromUserCoordinate(center, this.getProjection()) : center\n );\n }\n\n /**\n * Set the center using the view projection (not the user projection).\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center The center of the view.\n */\n setCenterInternal(center) {\n this.targetCenter_ = center;\n this.applyTargetState_();\n }\n\n /**\n * @param {import(\"./ViewHint.js\").default} hint Hint.\n * @param {number} delta Delta.\n * @return {number} New value.\n */\n setHint(hint, delta) {\n this.hints_[hint] += delta;\n this.changed();\n return this.hints_[hint];\n }\n\n /**\n * Set the resolution for this view. Any resolution constraint will apply.\n * @param {number|undefined} resolution The resolution of the view.\n * @observable\n * @api\n */\n setResolution(resolution) {\n this.targetResolution_ = resolution;\n this.applyTargetState_();\n }\n\n /**\n * Set the rotation for this view. Any rotation constraint will apply.\n * @param {number} rotation The rotation of the view in radians.\n * @observable\n * @api\n */\n setRotation(rotation) {\n this.targetRotation_ = rotation;\n this.applyTargetState_();\n }\n\n /**\n * Zoom to a specific zoom level. Any resolution constrain will apply.\n * @param {number} zoom Zoom level.\n * @api\n */\n setZoom(zoom) {\n this.setResolution(this.getResolutionForZoom(zoom));\n }\n\n /**\n * Recompute rotation/resolution/center based on target values.\n * Note: we have to compute rotation first, then resolution and center considering that\n * parameters can influence one another in case a view extent constraint is present.\n * @param {boolean} [doNotCancelAnims] Do not cancel animations.\n * @param {boolean} [forceMoving] Apply constraints as if the view is moving.\n * @private\n */\n applyTargetState_(doNotCancelAnims, forceMoving) {\n const isMoving =\n this.getAnimating() || this.getInteracting() || forceMoving;\n\n // compute rotation\n const newRotation = this.constraints_.rotation(\n this.targetRotation_,\n isMoving\n );\n const size = this.getViewportSize_(newRotation);\n const newResolution = this.constraints_.resolution(\n this.targetResolution_,\n 0,\n size,\n isMoving\n );\n const newCenter = this.constraints_.center(\n this.targetCenter_,\n newResolution,\n size,\n isMoving,\n this.calculateCenterShift(\n this.targetCenter_,\n newResolution,\n newRotation,\n size\n )\n );\n\n if (this.get(ViewProperty.ROTATION) !== newRotation) {\n this.set(ViewProperty.ROTATION, newRotation);\n }\n if (this.get(ViewProperty.RESOLUTION) !== newResolution) {\n this.set(ViewProperty.RESOLUTION, newResolution);\n this.set('zoom', this.getZoom(), true);\n }\n if (\n !newCenter ||\n !this.get(ViewProperty.CENTER) ||\n !equals(this.get(ViewProperty.CENTER), newCenter)\n ) {\n this.set(ViewProperty.CENTER, newCenter);\n }\n\n if (this.getAnimating() && !doNotCancelAnims) {\n this.cancelAnimations();\n }\n this.cancelAnchor_ = undefined;\n }\n\n /**\n * If any constraints need to be applied, an animation will be triggered.\n * This is typically done on interaction end.\n * Note: calling this with a duration of 0 will apply the constrained values straight away,\n * without animation.\n * @param {number} [duration] The animation duration in ms.\n * @param {number} [resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The origin of the transformation.\n */\n resolveConstraints(duration, resolutionDirection, anchor) {\n duration = duration !== undefined ? duration : 200;\n const direction = resolutionDirection || 0;\n\n const newRotation = this.constraints_.rotation(this.targetRotation_);\n const size = this.getViewportSize_(newRotation);\n const newResolution = this.constraints_.resolution(\n this.targetResolution_,\n direction,\n size\n );\n const newCenter = this.constraints_.center(\n this.targetCenter_,\n newResolution,\n size,\n false,\n this.calculateCenterShift(\n this.targetCenter_,\n newResolution,\n newRotation,\n size\n )\n );\n\n if (duration === 0 && !this.cancelAnchor_) {\n this.targetResolution_ = newResolution;\n this.targetRotation_ = newRotation;\n this.targetCenter_ = newCenter;\n this.applyTargetState_();\n return;\n }\n\n anchor = anchor || (duration === 0 ? this.cancelAnchor_ : undefined);\n this.cancelAnchor_ = undefined;\n\n if (\n this.getResolution() !== newResolution ||\n this.getRotation() !== newRotation ||\n !this.getCenterInternal() ||\n !equals(this.getCenterInternal(), newCenter)\n ) {\n if (this.getAnimating()) {\n this.cancelAnimations();\n }\n\n this.animateInternal({\n rotation: newRotation,\n center: newCenter,\n resolution: newResolution,\n duration: duration,\n easing: easeOut,\n anchor: anchor,\n });\n }\n }\n\n /**\n * Notify the View that an interaction has started.\n * The view state will be resolved to a stable one if needed\n * (depending on its constraints).\n * @api\n */\n beginInteraction() {\n this.resolveConstraints(0);\n\n this.setHint(ViewHint.INTERACTING, 1);\n }\n\n /**\n * Notify the View that an interaction has ended. The view state will be resolved\n * to a stable one if needed (depending on its constraints).\n * @param {number} [duration] Animation duration in ms.\n * @param {number} [resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The origin of the transformation.\n * @api\n */\n endInteraction(duration, resolutionDirection, anchor) {\n anchor = anchor && fromUserCoordinate(anchor, this.getProjection());\n this.endInteractionInternal(duration, resolutionDirection, anchor);\n }\n\n /**\n * Notify the View that an interaction has ended. The view state will be resolved\n * to a stable one if needed (depending on its constraints).\n * @param {number} [duration] Animation duration in ms.\n * @param {number} [resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [anchor] The origin of the transformation.\n */\n endInteractionInternal(duration, resolutionDirection, anchor) {\n if (!this.getInteracting()) {\n return;\n }\n this.setHint(ViewHint.INTERACTING, -1);\n this.resolveConstraints(duration, resolutionDirection, anchor);\n }\n\n /**\n * Get a valid position for the view center according to the current constraints.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} targetCenter Target center position.\n * @param {number} [targetResolution] Target resolution. If not supplied, the current one will be used.\n * This is useful to guess a valid center position at a different zoom level.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Valid center position.\n */\n getConstrainedCenter(targetCenter, targetResolution) {\n const size = this.getViewportSize_(this.getRotation());\n return this.constraints_.center(\n targetCenter,\n targetResolution || this.getResolution(),\n size\n );\n }\n\n /**\n * Get a valid zoom level according to the current view constraints.\n * @param {number|undefined} targetZoom Target zoom.\n * @param {number} [direction=0] Indicate which resolution should be used\n * by a renderer if the view resolution does not match any resolution of the tile source.\n * If 0, the nearest resolution will be used. If 1, the nearest lower resolution\n * will be used. If -1, the nearest higher resolution will be used.\n * @return {number|undefined} Valid zoom level.\n */\n getConstrainedZoom(targetZoom, direction) {\n const targetRes = this.getResolutionForZoom(targetZoom);\n return this.getZoomForResolution(\n this.getConstrainedResolution(targetRes, direction)\n );\n }\n\n /**\n * Get a valid resolution according to the current view constraints.\n * @param {number|undefined} targetResolution Target resolution.\n * @param {number} [direction=0] Indicate which resolution should be used\n * by a renderer if the view resolution does not match any resolution of the tile source.\n * If 0, the nearest resolution will be used. If 1, the nearest lower resolution\n * will be used. If -1, the nearest higher resolution will be used.\n * @return {number|undefined} Valid resolution.\n */\n getConstrainedResolution(targetResolution, direction) {\n direction = direction || 0;\n const size = this.getViewportSize_(this.getRotation());\n\n return this.constraints_.resolution(targetResolution, direction, size);\n }\n}\n\n/**\n * @param {Function} callback Callback.\n * @param {*} returnValue Return value.\n */\nfunction animationCallback(callback, returnValue) {\n setTimeout(function () {\n callback(returnValue);\n }, 0);\n}\n\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./centerconstraint.js\").Type} The constraint.\n */\nexport function createCenterConstraint(options) {\n if (options.extent !== undefined) {\n const smooth =\n options.smoothExtentConstraint !== undefined\n ? options.smoothExtentConstraint\n : true;\n return createExtent(options.extent, options.constrainOnlyCenter, smooth);\n }\n\n const projection = createProjection(options.projection, 'EPSG:3857');\n if (options.multiWorld !== true && projection.isGlobal()) {\n const extent = projection.getExtent().slice();\n extent[0] = -Infinity;\n extent[2] = Infinity;\n return createExtent(extent, false, false);\n }\n\n return centerNone;\n}\n\n/**\n * @param {ViewOptions} options View options.\n * @return {{constraint: import(\"./resolutionconstraint.js\").Type, maxResolution: number,\n * minResolution: number, minZoom: number, zoomFactor: number}} The constraint.\n */\nexport function createResolutionConstraint(options) {\n let resolutionConstraint;\n let maxResolution;\n let minResolution;\n\n // TODO: move these to be ol constants\n // see https://github.com/openlayers/openlayers/issues/2076\n const defaultMaxZoom = 28;\n const defaultZoomFactor = 2;\n\n let minZoom =\n options.minZoom !== undefined ? options.minZoom : DEFAULT_MIN_ZOOM;\n\n let maxZoom =\n options.maxZoom !== undefined ? options.maxZoom : defaultMaxZoom;\n\n const zoomFactor =\n options.zoomFactor !== undefined ? options.zoomFactor : defaultZoomFactor;\n\n const multiWorld =\n options.multiWorld !== undefined ? options.multiWorld : false;\n\n const smooth =\n options.smoothResolutionConstraint !== undefined\n ? options.smoothResolutionConstraint\n : true;\n\n const showFullExtent =\n options.showFullExtent !== undefined ? options.showFullExtent : false;\n\n const projection = createProjection(options.projection, 'EPSG:3857');\n const projExtent = projection.getExtent();\n let constrainOnlyCenter = options.constrainOnlyCenter;\n let extent = options.extent;\n if (!multiWorld && !extent && projection.isGlobal()) {\n constrainOnlyCenter = false;\n extent = projExtent;\n }\n\n if (options.resolutions !== undefined) {\n const resolutions = options.resolutions;\n maxResolution = resolutions[minZoom];\n minResolution =\n resolutions[maxZoom] !== undefined\n ? resolutions[maxZoom]\n : resolutions[resolutions.length - 1];\n\n if (options.constrainResolution) {\n resolutionConstraint = createSnapToResolutions(\n resolutions,\n smooth,\n !constrainOnlyCenter && extent,\n showFullExtent\n );\n } else {\n resolutionConstraint = createMinMaxResolution(\n maxResolution,\n minResolution,\n smooth,\n !constrainOnlyCenter && extent,\n showFullExtent\n );\n }\n } else {\n // calculate the default min and max resolution\n const size = !projExtent\n ? // use an extent that can fit the whole world if need be\n (360 * METERS_PER_UNIT.degrees) / projection.getMetersPerUnit()\n : Math.max(getWidth(projExtent), getHeight(projExtent));\n\n const defaultMaxResolution =\n size / DEFAULT_TILE_SIZE / Math.pow(defaultZoomFactor, DEFAULT_MIN_ZOOM);\n\n const defaultMinResolution =\n defaultMaxResolution /\n Math.pow(defaultZoomFactor, defaultMaxZoom - DEFAULT_MIN_ZOOM);\n\n // user provided maxResolution takes precedence\n maxResolution = options.maxResolution;\n if (maxResolution !== undefined) {\n minZoom = 0;\n } else {\n maxResolution = defaultMaxResolution / Math.pow(zoomFactor, minZoom);\n }\n\n // user provided minResolution takes precedence\n minResolution = options.minResolution;\n if (minResolution === undefined) {\n if (options.maxZoom !== undefined) {\n if (options.maxResolution !== undefined) {\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom);\n } else {\n minResolution = defaultMaxResolution / Math.pow(zoomFactor, maxZoom);\n }\n } else {\n minResolution = defaultMinResolution;\n }\n }\n\n // given discrete zoom levels, minResolution may be different than provided\n maxZoom =\n minZoom +\n Math.floor(\n Math.log(maxResolution / minResolution) / Math.log(zoomFactor)\n );\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom - minZoom);\n\n if (options.constrainResolution) {\n resolutionConstraint = createSnapToPower(\n zoomFactor,\n maxResolution,\n minResolution,\n smooth,\n !constrainOnlyCenter && extent,\n showFullExtent\n );\n } else {\n resolutionConstraint = createMinMaxResolution(\n maxResolution,\n minResolution,\n smooth,\n !constrainOnlyCenter && extent,\n showFullExtent\n );\n }\n }\n return {\n constraint: resolutionConstraint,\n maxResolution: maxResolution,\n minResolution: minResolution,\n minZoom: minZoom,\n zoomFactor: zoomFactor,\n };\n}\n\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./rotationconstraint.js\").Type} Rotation constraint.\n */\nexport function createRotationConstraint(options) {\n const enableRotation =\n options.enableRotation !== undefined ? options.enableRotation : true;\n if (enableRotation) {\n const constrainRotation = options.constrainRotation;\n if (constrainRotation === undefined || constrainRotation === true) {\n return createSnapToZero();\n }\n if (constrainRotation === false) {\n return rotationNone;\n }\n if (typeof constrainRotation === 'number') {\n return createSnapToN(constrainRotation);\n }\n return rotationNone;\n }\n return disable;\n}\n\n/**\n * Determine if an animation involves no view change.\n * @param {Animation} animation The animation.\n * @return {boolean} The animation involves no view change.\n */\nexport function isNoopAnimation(animation) {\n if (animation.sourceCenter && animation.targetCenter) {\n if (!coordinatesEqual(animation.sourceCenter, animation.targetCenter)) {\n return false;\n }\n }\n if (animation.sourceResolution !== animation.targetResolution) {\n return false;\n }\n if (animation.sourceRotation !== animation.targetRotation) {\n return false;\n }\n return true;\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @return {import(\"./coordinate.js\").Coordinate} Shifted center.\n */\nfunction calculateCenterOn(coordinate, size, position, resolution, rotation) {\n // calculate rotated position\n const cosAngle = Math.cos(-rotation);\n let sinAngle = Math.sin(-rotation);\n let rotX = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n let rotY = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n rotX += (size[0] / 2 - position[0]) * resolution;\n rotY += (position[1] - size[1] / 2) * resolution;\n\n // go back to original angle\n sinAngle = -sinAngle; // go back to original rotation\n const centerX = rotX * cosAngle - rotY * sinAngle;\n const centerY = rotY * cosAngle + rotX * sinAngle;\n\n return [centerX, centerY];\n}\n\nexport default View;\n","/**\n * @module ol/layer/Layer\n */\nimport BaseLayer from './Base.js';\nimport EventType from '../events/EventType.js';\nimport LayerProperty from './Property.js';\nimport RenderEventType from '../render/EventType.js';\nimport View from '../View.js';\nimport {assert} from '../asserts.js';\nimport {intersects} from '../extent.js';\nimport {listen, unlistenByKey} from '../events.js';\n\n/**\n * @typedef {function(import(\"../Map.js\").FrameState):HTMLElement} RenderFunction\n */\n\n/**\n * @typedef {'sourceready'|'change:source'} LayerEventType\n */\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} LayerOnSignature\n */\n\n/**\n * @template {import(\"../source/Source.js\").default} [SourceType=import(\"../source/Source.js\").default]\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {SourceType} [source] Source for this layer. If not provided to the constructor,\n * the source can be set by calling {@link module:ol/layer/Layer~Layer#setSource layer.setSource(source)} after\n * construction.\n * @property {import(\"../Map.js\").default|null} [map] Map.\n * @property {RenderFunction} [render] Render function. Takes the frame state as input and is expected to return an\n * HTML element. Will overwrite the default rendering for the layer.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n\n/**\n * @typedef {Object} State\n * @property {import(\"./Layer.js\").default} layer Layer.\n * @property {number} opacity Opacity, the value is rounded to two digits to appear after the decimal point.\n * @property {boolean} visible Visible.\n * @property {boolean} managed Managed.\n * @property {import(\"../extent.js\").Extent} [extent] Extent.\n * @property {number | undefined} zIndex ZIndex.\n * @property {number} maxResolution Maximum resolution.\n * @property {number} minResolution Minimum resolution.\n * @property {number} minZoom Minimum zoom.\n * @property {number} maxZoom Maximum zoom.\n */\n\n/**\n * @classdesc\n * Base class from which all layer types are derived. This should only be instantiated\n * in the case where a custom layer is added to the map with a custom `render` function.\n * Such a function can be specified in the `options` object, and is expected to return an HTML element.\n *\n * A visual representation of raster or vector map data.\n * Layers group together those properties that pertain to how the data is to be\n * displayed, irrespective of the source of that data.\n *\n * Layers are usually added to a map with [map.addLayer()]{@link import(\"../Map.js\").default#addLayer}.\n * Components like {@link module:ol/interaction/Draw~Draw} use unmanaged layers\n * internally. These unmanaged layers are associated with the map using\n * [layer.setMap()]{@link module:ol/layer/Layer~Layer#setMap} instead.\n *\n * A generic `change` event is fired when the state of the source changes.\n * A `sourceready` event is fired when the layer's source is ready.\n *\n * @fires import(\"../render/Event.js\").RenderEvent#prerender\n * @fires import(\"../render/Event.js\").RenderEvent#postrender\n * @fires import(\"../events/Event.js\").BaseEvent#sourceready\n *\n * @template {import(\"../source/Source.js\").default} [SourceType=import(\"../source/Source.js\").default]\n * @template {import(\"../renderer/Layer.js\").default} [RendererType=import(\"../renderer/Layer.js\").default]\n * @api\n */\nclass Layer extends BaseLayer {\n /**\n * @param {Options} options Layer options.\n */\n constructor(options) {\n const baseOptions = Object.assign({}, options);\n delete baseOptions.source;\n\n super(baseOptions);\n\n /***\n * @type {LayerOnSignature}\n */\n this.on;\n\n /***\n * @type {LayerOnSignature}\n */\n this.once;\n\n /***\n * @type {LayerOnSignature}\n */\n this.un;\n\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n this.mapPrecomposeKey_ = null;\n\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n this.mapRenderKey_ = null;\n\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n this.sourceChangeKey_ = null;\n\n /**\n * @private\n * @type {RendererType}\n */\n this.renderer_ = null;\n\n /**\n * @private\n * @type {boolean}\n */\n this.sourceReady_ = false;\n\n /**\n * @protected\n * @type {boolean}\n */\n this.rendered = false;\n\n // Overwrite default render method with a custom one\n if (options.render) {\n this.render = options.render;\n }\n\n if (options.map) {\n this.setMap(options.map);\n }\n\n this.addChangeListener(\n LayerProperty.SOURCE,\n this.handleSourcePropertyChange_\n );\n\n const source = options.source\n ? /** @type {SourceType} */ (options.source)\n : null;\n this.setSource(source);\n }\n\n /**\n * @param {Array} [array] Array of layers (to be modified in place).\n * @return {Array} Array of layers.\n */\n getLayersArray(array) {\n array = array ? array : [];\n array.push(this);\n return array;\n }\n\n /**\n * @param {Array} [states] Optional list of layer states (to be modified in place).\n * @return {Array} List of layer states.\n */\n getLayerStatesArray(states) {\n states = states ? states : [];\n states.push(this.getLayerState());\n return states;\n }\n\n /**\n * Get the layer source.\n * @return {SourceType|null} The layer source (or `null` if not yet set).\n * @observable\n * @api\n */\n getSource() {\n return /** @type {SourceType} */ (this.get(LayerProperty.SOURCE)) || null;\n }\n\n /**\n * @return {SourceType|null} The source being rendered.\n */\n getRenderSource() {\n return this.getSource();\n }\n\n /**\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n getSourceState() {\n const source = this.getSource();\n return !source ? 'undefined' : source.getState();\n }\n\n /**\n * @private\n */\n handleSourceChange_() {\n this.changed();\n if (this.sourceReady_ || this.getSource().getState() !== 'ready') {\n return;\n }\n this.sourceReady_ = true;\n this.dispatchEvent('sourceready');\n }\n\n /**\n * @private\n */\n handleSourcePropertyChange_() {\n if (this.sourceChangeKey_) {\n unlistenByKey(this.sourceChangeKey_);\n this.sourceChangeKey_ = null;\n }\n this.sourceReady_ = false;\n const source = this.getSource();\n if (source) {\n this.sourceChangeKey_ = listen(\n source,\n EventType.CHANGE,\n this.handleSourceChange_,\n this\n );\n if (source.getState() === 'ready') {\n this.sourceReady_ = true;\n setTimeout(() => {\n this.dispatchEvent('sourceready');\n }, 0);\n }\n }\n this.changed();\n }\n\n /**\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n getFeatures(pixel) {\n if (!this.renderer_) {\n return Promise.resolve([]);\n }\n return this.renderer_.getFeatures(pixel);\n }\n\n /**\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n */\n getData(pixel) {\n if (!this.renderer_ || !this.rendered) {\n return null;\n }\n return this.renderer_.getData(pixel);\n }\n\n /**\n * The layer is visible on the map view, i.e. within its min/max resolution or zoom and\n * extent, not set to `visible: false`, and not inside a layer group that is set\n * to `visible: false`.\n * @param {View|import(\"../View.js\").ViewStateLayerStateExtent} [view] View or {@link import(\"../Map.js\").FrameState}.\n * Only required when the layer is not added to a map.\n * @return {boolean} The layer is visible in the map view.\n * @api\n */\n isVisible(view) {\n let frameState;\n const map = this.getMapInternal();\n if (!view && map) {\n view = map.getView();\n }\n if (view instanceof View) {\n frameState = {\n viewState: view.getState(),\n extent: view.calculateExtent(),\n };\n } else {\n frameState = view;\n }\n if (!frameState.layerStatesArray && map) {\n frameState.layerStatesArray = map.getLayerGroup().getLayerStatesArray();\n }\n let layerState;\n if (frameState.layerStatesArray) {\n layerState = frameState.layerStatesArray.find(\n (layerState) => layerState.layer === this\n );\n } else {\n layerState = this.getLayerState();\n }\n\n const layerExtent = this.getExtent();\n\n return (\n inView(layerState, frameState.viewState) &&\n (!layerExtent || intersects(layerExtent, frameState.extent))\n );\n }\n\n /**\n * Get the attributions of the source of this layer for the given view.\n * @param {View|import(\"../View.js\").ViewStateLayerStateExtent} [view] View or {@link import(\"../Map.js\").FrameState}.\n * Only required when the layer is not added to a map.\n * @return {Array} Attributions for this layer at the given view.\n * @api\n */\n getAttributions(view) {\n if (!this.isVisible(view)) {\n return [];\n }\n let getAttributions;\n const source = this.getSource();\n if (source) {\n getAttributions = source.getAttributions();\n }\n if (!getAttributions) {\n return [];\n }\n const frameState =\n view instanceof View ? view.getViewStateAndExtent() : view;\n let attributions = getAttributions(frameState);\n if (!Array.isArray(attributions)) {\n attributions = [attributions];\n }\n return attributions;\n }\n\n /**\n * In charge to manage the rendering of the layer. One layer type is\n * bounded with one layer renderer.\n * @param {?import(\"../Map.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target which the renderer may (but need not) use\n * for rendering its content.\n * @return {HTMLElement|null} The rendered element.\n */\n render(frameState, target) {\n const layerRenderer = this.getRenderer();\n\n if (layerRenderer.prepareFrame(frameState)) {\n this.rendered = true;\n return layerRenderer.renderFrame(frameState, target);\n }\n return null;\n }\n\n /**\n * Called when a layer is not visible during a map render.\n */\n unrender() {\n this.rendered = false;\n }\n\n /**\n * For use inside the library only.\n * @param {import(\"../Map.js\").default|null} map Map.\n */\n setMapInternal(map) {\n if (!map) {\n this.unrender();\n }\n this.set(LayerProperty.MAP, map);\n }\n\n /**\n * For use inside the library only.\n * @return {import(\"../Map.js\").default|null} Map.\n */\n getMapInternal() {\n return this.get(LayerProperty.MAP);\n }\n\n /**\n * Sets the layer to be rendered on top of other layers on a map. The map will\n * not manage this layer in its layers collection. This\n * is useful for temporary layers. To remove an unmanaged layer from the map,\n * use `#setMap(null)`.\n *\n * To add the layer to a map and have it managed by the map, use\n * {@link module:ol/Map~Map#addLayer} instead.\n * @param {import(\"../Map.js\").default|null} map Map.\n * @api\n */\n setMap(map) {\n if (this.mapPrecomposeKey_) {\n unlistenByKey(this.mapPrecomposeKey_);\n this.mapPrecomposeKey_ = null;\n }\n if (!map) {\n this.changed();\n }\n if (this.mapRenderKey_) {\n unlistenByKey(this.mapRenderKey_);\n this.mapRenderKey_ = null;\n }\n if (map) {\n this.mapPrecomposeKey_ = listen(\n map,\n RenderEventType.PRECOMPOSE,\n function (evt) {\n const renderEvent =\n /** @type {import(\"../render/Event.js\").default} */ (evt);\n const layerStatesArray = renderEvent.frameState.layerStatesArray;\n const layerState = this.getLayerState(false);\n assert(\n !layerStatesArray.some(function (arrayLayerState) {\n return arrayLayerState.layer === layerState.layer;\n }),\n 'A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both.'\n );\n layerStatesArray.push(layerState);\n },\n this\n );\n this.mapRenderKey_ = listen(this, EventType.CHANGE, map.render, map);\n this.changed();\n }\n }\n\n /**\n * Set the layer source.\n * @param {SourceType|null} source The layer source.\n * @observable\n * @api\n */\n setSource(source) {\n this.set(LayerProperty.SOURCE, source);\n }\n\n /**\n * Get the renderer for this layer.\n * @return {RendererType|null} The layer renderer.\n */\n getRenderer() {\n if (!this.renderer_) {\n this.renderer_ = this.createRenderer();\n }\n return this.renderer_;\n }\n\n /**\n * @return {boolean} The layer has a renderer.\n */\n hasRenderer() {\n return !!this.renderer_;\n }\n\n /**\n * Create a renderer for this layer.\n * @return {RendererType} A layer renderer.\n * @protected\n */\n createRenderer() {\n return null;\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n if (this.renderer_) {\n this.renderer_.dispose();\n delete this.renderer_;\n }\n\n this.setSource(null);\n super.disposeInternal();\n }\n}\n\n/**\n * Return `true` if the layer is visible and if the provided view state\n * has resolution and zoom levels that are in range of the layer's min/max.\n * @param {State} layerState Layer state.\n * @param {import(\"../View.js\").State} viewState View state.\n * @return {boolean} The layer is visible at the given view state.\n */\nexport function inView(layerState, viewState) {\n if (!layerState.visible) {\n return false;\n }\n const resolution = viewState.resolution;\n if (\n resolution < layerState.minResolution ||\n resolution >= layerState.maxResolution\n ) {\n return false;\n }\n const zoom = viewState.zoom;\n return zoom > layerState.minZoom && zoom <= layerState.maxZoom;\n}\n\nexport default Layer;\n","/**\n * @module ol/layer/TileProperty\n */\n\n/**\n * @enum {string}\n */\nexport default {\n PRELOAD: 'preload',\n USE_INTERIM_TILES_ON_ERROR: 'useInterimTilesOnError',\n};\n","/**\n * @module ol/layer/BaseTile\n */\nimport Layer from './Layer.js';\nimport TileProperty from './TileProperty.js';\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseTileLayerOnSignature\n */\n\n/**\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`\n * means no preloading.\n * @property {TileSourceType} [source] Source for this layer.\n * @property {import(\"../Map.js\").default} [map] Sets the layer as overlay on a map. The map will not manage\n * this layer in its layers collection, and the layer will be rendered on top. This is useful for\n * temporary layers. The standard way to add a layer to a map and have it managed by the map is to\n * use {@link import(\"../Map.js\").default#addLayer map.addLayer()}.\n * @property {boolean} [useInterimTilesOnError=true] Use interim tiles on error.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @template {import(\"../renderer/Layer.js\").default} RendererType\n * @extends {Layer}\n * @api\n */\nclass BaseTileLayer extends Layer {\n /**\n * @param {Options} [options] Tile layer options.\n */\n constructor(options) {\n options = options ? options : {};\n\n const baseOptions = Object.assign({}, options);\n\n delete baseOptions.preload;\n delete baseOptions.useInterimTilesOnError;\n super(baseOptions);\n\n /***\n * @type {BaseTileLayerOnSignature}\n */\n this.on;\n\n /***\n * @type {BaseTileLayerOnSignature}\n */\n this.once;\n\n /***\n * @type {BaseTileLayerOnSignature}\n */\n this.un;\n\n this.setPreload(options.preload !== undefined ? options.preload : 0);\n this.setUseInterimTilesOnError(\n options.useInterimTilesOnError !== undefined\n ? options.useInterimTilesOnError\n : true\n );\n }\n\n /**\n * Return the level as number to which we will preload tiles up to.\n * @return {number} The level to preload tiles up to.\n * @observable\n * @api\n */\n getPreload() {\n return /** @type {number} */ (this.get(TileProperty.PRELOAD));\n }\n\n /**\n * Set the level as number to which we will preload tiles up to.\n * @param {number} preload The level to preload tiles up to.\n * @observable\n * @api\n */\n setPreload(preload) {\n this.set(TileProperty.PRELOAD, preload);\n }\n\n /**\n * Whether we use interim tiles on error.\n * @return {boolean} Use interim tiles on error.\n * @observable\n * @api\n */\n getUseInterimTilesOnError() {\n return /** @type {boolean} */ (\n this.get(TileProperty.USE_INTERIM_TILES_ON_ERROR)\n );\n }\n\n /**\n * Set whether we use interim tiles on error.\n * @param {boolean} useInterimTilesOnError Use interim tiles on error.\n * @observable\n * @api\n */\n setUseInterimTilesOnError(useInterimTilesOnError) {\n this.set(TileProperty.USE_INTERIM_TILES_ON_ERROR, useInterimTilesOnError);\n }\n\n /**\n * Get data for a pixel location. The return type depends on the source data. For image tiles,\n * a four element RGBA array will be returned. For data tiles, the array length will match the\n * number of bands in the dataset. For requests outside the layer extent, `null` will be returned.\n * Data for a image tiles can only be retrieved if the source's `crossOrigin` property is set.\n *\n * ```js\n * // display layer data on every pointer move\n * map.on('pointermove', (event) => {\n * console.log(layer.getData(event.pixel));\n * });\n * ```\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n * @api\n */\n getData(pixel) {\n return super.getData(pixel);\n }\n}\n\nexport default BaseTileLayer;\n","/**\n * @module ol/ImageState\n */\n\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n ERROR: 3,\n EMPTY: 4,\n};\n","/**\n * @module ol/renderer/Layer\n */\nimport EventType from '../events/EventType.js';\nimport ImageState from '../ImageState.js';\nimport Observable from '../Observable.js';\nimport {abstract} from '../util.js';\n\n/**\n * @template {import(\"../layer/Layer.js\").default} LayerType\n */\nclass LayerRenderer extends Observable {\n /**\n * @param {LayerType} layer Layer.\n */\n constructor(layer) {\n super();\n\n /**\n * The renderer is initialized and ready to render.\n * @type {boolean}\n */\n this.ready = true;\n\n /** @private */\n this.boundHandleImageChange_ = this.handleImageChange_.bind(this);\n\n /**\n * @protected\n * @type {LayerType}\n */\n this.layer_ = layer;\n\n /**\n * @type {import(\"../render/canvas/ExecutorGroup\").default}\n */\n this.declutterExecutorGroup = null;\n }\n\n /**\n * Asynchronous layer level hit detection.\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n getFeatures(pixel) {\n return abstract();\n }\n\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n */\n getData(pixel) {\n return null;\n }\n\n /**\n * Determine whether render should be called.\n * @abstract\n * @param {import(\"../Map.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n prepareFrame(frameState) {\n return abstract();\n }\n\n /**\n * Render the layer.\n * @abstract\n * @param {import(\"../Map.js\").FrameState} frameState Frame state.\n * @param {HTMLElement|null} target Target that may be used to render content to.\n * @return {HTMLElement|null} The rendered element.\n */\n renderFrame(frameState, target) {\n return abstract();\n }\n\n /**\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @param {number} zoom Zoom level.\n * @param {import(\"../Tile.js\").default} tile Tile.\n * @return {boolean|void} If `false`, the tile will not be considered loaded.\n */\n loadedTileCallback(tiles, zoom, tile) {\n if (!tiles[zoom]) {\n tiles[zoom] = {};\n }\n tiles[zoom][tile.tileCoord.toString()] = tile;\n return undefined;\n }\n\n /**\n * Create a function that adds loaded tiles to the tile lookup.\n * @param {import(\"../source/Tile.js\").default} source Tile source.\n * @param {import(\"../proj/Projection.js\").default} projection Projection of the tiles.\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @return {function(number, import(\"../TileRange.js\").default):boolean} A function that can be\n * called with a zoom level and a tile range to add loaded tiles to the lookup.\n * @protected\n */\n createLoadedTileFinder(source, projection, tiles) {\n return (\n /**\n * @param {number} zoom Zoom level.\n * @param {import(\"../TileRange.js\").default} tileRange Tile range.\n * @return {boolean} The tile range is fully loaded.\n */\n (zoom, tileRange) => {\n const callback = this.loadedTileCallback.bind(this, tiles, zoom);\n return source.forEachLoadedTile(projection, zoom, tileRange, callback);\n }\n );\n }\n /**\n * @abstract\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../Map.js\").FrameState} frameState Frame state.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {import(\"./vector.js\").FeatureCallback} callback Feature callback.\n * @param {Array>} matches The hit detected matches with tolerance.\n * @return {T|undefined} Callback result.\n * @template T\n */\n forEachFeatureAtCoordinate(\n coordinate,\n frameState,\n hitTolerance,\n callback,\n matches\n ) {\n return undefined;\n }\n\n /**\n * @return {LayerType} Layer.\n */\n getLayer() {\n return this.layer_;\n }\n\n /**\n * Perform action necessary to get the layer rendered after new fonts have loaded\n * @abstract\n */\n handleFontsChanged() {}\n\n /**\n * Handle changes in image state.\n * @param {import(\"../events/Event.js\").default} event Image change event.\n * @private\n */\n handleImageChange_(event) {\n const image = /** @type {import(\"../Image.js\").default} */ (event.target);\n if (\n image.getState() === ImageState.LOADED ||\n image.getState() === ImageState.ERROR\n ) {\n this.renderIfReadyAndVisible();\n }\n }\n\n /**\n * Load the image if not already loaded, and register the image change\n * listener if needed.\n * @param {import(\"../Image.js\").default} image Image.\n * @return {boolean} `true` if the image is already loaded, `false` otherwise.\n * @protected\n */\n loadImage(image) {\n let imageState = image.getState();\n if (imageState != ImageState.LOADED && imageState != ImageState.ERROR) {\n image.addEventListener(EventType.CHANGE, this.boundHandleImageChange_);\n }\n if (imageState == ImageState.IDLE) {\n image.load();\n imageState = image.getState();\n }\n return imageState == ImageState.LOADED;\n }\n\n /**\n * @protected\n */\n renderIfReadyAndVisible() {\n const layer = this.getLayer();\n if (layer && layer.getVisible() && layer.getSourceState() === 'ready') {\n layer.changed();\n }\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n delete this.layer_;\n super.disposeInternal();\n }\n}\n\nexport default LayerRenderer;\n","/**\n * @module ol/render/Event\n */\n\nimport Event from '../events/Event.js';\n\nclass RenderEvent extends Event {\n /**\n * @param {import(\"./EventType.js\").default} type Type.\n * @param {import(\"../transform.js\").Transform} [inversePixelTransform] Transform for\n * CSS pixels to rendered pixels.\n * @param {import(\"../Map.js\").FrameState} [frameState] Frame state.\n * @param {?(CanvasRenderingContext2D|WebGLRenderingContext)} [context] Context.\n */\n constructor(type, inversePixelTransform, frameState, context) {\n super(type);\n\n /**\n * Transform from CSS pixels (relative to the top-left corner of the map viewport)\n * to rendered pixels on this event's `context`. Only available when a Canvas renderer is used, null otherwise.\n * @type {import(\"../transform.js\").Transform|undefined}\n * @api\n */\n this.inversePixelTransform = inversePixelTransform;\n\n /**\n * An object representing the current render frame state.\n * @type {import(\"../Map.js\").FrameState|undefined}\n * @api\n */\n this.frameState = frameState;\n\n /**\n * Canvas context. Not available when the event is dispatched by the map. For Canvas 2D layers,\n * the context will be the 2D rendering context. For WebGL layers, the context will be the WebGL\n * context.\n * @type {CanvasRenderingContext2D|WebGLRenderingContext|undefined}\n * @api\n */\n this.context = context;\n }\n}\n\nexport default RenderEvent;\n","/**\n * @module ol/color\n */\nimport {clamp} from './math.js';\n\n/**\n * A color represented as a short array [red, green, blue, alpha].\n * red, green, and blue should be integers in the range 0..255 inclusive.\n * alpha should be a float in the range 0..1 inclusive. If no alpha value is\n * given then `1` will be used.\n * @typedef {Array} Color\n * @api\n */\n\n/**\n * This RegExp matches # followed by 3, 4, 6, or 8 hex digits.\n * @const\n * @type {RegExp}\n * @private\n */\nconst HEX_COLOR_RE_ = /^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i;\n\n/**\n * Regular expression for matching potential named color style strings.\n * @const\n * @type {RegExp}\n * @private\n */\nconst NAMED_COLOR_RE_ = /^([a-z]*)$|^hsla?\\(.*\\)$/i;\n\n/**\n * Return the color as an rgba string.\n * @param {Color|string} color Color.\n * @return {string} Rgba string.\n * @api\n */\nexport function asString(color) {\n if (typeof color === 'string') {\n return color;\n }\n return toString(color);\n}\n\n/**\n * Return named color as an rgba string.\n * @param {string} color Named color.\n * @return {string} Rgb string.\n */\nfunction fromNamed(color) {\n const el = document.createElement('div');\n el.style.color = color;\n if (el.style.color !== '') {\n document.body.appendChild(el);\n const rgb = getComputedStyle(el).color;\n document.body.removeChild(el);\n return rgb;\n }\n return '';\n}\n\n/**\n * @param {string} s String.\n * @return {Color} Color.\n */\nexport const fromString = (function () {\n // We maintain a small cache of parsed strings. To provide cheap LRU-like\n // semantics, whenever the cache grows too large we simply delete an\n // arbitrary 25% of the entries.\n\n /**\n * @const\n * @type {number}\n */\n const MAX_CACHE_SIZE = 1024;\n\n /**\n * @type {Object}\n */\n const cache = {};\n\n /**\n * @type {number}\n */\n let cacheSize = 0;\n\n return (\n /**\n * @param {string} s String.\n * @return {Color} Color.\n */\n function (s) {\n let color;\n if (cache.hasOwnProperty(s)) {\n color = cache[s];\n } else {\n if (cacheSize >= MAX_CACHE_SIZE) {\n let i = 0;\n for (const key in cache) {\n if ((i++ & 3) === 0) {\n delete cache[key];\n --cacheSize;\n }\n }\n }\n color = fromStringInternal_(s);\n cache[s] = color;\n ++cacheSize;\n }\n return color;\n }\n );\n})();\n\n/**\n * Return the color as an array. This function maintains a cache of calculated\n * arrays which means the result should not be modified.\n * @param {Color|string} color Color.\n * @return {Color} Color.\n * @api\n */\nexport function asArray(color) {\n if (Array.isArray(color)) {\n return color;\n }\n return fromString(color);\n}\n\n/**\n * @param {string} s String.\n * @private\n * @return {Color} Color.\n */\nfunction fromStringInternal_(s) {\n let r, g, b, a, color;\n\n if (NAMED_COLOR_RE_.exec(s)) {\n s = fromNamed(s);\n }\n\n if (HEX_COLOR_RE_.exec(s)) {\n // hex\n const n = s.length - 1; // number of hex digits\n let d; // number of digits per channel\n if (n <= 4) {\n d = 1;\n } else {\n d = 2;\n }\n const hasAlpha = n === 4 || n === 8;\n r = parseInt(s.substr(1 + 0 * d, d), 16);\n g = parseInt(s.substr(1 + 1 * d, d), 16);\n b = parseInt(s.substr(1 + 2 * d, d), 16);\n if (hasAlpha) {\n a = parseInt(s.substr(1 + 3 * d, d), 16);\n } else {\n a = 255;\n }\n if (d == 1) {\n r = (r << 4) + r;\n g = (g << 4) + g;\n b = (b << 4) + b;\n if (hasAlpha) {\n a = (a << 4) + a;\n }\n }\n color = [r, g, b, a / 255];\n } else if (s.startsWith('rgba(')) {\n // rgba()\n color = s.slice(5, -1).split(',').map(Number);\n normalize(color);\n } else if (s.startsWith('rgb(')) {\n // rgb()\n color = s.slice(4, -1).split(',').map(Number);\n color.push(1);\n normalize(color);\n } else {\n throw new Error('Invalid color');\n }\n return color;\n}\n\n/**\n * TODO this function is only used in the test, we probably shouldn't export it\n * @param {Color} color Color.\n * @return {Color} Clamped color.\n */\nexport function normalize(color) {\n color[0] = clamp((color[0] + 0.5) | 0, 0, 255);\n color[1] = clamp((color[1] + 0.5) | 0, 0, 255);\n color[2] = clamp((color[2] + 0.5) | 0, 0, 255);\n color[3] = clamp(color[3], 0, 1);\n return color;\n}\n\n/**\n * @param {Color} color Color.\n * @return {string} String.\n */\nexport function toString(color) {\n let r = color[0];\n if (r != (r | 0)) {\n r = (r + 0.5) | 0;\n }\n let g = color[1];\n if (g != (g | 0)) {\n g = (g + 0.5) | 0;\n }\n let b = color[2];\n if (b != (b | 0)) {\n b = (b + 0.5) | 0;\n }\n const a = color[3] === undefined ? 1 : Math.round(color[3] * 100) / 100;\n return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n}\n\n/**\n * @param {string} s String.\n * @return {boolean} Whether the string is actually a valid color\n */\nexport function isStringColor(s) {\n if (NAMED_COLOR_RE_.test(s)) {\n s = fromNamed(s);\n }\n return HEX_COLOR_RE_.test(s) || s.startsWith('rgba(') || s.startsWith('rgb(');\n}\n","import {WORKER_OFFSCREEN_CANVAS} from './has.js';\n\n/**\n * @module ol/dom\n */\n\n//FIXME Move this function to the canvas module\n/**\n * Create an html canvas element and returns its 2d context.\n * @param {number} [width] Canvas width.\n * @param {number} [height] Canvas height.\n * @param {Array} [canvasPool] Canvas pool to take existing canvas from.\n * @param {CanvasRenderingContext2DSettings} [settings] CanvasRenderingContext2DSettings\n * @return {CanvasRenderingContext2D} The context.\n */\nexport function createCanvasContext2D(width, height, canvasPool, settings) {\n /** @type {HTMLCanvasElement|OffscreenCanvas} */\n let canvas;\n if (canvasPool && canvasPool.length) {\n canvas = canvasPool.shift();\n } else if (WORKER_OFFSCREEN_CANVAS) {\n canvas = new OffscreenCanvas(width || 300, height || 300);\n } else {\n canvas = document.createElement('canvas');\n }\n if (width) {\n canvas.width = width;\n }\n if (height) {\n canvas.height = height;\n }\n //FIXME Allow OffscreenCanvasRenderingContext2D as return type\n return /** @type {CanvasRenderingContext2D} */ (\n canvas.getContext('2d', settings)\n );\n}\n\n/**\n * Releases canvas memory to avoid exceeding memory limits in Safari.\n * See https://pqina.nl/blog/total-canvas-memory-use-exceeds-the-maximum-limit/\n * @param {CanvasRenderingContext2D} context Context.\n */\nexport function releaseCanvas(context) {\n const canvas = context.canvas;\n canvas.width = 1;\n canvas.height = 1;\n context.clearRect(0, 0, 1, 1);\n}\n\n/**\n * Get the current computed width for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerWidth(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The width.\n */\nexport function outerWidth(element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n\n return width;\n}\n\n/**\n * Get the current computed height for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerHeight(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The height.\n */\nexport function outerHeight(element) {\n let height = element.offsetHeight;\n const style = getComputedStyle(element);\n height += parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n\n return height;\n}\n\n/**\n * @param {Node} newNode Node to replace old node\n * @param {Node} oldNode The node to be replaced\n */\nexport function replaceNode(newNode, oldNode) {\n const parent = oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n}\n\n/**\n * @param {Node} node The node to remove.\n * @return {Node|null} The node that was removed or null.\n */\nexport function removeNode(node) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n\n/**\n * @param {Node} node The node to remove the children from.\n */\nexport function removeChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n\n/**\n * Transform the children of a parent node so they match the\n * provided list of children. This function aims to efficiently\n * remove, add, and reorder child nodes while maintaining a simple\n * implementation (it is not guaranteed to minimize DOM operations).\n * @param {Node} node The parent node whose children need reworking.\n * @param {Array} children The desired children.\n */\nexport function replaceChildren(node, children) {\n const oldChildren = node.childNodes;\n\n for (let i = 0; true; ++i) {\n const oldChild = oldChildren[i];\n const newChild = children[i];\n\n // check if our work is done\n if (!oldChild && !newChild) {\n break;\n }\n\n // check if children match\n if (oldChild === newChild) {\n continue;\n }\n\n // check if a new child needs to be added\n if (!oldChild) {\n node.appendChild(newChild);\n continue;\n }\n\n // check if an old child needs to be removed\n if (!newChild) {\n node.removeChild(oldChild);\n --i;\n continue;\n }\n\n // reorder\n node.insertBefore(newChild, oldChild);\n }\n}\n","/**\n * @module ol/renderer/canvas/Layer\n */\nimport LayerRenderer from '../Layer.js';\nimport RenderEvent from '../../render/Event.js';\nimport RenderEventType from '../../render/EventType.js';\nimport {\n apply as applyTransform,\n compose as composeTransform,\n create as createTransform,\n} from '../../transform.js';\nimport {asArray} from '../../color.js';\nimport {createCanvasContext2D} from '../../dom.js';\nimport {equals} from '../../array.js';\nimport {\n getBottomLeft,\n getBottomRight,\n getTopLeft,\n getTopRight,\n} from '../../extent.js';\n\n/**\n * @type {Array}\n */\nexport const canvasPool = [];\n\n/**\n * @type {CanvasRenderingContext2D}\n */\nlet pixelContext = null;\n\nfunction createPixelContext() {\n pixelContext = createCanvasContext2D(1, 1, undefined, {\n willReadFrequently: true,\n });\n}\n\n/**\n * @abstract\n * @template {import(\"../../layer/Layer.js\").default} LayerType\n * @extends {LayerRenderer}\n */\nclass CanvasLayerRenderer extends LayerRenderer {\n /**\n * @param {LayerType} layer Layer.\n */\n constructor(layer) {\n super(layer);\n\n /**\n * @protected\n * @type {HTMLElement}\n */\n this.container = null;\n\n /**\n * @protected\n * @type {number}\n */\n this.renderedResolution;\n\n /**\n * A temporary transform. The values in this transform should only be used in a\n * function that sets the values.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n this.tempTransform = createTransform();\n\n /**\n * The transform for rendered pixels to viewport CSS pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n this.pixelTransform = createTransform();\n\n /**\n * The transform for viewport CSS pixels to rendered pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n this.inversePixelTransform = createTransform();\n\n /**\n * @type {CanvasRenderingContext2D}\n */\n this.context = null;\n\n /**\n * @type {boolean}\n */\n this.containerReused = false;\n\n /**\n * @private\n * @type {CanvasRenderingContext2D}\n */\n this.pixelContext_ = null;\n\n /**\n * @protected\n * @type {import(\"../../Map.js\").FrameState|null}\n */\n this.frameState = null;\n }\n\n /**\n * @param {import('../../DataTile.js').ImageLike} image Image.\n * @param {number} col The column index.\n * @param {number} row The row index.\n * @return {Uint8ClampedArray|null} The image data.\n */\n getImageData(image, col, row) {\n if (!pixelContext) {\n createPixelContext();\n }\n pixelContext.clearRect(0, 0, 1, 1);\n\n let data;\n try {\n pixelContext.drawImage(image, col, row, 1, 1, 0, 0, 1, 1);\n data = pixelContext.getImageData(0, 0, 1, 1).data;\n } catch (err) {\n pixelContext = null;\n return null;\n }\n return data;\n }\n\n /**\n * @param {import('../../Map.js').FrameState} frameState Frame state.\n * @return {string} Background color.\n */\n getBackground(frameState) {\n const layer = this.getLayer();\n let background = layer.getBackground();\n if (typeof background === 'function') {\n background = background(frameState.viewState.resolution);\n }\n return background || undefined;\n }\n\n /**\n * Get a rendering container from an existing target, if compatible.\n * @param {HTMLElement} target Potential render target.\n * @param {string} transform CSS Transform.\n * @param {string} [backgroundColor] Background color.\n */\n useContainer(target, transform, backgroundColor) {\n const layerClassName = this.getLayer().getClassName();\n let container, context;\n if (\n target &&\n target.className === layerClassName &&\n (!backgroundColor ||\n (target &&\n target.style.backgroundColor &&\n equals(\n asArray(target.style.backgroundColor),\n asArray(backgroundColor)\n )))\n ) {\n const canvas = target.firstElementChild;\n if (canvas instanceof HTMLCanvasElement) {\n context = canvas.getContext('2d');\n }\n }\n if (context && context.canvas.style.transform === transform) {\n // Container of the previous layer renderer can be used.\n this.container = target;\n this.context = context;\n this.containerReused = true;\n } else if (this.containerReused) {\n // Previously reused container cannot be used any more.\n this.container = null;\n this.context = null;\n this.containerReused = false;\n } else if (this.container) {\n this.container.style.backgroundColor = null;\n }\n if (!this.container) {\n container = document.createElement('div');\n container.className = layerClassName;\n let style = container.style;\n style.position = 'absolute';\n style.width = '100%';\n style.height = '100%';\n context = createCanvasContext2D();\n const canvas = context.canvas;\n container.appendChild(canvas);\n style = canvas.style;\n style.position = 'absolute';\n style.left = '0';\n style.transformOrigin = 'top left';\n this.container = container;\n this.context = context;\n }\n if (\n !this.containerReused &&\n backgroundColor &&\n !this.container.style.backgroundColor\n ) {\n this.container.style.backgroundColor = backgroundColor;\n }\n }\n\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @param {import(\"../../extent.js\").Extent} extent Clip extent.\n * @protected\n */\n clipUnrotated(context, frameState, extent) {\n const topLeft = getTopLeft(extent);\n const topRight = getTopRight(extent);\n const bottomRight = getBottomRight(extent);\n const bottomLeft = getBottomLeft(extent);\n\n applyTransform(frameState.coordinateToPixelTransform, topLeft);\n applyTransform(frameState.coordinateToPixelTransform, topRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomLeft);\n\n const inverted = this.inversePixelTransform;\n applyTransform(inverted, topLeft);\n applyTransform(inverted, topRight);\n applyTransform(inverted, bottomRight);\n applyTransform(inverted, bottomLeft);\n\n context.save();\n context.beginPath();\n context.moveTo(Math.round(topLeft[0]), Math.round(topLeft[1]));\n context.lineTo(Math.round(topRight[0]), Math.round(topRight[1]));\n context.lineTo(Math.round(bottomRight[0]), Math.round(bottomRight[1]));\n context.lineTo(Math.round(bottomLeft[0]), Math.round(bottomLeft[1]));\n context.clip();\n }\n\n /**\n * @param {import(\"../../render/EventType.js\").default} type Event type.\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @private\n */\n dispatchRenderEvent_(type, context, frameState) {\n const layer = this.getLayer();\n if (layer.hasListener(type)) {\n const event = new RenderEvent(\n type,\n this.inversePixelTransform,\n frameState,\n context\n );\n layer.dispatchEvent(event);\n }\n }\n\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @protected\n */\n preRender(context, frameState) {\n this.frameState = frameState;\n this.dispatchRenderEvent_(RenderEventType.PRERENDER, context, frameState);\n }\n\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @protected\n */\n postRender(context, frameState) {\n this.dispatchRenderEvent_(RenderEventType.POSTRENDER, context, frameState);\n }\n\n /**\n * Creates a transform for rendering to an element that will be rotated after rendering.\n * @param {import(\"../../coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} width Width of the rendered element (in pixels).\n * @param {number} height Height of the rendered element (in pixels).\n * @param {number} offsetX Offset on the x-axis in view coordinates.\n * @protected\n * @return {!import(\"../../transform.js\").Transform} Transform.\n */\n getRenderTransform(\n center,\n resolution,\n rotation,\n pixelRatio,\n width,\n height,\n offsetX\n ) {\n const dx1 = width / 2;\n const dy1 = height / 2;\n const sx = pixelRatio / resolution;\n const sy = -sx;\n const dx2 = -center[0] + offsetX;\n const dy2 = -center[1];\n return composeTransform(\n this.tempTransform,\n dx1,\n dy1,\n sx,\n sy,\n -rotation,\n dx2,\n dy2\n );\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n delete this.frameState;\n super.disposeInternal();\n }\n}\n\nexport default CanvasLayerRenderer;\n","/**\n * @module ol/TileState\n */\n\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n /**\n * Indicates that tile loading failed\n * @type {number}\n */\n ERROR: 3,\n EMPTY: 4,\n};\n","/**\n * @module ol/Tile\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport TileState from './TileState.js';\nimport {abstract} from './util.js';\nimport {easeIn} from './easing.js';\n\n/**\n * A function that takes an {@link module:ol/Tile~Tile} for the tile and a\n * `{string}` for the url as arguments. The default is\n * ```js\n * source.setTileLoadFunction(function(tile, src) {\n * tile.getImage().src = src;\n * });\n * ```\n * For more fine grained control, the load function can use fetch or XMLHttpRequest and involve\n * error handling:\n *\n * ```js\n * import TileState from 'ol/TileState.js';\n *\n * source.setTileLoadFunction(function(tile, src) {\n * const xhr = new XMLHttpRequest();\n * xhr.responseType = 'blob';\n * xhr.addEventListener('loadend', function (evt) {\n * const data = this.response;\n * if (data !== undefined) {\n * tile.getImage().src = URL.createObjectURL(data);\n * } else {\n * tile.setState(TileState.ERROR);\n * }\n * });\n * xhr.addEventListener('error', function () {\n * tile.setState(TileState.ERROR);\n * });\n * xhr.open('GET', src);\n * xhr.send();\n * });\n * ```\n *\n * @typedef {function(Tile, string): void} LoadFunction\n * @api\n */\n\n/**\n * {@link module:ol/source/Tile~TileSource} sources use a function of this type to get\n * the url that provides a tile for a given tile coordinate.\n *\n * This function takes an {@link module:ol/tilecoord~TileCoord} for the tile\n * coordinate, a `{number}` representing the pixel ratio and a\n * {@link module:ol/proj/Projection~Projection} for the projection as arguments\n * and returns a `{string}` representing the tile URL, or undefined if no tile\n * should be requested for the passed tile coordinate.\n *\n * @typedef {function(import(\"./tilecoord.js\").TileCoord, number,\n * import(\"./proj/Projection.js\").default): (string|undefined)} UrlFunction\n * @api\n */\n\n/**\n * @typedef {Object} Options\n * @property {number} [transition=250] A duration for tile opacity\n * transitions in milliseconds. A duration of 0 disables the opacity transition.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n * @api\n */\n\n/**\n * @classdesc\n * Base class for tiles.\n *\n * @abstract\n */\nclass Tile extends EventTarget {\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {Options} [options] Tile options.\n */\n constructor(tileCoord, state, options) {\n super();\n\n options = options ? options : {};\n\n /**\n * @type {import(\"./tilecoord.js\").TileCoord}\n */\n this.tileCoord = tileCoord;\n\n /**\n * @protected\n * @type {import(\"./TileState.js\").default}\n */\n this.state = state;\n\n /**\n * An \"interim\" tile for this tile. The interim tile may be used while this\n * one is loading, for \"smooth\" transitions when changing params/dimensions\n * on the source.\n * @type {Tile}\n */\n this.interimTile = null;\n\n /**\n * A key assigned to the tile. This is used by the tile source to determine\n * if this tile can effectively be used, or if a new tile should be created\n * and this one be used as an interim tile for this new tile.\n * @type {string}\n */\n this.key = '';\n\n /**\n * The duration for the opacity transition.\n * @type {number}\n */\n this.transition_ =\n options.transition === undefined ? 250 : options.transition;\n\n /**\n * Lookup of start times for rendering transitions. If the start time is\n * equal to -1, the transition is complete.\n * @type {Object}\n */\n this.transitionStarts_ = {};\n\n /**\n * @type {boolean}\n */\n this.interpolate = !!options.interpolate;\n }\n\n /**\n * @protected\n */\n changed() {\n this.dispatchEvent(EventType.CHANGE);\n }\n\n /**\n * Called by the tile cache when the tile is removed from the cache due to expiry\n */\n release() {\n if (this.state === TileState.ERROR) {\n // to remove the `change` listener on this tile in `ol/TileQueue#handleTileChange`\n this.setState(TileState.EMPTY);\n }\n }\n\n /**\n * @return {string} Key.\n */\n getKey() {\n return this.key + '/' + this.tileCoord;\n }\n\n /**\n * Get the interim tile most suitable for rendering using the chain of interim\n * tiles. This corresponds to the most recent tile that has been loaded, if no\n * such tile exists, the original tile is returned.\n * @return {!Tile} Best tile for rendering.\n */\n getInterimTile() {\n if (!this.interimTile) {\n //empty chain\n return this;\n }\n let tile = this.interimTile;\n\n // find the first loaded tile and return it. Since the chain is sorted in\n // decreasing order of creation time, there is no need to search the remainder\n // of the list (all those tiles correspond to older requests and will be\n // cleaned up by refreshInterimChain)\n do {\n if (tile.getState() == TileState.LOADED) {\n // Show tile immediately instead of fading it in after loading, because\n // the interim tile is in place already\n this.transition_ = 0;\n return tile;\n }\n tile = tile.interimTile;\n } while (tile);\n\n // we can not find a better tile\n return this;\n }\n\n /**\n * Goes through the chain of interim tiles and discards sections of the chain\n * that are no longer relevant.\n */\n refreshInterimChain() {\n if (!this.interimTile) {\n return;\n }\n\n let tile = this.interimTile;\n\n /**\n * @type {Tile}\n */\n let prev = this;\n\n do {\n if (tile.getState() == TileState.LOADED) {\n //we have a loaded tile, we can discard the rest of the list\n //we would could abort any LOADING tile request\n //older than this tile (i.e. any LOADING tile following this entry in the chain)\n tile.interimTile = null;\n break;\n } else if (tile.getState() == TileState.LOADING) {\n //keep this LOADING tile any loaded tiles later in the chain are\n //older than this tile, so we're still interested in the request\n prev = tile;\n } else if (tile.getState() == TileState.IDLE) {\n //the head of the list is the most current tile, we don't need\n //to start any other requests for this chain\n prev.interimTile = tile.interimTile;\n } else {\n prev = tile;\n }\n tile = prev.interimTile;\n } while (tile);\n }\n\n /**\n * Get the tile coordinate for this tile.\n * @return {import(\"./tilecoord.js\").TileCoord} The tile coordinate.\n * @api\n */\n getTileCoord() {\n return this.tileCoord;\n }\n\n /**\n * @return {import(\"./TileState.js\").default} State.\n */\n getState() {\n return this.state;\n }\n\n /**\n * Sets the state of this tile. If you write your own {@link module:ol/Tile~LoadFunction tileLoadFunction} ,\n * it is important to set the state correctly to {@link module:ol/TileState~ERROR}\n * when the tile cannot be loaded. Otherwise the tile cannot be removed from\n * the tile queue and will block other requests.\n * @param {import(\"./TileState.js\").default} state State.\n * @api\n */\n setState(state) {\n if (this.state !== TileState.ERROR && this.state > state) {\n throw new Error('Tile load sequence violation');\n }\n this.state = state;\n this.changed();\n }\n\n /**\n * Load the image or retry if loading previously failed.\n * Loading is taken care of by the tile queue, and calling this method is\n * only needed for preloading or for reloading in case of an error.\n * @abstract\n * @api\n */\n load() {\n abstract();\n }\n\n /**\n * Get the alpha value for rendering.\n * @param {string} id An id for the renderer.\n * @param {number} time The render frame time.\n * @return {number} A number between 0 and 1.\n */\n getAlpha(id, time) {\n if (!this.transition_) {\n return 1;\n }\n\n let start = this.transitionStarts_[id];\n if (!start) {\n start = time;\n this.transitionStarts_[id] = start;\n } else if (start === -1) {\n return 1;\n }\n\n const delta = time - start + 1000 / 60; // avoid rendering at 0\n if (delta >= this.transition_) {\n return 1;\n }\n return easeIn(delta / this.transition_);\n }\n\n /**\n * Determine if a tile is in an alpha transition. A tile is considered in\n * transition if tile.getAlpha() has not yet been called or has been called\n * and returned 1.\n * @param {string} id An id for the renderer.\n * @return {boolean} The tile is in transition.\n */\n inTransition(id) {\n if (!this.transition_) {\n return false;\n }\n return this.transitionStarts_[id] !== -1;\n }\n\n /**\n * Mark a transition as complete.\n * @param {string} id An id for the renderer.\n */\n endTransition(id) {\n if (this.transition_) {\n this.transitionStarts_[id] = -1;\n }\n }\n}\n\nexport default Tile;\n","/**\n * @module ol/Image\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport ImageState from './ImageState.js';\nimport {CREATE_IMAGE_BITMAP, IMAGE_DECODE} from './has.js';\nimport {listenOnce, unlistenByKey} from './events.js';\nimport {toPromise} from './functions.js';\n\n/**\n * A function that takes an {@link module:ol/Image~ImageWrapper} for the image and a\n * `{string}` for the src as arguments. It is supposed to make it so the\n * underlying image {@link module:ol/Image~ImageWrapper#getImage} is assigned the\n * content specified by the src. If not specified, the default is\n *\n * function(image, src) {\n * image.getImage().src = src;\n * }\n *\n * Providing a custom `imageLoadFunction` can be useful to load images with\n * post requests or - in general - through XHR requests, where the src of the\n * image element would be set to a data URI when the content is loaded.\n *\n * @typedef {function(import(\"./Image.js\").default, string): void} LoadFunction\n * @api\n */\n\n/**\n * @typedef {Object} ImageObject\n * @property {import(\"./extent.js\").Extent} [extent] Extent, if different from the requested one.\n * @property {import(\"./resolution.js\").ResolutionLike} [resolution] Resolution, if different from the requested one.\n * When x and y resolution are different, use the array type (`[xResolution, yResolution]`).\n * @property {number} [pixelRatio] Pixel ratio, if different from the requested one.\n * @property {import('./DataTile.js').ImageLike} image Image.\n */\n\n/**\n * Loader function used for image sources. Receives extent, resolution and pixel ratio as arguments.\n * For images that cover any extent and resolution (static images), the loader function should not accept\n * any arguments. The function returns an {@link import(\"./DataTile.js\").ImageLike image}, an\n * {@link import(\"./Image.js\").ImageObject image object}, or a promise for the same.\n * For loaders that generate images, the promise should not resolve until the image is loaded.\n * If the returned image does not match the extent, resolution or pixel ratio passed to the loader,\n * it has to return an {@link import(\"./Image.js\").ImageObject image object} with the `image` and the\n * correct `extent`, `resolution` and `pixelRatio`.\n *\n * @typedef {function(import(\"./extent.js\").Extent, number, number, (function(HTMLImageElement, string): void)=): import(\"./DataTile.js\").ImageLike|ImageObject|Promise} Loader\n * @api\n */\n\n/**\n * Loader function used for image sources. Receives extent, resolution and pixel ratio as arguments.\n * The function returns a promise for an {@link import(\"./Image.js\").ImageObject image object}.\n *\n * @typedef {function(import(\"./extent.js\").Extent, number, number, (function(HTMLImageElement, string): void)=): import(\"./DataTile.js\").ImageLike|ImageObject|Promise} ImageObjectPromiseLoader\n */\n\nclass ImageWrapper extends EventTarget {\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number|Array|undefined} resolution Resolution. If provided as array, x and y\n * resolution will be assumed.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./ImageState.js\").default|import(\"./Image.js\").Loader} stateOrLoader State.\n */\n constructor(extent, resolution, pixelRatio, stateOrLoader) {\n super();\n\n /**\n * @protected\n * @type {import(\"./extent.js\").Extent}\n */\n this.extent = extent;\n\n /**\n * @private\n * @type {number}\n */\n this.pixelRatio_ = pixelRatio;\n\n /**\n * @protected\n * @type {number|Array|undefined}\n */\n this.resolution = resolution;\n\n /**\n * @protected\n * @type {import(\"./ImageState.js\").default}\n */\n this.state =\n typeof stateOrLoader === 'function' ? ImageState.IDLE : stateOrLoader;\n\n /**\n * @private\n * @type {import('./DataTile.js').ImageLike|null}\n */\n this.image_ = null;\n\n /**\n * @protected\n * @type {import(\"./Image.js\").Loader}\n */\n this.loader = typeof stateOrLoader === 'function' ? stateOrLoader : null;\n }\n\n /**\n * @protected\n */\n changed() {\n this.dispatchEvent(EventType.CHANGE);\n }\n\n /**\n * @return {import(\"./extent.js\").Extent} Extent.\n */\n getExtent() {\n return this.extent;\n }\n\n /**\n * @return {import('./DataTile.js').ImageLike} Image.\n */\n getImage() {\n return this.image_;\n }\n\n /**\n * @return {number} PixelRatio.\n */\n getPixelRatio() {\n return this.pixelRatio_;\n }\n\n /**\n * @return {number|Array} Resolution.\n */\n getResolution() {\n return /** @type {number} */ (this.resolution);\n }\n\n /**\n * @return {import(\"./ImageState.js\").default} State.\n */\n getState() {\n return this.state;\n }\n\n /**\n * Load not yet loaded URI.\n */\n load() {\n if (this.state == ImageState.IDLE) {\n if (this.loader) {\n this.state = ImageState.LOADING;\n this.changed();\n const resolution = this.getResolution();\n const requestResolution = Array.isArray(resolution)\n ? resolution[0]\n : resolution;\n toPromise(() =>\n this.loader(this.getExtent(), requestResolution, this.getPixelRatio())\n )\n .then((image) => {\n if ('image' in image) {\n this.image_ = image.image;\n }\n if ('extent' in image) {\n this.extent = image.extent;\n }\n if ('resolution' in image) {\n this.resolution = image.resolution;\n }\n if ('pixelRatio' in image) {\n this.pixelRatio_ = image.pixelRatio;\n }\n if (\n image instanceof HTMLImageElement ||\n image instanceof ImageBitmap ||\n image instanceof HTMLCanvasElement ||\n image instanceof HTMLVideoElement\n ) {\n this.image_ = image;\n }\n this.state = ImageState.LOADED;\n })\n .catch((error) => {\n this.state = ImageState.ERROR;\n console.error(error); // eslint-disable-line no-console\n })\n .finally(() => this.changed());\n }\n }\n }\n\n /**\n * @param {import('./DataTile.js').ImageLike} image The image.\n */\n setImage(image) {\n this.image_ = image;\n }\n\n /**\n * @param {number|Array} resolution Resolution.\n */\n setResolution(resolution) {\n this.resolution = resolution;\n }\n}\n\n/**\n * @param {import('./DataTile.js').ImageLike} image Image element.\n * @param {function():any} loadHandler Load callback function.\n * @param {function():any} errorHandler Error callback function.\n * @return {function():void} Callback to stop listening.\n */\nexport function listenImage(image, loadHandler, errorHandler) {\n const img = /** @type {HTMLImageElement} */ (image);\n let listening = true;\n let decoding = false;\n let loaded = false;\n\n const listenerKeys = [\n listenOnce(img, EventType.LOAD, function () {\n loaded = true;\n if (!decoding) {\n loadHandler();\n }\n }),\n ];\n\n if (img.src && IMAGE_DECODE) {\n decoding = true;\n img\n .decode()\n .then(function () {\n if (listening) {\n loadHandler();\n }\n })\n .catch(function (error) {\n if (listening) {\n if (loaded) {\n loadHandler();\n } else {\n errorHandler();\n }\n }\n });\n } else {\n listenerKeys.push(listenOnce(img, EventType.ERROR, errorHandler));\n }\n\n return function unlisten() {\n listening = false;\n listenerKeys.forEach(unlistenByKey);\n };\n}\n\n/**\n * Loads an image.\n * @param {HTMLImageElement} image Image, not yet loaded.\n * @param {string} [src] `src` attribute of the image. Optional, not required if already present.\n * @return {Promise} Promise resolving to an `HTMLImageElement`.\n * @api\n */\nexport function load(image, src) {\n return new Promise((resolve, reject) => {\n function handleLoad() {\n unlisten();\n resolve(image);\n }\n function handleError() {\n unlisten();\n reject(new Error('Image load error'));\n }\n function unlisten() {\n image.removeEventListener('load', handleLoad);\n image.removeEventListener('error', handleError);\n }\n image.addEventListener('load', handleLoad);\n image.addEventListener('error', handleError);\n if (src) {\n image.src = src;\n }\n });\n}\n\n/**\n * @param {HTMLImageElement} image Image, not yet loaded.\n * @param {string} [src] `src` attribute of the image. Optional, not required if already present.\n * @return {Promise} Promise resolving to an `HTMLImageElement`.\n */\nexport function decodeFallback(image, src) {\n if (src) {\n image.src = src;\n }\n return IMAGE_DECODE\n ? new Promise((resolve, reject) =>\n image.decode().then(() => resolve(image), reject)\n )\n : load(image);\n}\n\n/**\n * Loads an image and decodes it to an `ImageBitmap` if `createImageBitmap()` is supported. Returns\n * the loaded image otherwise.\n * @param {HTMLImageElement} image Image, not yet loaded.\n * @param {string} [src] `src` attribute of the image. Optional, not required if already present.\n * @return {Promise} Promise resolving to an `ImageBitmap` or an\n * `HTMLImageElement` if `createImageBitmap()` is not supported.\n * @api\n */\nexport function decode(image, src) {\n if (src) {\n image.src = src;\n }\n return IMAGE_DECODE && CREATE_IMAGE_BITMAP\n ? image.decode().then(() => createImageBitmap(image))\n : decodeFallback(image);\n}\n\nexport default ImageWrapper;\n","/**\n * @module ol/ImageTile\n */\nimport Tile from './Tile.js';\nimport TileState from './TileState.js';\nimport {createCanvasContext2D} from './dom.js';\nimport {listenImage} from './Image.js';\n\nclass ImageTile extends Tile {\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {string} src Image source URI.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"./Tile.js\").LoadFunction} tileLoadFunction Tile load function.\n * @param {import(\"./Tile.js\").Options} [options] Tile options.\n */\n constructor(tileCoord, state, src, crossOrigin, tileLoadFunction, options) {\n super(tileCoord, state, options);\n\n /**\n * @private\n * @type {?string}\n */\n this.crossOrigin_ = crossOrigin;\n\n /**\n * Image URI\n *\n * @private\n * @type {string}\n */\n this.src_ = src;\n\n this.key = src;\n\n /**\n * @private\n * @type {HTMLImageElement|HTMLCanvasElement}\n */\n this.image_ = new Image();\n if (crossOrigin !== null) {\n this.image_.crossOrigin = crossOrigin;\n }\n\n /**\n * @private\n * @type {?function():void}\n */\n this.unlisten_ = null;\n\n /**\n * @private\n * @type {import(\"./Tile.js\").LoadFunction}\n */\n this.tileLoadFunction_ = tileLoadFunction;\n }\n\n /**\n * Get the HTML image element for this tile (may be a Canvas, Image, or Video).\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n * @api\n */\n getImage() {\n return this.image_;\n }\n\n /**\n * Sets an HTML image element for this tile (may be a Canvas or preloaded Image).\n * @param {HTMLCanvasElement|HTMLImageElement} element Element.\n */\n setImage(element) {\n this.image_ = element;\n this.state = TileState.LOADED;\n this.unlistenImage_();\n this.changed();\n }\n\n /**\n * Tracks loading or read errors.\n *\n * @private\n */\n handleImageError_() {\n this.state = TileState.ERROR;\n this.unlistenImage_();\n this.image_ = getBlankImage();\n this.changed();\n }\n\n /**\n * Tracks successful image load.\n *\n * @private\n */\n handleImageLoad_() {\n const image = /** @type {HTMLImageElement} */ (this.image_);\n if (image.naturalWidth && image.naturalHeight) {\n this.state = TileState.LOADED;\n } else {\n this.state = TileState.EMPTY;\n }\n this.unlistenImage_();\n this.changed();\n }\n\n /**\n * Load the image or retry if loading previously failed.\n * Loading is taken care of by the tile queue, and calling this method is\n * only needed for preloading or for reloading in case of an error.\n *\n * To retry loading tiles on failed requests, use a custom `tileLoadFunction`\n * that checks for error status codes and reloads only when the status code is\n * 408, 429, 500, 502, 503 and 504, and only when not too many retries have been\n * made already:\n *\n * ```js\n * const retryCodes = [408, 429, 500, 502, 503, 504];\n * const retries = {};\n * source.setTileLoadFunction((tile, src) => {\n * const image = tile.getImage();\n * fetch(src)\n * .then((response) => {\n * if (retryCodes.includes(response.status)) {\n * retries[src] = (retries[src] || 0) + 1;\n * if (retries[src] <= 3) {\n * setTimeout(() => tile.load(), retries[src] * 1000);\n * }\n * return Promise.reject();\n * }\n * return response.blob();\n * })\n * .then((blob) => {\n * const imageUrl = URL.createObjectURL(blob);\n * image.src = imageUrl;\n * setTimeout(() => URL.revokeObjectURL(imageUrl), 5000);\n * })\n * .catch(() => tile.setState(3)); // error\n * });\n * ```\n *\n * @api\n */\n load() {\n if (this.state == TileState.ERROR) {\n this.state = TileState.IDLE;\n this.image_ = new Image();\n if (this.crossOrigin_ !== null) {\n this.image_.crossOrigin = this.crossOrigin_;\n }\n }\n if (this.state == TileState.IDLE) {\n this.state = TileState.LOADING;\n this.changed();\n this.tileLoadFunction_(this, this.src_);\n this.unlisten_ = listenImage(\n this.image_,\n this.handleImageLoad_.bind(this),\n this.handleImageError_.bind(this)\n );\n }\n }\n\n /**\n * Discards event handlers which listen for load completion or errors.\n *\n * @private\n */\n unlistenImage_() {\n if (this.unlisten_) {\n this.unlisten_();\n this.unlisten_ = null;\n }\n }\n}\n\n/**\n * Get a 1-pixel blank image.\n * @return {HTMLCanvasElement} Blank image.\n */\nfunction getBlankImage() {\n const ctx = createCanvasContext2D(1, 1);\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return ctx.canvas;\n}\n\nexport default ImageTile;\n","/**\n * @module ol/reproj/common\n */\n\n/**\n * Default maximum allowed threshold (in pixels) for reprojection\n * triangulation.\n * @type {number}\n */\nexport const ERROR_THRESHOLD = 0.5;\n","/**\n * @module ol/reproj/Triangulation\n */\nimport {\n boundingExtent,\n createEmpty,\n extendCoordinate,\n getArea,\n getBottomLeft,\n getBottomRight,\n getTopLeft,\n getTopRight,\n getWidth,\n intersects,\n} from '../extent.js';\nimport {getTransform} from '../proj.js';\nimport {modulo} from '../math.js';\n\n/**\n * Single triangle; consists of 3 source points and 3 target points.\n * @typedef {Object} Triangle\n * @property {Array} source Source.\n * @property {Array} target Target.\n */\n\n/**\n * Maximum number of subdivision steps during raster reprojection triangulation.\n * Prevents high memory usage and large number of proj4 calls (for certain\n * transformations and areas). At most `2*(2^this)` triangles are created for\n * each triangulated extent (tile/image).\n * @type {number}\n */\nconst MAX_SUBDIVISION = 10;\n\n/**\n * Maximum allowed size of triangle relative to world width. When transforming\n * corners of world extent between certain projections, the resulting\n * triangulation seems to have zero error and no subdivision is performed. If\n * the triangle width is more than this (relative to world width; 0-1),\n * subdivison is forced (up to `MAX_SUBDIVISION`). Default is `0.25`.\n * @type {number}\n */\nconst MAX_TRIANGLE_WIDTH = 0.25;\n\n/**\n * @classdesc\n * Class containing triangulation of the given target extent.\n * Used for determining source data and the reprojection itself.\n */\nclass Triangulation {\n /**\n * @param {import(\"../proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"../proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"../extent.js\").Extent} targetExtent Target extent to triangulate.\n * @param {import(\"../extent.js\").Extent} maxSourceExtent Maximal source extent that can be used.\n * @param {number} errorThreshold Acceptable error (in source units).\n * @param {?number} destinationResolution The (optional) resolution of the destination.\n */\n constructor(\n sourceProj,\n targetProj,\n targetExtent,\n maxSourceExtent,\n errorThreshold,\n destinationResolution\n ) {\n /**\n * @type {import(\"../proj/Projection.js\").default}\n * @private\n */\n this.sourceProj_ = sourceProj;\n\n /**\n * @type {import(\"../proj/Projection.js\").default}\n * @private\n */\n this.targetProj_ = targetProj;\n\n /** @type {!Object} */\n let transformInvCache = {};\n const transformInv = getTransform(this.targetProj_, this.sourceProj_);\n\n /**\n * @param {import(\"../coordinate.js\").Coordinate} c A coordinate.\n * @return {import(\"../coordinate.js\").Coordinate} Transformed coordinate.\n * @private\n */\n this.transformInv_ = function (c) {\n const key = c[0] + '/' + c[1];\n if (!transformInvCache[key]) {\n transformInvCache[key] = transformInv(c);\n }\n return transformInvCache[key];\n };\n\n /**\n * @type {import(\"../extent.js\").Extent}\n * @private\n */\n this.maxSourceExtent_ = maxSourceExtent;\n\n /**\n * @type {number}\n * @private\n */\n this.errorThresholdSquared_ = errorThreshold * errorThreshold;\n\n /**\n * @type {Array}\n * @private\n */\n this.triangles_ = [];\n\n /**\n * Indicates that the triangulation crosses edge of the source projection.\n * @type {boolean}\n * @private\n */\n this.wrapsXInSource_ = false;\n\n /**\n * @type {boolean}\n * @private\n */\n this.canWrapXInSource_ =\n this.sourceProj_.canWrapX() &&\n !!maxSourceExtent &&\n !!this.sourceProj_.getExtent() &&\n getWidth(maxSourceExtent) >= getWidth(this.sourceProj_.getExtent());\n\n /**\n * @type {?number}\n * @private\n */\n this.sourceWorldWidth_ = this.sourceProj_.getExtent()\n ? getWidth(this.sourceProj_.getExtent())\n : null;\n\n /**\n * @type {?number}\n * @private\n */\n this.targetWorldWidth_ = this.targetProj_.getExtent()\n ? getWidth(this.targetProj_.getExtent())\n : null;\n\n const destinationTopLeft = getTopLeft(targetExtent);\n const destinationTopRight = getTopRight(targetExtent);\n const destinationBottomRight = getBottomRight(targetExtent);\n const destinationBottomLeft = getBottomLeft(targetExtent);\n const sourceTopLeft = this.transformInv_(destinationTopLeft);\n const sourceTopRight = this.transformInv_(destinationTopRight);\n const sourceBottomRight = this.transformInv_(destinationBottomRight);\n const sourceBottomLeft = this.transformInv_(destinationBottomLeft);\n\n /*\n * The maxSubdivision controls how many splittings of the target area can\n * be done. The idea here is to do a linear mapping of the target areas\n * but the actual overall reprojection (can be) extremely non-linear. The\n * default value of MAX_SUBDIVISION was chosen based on mapping a 256x256\n * tile size. However this function is also called to remap canvas rendered\n * layers which can be much larger. This calculation increases the maxSubdivision\n * value by the right factor so that each 256x256 pixel area has\n * MAX_SUBDIVISION divisions.\n */\n const maxSubdivision =\n MAX_SUBDIVISION +\n (destinationResolution\n ? Math.max(\n 0,\n Math.ceil(\n Math.log2(\n getArea(targetExtent) /\n (destinationResolution * destinationResolution * 256 * 256)\n )\n )\n )\n : 0);\n\n this.addQuad_(\n destinationTopLeft,\n destinationTopRight,\n destinationBottomRight,\n destinationBottomLeft,\n sourceTopLeft,\n sourceTopRight,\n sourceBottomRight,\n sourceBottomLeft,\n maxSubdivision\n );\n\n if (this.wrapsXInSource_) {\n let leftBound = Infinity;\n this.triangles_.forEach(function (triangle, i, arr) {\n leftBound = Math.min(\n leftBound,\n triangle.source[0][0],\n triangle.source[1][0],\n triangle.source[2][0]\n );\n });\n\n // Shift triangles to be as close to `leftBound` as possible\n // (if the distance is more than `worldWidth / 2` it can be closer.\n this.triangles_.forEach((triangle) => {\n if (\n Math.max(\n triangle.source[0][0],\n triangle.source[1][0],\n triangle.source[2][0]\n ) -\n leftBound >\n this.sourceWorldWidth_ / 2\n ) {\n const newTriangle = [\n [triangle.source[0][0], triangle.source[0][1]],\n [triangle.source[1][0], triangle.source[1][1]],\n [triangle.source[2][0], triangle.source[2][1]],\n ];\n if (newTriangle[0][0] - leftBound > this.sourceWorldWidth_ / 2) {\n newTriangle[0][0] -= this.sourceWorldWidth_;\n }\n if (newTriangle[1][0] - leftBound > this.sourceWorldWidth_ / 2) {\n newTriangle[1][0] -= this.sourceWorldWidth_;\n }\n if (newTriangle[2][0] - leftBound > this.sourceWorldWidth_ / 2) {\n newTriangle[2][0] -= this.sourceWorldWidth_;\n }\n\n // Rarely (if the extent contains both the dateline and prime meridian)\n // the shift can in turn break some triangles.\n // Detect this here and don't shift in such cases.\n const minX = Math.min(\n newTriangle[0][0],\n newTriangle[1][0],\n newTriangle[2][0]\n );\n const maxX = Math.max(\n newTriangle[0][0],\n newTriangle[1][0],\n newTriangle[2][0]\n );\n if (maxX - minX < this.sourceWorldWidth_ / 2) {\n triangle.source = newTriangle;\n }\n }\n });\n }\n\n transformInvCache = {};\n }\n\n /**\n * Adds triangle to the triangulation.\n * @param {import(\"../coordinate.js\").Coordinate} a The target a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b The target b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} c The target c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} aSrc The source a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} bSrc The source b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} cSrc The source c coordinate.\n * @private\n */\n addTriangle_(a, b, c, aSrc, bSrc, cSrc) {\n this.triangles_.push({\n source: [aSrc, bSrc, cSrc],\n target: [a, b, c],\n });\n }\n\n /**\n * Adds quad (points in clock-wise order) to the triangulation\n * (and reprojects the vertices) if valid.\n * Performs quad subdivision if needed to increase precision.\n *\n * @param {import(\"../coordinate.js\").Coordinate} a The target a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b The target b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} c The target c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} d The target d coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} aSrc The source a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} bSrc The source b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} cSrc The source c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} dSrc The source d coordinate.\n * @param {number} maxSubdivision Maximal allowed subdivision of the quad.\n * @private\n */\n addQuad_(a, b, c, d, aSrc, bSrc, cSrc, dSrc, maxSubdivision) {\n const sourceQuadExtent = boundingExtent([aSrc, bSrc, cSrc, dSrc]);\n const sourceCoverageX = this.sourceWorldWidth_\n ? getWidth(sourceQuadExtent) / this.sourceWorldWidth_\n : null;\n const sourceWorldWidth = /** @type {number} */ (this.sourceWorldWidth_);\n\n // when the quad is wrapped in the source projection\n // it covers most of the projection extent, but not fully\n const wrapsX =\n this.sourceProj_.canWrapX() &&\n sourceCoverageX > 0.5 &&\n sourceCoverageX < 1;\n\n let needsSubdivision = false;\n\n if (maxSubdivision > 0) {\n if (this.targetProj_.isGlobal() && this.targetWorldWidth_) {\n const targetQuadExtent = boundingExtent([a, b, c, d]);\n const targetCoverageX =\n getWidth(targetQuadExtent) / this.targetWorldWidth_;\n needsSubdivision =\n targetCoverageX > MAX_TRIANGLE_WIDTH || needsSubdivision;\n }\n if (!wrapsX && this.sourceProj_.isGlobal() && sourceCoverageX) {\n needsSubdivision =\n sourceCoverageX > MAX_TRIANGLE_WIDTH || needsSubdivision;\n }\n }\n\n if (!needsSubdivision && this.maxSourceExtent_) {\n if (\n isFinite(sourceQuadExtent[0]) &&\n isFinite(sourceQuadExtent[1]) &&\n isFinite(sourceQuadExtent[2]) &&\n isFinite(sourceQuadExtent[3])\n ) {\n if (!intersects(sourceQuadExtent, this.maxSourceExtent_)) {\n // whole quad outside source projection extent -> ignore\n return;\n }\n }\n }\n\n let isNotFinite = 0;\n\n if (!needsSubdivision) {\n if (\n !isFinite(aSrc[0]) ||\n !isFinite(aSrc[1]) ||\n !isFinite(bSrc[0]) ||\n !isFinite(bSrc[1]) ||\n !isFinite(cSrc[0]) ||\n !isFinite(cSrc[1]) ||\n !isFinite(dSrc[0]) ||\n !isFinite(dSrc[1])\n ) {\n if (maxSubdivision > 0) {\n needsSubdivision = true;\n } else {\n // It might be the case that only 1 of the points is infinite. In this case\n // we can draw a single triangle with the other three points\n isNotFinite =\n (!isFinite(aSrc[0]) || !isFinite(aSrc[1]) ? 8 : 0) +\n (!isFinite(bSrc[0]) || !isFinite(bSrc[1]) ? 4 : 0) +\n (!isFinite(cSrc[0]) || !isFinite(cSrc[1]) ? 2 : 0) +\n (!isFinite(dSrc[0]) || !isFinite(dSrc[1]) ? 1 : 0);\n if (\n isNotFinite != 1 &&\n isNotFinite != 2 &&\n isNotFinite != 4 &&\n isNotFinite != 8\n ) {\n return;\n }\n }\n }\n }\n\n if (maxSubdivision > 0) {\n if (!needsSubdivision) {\n const center = [(a[0] + c[0]) / 2, (a[1] + c[1]) / 2];\n const centerSrc = this.transformInv_(center);\n\n let dx;\n if (wrapsX) {\n const centerSrcEstimX =\n (modulo(aSrc[0], sourceWorldWidth) +\n modulo(cSrc[0], sourceWorldWidth)) /\n 2;\n dx = centerSrcEstimX - modulo(centerSrc[0], sourceWorldWidth);\n } else {\n dx = (aSrc[0] + cSrc[0]) / 2 - centerSrc[0];\n }\n const dy = (aSrc[1] + cSrc[1]) / 2 - centerSrc[1];\n const centerSrcErrorSquared = dx * dx + dy * dy;\n needsSubdivision = centerSrcErrorSquared > this.errorThresholdSquared_;\n }\n if (needsSubdivision) {\n if (Math.abs(a[0] - c[0]) <= Math.abs(a[1] - c[1])) {\n // split horizontally (top & bottom)\n const bc = [(b[0] + c[0]) / 2, (b[1] + c[1]) / 2];\n const bcSrc = this.transformInv_(bc);\n const da = [(d[0] + a[0]) / 2, (d[1] + a[1]) / 2];\n const daSrc = this.transformInv_(da);\n\n this.addQuad_(\n a,\n b,\n bc,\n da,\n aSrc,\n bSrc,\n bcSrc,\n daSrc,\n maxSubdivision - 1\n );\n this.addQuad_(\n da,\n bc,\n c,\n d,\n daSrc,\n bcSrc,\n cSrc,\n dSrc,\n maxSubdivision - 1\n );\n } else {\n // split vertically (left & right)\n const ab = [(a[0] + b[0]) / 2, (a[1] + b[1]) / 2];\n const abSrc = this.transformInv_(ab);\n const cd = [(c[0] + d[0]) / 2, (c[1] + d[1]) / 2];\n const cdSrc = this.transformInv_(cd);\n\n this.addQuad_(\n a,\n ab,\n cd,\n d,\n aSrc,\n abSrc,\n cdSrc,\n dSrc,\n maxSubdivision - 1\n );\n this.addQuad_(\n ab,\n b,\n c,\n cd,\n abSrc,\n bSrc,\n cSrc,\n cdSrc,\n maxSubdivision - 1\n );\n }\n return;\n }\n }\n\n if (wrapsX) {\n if (!this.canWrapXInSource_) {\n return;\n }\n this.wrapsXInSource_ = true;\n }\n\n // Exactly zero or one of *Src is not finite\n // The triangles must have the diagonal line as the first side\n // This is to allow easy code in reproj.s to make it straight for broken\n // browsers that can't handle diagonal clipping\n if ((isNotFinite & 0xb) == 0) {\n this.addTriangle_(a, c, d, aSrc, cSrc, dSrc);\n }\n if ((isNotFinite & 0xe) == 0) {\n this.addTriangle_(a, c, b, aSrc, cSrc, bSrc);\n }\n if (isNotFinite) {\n // Try the other two triangles\n if ((isNotFinite & 0xd) == 0) {\n this.addTriangle_(b, d, a, bSrc, dSrc, aSrc);\n }\n if ((isNotFinite & 0x7) == 0) {\n this.addTriangle_(b, d, c, bSrc, dSrc, cSrc);\n }\n }\n }\n\n /**\n * Calculates extent of the `source` coordinates from all the triangles.\n *\n * @return {import(\"../extent.js\").Extent} Calculated extent.\n */\n calculateSourceExtent() {\n const extent = createEmpty();\n\n this.triangles_.forEach(function (triangle, i, arr) {\n const src = triangle.source;\n extendCoordinate(extent, src[0]);\n extendCoordinate(extent, src[1]);\n extendCoordinate(extent, src[2]);\n });\n\n return extent;\n }\n\n /**\n * @return {Array} Array of the calculated triangles.\n */\n getTriangles() {\n return this.triangles_;\n }\n}\n\nexport default Triangulation;\n","/**\n * @module ol/reproj\n */\nimport {\n containsCoordinate,\n createEmpty,\n extend,\n forEachCorner,\n getCenter,\n getHeight,\n getTopLeft,\n getWidth,\n} from './extent.js';\nimport {createCanvasContext2D, releaseCanvas} from './dom.js';\nimport {getPointResolution, transform} from './proj.js';\nimport {solveLinearSystem} from './math.js';\n\nlet brokenDiagonalRendering_;\n\n/**\n * @type {Array}\n */\nexport const canvasPool = [];\n\n/**\n * This draws a small triangle into a canvas by setting the triangle as the clip region\n * and then drawing a (too large) rectangle\n *\n * @param {CanvasRenderingContext2D} ctx The context in which to draw the triangle\n * @param {number} u1 The x-coordinate of the second point. The first point is 0,0.\n * @param {number} v1 The y-coordinate of the second point.\n * @param {number} u2 The x-coordinate of the third point.\n * @param {number} v2 The y-coordinate of the third point.\n */\nfunction drawTestTriangle(ctx, u1, v1, u2, v2) {\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(u1, v1);\n ctx.lineTo(u2, v2);\n ctx.closePath();\n ctx.save();\n ctx.clip();\n ctx.fillRect(0, 0, Math.max(u1, u2) + 1, Math.max(v1, v2));\n ctx.restore();\n}\n\n/**\n * Given the data from getImageData, see if the right values appear at the provided offset.\n * Returns true if either the color or transparency is off\n *\n * @param {Uint8ClampedArray} data The data returned from getImageData\n * @param {number} offset The pixel offset from the start of data.\n * @return {boolean} true if the diagonal rendering is broken\n */\nfunction verifyBrokenDiagonalRendering(data, offset) {\n // the values ought to be close to the rgba(210, 0, 0, 0.75)\n return (\n Math.abs(data[offset * 4] - 210) > 2 ||\n Math.abs(data[offset * 4 + 3] - 0.75 * 255) > 2\n );\n}\n\n/**\n * Determines if the current browser configuration can render triangular clip regions correctly.\n * This value is cached so the function is only expensive the first time called.\n * Firefox on Windows (as of now) does not if HWA is enabled. See https://bugzilla.mozilla.org/show_bug.cgi?id=1606976\n * Chrome works, and everything seems to work on OSX and Android. This function caches the\n * result. I suppose that it is conceivably possible that a browser might flip modes while the app is\n * running, but lets hope not.\n *\n * @return {boolean} true if the Diagonal Rendering is broken.\n */\nfunction isBrokenDiagonalRendering() {\n if (brokenDiagonalRendering_ === undefined) {\n const ctx = createCanvasContext2D(6, 6, canvasPool);\n ctx.globalCompositeOperation = 'lighter';\n ctx.fillStyle = 'rgba(210, 0, 0, 0.75)';\n drawTestTriangle(ctx, 4, 5, 4, 0);\n drawTestTriangle(ctx, 4, 5, 0, 5);\n const data = ctx.getImageData(0, 0, 3, 3).data;\n brokenDiagonalRendering_ =\n verifyBrokenDiagonalRendering(data, 0) ||\n verifyBrokenDiagonalRendering(data, 4) ||\n verifyBrokenDiagonalRendering(data, 8);\n releaseCanvas(ctx);\n canvasPool.push(ctx.canvas);\n }\n\n return brokenDiagonalRendering_;\n}\n\n/**\n * Calculates ideal resolution to use from the source in order to achieve\n * pixel mapping as close as possible to 1:1 during reprojection.\n * The resolution is calculated regardless of what resolutions\n * are actually available in the dataset (TileGrid, Image, ...).\n *\n * @param {import(\"./proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"./proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"./coordinate.js\").Coordinate} targetCenter Target center.\n * @param {number} targetResolution Target resolution.\n * @return {number} The best resolution to use. Can be +-Infinity, NaN or 0.\n */\nexport function calculateSourceResolution(\n sourceProj,\n targetProj,\n targetCenter,\n targetResolution\n) {\n const sourceCenter = transform(targetCenter, targetProj, sourceProj);\n\n // calculate the ideal resolution of the source data\n let sourceResolution = getPointResolution(\n targetProj,\n targetResolution,\n targetCenter\n );\n\n const targetMetersPerUnit = targetProj.getMetersPerUnit();\n if (targetMetersPerUnit !== undefined) {\n sourceResolution *= targetMetersPerUnit;\n }\n const sourceMetersPerUnit = sourceProj.getMetersPerUnit();\n if (sourceMetersPerUnit !== undefined) {\n sourceResolution /= sourceMetersPerUnit;\n }\n\n // Based on the projection properties, the point resolution at the specified\n // coordinates may be slightly different. We need to reverse-compensate this\n // in order to achieve optimal results.\n\n const sourceExtent = sourceProj.getExtent();\n if (!sourceExtent || containsCoordinate(sourceExtent, sourceCenter)) {\n const compensationFactor =\n getPointResolution(sourceProj, sourceResolution, sourceCenter) /\n sourceResolution;\n if (isFinite(compensationFactor) && compensationFactor > 0) {\n sourceResolution /= compensationFactor;\n }\n }\n\n return sourceResolution;\n}\n\n/**\n * Calculates ideal resolution to use from the source in order to achieve\n * pixel mapping as close as possible to 1:1 during reprojection.\n * The resolution is calculated regardless of what resolutions\n * are actually available in the dataset (TileGrid, Image, ...).\n *\n * @param {import(\"./proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"./proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"./extent.js\").Extent} targetExtent Target extent\n * @param {number} targetResolution Target resolution.\n * @return {number} The best resolution to use. Can be +-Infinity, NaN or 0.\n */\nexport function calculateSourceExtentResolution(\n sourceProj,\n targetProj,\n targetExtent,\n targetResolution\n) {\n const targetCenter = getCenter(targetExtent);\n let sourceResolution = calculateSourceResolution(\n sourceProj,\n targetProj,\n targetCenter,\n targetResolution\n );\n\n if (!isFinite(sourceResolution) || sourceResolution <= 0) {\n forEachCorner(targetExtent, function (corner) {\n sourceResolution = calculateSourceResolution(\n sourceProj,\n targetProj,\n corner,\n targetResolution\n );\n return isFinite(sourceResolution) && sourceResolution > 0;\n });\n }\n\n return sourceResolution;\n}\n\n/**\n * @typedef {Object} ImageExtent\n * @property {import(\"./extent.js\").Extent} extent Extent.\n * @property {import('./DataTile.js').ImageLike} image Image.\n */\n\n/**\n * Renders the source data into new canvas based on the triangulation.\n *\n * @param {number} width Width of the canvas.\n * @param {number} height Height of the canvas.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} sourceResolution Source resolution.\n * @param {import(\"./extent.js\").Extent} sourceExtent Extent of the data source.\n * @param {number} targetResolution Target resolution.\n * @param {import(\"./extent.js\").Extent} targetExtent Target extent.\n * @param {import(\"./reproj/Triangulation.js\").default} triangulation Calculated triangulation.\n * @param {Array} sources Array of sources.\n * @param {number} gutter Gutter of the sources.\n * @param {boolean} [renderEdges] Render reprojection edges.\n * @param {boolean} [interpolate] Use linear interpolation when resampling.\n * @return {HTMLCanvasElement} Canvas with reprojected data.\n */\nexport function render(\n width,\n height,\n pixelRatio,\n sourceResolution,\n sourceExtent,\n targetResolution,\n targetExtent,\n triangulation,\n sources,\n gutter,\n renderEdges,\n interpolate\n) {\n const context = createCanvasContext2D(\n Math.round(pixelRatio * width),\n Math.round(pixelRatio * height),\n canvasPool\n );\n\n if (!interpolate) {\n context.imageSmoothingEnabled = false;\n }\n\n if (sources.length === 0) {\n return context.canvas;\n }\n\n context.scale(pixelRatio, pixelRatio);\n\n function pixelRound(value) {\n return Math.round(value * pixelRatio) / pixelRatio;\n }\n\n context.globalCompositeOperation = 'lighter';\n\n const sourceDataExtent = createEmpty();\n sources.forEach(function (src, i, arr) {\n extend(sourceDataExtent, src.extent);\n });\n\n const canvasWidthInUnits = getWidth(sourceDataExtent);\n const canvasHeightInUnits = getHeight(sourceDataExtent);\n const stitchContext = createCanvasContext2D(\n Math.round((pixelRatio * canvasWidthInUnits) / sourceResolution),\n Math.round((pixelRatio * canvasHeightInUnits) / sourceResolution),\n canvasPool\n );\n\n if (!interpolate) {\n stitchContext.imageSmoothingEnabled = false;\n }\n\n const stitchScale = pixelRatio / sourceResolution;\n\n sources.forEach(function (src, i, arr) {\n const xPos = src.extent[0] - sourceDataExtent[0];\n const yPos = -(src.extent[3] - sourceDataExtent[3]);\n const srcWidth = getWidth(src.extent);\n const srcHeight = getHeight(src.extent);\n\n // This test should never fail -- but it does. Need to find a fix the upstream condition\n if (src.image.width > 0 && src.image.height > 0) {\n stitchContext.drawImage(\n src.image,\n gutter,\n gutter,\n src.image.width - 2 * gutter,\n src.image.height - 2 * gutter,\n xPos * stitchScale,\n yPos * stitchScale,\n srcWidth * stitchScale,\n srcHeight * stitchScale\n );\n }\n });\n\n const targetTopLeft = getTopLeft(targetExtent);\n\n triangulation.getTriangles().forEach(function (triangle, i, arr) {\n /* Calculate affine transform (src -> dst)\n * Resulting matrix can be used to transform coordinate\n * from `sourceProjection` to destination pixels.\n *\n * To optimize number of context calls and increase numerical stability,\n * we also do the following operations:\n * trans(-topLeftExtentCorner), scale(1 / targetResolution), scale(1, -1)\n * here before solving the linear system so [ui, vi] are pixel coordinates.\n *\n * Src points: xi, yi\n * Dst points: ui, vi\n * Affine coefficients: aij\n *\n * | x0 y0 1 0 0 0 | |a00| |u0|\n * | x1 y1 1 0 0 0 | |a01| |u1|\n * | x2 y2 1 0 0 0 | x |a02| = |u2|\n * | 0 0 0 x0 y0 1 | |a10| |v0|\n * | 0 0 0 x1 y1 1 | |a11| |v1|\n * | 0 0 0 x2 y2 1 | |a12| |v2|\n */\n const source = triangle.source;\n const target = triangle.target;\n let x0 = source[0][0],\n y0 = source[0][1];\n let x1 = source[1][0],\n y1 = source[1][1];\n let x2 = source[2][0],\n y2 = source[2][1];\n // Make sure that everything is on pixel boundaries\n const u0 = pixelRound((target[0][0] - targetTopLeft[0]) / targetResolution);\n const v0 = pixelRound(\n -(target[0][1] - targetTopLeft[1]) / targetResolution\n );\n const u1 = pixelRound((target[1][0] - targetTopLeft[0]) / targetResolution);\n const v1 = pixelRound(\n -(target[1][1] - targetTopLeft[1]) / targetResolution\n );\n const u2 = pixelRound((target[2][0] - targetTopLeft[0]) / targetResolution);\n const v2 = pixelRound(\n -(target[2][1] - targetTopLeft[1]) / targetResolution\n );\n\n // Shift all the source points to improve numerical stability\n // of all the subsequent calculations. The [x0, y0] is used here.\n // This is also used to simplify the linear system.\n const sourceNumericalShiftX = x0;\n const sourceNumericalShiftY = y0;\n x0 = 0;\n y0 = 0;\n x1 -= sourceNumericalShiftX;\n y1 -= sourceNumericalShiftY;\n x2 -= sourceNumericalShiftX;\n y2 -= sourceNumericalShiftY;\n\n const augmentedMatrix = [\n [x1, y1, 0, 0, u1 - u0],\n [x2, y2, 0, 0, u2 - u0],\n [0, 0, x1, y1, v1 - v0],\n [0, 0, x2, y2, v2 - v0],\n ];\n const affineCoefs = solveLinearSystem(augmentedMatrix);\n if (!affineCoefs) {\n return;\n }\n\n context.save();\n context.beginPath();\n\n if (isBrokenDiagonalRendering() || !interpolate) {\n // Make sure that all lines are horizontal or vertical\n context.moveTo(u1, v1);\n // This is the diagonal line. Do it in 4 steps\n const steps = 4;\n const ud = u0 - u1;\n const vd = v0 - v1;\n for (let step = 0; step < steps; step++) {\n // Go horizontally\n context.lineTo(\n u1 + pixelRound(((step + 1) * ud) / steps),\n v1 + pixelRound((step * vd) / (steps - 1))\n );\n // Go vertically\n if (step != steps - 1) {\n context.lineTo(\n u1 + pixelRound(((step + 1) * ud) / steps),\n v1 + pixelRound(((step + 1) * vd) / (steps - 1))\n );\n }\n }\n // We are almost at u0r, v0r\n context.lineTo(u2, v2);\n } else {\n context.moveTo(u1, v1);\n context.lineTo(u0, v0);\n context.lineTo(u2, v2);\n }\n\n context.clip();\n\n context.transform(\n affineCoefs[0],\n affineCoefs[2],\n affineCoefs[1],\n affineCoefs[3],\n u0,\n v0\n );\n\n context.translate(\n sourceDataExtent[0] - sourceNumericalShiftX,\n sourceDataExtent[3] - sourceNumericalShiftY\n );\n\n context.scale(\n sourceResolution / pixelRatio,\n -sourceResolution / pixelRatio\n );\n\n context.drawImage(stitchContext.canvas, 0, 0);\n context.restore();\n });\n\n releaseCanvas(stitchContext);\n canvasPool.push(stitchContext.canvas);\n\n if (renderEdges) {\n context.save();\n\n context.globalCompositeOperation = 'source-over';\n context.strokeStyle = 'black';\n context.lineWidth = 1;\n\n triangulation.getTriangles().forEach(function (triangle, i, arr) {\n const target = triangle.target;\n const u0 = (target[0][0] - targetTopLeft[0]) / targetResolution;\n const v0 = -(target[0][1] - targetTopLeft[1]) / targetResolution;\n const u1 = (target[1][0] - targetTopLeft[0]) / targetResolution;\n const v1 = -(target[1][1] - targetTopLeft[1]) / targetResolution;\n const u2 = (target[2][0] - targetTopLeft[0]) / targetResolution;\n const v2 = -(target[2][1] - targetTopLeft[1]) / targetResolution;\n\n context.beginPath();\n context.moveTo(u1, v1);\n context.lineTo(u0, v0);\n context.lineTo(u2, v2);\n context.closePath();\n context.stroke();\n });\n\n context.restore();\n }\n return context.canvas;\n}\n","/**\n * @module ol/reproj/Tile\n */\nimport {ERROR_THRESHOLD} from './common.js';\n\nimport EventType from '../events/EventType.js';\nimport Tile from '../Tile.js';\nimport TileState from '../TileState.js';\nimport Triangulation from './Triangulation.js';\nimport {\n calculateSourceExtentResolution,\n canvasPool,\n render as renderReprojected,\n} from '../reproj.js';\nimport {clamp} from '../math.js';\nimport {getArea, getIntersection} from '../extent.js';\nimport {listen, unlistenByKey} from '../events.js';\nimport {releaseCanvas} from '../dom.js';\n\n/**\n * @typedef {function(number, number, number, number) : (import(\"../ImageTile.js\").default)} FunctionType\n */\n\n/**\n * @classdesc\n * Class encapsulating single reprojected tile.\n * See {@link module:ol/source/TileImage~TileImage}.\n *\n */\nclass ReprojTile extends Tile {\n /**\n * @param {import(\"../proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} sourceTileGrid Source tile grid.\n * @param {import(\"../proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} targetTileGrid Target tile grid.\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Coordinate of the tile.\n * @param {import(\"../tilecoord.js\").TileCoord} wrappedTileCoord Coordinate of the tile wrapped in X.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} gutter Gutter of the source tiles.\n * @param {FunctionType} getTileFunction\n * Function returning source tiles (z, x, y, pixelRatio).\n * @param {number} [errorThreshold] Acceptable reprojection error (in px).\n * @param {boolean} [renderEdges] Render reprojection edges.\n * @param {boolean} [interpolate] Use linear interpolation when resampling.\n */\n constructor(\n sourceProj,\n sourceTileGrid,\n targetProj,\n targetTileGrid,\n tileCoord,\n wrappedTileCoord,\n pixelRatio,\n gutter,\n getTileFunction,\n errorThreshold,\n renderEdges,\n interpolate\n ) {\n super(tileCoord, TileState.IDLE, {interpolate: !!interpolate});\n\n /**\n * @private\n * @type {boolean}\n */\n this.renderEdges_ = renderEdges !== undefined ? renderEdges : false;\n\n /**\n * @private\n * @type {number}\n */\n this.pixelRatio_ = pixelRatio;\n\n /**\n * @private\n * @type {number}\n */\n this.gutter_ = gutter;\n\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n this.canvas_ = null;\n\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.sourceTileGrid_ = sourceTileGrid;\n\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.targetTileGrid_ = targetTileGrid;\n\n /**\n * @private\n * @type {import(\"../tilecoord.js\").TileCoord}\n */\n this.wrappedTileCoord_ = wrappedTileCoord ? wrappedTileCoord : tileCoord;\n\n /**\n * @private\n * @type {!Array}\n */\n this.sourceTiles_ = [];\n\n /**\n * @private\n * @type {?Array}\n */\n this.sourcesListenerKeys_ = null;\n\n /**\n * @private\n * @type {number}\n */\n this.sourceZ_ = 0;\n\n const targetExtent = targetTileGrid.getTileCoordExtent(\n this.wrappedTileCoord_\n );\n const maxTargetExtent = this.targetTileGrid_.getExtent();\n let maxSourceExtent = this.sourceTileGrid_.getExtent();\n\n const limitedTargetExtent = maxTargetExtent\n ? getIntersection(targetExtent, maxTargetExtent)\n : targetExtent;\n\n if (getArea(limitedTargetExtent) === 0) {\n // Tile is completely outside range -> EMPTY\n // TODO: is it actually correct that the source even creates the tile ?\n this.state = TileState.EMPTY;\n return;\n }\n\n const sourceProjExtent = sourceProj.getExtent();\n if (sourceProjExtent) {\n if (!maxSourceExtent) {\n maxSourceExtent = sourceProjExtent;\n } else {\n maxSourceExtent = getIntersection(maxSourceExtent, sourceProjExtent);\n }\n }\n\n const targetResolution = targetTileGrid.getResolution(\n this.wrappedTileCoord_[0]\n );\n\n const sourceResolution = calculateSourceExtentResolution(\n sourceProj,\n targetProj,\n limitedTargetExtent,\n targetResolution\n );\n\n if (!isFinite(sourceResolution) || sourceResolution <= 0) {\n // invalid sourceResolution -> EMPTY\n // probably edges of the projections when no extent is defined\n this.state = TileState.EMPTY;\n return;\n }\n\n const errorThresholdInPixels =\n errorThreshold !== undefined ? errorThreshold : ERROR_THRESHOLD;\n\n /**\n * @private\n * @type {!import(\"./Triangulation.js\").default}\n */\n this.triangulation_ = new Triangulation(\n sourceProj,\n targetProj,\n limitedTargetExtent,\n maxSourceExtent,\n sourceResolution * errorThresholdInPixels,\n targetResolution\n );\n\n if (this.triangulation_.getTriangles().length === 0) {\n // no valid triangles -> EMPTY\n this.state = TileState.EMPTY;\n return;\n }\n\n this.sourceZ_ = sourceTileGrid.getZForResolution(sourceResolution);\n let sourceExtent = this.triangulation_.calculateSourceExtent();\n\n if (maxSourceExtent) {\n if (sourceProj.canWrapX()) {\n sourceExtent[1] = clamp(\n sourceExtent[1],\n maxSourceExtent[1],\n maxSourceExtent[3]\n );\n sourceExtent[3] = clamp(\n sourceExtent[3],\n maxSourceExtent[1],\n maxSourceExtent[3]\n );\n } else {\n sourceExtent = getIntersection(sourceExtent, maxSourceExtent);\n }\n }\n\n if (!getArea(sourceExtent)) {\n this.state = TileState.EMPTY;\n } else {\n const sourceRange = sourceTileGrid.getTileRangeForExtentAndZ(\n sourceExtent,\n this.sourceZ_\n );\n\n for (let srcX = sourceRange.minX; srcX <= sourceRange.maxX; srcX++) {\n for (let srcY = sourceRange.minY; srcY <= sourceRange.maxY; srcY++) {\n const tile = getTileFunction(this.sourceZ_, srcX, srcY, pixelRatio);\n if (tile) {\n this.sourceTiles_.push(tile);\n }\n }\n }\n\n if (this.sourceTiles_.length === 0) {\n this.state = TileState.EMPTY;\n }\n }\n }\n\n /**\n * Get the HTML Canvas element for this tile.\n * @return {HTMLCanvasElement} Canvas.\n */\n getImage() {\n return this.canvas_;\n }\n\n /**\n * @private\n */\n reproject_() {\n const sources = [];\n this.sourceTiles_.forEach((tile) => {\n if (tile && tile.getState() == TileState.LOADED) {\n sources.push({\n extent: this.sourceTileGrid_.getTileCoordExtent(tile.tileCoord),\n image: tile.getImage(),\n });\n }\n });\n this.sourceTiles_.length = 0;\n\n if (sources.length === 0) {\n this.state = TileState.ERROR;\n } else {\n const z = this.wrappedTileCoord_[0];\n const size = this.targetTileGrid_.getTileSize(z);\n const width = typeof size === 'number' ? size : size[0];\n const height = typeof size === 'number' ? size : size[1];\n const targetResolution = this.targetTileGrid_.getResolution(z);\n const sourceResolution = this.sourceTileGrid_.getResolution(\n this.sourceZ_\n );\n\n const targetExtent = this.targetTileGrid_.getTileCoordExtent(\n this.wrappedTileCoord_\n );\n\n this.canvas_ = renderReprojected(\n width,\n height,\n this.pixelRatio_,\n sourceResolution,\n this.sourceTileGrid_.getExtent(),\n targetResolution,\n targetExtent,\n this.triangulation_,\n sources,\n this.gutter_,\n this.renderEdges_,\n this.interpolate\n );\n\n this.state = TileState.LOADED;\n }\n this.changed();\n }\n\n /**\n * Load not yet loaded URI.\n */\n load() {\n if (this.state == TileState.IDLE) {\n this.state = TileState.LOADING;\n this.changed();\n\n let leftToLoad = 0;\n\n this.sourcesListenerKeys_ = [];\n this.sourceTiles_.forEach((tile) => {\n const state = tile.getState();\n if (state == TileState.IDLE || state == TileState.LOADING) {\n leftToLoad++;\n\n const sourceListenKey = listen(\n tile,\n EventType.CHANGE,\n function (e) {\n const state = tile.getState();\n if (\n state == TileState.LOADED ||\n state == TileState.ERROR ||\n state == TileState.EMPTY\n ) {\n unlistenByKey(sourceListenKey);\n leftToLoad--;\n if (leftToLoad === 0) {\n this.unlistenSources_();\n this.reproject_();\n }\n }\n },\n this\n );\n this.sourcesListenerKeys_.push(sourceListenKey);\n }\n });\n\n if (leftToLoad === 0) {\n setTimeout(this.reproject_.bind(this), 0);\n } else {\n this.sourceTiles_.forEach(function (tile, i, arr) {\n const state = tile.getState();\n if (state == TileState.IDLE) {\n tile.load();\n }\n });\n }\n }\n }\n\n /**\n * @private\n */\n unlistenSources_() {\n this.sourcesListenerKeys_.forEach(unlistenByKey);\n this.sourcesListenerKeys_ = null;\n }\n\n /**\n * Remove from the cache due to expiry\n */\n release() {\n if (this.canvas_) {\n releaseCanvas(this.canvas_.getContext('2d'));\n canvasPool.push(this.canvas_);\n this.canvas_ = null;\n }\n super.release();\n }\n}\n\nexport default ReprojTile;\n","/**\n * @module ol/TileRange\n */\n\n/**\n * A representation of a contiguous block of tiles. A tile range is specified\n * by its min/max tile coordinates and is inclusive of coordinates.\n */\nclass TileRange {\n /**\n * @param {number} minX Minimum X.\n * @param {number} maxX Maximum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxY Maximum Y.\n */\n constructor(minX, maxX, minY, maxY) {\n /**\n * @type {number}\n */\n this.minX = minX;\n\n /**\n * @type {number}\n */\n this.maxX = maxX;\n\n /**\n * @type {number}\n */\n this.minY = minY;\n\n /**\n * @type {number}\n */\n this.maxY = maxY;\n }\n\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @return {boolean} Contains tile coordinate.\n */\n contains(tileCoord) {\n return this.containsXY(tileCoord[1], tileCoord[2]);\n }\n\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Contains.\n */\n containsTileRange(tileRange) {\n return (\n this.minX <= tileRange.minX &&\n tileRange.maxX <= this.maxX &&\n this.minY <= tileRange.minY &&\n tileRange.maxY <= this.maxY\n );\n }\n\n /**\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @return {boolean} Contains coordinate.\n */\n containsXY(x, y) {\n return this.minX <= x && x <= this.maxX && this.minY <= y && y <= this.maxY;\n }\n\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Equals.\n */\n equals(tileRange) {\n return (\n this.minX == tileRange.minX &&\n this.minY == tileRange.minY &&\n this.maxX == tileRange.maxX &&\n this.maxY == tileRange.maxY\n );\n }\n\n /**\n * @param {TileRange} tileRange Tile range.\n */\n extend(tileRange) {\n if (tileRange.minX < this.minX) {\n this.minX = tileRange.minX;\n }\n if (tileRange.maxX > this.maxX) {\n this.maxX = tileRange.maxX;\n }\n if (tileRange.minY < this.minY) {\n this.minY = tileRange.minY;\n }\n if (tileRange.maxY > this.maxY) {\n this.maxY = tileRange.maxY;\n }\n }\n\n /**\n * @return {number} Height.\n */\n getHeight() {\n return this.maxY - this.minY + 1;\n }\n\n /**\n * @return {import(\"./size.js\").Size} Size.\n */\n getSize() {\n return [this.getWidth(), this.getHeight()];\n }\n\n /**\n * @return {number} Width.\n */\n getWidth() {\n return this.maxX - this.minX + 1;\n }\n\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Intersects.\n */\n intersects(tileRange) {\n return (\n this.minX <= tileRange.maxX &&\n this.maxX >= tileRange.minX &&\n this.minY <= tileRange.maxY &&\n this.maxY >= tileRange.minY\n );\n }\n}\n\n/**\n * @param {number} minX Minimum X.\n * @param {number} maxX Maximum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxY Maximum Y.\n * @param {TileRange} [tileRange] TileRange.\n * @return {TileRange} Tile range.\n */\nexport function createOrUpdate(minX, maxX, minY, maxY, tileRange) {\n if (tileRange !== undefined) {\n tileRange.minX = minX;\n tileRange.maxX = maxX;\n tileRange.minY = minY;\n tileRange.maxY = maxY;\n return tileRange;\n }\n return new TileRange(minX, maxX, minY, maxY);\n}\n\nexport default TileRange;\n","/**\n * @module ol/size\n */\n\n/**\n * An array of numbers representing a size: `[width, height]`.\n * @typedef {Array} Size\n * @api\n */\n\n/**\n * Returns a buffered size.\n * @param {Size} size Size.\n * @param {number} num The amount by which to buffer.\n * @param {Size} [dest] Optional reusable size array.\n * @return {Size} The buffered size.\n */\nexport function buffer(size, num, dest) {\n if (dest === undefined) {\n dest = [0, 0];\n }\n dest[0] = size[0] + 2 * num;\n dest[1] = size[1] + 2 * num;\n return dest;\n}\n\n/**\n * Determines if a size has a positive area.\n * @param {Size} size The size to test.\n * @return {boolean} The size has a positive area.\n */\nexport function hasArea(size) {\n return size[0] > 0 && size[1] > 0;\n}\n\n/**\n * Returns a size scaled by a ratio. The result will be an array of integers.\n * @param {Size} size Size.\n * @param {number} ratio Ratio.\n * @param {Size} [dest] Optional reusable size array.\n * @return {Size} The scaled size.\n */\nexport function scale(size, ratio, dest) {\n if (dest === undefined) {\n dest = [0, 0];\n }\n dest[0] = (size[0] * ratio + 0.5) | 0;\n dest[1] = (size[1] * ratio + 0.5) | 0;\n return dest;\n}\n\n/**\n * Returns an `Size` array for the passed in number (meaning: square) or\n * `Size` array.\n * (meaning: non-square),\n * @param {number|Size} size Width and height.\n * @param {Size} [dest] Optional reusable size array.\n * @return {Size} Size.\n * @api\n */\nexport function toSize(size, dest) {\n if (Array.isArray(size)) {\n return size;\n }\n if (dest === undefined) {\n dest = [size, size];\n } else {\n dest[0] = size;\n dest[1] = size;\n }\n return dest;\n}\n","/**\n * @module ol/renderer/canvas/TileLayer\n */\nimport CanvasLayerRenderer from './Layer.js';\nimport ImageTile from '../../ImageTile.js';\nimport ReprojTile from '../../reproj/Tile.js';\nimport TileRange from '../../TileRange.js';\nimport TileState from '../../TileState.js';\nimport {\n apply as applyTransform,\n compose as composeTransform,\n makeInverse,\n toString as toTransformString,\n} from '../../transform.js';\nimport {ascending} from '../../array.js';\nimport {\n containsCoordinate,\n createEmpty,\n equals,\n getHeight,\n getIntersection,\n getRotatedViewport,\n getTopLeft,\n getWidth,\n intersects,\n} from '../../extent.js';\nimport {fromUserExtent} from '../../proj.js';\nimport {getUid} from '../../util.js';\nimport {toSize} from '../../size.js';\n\n/**\n * @classdesc\n * Canvas renderer for tile layers.\n * @api\n * @template {import(\"../../layer/Tile.js\").default|import(\"../../layer/VectorTile.js\").default} [LayerType=import(\"../../layer/Tile.js\").default|import(\"../../layer/VectorTile.js\").default]\n * @extends {CanvasLayerRenderer}\n */\nclass CanvasTileLayerRenderer extends CanvasLayerRenderer {\n /**\n * @param {LayerType} tileLayer Tile layer.\n */\n constructor(tileLayer) {\n super(tileLayer);\n\n /**\n * Rendered extent has changed since the previous `renderFrame()` call\n * @type {boolean}\n */\n this.extentChanged = true;\n\n /**\n * @private\n * @type {?import(\"../../extent.js\").Extent}\n */\n this.renderedExtent_ = null;\n\n /**\n * @protected\n * @type {number}\n */\n this.renderedPixelRatio;\n\n /**\n * @protected\n * @type {import(\"../../proj/Projection.js\").default}\n */\n this.renderedProjection = null;\n\n /**\n * @protected\n * @type {number}\n */\n this.renderedRevision;\n\n /**\n * @protected\n * @type {!Array}\n */\n this.renderedTiles = [];\n\n /**\n * @private\n * @type {boolean}\n */\n this.newTiles_ = false;\n\n /**\n * @protected\n * @type {import(\"../../extent.js\").Extent}\n */\n this.tmpExtent = createEmpty();\n\n /**\n * @private\n * @type {import(\"../../TileRange.js\").default}\n */\n this.tmpTileRange_ = new TileRange(0, 0, 0, 0);\n }\n\n /**\n * @protected\n * @param {import(\"../../Tile.js\").default} tile Tile.\n * @return {boolean} Tile is drawable.\n */\n isDrawableTile(tile) {\n const tileLayer = this.getLayer();\n const tileState = tile.getState();\n const useInterimTilesOnError = tileLayer.getUseInterimTilesOnError();\n return (\n tileState == TileState.LOADED ||\n tileState == TileState.EMPTY ||\n (tileState == TileState.ERROR && !useInterimTilesOnError)\n );\n }\n\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @return {!import(\"../../Tile.js\").default} Tile.\n */\n getTile(z, x, y, frameState) {\n const pixelRatio = frameState.pixelRatio;\n const projection = frameState.viewState.projection;\n const tileLayer = this.getLayer();\n const tileSource = tileLayer.getSource();\n let tile = tileSource.getTile(z, x, y, pixelRatio, projection);\n if (tile.getState() == TileState.ERROR) {\n if (tileLayer.getUseInterimTilesOnError() && tileLayer.getPreload() > 0) {\n // Preloaded tiles for lower resolutions might have finished loading.\n this.newTiles_ = true;\n }\n }\n if (!this.isDrawableTile(tile)) {\n tile = tile.getInterimTile();\n }\n return tile;\n }\n\n /**\n * @param {import(\"../../pixel.js\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray} Data at the pixel location.\n */\n getData(pixel) {\n const frameState = this.frameState;\n if (!frameState) {\n return null;\n }\n\n const layer = this.getLayer();\n const coordinate = applyTransform(\n frameState.pixelToCoordinateTransform,\n pixel.slice()\n );\n\n const layerExtent = layer.getExtent();\n if (layerExtent) {\n if (!containsCoordinate(layerExtent, coordinate)) {\n return null;\n }\n }\n\n const pixelRatio = frameState.pixelRatio;\n const projection = frameState.viewState.projection;\n const viewState = frameState.viewState;\n const source = layer.getRenderSource();\n const tileGrid = source.getTileGridForProjection(viewState.projection);\n const tilePixelRatio = source.getTilePixelRatio(frameState.pixelRatio);\n\n for (\n let z = tileGrid.getZForResolution(viewState.resolution);\n z >= tileGrid.getMinZoom();\n --z\n ) {\n const tileCoord = tileGrid.getTileCoordForCoordAndZ(coordinate, z);\n const tile = source.getTile(\n z,\n tileCoord[1],\n tileCoord[2],\n pixelRatio,\n projection\n );\n if (\n !(tile instanceof ImageTile || tile instanceof ReprojTile) ||\n (tile instanceof ReprojTile && tile.getState() === TileState.EMPTY)\n ) {\n return null;\n }\n\n if (tile.getState() !== TileState.LOADED) {\n continue;\n }\n\n const tileOrigin = tileGrid.getOrigin(z);\n const tileSize = toSize(tileGrid.getTileSize(z));\n const tileResolution = tileGrid.getResolution(z);\n\n const col = Math.floor(\n tilePixelRatio *\n ((coordinate[0] - tileOrigin[0]) / tileResolution -\n tileCoord[1] * tileSize[0])\n );\n\n const row = Math.floor(\n tilePixelRatio *\n ((tileOrigin[1] - coordinate[1]) / tileResolution -\n tileCoord[2] * tileSize[1])\n );\n\n const gutter = Math.round(\n tilePixelRatio * source.getGutterForProjection(viewState.projection)\n );\n\n return this.getImageData(tile.getImage(), col + gutter, row + gutter);\n }\n\n return null;\n }\n\n /**\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @param {number} zoom Zoom level.\n * @param {import(\"../../Tile.js\").default} tile Tile.\n * @return {boolean|void} If `false`, the tile will not be considered loaded.\n */\n loadedTileCallback(tiles, zoom, tile) {\n if (this.isDrawableTile(tile)) {\n return super.loadedTileCallback(tiles, zoom, tile);\n }\n return false;\n }\n\n /**\n * Determine whether render should be called.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n prepareFrame(frameState) {\n return !!this.getLayer().getSource();\n }\n\n /**\n * Render the layer.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target that may be used to render content to.\n * @return {HTMLElement} The rendered element.\n */\n renderFrame(frameState, target) {\n const layerState = frameState.layerStatesArray[frameState.layerIndex];\n const viewState = frameState.viewState;\n const projection = viewState.projection;\n const viewResolution = viewState.resolution;\n const viewCenter = viewState.center;\n const rotation = viewState.rotation;\n const pixelRatio = frameState.pixelRatio;\n\n const tileLayer = this.getLayer();\n const tileSource = tileLayer.getSource();\n const sourceRevision = tileSource.getRevision();\n const tileGrid = tileSource.getTileGridForProjection(projection);\n const z = tileGrid.getZForResolution(viewResolution, tileSource.zDirection);\n const tileResolution = tileGrid.getResolution(z);\n\n let extent = frameState.extent;\n const resolution = frameState.viewState.resolution;\n const tilePixelRatio = tileSource.getTilePixelRatio(pixelRatio);\n // desired dimensions of the canvas in pixels\n const width = Math.round((getWidth(extent) / resolution) * pixelRatio);\n const height = Math.round((getHeight(extent) / resolution) * pixelRatio);\n\n const layerExtent =\n layerState.extent && fromUserExtent(layerState.extent, projection);\n if (layerExtent) {\n extent = getIntersection(\n extent,\n fromUserExtent(layerState.extent, projection)\n );\n }\n\n const dx = (tileResolution * width) / 2 / tilePixelRatio;\n const dy = (tileResolution * height) / 2 / tilePixelRatio;\n const canvasExtent = [\n viewCenter[0] - dx,\n viewCenter[1] - dy,\n viewCenter[0] + dx,\n viewCenter[1] + dy,\n ];\n\n const tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z);\n\n /**\n * @type {Object>}\n */\n const tilesToDrawByZ = {};\n tilesToDrawByZ[z] = {};\n\n const findLoadedTiles = this.createLoadedTileFinder(\n tileSource,\n projection,\n tilesToDrawByZ\n );\n\n const tmpExtent = this.tmpExtent;\n const tmpTileRange = this.tmpTileRange_;\n this.newTiles_ = false;\n const viewport = rotation\n ? getRotatedViewport(\n viewState.center,\n resolution,\n rotation,\n frameState.size\n )\n : undefined;\n for (let x = tileRange.minX; x <= tileRange.maxX; ++x) {\n for (let y = tileRange.minY; y <= tileRange.maxY; ++y) {\n if (\n rotation &&\n !tileGrid.tileCoordIntersectsViewport([z, x, y], viewport)\n ) {\n continue;\n }\n const tile = this.getTile(z, x, y, frameState);\n if (this.isDrawableTile(tile)) {\n const uid = getUid(this);\n if (tile.getState() == TileState.LOADED) {\n tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;\n let inTransition = tile.inTransition(uid);\n if (inTransition && layerState.opacity !== 1) {\n // Skipping transition when layer is not fully opaque avoids visual artifacts.\n tile.endTransition(uid);\n inTransition = false;\n }\n if (\n !this.newTiles_ &&\n (inTransition || !this.renderedTiles.includes(tile))\n ) {\n this.newTiles_ = true;\n }\n }\n if (tile.getAlpha(uid, frameState.time) === 1) {\n // don't look for alt tiles if alpha is 1\n continue;\n }\n }\n\n const childTileRange = tileGrid.getTileCoordChildTileRange(\n tile.tileCoord,\n tmpTileRange,\n tmpExtent\n );\n\n let covered = false;\n if (childTileRange) {\n covered = findLoadedTiles(z + 1, childTileRange);\n }\n if (!covered) {\n tileGrid.forEachTileCoordParentTileRange(\n tile.tileCoord,\n findLoadedTiles,\n tmpTileRange,\n tmpExtent\n );\n }\n }\n }\n\n const canvasScale =\n ((tileResolution / viewResolution) * pixelRatio) / tilePixelRatio;\n\n // set forward and inverse pixel transforms\n composeTransform(\n this.pixelTransform,\n frameState.size[0] / 2,\n frameState.size[1] / 2,\n 1 / pixelRatio,\n 1 / pixelRatio,\n rotation,\n -width / 2,\n -height / 2\n );\n\n const canvasTransform = toTransformString(this.pixelTransform);\n\n this.useContainer(target, canvasTransform, this.getBackground(frameState));\n const context = this.context;\n const canvas = context.canvas;\n\n makeInverse(this.inversePixelTransform, this.pixelTransform);\n\n // set scale transform for calculating tile positions on the canvas\n composeTransform(\n this.tempTransform,\n width / 2,\n height / 2,\n canvasScale,\n canvasScale,\n 0,\n -width / 2,\n -height / 2\n );\n\n if (canvas.width != width || canvas.height != height) {\n canvas.width = width;\n canvas.height = height;\n } else if (!this.containerReused) {\n context.clearRect(0, 0, width, height);\n }\n\n if (layerExtent) {\n this.clipUnrotated(context, frameState, layerExtent);\n }\n\n if (!tileSource.getInterpolate()) {\n context.imageSmoothingEnabled = false;\n }\n\n this.preRender(context, frameState);\n\n this.renderedTiles.length = 0;\n /** @type {Array} */\n let zs = Object.keys(tilesToDrawByZ).map(Number);\n zs.sort(ascending);\n\n let clips, clipZs, currentClip;\n if (\n layerState.opacity === 1 &&\n (!this.containerReused ||\n tileSource.getOpaque(frameState.viewState.projection))\n ) {\n zs = zs.reverse();\n } else {\n clips = [];\n clipZs = [];\n }\n for (let i = zs.length - 1; i >= 0; --i) {\n const currentZ = zs[i];\n const currentTilePixelSize = tileSource.getTilePixelSize(\n currentZ,\n pixelRatio,\n projection\n );\n const currentResolution = tileGrid.getResolution(currentZ);\n const currentScale = currentResolution / tileResolution;\n const dx = currentTilePixelSize[0] * currentScale * canvasScale;\n const dy = currentTilePixelSize[1] * currentScale * canvasScale;\n const originTileCoord = tileGrid.getTileCoordForCoordAndZ(\n getTopLeft(canvasExtent),\n currentZ\n );\n const originTileExtent = tileGrid.getTileCoordExtent(originTileCoord);\n const origin = applyTransform(this.tempTransform, [\n (tilePixelRatio * (originTileExtent[0] - canvasExtent[0])) /\n tileResolution,\n (tilePixelRatio * (canvasExtent[3] - originTileExtent[3])) /\n tileResolution,\n ]);\n const tileGutter =\n tilePixelRatio * tileSource.getGutterForProjection(projection);\n const tilesToDraw = tilesToDrawByZ[currentZ];\n for (const tileCoordKey in tilesToDraw) {\n const tile = /** @type {import(\"../../ImageTile.js\").default} */ (\n tilesToDraw[tileCoordKey]\n );\n const tileCoord = tile.tileCoord;\n\n // Calculate integer positions and sizes so that tiles align\n const xIndex = originTileCoord[1] - tileCoord[1];\n const nextX = Math.round(origin[0] - (xIndex - 1) * dx);\n const yIndex = originTileCoord[2] - tileCoord[2];\n const nextY = Math.round(origin[1] - (yIndex - 1) * dy);\n const x = Math.round(origin[0] - xIndex * dx);\n const y = Math.round(origin[1] - yIndex * dy);\n const w = nextX - x;\n const h = nextY - y;\n const transition = z === currentZ;\n\n const inTransition =\n transition && tile.getAlpha(getUid(this), frameState.time) !== 1;\n let contextSaved = false;\n if (!inTransition) {\n if (clips) {\n // Clip mask for regions in this tile that already filled by a higher z tile\n currentClip = [x, y, x + w, y, x + w, y + h, x, y + h];\n for (let i = 0, ii = clips.length; i < ii; ++i) {\n if (z !== currentZ && currentZ < clipZs[i]) {\n const clip = clips[i];\n if (\n intersects(\n [x, y, x + w, y + h],\n [clip[0], clip[3], clip[4], clip[7]]\n )\n ) {\n if (!contextSaved) {\n context.save();\n contextSaved = true;\n }\n context.beginPath();\n // counter-clockwise (outer ring) for current tile\n context.moveTo(currentClip[0], currentClip[1]);\n context.lineTo(currentClip[2], currentClip[3]);\n context.lineTo(currentClip[4], currentClip[5]);\n context.lineTo(currentClip[6], currentClip[7]);\n // clockwise (inner ring) for higher z tile\n context.moveTo(clip[6], clip[7]);\n context.lineTo(clip[4], clip[5]);\n context.lineTo(clip[2], clip[3]);\n context.lineTo(clip[0], clip[1]);\n context.clip();\n }\n }\n }\n clips.push(currentClip);\n clipZs.push(currentZ);\n } else {\n context.clearRect(x, y, w, h);\n }\n }\n this.drawTileImage(\n tile,\n frameState,\n x,\n y,\n w,\n h,\n tileGutter,\n transition\n );\n if (clips && !inTransition) {\n if (contextSaved) {\n context.restore();\n }\n this.renderedTiles.unshift(tile);\n } else {\n this.renderedTiles.push(tile);\n }\n this.updateUsedTiles(frameState.usedTiles, tileSource, tile);\n }\n }\n\n this.renderedRevision = sourceRevision;\n this.renderedResolution = tileResolution;\n this.extentChanged =\n !this.renderedExtent_ || !equals(this.renderedExtent_, canvasExtent);\n this.renderedExtent_ = canvasExtent;\n this.renderedPixelRatio = pixelRatio;\n this.renderedProjection = projection;\n\n this.manageTilePyramid(\n frameState,\n tileSource,\n tileGrid,\n pixelRatio,\n projection,\n extent,\n z,\n tileLayer.getPreload()\n );\n this.scheduleExpireCache(frameState, tileSource);\n\n this.postRender(context, frameState);\n\n if (layerState.extent) {\n context.restore();\n }\n context.imageSmoothingEnabled = true;\n\n if (canvasTransform !== canvas.style.transform) {\n canvas.style.transform = canvasTransform;\n }\n\n return this.container;\n }\n\n /**\n * @param {import(\"../../ImageTile.js\").default} tile Tile.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @param {number} x Left of the tile.\n * @param {number} y Top of the tile.\n * @param {number} w Width of the tile.\n * @param {number} h Height of the tile.\n * @param {number} gutter Tile gutter.\n * @param {boolean} transition Apply an alpha transition.\n */\n drawTileImage(tile, frameState, x, y, w, h, gutter, transition) {\n const image = this.getTileImage(tile);\n if (!image) {\n return;\n }\n const uid = getUid(this);\n const layerState = frameState.layerStatesArray[frameState.layerIndex];\n const alpha =\n layerState.opacity *\n (transition ? tile.getAlpha(uid, frameState.time) : 1);\n const alphaChanged = alpha !== this.context.globalAlpha;\n if (alphaChanged) {\n this.context.save();\n this.context.globalAlpha = alpha;\n }\n this.context.drawImage(\n image,\n gutter,\n gutter,\n image.width - 2 * gutter,\n image.height - 2 * gutter,\n x,\n y,\n w,\n h\n );\n\n if (alphaChanged) {\n this.context.restore();\n }\n if (alpha !== layerState.opacity) {\n frameState.animate = true;\n } else if (transition) {\n tile.endTransition(uid);\n }\n }\n\n /**\n * @return {HTMLCanvasElement} Image\n */\n getImage() {\n const context = this.context;\n return context ? context.canvas : null;\n }\n\n /**\n * Get the image from a tile.\n * @param {import(\"../../ImageTile.js\").default} tile Tile.\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n * @protected\n */\n getTileImage(tile) {\n return tile.getImage();\n }\n\n /**\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @protected\n */\n scheduleExpireCache(frameState, tileSource) {\n if (tileSource.canExpireCache()) {\n /**\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @param {import(\"../../Map.js\").default} map Map.\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n */\n const postRenderFunction = function (tileSource, map, frameState) {\n const tileSourceKey = getUid(tileSource);\n if (tileSourceKey in frameState.usedTiles) {\n tileSource.expireCache(\n frameState.viewState.projection,\n frameState.usedTiles[tileSourceKey]\n );\n }\n }.bind(null, tileSource);\n\n frameState.postRenderFunctions.push(\n /** @type {import(\"../../Map.js\").PostRenderFunction} */ (\n postRenderFunction\n )\n );\n }\n }\n\n /**\n * @param {!Object>} usedTiles Used tiles.\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @param {import('../../Tile.js').default} tile Tile.\n * @protected\n */\n updateUsedTiles(usedTiles, tileSource, tile) {\n // FIXME should we use tilesToDrawByZ instead?\n const tileSourceKey = getUid(tileSource);\n if (!(tileSourceKey in usedTiles)) {\n usedTiles[tileSourceKey] = {};\n }\n usedTiles[tileSourceKey][tile.getKey()] = true;\n }\n\n /**\n * Manage tile pyramid.\n * This function performs a number of functions related to the tiles at the\n * current zoom and lower zoom levels:\n * - registers idle tiles in frameState.wantedTiles so that they are not\n * discarded by the tile queue\n * - enqueues missing tiles\n * @param {import(\"../../Map.js\").FrameState} frameState Frame state.\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @param {import(\"../../tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../../proj/Projection.js\").default} projection Projection.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @param {number} currentZ Current Z.\n * @param {number} preload Load low resolution tiles up to `preload` levels.\n * @param {function(import(\"../../Tile.js\").default):void} [tileCallback] Tile callback.\n * @protected\n */\n manageTilePyramid(\n frameState,\n tileSource,\n tileGrid,\n pixelRatio,\n projection,\n extent,\n currentZ,\n preload,\n tileCallback\n ) {\n const tileSourceKey = getUid(tileSource);\n if (!(tileSourceKey in frameState.wantedTiles)) {\n frameState.wantedTiles[tileSourceKey] = {};\n }\n const wantedTiles = frameState.wantedTiles[tileSourceKey];\n const tileQueue = frameState.tileQueue;\n const minZoom = tileGrid.getMinZoom();\n const rotation = frameState.viewState.rotation;\n const viewport = rotation\n ? getRotatedViewport(\n frameState.viewState.center,\n frameState.viewState.resolution,\n rotation,\n frameState.size\n )\n : undefined;\n let tileCount = 0;\n let tile, tileRange, tileResolution, x, y, z;\n for (z = minZoom; z <= currentZ; ++z) {\n tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z, tileRange);\n tileResolution = tileGrid.getResolution(z);\n for (x = tileRange.minX; x <= tileRange.maxX; ++x) {\n for (y = tileRange.minY; y <= tileRange.maxY; ++y) {\n if (\n rotation &&\n !tileGrid.tileCoordIntersectsViewport([z, x, y], viewport)\n ) {\n continue;\n }\n if (currentZ - z <= preload) {\n ++tileCount;\n tile = tileSource.getTile(z, x, y, pixelRatio, projection);\n if (tile.getState() == TileState.IDLE) {\n wantedTiles[tile.getKey()] = true;\n if (!tileQueue.isKeyQueued(tile.getKey())) {\n tileQueue.enqueue([\n tile,\n tileSourceKey,\n tileGrid.getTileCoordCenter(tile.tileCoord),\n tileResolution,\n ]);\n }\n }\n if (tileCallback !== undefined) {\n tileCallback(tile);\n }\n } else {\n tileSource.useTile(z, x, y, projection);\n }\n }\n }\n }\n tileSource.updateCacheSize(tileCount, projection);\n }\n}\n\nexport default CanvasTileLayerRenderer;\n","/**\n * @module ol/layer/Tile\n */\nimport BaseTileLayer from './BaseTile.js';\nimport CanvasTileLayerRenderer from '../renderer/canvas/TileLayer.js';\n\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @extends BaseTileLayer\n * @api\n */\nclass TileLayer extends BaseTileLayer {\n /**\n * @param {import(\"./BaseTile.js\").Options} [options] Tile layer options.\n */\n constructor(options) {\n super(options);\n }\n\n createRenderer() {\n return new CanvasTileLayerRenderer(this);\n }\n}\n\nexport default TileLayer;\n","/**\n * @module ol/style/Image\n */\nimport {abstract} from '../util.js';\nimport {toSize} from '../size.js';\n\n/**\n * @typedef {Object} Options\n * @property {number} opacity Opacity.\n * @property {boolean} rotateWithView If the image should get rotated with the view.\n * @property {number} rotation Rotation.\n * @property {number|import(\"../size.js\").Size} scale Scale.\n * @property {Array} displacement Displacement.\n * @property {\"declutter\"|\"obstacle\"|\"none\"|undefined} declutterMode Declutter mode: `declutter`, `obstacle`, 'none */\n\n/**\n * @classdesc\n * A base class used for creating subclasses and not instantiated in\n * apps. Base class for {@link module:ol/style/Icon~Icon}, {@link module:ol/style/Circle~CircleStyle} and\n * {@link module:ol/style/RegularShape~RegularShape}.\n * @abstract\n * @api\n */\nclass ImageStyle {\n /**\n * @param {Options} options Options.\n */\n constructor(options) {\n /**\n * @private\n * @type {number}\n */\n this.opacity_ = options.opacity;\n\n /**\n * @private\n * @type {boolean}\n */\n this.rotateWithView_ = options.rotateWithView;\n\n /**\n * @private\n * @type {number}\n */\n this.rotation_ = options.rotation;\n\n /**\n * @private\n * @type {number|import(\"../size.js\").Size}\n */\n this.scale_ = options.scale;\n\n /**\n * @private\n * @type {import(\"../size.js\").Size}\n */\n this.scaleArray_ = toSize(options.scale);\n\n /**\n * @private\n * @type {Array}\n */\n this.displacement_ = options.displacement;\n\n /**\n * @private\n * @type {\"declutter\"|\"obstacle\"|\"none\"|undefined}\n */\n this.declutterMode_ = options.declutterMode;\n }\n\n /**\n * Clones the style.\n * @return {ImageStyle} The cloned style.\n * @api\n */\n clone() {\n const scale = this.getScale();\n return new ImageStyle({\n opacity: this.getOpacity(),\n scale: Array.isArray(scale) ? scale.slice() : scale,\n rotation: this.getRotation(),\n rotateWithView: this.getRotateWithView(),\n displacement: this.getDisplacement().slice(),\n declutterMode: this.getDeclutterMode(),\n });\n }\n\n /**\n * Get the symbolizer opacity.\n * @return {number} Opacity.\n * @api\n */\n getOpacity() {\n return this.opacity_;\n }\n\n /**\n * Determine whether the symbolizer rotates with the map.\n * @return {boolean} Rotate with map.\n * @api\n */\n getRotateWithView() {\n return this.rotateWithView_;\n }\n\n /**\n * Get the symoblizer rotation.\n * @return {number} Rotation.\n * @api\n */\n getRotation() {\n return this.rotation_;\n }\n\n /**\n * Get the symbolizer scale.\n * @return {number|import(\"../size.js\").Size} Scale.\n * @api\n */\n getScale() {\n return this.scale_;\n }\n\n /**\n * Get the symbolizer scale array.\n * @return {import(\"../size.js\").Size} Scale array.\n */\n getScaleArray() {\n return this.scaleArray_;\n }\n\n /**\n * Get the displacement of the shape\n * @return {Array} Shape's center displacement\n * @api\n */\n getDisplacement() {\n return this.displacement_;\n }\n\n /**\n * Get the declutter mode of the shape\n * @return {\"declutter\"|\"obstacle\"|\"none\"|undefined} Shape's declutter mode\n * @api\n */\n getDeclutterMode() {\n return this.declutterMode_;\n }\n\n /**\n * Get the anchor point in pixels. The anchor determines the center point for the\n * symbolizer.\n * @abstract\n * @return {Array} Anchor.\n */\n getAnchor() {\n return abstract();\n }\n\n /**\n * Get the image element for the symbolizer.\n * @abstract\n * @param {number} pixelRatio Pixel ratio.\n * @return {import('../DataTile.js').ImageLike} Image element.\n */\n getImage(pixelRatio) {\n return abstract();\n }\n\n /**\n * @abstract\n * @return {import('../DataTile.js').ImageLike} Image element.\n */\n getHitDetectionImage() {\n return abstract();\n }\n\n /**\n * Get the image pixel ratio.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Pixel ratio.\n */\n getPixelRatio(pixelRatio) {\n return 1;\n }\n\n /**\n * @abstract\n * @return {import(\"../ImageState.js\").default} Image state.\n */\n getImageState() {\n return abstract();\n }\n\n /**\n * @abstract\n * @return {import(\"../size.js\").Size} Image size.\n */\n getImageSize() {\n return abstract();\n }\n\n /**\n * Get the origin of the symbolizer.\n * @abstract\n * @return {Array} Origin.\n */\n getOrigin() {\n return abstract();\n }\n\n /**\n * Get the size of the symbolizer (in pixels).\n * @abstract\n * @return {import(\"../size.js\").Size} Size.\n */\n getSize() {\n return abstract();\n }\n\n /**\n * Set the displacement.\n *\n * @param {Array} displacement Displacement.\n * @api\n */\n setDisplacement(displacement) {\n this.displacement_ = displacement;\n }\n\n /**\n * Set the opacity.\n *\n * @param {number} opacity Opacity.\n * @api\n */\n setOpacity(opacity) {\n this.opacity_ = opacity;\n }\n\n /**\n * Set whether to rotate the style with the view.\n *\n * @param {boolean} rotateWithView Rotate with map.\n * @api\n */\n setRotateWithView(rotateWithView) {\n this.rotateWithView_ = rotateWithView;\n }\n\n /**\n * Set the rotation.\n *\n * @param {number} rotation Rotation.\n * @api\n */\n setRotation(rotation) {\n this.rotation_ = rotation;\n }\n\n /**\n * Set the scale.\n *\n * @param {number|import(\"../size.js\").Size} scale Scale.\n * @api\n */\n setScale(scale) {\n this.scale_ = scale;\n this.scaleArray_ = toSize(scale);\n }\n\n /**\n * @abstract\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n listenImageChange(listener) {\n abstract();\n }\n\n /**\n * Load not yet loaded URI.\n * @abstract\n */\n load() {\n abstract();\n }\n\n /**\n * @abstract\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n unlistenImageChange(listener) {\n abstract();\n }\n}\n\nexport default ImageStyle;\n","/**\n * @module ol/colorlike\n */\nimport {toString} from './color.js';\n\n/**\n * A type accepted by CanvasRenderingContext2D.fillStyle\n * or CanvasRenderingContext2D.strokeStyle.\n * Represents a color, pattern, or gradient. The origin for patterns and\n * gradients as fill style is an increment of 512 css pixels from map coordinate\n * `[0, 0]`. For seamless repeat patterns, width and height of the pattern image\n * must be a factor of two (2, 4, 8, ..., 512).\n *\n * @typedef {string|CanvasPattern|CanvasGradient} ColorLike\n * @api\n */\n\n/**\n * @param {import(\"./color.js\").Color|ColorLike} color Color.\n * @return {ColorLike} The color as an {@link ol/colorlike~ColorLike}.\n * @api\n */\nexport function asColorLike(color) {\n if (Array.isArray(color)) {\n return toString(color);\n }\n return color;\n}\n","/**\n * @module ol/css\n */\n\n/**\n * @typedef {Object} FontParameters\n * @property {string} style Style.\n * @property {string} variant Variant.\n * @property {string} weight Weight.\n * @property {string} size Size.\n * @property {string} lineHeight LineHeight.\n * @property {string} family Family.\n * @property {Array} families Families.\n */\n\n/**\n * The CSS class for hidden feature.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_HIDDEN = 'ol-hidden';\n\n/**\n * The CSS class that we'll give the DOM elements to have them selectable.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_SELECTABLE = 'ol-selectable';\n\n/**\n * The CSS class that we'll give the DOM elements to have them unselectable.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_UNSELECTABLE = 'ol-unselectable';\n\n/**\n * The CSS class for unsupported feature.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_UNSUPPORTED = 'ol-unsupported';\n\n/**\n * The CSS class for controls.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_CONTROL = 'ol-control';\n\n/**\n * The CSS class that we'll give the DOM elements that are collapsed, i.e.\n * to those elements which usually can be expanded.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_COLLAPSED = 'ol-collapsed';\n\n/**\n * From https://stackoverflow.com/questions/10135697/regex-to-parse-any-css-font\n * @type {RegExp}\n */\nconst fontRegEx = new RegExp(\n [\n '^\\\\s*(?=(?:(?:[-a-z]+\\\\s*){0,2}(italic|oblique))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(small-caps))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)',\n '(?:(?:normal|\\\\1|\\\\2|\\\\3)\\\\s*){0,3}((?:xx?-)?',\n '(?:small|large)|medium|smaller|larger|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx]))',\n '(?:\\\\s*\\\\/\\\\s*(normal|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx])?))',\n '?\\\\s*([-,\\\\\"\\\\\\'\\\\sa-z]+?)\\\\s*$',\n ].join(''),\n 'i'\n);\nconst fontRegExMatchIndex = [\n 'style',\n 'variant',\n 'weight',\n 'size',\n 'lineHeight',\n 'family',\n];\n\n/**\n * Get the list of font families from a font spec. Note that this doesn't work\n * for font families that have commas in them.\n * @param {string} fontSpec The CSS font property.\n * @return {FontParameters|null} The font parameters (or null if the input spec is invalid).\n */\nexport const getFontParameters = function (fontSpec) {\n const match = fontSpec.match(fontRegEx);\n if (!match) {\n return null;\n }\n const style = /** @type {FontParameters} */ ({\n lineHeight: 'normal',\n size: '1.2em',\n style: 'normal',\n weight: 'normal',\n variant: 'normal',\n });\n for (let i = 0, ii = fontRegExMatchIndex.length; i < ii; ++i) {\n const value = match[i + 1];\n if (value !== undefined) {\n style[fontRegExMatchIndex[i]] = value;\n }\n }\n style.families = style.family.split(/,\\s?/);\n return style;\n};\n","/**\n * @module ol/render/canvas\n */\nimport BaseObject from '../Object.js';\nimport {WORKER_OFFSCREEN_CANVAS} from '../has.js';\nimport {clear} from '../obj.js';\nimport {createCanvasContext2D} from '../dom.js';\nimport {getFontParameters} from '../css.js';\n\n/**\n * @typedef {'Circle' | 'Image' | 'LineString' | 'Polygon' | 'Text' | 'Default'} BuilderType\n */\n\n/**\n * @typedef {Object} FillState\n * @property {import(\"../colorlike.js\").ColorLike} fillStyle FillStyle.\n */\n\n/**\n * @typedef Label\n * @property {number} width Width.\n * @property {number} height Height.\n * @property {Array} contextInstructions ContextInstructions.\n */\n\n/**\n * @typedef {Object} FillStrokeState\n * @property {import(\"../colorlike.js\").ColorLike} [currentFillStyle] Current FillStyle.\n * @property {import(\"../colorlike.js\").ColorLike} [currentStrokeStyle] Current StrokeStyle.\n * @property {CanvasLineCap} [currentLineCap] Current LineCap.\n * @property {Array} currentLineDash Current LineDash.\n * @property {number} [currentLineDashOffset] Current LineDashOffset.\n * @property {CanvasLineJoin} [currentLineJoin] Current LineJoin.\n * @property {number} [currentLineWidth] Current LineWidth.\n * @property {number} [currentMiterLimit] Current MiterLimit.\n * @property {number} [lastStroke] Last stroke.\n * @property {import(\"../colorlike.js\").ColorLike} [fillStyle] FillStyle.\n * @property {import(\"../colorlike.js\").ColorLike} [strokeStyle] StrokeStyle.\n * @property {CanvasLineCap} [lineCap] LineCap.\n * @property {Array} lineDash LineDash.\n * @property {number} [lineDashOffset] LineDashOffset.\n * @property {CanvasLineJoin} [lineJoin] LineJoin.\n * @property {number} [lineWidth] LineWidth.\n * @property {number} [miterLimit] MiterLimit.\n */\n\n/**\n * @typedef {Object} StrokeState\n * @property {CanvasLineCap} lineCap LineCap.\n * @property {Array} lineDash LineDash.\n * @property {number} lineDashOffset LineDashOffset.\n * @property {CanvasLineJoin} lineJoin LineJoin.\n * @property {number} lineWidth LineWidth.\n * @property {number} miterLimit MiterLimit.\n * @property {import(\"../colorlike.js\").ColorLike} strokeStyle StrokeStyle.\n */\n\n/**\n * @typedef {Object} TextState\n * @property {string} font Font.\n * @property {CanvasTextAlign} [textAlign] TextAlign.\n * @property {number} [repeat] Repeat.\n * @property {import(\"../style/Text.js\").TextJustify} [justify] Justify.\n * @property {CanvasTextBaseline} textBaseline TextBaseline.\n * @property {import(\"../style/Text.js\").TextPlacement} [placement] Placement.\n * @property {number} [maxAngle] MaxAngle.\n * @property {boolean} [overflow] Overflow.\n * @property {import(\"../style/Fill.js\").default} [backgroundFill] BackgroundFill.\n * @property {import(\"../style/Stroke.js\").default} [backgroundStroke] BackgroundStroke.\n * @property {import(\"../size.js\").Size} [scale] Scale.\n * @property {Array} [padding] Padding.\n */\n\n/**\n * @typedef {Object} SerializableInstructions\n * @property {Array<*>} instructions The rendering instructions.\n * @property {Array<*>} hitDetectionInstructions The rendering hit detection instructions.\n * @property {Array} coordinates The array of all coordinates.\n * @property {!Object} [textStates] The text states (decluttering).\n * @property {!Object} [fillStates] The fill states (decluttering).\n * @property {!Object} [strokeStates] The stroke states (decluttering).\n */\n\n/**\n * @typedef {Object} DeclutterImageWithText\n */\n\n/**\n * @const\n * @type {string}\n */\nexport const defaultFont = '10px sans-serif';\n\n/**\n * @const\n * @type {string}\n */\nexport const defaultFillStyle = '#000';\n\n/**\n * @const\n * @type {CanvasLineCap}\n */\nexport const defaultLineCap = 'round';\n\n/**\n * @const\n * @type {Array}\n */\nexport const defaultLineDash = [];\n\n/**\n * @const\n * @type {number}\n */\nexport const defaultLineDashOffset = 0;\n\n/**\n * @const\n * @type {CanvasLineJoin}\n */\nexport const defaultLineJoin = 'round';\n\n/**\n * @const\n * @type {number}\n */\nexport const defaultMiterLimit = 10;\n\n/**\n * @const\n * @type {import(\"../colorlike.js\").ColorLike}\n */\nexport const defaultStrokeStyle = '#000';\n\n/**\n * @const\n * @type {CanvasTextAlign}\n */\nexport const defaultTextAlign = 'center';\n\n/**\n * @const\n * @type {CanvasTextBaseline}\n */\nexport const defaultTextBaseline = 'middle';\n\n/**\n * @const\n * @type {Array}\n */\nexport const defaultPadding = [0, 0, 0, 0];\n\n/**\n * @const\n * @type {number}\n */\nexport const defaultLineWidth = 1;\n\n/**\n * @type {BaseObject}\n */\nexport const checkedFonts = new BaseObject();\n\n/**\n * @type {CanvasRenderingContext2D}\n */\nlet measureContext = null;\n\n/**\n * @type {string}\n */\nlet measureFont;\n\n/**\n * @type {!Object}\n */\nexport const textHeights = {};\n\n/**\n * Clears the label cache when a font becomes available.\n * @param {string} fontSpec CSS font spec.\n */\nexport const registerFont = (function () {\n const retries = 100;\n const size = '32px ';\n const referenceFonts = ['monospace', 'serif'];\n const len = referenceFonts.length;\n const text = 'wmytzilWMYTZIL@#/&?$%10\\uF013';\n let interval, referenceWidth;\n\n /**\n * @param {string} fontStyle Css font-style\n * @param {string} fontWeight Css font-weight\n * @param {*} fontFamily Css font-family\n * @return {boolean} Font with style and weight is available\n */\n function isAvailable(fontStyle, fontWeight, fontFamily) {\n let available = true;\n for (let i = 0; i < len; ++i) {\n const referenceFont = referenceFonts[i];\n referenceWidth = measureTextWidth(\n fontStyle + ' ' + fontWeight + ' ' + size + referenceFont,\n text\n );\n if (fontFamily != referenceFont) {\n const width = measureTextWidth(\n fontStyle +\n ' ' +\n fontWeight +\n ' ' +\n size +\n fontFamily +\n ',' +\n referenceFont,\n text\n );\n // If width and referenceWidth are the same, then the fallback was used\n // instead of the font we wanted, so the font is not available.\n available = available && width != referenceWidth;\n }\n }\n if (available) {\n return true;\n }\n return false;\n }\n\n function check() {\n let done = true;\n const fonts = checkedFonts.getKeys();\n for (let i = 0, ii = fonts.length; i < ii; ++i) {\n const font = fonts[i];\n if (checkedFonts.get(font) < retries) {\n if (isAvailable.apply(this, font.split('\\n'))) {\n clear(textHeights);\n // Make sure that loaded fonts are picked up by Safari\n measureContext = null;\n measureFont = undefined;\n checkedFonts.set(font, retries);\n } else {\n checkedFonts.set(font, checkedFonts.get(font) + 1, true);\n done = false;\n }\n }\n }\n if (done) {\n clearInterval(interval);\n interval = undefined;\n }\n }\n\n return function (fontSpec) {\n const font = getFontParameters(fontSpec);\n if (!font) {\n return;\n }\n const families = font.families;\n for (let i = 0, ii = families.length; i < ii; ++i) {\n const family = families[i];\n const key = font.style + '\\n' + font.weight + '\\n' + family;\n if (checkedFonts.get(key) === undefined) {\n checkedFonts.set(key, retries, true);\n if (!isAvailable(font.style, font.weight, family)) {\n checkedFonts.set(key, 0, true);\n if (interval === undefined) {\n interval = setInterval(check, 32);\n }\n }\n }\n }\n };\n})();\n\n/**\n * @param {string} font Font to use for measuring.\n * @return {import(\"../size.js\").Size} Measurement.\n */\nexport const measureTextHeight = (function () {\n /**\n * @type {HTMLDivElement}\n */\n let measureElement;\n return function (fontSpec) {\n let height = textHeights[fontSpec];\n if (height == undefined) {\n if (WORKER_OFFSCREEN_CANVAS) {\n const font = getFontParameters(fontSpec);\n const metrics = measureText(fontSpec, 'Žg');\n const lineHeight = isNaN(Number(font.lineHeight))\n ? 1.2\n : Number(font.lineHeight);\n height =\n lineHeight *\n (metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n } else {\n if (!measureElement) {\n measureElement = document.createElement('div');\n measureElement.innerHTML = 'M';\n measureElement.style.minHeight = '0';\n measureElement.style.maxHeight = 'none';\n measureElement.style.height = 'auto';\n measureElement.style.padding = '0';\n measureElement.style.border = 'none';\n measureElement.style.position = 'absolute';\n measureElement.style.display = 'block';\n measureElement.style.left = '-99999px';\n }\n measureElement.style.font = fontSpec;\n document.body.appendChild(measureElement);\n height = measureElement.offsetHeight;\n document.body.removeChild(measureElement);\n }\n textHeights[fontSpec] = height;\n }\n return height;\n };\n})();\n\n/**\n * @param {string} font Font.\n * @param {string} text Text.\n * @return {TextMetrics} Text metrics.\n */\nfunction measureText(font, text) {\n if (!measureContext) {\n measureContext = createCanvasContext2D(1, 1);\n }\n if (font != measureFont) {\n measureContext.font = font;\n measureFont = measureContext.font;\n }\n return measureContext.measureText(text);\n}\n\n/**\n * @param {string} font Font.\n * @param {string} text Text.\n * @return {number} Width.\n */\nexport function measureTextWidth(font, text) {\n return measureText(font, text).width;\n}\n\n/**\n * Measure text width using a cache.\n * @param {string} font The font.\n * @param {string} text The text to measure.\n * @param {Object} cache A lookup of cached widths by text.\n * @return {number} The text width.\n */\nexport function measureAndCacheTextWidth(font, text, cache) {\n if (text in cache) {\n return cache[text];\n }\n const width = text\n .split('\\n')\n .reduce((prev, curr) => Math.max(prev, measureTextWidth(font, curr)), 0);\n cache[text] = width;\n return width;\n}\n\n/**\n * @param {TextState} baseStyle Base style.\n * @param {Array} chunks Text chunks to measure.\n * @return {{width: number, height: number, widths: Array, heights: Array, lineWidths: Array}}} Text metrics.\n */\nexport function getTextDimensions(baseStyle, chunks) {\n const widths = [];\n const heights = [];\n const lineWidths = [];\n let width = 0;\n let lineWidth = 0;\n let height = 0;\n let lineHeight = 0;\n for (let i = 0, ii = chunks.length; i <= ii; i += 2) {\n const text = chunks[i];\n if (text === '\\n' || i === ii) {\n width = Math.max(width, lineWidth);\n lineWidths.push(lineWidth);\n lineWidth = 0;\n height += lineHeight;\n continue;\n }\n const font = chunks[i + 1] || baseStyle.font;\n const currentWidth = measureTextWidth(font, text);\n widths.push(currentWidth);\n lineWidth += currentWidth;\n const currentHeight = measureTextHeight(font);\n heights.push(currentHeight);\n lineHeight = Math.max(lineHeight, currentHeight);\n }\n return {width, height, widths, heights, lineWidths};\n}\n\n/**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {number} rotation Rotation.\n * @param {number} offsetX X offset.\n * @param {number} offsetY Y offset.\n */\nexport function rotateAtOffset(context, rotation, offsetX, offsetY) {\n if (rotation !== 0) {\n context.translate(offsetX, offsetY);\n context.rotate(rotation);\n context.translate(-offsetX, -offsetY);\n }\n}\n\n/**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../transform.js\").Transform|null} transform Transform.\n * @param {number} opacity Opacity.\n * @param {Label|HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} labelOrImage Label.\n * @param {number} originX Origin X.\n * @param {number} originY Origin Y.\n * @param {number} w Width.\n * @param {number} h Height.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../size.js\").Size} scale Scale.\n */\nexport function drawImageOrLabel(\n context,\n transform,\n opacity,\n labelOrImage,\n originX,\n originY,\n w,\n h,\n x,\n y,\n scale\n) {\n context.save();\n\n if (opacity !== 1) {\n context.globalAlpha *= opacity;\n }\n if (transform) {\n context.transform.apply(context, transform);\n }\n\n if (/** @type {*} */ (labelOrImage).contextInstructions) {\n // label\n context.translate(x, y);\n context.scale(scale[0], scale[1]);\n executeLabelInstructions(/** @type {Label} */ (labelOrImage), context);\n } else if (scale[0] < 0 || scale[1] < 0) {\n // flipped image\n context.translate(x, y);\n context.scale(scale[0], scale[1]);\n context.drawImage(\n /** @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} */ (\n labelOrImage\n ),\n originX,\n originY,\n w,\n h,\n 0,\n 0,\n w,\n h\n );\n } else {\n // if image not flipped translate and scale can be avoided\n context.drawImage(\n /** @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} */ (\n labelOrImage\n ),\n originX,\n originY,\n w,\n h,\n x,\n y,\n w * scale[0],\n h * scale[1]\n );\n }\n\n context.restore();\n}\n\n/**\n * @param {Label} label Label.\n * @param {CanvasRenderingContext2D} context Context.\n */\nfunction executeLabelInstructions(label, context) {\n const contextInstructions = label.contextInstructions;\n for (let i = 0, ii = contextInstructions.length; i < ii; i += 2) {\n if (Array.isArray(contextInstructions[i + 1])) {\n context[contextInstructions[i]].apply(\n context,\n contextInstructions[i + 1]\n );\n } else {\n context[contextInstructions[i]] = contextInstructions[i + 1];\n }\n }\n}\n","/**\n * @module ol/style/RegularShape\n */\n\nimport ImageState from '../ImageState.js';\nimport ImageStyle from './Image.js';\nimport {asArray} from '../color.js';\nimport {asColorLike} from '../colorlike.js';\nimport {createCanvasContext2D} from '../dom.js';\nimport {\n defaultFillStyle,\n defaultLineCap,\n defaultLineJoin,\n defaultLineWidth,\n defaultMiterLimit,\n defaultStrokeStyle,\n} from '../render/canvas.js';\n\n/**\n * Specify radius for regular polygons, or radius1 and radius2 for stars.\n * @typedef {Object} Options\n * @property {import(\"./Fill.js\").default} [fill] Fill style.\n * @property {number} points Number of points for stars and regular polygons. In case of a polygon, the number of points\n * is the number of sides.\n * @property {number} [radius] Radius of a regular polygon.\n * @property {number} [radius1] First radius of a star. Ignored if radius is set.\n * @property {number} [radius2] Second radius of a star.\n * @property {number} [angle=0] Shape's angle in radians. A value of 0 will have one of the shape's points facing up.\n * @property {Array} [displacement=[0, 0]] Displacement of the shape in pixels.\n * Positive values will shift the shape right and up.\n * @property {import(\"./Stroke.js\").default} [stroke] Stroke style.\n * @property {number} [rotation=0] Rotation in radians (positive rotation clockwise).\n * @property {boolean} [rotateWithView=false] Whether to rotate the shape with the view.\n * @property {number|import(\"../size.js\").Size} [scale=1] Scale. Unless two dimensional scaling is required a better\n * result may be obtained with appropriate settings for `radius`, `radius1` and `radius2`.\n * @property {\"declutter\"|\"obstacle\"|\"none\"|undefined} [declutterMode] Declutter mode.\n */\n\n/**\n * @typedef {Object} RenderOptions\n * @property {import(\"../colorlike.js\").ColorLike} [strokeStyle] StrokeStyle.\n * @property {number} strokeWidth StrokeWidth.\n * @property {number} size Size.\n * @property {CanvasLineCap} lineCap LineCap.\n * @property {Array|null} lineDash LineDash.\n * @property {number} lineDashOffset LineDashOffset.\n * @property {CanvasLineJoin} lineJoin LineJoin.\n * @property {number} miterLimit MiterLimit.\n */\n\n/**\n * @classdesc\n * Set regular shape style for vector features. The resulting shape will be\n * a regular polygon when `radius` is provided, or a star when `radius1` and\n * `radius2` are provided.\n * @api\n */\nclass RegularShape extends ImageStyle {\n /**\n * @param {Options} options Options.\n */\n constructor(options) {\n /**\n * @type {boolean}\n */\n const rotateWithView =\n options.rotateWithView !== undefined ? options.rotateWithView : false;\n\n super({\n opacity: 1,\n rotateWithView: rotateWithView,\n rotation: options.rotation !== undefined ? options.rotation : 0,\n scale: options.scale !== undefined ? options.scale : 1,\n displacement:\n options.displacement !== undefined ? options.displacement : [0, 0],\n declutterMode: options.declutterMode,\n });\n\n /**\n * @private\n * @type {Object}\n */\n this.canvas_ = undefined;\n\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n this.hitDetectionCanvas_ = null;\n\n /**\n * @private\n * @type {import(\"./Fill.js\").default}\n */\n this.fill_ = options.fill !== undefined ? options.fill : null;\n\n /**\n * @private\n * @type {Array}\n */\n this.origin_ = [0, 0];\n\n /**\n * @private\n * @type {number}\n */\n this.points_ = options.points;\n\n /**\n * @protected\n * @type {number}\n */\n this.radius_ =\n options.radius !== undefined ? options.radius : options.radius1;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.radius2_ = options.radius2;\n\n /**\n * @private\n * @type {number}\n */\n this.angle_ = options.angle !== undefined ? options.angle : 0;\n\n /**\n * @private\n * @type {import(\"./Stroke.js\").default}\n */\n this.stroke_ = options.stroke !== undefined ? options.stroke : null;\n\n /**\n * @private\n * @type {import(\"../size.js\").Size}\n */\n this.size_ = null;\n\n /**\n * @private\n * @type {RenderOptions}\n */\n this.renderOptions_ = null;\n\n this.render();\n }\n\n /**\n * Clones the style.\n * @return {RegularShape} The cloned style.\n * @api\n */\n clone() {\n const scale = this.getScale();\n const style = new RegularShape({\n fill: this.getFill() ? this.getFill().clone() : undefined,\n points: this.getPoints(),\n radius: this.getRadius(),\n radius2: this.getRadius2(),\n angle: this.getAngle(),\n stroke: this.getStroke() ? this.getStroke().clone() : undefined,\n rotation: this.getRotation(),\n rotateWithView: this.getRotateWithView(),\n scale: Array.isArray(scale) ? scale.slice() : scale,\n displacement: this.getDisplacement().slice(),\n declutterMode: this.getDeclutterMode(),\n });\n style.setOpacity(this.getOpacity());\n return style;\n }\n\n /**\n * Get the anchor point in pixels. The anchor determines the center point for the\n * symbolizer.\n * @return {Array} Anchor.\n * @api\n */\n getAnchor() {\n const size = this.size_;\n if (!size) {\n return null;\n }\n const displacement = this.getDisplacement();\n const scale = this.getScaleArray();\n // anchor is scaled by renderer but displacement should not be scaled\n // so divide by scale here\n return [\n size[0] / 2 - displacement[0] / scale[0],\n size[1] / 2 + displacement[1] / scale[1],\n ];\n }\n\n /**\n * Get the angle used in generating the shape.\n * @return {number} Shape's rotation in radians.\n * @api\n */\n getAngle() {\n return this.angle_;\n }\n\n /**\n * Get the fill style for the shape.\n * @return {import(\"./Fill.js\").default} Fill style.\n * @api\n */\n getFill() {\n return this.fill_;\n }\n\n /**\n * Set the fill style.\n * @param {import(\"./Fill.js\").default} fill Fill style.\n * @api\n */\n setFill(fill) {\n this.fill_ = fill;\n this.render();\n }\n\n /**\n * @return {HTMLCanvasElement} Image element.\n */\n getHitDetectionImage() {\n if (!this.hitDetectionCanvas_) {\n this.createHitDetectionCanvas_(this.renderOptions_);\n }\n return this.hitDetectionCanvas_;\n }\n\n /**\n * Get the image icon.\n * @param {number} pixelRatio Pixel ratio.\n * @return {HTMLCanvasElement} Image or Canvas element.\n * @api\n */\n getImage(pixelRatio) {\n let image = this.canvas_[pixelRatio];\n if (!image) {\n const renderOptions = this.renderOptions_;\n const context = createCanvasContext2D(\n renderOptions.size * pixelRatio,\n renderOptions.size * pixelRatio\n );\n this.draw_(renderOptions, context, pixelRatio);\n\n image = context.canvas;\n this.canvas_[pixelRatio] = image;\n }\n return image;\n }\n\n /**\n * Get the image pixel ratio.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Pixel ratio.\n */\n getPixelRatio(pixelRatio) {\n return pixelRatio;\n }\n\n /**\n * @return {import(\"../size.js\").Size} Image size.\n */\n getImageSize() {\n return this.size_;\n }\n\n /**\n * @return {import(\"../ImageState.js\").default} Image state.\n */\n getImageState() {\n return ImageState.LOADED;\n }\n\n /**\n * Get the origin of the symbolizer.\n * @return {Array} Origin.\n * @api\n */\n getOrigin() {\n return this.origin_;\n }\n\n /**\n * Get the number of points for generating the shape.\n * @return {number} Number of points for stars and regular polygons.\n * @api\n */\n getPoints() {\n return this.points_;\n }\n\n /**\n * Get the (primary) radius for the shape.\n * @return {number} Radius.\n * @api\n */\n getRadius() {\n return this.radius_;\n }\n\n /**\n * Get the secondary radius for the shape.\n * @return {number|undefined} Radius2.\n * @api\n */\n getRadius2() {\n return this.radius2_;\n }\n\n /**\n * Get the size of the symbolizer (in pixels).\n * @return {import(\"../size.js\").Size} Size.\n * @api\n */\n getSize() {\n return this.size_;\n }\n\n /**\n * Get the stroke style for the shape.\n * @return {import(\"./Stroke.js\").default} Stroke style.\n * @api\n */\n getStroke() {\n return this.stroke_;\n }\n\n /**\n * Set the stroke style.\n * @param {import(\"./Stroke.js\").default} stroke Stroke style.\n * @api\n */\n setStroke(stroke) {\n this.stroke_ = stroke;\n this.render();\n }\n\n /**\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n listenImageChange(listener) {}\n\n /**\n * Load not yet loaded URI.\n */\n load() {}\n\n /**\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n unlistenImageChange(listener) {}\n\n /**\n * Calculate additional canvas size needed for the miter.\n * @param {string} lineJoin Line join\n * @param {number} strokeWidth Stroke width\n * @param {number} miterLimit Miter limit\n * @return {number} Additional canvas size needed\n * @private\n */\n calculateLineJoinSize_(lineJoin, strokeWidth, miterLimit) {\n if (\n strokeWidth === 0 ||\n this.points_ === Infinity ||\n (lineJoin !== 'bevel' && lineJoin !== 'miter')\n ) {\n return strokeWidth;\n }\n // m | ^\n // i | |\\ .\n // t >| #\\\n // e | |\\ \\ .\n // r \\s\\\n // | \\t\\ . .\n // \\r\\ . .\n // | \\o\\ . . . . .\n // e \\k\\ . . . .\n // | \\e\\ . . . . .\n // d \\ \\ . . . .\n // | _ _a_ _\\# . . .\n // r1 / ` . .\n // | . .\n // b / . .\n // | . .\n // / r2 . .\n // | . .\n // / . .\n // |α . .\n // / . .\n // ° center\n let r1 = this.radius_;\n let r2 = this.radius2_ === undefined ? r1 : this.radius2_;\n if (r1 < r2) {\n const tmp = r1;\n r1 = r2;\n r2 = tmp;\n }\n const points =\n this.radius2_ === undefined ? this.points_ : this.points_ * 2;\n const alpha = (2 * Math.PI) / points;\n const a = r2 * Math.sin(alpha);\n const b = Math.sqrt(r2 * r2 - a * a);\n const d = r1 - b;\n const e = Math.sqrt(a * a + d * d);\n const miterRatio = e / a;\n if (lineJoin === 'miter' && miterRatio <= miterLimit) {\n return miterRatio * strokeWidth;\n }\n // Calculate the distance from center to the stroke corner where\n // it was cut short because of the miter limit.\n // l\n // ----+---- <= distance from center to here is maxr\n // /####|k ##\\\n // /#####^#####\\\n // /#### /+\\# s #\\\n // /### h/+++\\# t #\\\n // /### t/+++++\\# r #\\\n // /### a/+++++++\\# o #\\\n // /### p/++ fill +\\# k #\\\n ///#### /+++++^+++++\\# e #\\\n //#####/+++++/+\\+++++\\#####\\\n const k = strokeWidth / 2 / miterRatio;\n const l = (strokeWidth / 2) * (d / e);\n const maxr = Math.sqrt((r1 + k) * (r1 + k) + l * l);\n const bevelAdd = maxr - r1;\n if (this.radius2_ === undefined || lineJoin === 'bevel') {\n return bevelAdd * 2;\n }\n // If outer miter is over the miter limit the inner miter may reach through the\n // center and be longer than the bevel, same calculation as above but swap r1 / r2.\n const aa = r1 * Math.sin(alpha);\n const bb = Math.sqrt(r1 * r1 - aa * aa);\n const dd = r2 - bb;\n const ee = Math.sqrt(aa * aa + dd * dd);\n const innerMiterRatio = ee / aa;\n if (innerMiterRatio <= miterLimit) {\n const innerLength = (innerMiterRatio * strokeWidth) / 2 - r2 - r1;\n return 2 * Math.max(bevelAdd, innerLength);\n }\n return bevelAdd * 2;\n }\n\n /**\n * @return {RenderOptions} The render options\n * @protected\n */\n createRenderOptions() {\n let lineCap = defaultLineCap;\n let lineJoin = defaultLineJoin;\n let miterLimit = 0;\n let lineDash = null;\n let lineDashOffset = 0;\n let strokeStyle;\n let strokeWidth = 0;\n\n if (this.stroke_) {\n strokeStyle = this.stroke_.getColor();\n if (strokeStyle === null) {\n strokeStyle = defaultStrokeStyle;\n }\n strokeStyle = asColorLike(strokeStyle);\n strokeWidth = this.stroke_.getWidth();\n if (strokeWidth === undefined) {\n strokeWidth = defaultLineWidth;\n }\n lineDash = this.stroke_.getLineDash();\n lineDashOffset = this.stroke_.getLineDashOffset();\n lineJoin = this.stroke_.getLineJoin();\n if (lineJoin === undefined) {\n lineJoin = defaultLineJoin;\n }\n lineCap = this.stroke_.getLineCap();\n if (lineCap === undefined) {\n lineCap = defaultLineCap;\n }\n miterLimit = this.stroke_.getMiterLimit();\n if (miterLimit === undefined) {\n miterLimit = defaultMiterLimit;\n }\n }\n\n const add = this.calculateLineJoinSize_(lineJoin, strokeWidth, miterLimit);\n const maxRadius = Math.max(this.radius_, this.radius2_ || 0);\n const size = Math.ceil(2 * maxRadius + add);\n\n return {\n strokeStyle: strokeStyle,\n strokeWidth: strokeWidth,\n size: size,\n lineCap: lineCap,\n lineDash: lineDash,\n lineDashOffset: lineDashOffset,\n lineJoin: lineJoin,\n miterLimit: miterLimit,\n };\n }\n\n /**\n * @protected\n */\n render() {\n this.renderOptions_ = this.createRenderOptions();\n const size = this.renderOptions_.size;\n this.canvas_ = {};\n this.size_ = [size, size];\n }\n\n /**\n * @private\n * @param {RenderOptions} renderOptions Render options.\n * @param {CanvasRenderingContext2D} context The rendering context.\n * @param {number} pixelRatio The pixel ratio.\n */\n draw_(renderOptions, context, pixelRatio) {\n context.scale(pixelRatio, pixelRatio);\n // set origin to canvas center\n context.translate(renderOptions.size / 2, renderOptions.size / 2);\n\n this.createPath_(context);\n\n if (this.fill_) {\n let color = this.fill_.getColor();\n if (color === null) {\n color = defaultFillStyle;\n }\n context.fillStyle = asColorLike(color);\n context.fill();\n }\n if (this.stroke_) {\n context.strokeStyle = renderOptions.strokeStyle;\n context.lineWidth = renderOptions.strokeWidth;\n if (renderOptions.lineDash) {\n context.setLineDash(renderOptions.lineDash);\n context.lineDashOffset = renderOptions.lineDashOffset;\n }\n context.lineCap = renderOptions.lineCap;\n context.lineJoin = renderOptions.lineJoin;\n context.miterLimit = renderOptions.miterLimit;\n context.stroke();\n }\n }\n\n /**\n * @private\n * @param {RenderOptions} renderOptions Render options.\n */\n createHitDetectionCanvas_(renderOptions) {\n if (this.fill_) {\n let color = this.fill_.getColor();\n\n // determine if fill is transparent (or pattern or gradient)\n let opacity = 0;\n if (typeof color === 'string') {\n color = asArray(color);\n }\n if (color === null) {\n opacity = 1;\n } else if (Array.isArray(color)) {\n opacity = color.length === 4 ? color[3] : 1;\n }\n if (opacity === 0) {\n // if a transparent fill style is set, create an extra hit-detection image\n // with a default fill style\n const context = createCanvasContext2D(\n renderOptions.size,\n renderOptions.size\n );\n this.hitDetectionCanvas_ = context.canvas;\n\n this.drawHitDetectionCanvas_(renderOptions, context);\n }\n }\n if (!this.hitDetectionCanvas_) {\n this.hitDetectionCanvas_ = this.getImage(1);\n }\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} context The context to draw in.\n */\n createPath_(context) {\n let points = this.points_;\n const radius = this.radius_;\n if (points === Infinity) {\n context.arc(0, 0, radius, 0, 2 * Math.PI);\n } else {\n const radius2 = this.radius2_ === undefined ? radius : this.radius2_;\n if (this.radius2_ !== undefined) {\n points *= 2;\n }\n const startAngle = this.angle_ - Math.PI / 2;\n const step = (2 * Math.PI) / points;\n for (let i = 0; i < points; i++) {\n const angle0 = startAngle + i * step;\n const radiusC = i % 2 === 0 ? radius : radius2;\n context.lineTo(radiusC * Math.cos(angle0), radiusC * Math.sin(angle0));\n }\n context.closePath();\n }\n }\n\n /**\n * @private\n * @param {RenderOptions} renderOptions Render options.\n * @param {CanvasRenderingContext2D} context The context.\n */\n drawHitDetectionCanvas_(renderOptions, context) {\n // set origin to canvas center\n context.translate(renderOptions.size / 2, renderOptions.size / 2);\n\n this.createPath_(context);\n\n context.fillStyle = defaultFillStyle;\n context.fill();\n if (this.stroke_) {\n context.strokeStyle = renderOptions.strokeStyle;\n context.lineWidth = renderOptions.strokeWidth;\n if (renderOptions.lineDash) {\n context.setLineDash(renderOptions.lineDash);\n context.lineDashOffset = renderOptions.lineDashOffset;\n }\n context.lineJoin = renderOptions.lineJoin;\n context.miterLimit = renderOptions.miterLimit;\n context.stroke();\n }\n }\n}\n\nexport default RegularShape;\n","/**\n * @module ol/style/Circle\n */\n\nimport RegularShape from './RegularShape.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"./Fill.js\").default} [fill] Fill style.\n * @property {number} radius Circle radius.\n * @property {import(\"./Stroke.js\").default} [stroke] Stroke style.\n * @property {Array} [displacement=[0,0]] displacement\n * @property {number|import(\"../size.js\").Size} [scale=1] Scale. A two dimensional scale will produce an ellipse.\n * Unless two dimensional scaling is required a better result may be obtained with an appropriate setting for `radius`.\n * @property {number} [rotation=0] Rotation in radians\n * (positive rotation clockwise, meaningful only when used in conjunction with a two dimensional scale).\n * @property {boolean} [rotateWithView=false] Whether to rotate the shape with the view\n * (meaningful only when used in conjunction with a two dimensional scale).\n * @property {\"declutter\"|\"obstacle\"|\"none\"|undefined} [declutterMode] Declutter mode\n */\n\n/**\n * @classdesc\n * Set circle style for vector features.\n * @api\n */\nclass CircleStyle extends RegularShape {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options ? options : {radius: 5};\n\n super({\n points: Infinity,\n fill: options.fill,\n radius: options.radius,\n stroke: options.stroke,\n scale: options.scale !== undefined ? options.scale : 1,\n rotation: options.rotation !== undefined ? options.rotation : 0,\n rotateWithView:\n options.rotateWithView !== undefined ? options.rotateWithView : false,\n displacement:\n options.displacement !== undefined ? options.displacement : [0, 0],\n declutterMode: options.declutterMode,\n });\n }\n\n /**\n * Clones the style.\n * @return {CircleStyle} The cloned style.\n * @api\n */\n clone() {\n const scale = this.getScale();\n const style = new CircleStyle({\n fill: this.getFill() ? this.getFill().clone() : undefined,\n stroke: this.getStroke() ? this.getStroke().clone() : undefined,\n radius: this.getRadius(),\n scale: Array.isArray(scale) ? scale.slice() : scale,\n rotation: this.getRotation(),\n rotateWithView: this.getRotateWithView(),\n displacement: this.getDisplacement().slice(),\n declutterMode: this.getDeclutterMode(),\n });\n style.setOpacity(this.getOpacity());\n return style;\n }\n\n /**\n * Set the circle radius.\n *\n * @param {number} radius Circle radius.\n * @api\n */\n setRadius(radius) {\n this.radius_ = radius;\n this.render();\n }\n}\n\nexport default CircleStyle;\n","/**\n * @module ol/style/Fill\n */\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike|null} [color=null] A color, gradient or pattern.\n * See {@link module:ol/color~Color} and {@link module:ol/colorlike~ColorLike} for possible formats.\n * Default null; if null, the Canvas/renderer default black will be used.\n */\n\n/**\n * @classdesc\n * Set fill style for vector features.\n * @api\n */\nclass Fill {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options || {};\n\n /**\n * @private\n * @type {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike|null}\n */\n this.color_ = options.color !== undefined ? options.color : null;\n }\n\n /**\n * Clones the style. The color is not cloned if it is an {@link module:ol/colorlike~ColorLike}.\n * @return {Fill} The cloned style.\n * @api\n */\n clone() {\n const color = this.getColor();\n return new Fill({\n color: Array.isArray(color) ? color.slice() : color || undefined,\n });\n }\n\n /**\n * Get the fill color.\n * @return {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike|null} Color.\n * @api\n */\n getColor() {\n return this.color_;\n }\n\n /**\n * Set the color.\n *\n * @param {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike|null} color Color.\n * @api\n */\n setColor(color) {\n this.color_ = color;\n }\n}\n\nexport default Fill;\n","/**\n * @module ol/style/Stroke\n */\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} [color] A color, gradient or pattern.\n * See {@link module:ol/color~Color} and {@link module:ol/colorlike~ColorLike} for possible formats.\n * Default null; if null, the Canvas/renderer default black will be used.\n * @property {CanvasLineCap} [lineCap='round'] Line cap style: `butt`, `round`, or `square`.\n * @property {CanvasLineJoin} [lineJoin='round'] Line join style: `bevel`, `round`, or `miter`.\n * @property {Array} [lineDash] Line dash pattern. Default is `null` (no dash).\n * @property {number} [lineDashOffset=0] Line dash offset.\n * @property {number} [miterLimit=10] Miter limit.\n * @property {number} [width] Width.\n */\n\n/**\n * @classdesc\n * Set stroke style for vector features.\n * Note that the defaults given are the Canvas defaults, which will be used if\n * option is not defined. The `get` functions return whatever was entered in\n * the options; they will not return the default.\n * @api\n */\nclass Stroke {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options || {};\n\n /**\n * @private\n * @type {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike}\n */\n this.color_ = options.color !== undefined ? options.color : null;\n\n /**\n * @private\n * @type {CanvasLineCap|undefined}\n */\n this.lineCap_ = options.lineCap;\n\n /**\n * @private\n * @type {Array|null}\n */\n this.lineDash_ = options.lineDash !== undefined ? options.lineDash : null;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.lineDashOffset_ = options.lineDashOffset;\n\n /**\n * @private\n * @type {CanvasLineJoin|undefined}\n */\n this.lineJoin_ = options.lineJoin;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.miterLimit_ = options.miterLimit;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.width_ = options.width;\n }\n\n /**\n * Clones the style.\n * @return {Stroke} The cloned style.\n * @api\n */\n clone() {\n const color = this.getColor();\n return new Stroke({\n color: Array.isArray(color) ? color.slice() : color || undefined,\n lineCap: this.getLineCap(),\n lineDash: this.getLineDash() ? this.getLineDash().slice() : undefined,\n lineDashOffset: this.getLineDashOffset(),\n lineJoin: this.getLineJoin(),\n miterLimit: this.getMiterLimit(),\n width: this.getWidth(),\n });\n }\n\n /**\n * Get the stroke color.\n * @return {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} Color.\n * @api\n */\n getColor() {\n return this.color_;\n }\n\n /**\n * Get the line cap type for the stroke.\n * @return {CanvasLineCap|undefined} Line cap.\n * @api\n */\n getLineCap() {\n return this.lineCap_;\n }\n\n /**\n * Get the line dash style for the stroke.\n * @return {Array|null} Line dash.\n * @api\n */\n getLineDash() {\n return this.lineDash_;\n }\n\n /**\n * Get the line dash offset for the stroke.\n * @return {number|undefined} Line dash offset.\n * @api\n */\n getLineDashOffset() {\n return this.lineDashOffset_;\n }\n\n /**\n * Get the line join type for the stroke.\n * @return {CanvasLineJoin|undefined} Line join.\n * @api\n */\n getLineJoin() {\n return this.lineJoin_;\n }\n\n /**\n * Get the miter limit for the stroke.\n * @return {number|undefined} Miter limit.\n * @api\n */\n getMiterLimit() {\n return this.miterLimit_;\n }\n\n /**\n * Get the stroke width.\n * @return {number|undefined} Width.\n * @api\n */\n getWidth() {\n return this.width_;\n }\n\n /**\n * Set the color.\n *\n * @param {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} color Color.\n * @api\n */\n setColor(color) {\n this.color_ = color;\n }\n\n /**\n * Set the line cap.\n *\n * @param {CanvasLineCap|undefined} lineCap Line cap.\n * @api\n */\n setLineCap(lineCap) {\n this.lineCap_ = lineCap;\n }\n\n /**\n * Set the line dash.\n *\n * @param {Array|null} lineDash Line dash.\n * @api\n */\n setLineDash(lineDash) {\n this.lineDash_ = lineDash;\n }\n\n /**\n * Set the line dash offset.\n *\n * @param {number|undefined} lineDashOffset Line dash offset.\n * @api\n */\n setLineDashOffset(lineDashOffset) {\n this.lineDashOffset_ = lineDashOffset;\n }\n\n /**\n * Set the line join.\n *\n * @param {CanvasLineJoin|undefined} lineJoin Line join.\n * @api\n */\n setLineJoin(lineJoin) {\n this.lineJoin_ = lineJoin;\n }\n\n /**\n * Set the miter limit.\n *\n * @param {number|undefined} miterLimit Miter limit.\n * @api\n */\n setMiterLimit(miterLimit) {\n this.miterLimit_ = miterLimit;\n }\n\n /**\n * Set the width.\n *\n * @param {number|undefined} width Width.\n * @api\n */\n setWidth(width) {\n this.width_ = width;\n }\n}\n\nexport default Stroke;\n","/**\n * @module ol/style/Style\n */\n\nimport CircleStyle from './Circle.js';\nimport Fill from './Fill.js';\nimport Stroke from './Stroke.js';\nimport {assert} from '../asserts.js';\n\n/**\n * A function that takes an {@link module:ol/Feature~Feature} and a `{number}`\n * representing the view's resolution. The function should return a\n * {@link module:ol/style/Style~Style} or an array of them. This way e.g. a\n * vector layer can be styled. If the function returns `undefined`, the\n * feature will not be rendered.\n *\n * @typedef {function(import(\"../Feature.js\").FeatureLike, number):(Style|Array\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./map.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./map.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./map.vue?vue&type=template&id=34763d30&\"\nimport script from \"./map.vue?vue&type=script&lang=js&\"\nexport * from \"./map.vue?vue&type=script&lang=js&\"\nimport style0 from \"./map.vue?vue&type=style&index=0&id=34763d30&prod&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return ti?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n"],"names":["render","_vm","this","_c","_self","attrs","ref","staticStyle","staticClass","on","$event","canAddPoints","_v","clearPointsLayers","startAnimation","stopAnimation","staticRenderFns","BaseEvent","constructor","type","propagationStopped","defaultPrevented","target","preventDefault","stopPropagation","PROPERTYCHANGE","Disposable","disposed","dispose","disposeInternal","binarySearch","haystack","needle","comparator","mid","cmp","ascending","low","high","length","found","a","b","linearFindNearest","arr","direction","n","i","candidate","reverseSubArray","begin","end","tmp","extend","data","extension","Array","isArray","equals","arr1","arr2","len1","isSorted","func","strict","compare","every","currentVal","index","res","TRUE","FALSE","VOID","memoizeOne","fn","lastResult","lastArgs","lastThis","called","nextArgs","prototype","slice","call","arguments","arrayEquals","apply","clear","object","property","isEmpty","Target","super","eventTarget_","pendingRemovals_","dispatching_","listeners_","addEventListener","listener","listeners","listenersForType","includes","push","dispatchEvent","event","isString","evt","Event","dispatching","pendingRemovals","propagate","ii","handleEvent","pr","removeEventListener","getListeners","undefined","hasListener","Object","keys","indexOf","splice","CHANGE","ERROR","BLUR","CLEAR","CONTEXTMENU","CLICK","DBLCLICK","DRAGENTER","DRAGOVER","DROP","FOCUS","KEYDOWN","KEYPRESS","LOAD","RESIZE","TOUCHMOVE","WHEEL","listen","thisArg","once","bind","originalListener","eventsKey","listenOnce","unlistenByKey","key","Observable","EventTarget","onInternal","onceInternal","un","unInternal","revision_","changed","EventType","getRevision","len","ol_key","unByKey","abstract","Error","uidCounter_","getUid","obj","ol_uid","String","ObjectEvent","oldValue","BaseObject","values","values_","setProperties","get","value","hasOwnProperty","getKeys","getProperties","assign","getPropertiesInternal","hasProperties","notify","eventType","ObjectEventType","addChangeListener","removeChangeListener","set","silent","applyProperties","source","unset","OPACITY","VISIBLE","EXTENT","Z_INDEX","MAX_RESOLUTION","MIN_RESOLUTION","MAX_ZOOM","MIN_ZOOM","SOURCE","MAP","assert","assertion","errorMessage","clamp","min","max","Math","squaredSegmentDistance","x","y","x1","y1","x2","y2","dx","dy","t","squaredDistance","solveLinearSystem","mat","maxRow","maxEl","abs","r","absValue","j","coef","k","l","m","toRadians","angleInDegrees","PI","modulo","lerp","toFixed","decimals","factor","pow","round","floor","ceil","BaseLayer","options","background_","background","properties","LayerProperty","opacity","visible","zIndex","maxResolution","Infinity","minResolution","minZoom","maxZoom","className_","className","state_","getBackground","getClassName","getLayerState","managed","state","layer","getZIndex","getOpacity","getVisible","extent","getExtent","getMaxResolution","getMinResolution","getMinZoom","getMaxZoom","getLayersArray","array","getLayerStatesArray","states","getSourceState","setBackground","setExtent","setMaxResolution","setMinResolution","setMaxZoom","setMinZoom","setOpacity","setVisible","setZIndex","zindex","PRERENDER","POSTRENDER","PRECOMPOSE","POSTCOMPOSE","RENDERCOMPLETE","ANIMATING","INTERACTING","CENTER","RESOLUTION","ROTATION","DEFAULT_MAX_ZOOM","DEFAULT_TILE_SIZE","METERS_PER_UNIT","Projection","code_","code","units_","units","extent_","worldExtent_","worldExtent","axisOrientation_","axisOrientation","global_","global","canWrapX_","getPointResolutionFunc_","getPointResolution","defaultTileGrid_","metersPerUnit_","metersPerUnit","canWrapX","getCode","getUnits","getMetersPerUnit","getWorldExtent","getAxisOrientation","isGlobal","setGlobal","getDefaultTileGrid","setDefaultTileGrid","tileGrid","setWorldExtent","setGetPointResolution","getPointResolutionFunc","RADIUS","HALF_SIZE","WORLD_EXTENT","MAX_SAFE_Y","log","tan","EPSG3857Projection","resolution","point","cosh","PROJECTIONS","fromEPSG4326","input","output","dimension","toEPSG4326","atan","exp","EPSG4326Projection","cache","replace","add","projection","transforms","destination","transformFn","sourceCode","destinationCode","transform","UNKNOWN","INTERSECTING","ABOVE","RIGHT","BELOW","LEFT","boundingExtent","coordinates","createEmpty","extendCoordinate","_boundingExtentXYs","xs","ys","dest","minX","minY","maxX","maxY","createOrUpdate","buffer","clone","closestSquaredDistanceXY","containsCoordinate","coordinate","containsXY","containsExtent","extent1","extent2","coordinateRelationship","relationship","Relationship","createOrUpdateEmpty","createOrUpdateFromCoordinate","createOrUpdateFromFlatCoordinates","flatCoordinates","offset","stride","extendFlatCoordinates","extendXY","forEachCorner","callback","val","getBottomLeft","getBottomRight","getTopRight","getTopLeft","getArea","area","getWidth","getHeight","getCenter","getCorner","corner","getForViewAndSize","center","rotation","size","x0","y0","x3","y3","getRotatedViewport","cosRotation","cos","sinRotation","sin","xCos","xSin","yCos","ySin","getIntersection","intersection","intersects","returnOrUpdate","intersectsSegment","start","startRel","endRel","startX","startY","endX","endY","slope","applyTransform","stops","width","height","wrapX","projectionExtent","worldWidth","worldsAway","wrapAndSliceX","isFinite","delta","coordinate1","coordinate2","rotate","angle","cosAngle","sinAngle","scale","getWorldsAway","sourceExtentWidth","DEFAULT_RADIUS","getDistance","c1","c2","radius","lat1","lat2","deltaLatBy2","deltaLonBy2","atan2","sqrt","levels","info","warn","error","none","level","args","console","showCoordinateWarning","disableCoordinateWarning","disable","hide","cloneTransform","identityTransform","addProjection","addProj","addTransformFunc","addProjections","projections","forEach","projectionLike","getProj","pointResolution","getter","projUnits","getTransformFromProjections","vertices","addEquivalentProjections","addEquivalentTransforms","projections1","projections2","forwardTransform","inverseTransform","projection1","projection2","createProjection","defaultCode","equivalent","equalUnits","transformFunc","sourceProjection","destinationProjection","getTransformFunc","getTransform","transformExtent","userProjection","getUserProjection","toUserCoordinate","fromUserCoordinate","destProjection","toUserExtent","fromUserExtent","toUserResolution","sourceUnits","userUnits","addCommon","EPSG3857_PROJECTIONS","EPSG4326_PROJECTIONS","createExtent","onlyCenter","smooth","isMoving","centerShift","viewWidth","viewHeight","shiftX","shiftY","ratio","getViewportClampedResolution","maxExtent","viewportSize","showFullExtent","xResolution","yResolution","getSmoothClampedResolution","result","createSnapToResolutions","resolutions","cappedMaxRes","capped","z","createSnapToPower","power","tolerance","minZoomLevel","cappedZoomLevel","zoomLevel","newResolution","createMinMaxResolution","createSnapToN","theta","createSnapToZero","easeIn","easeOut","inAndOut","linear","ua","navigator","userAgent","toLowerCase","FIREFOX","SAFARI","WEBKIT","test","MAC","DEVICE_PIXEL_RATIO","devicePixelRatio","WORKER_OFFSCREEN_CANVAS","WorkerGlobalScope","OffscreenCanvas","self","IMAGE_DECODE","Image","decode","PASSIVE_EVENT_LISTENERS","passive","defineProperty","window","create","multiply","transform1","transform2","a1","b1","d1","e1","f1","a2","b2","d2","e2","f2","c","d","e","f","setFromArray","makeScale","compose","dx1","dy1","sx","sy","dx2","dy2","makeInverse","det","determinant","transformStringDiv","toString","transformString","join","node","document","createElement","style","transform2D","anchor","anchorX","anchorY","deltaX","deltaY","translate","tmpTransform","createTransform","Geometry","extentRevision_","simplifiedGeometryMaxMinSquaredTolerance","simplifiedGeometryRevision","simplifyTransformedInternal","revision","squaredTolerance","getSimplifiedGeometry","simplifyTransformed","closestPointXY","closestPoint","minSquaredDistance","coord","getClosestPoint","NaN","intersectsCoordinate","computeExtent","isNaN","simplify","getType","intersectsExtent","sourceProj","getProjection","inCoordinates","outCoordinates","pixelExtent","projectedExtent","composeTransform","SimpleGeometry","layout","getCoordinates","getFirstCoordinate","getFlatCoordinates","getLastCoordinate","getLayout","simplifiedGeometry","getSimplifiedGeometryInternal","simplifiedFlatCoordinates","getStride","setFlatCoordinates","getStrideForLayout","setCoordinates","setLayout","nesting","getLayoutForStride","transformGeom2D","simpleGeometry","assignClosest","offset1","offset2","maxSquaredDelta","squaredDelta","squaredDx","arrayMaxSquaredDelta","ends","assignClosestPoint","maxDelta","isRing","tmpPoint","assignClosestArrayPoint","deflateCoordinate","deflateCoordinates","deflateCoordinatesArray","coordinatess","jj","douglasPeucker","simplifiedOffset","markers","stack","last","pop","first","maxSquaredDistance","snap","quantize","quantizeArray","simplifiedEnds","inflateCoordinates","inflateCoordinatesArray","inflateMultiCoordinatesArray","endss","coordinatesss","linearRing","twiceArea","linearRings","LinearRing","maxDelta_","maxDeltaRevision_","linearRingArea","Point","linearRingContainsExtent","outside","linearRingContainsXY","wn","linearRingsContainsXY","getInteriorPointOfArray","flatCenters","flatCentersOffset","intersections","rr","pointX","maxSegmentLength","sort","segmentLength","ret","intersectsLineString","coordinatesExtent","forEachSegment","point1","point2","intersectsLinearRing","intersectsLinearRingArray","linearRingIsClockwise","edge","linearRingsAreOriented","right","isClockwise","orientLinearRings","reverse","reverseCoordinates","Polygon","ends_","flatInteriorPointRevision_","flatInteriorPoint_","orientedRevision_","orientedFlatCoordinates_","appendLinearRing","polygon","getOrientedFlatCoordinates","linearRingsArea","getEnds","getFlatInteriorPoint","flatCenter","getInteriorPoint","getLinearRingCount","getLinearRing","getLinearRings","fromExtent","DEFAULT_MIN_ZOOM","View","hints_","animations_","updateAnimationKey_","projection_","viewportSize_","targetCenter_","targetResolution_","targetRotation_","nextCenter_","nextResolution_","nextRotation_","cancelAnchor_","applyOptions_","ViewProperty","resolutionConstraintInfo","createResolutionConstraint","maxResolution_","minResolution_","zoomFactor_","zoomFactor","resolutions_","padding_","padding","minZoom_","centerConstraint","createCenterConstraint","resolutionConstraint","constraint","rotationConstraint","createRotationConstraint","constraints_","setRotation","setCenterInternal","setResolution","zoom","setZoom","oldPadding","getCenterInternal","newPadding","getResolution","offsetX","offsetY","getUpdatedOptions_","newOptions","getZoom","getRotation","animate","var_args","isDef","getAnimating","resolveConstraints","animateInternal","animationCount","animationCallback","Date","now","series","animation","complete","duration","easing","sourceCenter","targetCenter","sourceResolution","targetResolution","getResolutionForZoom","sourceRotation","targetRotation","isNoopAnimation","setHint","ViewHint","updateAnimations_","getInteracting","cancelAnimations","cancelAnimationFrame","more","seriesComplete","elapsed","fraction","progress","getViewportSize_","constrainedResolution","calculateCenterZoom","applyTargetState_","constrainedRotation","calculateCenterRotate","filter","Boolean","requestAnimationFrame","currentCenter","rotateCoordinate","addCoordinate","currentResolution","w","h","setViewportSize","getConstraints","getConstrainResolution","getHints","hints","calculateExtent","calculateExtentInternal","getViewportSizeMinusPadding_","getZoomForResolution","setConstrainResolution","enabled","constrainResolution","getResolutions","getResolutionForExtent","getResolutionForExtentInternal","getResolutionForValueFunction","getConstrainedResolution","getValueForResolutionFunction","logPower","getState","reducedSize","calculateCenterOn","nextCenter","nextResolution","nextRotation","getViewStateAndExtent","viewState","nearest","baseLevel","fit","geometryOrExtent","geometry","polygonFromExtent","fitInternal","rotatedExtentForGeometry","coords","minRotX","minRotY","maxRotX","maxRotY","rotX","rotY","rotatedExtent","centerRot","centerX","centerY","getConstrainedCenter","centerOn","position","centerOnInternal","calculateCenterShift","shiftedCenter","adjustCenter","deltaCoordinates","setCenter","adjustCenterInternal","adjustResolution","adjustResolutionInternal","adjustZoom","adjustRotation","adjustRotationInternal","newRotation","hint","doNotCancelAnims","forceMoving","newCenter","resolutionDirection","beginInteraction","endInteraction","endInteractionInternal","getConstrainedZoom","targetZoom","targetRes","returnValue","setTimeout","smoothExtentConstraint","constrainOnlyCenter","multiWorld","centerNone","defaultMaxZoom","defaultZoomFactor","smoothResolutionConstraint","projExtent","degrees","defaultMaxResolution","defaultMinResolution","enableRotation","constrainRotation","rotationNone","coordinatesEqual","Layer","baseOptions","mapPrecomposeKey_","mapRenderKey_","sourceChangeKey_","renderer_","sourceReady_","rendered","map","setMap","handleSourcePropertyChange_","setSource","getSource","getRenderSource","handleSourceChange_","getFeatures","pixel","Promise","resolve","getData","isVisible","view","frameState","getMapInternal","layerState","getView","layerStatesArray","getLayerGroup","find","layerExtent","inView","getAttributions","attributions","layerRenderer","getRenderer","prepareFrame","renderFrame","unrender","setMapInternal","RenderEventType","renderEvent","some","arrayLayerState","createRenderer","hasRenderer","PRELOAD","USE_INTERIM_TILES_ON_ERROR","BaseTileLayer","preload","useInterimTilesOnError","setPreload","setUseInterimTilesOnError","getPreload","TileProperty","getUseInterimTilesOnError","IDLE","LOADING","LOADED","EMPTY","LayerRenderer","ready","boundHandleImageChange_","handleImageChange_","layer_","declutterExecutorGroup","loadedTileCallback","tiles","tile","tileCoord","createLoadedTileFinder","tileRange","forEachLoadedTile","forEachFeatureAtCoordinate","hitTolerance","matches","getLayer","handleFontsChanged","image","ImageState","renderIfReadyAndVisible","loadImage","imageState","load","RenderEvent","inversePixelTransform","context","HEX_COLOR_RE_","NAMED_COLOR_RE_","asString","color","fromNamed","el","body","appendChild","rgb","getComputedStyle","removeChild","fromString","MAX_CACHE_SIZE","cacheSize","s","fromStringInternal_","asArray","g","exec","hasAlpha","parseInt","substr","startsWith","split","Number","normalize","createCanvasContext2D","canvasPool","settings","canvas","shift","getContext","releaseCanvas","clearRect","outerWidth","element","offsetWidth","marginLeft","marginRight","outerHeight","offsetHeight","marginTop","marginBottom","replaceNode","newNode","oldNode","parent","parentNode","replaceChild","removeNode","removeChildren","lastChild","replaceChildren","children","oldChildren","childNodes","oldChild","newChild","insertBefore","pixelContext","createPixelContext","willReadFrequently","CanvasLayerRenderer","container","renderedResolution","tempTransform","pixelTransform","containerReused","pixelContext_","getImageData","col","row","drawImage","err","useContainer","backgroundColor","layerClassName","firstElementChild","HTMLCanvasElement","left","transformOrigin","clipUnrotated","topLeft","topRight","bottomRight","bottomLeft","coordinateToPixelTransform","inverted","save","beginPath","moveTo","lineTo","clip","dispatchRenderEvent_","preRender","postRender","getRenderTransform","pixelRatio","Tile","interimTile","transition_","transition","transitionStarts_","interpolate","release","TileState","setState","getKey","getInterimTile","refreshInterimChain","prev","getTileCoord","getAlpha","id","time","inTransition","endTransition","listenImage","loadHandler","errorHandler","img","listening","decoding","loaded","listenerKeys","src","then","catch","reject","handleLoad","unlisten","handleError","decodeFallback","ImageTile","crossOrigin","tileLoadFunction","crossOrigin_","src_","image_","unlisten_","tileLoadFunction_","getImage","setImage","unlistenImage_","handleImageError_","getBlankImage","handleImageLoad_","naturalWidth","naturalHeight","ctx","fillStyle","fillRect","ERROR_THRESHOLD","MAX_SUBDIVISION","MAX_TRIANGLE_WIDTH","Triangulation","targetProj","targetExtent","maxSourceExtent","errorThreshold","destinationResolution","sourceProj_","targetProj_","transformInvCache","transformInv","transformInv_","maxSourceExtent_","errorThresholdSquared_","triangles_","wrapsXInSource_","canWrapXInSource_","sourceWorldWidth_","targetWorldWidth_","destinationTopLeft","destinationTopRight","destinationBottomRight","destinationBottomLeft","sourceTopLeft","sourceTopRight","sourceBottomRight","sourceBottomLeft","maxSubdivision","log2","addQuad_","leftBound","triangle","newTriangle","addTriangle_","aSrc","bSrc","cSrc","dSrc","sourceQuadExtent","sourceCoverageX","sourceWorldWidth","wrapsX","needsSubdivision","targetQuadExtent","targetCoverageX","isNotFinite","centerSrc","centerSrcEstimX","centerSrcErrorSquared","bc","bcSrc","da","daSrc","ab","abSrc","cd","cdSrc","calculateSourceExtent","getTriangles","brokenDiagonalRendering_","drawTestTriangle","u1","v1","u2","v2","closePath","restore","verifyBrokenDiagonalRendering","isBrokenDiagonalRendering","globalCompositeOperation","calculateSourceResolution","targetMetersPerUnit","sourceMetersPerUnit","sourceExtent","compensationFactor","calculateSourceExtentResolution","triangulation","sources","gutter","renderEdges","imageSmoothingEnabled","pixelRound","sourceDataExtent","canvasWidthInUnits","canvasHeightInUnits","stitchContext","stitchScale","xPos","yPos","srcWidth","srcHeight","targetTopLeft","u0","v0","sourceNumericalShiftX","sourceNumericalShiftY","augmentedMatrix","affineCoefs","steps","ud","vd","step","strokeStyle","lineWidth","stroke","ReprojTile","sourceTileGrid","targetTileGrid","wrappedTileCoord","getTileFunction","renderEdges_","pixelRatio_","gutter_","canvas_","sourceTileGrid_","targetTileGrid_","wrappedTileCoord_","sourceTiles_","sourcesListenerKeys_","sourceZ_","getTileCoordExtent","maxTargetExtent","limitedTargetExtent","sourceProjExtent","errorThresholdInPixels","triangulation_","getZForResolution","sourceRange","getTileRangeForExtentAndZ","srcX","srcY","reproject_","getTileSize","renderReprojected","leftToLoad","sourceListenKey","unlistenSources_","TileRange","contains","containsTileRange","getSize","hasArea","toSize","CanvasTileLayerRenderer","tileLayer","extentChanged","renderedExtent_","renderedPixelRatio","renderedProjection","renderedRevision","renderedTiles","newTiles_","tmpExtent","tmpTileRange_","isDrawableTile","tileState","getTile","tileSource","pixelToCoordinateTransform","getTileGridForProjection","tilePixelRatio","getTilePixelRatio","getTileCoordForCoordAndZ","tileOrigin","getOrigin","tileSize","tileResolution","getGutterForProjection","layerIndex","viewResolution","viewCenter","sourceRevision","zDirection","canvasExtent","tilesToDrawByZ","findLoadedTiles","tmpTileRange","viewport","tileCoordIntersectsViewport","uid","childTileRange","getTileCoordChildTileRange","covered","forEachTileCoordParentTileRange","canvasScale","canvasTransform","toTransformString","getInterpolate","clips","clipZs","currentClip","zs","getOpaque","currentZ","currentTilePixelSize","getTilePixelSize","currentScale","originTileCoord","originTileExtent","origin","tileGutter","tilesToDraw","tileCoordKey","xIndex","nextX","yIndex","nextY","contextSaved","drawTileImage","unshift","updateUsedTiles","usedTiles","manageTilePyramid","scheduleExpireCache","getTileImage","alpha","alphaChanged","globalAlpha","canExpireCache","postRenderFunction","tileSourceKey","expireCache","postRenderFunctions","tileCallback","wantedTiles","tileQueue","tileCount","isKeyQueued","enqueue","getTileCoordCenter","useTile","updateCacheSize","TileLayer","ImageStyle","opacity_","rotateWithView_","rotateWithView","rotation_","scale_","scaleArray_","displacement_","displacement","declutterMode_","declutterMode","getScale","getRotateWithView","getDisplacement","getDeclutterMode","getScaleArray","getAnchor","getHitDetectionImage","getPixelRatio","getImageState","getImageSize","setDisplacement","setRotateWithView","setScale","listenImageChange","unlistenImageChange","asColorLike","CLASS_HIDDEN","CLASS_SELECTABLE","CLASS_UNSELECTABLE","CLASS_CONTROL","CLASS_COLLAPSED","fontRegEx","RegExp","fontRegExMatchIndex","getFontParameters","fontSpec","match","lineHeight","weight","variant","families","family","defaultFont","defaultFillStyle","defaultLineCap","defaultLineDash","defaultLineDashOffset","defaultLineJoin","defaultMiterLimit","defaultStrokeStyle","defaultTextAlign","defaultTextBaseline","defaultPadding","defaultLineWidth","checkedFonts","measureFont","measureContext","textHeights","registerFont","retries","referenceFonts","text","interval","referenceWidth","isAvailable","fontStyle","fontWeight","fontFamily","available","referenceFont","measureTextWidth","check","done","fonts","font","clearInterval","setInterval","measureTextHeight","measureElement","metrics","measureText","actualBoundingBoxAscent","actualBoundingBoxDescent","innerHTML","minHeight","maxHeight","border","display","measureAndCacheTextWidth","reduce","curr","getTextDimensions","baseStyle","chunks","widths","heights","lineWidths","currentWidth","currentHeight","drawImageOrLabel","labelOrImage","originX","originY","contextInstructions","executeLabelInstructions","label","RegularShape","hitDetectionCanvas_","fill_","fill","origin_","points_","points","radius_","radius1","radius2_","radius2","angle_","stroke_","size_","renderOptions_","getFill","getPoints","getRadius","getRadius2","getAngle","getStroke","setFill","createHitDetectionCanvas_","renderOptions","draw_","setStroke","calculateLineJoinSize_","lineJoin","strokeWidth","miterLimit","r1","r2","miterRatio","maxr","bevelAdd","aa","bb","dd","ee","innerMiterRatio","innerLength","createRenderOptions","lineCap","lineDash","lineDashOffset","getColor","getLineDash","getLineDashOffset","getLineJoin","getLineCap","getMiterLimit","maxRadius","createPath_","setLineDash","drawHitDetectionCanvas_","arc","startAngle","angle0","radiusC","CircleStyle","setRadius","Fill","color_","setColor","Stroke","lineCap_","lineDash_","lineDashOffset_","lineJoin_","miterLimit_","width_","setLineCap","setLineDashOffset","setLineJoin","setMiterLimit","setWidth","Style","geometry_","geometryFunction_","defaultGeometryFunction","setGeometry","renderer","hitDetectionRenderer_","hitDetectionRenderer","text_","zIndex_","getGeometry","getText","setRenderer","setHitDetectionRenderer","getHitDetectionRenderer","getGeometryFunction","setText","feature","toFunction","styleFunction","styles","defaultStyles","createDefaultStyle","IconImageCache","cache_","cacheSize_","maxCacheSize_","expire","iconImage","setSize","maxCacheSize","colorString","shared","taintedTestContext","IconImage","hitDetectionImage_","imageState_","tainted_","initializeImage_","isTainted_","dispatchChangeEvent_","replaceColor_","getSrc","HTMLImageElement","cacheKey","iconImageCache","calculateScale","wantedWidth","wantedHeight","Icon","anchor_","normalizedAnchor_","anchorOrigin_","anchorOrigin","anchorXUnits_","anchorXUnits","anchorYUnits_","anchorYUnits","iconImage_","getIconImage","offset_","offsetOrigin_","offsetOrigin","initialOptions_","onload","imageSize","setAnchor","iconImageSize","DEFAULT_FILL_COLOR","Text","font_","textAlign_","textAlign","justify_","justify","repeat_","repeat","textBaseline_","textBaseline","maxAngle_","maxAngle","placement_","placement","overflow_","overflow","offsetX_","offsetY_","backgroundFill_","backgroundFill","backgroundStroke_","backgroundStroke","getFont","getPlacement","getRepeat","getMaxAngle","getOverflow","getTextAlign","getJustify","getTextBaseline","getOffsetX","getOffsetY","getBackgroundFill","getBackgroundStroke","getPadding","setOverflow","setFont","setMaxAngle","setOffsetX","setOffsetY","setPlacement","setRepeat","setTextAlign","setJustify","setTextBaseline","setBackgroundFill","setBackgroundStroke","setPadding","numTypes","BooleanType","NumberType","StringType","ColorType","NumberArrayType","AnyType","typeNames","namedTypes","typeName","names","namedType","includesType","broad","specific","overlapsType","oneType","otherType","LiteralExpression","CallExpression","operator","newParsingContext","variables","Set","parse","encoded","parseCallExpression","item","Ops","Get","Var","Any","All","Not","Resolution","Equal","NotEqual","GreaterThan","GreaterThanOrEqualTo","LessThan","LessThanOrEqualTo","Multiply","Divide","Add","Subtract","Clamp","Mod","Pow","Abs","Floor","Ceil","Round","Sin","Cos","Atan","Sqrt","Match","parsers","createParser","withArgs","withGetArgs","withVarArgs","withNoArgs","arg","operation","minArgs","maxArgs","argType","argCount","plural","expression","gotType","expectedType","argValidator","returnType","parser","newEvaluationContext","buildExpression","expected","actual","compileExpression","compileAssertionExpression","compileAccessorExpression","compileLogicalExpression","compileComparisonExpression","compileNumericExpression","compileMatchExpression","nameExpression","name","op","always","rulesToStyleFunction","rules","parsingContext","evaluator","buildRuleSet","evaluationContext","flatStylesToStyleFunction","flatStyles","evaluators","buildStyle","compiledRules","rule","styleLength","someMatched","filterEvaluator","else","styleEvaluator","flatStyle","evaluateFill","buildFill","evaluateStroke","buildStroke","evaluateText","buildText","evaluateImage","buildImage","evaluateZIndex","numberEvaluator","empty","prefix","evaluateColor","colorLikeEvaluator","evaluateWidth","evaluateLineCap","stringEvaluator","evaluateLineJoin","evaluateLineDash","numberArrayEvaluator","evaluateLineDashOffset","evaluateMiterLimit","evaluateValue","evaluateBackgroundFill","evaluateBackgroundStroke","evaluateFont","evaluateMaxAngle","evaluateOffsetX","evaluateOffsetY","evaluateOverflow","booleanEvaluator","evaluatePlacement","evaluateRepeat","evaluateScale","sizeLikeEvaluator","evaluateRotateWithView","evaluateRotation","evaluateAlign","evaluateJustify","evaluateBaseline","evaluatePadding","buildIcon","buildShape","buildCircle","srcName","requireString","evaluateAnchor","coordinateEvaluator","evaluateOpacity","evaluateDisplacement","optionalIconOrigin","optionalIconAnchorUnits","optionalColorLike","optionalString","optionalNumberArray","optionalNumber","optionalSize","optionalDeclutterMode","icon","pointsName","requireNumber","shape","evaluateRadius","circle","Circle","requireColorLike","requireNumberArray","requireSizeLike","Property","RENDER_ORDER","BaseVectorLayer","renderBuffer","updateWhileAnimating","updateWhileInteracting","declutter_","declutter","renderBuffer_","style_","styleFunction_","setStyle","updateWhileAnimating_","updateWhileInteracting_","getDeclutter","getRenderBuffer","getRenderOrder","getStyle","getStyleFunction","getUpdateWhileAnimating","getUpdateWhileInteracting","renderDeclutter","declutterTree","RBush","setRenderOrder","renderOrder","toStyleLike","toStyleFunction","Instruction","BEGIN_GEOMETRY","BEGIN_PATH","CIRCLE","CLOSE_PATH","CUSTOM","DRAW_CHARS","DRAW_IMAGE","END_GEOMETRY","FILL","MOVE_TO_LINE_TO","SET_FILL_STYLE","SET_STROKE_STYLE","STROKE","fillInstruction","strokeInstruction","beginPathInstruction","closePathInstruction","VectorContext","drawCustom","drawGeometry","drawCircle","circleGeometry","drawFeature","drawGeometryCollection","geometryCollectionGeometry","drawLineString","lineStringGeometry","drawMultiLineString","multiLineStringGeometry","drawMultiPoint","multiPointGeometry","drawMultiPolygon","multiPolygonGeometry","drawPoint","pointGeometry","drawPolygon","polygonGeometry","drawText","setFillStrokeStyle","setImageStyle","imageStyle","declutterImageWithText","setTextStyle","textStyle","CanvasBuilder","maxLineWidth","beginGeometryInstruction1_","beginGeometryInstruction2_","bufferedMaxExtent_","instructions","tmpCoordinate_","hitDetectionInstructions","applyPixelRatio","dashArray","dash","appendFlatPointCoordinates","getBufferedMaxExtent","tmpCoord","myEnd","appendFlatLineCoordinates","closed","skipFirst","lastXCoord","lastYCoord","nextCoord","lastRel","nextRel","skipped","drawCustomCoordinates_","builderEnds","builderEnd","beginGeometry","builderBegin","builderEndss","getEndss","myEnds","CanvasInstruction","endGeometry","finish","reverseHitDetectionInstructions","instruction","fillStyleColor","strokeStyleColor","strokeStyleLineCap","strokeStyleLineDash","strokeStyleLineDashOffset","strokeStyleLineJoin","strokeStyleWidth","strokeStyleMiterLimit","createFill","applyStroke","createStroke","updateFillStyle","currentFillStyle","updateStrokeStyle","currentStrokeStyle","currentLineCap","currentLineDash","currentLineDashOffset","currentLineJoin","currentLineWidth","currentMiterLimit","endGeometryInstruction","CanvasImageBuilder","imagePixelRatio_","anchorX_","anchorY_","height_","originX_","originY_","declutterImageWithText_","myBegin","sharedData","CanvasLineStringBuilder","drawFlatCoordinates_","moveToLineToInstruction","lastStroke","CanvasPolygonBuilder","drawFlatCoordinatess_","numEnds","setFillStrokeStyles_","circleInstruction","lineChunk","chunkLength","cursor","chunkM","currentChunk","missing","matchingChunk","acos","m12","m23","x12","y12","x23","y23","chunkStart","chunkEnd","TEXT_ALIGN","CanvasTextBuilder","labels_","textOffsetX_","textOffsetY_","textRotateWithView_","textRotation_","textFillState_","fillStates","textStrokeState_","strokeStates","textState_","textStates","textKey_","fillKey_","strokeKey_","fillState","strokeState","textState","geometryType","geometryWidths","getFlatMidpoint","getFlatMidpoints","interiorPoints","getFlatInteriorPoints","beg","keep","saveTextStates_","p0","p1","p2","p3","p","flatOffset","o","oo","cc","chunk","chunkBegin","range","drawChars_","strokeKey","textKey","fillKey","baseline","textFillStyle","textStrokeStyle","textScale","textOffsetX","textOffsetY","textRotateWithView","textRotation","BATCH_CONSTRUCTORS","PolygonBuilder","Builder","ImageBuilder","LineStringBuilder","TextBuilder","BuilderGroup","tolerance_","maxExtent_","resolution_","buildersByZIndex_","builderInstructions","zKey","builders","builderKey","builderInstruction","getBuilder","builderType","zIndexKey","replays","replay","Constructor","drawTextOnPath","startM","segmentM","advance","beginX","beginY","startOffset","startLength","endM","flat","singleSegment","previousAngle","iStart","charLength","chars","substring","lineStringLength","p4","getDeclutterBox","replayImageOrLabelArgs","declutterBox","rtlRegEx","fromCharCode","horizontalTextAlign","align","createTextChunks","acc","line","Executor","overlaps","alignFill_","coordinateCache_","renderedTransform_","pixelCoordinates_","viewRotation_","widths_","createLabel","textIsArray","renderWidth","leftRight","strokeInstructions","fillInstructions","previousFont","lineOffset","widthHeightIndex","lineWidthIndex","fillStrokeArgs","replayTextBackground_","setStrokeStyle_","calculateImageOrLabelDimensions_","sheetWidth","sheetHeight","snapToPixel","fillStroke","boxW","boxH","boxX","boxY","drawImageX","drawImageY","drawImageW","drawImageH","replayImageOrLabel_","contextScale","imageOrLabel","dimensions","box","strokePadding","repeatSize","drawLabelWithPointPlacement_","execute_","featureCallback","hitExtent","pixelCoordinates","transformSetFromArray","prevX","prevY","roundX","roundY","pendingFill","pendingStroke","lastFillInstruction","lastStrokeInstruction","coordinateCache","viewRotation","viewRotationFromTransform","batchSize","currentGeometry","labelWithAnchor","widthIndex","insert","imageArgs","imageDeclutterBox","collides","measurePixelRatio","pixelRatioScale","cachedWidths","pathLength","textLength","parts","drawChars","part","execute","executeHitDetection","ORDER","ExecutorGroup","allInstructions","overlaps_","executorsByZIndex_","hitDetectionContext_","hitDetectionTransform_","createExecutors_","flatClipCoords","getClipCoords","executors","instructionByZindex","hasExecutors","candidates","declutteredFeatures","contextSize","newContext","indexes","getPixelIndexArray","imageData","idx","executor","builderTypes","circlePixelIndexArrayCache","maxDistanceSq","distances","distanceSq","distance","pixelIndex","CanvasImmediateRenderer","userTransform","context_","transform_","transformRotation_","squaredTolerance_","userTransform_","contextFillState_","contextStrokeState_","contextTextState_","fillState_","strokeState_","imageAnchorX_","imageAnchorY_","imageHeight_","imageOpacity_","imageOriginX_","imageOriginY_","imageRotateWithView_","imageRotation_","imageScale_","imageWidth_","textScale_","tmpLocalTransform_","drawImages_","localTransform","drawText_","setContextFillState_","setContextStrokeState_","setContextTextState_","strokeText","fillText","moveToLineTo_","close","drawRings_","setTransform","geometries","getGeometriesArray","flatMidpoint","geometryExtent","flatMidpoints","flatInteriorPoint","flatInteriorPoints","contextFillState","contextStrokeState","contextTextState","imagePixelRatio","imageAnchor","imageOrigin","imageScale","textFillStyleColor","textStrokeStyleColor","textStrokeStyleLineCap","textStrokeStyleLineDash","textStrokeStyleLineDashOffset","textStrokeStyleLineJoin","textStrokeStyleWidth","textStrokeStyleMiterLimit","textFont","textText","textTextAlign","textTextBaseline","HIT_DETECT_RESOLUTION","createHitDetectionImageData","features","featureCount","indexFactor","featuresByZIndex","featureStyleFunction","padStart","originalStyle","imgSize","imgContext","byGeometryType","getGeometriesArrayRecursive","zIndexKeys","geomAndStyle","kk","hitDetect","resultFeatures","SIMPLIFY_TOLERANCE","GEOMETRY_RENDERERS","renderPointGeometry","renderLineStringGeometry","renderPolygonGeometry","renderMultiPointGeometry","renderMultiLineStringGeometry","renderMultiPolygonGeometry","renderGeometryCollectionGeometry","renderCircleGeometry","defaultOrder","feature1","feature2","getSquaredTolerance","getTolerance","builderGroup","declutterBuilderGroup","circleReplay","textReplay","renderFeature","replayGroup","loading","renderFeatureInternal","renderGeometry","geometryRenderer","getGeometries","lineStringReplay","polygonReplay","imageBuilderGroup","imageReplay","textBuilderGroup","CanvasVectorLayerRenderer","vectorLayer","boundHandleStyleImageChange_","handleStyleImageChange_","animatingOrInteracting_","hitDetectionImageData_","renderedFeatures_","renderedRevision_","renderedResolution_","wrappedRenderedExtent_","renderedRotation_","renderedCenter_","renderedProjection_","renderedRenderOrder_","replayGroup_","replayGroupChanged","clipping","compositionContext_","renderWorlds","executorGroup","vectorSource","viewHints","getWrapX","endWorld","world","setupCompositionContext_","compositionContext","releaseCompositionContext_","transformToString","hasRenderListeners","clipped","lastIndexOf","executorGroups","all","animating","interacting","frameStateExtent","vectorLayerRevision","vectorLayerRenderBuffer","vectorLayerRenderOrder","defaultRenderOrder","renderedExtent","loadExtents","wrapCoordinateX","loadExtent","wrapExtentX","CanvasBuilderGroup","getRenderTolerance","userExtent","loadFeatures","getSquaredRenderTolerance","dirty","getFeaturesInExtent","replayGroupInstructions","getOverlaps","VectorLayer","ADD","REMOVE","LENGTH","CollectionEvent","Collection","unique_","unique","array_","assertUnique_","updateLength_","getLength","getArray","insertAt","elem","CollectionEventType","removeAt","remove","setAt","except","maxEntries","rbush_","RBush_","items_","extents","items","update","bbox","getAll","getInExtent","search","forEach_","forEachInExtent","toJSON","concat","rbush","Source","attributions_","adaptAttributions","attributionsCollapsible_","attributionsCollapsible","wrapX_","interpolate_","viewResolver","viewRejector","viewPromise_","getAttributionsCollapsible","refresh","setAttributions","attributionLike","ADDFEATURE","CHANGEFEATURE","REMOVEFEATURE","FEATURESLOADSTART","FEATURESLOADEND","FEATURESLOADERROR","withCredentials","loadFeaturesXhr","url","format","success","failure","xhr","XMLHttpRequest","open","responseType","status","responseText","responseXML","DOMParser","parseFromString","response","readFeatures","featureProjection","readProjection","onerror","send","dataProjection","addFeatures","VectorSourceEvent","VectorSource","loader_","format_","url_","loader","strategy_","strategy","allStrategy","useSpatialIndex","collection","featuresRtree_","loadedExtentsRtree_","loadingExtentsCount_","nullGeometryFeatures_","idIndex_","uidIndex_","featureChangeKeys_","featuresCollection_","addFeaturesInternal","bindFeaturesCollection_","addFeature","addFeatureInternal","featureKey","addToIndex_","setupChangeEvents_","VectorEventType","handleFeatureChange_","valid","getId","newFeatures","geometryFeatures","modifyingCollection","removeFeature","fast","featureId","removeAndIgnoreReturn","removeFeatureInternal","clearEvent","forEachFeature","forEachFeatureAtCoordinateDirect","forEachFeatureInExtent","forEachFeatureIntersectingExtent","getFeaturesCollection","getFeaturesAtCoordinate","anExtent","getClosestFeatureToCoordinate","closestFeature","previousMinSquaredDistance","minDistance","getFeatureById","getFeatureByUid","getFormat","getUrl","sid","removeFromIdIndex_","hasFeature","loadedExtentsRtree","extentsToLoad","extentToLoad","alreadyLoaded","removeLoadedExtent","featureChangeKeys","removed","setLoader","setUrl","LRUCache","highWaterMark","count_","entries_","oldest_","newest_","getCount","containsKey","entry","value_","key_","newer","older","getValues","peekLast","peekLastKey","peekFirstKey","peek","getKeyZXY","fromKey","hash","withinExtentAndZ","getFullTileRange","TileCache","pruneExceptNewestZ","TILELOADSTART","TILELOADEND","TILELOADERROR","tmpTileCoord","DECIMALS","TileGrid","origins","origins_","tileSizes_","tileSizes","tileSize_","fullTileRanges_","tmpSize_","tmpExtent_","sizes","restrictedTileRange","calculateTileRanges_","forEachTileCoord","tempTileRange","tempExtent","tileCoordExtent","createOrUpdateTileRange","getTileRangeForTileCoordAndZ","tileCoordZ","tileCoordX","tileCoordY","getTileCoordForXYAndZ_","getTileCoordForCoordAndResolution","opt_tileCoord","getTileCoordForXYAndResolution_","reverseIntersectionPolicy","createOrUpdateTileCoord","getTileCoordResolution","opt_direction","fullTileRanges","getForProjection","createForProjection","extentFromProjection","createForExtent","resolutionsFromExtent","createXYZ","xyzOptions","gridOptions","half","TileSource","opaque_","opaque","tilePixelRatio_","tileCache","tmpSize","tileOptions","getTileCacheForProjection","setKey","getTileGrid","scaleSize","getTileCoordForTileUrlFunction","TileSourceEvent","createFromTemplate","template","zRegEx","xRegEx","yRegEx","dashYRegEx","createFromTemplates","templates","tileUrlFunctions","createFromTileUrlFunctions","tileCoordHash","expandUrl","urls","startCharCode","charCodeAt","stopCharCode","charCode","stop","UrlTile","generateTileUrlFunction_","tileUrlFunction","setUrls","tileLoadingKeys_","getTileLoadFunction","getTileUrlFunction","getPrototypeOf","getUrls","handleTileChange","TileEventType","setTileLoadFunction","setTileUrlFunction","TileImage","defaultTileLoadFunction","tileClass","tileCacheForProjection","tileGridForProjection","reprojectionErrorThreshold_","reprojectionErrorThreshold","renderReprojectionEdges_","usedTileCache","getGutter","thisProj","projKey","createTile_","urlTileCoord","tileUrl","getTileInternal","newTile","setRenderReprojectionEdges","setTileGridForProjection","tilegrid","proj","imageTile","XYZ","Feature","geometryOrProperties","id_","geometryName_","geometryChangeKey_","handleGeometryChanged_","setGeometryName","getGeometryName","handleGeometryChange_","createStyleFunction","setId","MapRenderer","map_","dispatchRenderEvent","calculateMatrices2D","checkWrapped","layerFilter","thisArg2","translatedCoordinate","offsets","layerStates","numLayers","order","hasFeatureAtCoordinate","getMap","flushDeclutterItems","scheduleExpireIconCache","expireIconCache","CompositeMapRenderer","fontChangeListenerKey_","redrawText","element_","getViewport","firstChild","children_","renderedVisible_","declutterLayers_","declutterLayers","previousElement","sourceState","layers","GroupEvent","LAYERS","LayerGroup","layersListenerKeys_","listenerKeys_","handleLayersChanged_","setLayers","handleLayerChange_","getLayers","handleLayersAdd_","handleLayersRemove_","layersArray","registerLayerListeners_","handleLayerGroupAdd_","handleLayerGroupRemove_","collectionEvent","currentLayers","pos","ownLayerState","defaultZIndex","MapEvent","MapBrowserEvent","originalEvent","dragging","activePointers","pixel_","coordinate_","getEventPixel","getCoordinateFromPixel","SINGLECLICK","POINTERDRAG","POINTERMOVE","POINTERDOWN","POINTERUP","POINTEROVER","POINTEROUT","POINTERENTER","POINTERLEAVE","POINTERCANCEL","MapBrowserEventHandler","moveTolerance","clickTimeoutId_","emulateClicks_","dragging_","dragListenerKeys_","moveTolerance_","down_","activePointers_","trackedTouches_","pointerdownListenerKey_","PointerEventType","handlePointerDown_","originalPointerMoveEvent_","relayedListenerKey_","relayMoveEvent_","boundHandleTouchMove_","handleTouchMove_","emulateClick_","pointerEvent","newEvent","MapBrowserEventType","clearTimeout","updateActivePointers_","pointerId","handlePointerUp_","isMouseActionButton_","button","PointerEvent","writable","doc","getOwnerDocument","handlePointerMove_","getRootNode","isMoving_","cancelable","clientX","clientY","MOVESTART","MOVEEND","LOADSTART","LOADEND","LAYERGROUP","SIZE","TARGET","VIEW","PriorityQueue","priorityFunction","keyFunction","priorityFunction_","keyFunction_","elements_","priorities_","queuedElements_","dequeue","elements","priorities","siftUp_","elementKey","priority","siftDown_","getLeftChildIndex_","getRightChildIndex_","getParentIndex_","heapify_","isQueued","count","startIndex","lIndex","rIndex","smallerChildIndex","parentIndex","reprioritize","TileQueue","tilePriorityFunction","tileChangeCallback","boundHandleTileChange_","tileChangeCallback_","tilesLoading_","tilesLoadingKeys_","added","getTilesLoading","tileKey","loadMoreTiles","maxTotalLoading","maxNewLoads","newLoads","getTilePriority","tileCenter","Control","pointerEvents","target_","setTarget","getOverlayContainerStopEvent","MapEventType","mapEvent","getElementById","Attribution","ulElement_","collapsed_","collapsed","userCollapsed_","overrideCollapsible_","collapsible","collapsible_","tipLabel","expandClassName","collapseLabel","collapseClassName","collapseLabel_","textContent","label_","activeLabel","toggleButton_","setAttribute","title","handleClick_","cssClasses","renderedAttributions_","collectSourceAttributions_","visibleAttributions","from","getAllLayers","flatMap","setCollapsible","updateElement_","handleToggle_","classList","toggle","getCollapsible","setCollapsed","getCollapsed","Rotate","compassClassName","callResetNorth_","resetNorth","duration_","autoHide_","autoHide","resetNorth_","Zoom","zoomInClassName","zoomOutClassName","zoomInLabel","zoomOutLabel","zoomInTipLabel","zoomOutTipLabel","inElement","createTextNode","outElement","zoomByDelta_","currentZoom","newZoom","defaults","controls","zoomControl","zoomOptions","rotateControl","rotateOptions","attributionControl","attribution","attributionOptions","ACTIVE","Interaction","setActive","getActive","InteractionProperty","mapBrowserEvent","active","pan","zoomByDelta","DoubleClickZoom","delta_","stopEvent","browserEvent","shiftKey","PointerInteraction","handleDownEvent","handleDragEvent","handleMoveEvent","handleUpEvent","stopDown","handlingDownUpSequence","targetPointers","getPointerCount","updateTrackedPointers_","handledUp","handled","centroid","conditions","pass","altShiftKeysOnly","altKey","metaKey","ctrlKey","focus","targetElement","getTargetElement","activeElement","focusWithTabindex","hasAttribute","mouseActionButton","noModifierKeys","platformModifierKey","shiftKeyOnly","targetNotEditable","tagName","isContentEditable","mouseOnly","pointerType","primaryAction","isPrimary","DragPan","kinetic_","kinetic","lastCentroid","lastPointersCount_","panning_","condition","condition_","onFocusOnly","noKinetic_","centroidFromPointers","scaleCoordinate","centerpx","getPixelFromCoordinateInternal","getCoordinateFromPixelInternal","DragRotate","lastAngle_","RenderBox","startPixel_","endPixel_","render_","startPixel","endPixel","px","top","getOverlayContainer","setPixels","createOrUpdateGeometry","pixels","DragBoxEventType","BOXSTART","BOXDRAG","BOXEND","BOXCANCEL","DragBoxEvent","DragBox","box_","minArea_","minArea","onBoxEnd","boxEndCondition_","boxEndCondition","defaultBoxEndCondition","completeBox","DragZoom","out_","out","UP","DOWN","KeyboardPan","defaultCondition_","pixelDelta_","pixelDelta","keyEvent","Key","mapUnitsDelta","KeyboardZoom","Kinetic","decay","minVelocity","delay","decay_","minVelocity_","delay_","initialVelocity_","lastIndex","firstIndex","MouseWheelZoom","totalDelta_","lastDelta_","timeout_","timeout","useAnchor_","useAnchor","constrainResolution_","lastAnchor_","startTime_","timeoutId_","mode_","trackpadEventGap_","trackpadTimeoutId_","deltaPerZoom_","endInteraction_","wheelEvent","deltaMode","WheelEvent","DOM_DELTA_PIXEL","DOM_DELTA_LINE","timeLeft","handleWheelZoom_","setMouseAnchor","PinchRotate","pointerOptions","rotating_","rotationDelta_","threshold_","threshold","rotationDelta","touch0","touch1","PinchZoom","lastDistance_","lastScaleDelta_","scaleDelta","interactions","altShiftDragRotate","doubleClickZoom","zoomDelta","zoomDuration","dragPan","pinchRotate","pinchZoom","keyboard","mouseWheelZoom","shiftDragZoom","removeLayerMapProperty","setLayerMapProperty","Map","optionsInternal","createOptionsInternal","renderComplete_","loaded_","boundHandleBrowserEvent_","handleBrowserEvent","maxTilesLoading_","maxTilesLoading","postRenderTimeoutHandle_","animationDelayKey_","animationDelay_","coordinateToPixelTransform_","pixelToCoordinateTransform_","frameIndex_","frameState_","previousExtent_","viewPropertyListenerKey_","viewChangeListenerKey_","layerGroupPropertyListenerKeys_","viewport_","overlayContainer_","overlayContainerStopEvent_","mapBrowserEventHandler_","keyboardEventTarget_","keyboardEventTarget","targetChangeHandlerKeys_","targetElement_","resizeObserver_","ResizeObserver","updateSize","defaultControls","defaultInteractions","overlays_","overlays","overlayIdIndex_","postRenderFunctions_","tileQueue_","handleTileChange_","MapProperty","handleLayerGroupChanged_","handleViewChanged_","handleSizeChanged_","handleTargetChanged_","viewOptions","setView","addOverlayInternal_","control","interaction","addControl","getControls","addInteraction","getInteractions","addLayer","handleLayerAdd_","addOverlay","overlay","getOverlays","disconnect","forEachFeatureAtPixel","getFeaturesAtPixel","addLayersFrom","layerGroup","hasFeatureAtPixel","getEventCoordinate","getEventCoordinateInternal","viewportPosition","getBoundingClientRect","scaleX","scaleY","eventPosition","changedTouches","getTarget","getOverlayById","group","getLoadingOrNotReady","getPixelFromCoordinate","viewCoordinate","ownerDocument","handleMapBrowserEvent","rootNode","documentElement","interactionsArray","cont","handlePostRender","lowOnFrameBudget","unobserve","ShadowRoot","host","observe","handleViewPropertyChanged_","updateViewportSize_","handleLayerRemove_","isRendered","renderFrame_","renderSync","removeControl","removeInteraction","removeLayer","removeOverlay","previousFrameState","mapId","renderTargets","nextExtent","moveStart","equalsExtent","idle","setLayerGroup","oldLayerGroup","computedStyle","parseFloat","getClientRects","oldSize","ELEMENT","OFFSET","POSITION","POSITIONING","Overlay","insertFirst","autoPan","mapPostrenderListenerKey","handleElementChanged","handleMapChanged","handleOffsetChanged","handlePositionChanged","handlePositioningChanged","setElement","setOffset","setPositioning","positioning","setPosition","getElement","getOffset","getPosition","getPositioning","updatePixelPosition","performAutoPan","panIntoView","panIntoViewOptions","mapRect","getRect","overlayRect","myMargin","margin","offsetLeft","offsetRight","offsetTop","offsetBottom","centerPx","newCenterPx","panOptions","pageXOffset","pageYOffset","mapSize","updateRenderedPosition","posX","posY","getOptions","interpolatePoint","cumulativeLengths","lineStringCoordinateAtM","extrapolate","lo","hi","m0","m1","LineString","flatMidpoint_","flatMidpointRevision_","appendCoordinate","lineString","getCoordinateAtM","getCoordinateAt","getVectorContext","CanvasRenderingContext2D","canvasPixelRatio","multiplyTransform","pointLayer","route","geometryMove","featureMove","lastTime","speed","mounted","initMap","clickMap","methods","showHistory","_list","addPoints","JSON","stringify","addText","overlayBox","oSpan","contentEditable","pText","textInfo","moveFeature","currentCoordinate","vectorContext","component","module","exports","u","_maxEntries","_minEntries","leaf","_all","toBBox","_build","_splitRoot","_insert","_condense","compareMinX","compareMinY","fromJSON","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","v","M","_allDistMargin"],"sourceRoot":""} \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/js/618.c04067b7.js b/hs-im-server/build/hd-glasses-app/dist/js/618.c04067b7.js new file mode 100644 index 0000000..8cada44 --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/js/618.c04067b7.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkhd_glasses_app"]=self["webpackChunkhd_glasses_app"]||[]).push([[618],{3618:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var r=function(){var e=this,t=e._self._c;return t("div",[t("h1",[e._v("call_room")]),t("video",{attrs:{id:"rtc_media_player",width:"310",autoplay:"",muted:"",controls:""},domProps:{muted:!0}})])},l=[],o={name:"call_room",data(){return{}},mounted(){let e=new SrsRtcPlayerAsync;var t="webrtc://192.168.2.180/live/test123";e.play(t).then((function(e){console.log(e)})).catch((function(e){console.error(e)}))},methods:{}},a=o,s=n(3736),c=(0,s.Z)(a,r,l,!1,null,"15949eed",null),u=c.exports}}]); +//# sourceMappingURL=618.c04067b7.js.map \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/js/618.c04067b7.js.map b/hs-im-server/build/hd-glasses-app/dist/js/618.c04067b7.js.map new file mode 100644 index 0000000..d5a6308 --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/js/618.c04067b7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/618.c04067b7.js","mappings":"wKAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,KAAK,CAACF,EAAII,GAAG,eAAeF,EAAG,QAAQ,CAACG,MAAM,CAAC,GAAK,mBAAmB,MAAQ,MAAM,SAAW,GAAG,MAAQ,GAAG,SAAW,IAAIC,SAAS,CAAC,OAAQ,MAC/N,EACIC,EAAkB,GCMtB,GACAC,KAAA,YACAC,IAAAA,GACA,QACA,EACAC,OAAAA,GAEA,IAAAC,EAAA,IAAAC,kBACA,IAAAC,EAAA,sCAEAF,EAAAG,KAAAD,GAAAE,MAAA,SAAAC,GACAC,QAAAC,IAAAF,EAGA,IAAAG,OAAA,SAAAC,GAIAH,QAAAI,MAAAD,EACA,GAEA,EACAE,QAAA,IC9BuR,I,UCOnRC,GAAY,OACd,EACAxB,EACAQ,GACA,EACA,KACA,WACA,MAIF,EAAegB,EAAiB,O","sources":["webpack://hd-glasses-app/./src/pages/call_room.vue","webpack://hd-glasses-app/src/pages/call_room.vue","webpack://hd-glasses-app/./src/pages/call_room.vue?c4ef","webpack://hd-glasses-app/./src/pages/call_room.vue?15fd"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('h1',[_vm._v(\"call_room\")]),_c('video',{attrs:{\"id\":\"rtc_media_player\",\"width\":\"310\",\"autoplay\":\"\",\"muted\":\"\",\"controls\":\"\"},domProps:{\"muted\":true}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./call_room.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./call_room.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./call_room.vue?vue&type=template&id=15949eed&scoped=true&\"\nimport script from \"./call_room.vue?vue&type=script&lang=js&\"\nexport * from \"./call_room.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15949eed\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","_v","attrs","domProps","staticRenderFns","name","data","mounted","player","SrsRtcPlayerAsync","url","play","then","session","console","log","catch","reason","error","methods","component"],"sourceRoot":""} \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/js/app.147e4095.js b/hs-im-server/build/hd-glasses-app/dist/js/app.147e4095.js new file mode 100644 index 0000000..9c29970 --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/js/app.147e4095.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={3317:function(e,t,n){var r=n(6369),o=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"app"}},[t("router-view")],1)},i=[],u={name:"App"},a=u,f=n(3736),c=(0,f.Z)(a,o,i,!1,null,null,null),l=c.exports,s=n(2631),d=function(){var e=this,t=e._self._c;return t("div",[t("div",[e._v("MyHello")]),t("van-button",{attrs:{type:"primary"}},[e._v("主要按钮")]),t("van-button",{attrs:{type:"info"}},[e._v("信息按钮")]),t("van-button",{attrs:{type:"default"}},[e._v("默认按钮")]),t("van-button",{attrs:{type:"warning"}},[e._v("警告按钮")]),t("van-button",{attrs:{type:"danger"}},[e._v("危险按钮")])],1)},p=[],v={name:"MyHello"},h=v,m=(0,f.Z)(h,d,p,!1,null,"df654004",null),b=m.exports;r.ZP.use(s.ZP);const g=new s.ZP({routes:[{path:"/hello",component:b},{path:"/map",name:"map",component:()=>n.e(10).then(n.bind(n,7010))},{path:"/call_room",name:"call_room",component:()=>n.e(618).then(n.bind(n,3618))}]});var y=g,_=n(4161),w=n(3713);n(5110),n(3434);r.ZP.prototype.$http=_.Z.create(),r.ZP.use(w.ZP),r.ZP.config.productionTip=!1,new r.ZP({render:e=>e(l),router:y}).$mount("#app")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.m=e,function(){var e=[];n.O=function(t,r,o,i){if(!r){var u=1/0;for(l=0;l=i)&&Object.keys(n.O).every((function(e){return n.O[e](r[f])}))?r.splice(f--,1):(a=!1,i0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[r,o,i]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{10:"bf685dc9",618:"c04067b7"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+".619efbf9.css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="hd-glasses-app:";n.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var a,f;if(void 0!==i)for(var c=document.getElementsByTagName("script"),l=0;l\r\n
\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4e876e8c&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=4e876e8c&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',[_vm._v(\"MyHello\")]),_c('van-button',{attrs:{\"type\":\"primary\"}},[_vm._v(\"主要按钮\")]),_c('van-button',{attrs:{\"type\":\"info\"}},[_vm._v(\"信息按钮\")]),_c('van-button',{attrs:{\"type\":\"default\"}},[_vm._v(\"默认按钮\")]),_c('van-button',{attrs:{\"type\":\"warning\"}},[_vm._v(\"警告按钮\")]),_c('van-button',{attrs:{\"type\":\"danger\"}},[_vm._v(\"危险按钮\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MyHello.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MyHello.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MyHello.vue?vue&type=template&id=df654004&scoped=true&\"\nimport script from \"./MyHello.vue?vue&type=script&lang=js&\"\nexport * from \"./MyHello.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"df654004\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';//引入Vue对象,因为要用它的use\r\nimport Router from 'vue-router'//引入vue-router\r\n//引入你需要配置的组件\r\nimport MyHello from '../components/MyHello.vue'\r\n//使用路由插件\r\nVue.use(Router);\r\n\r\n//配置路由\r\nconst router = new Router({\r\n routes: [\r\n {\r\n path:\"/hello\",\r\n component:MyHello\r\n },\r\n //路由懒加载(按需加载)\r\n {\r\n path: '/map',\r\n name: 'map',\r\n component: () => import('../pages/map.vue')\r\n },{\r\n path: '/call_room',\r\n name: 'call_room',\r\n component: () => import('../pages/call_room.vue')\r\n }\r\n ]\r\n});\r\n\r\n//导出\r\nexport default router;\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\n\r\nimport router from './router'\r\n\r\nimport axios from 'axios'\r\nVue.prototype.$http = axios.create();\r\n\r\n\r\nimport Vant from 'vant';\r\nimport 'vant/lib/index.css';\r\nVue.use(Vant);\r\n\r\nimport 'amfe-flexible';\r\n\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n render: h => h(App),\r\n router //添加路由对象\r\n}).$mount('#app')\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"10\":\"bf685dc9\",\"618\":\"c04067b7\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + \"619efbf9\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"hd-glasses-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"10\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhd_glasses_app\"] = self[\"webpackChunkhd_glasses_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(3317); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","attrs","staticRenderFns","name","component","_v","Vue","use","Router","router","routes","path","MyHello","prototype","$http","axios","create","Vant","config","productionTip","h","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","obj","prop","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","p","createStylesheet","fullhref","oldTag","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","request","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","then","installedChunks","installedChunkData","promise","error","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/js/chunk-vendors.fc919775.js b/hs-im-server/build/hd-glasses-app/dist/js/chunk-vendors.fc919775.js new file mode 100644 index 0000000..536ae3d --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/js/chunk-vendors.fc919775.js @@ -0,0 +1,2 @@ +(self["webpackChunkhd_glasses_app"]=self["webpackChunkhd_glasses_app"]||[]).push([[998],{3736:function(t,e,n){"use strict";function i(t,e,n,i,r,o,s,a){var c,l="function"===typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),i&&(l.functional=!0),o&&(l._scopeId="data-v-"+o),s?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):r&&(c=a?function(){r.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var h=l.beforeCreate;l.beforeCreate=h?[].concat(h,c):[c]}return{exports:t,options:l}}n.d(e,{Z:function(){return i}})},9662:function(t,e,n){"use strict";var i=n(614),r=n(6330),o=TypeError;t.exports=function(t){if(i(t))return t;throw new o(r(t)+" is not a function")}},6077:function(t,e,n){"use strict";var i=n(614),r=String,o=TypeError;t.exports=function(t){if("object"==typeof t||i(t))return t;throw new o("Can't set "+r(t)+" as a prototype")}},5787:function(t,e,n){"use strict";var i=n(7976),r=TypeError;t.exports=function(t,e){if(i(e,t))return t;throw new r("Incorrect invocation")}},9670:function(t,e,n){"use strict";var i=n(111),r=String,o=TypeError;t.exports=function(t){if(i(t))return t;throw new o(r(t)+" is not an object")}},3013:function(t){"use strict";t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},260:function(t,e,n){"use strict";var i,r,o,s=n(3013),a=n(9781),c=n(7854),l=n(614),u=n(111),h=n(2597),d=n(648),f=n(6330),p=n(8880),v=n(8052),m=n(7045),g=n(7976),y=n(9518),b=n(7674),S=n(5112),w=n(9711),x=n(9909),k=x.enforce,C=x.get,T=c.Int8Array,O=T&&T.prototype,$=c.Uint8ClampedArray,E=$&&$.prototype,_=T&&y(T),I=O&&y(O),B=Object.prototype,A=c.TypeError,P=S("toStringTag"),D=w("TYPED_ARRAY_TAG"),N="TypedArrayConstructor",R=s&&!!b&&"Opera"!==d(c.opera),L=!1,M={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},j={BigInt64Array:8,BigUint64Array:8},z=function(t){if(!u(t))return!1;var e=d(t);return"DataView"===e||h(M,e)||h(j,e)},F=function(t){var e=y(t);if(u(e)){var n=C(e);return n&&h(n,N)?n[N]:F(e)}},V=function(t){if(!u(t))return!1;var e=d(t);return h(M,e)||h(j,e)},H=function(t){if(V(t))return t;throw new A("Target is not a typed array")},U=function(t){if(l(t)&&(!b||g(_,t)))return t;throw new A(f(t)+" is not a typed array constructor")},W=function(t,e,n,i){if(a){if(n)for(var r in M){var o=c[r];if(o&&h(o.prototype,t))try{delete o.prototype[t]}catch(s){try{o.prototype[t]=e}catch(l){}}}I[t]&&!n||v(I,t,n?e:R&&O[t]||e,i)}},q=function(t,e,n){var i,r;if(a){if(b){if(n)for(i in M)if(r=c[i],r&&h(r,t))try{delete r[t]}catch(o){}if(_[t]&&!n)return;try{return v(_,t,n?e:R&&_[t]||e)}catch(o){}}for(i in M)r=c[i],!r||r[t]&&!n||v(r,t,e)}};for(i in M)r=c[i],o=r&&r.prototype,o?k(o)[N]=r:R=!1;for(i in j)r=c[i],o=r&&r.prototype,o&&(k(o)[N]=r);if((!R||!l(_)||_===Function.prototype)&&(_=function(){throw new A("Incorrect invocation")},R))for(i in M)c[i]&&b(c[i],_);if((!R||!I||I===B)&&(I=_.prototype,R))for(i in M)c[i]&&b(c[i].prototype,I);if(R&&y(E)!==I&&b(E,I),a&&!h(I,P))for(i in L=!0,m(I,P,{configurable:!0,get:function(){return u(this)?this[D]:void 0}}),M)c[i]&&p(c[i],D,i);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:R,TYPED_ARRAY_TAG:L&&D,aTypedArray:H,aTypedArrayConstructor:U,exportTypedArrayMethod:W,exportTypedArrayStaticMethod:q,getTypedArrayConstructor:F,isView:z,isTypedArray:V,TypedArray:_,TypedArrayPrototype:I}},7745:function(t,e,n){"use strict";var i=n(6244);t.exports=function(t,e){var n=0,r=i(e),o=new t(r);while(r>n)o[n]=e[n++];return o}},1318:function(t,e,n){"use strict";var i=n(5656),r=n(1400),o=n(6244),s=function(t){return function(e,n,s){var a,c=i(e),l=o(c),u=r(s,l);if(t&&n!==n){while(l>u)if(a=c[u++],a!==a)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},3658:function(t,e,n){"use strict";var i=n(9781),r=n(3157),o=TypeError,s=Object.getOwnPropertyDescriptor,a=i&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(r(t)&&!s(t,"length").writable)throw new o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},206:function(t,e,n){"use strict";var i=n(1702);t.exports=i([].slice)},1843:function(t,e,n){"use strict";var i=n(6244);t.exports=function(t,e){for(var n=i(t),r=new e(n),o=0;o=a||l<0)throw new o("Incorrect index");for(var u=new e(a),h=0;hn)throw e("Maximum allowed index exceeded");return t}},3678:function(t){"use strict";t.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},9363:function(t){"use strict";t.exports="function"==typeof Bun&&Bun&&"string"==typeof Bun.version},6833:function(t,e,n){"use strict";var i=n(8113);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(i)},5268:function(t,e,n){"use strict";var i=n(7854),r=n(4326);t.exports="process"===r(i.process)},8113:function(t){"use strict";t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},7392:function(t,e,n){"use strict";var i,r,o=n(7854),s=n(8113),a=o.process,c=o.Deno,l=a&&a.versions||c&&c.version,u=l&&l.v8;u&&(i=u.split("."),r=i[0]>0&&i[0]<4?1:+(i[0]+i[1])),!r&&s&&(i=s.match(/Edge\/(\d+)/),(!i||i[1]>=74)&&(i=s.match(/Chrome\/(\d+)/),i&&(r=+i[1]))),t.exports=r},748:function(t){"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},1060:function(t,e,n){"use strict";var i=n(1702),r=Error,o=i("".replace),s=function(t){return String(new r(t).stack)}("zxcasd"),a=/\n\s*at [^:]*:[^\n]*/,c=a.test(s);t.exports=function(t,e){if(c&&"string"==typeof t&&!r.prepareStackTrace)while(e--)t=o(t,a,"");return t}},2109:function(t,e,n){"use strict";var i=n(7854),r=n(1236).f,o=n(8880),s=n(8052),a=n(3072),c=n(9920),l=n(4705);t.exports=function(t,e){var n,u,h,d,f,p,v=t.target,m=t.global,g=t.stat;if(u=m?i:g?i[v]||a(v,{}):(i[v]||{}).prototype,u)for(h in e){if(f=e[h],t.dontCallGetSet?(p=r(u,h),d=p&&p.value):d=u[h],n=l(m?h:v+(g?".":"#")+h,t.forced),!n&&void 0!==d){if(typeof f==typeof d)continue;c(f,d)}(t.sham||d&&d.sham)&&o(f,"sham",!0),s(u,h,f,t)}}},7293:function(t){"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},2104:function(t,e,n){"use strict";var i=n(4374),r=Function.prototype,o=r.apply,s=r.call;t.exports="object"==typeof Reflect&&Reflect.apply||(i?s.bind(o):function(){return s.apply(o,arguments)})},9974:function(t,e,n){"use strict";var i=n(1470),r=n(9662),o=n(4374),s=i(i.bind);t.exports=function(t,e){return r(t),void 0===e?t:o?s(t,e):function(){return t.apply(e,arguments)}}},4374:function(t,e,n){"use strict";var i=n(7293);t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},6916:function(t,e,n){"use strict";var i=n(4374),r=Function.prototype.call;t.exports=i?r.bind(r):function(){return r.apply(r,arguments)}},6530:function(t,e,n){"use strict";var i=n(9781),r=n(2597),o=Function.prototype,s=i&&Object.getOwnPropertyDescriptor,a=r(o,"name"),c=a&&"something"===function(){}.name,l=a&&(!i||i&&s(o,"name").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:l}},5668:function(t,e,n){"use strict";var i=n(1702),r=n(9662);t.exports=function(t,e,n){try{return i(r(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(o){}}},1470:function(t,e,n){"use strict";var i=n(4326),r=n(1702);t.exports=function(t){if("Function"===i(t))return r(t)}},1702:function(t,e,n){"use strict";var i=n(4374),r=Function.prototype,o=r.call,s=i&&r.bind.bind(o,o);t.exports=i?s:function(t){return function(){return o.apply(t,arguments)}}},5005:function(t,e,n){"use strict";var i=n(7854),r=n(614),o=function(t){return r(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(i[t]):i[t]&&i[t][e]}},8173:function(t,e,n){"use strict";var i=n(9662),r=n(8554);t.exports=function(t,e){var n=t[e];return r(n)?void 0:i(n)}},7854:function(t,e,n){"use strict";var i=function(t){return t&&t.Math===Math&&t};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof n.g&&n.g)||function(){return this}()||this||Function("return this")()},2597:function(t,e,n){"use strict";var i=n(1702),r=n(7908),o=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(r(t),e)}},3501:function(t){"use strict";t.exports={}},490:function(t,e,n){"use strict";var i=n(5005);t.exports=i("document","documentElement")},4664:function(t,e,n){"use strict";var i=n(9781),r=n(7293),o=n(317);t.exports=!i&&!r((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},8361:function(t,e,n){"use strict";var i=n(1702),r=n(7293),o=n(4326),s=Object,a=i("".split);t.exports=r((function(){return!s("z").propertyIsEnumerable(0)}))?function(t){return"String"===o(t)?a(t,""):s(t)}:s},9587:function(t,e,n){"use strict";var i=n(614),r=n(111),o=n(7674);t.exports=function(t,e,n){var s,a;return o&&i(s=e.constructor)&&s!==n&&r(a=s.prototype)&&a!==n.prototype&&o(t,a),t}},2788:function(t,e,n){"use strict";var i=n(1702),r=n(614),o=n(5465),s=i(Function.toString);r(o.inspectSource)||(o.inspectSource=function(t){return s(t)}),t.exports=o.inspectSource},9909:function(t,e,n){"use strict";var i,r,o,s=n(4811),a=n(7854),c=n(111),l=n(8880),u=n(2597),h=n(5465),d=n(6200),f=n(3501),p="Object already initialized",v=a.TypeError,m=a.WeakMap,g=function(t){return o(t)?r(t):i(t,{})},y=function(t){return function(e){var n;if(!c(e)||(n=r(e)).type!==t)throw new v("Incompatible receiver, "+t+" required");return n}};if(s||h.state){var b=h.state||(h.state=new m);b.get=b.get,b.has=b.has,b.set=b.set,i=function(t,e){if(b.has(t))throw new v(p);return e.facade=t,b.set(t,e),e},r=function(t){return b.get(t)||{}},o=function(t){return b.has(t)}}else{var S=d("state");f[S]=!0,i=function(t,e){if(u(t,S))throw new v(p);return e.facade=t,l(t,S,e),e},r=function(t){return u(t,S)?t[S]:{}},o=function(t){return u(t,S)}}t.exports={set:i,get:r,has:o,enforce:g,getterFor:y}},3157:function(t,e,n){"use strict";var i=n(4326);t.exports=Array.isArray||function(t){return"Array"===i(t)}},4067:function(t,e,n){"use strict";var i=n(648);t.exports=function(t){var e=i(t);return"BigInt64Array"===e||"BigUint64Array"===e}},614:function(t,e,n){"use strict";var i=n(4154),r=i.all;t.exports=i.IS_HTMLDDA?function(t){return"function"==typeof t||t===r}:function(t){return"function"==typeof t}},4705:function(t,e,n){"use strict";var i=n(7293),r=n(614),o=/#|\.prototype\./,s=function(t,e){var n=c[a(t)];return n===u||n!==l&&(r(e)?i(e):!!e)},a=s.normalize=function(t){return String(t).replace(o,".").toLowerCase()},c=s.data={},l=s.NATIVE="N",u=s.POLYFILL="P";t.exports=s},8554:function(t){"use strict";t.exports=function(t){return null===t||void 0===t}},111:function(t,e,n){"use strict";var i=n(614),r=n(4154),o=r.all;t.exports=r.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:i(t)||t===o}:function(t){return"object"==typeof t?null!==t:i(t)}},1913:function(t){"use strict";t.exports=!1},2190:function(t,e,n){"use strict";var i=n(5005),r=n(614),o=n(7976),s=n(3307),a=Object;t.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return r(e)&&o(e.prototype,a(t))}},6244:function(t,e,n){"use strict";var i=n(7466);t.exports=function(t){return i(t.length)}},6339:function(t,e,n){"use strict";var i=n(1702),r=n(7293),o=n(614),s=n(2597),a=n(9781),c=n(6530).CONFIGURABLE,l=n(2788),u=n(9909),h=u.enforce,d=u.get,f=String,p=Object.defineProperty,v=i("".slice),m=i("".replace),g=i([].join),y=a&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),b=String(String).split("String"),S=t.exports=function(t,e,n){"Symbol("===v(f(e),0,7)&&(e="["+m(f(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!s(t,"name")||c&&t.name!==e)&&(a?p(t,"name",{value:e,configurable:!0}):t.name=e),y&&n&&s(n,"arity")&&t.length!==n.arity&&p(t,"length",{value:n.arity});try{n&&s(n,"constructor")&&n.constructor?a&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(r){}var i=h(t);return s(i,"source")||(i.source=g(b,"string"==typeof e?e:"")),t};Function.prototype.toString=S((function(){return o(this)&&d(this).source||l(this)}),"toString")},4758:function(t){"use strict";var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var i=+t;return(i>0?n:e)(i)}},6277:function(t,e,n){"use strict";var i=n(1340);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:i(t)}},3070:function(t,e,n){"use strict";var i=n(9781),r=n(4664),o=n(3353),s=n(9670),a=n(4948),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,h="enumerable",d="configurable",f="writable";e.f=i?o?function(t,e,n){if(s(t),e=a(e),s(n),"function"===typeof t&&"prototype"===e&&"value"in n&&f in n&&!n[f]){var i=u(t,e);i&&i[f]&&(t[e]=n.value,n={configurable:d in n?n[d]:i[d],enumerable:h in n?n[h]:i[h],writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(s(t),e=a(e),s(n),r)try{return l(t,e,n)}catch(i){}if("get"in n||"set"in n)throw new c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},1236:function(t,e,n){"use strict";var i=n(9781),r=n(6916),o=n(5296),s=n(9114),a=n(5656),c=n(4948),l=n(2597),u=n(4664),h=Object.getOwnPropertyDescriptor;e.f=i?h:function(t,e){if(t=a(t),e=c(e),u)try{return h(t,e)}catch(n){}if(l(t,e))return s(!r(o.f,t,e),t[e])}},8006:function(t,e,n){"use strict";var i=n(6324),r=n(748),o=r.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,o)}},5181:function(t,e){"use strict";e.f=Object.getOwnPropertySymbols},9518:function(t,e,n){"use strict";var i=n(2597),r=n(614),o=n(7908),s=n(6200),a=n(8544),c=s("IE_PROTO"),l=Object,u=l.prototype;t.exports=a?l.getPrototypeOf:function(t){var e=o(t);if(i(e,c))return e[c];var n=e.constructor;return r(n)&&e instanceof n?n.prototype:e instanceof l?u:null}},7976:function(t,e,n){"use strict";var i=n(1702);t.exports=i({}.isPrototypeOf)},6324:function(t,e,n){"use strict";var i=n(1702),r=n(2597),o=n(5656),s=n(1318).indexOf,a=n(3501),c=i([].push);t.exports=function(t,e){var n,i=o(t),l=0,u=[];for(n in i)!r(a,n)&&r(i,n)&&c(u,n);while(e.length>l)r(i,n=e[l++])&&(~s(u,n)||c(u,n));return u}},5296:function(t,e){"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,r=i&&!n.call({1:2},1);e.f=r?function(t){var e=i(this,t);return!!e&&e.enumerable}:n},7674:function(t,e,n){"use strict";var i=n(5668),r=n(9670),o=n(6077);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=i(Object.prototype,"__proto__","set"),t(n,[]),e=n instanceof Array}catch(s){}return function(n,i){return r(n),o(i),e?t(n,i):n.__proto__=i,n}}():void 0)},2140:function(t,e,n){"use strict";var i=n(6916),r=n(614),o=n(111),s=TypeError;t.exports=function(t,e){var n,a;if("string"===e&&r(n=t.toString)&&!o(a=i(n,t)))return a;if(r(n=t.valueOf)&&!o(a=i(n,t)))return a;if("string"!==e&&r(n=t.toString)&&!o(a=i(n,t)))return a;throw new s("Can't convert object to primitive value")}},3887:function(t,e,n){"use strict";var i=n(5005),r=n(1702),o=n(8006),s=n(5181),a=n(9670),c=r([].concat);t.exports=i("Reflect","ownKeys")||function(t){var e=o.f(a(t)),n=s.f;return n?c(e,n(t)):e}},4488:function(t,e,n){"use strict";var i=n(8554),r=TypeError;t.exports=function(t){if(i(t))throw new r("Can't call method on "+t);return t}},7152:function(t,e,n){"use strict";var i=n(7854),r=n(2104),o=n(614),s=n(9363),a=n(8113),c=n(206),l=n(8053),u=i.Function,h=/MSIE .\./.test(a)||s&&function(){var t=i.Bun.version.split(".");return t.length<3||"0"===t[0]&&(t[1]<3||"3"===t[1]&&"0"===t[2])}();t.exports=function(t,e){var n=e?2:1;return h?function(i,s){var a=l(arguments.length,1)>n,h=o(i)?i:u(i),d=a?c(arguments,n):[],f=a?function(){r(h,this,d)}:h;return e?t(f,s):t(f)}:t}},6200:function(t,e,n){"use strict";var i=n(2309),r=n(9711),o=i("keys");t.exports=function(t){return o[t]||(o[t]=r(t))}},5465:function(t,e,n){"use strict";var i=n(7854),r=n(3072),o="__core-js_shared__",s=i[o]||r(o,{});t.exports=s},2309:function(t,e,n){"use strict";var i=n(1913),r=n(5465);(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.33.0",mode:i?"pure":"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE",source:"https://github.com/zloirock/core-js"})},6293:function(t,e,n){"use strict";var i=n(7392),r=n(7293),o=n(7854),s=o.String;t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol("symbol detection");return!s(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},261:function(t,e,n){"use strict";var i,r,o,s,a=n(7854),c=n(2104),l=n(9974),u=n(614),h=n(2597),d=n(7293),f=n(490),p=n(206),v=n(317),m=n(8053),g=n(6833),y=n(5268),b=a.setImmediate,S=a.clearImmediate,w=a.process,x=a.Dispatch,k=a.Function,C=a.MessageChannel,T=a.String,O=0,$={},E="onreadystatechange";d((function(){i=a.location}));var _=function(t){if(h($,t)){var e=$[t];delete $[t],e()}},I=function(t){return function(){_(t)}},B=function(t){_(t.data)},A=function(t){a.postMessage(T(t),i.protocol+"//"+i.host)};b&&S||(b=function(t){m(arguments.length,1);var e=u(t)?t:k(t),n=p(arguments,1);return $[++O]=function(){c(e,void 0,n)},r(O),O},S=function(t){delete $[t]},y?r=function(t){w.nextTick(I(t))}:x&&x.now?r=function(t){x.now(I(t))}:C&&!g?(o=new C,s=o.port2,o.port1.onmessage=B,r=l(s.postMessage,s)):a.addEventListener&&u(a.postMessage)&&!a.importScripts&&i&&"file:"!==i.protocol&&!d(A)?(r=A,a.addEventListener("message",B,!1)):r=E in v("script")?function(t){f.appendChild(v("script"))[E]=function(){f.removeChild(this),_(t)}}:function(t){setTimeout(I(t),0)}),t.exports={set:b,clear:S}},1400:function(t,e,n){"use strict";var i=n(9303),r=Math.max,o=Math.min;t.exports=function(t,e){var n=i(t);return n<0?r(n+e,0):o(n,e)}},4599:function(t,e,n){"use strict";var i=n(7593),r=TypeError;t.exports=function(t){var e=i(t,"number");if("number"==typeof e)throw new r("Can't convert number to bigint");return BigInt(e)}},5656:function(t,e,n){"use strict";var i=n(8361),r=n(4488);t.exports=function(t){return i(r(t))}},9303:function(t,e,n){"use strict";var i=n(4758);t.exports=function(t){var e=+t;return e!==e||0===e?0:i(e)}},7466:function(t,e,n){"use strict";var i=n(9303),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},7908:function(t,e,n){"use strict";var i=n(4488),r=Object;t.exports=function(t){return r(i(t))}},7593:function(t,e,n){"use strict";var i=n(6916),r=n(111),o=n(2190),s=n(8173),a=n(2140),c=n(5112),l=TypeError,u=c("toPrimitive");t.exports=function(t,e){if(!r(t)||o(t))return t;var n,c=s(t,u);if(c){if(void 0===e&&(e="default"),n=i(c,t,e),!r(n)||o(n))return n;throw new l("Can't convert object to primitive value")}return void 0===e&&(e="number"),a(t,e)}},4948:function(t,e,n){"use strict";var i=n(7593),r=n(2190);t.exports=function(t){var e=i(t,"string");return r(e)?e:e+""}},1694:function(t,e,n){"use strict";var i=n(5112),r=i("toStringTag"),o={};o[r]="z",t.exports="[object z]"===String(o)},1340:function(t,e,n){"use strict";var i=n(648),r=String;t.exports=function(t){if("Symbol"===i(t))throw new TypeError("Cannot convert a Symbol value to a string");return r(t)}},6330:function(t){"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(n){return"Object"}}},9711:function(t,e,n){"use strict";var i=n(1702),r=0,o=Math.random(),s=i(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++r+o,36)}},3307:function(t,e,n){"use strict";var i=n(6293);t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(t,e,n){"use strict";var i=n(9781),r=n(7293);t.exports=i&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},8053:function(t){"use strict";var e=TypeError;t.exports=function(t,n){if(t=2){var s=e.createElement("body"),a=e.createElement("div");a.style.border=".5px solid transparent",s.appendChild(a),n.appendChild(s),1===a.offsetHeight&&n.classList.add("hairlines"),n.removeChild(s)}})(window,document)},3713:function(t,e,n){"use strict";function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e1?r-1:0),s=1;s2?n-2:0),r=2;re?"horizontal":e>t?"vertical":""}var gt={data:function(){return{direction:""}},methods:{touchStart:function(t){this.resetTouchStatus(),this.startX=t.touches[0].clientX,this.startY=t.touches[0].clientY},touchMove:function(t){var e=t.touches[0];this.deltaX=e.clientX<0?0:e.clientX-this.startX,this.deltaY=e.clientY-this.startY,this.offsetX=Math.abs(this.deltaX),this.offsetY=Math.abs(this.deltaY);var n=10;(!this.direction||this.offsetX0?"10":"01",n=ct(t.target,this.$el),i=n.scrollHeight,r=n.offsetHeight,o=n.scrollTop,s="11";0===o?s=r>=i?"00":"01":o+r>=i&&(s="10"),"11"===s||"vertical"!==this.direction||parseInt(s,2)&parseInt(e,2)||q(t,!0)},renderOverlay:function(){var t=this;!this.$isServer&&this.value&&this.$nextTick((function(){t.updateZIndex(t.overlay?1:0),t.overlay?it(t,{zIndex:z.zIndex++,duration:t.duration,className:t.overlayClass,customStyle:t.overlayStyle}):rt(t)}))},updateZIndex:function(t){void 0===t&&(t=0),this.$el.style.zIndex=++z.zIndex+t},onReopen:function(t){this.onReopenCallback.push(t)}}}}function Ot(t){return/^\d+(\.\d+)?$/.test(t)}function $t(t){return Number.isNaN?Number.isNaN(t):t!==t}function Et(t){if(d(t))return t=String(t),Ot(t)?t+"px":t}function _t(){if(!xt){var t=document.documentElement,e=t.style.fontSize||window.getComputedStyle(t).fontSize;xt=parseFloat(e)}return xt}function It(t){return t=t.replace(/rem/g,""),+t*_t()}function Bt(t){return t=t.replace(/vw/g,""),+t*window.innerWidth/100}function At(t){return t=t.replace(/vh/g,""),+t*window.innerHeight/100}function Pt(t){if("number"===typeof t)return t;if(l){if(-1!==t.indexOf("rem"))return It(t);if(-1!==t.indexOf("vw"))return Bt(t);if(-1!==t.indexOf("vh"))return At(t)}return parseFloat(t)}var Dt=D("info"),Nt=Dt[0],Rt=Dt[1];function Lt(t,e,n,i){var r=e.dot,s=e.info,a=d(s)&&""!==s;if(r||a)return t("div",o()([{class:Rt({dot:r})},L(i,!0)]),[r?"":e.info])}Lt.props={dot:Boolean,info:[Number,String]};var Mt=Nt(Lt),jt=D("icon"),zt=jt[0],Ft=jt[1];function Vt(t){return!!t&&-1!==t.indexOf("/")}var Ht={medel:"medal","medel-o":"medal-o","calender-o":"calendar-o"};function Ut(t){return t&&Ht[t]||t}function Wt(t,e,n,i){var r,s=Ut(e.name),a=Vt(s);return t(e.tag,o()([{class:[e.classPrefix,a?"":e.classPrefix+"-"+s],style:{color:e.color,fontSize:Et(e.size)}},L(i,!0)]),[n.default&&n.default(),a&&t("img",{class:Ft("image"),attrs:{src:s}}),t(Mt,{attrs:{dot:e.dot,info:null!=(r=e.badge)?r:e.info}})])}Wt.props={dot:Boolean,name:String,size:[Number,String],info:[Number,String],badge:[Number,String],color:String,tag:{type:String,default:"i"},classPrefix:{type:String,default:Ft()}};var qt=zt(Wt),Kt=D("popup"),Yt=Kt[0],Xt=Kt[1],Zt=Yt({mixins:[Tt()],props:{round:Boolean,duration:[Number,String],closeable:Boolean,transition:String,safeAreaInsetBottom:Boolean,closeIcon:{type:String,default:"cross"},closeIconPosition:{type:String,default:"top-right"},position:{type:String,default:"center"},overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}},beforeCreate:function(){var t=this,e=function(e){return function(n){return t.$emit(e,n)}};this.onClick=e("click"),this.onOpened=e("opened"),this.onClosed=e("closed")},methods:{onClickCloseIcon:function(t){this.$emit("click-close-icon",t),this.close()}},render:function(){var t,e=arguments[0];if(this.shouldRender){var n=this.round,i=this.position,r=this.duration,o="center"===i,s=this.transition||(o?"van-fade":"van-popup-slide-"+i),a={};if(d(r)){var c=o?"animationDuration":"transitionDuration";a[c]=r+"s"}return e("transition",{attrs:{appear:this.transitionAppear,name:s},on:{afterEnter:this.onOpened,afterLeave:this.onClosed}},[e("div",{directives:[{name:"show",value:this.value}],style:a,class:Xt((t={round:n},t[i]=i,t["safe-area-inset-bottom"]=this.safeAreaInsetBottom,t)),on:{click:this.onClick}},[this.slots(),this.closeable&&e(qt,{attrs:{role:"button",tabindex:"0",name:this.closeIcon},class:Xt("close-icon",this.closeIconPosition),on:{click:this.onClickCloseIcon}})])])}}}),Gt=D("loading"),Jt=Gt[0],Qt=Gt[1];function te(t,e){if("spinner"===e.type){for(var n=[],i=0;i<12;i++)n.push(t("i"));return n}return t("svg",{class:Qt("circular"),attrs:{viewBox:"25 25 50 50"}},[t("circle",{attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})])}function ee(t,e,n){if(n.default){var i,r={fontSize:Et(e.textSize),color:null!=(i=e.textColor)?i:e.color};return t("span",{class:Qt("text"),style:r},[n.default()])}}function ne(t,e,n,i){var r=e.color,s=e.size,a=e.type,c={color:r};if(s){var l=Et(s);c.width=l,c.height=l}return t("div",o()([{class:Qt([a,{vertical:e.vertical}])},L(i,!0)]),[t("span",{class:Qt("spinner",a),style:c},[te(t,e)]),ee(t,e,n)])}ne.props={color:String,size:[Number,String],vertical:Boolean,textSize:[Number,String],textColor:String,type:{type:String,default:"circular"}};var ie=Jt(ne),re=D("action-sheet"),oe=re[0],se=re[1];function ae(t,e,n,i){var r=e.title,a=e.cancelText,c=e.closeable;function l(){M(i,"input",!1),M(i,"cancel")}function u(){if(r)return t("div",{class:se("header")},[r,c&&t(qt,{attrs:{name:e.closeIcon},class:se("close"),on:{click:l}})])}function h(n,r){var o=n.disabled,a=n.loading,c=n.callback;function l(t){t.stopPropagation(),o||a||(c&&c(n),e.closeOnClickAction&&M(i,"input",!1),s.ZP.nextTick((function(){M(i,"select",n,r)})))}function u(){return a?t(ie,{class:se("loading-icon")}):[t("span",{class:se("name")},[n.name]),n.subname&&t("div",{class:se("subname")},[n.subname])]}return t("button",{attrs:{type:"button"},class:[se("item",{disabled:o,loading:a}),n.className],style:{color:n.color},on:{click:l}},[u()])}function d(){if(a)return[t("div",{class:se("gap")}),t("button",{attrs:{type:"button"},class:se("cancel"),on:{click:l}},[a])]}function f(){var i=(null==n.description?void 0:n.description())||e.description;if(i)return t("div",{class:se("description")},[i])}return t(Zt,o()([{class:se(),attrs:{position:"bottom",round:e.round,value:e.value,overlay:e.overlay,duration:e.duration,lazyRender:e.lazyRender,lockScroll:e.lockScroll,getContainer:e.getContainer,closeOnPopstate:e.closeOnPopstate,closeOnClickOverlay:e.closeOnClickOverlay,safeAreaInsetBottom:e.safeAreaInsetBottom}},L(i,!0)]),[u(),f(),t("div",{class:se("content")},[e.actions&&e.actions.map(h),null==n.default?void 0:n.default()]),d()])}ae.props=i({},Ct,{title:String,actions:Array,duration:[Number,String],cancelText:String,description:String,getContainer:[String,Function],closeOnPopstate:Boolean,closeOnClickAction:Boolean,round:{type:Boolean,default:!0},closeable:{type:Boolean,default:!0},closeIcon:{type:String,default:"cross"},safeAreaInsetBottom:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}});var ce=oe(ae);function le(t){return t=t.replace(/[^-|\d]/g,""),/^((\+86)|(86))?(1)\d{10}$/.test(t)||/^0[0-9-]{10,13}$/.test(t)}n(541);var ue=44,he={title:String,loading:Boolean,readonly:Boolean,itemHeight:[Number,String],showToolbar:Boolean,cancelButtonText:String,confirmButtonText:String,allowHtml:{type:Boolean,default:!0},visibleItemCount:{type:[Number,String],default:6},swipeDuration:{type:[Number,String],default:1e3}},de="#ee0a24",fe="van-hairline",pe=fe+"--top",ve=fe+"--left",me=fe+"--bottom",ge=fe+"--surround",ye=fe+"--top-bottom",be=fe+"-unset--top-bottom";function Se(t){if(!d(t))return t;if(Array.isArray(t))return t.map((function(t){return Se(t)}));if("object"===typeof t){var e={};return Object.keys(t).forEach((function(n){e[n]=Se(t[n])})),e}return t}function we(t,e,n){return Math.min(Math.max(t,e),n)}function xe(t,e,n){var i=t.indexOf(e),r="";return-1===i?t:"-"===e&&0!==i?t.slice(0,i):("."===e&&t.match(/^(\.|-\.)/)&&(r=i?"-0":"0"),r+t.slice(0,i+1)+t.slice(i).replace(n,""))}function ke(t,e,n){void 0===e&&(e=!0),void 0===n&&(n=!0),t=e?xe(t,".",/\./g):t.split(".")[0],t=n?xe(t,"-",/-/g):t.replace(/-/,"");var i=e?/[^-0-9.]/g:/[^-0-9]/g;return t.replace(i,"")}function Ce(t,e){var n=Math.pow(10,10);return Math.round((t+e)*n)/n}var Te=200,Oe=300,$e=15,Ee=D("picker-column"),_e=Ee[0],Ie=Ee[1];function Be(t){var e=window.getComputedStyle(t),n=e.transform||e.webkitTransform,i=n.slice(7,n.length-1).split(", ")[5];return Number(i)}function Ae(t){return p(t)&&t.disabled}var Pe=l&&"onwheel"in window,De=null,Ne=_e({mixins:[gt],props:{valueKey:String,readonly:Boolean,allowHtml:Boolean,className:String,itemHeight:Number,defaultIndex:Number,swipeDuration:[Number,String],visibleItemCount:[Number,String],initialOptions:{type:Array,default:function(){return[]}}},data:function(){return{offset:0,duration:0,options:Se(this.initialOptions),currentIndex:this.defaultIndex}},created:function(){this.$parent.children&&this.$parent.children.push(this),this.setIndex(this.currentIndex)},mounted:function(){this.bindTouchEvent(this.$el),Pe&&H(this.$el,"wheel",this.onMouseWheel,!1)},destroyed:function(){var t=this.$parent.children;t&&t.splice(t.indexOf(this),1),Pe&&U(this.$el,"wheel")},watch:{initialOptions:"setOptions",defaultIndex:function(t){this.setIndex(t)}},computed:{count:function(){return this.options.length},baseOffset:function(){return this.itemHeight*(this.visibleItemCount-1)/2}},methods:{setOptions:function(t){JSON.stringify(t)!==JSON.stringify(this.options)&&(this.options=Se(t),this.setIndex(this.defaultIndex))},onTouchStart:function(t){if(!this.readonly){if(this.touchStart(t),this.moving){var e=Be(this.$refs.wrapper);this.offset=Math.min(0,e-this.baseOffset),this.startOffset=this.offset}else this.startOffset=this.offset;this.duration=0,this.transitionEndTrigger=null,this.touchStartTime=Date.now(),this.momentumOffset=this.startOffset}},onTouchMove:function(t){if(!this.readonly){this.touchMove(t),"vertical"===this.direction&&(this.moving=!0,q(t,!0)),this.offset=we(this.startOffset+this.deltaY,-this.count*this.itemHeight,this.itemHeight);var e=Date.now();e-this.touchStartTime>Oe&&(this.touchStartTime=e,this.momentumOffset=this.offset)}},onTouchEnd:function(){var t=this;if(!this.readonly){var e=this.offset-this.momentumOffset,n=Date.now()-this.touchStartTime,i=n$e;if(i)this.momentum(e,n);else{var r=this.getIndexByOffset(this.offset);this.duration=Te,this.setIndex(r,!0),setTimeout((function(){t.moving=!1}),0)}}},onMouseWheel:function(t){var e=this;if(!this.readonly){q(t,!0);var n=Be(this.$refs.wrapper);this.startOffset=Math.min(0,n-this.baseOffset),this.momentumOffset=this.startOffset,this.transitionEndTrigger=null;var i=t.deltaY;if(!(0===this.startOffset&&i<0)){var r=this.itemHeight*(i>0?-1:1);this.offset=we(this.startOffset+r,-this.count*this.itemHeight,this.itemHeight),De&&clearTimeout(De),De=setTimeout((function(){e.onTouchEnd(),e.touchStartTime=0}),Oe)}}},onTransitionEnd:function(){this.stopMomentum()},onClickItem:function(t){this.moving||this.readonly||(this.transitionEndTrigger=null,this.duration=Te,this.setIndex(t,!0))},adjustIndex:function(t){t=we(t,0,this.count);for(var e=t;e=0;n--)if(!Ae(this.options[n]))return n},getOptionText:function(t){return p(t)&&this.valueKey in t?t[this.valueKey]:t},setIndex:function(t,e){var n=this;t=this.adjustIndex(t)||0;var i=-t*this.itemHeight,r=function(){t!==n.currentIndex&&(n.currentIndex=t,e&&n.$emit("change",t))};this.moving&&i!==this.offset?this.transitionEndTrigger=r:r(),this.offset=i},setValue:function(t){for(var e=this.options,n=0;nn&&(t=this.value&&this.value.length===+n?this.value:t.slice(0,n)),"number"===this.type||"digit"===this.type){var i="number"===this.type;t=ke(t,i,i)}this.formatter&&e===this.formatTrigger&&(t=this.formatter(t));var r=this.$refs.input;r&&t!==r.value&&(r.value=t),t!==this.value&&this.$emit("input",t)},onInput:function(t){t.target.composing||this.updateValue(t.target.value)},onFocus:function(t){this.focused=!0,this.$emit("focus",t),this.$nextTick(this.adjustSize),this.getProp("readonly")&&this.blur()},onBlur:function(t){this.getProp("readonly")||(this.focused=!1,this.updateValue(this.value,"onBlur"),this.$emit("blur",t),this.validateWithTrigger("onBlur"),this.$nextTick(this.adjustSize),cn())},onClick:function(t){this.$emit("click",t)},onClickInput:function(t){this.$emit("click-input",t)},onClickLeftIcon:function(t){this.$emit("click-left-icon",t)},onClickRightIcon:function(t){this.$emit("click-right-icon",t)},onClear:function(t){q(t),this.$emit("input",""),this.$emit("clear",t)},onKeypress:function(t){var e=13;if(t.keyCode===e){var n=this.getProp("submitOnEnter");n||"textarea"===this.type||q(t),"search"===this.type&&this.blur()}this.$emit("keypress",t)},adjustSize:function(){var t=this.$refs.input;if("textarea"===this.type&&this.autosize&&t){var e=ht();t.style.height="auto";var n=t.scrollHeight;if(p(this.autosize)){var i=this.autosize,r=i.maxHeight,o=i.minHeight;r&&(n=Math.min(n,r)),o&&(n=Math.max(n,o))}n&&(t.style.height=n+"px",dt(e))}},genInput:function(){var t=this.$createElement,e=this.type,n=this.getProp("disabled"),r=this.getProp("readonly"),s=this.slots("input"),a=this.getProp("inputAlign");if(s)return t("div",{class:hn("control",[a,"custom"]),on:{click:this.onClickInput}},[s]);var c={ref:"input",class:hn("control",a),domProps:{value:this.value},attrs:i({},this.$attrs,{name:this.name,disabled:n,readonly:r,placeholder:this.placeholder}),on:this.listeners,directives:[{name:"model",value:this.value}]};if("textarea"===e)return t("textarea",o()([{},c]));var l,u=e;return"number"===e&&(u="text",l="decimal"),"digit"===e&&(u="tel",l="numeric"),t("input",o()([{attrs:{type:u,inputmode:l}},c]))},genLeftIcon:function(){var t=this.$createElement,e=this.slots("left-icon")||this.leftIcon;if(e)return t("div",{class:hn("left-icon"),on:{click:this.onClickLeftIcon}},[this.slots("left-icon")||t(qt,{attrs:{name:this.leftIcon,classPrefix:this.iconPrefix}})])},genRightIcon:function(){var t=this.$createElement,e=this.slots,n=e("right-icon")||this.rightIcon;if(n)return t("div",{class:hn("right-icon"),on:{click:this.onClickRightIcon}},[e("right-icon")||t(qt,{attrs:{name:this.rightIcon,classPrefix:this.iconPrefix}})])},genWordLimit:function(){var t=this.$createElement;if(this.showWordLimit&&this.maxlength){var e=(this.value||"").length;return t("div",{class:hn("word-limit")},[t("span",{class:hn("word-num")},[e]),"/",this.maxlength])}},genMessage:function(){var t=this.$createElement;if(!this.vanForm||!1!==this.vanForm.showErrorMessage){var e=this.errorMessage||this.validateMessage;if(e){var n=this.getProp("errorMessageAlign");return t("div",{class:hn("error-message",n)},[e])}}},getProp:function(t){return d(this[t])?this[t]:this.vanForm&&d(this.vanForm[t])?this.vanForm[t]:void 0},genLabel:function(){var t=this.$createElement,e=this.getProp("colon")?":":"";return this.slots("label")?[this.slots("label"),e]:this.label?t("span",[this.label+e]):void 0}},render:function(){var t,e=arguments[0],n=this.slots,i=this.getProp("disabled"),r=this.getProp("labelAlign"),o={icon:this.genLeftIcon},s=this.genLabel();s&&(o.title=function(){return s});var a=this.slots("extra");return a&&(o.extra=function(){return a}),e(rn,{attrs:{icon:this.leftIcon,size:this.size,center:this.center,border:this.border,isLink:this.isLink,required:this.required,clickable:this.clickable,titleStyle:this.labelStyle,valueClass:hn("value"),titleClass:[hn("label",r),this.labelClass],arrowDirection:this.arrowDirection},scopedSlots:o,class:hn((t={error:this.showError,disabled:i},t["label-"+r]=r,t["min-height"]="textarea"===this.type&&!this.autosize,t)),on:{click:this.onClick}},[e("div",{class:hn("body")},[this.genInput(),this.showClear&&e(qt,{attrs:{name:"clear"},class:hn("clear"),on:{touchstart:this.onClear}}),this.genRightIcon(),n("button")&&e("div",{class:hn("button")},[n("button")])]),this.genWordLimit(),this.genMessage()])}}),fn=0;function pn(t){t?(fn||document.body.classList.add("van-toast--unclickable"),fn++):(fn--,fn||document.body.classList.remove("van-toast--unclickable"))}var vn=D("toast"),mn=vn[0],gn=vn[1],yn=mn({mixins:[Tt()],props:{icon:String,className:null,iconPrefix:String,loadingType:String,forbidClick:Boolean,closeOnClick:Boolean,message:[Number,String],type:{type:String,default:"text"},position:{type:String,default:"middle"},transition:{type:String,default:"van-fade"},lockScroll:{type:Boolean,default:!1}},data:function(){return{clickable:!1}},mounted:function(){this.toggleClickable()},destroyed:function(){this.toggleClickable()},watch:{value:"toggleClickable",forbidClick:"toggleClickable"},methods:{onClick:function(){this.closeOnClick&&this.close()},toggleClickable:function(){var t=this.value&&this.forbidClick;this.clickable!==t&&(this.clickable=t,pn(t))},onAfterEnter:function(){this.$emit("opened"),this.onOpened&&this.onOpened()},onAfterLeave:function(){this.$emit("closed")},genIcon:function(){var t=this.$createElement,e=this.icon,n=this.type,i=this.iconPrefix,r=this.loadingType,o=e||"success"===n||"fail"===n;return o?t(qt,{class:gn("icon"),attrs:{classPrefix:i,name:e||n}}):"loading"===n?t(ie,{class:gn("loading"),attrs:{type:r}}):void 0},genMessage:function(){var t=this.$createElement,e=this.type,n=this.message;if(d(n)&&""!==n)return"html"===e?t("div",{class:gn("text"),domProps:{innerHTML:n}}):t("div",{class:gn("text")},[n])}},render:function(){var t,e=arguments[0];return e("transition",{attrs:{name:this.transition},on:{afterEnter:this.onAfterEnter,afterLeave:this.onAfterLeave}},[e("div",{directives:[{name:"show",value:this.value}],class:[gn([this.position,(t={},t[this.type]=!this.icon,t)]),this.className],on:{click:this.onClick}},[this.genIcon(),this.genMessage()])])}}),bn={icon:"",type:"text",mask:!1,value:!0,message:"",className:"",overlay:!1,onClose:null,onOpened:null,duration:2e3,iconPrefix:void 0,position:"middle",transition:"van-fade",forbidClick:!1,loadingType:void 0,getContainer:"body",overlayStyle:null,closeOnClick:!1,closeOnClickOverlay:!1},Sn={},wn=[],xn=!1,kn=i({},bn);function Cn(t){return p(t)?t:{message:t}}function Tn(t){return document.body.contains(t)}function On(){if(u)return{};if(wn=wn.filter((function(t){return!t.$el.parentNode||Tn(t.$el)})),!wn.length||xn){var t=new(s.ZP.extend(yn))({el:document.createElement("div")});t.$on("input",(function(e){t.value=e})),wn.push(t)}return wn[wn.length-1]}function $n(t){return i({},t,{overlay:t.mask||t.overlay,mask:void 0,duration:void 0})}function En(t){void 0===t&&(t={});var e=On();return e.value&&e.updateZIndex(),t=Cn(t),t=i({},kn,Sn[t.type||kn.type],t),t.clear=function(){e.value=!1,t.onClose&&(t.onClose(),t.onClose=null),xn&&!u&&e.$on("closed",(function(){clearTimeout(e.timer),wn=wn.filter((function(t){return t!==e})),Q(e.$el),e.$destroy()}))},i(e,$n(t)),clearTimeout(e.timer),t.duration>0&&(e.timer=setTimeout((function(){e.clear()}),t.duration)),e}var _n=function(t){return function(e){return En(i({type:t},Cn(e)))}};["loading","success","fail"].forEach((function(t){En[t]=_n(t)})),En.clear=function(t){wn.length&&(t?(wn.forEach((function(t){t.clear()})),wn=[]):xn?wn.shift().clear():wn[0].clear())},En.setDefaultOptions=function(t,e){"string"===typeof t?Sn[t]=e:i(kn,t)},En.resetDefaultOptions=function(t){"string"===typeof t?Sn[t]=null:(kn=i({},bn),Sn={})},En.allowMultiple=function(t){void 0===t&&(t=!0),xn=t},En.install=function(){s.ZP.use(yn)},s.ZP.prototype.$toast=En;var In=En,Bn=D("button"),An=Bn[0],Pn=Bn[1];function Dn(t,e,n,i){var r,s=e.tag,a=e.icon,c=e.type,l=e.color,u=e.plain,h=e.disabled,d=e.loading,f=e.hairline,p=e.loadingText,v=e.iconPosition,m={};function g(t){e.loading&&t.preventDefault(),d||h||(M(i,"click",t),Ze(i))}function y(t){M(i,"touchstart",t)}l&&(m.color=u?l:"white",u||(m.background=l),-1!==l.indexOf("gradient")?m.border=0:m.borderColor=l);var b=[Pn([c,e.size,{plain:u,loading:d,disabled:h,hairline:f,block:e.block,round:e.round,square:e.square}]),(r={},r[ge]=f,r)];function S(){return d?n.loading?n.loading():t(ie,{class:Pn("loading"),attrs:{size:e.loadingSize,type:e.loadingType,color:"currentColor"}}):n.icon?t("div",{class:Pn("icon")},[n.icon()]):a?t(qt,{attrs:{name:a,classPrefix:e.iconPrefix},class:Pn("icon")}):void 0}function w(){var i,r=[];return"left"===v&&r.push(S()),i=d?p:n.default?n.default():e.text,i&&r.push(t("span",{class:Pn("text")},[i])),"right"===v&&r.push(S()),r}return t(s,o()([{style:m,class:b,attrs:{type:e.nativeType,disabled:h},on:{click:g,touchstart:y}},L(i)]),[t("div",{class:Pn("content")},[w()])])}Dn.props=i({},Ge,{text:String,icon:String,color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,nativeType:String,loadingText:String,loadingType:String,tag:{type:String,default:"button"},type:{type:String,default:"default"},size:{type:String,default:"normal"},loadingSize:{type:String,default:"20px"},iconPosition:{type:String,default:"left"}});var Nn=An(Dn);function Rn(t){var e=[];function n(t){t.forEach((function(t){e.push(t),t.componentInstance&&n(t.componentInstance.$children.map((function(t){return t.$vnode}))),t.children&&n(t.children)}))}return n(t),e}function Ln(t,e){var n=e.$vnode.componentOptions;if(n&&n.children){var i=Rn(n.children);t.sort((function(t,e){return i.indexOf(t.$vnode)-i.indexOf(e.$vnode)}))}}function Mn(t,e){var n,i;void 0===e&&(e={});var r=e.indexKey||"index";return{inject:(n={},n[t]={default:null},n),computed:(i={parent:function(){return this.disableBindRelation?null:this[t]}},i[r]=function(){return this.bindRelation(),this.parent?this.parent.children.indexOf(this):null},i),watch:{disableBindRelation:function(t){t||this.bindRelation()}},mounted:function(){this.bindRelation()},beforeDestroy:function(){var t=this;this.parent&&(this.parent.children=this.parent.children.filter((function(e){return e!==t})))},methods:{bindRelation:function(){if(this.parent&&-1===this.parent.children.indexOf(this)){var t=[].concat(this.parent.children,[this]);Ln(t,this.parent),this.parent.children=t}}}}}function jn(t){return{provide:function(){var e;return e={},e[t]=this,e},data:function(){return{children:[]}}}}var zn,Fn=D("goods-action"),Vn=Fn[0],Hn=Fn[1],Un=Vn({mixins:[jn("vanGoodsAction")],props:{safeAreaInsetBottom:{type:Boolean,default:!0}},render:function(){var t=arguments[0];return t("div",{class:Hn({unfit:!this.safeAreaInsetBottom})},[this.slots()])}}),Wn=D("goods-action-button"),qn=Wn[0],Kn=Wn[1],Yn=qn({mixins:[Mn("vanGoodsAction")],props:i({},Ge,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean}),computed:{isFirst:function(){var t=this.parent&&this.parent.children[this.index-1];return!t||t.$options.name!==this.$options.name},isLast:function(){var t=this.parent&&this.parent.children[this.index+1];return!t||t.$options.name!==this.$options.name}},methods:{onClick:function(t){this.$emit("click",t),Xe(this.$router,this)}},render:function(){var t=arguments[0];return t(Nn,{class:Kn([{first:this.isFirst,last:this.isLast},this.type]),attrs:{size:"large",type:this.type,icon:this.icon,color:this.color,loading:this.loading,disabled:this.disabled},on:{click:this.onClick}},[this.slots()||this.text])}}),Xn=D("dialog"),Zn=Xn[0],Gn=Xn[1],Jn=Xn[2],Qn=Zn({mixins:[Tt()],props:{title:String,theme:String,width:[Number,String],message:String,className:null,callback:Function,beforeClose:Function,messageAlign:String,cancelButtonText:String,cancelButtonColor:String,confirmButtonText:String,confirmButtonColor:String,showCancelButton:Boolean,overlay:{type:Boolean,default:!0},allowHtml:{type:Boolean,default:!0},transition:{type:String,default:"van-dialog-bounce"},showConfirmButton:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!1}},data:function(){return{loading:{confirm:!1,cancel:!1}}},methods:{onClickOverlay:function(){this.handleAction("overlay")},handleAction:function(t){var e=this;this.$emit(t),this.value&&(this.beforeClose?(this.loading[t]=!0,this.beforeClose(t,(function(n){!1!==n&&e.loading[t]&&e.onClose(t),e.loading.confirm=!1,e.loading.cancel=!1}))):this.onClose(t))},onClose:function(t){this.close(),this.callback&&this.callback(t)},onOpened:function(){var t=this;this.$emit("opened"),this.$nextTick((function(){var e;null==(e=t.$refs.dialog)||e.focus()}))},onClosed:function(){this.$emit("closed")},onKeydown:function(t){var e=this;if("Escape"===t.key||"Enter"===t.key){if(t.target!==this.$refs.dialog)return;var n={Enter:this.showConfirmButton?function(){return e.handleAction("confirm")}:h,Escape:this.showCancelButton?function(){return e.handleAction("cancel")}:h};n[t.key](),this.$emit("keydown",t)}},genRoundButtons:function(){var t=this,e=this.$createElement;return e(Un,{class:Gn("footer")},[this.showCancelButton&&e(Yn,{attrs:{size:"large",type:"warning",text:this.cancelButtonText||Jn("cancel"),color:this.cancelButtonColor,loading:this.loading.cancel},class:Gn("cancel"),on:{click:function(){t.handleAction("cancel")}}}),this.showConfirmButton&&e(Yn,{attrs:{size:"large",type:"danger",text:this.confirmButtonText||Jn("confirm"),color:this.confirmButtonColor,loading:this.loading.confirm},class:Gn("confirm"),on:{click:function(){t.handleAction("confirm")}}})])},genButtons:function(){var t,e=this,n=this.$createElement,i=this.showCancelButton&&this.showConfirmButton;return n("div",{class:[pe,Gn("footer")]},[this.showCancelButton&&n(Nn,{attrs:{size:"large",loading:this.loading.cancel,text:this.cancelButtonText||Jn("cancel"),nativeType:"button"},class:Gn("cancel"),style:{color:this.cancelButtonColor},on:{click:function(){e.handleAction("cancel")}}}),this.showConfirmButton&&n(Nn,{attrs:{size:"large",loading:this.loading.confirm,text:this.confirmButtonText||Jn("confirm"),nativeType:"button"},class:[Gn("confirm"),(t={},t[ve]=i,t)],style:{color:this.confirmButtonColor},on:{click:function(){e.handleAction("confirm")}}})])},genContent:function(t,e){var n=this.$createElement;if(e)return n("div",{class:Gn("content")},[e]);var i=this.message,r=this.messageAlign;if(i){var s,a,c={class:Gn("message",(s={"has-title":t},s[r]=r,s)),domProps:(a={},a[this.allowHtml?"innerHTML":"textContent"]=i,a)};return n("div",{class:Gn("content",{isolated:!t})},[n("div",o()([{},c]))])}}},render:function(){var t=arguments[0];if(this.shouldRender){var e=this.message,n=this.slots(),i=this.slots("title")||this.title,r=i&&t("div",{class:Gn("header",{isolated:!e&&!n})},[i]);return t("transition",{attrs:{name:this.transition},on:{afterEnter:this.onOpened,afterLeave:this.onClosed}},[t("div",{directives:[{name:"show",value:this.value}],attrs:{role:"dialog","aria-labelledby":this.title||e,tabIndex:0},class:[Gn([this.theme]),this.className],style:{width:Et(this.width)},ref:"dialog",on:{keydown:this.onKeydown}},[r,this.genContent(i,n),"round-button"===this.theme?this.genRoundButtons():this.genButtons()])])}}});function ti(t){return document.body.contains(t)}function ei(){zn&&zn.$destroy(),zn=new(s.ZP.extend(Qn))({el:document.createElement("div"),propsData:{lazyRender:!1}}),zn.$on("input",(function(t){zn.value=t}))}function ni(t){return u?Promise.resolve():new Promise((function(e,n){zn&&ti(zn.$el)||ei(),i(zn,ni.currentOptions,t,{resolve:e,reject:n})}))}ni.defaultOptions={value:!0,title:"",width:"",theme:null,message:"",overlay:!0,className:"",allowHtml:!0,lockScroll:!0,transition:"van-dialog-bounce",beforeClose:null,overlayClass:"",overlayStyle:null,messageAlign:"",getContainer:"body",cancelButtonText:"",cancelButtonColor:null,confirmButtonText:"",confirmButtonColor:null,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1,callback:function(t){zn["confirm"===t?"resolve":"reject"](t)}},ni.alert=ni,ni.confirm=function(t){return ni(i({showCancelButton:!0},t))},ni.close=function(){zn&&(zn.value=!1)},ni.setDefaultOptions=function(t){i(ni.currentOptions,t)},ni.resetDefaultOptions=function(){ni.currentOptions=i({},ni.defaultOptions)},ni.resetDefaultOptions(),ni.install=function(){s.ZP.use(Qn)},ni.Component=Qn,s.ZP.prototype.$dialog=ni;var ii=ni,ri=D("address-edit-detail"),oi=ri[0],si=ri[1],ai=ri[2],ci=on(),li=oi({props:{value:String,errorMessage:String,focused:Boolean,detailRows:[Number,String],searchResult:Array,detailMaxlength:[Number,String],showSearchResult:Boolean},computed:{shouldShowSearchResult:function(){return this.focused&&this.searchResult&&this.showSearchResult}},methods:{onSelect:function(t){this.$emit("select-search",t),this.$emit("input",((t.address||"")+" "+(t.name||"")).trim())},onFinish:function(){this.$refs.field.blur()},genFinish:function(){var t=this.$createElement,e=this.value&&this.focused&&ci;if(e)return t("div",{class:si("finish"),on:{click:this.onFinish}},[ai("complete")])},genSearchResult:function(){var t=this,e=this.$createElement,n=this.value,i=this.shouldShowSearchResult,r=this.searchResult;if(i)return r.map((function(i){return e(rn,{key:i.name+i.address,attrs:{clickable:!0,border:!1,icon:"location-o",label:i.address},class:si("search-item"),on:{click:function(){t.onSelect(i)}},scopedSlots:{title:function(){if(i.name){var t=i.name.replace(n,""+n+"");return e("div",{domProps:{innerHTML:t}})}}}})}))}},render:function(){var t=arguments[0];return t(rn,{class:si()},[t(dn,{attrs:{autosize:!0,rows:this.detailRows,clearable:!ci,type:"textarea",value:this.value,errorMessage:this.errorMessage,border:!this.shouldShowSearchResult,label:ai("label"),maxlength:this.detailMaxlength,placeholder:ai("placeholder")},ref:"field",scopedSlots:{icon:this.genFinish},on:i({},this.$listeners)}),this.genSearchResult()])}}),ui={size:[Number,String],value:null,loading:Boolean,disabled:Boolean,activeColor:String,inactiveColor:String,activeValue:{type:null,default:!0},inactiveValue:{type:null,default:!1}},hi={inject:{vanField:{default:null}},watch:{value:function(){var t=this.vanField;t&&(t.resetValidation(),t.validateWithTrigger("onChange"))}},created:function(){var t=this.vanField;t&&!t.children&&(t.children=this)}},di=D("switch"),fi=di[0],pi=di[1],vi=fi({mixins:[hi],props:ui,computed:{checked:function(){return this.value===this.activeValue},style:function(){return{fontSize:Et(this.size),backgroundColor:this.checked?this.activeColor:this.inactiveColor}}},methods:{onClick:function(t){if(this.$emit("click",t),!this.disabled&&!this.loading){var e=this.checked?this.inactiveValue:this.activeValue;this.$emit("input",e),this.$emit("change",e)}},genLoading:function(){var t=this.$createElement;if(this.loading){var e=this.checked?this.activeColor:this.inactiveColor;return t(ie,{class:pi("loading"),attrs:{color:e}})}}},render:function(){var t=arguments[0],e=this.checked,n=this.loading,i=this.disabled;return t("div",{class:pi({on:e,loading:n,disabled:i}),attrs:{role:"switch","aria-checked":String(e)},style:this.style,on:{click:this.onClick}},[t("div",{class:pi("node")},[this.genLoading()])])}}),mi=D("address-edit"),gi=mi[0],yi=mi[1],bi=mi[2],Si={name:"",tel:"",country:"",province:"",city:"",county:"",areaCode:"",postalCode:"",addressDetail:"",isDefault:!1};function wi(t){return/^\d{6}$/.test(t)}var xi=gi({props:{areaList:Object,isSaving:Boolean,isDeleting:Boolean,validator:Function,showDelete:Boolean,showPostal:Boolean,searchResult:Array,telMaxlength:[Number,String],showSetDefault:Boolean,saveButtonText:String,areaPlaceholder:String,deleteButtonText:String,showSearchResult:Boolean,showArea:{type:Boolean,default:!0},showDetail:{type:Boolean,default:!0},disableArea:Boolean,detailRows:{type:[Number,String],default:1},detailMaxlength:{type:[Number,String],default:200},addressInfo:{type:Object,default:function(){return i({},Si)}},telValidator:{type:Function,default:le},postalValidator:{type:Function,default:wi},areaColumnsPlaceholder:{type:Array,default:function(){return[]}}},data:function(){return{data:{},showAreaPopup:!1,detailFocused:!1,errorInfo:{tel:"",name:"",areaCode:"",postalCode:"",addressDetail:""}}},computed:{areaListLoaded:function(){return p(this.areaList)&&Object.keys(this.areaList).length},areaText:function(){var t=this.data,e=t.country,n=t.province,i=t.city,r=t.county,o=t.areaCode;if(o){var s=[e,n,i,r];return n&&n===i&&s.splice(1,1),s.filter((function(t){return t})).join("/")}return""},hideBottomFields:function(){var t=this.searchResult;return t&&t.length&&this.detailFocused}},watch:{addressInfo:{handler:function(t){this.data=i({},Si,t),this.setAreaCode(t.areaCode)},deep:!0,immediate:!0},areaList:function(){this.setAreaCode(this.data.areaCode)}},methods:{onFocus:function(t){this.errorInfo[t]="",this.detailFocused="addressDetail"===t,this.$emit("focus",t)},onChangeDetail:function(t){this.data.addressDetail=t,this.$emit("change-detail",t)},onAreaConfirm:function(t){t=t.filter((function(t){return!!t})),t.some((function(t){return!t.code}))?In(bi("areaEmpty")):(this.showAreaPopup=!1,this.assignAreaValues(),this.$emit("change-area",t))},assignAreaValues:function(){var t=this.$refs.area;if(t){var e=t.getArea();e.areaCode=e.code,delete e.code,i(this.data,e)}},onSave:function(){var t=this,e=["name","tel"];this.showArea&&e.push("areaCode"),this.showDetail&&e.push("addressDetail"),this.showPostal&&e.push("postalCode");var n=e.every((function(e){var n=t.getErrorMessage(e);return n&&(t.errorInfo[e]=n),!n}));n&&!this.isSaving&&this.$emit("save",this.data)},getErrorMessage:function(t){var e=String(this.data[t]||"").trim();if(this.validator){var n=this.validator(t,e);if(n)return n}switch(t){case"name":return e?"":bi("nameEmpty");case"tel":return this.telValidator(e)?"":bi("telInvalid");case"areaCode":return e?"":bi("areaEmpty");case"addressDetail":return e?"":bi("addressEmpty");case"postalCode":return e&&!this.postalValidator(e)?bi("postalEmpty"):""}},onDelete:function(){var t=this;ii.confirm({title:bi("confirmDelete")}).then((function(){t.$emit("delete",t.data)})).catch((function(){t.$emit("cancel-delete",t.data)}))},getArea:function(){return this.$refs.area?this.$refs.area.getValues():[]},setAreaCode:function(t){this.data.areaCode=t||"",t&&this.$nextTick(this.assignAreaValues)},setAddressDetail:function(t){this.data.addressDetail=t},onDetailBlur:function(){var t=this;setTimeout((function(){t.detailFocused=!1}))},genSetDefaultCell:function(t){var e=this;if(this.showSetDefault){var n={"right-icon":function(){return t(vi,{attrs:{size:"24"},on:{change:function(t){e.$emit("change-default",t)}},model:{value:e.data.isDefault,callback:function(t){e.$set(e.data,"isDefault",t)}}})}};return t(rn,{directives:[{name:"show",value:!this.hideBottomFields}],attrs:{center:!0,title:bi("defaultAddress")},class:yi("default"),scopedSlots:n})}return t()}},render:function(t){var e=this,n=this.data,i=this.errorInfo,r=this.disableArea,o=this.hideBottomFields,s=function(t){return function(){return e.onFocus(t)}};return t("div",{class:yi()},[t("div",{class:yi("fields")},[t(dn,{attrs:{clearable:!0,label:bi("name"),placeholder:bi("namePlaceholder"),errorMessage:i.name},on:{focus:s("name")},model:{value:n.name,callback:function(t){e.$set(n,"name",t)}}}),t(dn,{attrs:{clearable:!0,type:"tel",label:bi("tel"),maxlength:this.telMaxlength,placeholder:bi("telPlaceholder"),errorMessage:i.tel},on:{focus:s("tel")},model:{value:n.tel,callback:function(t){e.$set(n,"tel",t)}}}),t(dn,{directives:[{name:"show",value:this.showArea}],attrs:{readonly:!0,clickable:!r,label:bi("area"),placeholder:this.areaPlaceholder||bi("areaPlaceholder"),errorMessage:i.areaCode,rightIcon:r?null:"arrow",value:this.areaText},on:{focus:s("areaCode"),click:function(){e.$emit("click-area"),e.showAreaPopup=!r}}}),t(li,{directives:[{name:"show",value:this.showDetail}],attrs:{focused:this.detailFocused,value:n.addressDetail,errorMessage:i.addressDetail,detailRows:this.detailRows,detailMaxlength:this.detailMaxlength,searchResult:this.searchResult,showSearchResult:this.showSearchResult},on:{focus:s("addressDetail"),blur:this.onDetailBlur,input:this.onChangeDetail,"select-search":function(t){e.$emit("select-search",t)}}}),this.showPostal&&t(dn,{directives:[{name:"show",value:!o}],attrs:{type:"tel",maxlength:"6",label:bi("postal"),placeholder:bi("postal"),errorMessage:i.postalCode},on:{focus:s("postalCode")},model:{value:n.postalCode,callback:function(t){e.$set(n,"postalCode",t)}}}),this.slots()]),this.genSetDefaultCell(t),t("div",{directives:[{name:"show",value:!o}],class:yi("buttons")},[t(Nn,{attrs:{block:!0,round:!0,loading:this.isSaving,type:"danger",text:this.saveButtonText||bi("save")},on:{click:this.onSave}}),this.showDelete&&t(Nn,{attrs:{block:!0,round:!0,loading:this.isDeleting,text:this.deleteButtonText||bi("delete")},on:{click:this.onDelete}})]),t(Zt,{attrs:{round:!0,position:"bottom",lazyRender:!1,getContainer:"body"},model:{value:e.showAreaPopup,callback:function(t){e.showAreaPopup=t}}},[t(Ke,{ref:"area",attrs:{value:n.areaCode,loading:!this.areaListLoaded,areaList:this.areaList,columnsPlaceholder:this.areaColumnsPlaceholder},on:{confirm:this.onAreaConfirm,cancel:function(){e.showAreaPopup=!1}}})])])}}),ki=D("radio-group"),Ci=ki[0],Ti=ki[1],Oi=Ci({mixins:[jn("vanRadio"),hi],props:{value:null,disabled:Boolean,direction:String,checkedColor:String,iconSize:[Number,String]},watch:{value:function(t){this.$emit("change",t)}},render:function(){var t=arguments[0];return t("div",{class:Ti([this.direction]),attrs:{role:"radiogroup"}},[this.slots()])}}),$i=D("tag"),Ei=$i[0],_i=$i[1];function Ii(t,e,n,i){var r,s=e.type,a=e.mark,c=e.plain,l=e.color,u=e.round,h=e.size,d=e.textColor,f=c?"color":"backgroundColor",p=(r={},r[f]=l,r);c?(p.color=d||l,p.borderColor=l):(p.color=d,p.background=l);var v={mark:a,plain:c,round:u};h&&(v[h]=h);var m=e.closeable&&t(qt,{attrs:{name:"cross"},class:_i("close"),on:{click:function(t){t.stopPropagation(),M(i,"close")}}});return t("transition",{attrs:{name:e.closeable?"van-fade":null}},[t("span",o()([{key:"content",style:p,class:_i([v,s])},L(i,!0)]),[null==n.default?void 0:n.default(),m])])}Ii.props={size:String,mark:Boolean,color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean,type:{type:String,default:"default"}};var Bi=Ei(Ii),Ai=function(t){var e=t.parent,n=t.bem,i=t.role;return{mixins:[Mn(e),hi],props:{name:null,value:null,disabled:Boolean,iconSize:[Number,String],checkedColor:String,labelPosition:String,labelDisabled:Boolean,shape:{type:String,default:"round"},bindGroup:{type:Boolean,default:!0}},computed:{disableBindRelation:function(){return!this.bindGroup},isDisabled:function(){return this.parent&&this.parent.disabled||this.disabled},direction:function(){return this.parent&&this.parent.direction||null},iconStyle:function(){var t=this.checkedColor||this.parent&&this.parent.checkedColor;if(t&&this.checked&&!this.isDisabled)return{borderColor:t,backgroundColor:t}},tabindex:function(){return this.isDisabled||"radio"===i&&!this.checked?-1:0}},methods:{onClick:function(t){var e=this,n=t.target,i=this.$refs.icon,r=i===n||(null==i?void 0:i.contains(n));this.isDisabled||!r&&this.labelDisabled?this.$emit("click",t):(this.toggle(),setTimeout((function(){e.$emit("click",t)})))},genIcon:function(){var t=this.$createElement,e=this.checked,i=this.iconSize||this.parent&&this.parent.iconSize;return t("div",{ref:"icon",class:n("icon",[this.shape,{disabled:this.isDisabled,checked:e}]),style:{fontSize:Et(i)}},[this.slots("icon",{checked:e})||t(qt,{attrs:{name:"success"},style:this.iconStyle})])},genLabel:function(){var t=this.$createElement,e=this.slots();if(e)return t("span",{class:n("label",[this.labelPosition,{disabled:this.isDisabled}])},[e])}},render:function(){var t=arguments[0],e=[this.genIcon()];return"left"===this.labelPosition?e.unshift(this.genLabel()):e.push(this.genLabel()),t("div",{attrs:{role:i,tabindex:this.tabindex,"aria-checked":String(this.checked)},class:n([{disabled:this.isDisabled,"label-disabled":this.labelDisabled},this.direction]),on:{click:this.onClick}},[e])}}},Pi=D("radio"),Di=Pi[0],Ni=Pi[1],Ri=Di({mixins:[Ai({bem:Ni,role:"radio",parent:"vanRadio"})],computed:{currentValue:{get:function(){return this.parent?this.parent.value:this.value},set:function(t){(this.parent||this).$emit("input",t)}},checked:function(){return this.currentValue===this.name}},methods:{toggle:function(){this.currentValue=this.name}}}),Li=D("address-item"),Mi=Li[0],ji=Li[1];function zi(t,e,n,r){var s=e.disabled,a=e.switchable;function c(){a&&M(r,"select"),M(r,"click")}var l=function(){return t(qt,{attrs:{name:"edit"},class:ji("edit"),on:{click:function(t){t.stopPropagation(),M(r,"edit"),M(r,"click")}}})};function u(){return n.tag?n.tag(i({},e.data)):e.data.isDefault&&e.defaultTagText?t(Bi,{attrs:{type:"danger",round:!0},class:ji("tag")},[e.defaultTagText]):void 0}function h(){var n=e.data,i=[t("div",{class:ji("name")},[n.name+" "+n.tel,u()]),t("div",{class:ji("address")},[n.address])];return a&&!s?t(Ri,{attrs:{name:n.id,iconSize:18}},[i]):i}return t("div",{class:ji({disabled:s}),on:{click:c}},[t(rn,o()([{attrs:{border:!1,valueClass:ji("value")},scopedSlots:{default:h,"right-icon":l}},L(r)])),null==n.bottom?void 0:n.bottom(i({},e.data,{disabled:s}))])}zi.props={data:Object,disabled:Boolean,switchable:Boolean,defaultTagText:String};var Fi=Mi(zi),Vi=D("address-list"),Hi=Vi[0],Ui=Vi[1],Wi=Vi[2];function qi(t,e,n,i){function r(r,o){if(r)return r.map((function(r,s){return t(Fi,{attrs:{data:r,disabled:o,switchable:e.switchable,defaultTagText:e.defaultTagText},key:r.id,scopedSlots:{bottom:n["item-bottom"],tag:n.tag},on:{select:function(){M(i,o?"select-disabled":"select",r,s),o||M(i,"input",r.id)},edit:function(){M(i,o?"edit-disabled":"edit",r,s)},click:function(){M(i,"click-item",r,s)}}})}))}var s=r(e.list),a=r(e.disabledList,!0);return t("div",o()([{class:Ui()},L(i)]),[null==n.top?void 0:n.top(),t(Oi,{attrs:{value:e.value}},[s]),e.disabledText&&t("div",{class:Ui("disabled-text")},[e.disabledText]),a,null==n.default?void 0:n.default(),t("div",{class:Ui("bottom")},[t(Nn,{attrs:{round:!0,block:!0,type:"danger",text:e.addButtonText||Wi("add")},class:Ui("add"),on:{click:function(){M(i,"add")}}})])])}qi.props={list:Array,value:[Number,String],disabledList:Array,disabledText:String,addButtonText:String,defaultTagText:String,switchable:{type:Boolean,default:!0}};var Ki=Hi(qi),Yi=D("badge"),Xi=Yi[0],Zi=Yi[1],Gi=Xi({props:{dot:Boolean,max:[Number,String],color:String,content:[Number,String],tag:{type:String,default:"div"}},methods:{hasContent:function(){return!!(this.$scopedSlots.content||d(this.content)&&""!==this.content)},renderContent:function(){var t=this.dot,e=this.max,n=this.content;if(!t&&this.hasContent())return this.$scopedSlots.content?this.$scopedSlots.content():d(e)&&Ot(n)&&+n>e?e+"+":n},renderBadge:function(){var t=this.$createElement;if(this.hasContent()||this.dot)return t("div",{class:Zi({dot:this.dot,fixed:!!this.$scopedSlots.default}),style:{background:this.color}},[this.renderContent()])}},render:function(){var t=arguments[0];if(this.$scopedSlots.default){var e=this.tag;return t(e,{class:Zi("wrapper")},[this.$scopedSlots.default(),this.renderBadge()])}return this.renderBadge()}}),Ji=Date.now();function Qi(t){var e=Date.now(),n=Math.max(0,16-(e-Ji)),i=setTimeout(t,n);return Ji=e+n,i}var tr=u?n.g:window,er=tr.requestAnimationFrame||Qi,nr=tr.cancelAnimationFrame||tr.clearTimeout;function ir(t){return er.call(tr,t)}function rr(t){ir((function(){ir(t)}))}function or(t){nr.call(tr,t)}function sr(t){return"[object Date]"===Object.prototype.toString.call(t)&&!$t(t.getTime())}var ar=D("calendar"),cr=ar[0],lr=ar[1],ur=ar[2];function hr(t){return ur("monthTitle",t.getFullYear(),t.getMonth()+1)}function dr(t,e){var n=t.getFullYear(),i=e.getFullYear(),r=t.getMonth(),o=e.getMonth();return n===i?r===o?0:r>o?1:-1:n>i?1:-1}function fr(t,e){var n=dr(t,e);if(0===n){var i=t.getDate(),r=e.getDate();return i===r?0:i>r?1:-1}return n}function pr(t,e){return t=new Date(t),t.setDate(t.getDate()+e),t}function vr(t){return pr(t,-1)}function mr(t){return pr(t,1)}function gr(t){var e=t[0].getTime(),n=t[1].getTime();return(n-e)/864e5+1}function yr(t){return new Date(t)}function br(t){return Array.isArray(t)?t.map((function(t){return null===t?t:yr(t)})):yr(t)}function Sr(t,e){if(t<0)return[];var n=-1,i=Array(t);while(++n1))return 0;t=t.slice(1)}return parseInt(t,10)}function xr(t,e){return 32-new Date(t,e-1,32).getDate()}var kr=D("calendar-month"),Cr=kr[0],Tr=Cr({props:{date:Date,type:String,color:String,minDate:Date,maxDate:Date,showMark:Boolean,rowHeight:[Number,String],formatter:Function,lazyRender:Boolean,currentDate:[Date,Array],allowSameDay:Boolean,showSubtitle:Boolean,showMonthTitle:Boolean,firstDayOfWeek:Number},data:function(){return{visible:!1}},computed:{title:function(){return hr(this.date)},rowHeightWithUnit:function(){return Et(this.rowHeight)},offset:function(){var t=this.firstDayOfWeek,e=this.date.getDay();return t?(e+7-this.firstDayOfWeek)%7:e},totalDay:function(){return xr(this.date.getFullYear(),this.date.getMonth()+1)},shouldRender:function(){return this.visible||!this.lazyRender},placeholders:function(){for(var t=[],e=Math.ceil((this.totalDay+this.offset)/7),n=1;n<=e;n++)t.push({type:"placeholder"});return t},days:function(){for(var t=[],e=this.date.getFullYear(),n=this.date.getMonth(),i=1;i<=this.totalDay;i++){var r=new Date(e,n,i),o=this.getDayType(r),s={date:r,type:o,text:i,bottomInfo:this.getBottomInfo(o)};this.formatter&&(s=this.formatter(s)),t.push(s)}return t}},methods:{getHeight:function(){var t;return(null==(t=this.$el)?void 0:t.getBoundingClientRect().height)||0},scrollIntoView:function(t){var e=this.$refs,n=e.days,i=e.month,r=this.showSubtitle?n:i,o=r.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop;ut(t,o)},getMultipleDayType:function(t){var e=this,n=function(t){return e.currentDate.some((function(e){return 0===fr(e,t)}))};if(n(t)){var i=vr(t),r=mr(t),o=n(i),s=n(r);return o&&s?"multiple-middle":o?"end":s?"start":"multiple-selected"}return""},getRangeDayType:function(t){var e=this.currentDate,n=e[0],i=e[1];if(!n)return"";var r=fr(t,n);if(!i)return 0===r?"start":"";var o=fr(t,i);return 0===r&&0===o&&this.allowSameDay?"start-end":0===r?"start":0===o?"end":r>0&&o<0?"middle":void 0},getDayType:function(t){var e=this.type,n=this.minDate,i=this.maxDate,r=this.currentDate;return fr(t,n)<0||fr(t,i)>0?"disabled":null!==r?"single"===e?0===fr(t,r)?"selected":"":"multiple"===e?this.getMultipleDayType(t):"range"===e?this.getRangeDayType(t):void 0:void 0},getBottomInfo:function(t){if("range"===this.type){if("start"===t||"end"===t)return ur(t);if("start-end"===t)return ur("startEnd")}},getDayStyle:function(t,e){var n={height:this.rowHeightWithUnit};return"placeholder"===t?(n.width="100%",n):(0===e&&(n.marginLeft=100*this.offset/7+"%"),this.color&&("start"===t||"end"===t||"start-end"===t||"multiple-selected"===t||"multiple-middle"===t?n.background=this.color:"middle"===t&&(n.color=this.color)),n)},genTitle:function(){var t=this.$createElement;if(this.showMonthTitle)return t("div",{class:lr("month-title")},[this.title])},genMark:function(){var t=this.$createElement;if(this.showMark&&this.shouldRender)return t("div",{class:lr("month-mark")},[this.date.getMonth()+1])},genDays:function(){var t=this.$createElement,e=this.shouldRender?this.days:this.placeholders;return t("div",{ref:"days",attrs:{role:"grid"},class:lr("days")},[this.genMark(),e.map(this.genDay)])},genTopInfo:function(t){var e=this.$createElement,n=this.$scopedSlots["top-info"];if(t.topInfo||n)return e("div",{class:lr("top-info")},[n?n(t):t.topInfo])},genBottomInfo:function(t){var e=this.$createElement,n=this.$scopedSlots["bottom-info"];if(t.bottomInfo||n)return e("div",{class:lr("bottom-info")},[n?n(t):t.bottomInfo])},genDay:function(t,e){var n=this,i=this.$createElement,r=t.type,o=this.getDayStyle(r,e),s="disabled"===r,a=function(){s||n.$emit("click",t)};return"selected"===r?i("div",{attrs:{role:"gridcell",tabindex:-1},style:o,class:[lr("day"),t.className],on:{click:a}},[i("div",{class:lr("selected-day"),style:{width:this.rowHeightWithUnit,height:this.rowHeightWithUnit,background:this.color}},[this.genTopInfo(t),t.text,this.genBottomInfo(t)])]):i("div",{attrs:{role:"gridcell",tabindex:s?null:-1},style:o,class:[lr("day",r),t.className],on:{click:a}},[this.genTopInfo(t),t.text,this.genBottomInfo(t)])}},render:function(){var t=arguments[0];return t("div",{class:lr("month"),ref:"month"},[this.genTitle(),this.genDays()])}}),Or=D("calendar-header"),$r=Or[0],Er=$r({props:{title:String,subtitle:String,showTitle:Boolean,showSubtitle:Boolean,firstDayOfWeek:Number},methods:{genTitle:function(){var t=this.$createElement;if(this.showTitle){var e=this.slots("title")||this.title||ur("title");return t("div",{class:lr("header-title")},[e])}},genSubtitle:function(){var t=this.$createElement;if(this.showSubtitle)return t("div",{class:lr("header-subtitle")},[this.subtitle])},genWeekDays:function(){var t=this.$createElement,e=ur("weekdays"),n=this.firstDayOfWeek,i=[].concat(e.slice(n,7),e.slice(0,n));return t("div",{class:lr("weekdays")},[i.map((function(e){return t("span",{class:lr("weekday")},[e])}))])}},render:function(){var t=arguments[0];return t("div",{class:lr("header")},[this.genTitle(),this.genSubtitle(),this.genWeekDays()])}}),_r=cr({props:{title:String,color:String,value:Boolean,readonly:Boolean,formatter:Function,rowHeight:[Number,String],confirmText:String,rangePrompt:String,defaultDate:[Date,Array],getContainer:[String,Function],allowSameDay:Boolean,confirmDisabledText:String,type:{type:String,default:"single"},round:{type:Boolean,default:!0},position:{type:String,default:"bottom"},poppable:{type:Boolean,default:!0},maxRange:{type:[Number,String],default:null},lazyRender:{type:Boolean,default:!0},showMark:{type:Boolean,default:!0},showTitle:{type:Boolean,default:!0},showConfirm:{type:Boolean,default:!0},showSubtitle:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},minDate:{type:Date,validator:sr,default:function(){return new Date}},maxDate:{type:Date,validator:sr,default:function(){var t=new Date;return new Date(t.getFullYear(),t.getMonth()+6,t.getDate())}},firstDayOfWeek:{type:[Number,String],default:0,validator:function(t){return t>=0&&t<=6}}},inject:{vanPopup:{default:null}},data:function(){return{subtitle:"",currentDate:this.getInitialDate()}},computed:{months:function(){var t=[],e=new Date(this.minDate);e.setDate(1);do{t.push(new Date(e)),e.setMonth(e.getMonth()+1)}while(1!==dr(e,this.maxDate));return t},buttonDisabled:function(){var t=this.type,e=this.currentDate;if(e){if("range"===t)return!e[0]||!e[1];if("multiple"===t)return!e.length}return!e},dayOffset:function(){return this.firstDayOfWeek?this.firstDayOfWeek%7:0}},watch:{value:"init",type:function(){this.reset()},defaultDate:function(t){this.currentDate=t,this.scrollIntoView()}},mounted:function(){var t;(this.init(),this.poppable)||(null==(t=this.vanPopup)||t.$on("opened",this.onScroll))},activated:function(){this.init()},methods:{reset:function(t){void 0===t&&(t=this.getInitialDate()),this.currentDate=t,this.scrollIntoView()},init:function(){var t=this;this.poppable&&!this.value||this.$nextTick((function(){t.bodyHeight=Math.floor(t.$refs.body.getBoundingClientRect().height),t.onScroll(),t.scrollIntoView()}))},scrollToDate:function(t){var e=this;ir((function(){var n=e.value||!e.poppable;t&&n&&(e.months.some((function(n,i){if(0===dr(n,t)){var r=e.$refs,o=r.body,s=r.months;return s[i].scrollIntoView(o),!0}return!1})),e.onScroll())}))},scrollIntoView:function(){var t=this.currentDate;if(t){var e="single"===this.type?t:t[0];this.scrollToDate(e)}},getInitialDate:function(){var t=this.type,e=this.minDate,n=this.maxDate,i=this.defaultDate;if(null===i)return i;var r=new Date;if(-1===fr(r,e)?r=e:1===fr(r,n)&&(r=n),"range"===t){var o=i||[],s=o[0],a=o[1];return[s||r,a||mr(r)]}return"multiple"===t?i||[r]:i||r},onScroll:function(){var t=this.$refs,e=t.body,n=t.months,i=lt(e),r=i+this.bodyHeight,o=n.map((function(t){return t.getHeight()})),s=o.reduce((function(t,e){return t+e}),0);if(!(r>s&&i>0)){for(var a,c=0,l=[-1,-1],u=0;u=i;h&&(l[1]=u,a||(a=n[u],l[0]=u),n[u].showed||(n[u].showed=!0,this.$emit("month-show",{date:n[u].date,title:n[u].title}))),c+=o[u]}n.forEach((function(t,e){t.visible=e>=l[0]-1&&e<=l[1]+1})),a&&(this.subtitle=a.title)}},onClickDay:function(t){if(!this.readonly){var e=t.date,n=this.type,i=this.currentDate;if("range"===n){if(!i)return void this.select([e,null]);var r=i[0],o=i[1];if(r&&!o){var s=fr(e,r);1===s?this.select([r,e],!0):-1===s?this.select([e,null]):this.allowSameDay&&this.select([e,e],!0)}else this.select([e,null])}else if("multiple"===n){if(!i)return void this.select([e]);var a,c=this.currentDate.some((function(t,n){var i=0===fr(t,e);return i&&(a=n),i}));if(c){var l=i.splice(a,1),u=l[0];this.$emit("unselect",yr(u))}else this.maxRange&&i.length>=this.maxRange?In(this.rangePrompt||ur("rangePrompt",this.maxRange)):this.select([].concat(i,[e]))}else this.select(e,!0)}},togglePopup:function(t){this.$emit("input",t)},select:function(t,e){var n=this,i=function(t){n.currentDate=t,n.$emit("select",br(n.currentDate))};if(e&&"range"===this.type){var r=this.checkRange(t);if(!r)return void(this.showConfirm?i([t[0],pr(t[0],this.maxRange-1)]):i(t))}i(t),e&&!this.showConfirm&&this.onConfirm()},checkRange:function(t){var e=this.maxRange,n=this.rangePrompt;return!(e&&gr(t)>e)||(In(n||ur("rangePrompt",e)),!1)},onConfirm:function(){this.$emit("confirm",br(this.currentDate))},genMonth:function(t,e){var n=this.$createElement,i=0!==e||!this.showSubtitle;return n(Tr,{ref:"months",refInFor:!0,attrs:{date:t,type:this.type,color:this.color,minDate:this.minDate,maxDate:this.maxDate,showMark:this.showMark,formatter:this.formatter,rowHeight:this.rowHeight,lazyRender:this.lazyRender,currentDate:this.currentDate,showSubtitle:this.showSubtitle,allowSameDay:this.allowSameDay,showMonthTitle:i,firstDayOfWeek:this.dayOffset},scopedSlots:{"top-info":this.$scopedSlots["top-info"],"bottom-info":this.$scopedSlots["bottom-info"]},on:{click:this.onClickDay}})},genFooterContent:function(){var t=this.$createElement,e=this.slots("footer");if(e)return e;if(this.showConfirm){var n=this.buttonDisabled?this.confirmDisabledText:this.confirmText;return t(Nn,{attrs:{round:!0,block:!0,type:"danger",color:this.color,disabled:this.buttonDisabled,nativeType:"button"},class:lr("confirm"),on:{click:this.onConfirm}},[n||ur("confirm")])}},genFooter:function(){var t=this.$createElement;return t("div",{class:lr("footer",{unfit:!this.safeAreaInsetBottom})},[this.genFooterContent()])},genCalendar:function(){var t=this,e=this.$createElement;return e("div",{class:lr()},[e(Er,{attrs:{title:this.title,showTitle:this.showTitle,subtitle:this.subtitle,showSubtitle:this.showSubtitle,firstDayOfWeek:this.dayOffset},scopedSlots:{title:function(){return t.slots("title")}}}),e("div",{ref:"body",class:lr("body"),on:{scroll:this.onScroll}},[this.months.map(this.genMonth)]),this.genFooter()])}},render:function(){var t=this,e=arguments[0];if(this.poppable){var n,i=function(e){return function(){return t.$emit(e)}};return e(Zt,{attrs:(n={round:!0,value:this.value},n["round"]=this.round,n["position"]=this.position,n["closeable"]=this.showTitle||this.showSubtitle,n["getContainer"]=this.getContainer,n["closeOnPopstate"]=this.closeOnPopstate,n["closeOnClickOverlay"]=this.closeOnClickOverlay,n),class:lr("popup"),on:{input:this.togglePopup,open:i("open"),opened:i("opened"),close:i("close"),closed:i("closed")}},[this.genCalendar()])}return this.genCalendar()}}),Ir=D("image"),Br=Ir[0],Ar=Ir[1],Pr=Br({props:{src:String,fit:String,alt:String,round:Boolean,width:[Number,String],height:[Number,String],radius:[Number,String],lazyLoad:Boolean,iconPrefix:String,showError:{type:Boolean,default:!0},showLoading:{type:Boolean,default:!0},errorIcon:{type:String,default:"photo-fail"},loadingIcon:{type:String,default:"photo"}},data:function(){return{loading:!0,error:!1}},watch:{src:function(){this.loading=!0,this.error=!1}},computed:{style:function(){var t={};return d(this.width)&&(t.width=Et(this.width)),d(this.height)&&(t.height=Et(this.height)),d(this.radius)&&(t.overflow="hidden",t.borderRadius=Et(this.radius)),t}},created:function(){var t=this.$Lazyload;t&&l&&(t.$on("loaded",this.onLazyLoaded),t.$on("error",this.onLazyLoadError))},beforeDestroy:function(){var t=this.$Lazyload;t&&(t.$off("loaded",this.onLazyLoaded),t.$off("error",this.onLazyLoadError))},methods:{onLoad:function(t){this.loading=!1,this.$emit("load",t)},onLazyLoaded:function(t){var e=t.el;e===this.$refs.image&&this.loading&&this.onLoad()},onLazyLoadError:function(t){var e=t.el;e!==this.$refs.image||this.error||this.onError()},onError:function(t){this.error=!0,this.loading=!1,this.$emit("error",t)},onClick:function(t){this.$emit("click",t)},genPlaceholder:function(){var t=this.$createElement;return this.loading&&this.showLoading?t("div",{class:Ar("loading")},[this.slots("loading")||t(qt,{attrs:{name:this.loadingIcon,classPrefix:this.iconPrefix},class:Ar("loading-icon")})]):this.error&&this.showError?t("div",{class:Ar("error")},[this.slots("error")||t(qt,{attrs:{name:this.errorIcon,classPrefix:this.iconPrefix},class:Ar("error-icon")})]):void 0},genImage:function(){var t=this.$createElement,e={class:Ar("img"),attrs:{alt:this.alt},style:{objectFit:this.fit}};if(!this.error)return this.lazyLoad?t("img",o()([{ref:"image",directives:[{name:"lazy",value:this.src}]},e])):t("img",o()([{attrs:{src:this.src},on:{load:this.onLoad,error:this.onError}},e]))}},render:function(){var t=arguments[0];return t("div",{class:Ar({round:this.round}),style:this.style,on:{click:this.onClick}},[this.genImage(),this.genPlaceholder(),this.slots()])}}),Dr=D("card"),Nr=Dr[0],Rr=Dr[1];function Lr(t,e,n,i){var r,s=e.thumb,a=n.num||d(e.num),c=n.price||d(e.price),l=n["origin-price"]||d(e.originPrice),u=a||c||l||n.bottom;function h(t){M(i,"click-thumb",t)}function f(){if(n.tag||e.tag)return t("div",{class:Rr("tag")},[n.tag?n.tag():t(Bi,{attrs:{mark:!0,type:"danger"}},[e.tag])])}function p(){if(n.thumb||s)return t("a",{attrs:{href:e.thumbLink},class:Rr("thumb"),on:{click:h}},[n.thumb?n.thumb():t(Pr,{attrs:{src:s,width:"100%",height:"100%",fit:"cover","lazy-load":e.lazyLoad}}),f()])}function v(){return n.title?n.title():e.title?t("div",{class:[Rr("title"),"van-multi-ellipsis--l2"]},[e.title]):void 0}function m(){return n.desc?n.desc():e.desc?t("div",{class:[Rr("desc"),"van-ellipsis"]},[e.desc]):void 0}function g(){var n=e.price.toString().split(".");return t("div",[t("span",{class:Rr("price-currency")},[e.currency]),t("span",{class:Rr("price-integer")},[n[0]]),".",t("span",{class:Rr("price-decimal")},[n[1]])])}function y(){if(c)return t("div",{class:Rr("price")},[n.price?n.price():g()])}function b(){if(l){var i=n["origin-price"];return t("div",{class:Rr("origin-price")},[i?i():e.currency+" "+e.originPrice])}}function S(){if(a)return t("div",{class:Rr("num")},[n.num?n.num():"x"+e.num])}function w(){if(n.footer)return t("div",{class:Rr("footer")},[n.footer()])}return t("div",o()([{class:Rr()},L(i,!0)]),[t("div",{class:Rr("header")},[p(),t("div",{class:Rr("content",{centered:e.centered})},[t("div",[v(),m(),null==n.tags?void 0:n.tags()]),u&&t("div",{class:"van-card__bottom"},[null==(r=n["price-top"])?void 0:r.call(n),y(),b(),S(),null==n.bottom?void 0:n.bottom()])])]),w()])}Lr.props={tag:String,desc:String,thumb:String,title:String,centered:Boolean,lazyLoad:Boolean,thumbLink:String,num:[Number,String],price:[Number,String],originPrice:[Number,String],currency:{type:String,default:"¥"}};var Mr=Nr(Lr),jr=D("tab"),zr=jr[0],Fr=jr[1],Vr=zr({mixins:[Mn("vanTabs")],props:i({},Ge,{dot:Boolean,name:[Number,String],info:[Number,String],badge:[Number,String],title:String,titleStyle:null,titleClass:null,disabled:Boolean}),data:function(){return{inited:!1}},computed:{computedName:function(){var t;return null!=(t=this.name)?t:this.index},isActive:function(){var t=this.computedName===this.parent.currentName;return t&&(this.inited=!0),t}},watch:{title:function(){this.parent.setLine(),this.parent.scrollIntoView()},inited:function(t){var e=this;this.parent.lazyRender&&t&&this.$nextTick((function(){e.parent.$emit("rendered",e.computedName,e.title)}))}},render:function(t){var e=this.slots,n=this.parent,i=this.isActive,r=e();if(r||n.animated){var o=n.scrollspy||i,s=this.inited||n.scrollspy||!n.lazyRender,a=s?r:t();return n.animated?t("div",{attrs:{role:"tabpanel","aria-hidden":!i},class:Fr("pane-wrapper",{inactive:!i})},[t("div",{class:Fr("pane")},[a])]):t("div",{directives:[{name:"show",value:o}],attrs:{role:"tabpanel"},class:Fr("pane")},[a])}}});function Hr(t,e,n){var i=0,r=t.scrollLeft,o=0===n?1:Math.round(1e3*n/16);function s(){t.scrollLeft+=(e-r)/o,++ie||!o&&re?ir(c):i&&ir(i)}c()}function Wr(t){var e=window.getComputedStyle(t),n="none"===e.display,i=null===t.offsetParent&&"fixed"!==e.position;return n||i}function qr(t){var e=t.interceptor,n=t.args,i=t.done;if(e){var r=e.apply(void 0,n);v(r)?r.then((function(t){t&&i()})).catch(h):r&&i()}else i()}var Kr=D("tab"),Yr=Kr[0],Xr=Kr[1],Zr=Yr({props:{dot:Boolean,type:String,info:[Number,String],color:String,title:String,isActive:Boolean,disabled:Boolean,scrollable:Boolean,activeColor:String,inactiveColor:String},computed:{style:function(){var t={},e=this.color,n=this.isActive,i="card"===this.type;e&&i&&(t.borderColor=e,this.disabled||(n?t.backgroundColor=e:t.color=e));var r=n?this.activeColor:this.inactiveColor;return r&&(t.color=r),t}},methods:{onClick:function(){this.$emit("click")},genText:function(){var t=this.$createElement,e=t("span",{class:Xr("text",{ellipsis:!this.scrollable})},[this.slots()||this.title]);return this.dot||d(this.info)&&""!==this.info?t("span",{class:Xr("text-wrapper")},[e,t(Mt,{attrs:{dot:this.dot,info:this.info}})]):e}},render:function(){var t=arguments[0];return t("div",{attrs:{role:"tab","aria-selected":this.isActive},class:[Xr({active:this.isActive,disabled:this.disabled})],style:this.style,on:{click:this.onClick}},[this.genText()])}}),Gr=D("sticky"),Jr=Gr[0],Qr=Gr[1],to=Jr({mixins:[wt((function(t,e){if(this.scroller||(this.scroller=ct(this.$el)),this.observer){var n=e?"observe":"unobserve";this.observer[n](this.$el)}t(this.scroller,"scroll",this.onScroll,!0),this.onScroll()}))],props:{zIndex:[Number,String],container:null,offsetTop:{type:[Number,String],default:0}},data:function(){return{fixed:!1,height:0,transform:0}},computed:{offsetTopPx:function(){return Pt(this.offsetTop)},style:function(){if(this.fixed){var t={};return d(this.zIndex)&&(t.zIndex=this.zIndex),this.offsetTopPx&&this.fixed&&(t.top=this.offsetTopPx+"px"),this.transform&&(t.transform="translate3d(0, "+this.transform+"px, 0)"),t}}},watch:{fixed:function(t){this.$emit("change",t)}},created:function(){var t=this;!u&&window.IntersectionObserver&&(this.observer=new IntersectionObserver((function(e){e[0].intersectionRatio>0&&t.onScroll()}),{root:document.body}))},methods:{onScroll:function(){var t=this;if(!Wr(this.$el)){this.height=this.$el.offsetHeight;var e=this.container,n=this.offsetTopPx,i=lt(window),r=ft(this.$el),o=function(){t.$emit("scroll",{scrollTop:i,isFixed:t.fixed})};if(e){var s=r+e.offsetHeight;if(i+n+this.height>s){var a=this.height+i-s;return ar?(this.fixed=!0,this.transform=0):this.fixed=!1,o()}}},render:function(){var t=arguments[0],e=this.fixed,n={height:e?this.height+"px":null};return t("div",{style:n},[t("div",{class:Qr({fixed:e}),style:this.style},[this.slots()])])}}),eo=D("tabs"),no=eo[0],io=eo[1],ro=50,oo=no({mixins:[gt],props:{count:Number,duration:[Number,String],animated:Boolean,swipeable:Boolean,currentIndex:Number},computed:{style:function(){if(this.animated)return{transform:"translate3d("+-1*this.currentIndex*100+"%, 0, 0)",transitionDuration:this.duration+"s"}},listeners:function(){if(this.swipeable)return{touchstart:this.touchStart,touchmove:this.touchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}}},methods:{onTouchEnd:function(){var t=this.direction,e=this.deltaX,n=this.currentIndex;"horizontal"===t&&this.offsetX>=ro&&(e>0&&0!==n?this.$emit("change",n-1):e<0&&n!==this.count-1&&this.$emit("change",n+1))},genChildren:function(){var t=this.$createElement;return this.animated?t("div",{class:io("track"),style:this.style},[this.slots()]):this.slots()}},render:function(){var t=arguments[0];return t("div",{class:io("content",{animated:this.animated}),on:i({},this.listeners)},[this.genChildren()])}}),so=D("tabs"),ao=so[0],co=so[1],lo=ao({mixins:[jn("vanTabs"),wt((function(t){this.scroller||(this.scroller=ct(this.$el)),t(window,"resize",this.resize,!0),this.scrollspy&&t(this.scroller,"scroll",this.onScroll,!0)}))],inject:{vanPopup:{default:null}},model:{prop:"active"},props:{color:String,border:Boolean,sticky:Boolean,animated:Boolean,swipeable:Boolean,scrollspy:Boolean,background:String,lineWidth:[Number,String],lineHeight:[Number,String],beforeChange:Function,titleActiveColor:String,titleInactiveColor:String,type:{type:String,default:"line"},active:{type:[Number,String],default:0},ellipsis:{type:Boolean,default:!0},duration:{type:[Number,String],default:.3},offsetTop:{type:[Number,String],default:0},lazyRender:{type:Boolean,default:!0},swipeThreshold:{type:[Number,String],default:5}},data:function(){return{position:"",currentIndex:null,lineStyle:{backgroundColor:this.color}}},computed:{scrollable:function(){return this.children.length>this.swipeThreshold||!this.ellipsis},navStyle:function(){return{borderColor:this.color,background:this.background}},currentName:function(){var t=this.children[this.currentIndex];if(t)return t.computedName},offsetTopPx:function(){return Pt(this.offsetTop)},scrollOffset:function(){return this.sticky?this.offsetTopPx+this.tabHeight:0}},watch:{color:"setLine",active:function(t){t!==this.currentName&&this.setCurrentIndexByName(t)},children:function(){var t=this;this.setCurrentIndexByName(this.active),this.setLine(),this.$nextTick((function(){t.scrollIntoView(!0)}))},currentIndex:function(){this.scrollIntoView(),this.setLine(),this.stickyFixed&&!this.scrollspy&&dt(Math.ceil(ft(this.$el)-this.offsetTopPx))},scrollspy:function(t){t?H(this.scroller,"scroll",this.onScroll,!0):U(this.scroller,"scroll",this.onScroll)}},mounted:function(){var t=this;this.init(),this.vanPopup&&this.vanPopup.onReopen((function(){t.setLine()}))},activated:function(){this.init(),this.setLine()},methods:{resize:function(){this.setLine()},init:function(){var t=this;this.$nextTick((function(){t.inited=!0,t.tabHeight=pt(t.$refs.wrap),t.scrollIntoView(!0)}))},setLine:function(){var t=this,e=this.inited;this.$nextTick((function(){var n=t.$refs.titles;if(n&&n[t.currentIndex]&&"line"===t.type&&!Wr(t.$el)){var i=n[t.currentIndex].$el,r=t.lineWidth,o=t.lineHeight,s=i.offsetLeft+i.offsetWidth/2,a={width:Et(r),backgroundColor:t.color,transform:"translateX("+s+"px) translateX(-50%)"};if(e&&(a.transitionDuration=t.duration+"s"),d(o)){var c=Et(o);a.height=c,a.borderRadius=c}t.lineStyle=a}}))},setCurrentIndexByName:function(t){var e=this.children.filter((function(e){return e.computedName===t})),n=(this.children[0]||{}).index||0;this.setCurrentIndex(e.length?e[0].index:n)},setCurrentIndex:function(t){var e=this.findAvailableTab(t);if(d(e)){var n=this.children[e],i=n.computedName,r=null!==this.currentIndex;this.currentIndex=e,i!==this.active&&(this.$emit("input",i),r&&this.$emit("change",i,n.title))}},findAvailableTab:function(t){var e=t=0&&tthis.scrollOffset)return 0===e?0:e-1}return t.length-1}},render:function(){var t,e=this,n=arguments[0],i=this.type,r=this.animated,o=this.scrollable,s=this.children.map((function(t,r){var s;return n(Zr,{ref:"titles",refInFor:!0,attrs:{type:i,dot:t.dot,info:null!=(s=t.badge)?s:t.info,title:t.title,color:e.color,isActive:r===e.currentIndex,disabled:t.disabled,scrollable:o,activeColor:e.titleActiveColor,inactiveColor:e.titleInactiveColor},style:t.titleStyle,class:t.titleClass,scopedSlots:{default:function(){return t.slots("title")}},on:{click:function(){e.onClick(t,r)}}})})),a=n("div",{ref:"wrap",class:[co("wrap",{scrollable:o}),(t={},t[ye]="line"===i&&this.border,t)]},[n("div",{ref:"nav",attrs:{role:"tablist"},class:co("nav",[i,{complete:this.scrollable}]),style:this.navStyle},[this.slots("nav-left"),s,"line"===i&&n("div",{class:co("line"),style:this.lineStyle}),this.slots("nav-right")])]);return n("div",{class:co([i])},[this.sticky?n(to,{attrs:{container:this.$el,offsetTop:this.offsetTop},on:{scroll:this.onSticktScroll}},[a]):a,n(oo,{attrs:{count:this.children.length,animated:r,duration:this.duration,swipeable:this.swipeable,currentIndex:this.currentIndex},on:{change:this.setCurrentIndex}},[this.slots()])])}}),uo=D("cascader"),ho=uo[0],fo=uo[1],po=uo[2],vo=ho({props:{title:String,value:[Number,String],fieldNames:Object,placeholder:String,activeColor:String,options:{type:Array,default:function(){return[]}},closeable:{type:Boolean,default:!0},showHeader:{type:Boolean,default:!0}},data:function(){return{tabs:[],activeTab:0}},computed:{textKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.text)||"text"},valueKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.value)||"value"},childrenKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.children)||"children"}},watch:{options:{deep:!0,handler:"updateTabs"},value:function(t){var e=this;if(t||0===t){var n=this.tabs.map((function(t){var n;return null==(n=t.selectedOption)?void 0:n[e.valueKey]}));if(-1!==n.indexOf(t))return}this.updateTabs()}},created:function(){this.updateTabs()},methods:{getSelectedOptionsByValue:function(t,e){for(var n=0;ne+1&&(this.tabs=this.tabs.slice(0,e+1)),t[this.childrenKey]){var i={options:t[this.childrenKey],selectedOption:null};this.tabs[e+1]?this.$set(this.tabs,e+1,i):this.tabs.push(i),this.$nextTick((function(){n.activeTab++}))}var r=this.tabs.map((function(t){return t.selectedOption})).filter((function(t){return!!t})),o={value:t[this.valueKey],tabIndex:e,selectedOptions:r};this.$emit("input",t[this.valueKey]),this.$emit("change",o),t[this.childrenKey]||this.$emit("finish",o)},onClose:function(){this.$emit("close")},renderHeader:function(){var t=this.$createElement;if(this.showHeader)return t("div",{class:fo("header")},[t("h2",{class:fo("title")},[this.slots("title")||this.title]),this.closeable?t(qt,{attrs:{name:"cross"},class:fo("close-icon"),on:{click:this.onClose}}):null])},renderOptions:function(t,e,n){var i=this,r=this.$createElement,o=function(t){var o=e&&t[i.valueKey]===e[i.valueKey],s=i.slots("option",{option:t,selected:o})||r("span",[t[i.textKey]]);return r("li",{class:fo("option",{selected:o}),style:{color:o?i.activeColor:null},on:{click:function(){i.onSelect(t,n)}}},[s,o?r(qt,{attrs:{name:"success"},class:fo("selected-icon")}):null])};return r("ul",{class:fo("options")},[t.map(o)])},renderTab:function(t,e){var n=this.$createElement,i=t.options,r=t.selectedOption,o=r?r[this.textKey]:this.placeholder||po("select");return n(Vr,{attrs:{title:o,titleClass:fo("tab",{unselected:!r})}},[this.renderOptions(i,r,e)])},renderTabs:function(){var t=this,e=this.$createElement;return e(lo,{attrs:{animated:!0,swipeable:!0,swipeThreshold:0,color:this.activeColor},class:fo("tabs"),model:{value:t.activeTab,callback:function(e){t.activeTab=e}}},[this.tabs.map(this.renderTab)])}},render:function(){var t=arguments[0];return t("div",{class:fo()},[this.renderHeader(),this.renderTabs()])}}),mo=D("cell-group"),go=mo[0],yo=mo[1];function bo(t,e,n,i){var r,s=t("div",o()([{class:[yo({inset:e.inset}),(r={},r[ye]=e.border,r)]},L(i,!0)]),[null==n.default?void 0:n.default()]);return e.title||n.title?t("div",{key:i.data.key},[t("div",{class:yo("title",{inset:e.inset})},[n.title?n.title():e.title]),s]):s}bo.props={title:String,inset:Boolean,border:{type:Boolean,default:!0}};var So=go(bo),wo=D("checkbox"),xo=wo[0],ko=wo[1],Co=xo({mixins:[Ai({bem:ko,role:"checkbox",parent:"vanCheckbox"})],computed:{checked:{get:function(){return this.parent?-1!==this.parent.value.indexOf(this.name):this.value},set:function(t){this.parent?this.setParentValue(t):this.$emit("input",t)}}},watch:{value:function(t){this.$emit("change",t)}},methods:{toggle:function(t){var e=this;void 0===t&&(t=!this.checked),clearTimeout(this.toggleTask),this.toggleTask=setTimeout((function(){e.checked=t}))},setParentValue:function(t){var e=this.parent,n=e.value.slice();if(t){if(e.max&&n.length>=e.max)return;-1===n.indexOf(this.name)&&(n.push(this.name),e.$emit("input",n))}else{var i=n.indexOf(this.name);-1!==i&&(n.splice(i,1),e.$emit("input",n))}}}}),To=D("checkbox-group"),Oo=To[0],$o=To[1],Eo=Oo({mixins:[jn("vanCheckbox"),hi],props:{max:[Number,String],disabled:Boolean,direction:String,iconSize:[Number,String],checkedColor:String,value:{type:Array,default:function(){return[]}}},watch:{value:function(t){this.$emit("change",t)}},methods:{toggleAll:function(t){void 0===t&&(t={}),"boolean"===typeof t&&(t={checked:t});var e=t,n=e.checked,i=e.skipDisabled,r=this.children.filter((function(t){return t.disabled&&i?t.checked:null!=n?n:!t.checked})),o=r.map((function(t){return t.name}));this.$emit("input",o)}},render:function(){var t=arguments[0];return t("div",{class:$o([this.direction])},[this.slots()])}}),_o=D("circle"),Io=_o[0],Bo=_o[1],Ao=3140,Po=0;function Do(t){return Math.min(Math.max(t,0),100)}function No(t,e){var n=t?1:0;return"M "+e/2+" "+e/2+" m 0, -500 a 500, 500 0 1, "+n+" 0, 1000 a 500, 500 0 1, "+n+" 0, -1000"}var Ro=Io({props:{text:String,size:[Number,String],color:[String,Object],layerColor:String,strokeLinecap:String,value:{type:Number,default:0},speed:{type:[Number,String],default:0},fill:{type:String,default:"none"},rate:{type:[Number,String],default:100},strokeWidth:{type:[Number,String],default:40},clockwise:{type:Boolean,default:!0}},beforeCreate:function(){this.uid="van-circle-gradient-"+Po++},computed:{style:function(){var t=Et(this.size);return{width:t,height:t}},path:function(){return No(this.clockwise,this.viewBoxSize)},viewBoxSize:function(){return+this.strokeWidth+1e3},layerStyle:function(){return{fill:""+this.fill,stroke:""+this.layerColor,strokeWidth:this.strokeWidth+"px"}},hoverStyle:function(){var t=Ao*this.value/100;return{stroke:""+(this.gradient?"url(#"+this.uid+")":this.color),strokeWidth:+this.strokeWidth+1+"px",strokeLinecap:this.strokeLinecap,strokeDasharray:t+"px "+Ao+"px"}},gradient:function(){return p(this.color)},LinearGradient:function(){var t=this,e=this.$createElement;if(this.gradient){var n=Object.keys(this.color).sort((function(t,e){return parseFloat(t)-parseFloat(e)})).map((function(n,i){return e("stop",{key:i,attrs:{offset:n,"stop-color":t.color[n]}})}));return e("defs",[e("linearGradient",{attrs:{id:this.uid,x1:"100%",y1:"0%",x2:"0%",y2:"0%"}},[n])])}}},watch:{rate:{handler:function(t){this.startTime=Date.now(),this.startRate=this.value,this.endRate=Do(t),this.increase=this.endRate>this.startRate,this.duration=Math.abs(1e3*(this.startRate-this.endRate)/this.speed),this.speed?(or(this.rafId),this.rafId=ir(this.animate)):this.$emit("input",this.endRate)},immediate:!0}},methods:{animate:function(){var t=Date.now(),e=Math.min((t-this.startTime)/this.duration,1),n=e*(this.endRate-this.startRate)+this.startRate;this.$emit("input",Do(parseFloat(n.toFixed(1)))),(this.increase?nthis.endRate)&&(this.rafId=ir(this.animate))}},render:function(){var t=arguments[0];return t("div",{class:Bo(),style:this.style},[t("svg",{attrs:{viewBox:"0 0 "+this.viewBoxSize+" "+this.viewBoxSize}},[this.LinearGradient,t("path",{class:Bo("layer"),style:this.layerStyle,attrs:{d:this.path}}),t("path",{attrs:{d:this.path},class:Bo("hover"),style:this.hoverStyle})]),this.slots()||this.text&&t("div",{class:Bo("text")},[this.text])])}}),Lo=D("col"),Mo=Lo[0],jo=Lo[1],zo=Mo({mixins:[Mn("vanRow")],props:{span:[Number,String],offset:[Number,String],tag:{type:String,default:"div"}},computed:{style:function(){var t=this.index,e=this.parent||{},n=e.spaces;if(n&&n[t]){var i=n[t],r=i.left,o=i.right;return{paddingLeft:r?r+"px":null,paddingRight:o?o+"px":null}}}},methods:{onClick:function(t){this.$emit("click",t)}},render:function(){var t,e=arguments[0],n=this.span,i=this.offset;return e(this.tag,{style:this.style,class:jo((t={},t[n]=n,t["offset-"+i]=i,t)),on:{click:this.onClick}},[this.slots()])}}),Fo=D("collapse"),Vo=Fo[0],Ho=Fo[1],Uo=Vo({mixins:[jn("vanCollapse")],props:{accordion:Boolean,value:[String,Number,Array],border:{type:Boolean,default:!0}},methods:{switch:function(t,e){this.accordion||(t=e?this.value.concat(t):this.value.filter((function(e){return e!==t}))),this.$emit("change",t),this.$emit("input",t)}},render:function(){var t,e=arguments[0];return e("div",{class:[Ho(),(t={},t[ye]=this.border,t)]},[this.slots()])}}),Wo=D("collapse-item"),qo=Wo[0],Ko=Wo[1],Yo=["title","icon","right-icon"],Xo=qo({mixins:[Mn("vanCollapse")],props:i({},Je,{name:[Number,String],disabled:Boolean,lazyRender:{type:Boolean,default:!0},isLink:{type:Boolean,default:!0}}),data:function(){return{show:null,inited:null}},computed:{currentName:function(){var t;return null!=(t=this.name)?t:this.index},expanded:function(){var t=this;if(!this.parent)return null;var e=this.parent,n=e.value,i=e.accordion;return i?n===this.currentName:n.some((function(e){return e===t.currentName}))}},created:function(){this.show=this.expanded,this.inited=this.expanded},watch:{expanded:function(t,e){var n=this;if(null!==e){t&&(this.show=!0,this.inited=!0);var i=t?this.$nextTick:ir;i((function(){var e=n.$refs,i=e.content,r=e.wrapper;if(i&&r){var o=i.offsetHeight;if(o){var s=o+"px";r.style.height=t?0:s,rr((function(){r.style.height=t?s:0}))}else n.onTransitionEnd()}}))}}},methods:{onClick:function(){this.disabled||this.toggle()},toggle:function(t){void 0===t&&(t=!this.expanded);var e=this.parent,n=this.currentName,i=e.accordion&&n===e.value,r=i?"":n;this.parent.switch(r,t)},onTransitionEnd:function(){this.expanded?this.$refs.wrapper.style.height="":this.show=!1},genTitle:function(){var t=this,e=this.$createElement,n=this.border,r=this.disabled,o=this.expanded,s=Yo.reduce((function(e,n){return t.slots(n)&&(e[n]=function(){return t.slots(n)}),e}),{});return this.slots("value")&&(s.default=function(){return t.slots("value")}),e(rn,{attrs:{role:"button",tabindex:r?-1:0,"aria-expanded":String(o)},class:Ko("title",{disabled:r,expanded:o,borderless:!n}),on:{click:this.onClick},scopedSlots:s,props:i({},this.$props)})},genContent:function(){var t=this.$createElement;if(this.inited||!this.lazyRender)return t("div",{directives:[{name:"show",value:this.show}],ref:"wrapper",class:Ko("wrapper"),on:{transitionend:this.onTransitionEnd}},[t("div",{ref:"content",class:Ko("content")},[this.slots()])])}},render:function(){var t=arguments[0];return t("div",{class:[Ko({border:this.index&&this.border})]},[this.genTitle(),this.genContent()])}}),Zo=D("contact-card"),Go=Zo[0],Jo=Zo[1],Qo=Zo[2];function ts(t,e,n,i){var r=e.type,s=e.editable;function a(t){s&&M(i,"click",t)}function c(){return"add"===r?e.addText||Qo("addText"):[t("div",[Qo("name")+":"+e.name]),t("div",[Qo("tel")+":"+e.tel])]}return t(rn,o()([{attrs:{center:!0,border:!1,isLink:s,valueClass:Jo("value"),icon:"edit"===r?"contact":"add-square"},class:Jo([r]),on:{click:a}},L(i)]),[c()])}ts.props={tel:String,name:String,addText:String,editable:{type:Boolean,default:!0},type:{type:String,default:"add"}};var es=Go(ts),ns=D("contact-edit"),is=ns[0],rs=ns[1],os=ns[2],ss={tel:"",name:""},as=is({props:{isEdit:Boolean,isSaving:Boolean,isDeleting:Boolean,showSetDefault:Boolean,setDefaultLabel:String,contactInfo:{type:Object,default:function(){return i({},ss)}},telValidator:{type:Function,default:le}},data:function(){return{data:i({},ss,this.contactInfo),errorInfo:{name:"",tel:""}}},watch:{contactInfo:function(t){this.data=i({},ss,t)}},methods:{onFocus:function(t){this.errorInfo[t]=""},getErrorMessageByKey:function(t){var e=this.data[t].trim();switch(t){case"name":return e?"":os("nameInvalid");case"tel":return this.telValidator(e)?"":os("telInvalid")}},onSave:function(){var t=this,e=["name","tel"].every((function(e){var n=t.getErrorMessageByKey(e);return n&&(t.errorInfo[e]=n),!n}));e&&!this.isSaving&&this.$emit("save",this.data)},onDelete:function(){var t=this;ii.confirm({title:os("confirmDelete")}).then((function(){t.$emit("delete",t.data)}))}},render:function(){var t=this,e=arguments[0],n=this.data,i=this.errorInfo,r=function(e){return function(){return t.onFocus(e)}};return e("div",{class:rs()},[e("div",{class:rs("fields")},[e(dn,{attrs:{clearable:!0,maxlength:"30",label:os("name"),placeholder:os("nameEmpty"),errorMessage:i.name},on:{focus:r("name")},model:{value:n.name,callback:function(e){t.$set(n,"name",e)}}}),e(dn,{attrs:{clearable:!0,type:"tel",label:os("tel"),placeholder:os("telEmpty"),errorMessage:i.tel},on:{focus:r("tel")},model:{value:n.tel,callback:function(e){t.$set(n,"tel",e)}}})]),this.showSetDefault&&e(rn,{attrs:{title:this.setDefaultLabel,border:!1},class:rs("switch-cell")},[e(vi,{attrs:{size:24},slot:"right-icon",on:{change:function(e){t.$emit("change-default",e)}},model:{value:n.isDefault,callback:function(e){t.$set(n,"isDefault",e)}}})]),e("div",{class:rs("buttons")},[e(Nn,{attrs:{block:!0,round:!0,type:"danger",text:os("save"),loading:this.isSaving},on:{click:this.onSave}}),this.isEdit&&e(Nn,{attrs:{block:!0,round:!0,text:os("delete"),loading:this.isDeleting},on:{click:this.onDelete}})])])}}),cs=D("contact-list"),ls=cs[0],us=cs[1],hs=cs[2];function ds(t,e,n,i){var r=e.list&&e.list.map((function(n,r){function o(){M(i,"input",n.id),M(i,"select",n,r)}function s(){return t(Ri,{attrs:{name:n.id,iconSize:16,checkedColor:de},on:{click:o}})}function a(){return t(qt,{attrs:{name:"edit"},class:us("edit"),on:{click:function(t){t.stopPropagation(),M(i,"edit",n,r)}}})}function c(){var i=[n.name+","+n.tel];return n.isDefault&&e.defaultTagText&&i.push(t(Bi,{attrs:{type:"danger",round:!0},class:us("item-tag")},[e.defaultTagText])),i}return t(rn,{key:n.id,attrs:{isLink:!0,center:!0,valueClass:us("item-value")},class:us("item"),scopedSlots:{icon:a,default:c,"right-icon":s},on:{click:o}})}));return t("div",o()([{class:us()},L(i)]),[t(Oi,{attrs:{value:e.value},class:us("group")},[r]),t("div",{class:us("bottom")},[t(Nn,{attrs:{round:!0,block:!0,type:"danger",text:e.addText||hs("addText")},class:us("add"),on:{click:function(){M(i,"add")}}})])])}ds.props={value:null,list:Array,addText:String,defaultTagText:String};var fs=ls(ds),ps=1e3,vs=60*ps,ms=60*vs,gs=24*ms;function ys(t){var e=Math.floor(t/gs),n=Math.floor(t%gs/ms),i=Math.floor(t%ms/vs),r=Math.floor(t%vs/ps),o=Math.floor(t%ps);return{days:e,hours:n,minutes:i,seconds:r,milliseconds:o}}function bs(t,e){var n=e.days,i=e.hours,r=e.minutes,o=e.seconds,s=e.milliseconds;if(-1===t.indexOf("DD")?i+=24*n:t=t.replace("DD",S(n)),-1===t.indexOf("HH")?r+=60*i:t=t.replace("HH",S(i)),-1===t.indexOf("mm")?o+=60*r:t=t.replace("mm",S(r)),-1===t.indexOf("ss")?s+=1e3*o:t=t.replace("ss",S(o)),-1!==t.indexOf("S")){var a=S(s,3);t=-1!==t.indexOf("SSS")?t.replace("SSS",a):-1!==t.indexOf("SS")?t.replace("SS",a.slice(0,2)):t.replace("S",a.charAt(0))}return t}function Ss(t,e){return Math.floor(t/1e3)===Math.floor(e/1e3)}var ws=D("count-down"),xs=ws[0],ks=ws[1],Cs=xs({props:{millisecond:Boolean,time:{type:[Number,String],default:0},format:{type:String,default:"HH:mm:ss"},autoStart:{type:Boolean,default:!0}},data:function(){return{remain:0}},computed:{timeData:function(){return ys(this.remain)},formattedTime:function(){return bs(this.format,this.timeData)}},watch:{time:{immediate:!0,handler:"reset"}},activated:function(){this.keepAlivePaused&&(this.counting=!0,this.keepAlivePaused=!1,this.tick())},deactivated:function(){this.counting&&(this.pause(),this.keepAlivePaused=!0)},beforeDestroy:function(){this.pause()},methods:{start:function(){this.counting||(this.counting=!0,this.endTime=Date.now()+this.remain,this.tick())},pause:function(){this.counting=!1,or(this.rafId)},reset:function(){this.pause(),this.remain=+this.time,this.autoStart&&this.start()},tick:function(){l&&(this.millisecond?this.microTick():this.macroTick())},microTick:function(){var t=this;this.rafId=ir((function(){t.counting&&(t.setRemain(t.getRemain()),t.remain>0&&t.microTick())}))},macroTick:function(){var t=this;this.rafId=ir((function(){if(t.counting){var e=t.getRemain();Ss(e,t.remain)&&0!==e||t.setRemain(e),t.remain>0&&t.macroTick()}}))},getRemain:function(){return Math.max(this.endTime-Date.now(),0)},setRemain:function(t){this.remain=t,this.$emit("change",this.timeData),0===t&&(this.pause(),this.$emit("finish"))}},render:function(){var t=arguments[0];return t("div",{class:ks()},[this.slots("default",this.timeData)||this.formattedTime])}}),Ts=D("coupon"),Os=Ts[0],$s=Ts[1],Es=Ts[2];function _s(t){return t"+(t.unitDesc||"")+"";if(t.denominations){var e=As(t.denominations);return""+this.currency+" "+e}return t.discount?Es("discount",Bs(t.discount)):""},conditionMessage:function(){var t=As(this.coupon.originCondition);return"0"===t?Es("unlimited"):Es("condition",t)}},render:function(){var t=arguments[0],e=this.coupon,n=this.disabled,i=n&&e.reason||e.description;return t("div",{class:$s({disabled:n})},[t("div",{class:$s("content")},[t("div",{class:$s("head")},[t("h2",{class:$s("amount"),domProps:{innerHTML:this.faceAmount}}),t("p",{class:$s("condition")},[this.coupon.condition||this.conditionMessage])]),t("div",{class:$s("body")},[t("p",{class:$s("name")},[e.name]),t("p",{class:$s("valid")},[this.validPeriod]),!this.disabled&&t(Co,{attrs:{size:18,value:this.chosen,checkedColor:de},class:$s("corner")})])]),i&&t("p",{class:$s("description")},[i])])}}),Ds=D("coupon-cell"),Ns=Ds[0],Rs=Ds[1],Ls=Ds[2];function Ms(t){var e=t.coupons,n=t.chosenCoupon,i=t.currency,r=e[+n];if(r){var o=0;return d(r.value)?o=r.value:d(r.denominations)&&(o=r.denominations),"-"+i+" "+(o/100).toFixed(2)}return 0===e.length?Ls("tips"):Ls("count",e.length)}function js(t,e,n,i){var r=e.coupons[+e.chosenCoupon],s=Ms(e);return t(rn,o()([{class:Rs(),attrs:{value:s,title:e.title||Ls("title"),border:e.border,isLink:e.editable,valueClass:Rs("value",{selected:r})}},L(i,!0)]))}js.model={prop:"chosenCoupon"},js.props={title:String,coupons:{type:Array,default:function(){return[]}},currency:{type:String,default:"¥"},border:{type:Boolean,default:!0},editable:{type:Boolean,default:!0},chosenCoupon:{type:[Number,String],default:-1}};var zs=Ns(js),Fs=D("coupon-list"),Vs=Fs[0],Hs=Fs[1],Us=Fs[2],Ws="https://img01.yzcdn.cn/vant/coupon-empty.png",qs=Vs({model:{prop:"code"},props:{code:String,closeButtonText:String,inputPlaceholder:String,enabledTitle:String,disabledTitle:String,exchangeButtonText:String,exchangeButtonLoading:Boolean,exchangeButtonDisabled:Boolean,exchangeMinLength:{type:Number,default:1},chosenCoupon:{type:Number,default:-1},coupons:{type:Array,default:function(){return[]}},disabledCoupons:{type:Array,default:function(){return[]}},displayedCouponIndex:{type:Number,default:-1},showExchangeBar:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showCount:{type:Boolean,default:!0},currency:{type:String,default:"¥"},emptyImage:{type:String,default:Ws}},data:function(){return{tab:0,winHeight:window.innerHeight,currentCode:this.code||""}},computed:{buttonDisabled:function(){return!this.exchangeButtonLoading&&(this.exchangeButtonDisabled||!this.currentCode||this.currentCode.length=t?(this.innerValue=this.formatValue(t+":"+i),this.updateColumnValue()):this.updateInnerValue()},minMinute:"updateInnerValue",maxMinute:function(t){var e=this.innerValue.split(":"),n=e[0],i=e[1];i>=t?(this.innerValue=this.formatValue(n+":"+t),this.updateColumnValue()):this.updateInnerValue()},value:function(t){t=this.formatValue(t),t!==this.innerValue&&(this.innerValue=t,this.updateColumnValue())}},methods:{formatValue:function(t){t||(t=S(this.minHour)+":"+S(this.minMinute));var e=t.split(":"),n=e[0],i=e[1];return n=S(we(n,this.minHour,this.maxHour)),i=S(we(i,this.minMinute,this.maxMinute)),n+":"+i},updateInnerValue:function(){var t=this.getPicker().getIndexes(),e=t[0],n=t[1],i=this.originColumns,r=i[0],o=i[1],s=r.values[e]||r.values[0],a=o.values[n]||o.values[0];this.innerValue=this.formatValue(s+":"+a),this.updateColumnValue()},onChange:function(t){var e=this;this.updateInnerValue(),this.$nextTick((function(){e.$nextTick((function(){e.updateInnerValue(),e.$emit("change",t)}))}))},updateColumnValue:function(){var t=this,e=this.formatter,n=this.innerValue.split(":"),i=[e("hour",n[0]),e("minute",n[1])];this.$nextTick((function(){t.getPicker().setValues(i)}))}}});function Js(t,e){return Js=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Js(t,e)}function Qs(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(dp){return!1}}function ta(t,e,n){return ta=Qs()?Reflect.construct.bind():function(t,e,n){var i=[null];i.push.apply(i,e);var r=Function.bind.apply(t,i),o=new r;return n&&Js(o,n.prototype),o},ta.apply(null,arguments)}var ea=(new Date).getFullYear(),na=D("date-picker"),ia=na[0],ra=ia({mixins:[Ys],props:i({},Ks,{type:{type:String,default:"datetime"},minDate:{type:Date,default:function(){return new Date(ea-10,0,1)},validator:sr},maxDate:{type:Date,default:function(){return new Date(ea+10,11,31)},validator:sr}}),watch:{filter:"updateInnerValue",minDate:function(){var t=this;this.$nextTick((function(){t.updateInnerValue()}))},maxDate:function(t){this.innerValue.valueOf()>=t.valueOf()?this.innerValue=t:this.updateInnerValue()},value:function(t){t=this.formatValue(t),t&&t.valueOf()!==this.innerValue.valueOf()&&(this.innerValue=t)}},computed:{ranges:function(){var t=this.getBoundary("max",this.innerValue?this.innerValue:this.minDate),e=t.maxYear,n=t.maxDate,i=t.maxMonth,r=t.maxHour,o=t.maxMinute,s=this.getBoundary("min",this.innerValue?this.innerValue:this.minDate),a=s.minYear,c=s.minDate,l=s.minMonth,u=s.minHour,h=s.minMinute,d=[{type:"year",range:[a,e]},{type:"month",range:[l,i]},{type:"day",range:[c,n]},{type:"hour",range:[u,r]},{type:"minute",range:[h,o]}];switch(this.type){case"date":d=d.slice(0,3);break;case"year-month":d=d.slice(0,2);break;case"month-day":d=d.slice(1,3);break;case"datehour":d=d.slice(0,4);break}if(this.columnsOrder){var f=this.columnsOrder.concat(d.map((function(t){return t.type})));d.sort((function(t,e){return f.indexOf(t.type)-f.indexOf(e.type)}))}return d}},methods:{formatValue:function(t){var e=this;if(!sr(t))return null;var n=new Date(this.minDate),i=new Date(this.maxDate),r={year:"getFullYear",month:"getMonth",day:"getDate",hour:"getHours",minute:"getMinutes"};if(this.originColumns){var o=this.originColumns.map((function(t,o){var s=t.type,a=t.values,c=e.ranges[o].range,l=n[r[s]](),u=i[r[s]](),h="month"===s?+a[0]-1:+a[0],d="month"===s?+a[a.length-1]-1:+a[a.length-1];return{type:s,values:[lc[1]?Math.min(u,d):d||u]}}));if("month-day"===this.type){var s=(this.innerValue||this.minDate).getFullYear();o.unshift({type:"year",values:[s,s]})}var a=Object.keys(r).map((function(t){var e;return null==(e=o.filter((function(e){return e.type===t}))[0])?void 0:e.values})).filter((function(t){return t}));n=ta(Date,a.map((function(t){return wr(t[0])}))),i=ta(Date,a.map((function(t){return wr(t[1])})))}return t=Math.max(t,n.getTime()),t=Math.min(t,i.getTime()),new Date(t)},getBoundary:function(t,e){var n,i=this[t+"Date"],r=i.getFullYear(),o=1,s=1,a=0,c=0;return"max"===t&&(o=12,s=xr(e.getFullYear(),e.getMonth()+1),a=23,c=59),e.getFullYear()===r&&(o=i.getMonth()+1,e.getMonth()+1===o&&(s=i.getDate(),e.getDate()===s&&(a=i.getHours(),e.getHours()===a&&(c=i.getMinutes())))),n={},n[t+"Year"]=r,n[t+"Month"]=o,n[t+"Date"]=s,n[t+"Hour"]=a,n[t+"Minute"]=c,n},updateInnerValue:function(){var t,e,n,i=this,r=this.type,o=this.getPicker().getIndexes(),s=function(t){var e=0;i.originColumns.forEach((function(n,i){t===n.type&&(e=i)}));var n=i.originColumns[e].values;return wr(n[o[e]])};"month-day"===r?(t=(this.innerValue||this.minDate).getFullYear(),e=s("month"),n=s("day")):(t=s("year"),e=s("month"),n="year-month"===r?1:s("day"));var a=xr(t,e);n=n>a?a:n;var c=0,l=0;"datehour"===r&&(c=s("hour")),"datetime"===r&&(c=s("hour"),l=s("minute"));var u=new Date(t,e-1,n,c,l);this.innerValue=this.formatValue(u)},onChange:function(t){var e=this;this.updateInnerValue(),this.$nextTick((function(){e.$nextTick((function(){e.updateInnerValue(),e.$emit("change",t)}))}))},updateColumnValue:function(){var t=this,e=this.innerValue?this.innerValue:this.minDate,n=this.formatter,i=this.originColumns.map((function(t){switch(t.type){case"year":return n("year",""+e.getFullYear());case"month":return n("month",S(e.getMonth()+1));case"day":return n("day",S(e.getDate()));case"hour":return n("hour",S(e.getHours()));case"minute":return n("minute",S(e.getMinutes()));default:return null}}));this.$nextTick((function(){t.getPicker().setValues(i)}))}}}),oa=D("datetime-picker"),sa=oa[0],aa=oa[1],ca=sa({props:i({},Gs.props,ra.props),methods:{getPicker:function(){return this.$refs.root.getProxiedPicker()}},render:function(){var t=arguments[0],e="time"===this.type?Gs:ra;return t(e,{ref:"root",class:aa(),scopedSlots:this.$scopedSlots,props:i({},this.$props),on:i({},this.$listeners)})}}),la=D("divider"),ua=la[0],ha=la[1];function da(t,e,n,i){var r;return t("div",o()([{attrs:{role:"separator"},style:{borderColor:e.borderColor},class:ha((r={dashed:e.dashed,hairline:e.hairline},r["content-"+e.contentPosition]=n.default,r))},L(i,!0)]),[n.default&&n.default()])}da.props={dashed:Boolean,hairline:{type:Boolean,default:!0},contentPosition:{type:String,default:"center"}};var fa=ua(da),pa=D("dropdown-item"),va=pa[0],ma=pa[1],ga=va({mixins:[bt({ref:"wrapper"}),Mn("vanDropdownMenu")],props:{value:null,title:String,disabled:Boolean,titleClass:String,options:{type:Array,default:function(){return[]}},lazyRender:{type:Boolean,default:!0}},data:function(){return{transition:!0,showPopup:!1,showWrapper:!1}},computed:{displayTitle:function(){var t=this;if(this.title)return this.title;var e=this.options.filter((function(e){return e.value===t.value}));return e.length?e[0].text:""}},watch:{showPopup:function(t){this.bindScroll(t)}},beforeCreate:function(){var t=this,e=function(e){return function(){return t.$emit(e)}};this.onOpen=e("open"),this.onClose=e("close"),this.onOpened=e("opened")},methods:{toggle:function(t,e){void 0===t&&(t=!this.showPopup),void 0===e&&(e={}),t!==this.showPopup&&(this.transition=!e.immediate,this.showPopup=t,t&&(this.parent.updateOffset(),this.showWrapper=!0))},bindScroll:function(t){var e=this.parent.scroller,n=t?H:U;n(e,"scroll",this.onScroll,!0)},onScroll:function(){this.parent.updateOffset()},onClickWrapper:function(t){this.getContainer&&t.stopPropagation()}},render:function(){var t=this,e=arguments[0],n=this.parent,i=n.zIndex,r=n.offset,o=n.overlay,s=n.duration,a=n.direction,c=n.activeColor,l=n.closeOnClickOverlay,u=this.options.map((function(n){var i=n.value===t.value;return e(rn,{attrs:{clickable:!0,icon:n.icon,title:n.text},key:n.value,class:ma("option",{active:i}),style:{color:i?c:""},on:{click:function(){t.showPopup=!1,n.value!==t.value&&(t.$emit("input",n.value),t.$emit("change",n.value))}}},[i&&e(qt,{class:ma("icon"),attrs:{color:c,name:"success"}})])})),h={zIndex:i};return"down"===a?h.top=r+"px":h.bottom=r+"px",e("div",[e("div",{directives:[{name:"show",value:this.showWrapper}],ref:"wrapper",style:h,class:ma([a]),on:{click:this.onClickWrapper}},[e(Zt,{attrs:{overlay:o,position:"down"===a?"top":"bottom",duration:this.transition?s:0,lazyRender:this.lazyRender,overlayStyle:{position:"absolute"},closeOnClickOverlay:l},class:ma("content"),on:{open:this.onOpen,close:this.onClose,opened:this.onOpened,closed:function(){t.showWrapper=!1,t.$emit("closed")}},model:{value:t.showPopup,callback:function(e){t.showPopup=e}}},[u,this.slots("default")])])])}}),ya=function(t){return{props:{closeOnClickOutside:{type:Boolean,default:!0}},data:function(){var e=this,n=function(n){e.closeOnClickOutside&&!e.$el.contains(n.target)&&e[t.method]()};return{clickOutsideHandler:n}},mounted:function(){H(document,t.event,this.clickOutsideHandler)},beforeDestroy:function(){U(document,t.event,this.clickOutsideHandler)}}},ba=D("dropdown-menu"),Sa=ba[0],wa=ba[1],xa=Sa({mixins:[jn("vanDropdownMenu"),ya({event:"click",method:"onClickOutside"})],props:{zIndex:[Number,String],activeColor:String,overlay:{type:Boolean,default:!0},duration:{type:[Number,String],default:.2},direction:{type:String,default:"down"},closeOnClickOverlay:{type:Boolean,default:!0}},data:function(){return{offset:0}},computed:{scroller:function(){return ct(this.$el)},opened:function(){return this.children.some((function(t){return t.showWrapper}))},barStyle:function(){if(this.opened&&d(this.zIndex))return{zIndex:1+this.zIndex}}},methods:{updateOffset:function(){if(this.$refs.bar){var t=this.$refs.bar.getBoundingClientRect();"down"===this.direction?this.offset=t.bottom:this.offset=window.innerHeight-t.top}},toggleItem:function(t){this.children.forEach((function(e,n){n===t?e.toggle():e.showPopup&&e.toggle(!1,{immediate:!0})}))},onClickOutside:function(){this.children.forEach((function(t){t.toggle(!1)}))}},render:function(){var t=this,e=arguments[0],n=this.children.map((function(n,i){return e("div",{attrs:{role:"button",tabindex:n.disabled?-1:0},class:wa("item",{disabled:n.disabled}),on:{click:function(){n.disabled||t.toggleItem(i)}}},[e("span",{class:[wa("title",{active:n.showPopup,down:n.showPopup===("down"===t.direction)}),n.titleClass],style:{color:n.showPopup?t.activeColor:""}},[e("div",{class:"van-ellipsis"},[n.slots("title")||n.displayTitle])])])}));return e("div",{class:wa()},[e("div",{ref:"bar",style:this.barStyle,class:wa("bar",{opened:this.opened})},[n]),this.slots("default")])}}),ka="van-empty-network-",Ca={render:function(){var t=arguments[0],e=function(e,n,i){return t("stop",{attrs:{"stop-color":e,offset:n+"%","stop-opacity":i}})};return t("svg",{attrs:{viewBox:"0 0 160 160",xmlns:"http://www.w3.org/2000/svg"}},[t("defs",[t("linearGradient",{attrs:{id:ka+"1",x1:"64.022%",y1:"100%",x2:"64.022%",y2:"0%"}},[e("#FFF",0,.5),e("#F2F3F5",100)]),t("linearGradient",{attrs:{id:ka+"2",x1:"50%",y1:"0%",x2:"50%",y2:"84.459%"}},[e("#EBEDF0",0),e("#DCDEE0",100,0)]),t("linearGradient",{attrs:{id:ka+"3",x1:"100%",y1:"0%",x2:"100%",y2:"100%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:ka+"4",x1:"100%",y1:"100%",x2:"100%",y2:"0%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:ka+"5",x1:"0%",y1:"43.982%",x2:"100%",y2:"54.703%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:ka+"6",x1:"94.535%",y1:"43.837%",x2:"5.465%",y2:"54.948%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("radialGradient",{attrs:{id:ka+"7",cx:"50%",cy:"0%",fx:"50%",fy:"0%",r:"100%",gradientTransform:"matrix(0 1 -.54835 0 .5 -.5)"}},[e("#EBEDF0",0),e("#FFF",100,0)])]),t("g",{attrs:{fill:"none","fill-rule":"evenodd"}},[t("g",{attrs:{opacity:".8"}},[t("path",{attrs:{d:"M0 124V46h20v20h14v58H0z",fill:"url(#"+ka+"1)",transform:"matrix(-1 0 0 1 36 7)"}}),t("path",{attrs:{d:"M121 8h22.231v14H152v77.37h-31V8z",fill:"url(#"+ka+"1)",transform:"translate(2 7)"}})]),t("path",{attrs:{fill:"url(#"+ka+"7)",d:"M0 139h160v21H0z"}}),t("path",{attrs:{d:"M37 18a7 7 0 013 13.326v26.742c0 1.23-.997 2.227-2.227 2.227h-1.546A2.227 2.227 0 0134 58.068V31.326A7 7 0 0137 18z",fill:"url(#"+ka+"2)","fill-rule":"nonzero",transform:"translate(43 36)"}}),t("g",{attrs:{opacity:".6","stroke-linecap":"round","stroke-width":"7"}},[t("path",{attrs:{d:"M20.875 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#"+ka+"3)",transform:"translate(43 36)"}}),t("path",{attrs:{d:"M9.849 0C3.756 6.225 0 14.747 0 24.146c0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#"+ka+"3)",transform:"translate(43 36)"}}),t("path",{attrs:{d:"M57.625 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#"+ka+"4)",transform:"rotate(-180 76.483 42.257)"}}),t("path",{attrs:{d:"M73.216 0c-6.093 6.225-9.849 14.747-9.849 24.146 0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#"+ka+"4)",transform:"rotate(-180 89.791 42.146)"}})]),t("g",{attrs:{transform:"translate(31 105)","fill-rule":"nonzero"}},[t("rect",{attrs:{fill:"url(#"+ka+"5)",width:"98",height:"34",rx:"2"}}),t("rect",{attrs:{fill:"#FFF",x:"9",y:"8",width:"80",height:"18",rx:"1.114"}}),t("rect",{attrs:{fill:"url(#"+ka+"6)",x:"15",y:"12",width:"18",height:"6",rx:"1.114"}})])])])}},Ta=D("empty"),Oa=Ta[0],$a=Ta[1],Ea=["error","search","default"],_a=Oa({props:{imageSize:[Number,String],description:String,image:{type:String,default:"default"}},methods:{genImageContent:function(){var t=this.$createElement,e=this.slots("image");if(e)return e;if("network"===this.image)return t(Ca);var n=this.image;return-1!==Ea.indexOf(n)&&(n="https://img01.yzcdn.cn/vant/empty-image-"+n+".png"),t("img",{attrs:{src:n}})},genImage:function(){var t=this.$createElement,e={width:Et(this.imageSize),height:Et(this.imageSize)};return t("div",{class:$a("image"),style:e},[this.genImageContent()])},genDescription:function(){var t=this.$createElement,e=this.slots("description")||this.description;if(e)return t("p",{class:$a("description")},[e])},genBottom:function(){var t=this.$createElement,e=this.slots();if(e)return t("div",{class:$a("bottom")},[e])}},render:function(){var t=arguments[0];return t("div",{class:$a()},[this.genImage(),this.genDescription(),this.genBottom()])}}),Ia=D("form"),Ba=Ia[0],Aa=Ia[1],Pa=Ba({props:{colon:Boolean,disabled:Boolean,readonly:Boolean,labelWidth:[Number,String],labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,errorMessageAlign:String,submitOnEnter:{type:Boolean,default:!0},validateTrigger:{type:String,default:"onBlur"},showError:{type:Boolean,default:!0},showErrorMessage:{type:Boolean,default:!0}},provide:function(){return{vanForm:this}},data:function(){return{fields:[]}},methods:{getFieldsByNames:function(t){return t?this.fields.filter((function(e){return-1!==t.indexOf(e.name)})):this.fields},validateSeq:function(t){var e=this;return new Promise((function(n,i){var r=[],o=e.getFieldsByNames(t);o.reduce((function(t,e){return t.then((function(){if(!r.length)return e.validate().then((function(t){t&&r.push(t)}))}))}),Promise.resolve()).then((function(){r.length?i(r):n()}))}))},validateFields:function(t){var e=this;return new Promise((function(n,i){var r=e.getFieldsByNames(t);Promise.all(r.map((function(t){return t.validate()}))).then((function(t){t=t.filter((function(t){return t})),t.length?i(t):n()}))}))},validate:function(t){return t&&!Array.isArray(t)?this.validateField(t):this.validateFirst?this.validateSeq(t):this.validateFields(t)},validateField:function(t){var e=this.fields.filter((function(e){return e.name===t}));return e.length?new Promise((function(t,n){e[0].validate().then((function(e){e?n(e):t()}))})):Promise.reject()},resetValidation:function(t){t&&!Array.isArray(t)&&(t=[t]);var e=this.getFieldsByNames(t);e.forEach((function(t){t.resetValidation()}))},scrollToField:function(t,e){this.fields.some((function(n){return n.name===t&&(n.$el.scrollIntoView(e),!0)}))},addField:function(t){this.fields.push(t),Ln(this.fields,this)},removeField:function(t){this.fields=this.fields.filter((function(e){return e!==t}))},getValues:function(){return this.fields.reduce((function(t,e){return t[e.name]=e.formValue,t}),{})},onSubmit:function(t){t.preventDefault(),this.submit()},submit:function(){var t=this,e=this.getValues();this.validate().then((function(){t.$emit("submit",e)})).catch((function(n){t.$emit("failed",{values:e,errors:n}),t.scrollToError&&t.scrollToField(n[0].name)}))}},render:function(){var t=arguments[0];return t("form",{class:Aa(),on:{submit:this.onSubmit}},[this.slots()])}}),Da=D("goods-action-icon"),Na=Da[0],Ra=Da[1],La=Na({mixins:[Mn("vanGoodsAction")],props:i({},Ge,{dot:Boolean,text:String,icon:String,color:String,info:[Number,String],badge:[Number,String],iconClass:null}),methods:{onClick:function(t){this.$emit("click",t),Xe(this.$router,this)},genIcon:function(){var t,e=this.$createElement,n=this.slots("icon"),i=null!=(t=this.badge)?t:this.info;return n?e("div",{class:Ra("icon")},[n,e(Mt,{attrs:{dot:this.dot,info:i}})]):e(qt,{class:[Ra("icon"),this.iconClass],attrs:{tag:"div",dot:this.dot,name:this.icon,badge:i,color:this.color}})}},render:function(){var t=arguments[0];return t("div",{attrs:{role:"button",tabindex:"0"},class:Ra(),on:{click:this.onClick}},[this.genIcon(),this.slots()||this.text])}}),Ma=D("grid"),ja=Ma[0],za=Ma[1],Fa=ja({mixins:[jn("vanGrid")],props:{square:Boolean,gutter:[Number,String],iconSize:[Number,String],direction:String,clickable:Boolean,columnNum:{type:[Number,String],default:4},center:{type:Boolean,default:!0},border:{type:Boolean,default:!0}},computed:{style:function(){var t=this.gutter;if(t)return{paddingLeft:Et(t)}}},render:function(){var t,e=arguments[0];return e("div",{style:this.style,class:[za(),(t={},t[pe]=this.border&&!this.gutter,t)]},[this.slots()])}}),Va=D("grid-item"),Ha=Va[0],Ua=Va[1],Wa=Ha({mixins:[Mn("vanGrid")],props:i({},Ge,{dot:Boolean,text:String,icon:String,iconPrefix:String,info:[Number,String],badge:[Number,String]}),computed:{style:function(){var t=this.parent,e=t.square,n=t.gutter,i=t.columnNum,r=100/i+"%",o={flexBasis:r};if(e)o.paddingTop=r;else if(n){var s=Et(n);o.paddingRight=s,this.index>=i&&(o.marginTop=s)}return o},contentStyle:function(){var t=this.parent,e=t.square,n=t.gutter;if(e&&n){var i=Et(n);return{right:i,bottom:i,height:"auto"}}}},methods:{onClick:function(t){this.$emit("click",t),Xe(this.$router,this)},genIcon:function(){var t,e=this.$createElement,n=this.slots("icon"),i=null!=(t=this.badge)?t:this.info;return n?e("div",{class:Ua("icon-wrapper")},[n,e(Mt,{attrs:{dot:this.dot,info:i}})]):this.icon?e(qt,{attrs:{name:this.icon,dot:this.dot,badge:i,size:this.parent.iconSize,classPrefix:this.iconPrefix},class:Ua("icon")}):void 0},getText:function(){var t=this.$createElement,e=this.slots("text");return e||(this.text?t("span",{class:Ua("text")},[this.text]):void 0)},genContent:function(){var t=this.slots();return t||[this.genIcon(),this.getText()]}},render:function(){var t,e=arguments[0],n=this.parent,i=n.center,r=n.border,o=n.square,s=n.gutter,a=n.direction,c=n.clickable;return e("div",{class:[Ua({square:o})],style:this.style},[e("div",{style:this.contentStyle,attrs:{role:c?"button":null,tabindex:c?0:null},class:[Ua("content",[a,{center:i,square:o,clickable:c,surround:r&&s}]),(t={},t[fe]=r,t)],on:{click:this.onClick}},[this.genContent()])])}}),qa=D("image-preview"),Ka=qa[0],Ya=qa[1],Xa=D("swipe"),Za=Xa[0],Ga=Xa[1],Ja=Za({mixins:[gt,jn("vanSwipe"),wt((function(t,e){t(window,"resize",this.resize,!0),t(window,"orientationchange",this.resize,!0),t(window,"visibilitychange",this.onVisibilityChange),e?this.initialize():this.clear()}))],props:{width:[Number,String],height:[Number,String],autoplay:[Number,String],vertical:Boolean,lazyRender:Boolean,indicatorColor:String,loop:{type:Boolean,default:!0},duration:{type:[Number,String],default:500},touchable:{type:Boolean,default:!0},initialSwipe:{type:[Number,String],default:0},showIndicators:{type:Boolean,default:!0},stopPropagation:{type:Boolean,default:!0}},data:function(){return{rect:null,offset:0,active:0,deltaX:0,deltaY:0,swiping:!1,computedWidth:0,computedHeight:0}},watch:{children:function(){this.initialize()},initialSwipe:function(){this.initialize()},autoplay:function(t){t>0?this.autoPlay():this.clear()}},computed:{count:function(){return this.children.length},maxCount:function(){return Math.ceil(Math.abs(this.minOffset)/this.size)},delta:function(){return this.vertical?this.deltaY:this.deltaX},size:function(){return this[this.vertical?"computedHeight":"computedWidth"]},trackSize:function(){return this.count*this.size},activeIndicator:function(){return(this.active+this.count)%this.count},isCorrectDirection:function(){var t=this.vertical?"vertical":"horizontal";return this.direction===t},trackStyle:function(){var t={transitionDuration:(this.swiping?0:this.duration)+"ms",transform:"translate"+(this.vertical?"Y":"X")+"("+this.offset+"px)"};if(this.size){var e=this.vertical?"height":"width",n=this.vertical?"width":"height";t[e]=this.trackSize+"px",t[n]=this[n]?this[n]+"px":""}return t},indicatorStyle:function(){return{backgroundColor:this.indicatorColor}},minOffset:function(){return(this.vertical?this.rect.height:this.rect.width)-this.size*this.count}},mounted:function(){this.bindTouchEvent(this.$refs.track)},methods:{initialize:function(t){if(void 0===t&&(t=+this.initialSwipe),this.$el&&!Wr(this.$el)){clearTimeout(this.timer);var e={width:this.$el.offsetWidth,height:this.$el.offsetHeight};this.rect=e,this.swiping=!0,this.active=t,this.computedWidth=+this.width||e.width,this.computedHeight=+this.height||e.height,this.offset=this.getTargetOffset(t),this.children.forEach((function(t){t.offset=0})),this.autoPlay()}},resize:function(){this.initialize(this.activeIndicator)},onVisibilityChange:function(){document.hidden?this.clear():this.autoPlay()},onTouchStart:function(t){this.touchable&&(this.clear(),this.touchStartTime=Date.now(),this.touchStart(t),this.correctPosition())},onTouchMove:function(t){this.touchable&&this.swiping&&(this.touchMove(t),this.isCorrectDirection&&(q(t,this.stopPropagation),this.move({offset:this.delta})))},onTouchEnd:function(){if(this.touchable&&this.swiping){var t=this.size,e=this.delta,n=Date.now()-this.touchStartTime,i=e/n,r=Math.abs(i)>.25||Math.abs(e)>t/2;if(r&&this.isCorrectDirection){var o=this.vertical?this.offsetY:this.offsetX,s=0;s=this.loop?o>0?e>0?-1:1:0:-Math[e>0?"ceil":"floor"](e/t),this.move({pace:s,emitChange:!0})}else e&&this.move({pace:0});this.swiping=!1,this.autoPlay()}},getTargetActive:function(t){var e=this.active,n=this.count,i=this.maxCount;return t?this.loop?we(e+t,-1,n):we(e+t,0,i):e},getTargetOffset:function(t,e){void 0===e&&(e=0);var n=t*this.size;this.loop||(n=Math.min(n,-this.minOffset));var i=e-n;return this.loop||(i=we(i,this.minOffset,0)),i},move:function(t){var e=t.pace,n=void 0===e?0:e,i=t.offset,r=void 0===i?0:i,o=t.emitChange,s=this.loop,a=this.count,c=this.active,l=this.children,u=this.trackSize,h=this.minOffset;if(!(a<=1)){var d=this.getTargetActive(n),f=this.getTargetOffset(d,r);if(s){if(l[0]&&f!==h){var p=f0;l[a-1].offset=v?-u:0}}this.active=d,this.offset=f,o&&d!==c&&this.$emit("change",this.activeIndicator)}},prev:function(){var t=this;this.correctPosition(),this.resetTouchStatus(),rr((function(){t.swiping=!1,t.move({pace:-1,emitChange:!0})}))},next:function(){var t=this;this.correctPosition(),this.resetTouchStatus(),rr((function(){t.swiping=!1,t.move({pace:1,emitChange:!0})}))},swipeTo:function(t,e){var n=this;void 0===e&&(e={}),this.correctPosition(),this.resetTouchStatus(),rr((function(){var i;i=n.loop&&t===n.count?0===n.active?0:t:t%n.count,e.immediate?rr((function(){n.swiping=!1})):n.swiping=!1,n.move({pace:i-n.active,emitChange:!0})}))},correctPosition:function(){this.swiping=!0,this.active<=-1&&this.move({pace:this.count}),this.active>=this.count&&this.move({pace:-this.count})},clear:function(){clearTimeout(this.timer)},autoPlay:function(){var t=this,e=this.autoplay;e>0&&this.count>1&&(this.clear(),this.timer=setTimeout((function(){t.next(),t.autoPlay()}),e))},genIndicator:function(){var t=this,e=this.$createElement,n=this.count,i=this.activeIndicator,r=this.slots("indicator");return r||(this.showIndicators&&n>1?e("div",{class:Ga("indicators",{vertical:this.vertical})},[Array.apply(void 0,Array(n)).map((function(n,r){return e("i",{class:Ga("indicator",{active:r===i}),style:r===i?t.indicatorStyle:null})}))]):void 0)}},render:function(){var t=arguments[0];return t("div",{class:Ga()},[t("div",{ref:"track",style:this.trackStyle,class:Ga("track",{vertical:this.vertical})},[this.slots()]),this.genIndicator()])}}),Qa=D("swipe-item"),tc=Qa[0],ec=Qa[1],nc=tc({mixins:[Mn("vanSwipe")],data:function(){return{offset:0,inited:!1,mounted:!1}},mounted:function(){var t=this;this.$nextTick((function(){t.mounted=!0}))},computed:{style:function(){var t={},e=this.parent,n=e.size,i=e.vertical;return n&&(t[i?"height":"width"]=n+"px"),this.offset&&(t.transform="translate"+(i?"Y":"X")+"("+this.offset+"px)"),t},shouldRender:function(){var t=this.index,e=this.inited,n=this.parent,i=this.mounted;if(!n.lazyRender||e)return!0;if(!i)return!1;var r=n.activeIndicator,o=n.count-1,s=0===r&&n.loop?o:r-1,a=r===o&&n.loop?0:r+1,c=t===r||t===s||t===a;return c&&(this.inited=!0),c}},render:function(){var t=arguments[0];return t("div",{class:ec(),style:this.style,on:i({},this.$listeners)},[this.shouldRender&&this.slots()])}});function ic(t){return Math.sqrt(Math.pow(t[0].clientX-t[1].clientX,2)+Math.pow(t[0].clientY-t[1].clientY,2))}var rc,oc={mixins:[gt],props:{src:String,show:Boolean,active:Number,minZoom:[Number,String],maxZoom:[Number,String],rootWidth:Number,rootHeight:Number},data:function(){return{scale:1,moveX:0,moveY:0,moving:!1,zooming:!1,imageRatio:0,displayWidth:0,displayHeight:0}},computed:{vertical:function(){var t=this.rootWidth,e=this.rootHeight,n=e/t;return this.imageRatio>n},imageStyle:function(){var t=this.scale,e={transitionDuration:this.zooming||this.moving?"0s":".3s"};if(1!==t){var n=this.moveX/t,i=this.moveY/t;e.transform="scale("+t+", "+t+") translate("+n+"px, "+i+"px)"}return e},maxMoveX:function(){if(this.imageRatio){var t=this.vertical?this.rootHeight/this.imageRatio:this.rootWidth;return Math.max(0,(this.scale*t-this.rootWidth)/2)}return 0},maxMoveY:function(){if(this.imageRatio){var t=this.vertical?this.rootHeight:this.rootWidth*this.imageRatio;return Math.max(0,(this.scale*t-this.rootHeight)/2)}return 0}},watch:{active:"resetScale",show:function(t){t||this.resetScale()}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{resetScale:function(){this.setScale(1),this.moveX=0,this.moveY=0},setScale:function(t){t=we(t,+this.minZoom,+this.maxZoom),t!==this.scale&&(this.scale=t,this.$emit("scale",{scale:this.scale,index:this.active}))},toggleScale:function(){var t=this.scale>1?1:2;this.setScale(t),this.moveX=0,this.moveY=0},onTouchStart:function(t){var e=t.touches,n=this.offsetX,i=void 0===n?0:n;this.touchStart(t),this.touchStartTime=new Date,this.fingerNum=e.length,this.startMoveX=this.moveX,this.startMoveY=this.moveY,this.moving=1===this.fingerNum&&1!==this.scale,this.zooming=2===this.fingerNum&&!i,this.zooming&&(this.startScale=this.scale,this.startDistance=ic(t.touches))},onTouchMove:function(t){var e=t.touches;if(this.touchMove(t),(this.moving||this.zooming)&&q(t,!0),this.moving){var n=this.deltaX+this.startMoveX,i=this.deltaY+this.startMoveY;this.moveX=we(n,-this.maxMoveX,this.maxMoveX),this.moveY=we(i,-this.maxMoveY,this.maxMoveY)}if(this.zooming&&2===e.length){var r=ic(e),o=this.startScale*r/this.startDistance;this.setScale(o)}},onTouchEnd:function(t){var e=!1;(this.moving||this.zooming)&&(e=!0,this.moving&&this.startMoveX===this.moveX&&this.startMoveY===this.moveY&&(e=!1),t.touches.length||(this.zooming&&(this.moveX=we(this.moveX,-this.maxMoveX,this.maxMoveX),this.moveY=we(this.moveY,-this.maxMoveY,this.maxMoveY),this.zooming=!1),this.moving=!1,this.startMoveX=0,this.startMoveY=0,this.startScale=1,this.scale<1&&this.resetScale())),q(t,e),this.checkTap(),this.resetTouchStatus()},checkTap:function(){var t=this;if(!(this.fingerNum>1)){var e=this.offsetX,n=void 0===e?0:e,i=this.offsetY,r=void 0===i?0:i,o=new Date-this.touchStartTime,s=250,a=5;n0,o.top=c+n.top-i[s].height}else o.active=!1}))}},getScrollerRect:function(){return this.scroller.getBoundingClientRect?this.scroller.getBoundingClientRect():{top:0,left:0}},getActiveAnchorIndex:function(t,e){for(var n=this.children.length-1;n>=0;n--){var i=n>0?e[n-1].height:0,r=this.sticky?i+this.stickyOffsetTop:0;if(t+r>=e[n].top)return n}return-1},onClick:function(t){this.scrollToElement(t.target)},onTouchMove:function(t){if(this.touchMove(t),"vertical"===this.direction){q(t);var e=t.touches[0],n=e.clientX,i=e.clientY,r=document.elementFromPoint(n,i);if(r){var o=r.dataset.index;this.touchActiveIndex!==o&&(this.touchActiveIndex=o,this.scrollToElement(r))}}},scrollTo:function(t){var e=this.children.filter((function(e){return String(e.index)===t}));e[0]&&(e[0].scrollIntoView(),this.sticky&&this.stickyOffsetTop&&dt(ht()-this.stickyOffsetTop),this.$emit("select",e[0].index))},scrollToElement:function(t){var e=t.dataset.index;this.scrollTo(e)},onTouchEnd:function(){this.active=null}},render:function(){var t=this,e=arguments[0],n=this.indexList.map((function(n){var i=n===t.activeAnchorIndex;return e("span",{class:yc("index",{active:i}),style:i?t.highlightStyle:null,attrs:{"data-index":n}},[n])}));return e("div",{class:yc()},[e("div",{class:yc("sidebar"),style:this.sidebarStyle,on:{click:this.onClick,touchstart:this.touchStart,touchmove:this.onTouchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}},[n]),this.slots("default")])}}),Sc=D("list"),wc=Sc[0],xc=Sc[1],kc=Sc[2],Cc=wc({mixins:[wt((function(t){this.scroller||(this.scroller=ct(this.$el)),t(this.scroller,"scroll",this.check)}))],model:{prop:"loading"},props:{error:Boolean,loading:Boolean,finished:Boolean,errorText:String,loadingText:String,finishedText:String,immediateCheck:{type:Boolean,default:!0},offset:{type:[Number,String],default:300},direction:{type:String,default:"down"}},data:function(){return{innerLoading:this.loading}},updated:function(){this.innerLoading=this.loading},mounted:function(){this.immediateCheck&&this.check()},watch:{loading:"check",finished:"check"},methods:{check:function(){var t=this;this.$nextTick((function(){if(!(t.innerLoading||t.finished||t.error)){var e,n=t.$el,i=t.scroller,r=t.offset,o=t.direction;e=i.getBoundingClientRect?i.getBoundingClientRect():{top:0,bottom:i.innerHeight};var s=e.bottom-e.top;if(!s||Wr(n))return!1;var a=!1,c=t.$refs.placeholder.getBoundingClientRect();a="up"===o?e.top-c.top<=r:c.bottom-e.bottom<=r,a&&(t.innerLoading=!0,t.$emit("input",!0),t.$emit("load"))}}))},clickErrorText:function(){this.$emit("update:error",!1),this.check()},genLoading:function(){var t=this.$createElement;if(this.innerLoading&&!this.finished)return t("div",{key:"loading",class:xc("loading")},[this.slots("loading")||t(ie,{attrs:{size:"16"}},[this.loadingText||kc("loading")])])},genFinishedText:function(){var t=this.$createElement;if(this.finished){var e=this.slots("finished")||this.finishedText;if(e)return t("div",{class:xc("finished-text")},[e])}},genErrorText:function(){var t=this.$createElement;if(this.error){var e=this.slots("error")||this.errorText;if(e)return t("div",{on:{click:this.clickErrorText},class:xc("error-text")},[e])}}},render:function(){var t=arguments[0],e=t("div",{ref:"placeholder",key:"placeholder",class:xc("placeholder")});return t("div",{class:xc(),attrs:{role:"feed","aria-busy":this.innerLoading}},["down"===this.direction?this.slots():e,this.genLoading(),this.genFinishedText(),this.genErrorText(),"up"===this.direction?this.slots():e])}}),Tc=D("nav-bar"),Oc=Tc[0],$c=Tc[1],Ec=Oc({props:{title:String,fixed:Boolean,zIndex:[Number,String],leftText:String,rightText:String,leftArrow:Boolean,placeholder:Boolean,safeAreaInsetTop:Boolean,border:{type:Boolean,default:!0}},data:function(){return{height:null}},mounted:function(){var t=this;if(this.placeholder&&this.fixed){var e=function(){t.height=t.$refs.navBar.getBoundingClientRect().height};e(),setTimeout(e,100)}},methods:{genLeft:function(){var t=this.$createElement,e=this.slots("left");return e||[this.leftArrow&&t(qt,{class:$c("arrow"),attrs:{name:"arrow-left"}}),this.leftText&&t("span",{class:$c("text")},[this.leftText])]},genRight:function(){var t=this.$createElement,e=this.slots("right");return e||(this.rightText?t("span",{class:$c("text")},[this.rightText]):void 0)},genNavBar:function(){var t,e=this.$createElement;return e("div",{ref:"navBar",style:{zIndex:this.zIndex},class:[$c({fixed:this.fixed,"safe-area-inset-top":this.safeAreaInsetTop}),(t={},t[me]=this.border,t)]},[e("div",{class:$c("content")},[this.hasLeft()&&e("div",{class:$c("left"),on:{click:this.onClickLeft}},[this.genLeft()]),e("div",{class:[$c("title"),"van-ellipsis"]},[this.slots("title")||this.title]),this.hasRight()&&e("div",{class:$c("right"),on:{click:this.onClickRight}},[this.genRight()])])])},hasLeft:function(){return this.leftArrow||this.leftText||this.slots("left")},hasRight:function(){return this.rightText||this.slots("right")},onClickLeft:function(t){this.$emit("click-left",t)},onClickRight:function(t){this.$emit("click-right",t)}},render:function(){var t=arguments[0];return this.placeholder&&this.fixed?t("div",{class:$c("placeholder"),style:{height:this.height+"px"}},[this.genNavBar()]):this.genNavBar()}}),_c=D("notice-bar"),Ic=_c[0],Bc=_c[1],Ac=Ic({mixins:[wt((function(t){t(window,"pageshow",this.reset)}))],inject:{vanPopup:{default:null}},props:{text:String,mode:String,color:String,leftIcon:String,wrapable:Boolean,background:String,scrollable:{type:Boolean,default:null},delay:{type:[Number,String],default:1},speed:{type:[Number,String],default:60}},data:function(){return{show:!0,offset:0,duration:0,wrapWidth:0,contentWidth:0}},watch:{scrollable:"reset",text:{handler:"reset",immediate:!0}},created:function(){this.vanPopup&&this.vanPopup.onReopen(this.reset)},activated:function(){this.reset()},methods:{onClickIcon:function(t){"closeable"===this.mode&&(this.show=!1,this.$emit("close",t))},onTransitionEnd:function(){var t=this;this.offset=this.wrapWidth,this.duration=0,ir((function(){rr((function(){t.offset=-t.contentWidth,t.duration=(t.contentWidth+t.wrapWidth)/t.speed,t.$emit("replay")}))}))},start:function(){this.reset()},reset:function(){var t=this,e=d(this.delay)?1e3*this.delay:0;this.offset=0,this.duration=0,this.wrapWidth=0,this.contentWidth=0,clearTimeout(this.startTimer),this.startTimer=setTimeout((function(){var e=t.$refs,n=e.wrap,i=e.content;if(n&&i&&!1!==t.scrollable){var r=n.getBoundingClientRect().width,o=i.getBoundingClientRect().width;(t.scrollable||o>r)&&rr((function(){t.offset=-o,t.duration=o/t.speed,t.wrapWidth=r,t.contentWidth=o}))}}),e)}},render:function(){var t=this,e=arguments[0],n=this.slots,i=this.mode,r=this.leftIcon,o=this.onClickIcon,s={color:this.color,background:this.background},a={transform:this.offset?"translateX("+this.offset+"px)":"",transitionDuration:this.duration+"s"};function c(){var t=n("left-icon");return t||(r?e(qt,{class:Bc("left-icon"),attrs:{name:r}}):void 0)}function l(){var t,r=n("right-icon");return r||("closeable"===i?t="cross":"link"===i&&(t="arrow"),t?e(qt,{class:Bc("right-icon"),attrs:{name:t},on:{click:o}}):void 0)}return e("div",{attrs:{role:"alert"},directives:[{name:"show",value:this.show}],class:Bc({wrapable:this.wrapable}),style:s,on:{click:function(e){t.$emit("click",e)}}},[c(),e("div",{ref:"wrap",class:Bc("wrap"),attrs:{role:"marquee"}},[e("div",{ref:"content",class:[Bc("content"),{"van-ellipsis":!1===this.scrollable&&!this.wrapable}],style:a,on:{transitionend:this.onTransitionEnd}},[this.slots()||this.text])]),l()])}}),Pc=D("notify"),Dc=Pc[0],Nc=Pc[1];function Rc(t,e,n,i){var r={color:e.color,background:e.background};return t(Zt,o()([{attrs:{value:e.value,position:"top",overlay:!1,duration:.2,lockScroll:!1},style:r,class:[Nc([e.type]),e.className]},L(i,!0)]),[(null==n.default?void 0:n.default())||e.message])}Rc.props=i({},Ct,{color:String,message:[Number,String],duration:[Number,String],className:null,background:String,getContainer:[String,Function],type:{type:String,default:"danger"}});var Lc,Mc,jc=Dc(Rc);function zc(t){return p(t)?t:{message:t}}function Fc(t){if(!u)return Mc||(Mc=j(jc,{on:{click:function(t){Mc.onClick&&Mc.onClick(t)},close:function(){Mc.onClose&&Mc.onClose()},opened:function(){Mc.onOpened&&Mc.onOpened()}}})),t=i({},Fc.currentOptions,zc(t)),i(Mc,t),clearTimeout(Lc),t.duration&&t.duration>0&&(Lc=setTimeout(Fc.clear,t.duration)),Mc}function Vc(){return{type:"danger",value:!0,message:"",color:void 0,background:void 0,duration:3e3,className:"",onClose:null,onClick:null,onOpened:null}}Fc.clear=function(){Mc&&(Mc.value=!1)},Fc.currentOptions=Vc(),Fc.setDefaultOptions=function(t){i(Fc.currentOptions,t)},Fc.resetDefaultOptions=function(){Fc.currentOptions=Vc()},Fc.install=function(){s.ZP.use(jc)},Fc.Component=jc,s.ZP.prototype.$notify=Fc;var Hc=Fc,Uc={render:function(){var t=arguments[0];return t("svg",{attrs:{viewBox:"0 0 32 22",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M28.016 0A3.991 3.991 0 0132 3.987v14.026c0 2.2-1.787 3.987-3.98 3.987H10.382c-.509 0-.996-.206-1.374-.585L.89 13.09C.33 12.62 0 11.84 0 11.006c0-.86.325-1.62.887-2.08L9.01.585A1.936 1.936 0 0110.383 0zm0 1.947H10.368L2.24 10.28c-.224.226-.312.432-.312.73 0 .287.094.51.312.729l8.128 8.333h17.648a2.041 2.041 0 002.037-2.04V3.987c0-1.127-.915-2.04-2.037-2.04zM23.028 6a.96.96 0 01.678.292.95.95 0 01-.003 1.377l-3.342 3.348 3.326 3.333c.189.188.292.43.292.679 0 .248-.103.49-.292.679a.96.96 0 01-.678.292.959.959 0 01-.677-.292L18.99 12.36l-3.343 3.345a.96.96 0 01-.677.292.96.96 0 01-.678-.292.962.962 0 01-.292-.68c0-.248.104-.49.292-.679l3.342-3.348-3.342-3.348A.963.963 0 0114 6.971c0-.248.104-.49.292-.679A.96.96 0 0114.97 6a.96.96 0 01.677.292l3.358 3.348 3.345-3.348A.96.96 0 0123.028 6z",fill:"currentColor"}})])}},Wc={render:function(){var t=arguments[0];return t("svg",{attrs:{viewBox:"0 0 30 24",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M25.877 12.843h-1.502c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.5c.187 0 .187 0 .187-.188v-1.511c0-.19 0-.191-.185-.191zM17.999 10.2c0 .188 0 .188.188.188h1.687c.188 0 .188 0 .188-.188V8.688c0-.187.004-.187-.186-.19h-1.69c-.187 0-.187 0-.187.19V10.2zm2.25-3.967h1.5c.188 0 .188 0 .188-.188v-1.7c0-.19 0-.19-.188-.19h-1.5c-.189 0-.189 0-.189.19v1.7c0 .188 0 .188.19.188zm2.063 4.157h3.563c.187 0 .187 0 .187-.189V4.346c0-.19.004-.19-.185-.19h-1.69c-.187 0-.187 0-.187.188v4.155h-1.688c-.187 0-.187 0-.187.189v1.514c0 .19 0 .19.187.19zM14.812 24l2.812-3.4H12l2.813 3.4zm-9-11.157H4.31c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.502c.187 0 .187 0 .187-.188v-1.511c0-.19.01-.191-.189-.191zm15.937 0H8.25c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h13.5c.188 0 .188 0 .188-.188v-1.511c0-.19 0-.191-.188-.191zm-11.438-2.454h1.5c.188 0 .188 0 .188-.188V8.688c0-.187 0-.187-.188-.189h-1.5c-.187 0-.187 0-.187.189V10.2c0 .188 0 .188.187.188zM27.94 0c.563 0 .917.21 1.313.567.518.466.748.757.748 1.51v14.92c0 .567-.188 1.134-.562 1.512-.376.378-.938.566-1.313.566H2.063c-.563 0-.938-.188-1.313-.566-.562-.378-.75-.945-.75-1.511V2.078C0 1.51.188.944.562.567.938.189 1.5 0 1.875 0zm-.062 2H2v14.92h25.877V2zM5.81 4.157c.19 0 .19 0 .19.189v1.762c-.003.126-.024.126-.188.126H4.249c-.126-.003-.126-.023-.126-.188v-1.7c-.187-.19 0-.19.188-.19zm10.5 2.077h1.503c.187 0 .187 0 .187-.188v-1.7c0-.19 0-.19-.187-.19h-1.502c-.188 0-.188.001-.188.19v1.7c0 .188 0 .188.188.188zM7.875 8.5c.187 0 .187.002.187.189V10.2c0 .188 0 .188-.187.188H4.249c-.126-.002-.126-.023-.126-.188V8.625c.003-.126.024-.126.188-.126zm7.875 0c.19.002.19.002.19.189v1.575c-.003.126-.024.126-.19.126h-1.563c-.126-.002-.126-.023-.126-.188V8.625c.002-.126.023-.126.189-.126zm-6-4.342c.187 0 .187 0 .187.189v1.7c0 .188 0 .188-.187.188H8.187c-.126-.003-.126-.023-.126-.188V4.283c.003-.126.024-.126.188-.126zm3.94 0c.185 0 .372 0 .372.189v1.762c-.002.126-.023.126-.187.126h-1.75C12 6.231 12 6.211 12 6.046v-1.7c0-.19.187-.19.187-.19z",fill:"currentColor"}})])}},qc=D("key"),Kc=qc[0],Yc=qc[1],Xc=Kc({mixins:[gt],props:{type:String,text:[Number,String],color:String,wider:Boolean,large:Boolean,loading:Boolean},data:function(){return{active:!1}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{onTouchStart:function(t){t.stopPropagation(),this.touchStart(t),this.active=!0},onTouchMove:function(t){this.touchMove(t),this.direction&&(this.active=!1)},onTouchEnd:function(t){this.active&&(this.slots("default")||t.preventDefault(),this.active=!1,this.$emit("press",this.text,this.type))},genContent:function(){var t=this.$createElement,e="extra"===this.type,n="delete"===this.type,i=this.slots("default")||this.text;return this.loading?t(ie,{class:Yc("loading-icon")}):n?i||t(Uc,{class:Yc("delete-icon")}):e?i||t(Wc,{class:Yc("collapse-icon")}):i}},render:function(){var t=arguments[0];return t("div",{class:Yc("wrapper",{wider:this.wider})},[t("div",{attrs:{role:"button",tabindex:"0"},class:Yc([this.color,{large:this.large,active:this.active,delete:"delete"===this.type}])},[this.genContent()])])}}),Zc=D("number-keyboard"),Gc=Zc[0],Jc=Zc[1],Qc=Gc({mixins:[bt(),wt((function(t){this.hideOnClickOutside&&t(document.body,"touchstart",this.onBlur)}))],model:{event:"update:value"},props:{show:Boolean,title:String,zIndex:[Number,String],randomKeyOrder:Boolean,closeButtonText:String,deleteButtonText:String,closeButtonLoading:Boolean,theme:{type:String,default:"default"},value:{type:String,default:""},extraKey:{type:[String,Array],default:""},maxlength:{type:[Number,String],default:Number.MAX_VALUE},transition:{type:Boolean,default:!0},showDeleteKey:{type:Boolean,default:!0},hideOnClickOutside:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0}},watch:{show:function(t){this.transition||this.$emit(t?"show":"hide")}},computed:{keys:function(){return"custom"===this.theme?this.genCustomKeys():this.genDefaultKeys()}},methods:{genBasicKeys:function(){for(var t=[],e=1;e<=9;e++)t.push({text:e});return this.randomKeyOrder&&t.sort((function(){return Math.random()>.5?1:-1})),t},genDefaultKeys:function(){return[].concat(this.genBasicKeys(),[{text:this.extraKey,type:"extra"},{text:0},{text:this.showDeleteKey?this.deleteButtonText:"",type:this.showDeleteKey?"delete":""}])},genCustomKeys:function(){var t=this.genBasicKeys(),e=this.extraKey,n=Array.isArray(e)?e:[e];return 1===n.length?t.push({text:0,wider:!0},{text:n[0],type:"extra"}):2===n.length&&t.push({text:n[0],type:"extra"},{text:0},{text:n[1],type:"extra"}),t},onBlur:function(){this.show&&this.$emit("blur")},onClose:function(){this.$emit("close"),this.onBlur()},onAnimationEnd:function(){this.$emit(this.show?"show":"hide")},onPress:function(t,e){if(""!==t){var n=this.value;"delete"===e?(this.$emit("delete"),this.$emit("update:value",n.slice(0,n.length-1))):"close"===e?this.onClose():n.lengthe&&(r=e,i=r-n+1));for(var s=i;s<=r;s++){var a=rl(s,s,s===this.value);t.push(a)}if(o&&n>0&&this.forceEllipses){if(i>1){var c=rl(i-1,"...",!1);t.unshift(c)}if(r0&&Sl(i.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Sl(i.height)/t.offsetHeight||1);var s=gl(t)?ml(t):window,a=s.visualViewport,c=!xl()&&n,l=(i.left+(c&&a?a.offsetLeft:0))/r,u=(i.top+(c&&a?a.offsetTop:0))/o,h=i.width/r,d=i.height/o;return{width:h,height:d,top:u,right:l+h,bottom:u+d,left:l,x:l,y:u}}function Cl(t){var e=ml(t),n=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:n,scrollTop:i}}function Tl(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Ol(t){return t!==ml(t)&&yl(t)?Tl(t):Cl(t)}function $l(t){return t?(t.nodeName||"").toLowerCase():null}function El(t){return((gl(t)?t.ownerDocument:t.document)||window.document).documentElement}function _l(t){return kl(El(t)).left+Cl(t).scrollLeft}function Il(t){return ml(t).getComputedStyle(t)}function Bl(t){var e=Il(t),n=e.overflow,i=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function Al(t){var e=t.getBoundingClientRect(),n=Sl(e.width)/t.offsetWidth||1,i=Sl(e.height)/t.offsetHeight||1;return 1!==n||1!==i}function Pl(t,e,n){void 0===n&&(n=!1);var i=yl(e),r=yl(e)&&Al(e),o=El(e),s=kl(t,r,n),a={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(i||!i&&!n)&&(("body"!==$l(e)||Bl(o))&&(a=Ol(e)),yl(e)?(c=kl(e,!0),c.x+=e.clientLeft,c.y+=e.clientTop):o&&(c.x=_l(o))),{x:s.left+a.scrollLeft-c.x,y:s.top+a.scrollTop-c.y,width:s.width,height:s.height}}function Dl(t){var e=kl(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function Nl(t){return"html"===$l(t)?t:t.assignedSlot||t.parentNode||(bl(t)?t.host:null)||El(t)}function Rl(t){return["html","body","#document"].indexOf($l(t))>=0?t.ownerDocument.body:yl(t)&&Bl(t)?t:Rl(Nl(t))}function Ll(t,e){var n;void 0===e&&(e=[]);var i=Rl(t),r=i===(null==(n=t.ownerDocument)?void 0:n.body),o=ml(i),s=r?[o].concat(o.visualViewport||[],Bl(i)?i:[]):i,a=e.concat(s);return r?a:a.concat(Ll(Nl(s)))}function Ml(t){return["table","td","th"].indexOf($l(t))>=0}function jl(t){return yl(t)&&"fixed"!==Il(t).position?t.offsetParent:null}function zl(t){var e=/firefox/i.test(wl()),n=/Trident/i.test(wl());if(n&&yl(t)){var i=Il(t);if("fixed"===i.position)return null}var r=Nl(t);bl(r)&&(r=r.host);while(yl(r)&&["html","body"].indexOf($l(r))<0){var o=Il(r);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||e&&"filter"===o.willChange||e&&o.filter&&"none"!==o.filter)return r;r=r.parentNode}return null}function Fl(t){var e=ml(t),n=jl(t);while(n&&Ml(n)&&"static"===Il(n).position)n=jl(n);return n&&("html"===$l(n)||"body"===$l(n)&&"static"===Il(n).position)?e:n||zl(t)||e}var Vl="top",Hl="bottom",Ul="right",Wl="left",ql="auto",Kl=[Vl,Hl,Ul,Wl],Yl="start",Xl="end",Zl=[].concat(Kl,[ql]).reduce((function(t,e){return t.concat([e,e+"-"+Yl,e+"-"+Xl])}),[]),Gl="beforeRead",Jl="read",Ql="afterRead",tu="beforeMain",eu="main",nu="afterMain",iu="beforeWrite",ru="write",ou="afterWrite",su=[Gl,Jl,Ql,tu,eu,nu,iu,ru,ou];function au(t){var e=new Map,n=new Set,i=[];function r(t){n.add(t.name);var o=[].concat(t.requires||[],t.requiresIfExists||[]);o.forEach((function(t){if(!n.has(t)){var i=e.get(t);i&&r(i)}})),i.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||r(t)})),i}function cu(t){var e=au(t);return su.reduce((function(t,n){return t.concat(e.filter((function(t){return t.phase===n})))}),[])}function lu(t){var e;return function(){return e||(e=new Promise((function(n){Promise.resolve().then((function(){e=void 0,n(t())}))}))),e}}function uu(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i=0?"x":"y"}function Su(t){var e,n=t.reference,i=t.element,r=t.placement,o=r?mu(r):null,s=r?yu(r):null,a=n.x+n.width/2-i.width/2,c=n.y+n.height/2-i.height/2;switch(o){case Vl:e={x:a,y:n.y-i.height};break;case Hl:e={x:a,y:n.y+n.height};break;case Ul:e={x:n.x+n.width,y:c};break;case Wl:e={x:n.x-i.width,y:c};break;default:e={x:n.x,y:n.y}}var l=o?bu(o):null;if(null!=l){var u="y"===l?"height":"width";switch(s){case Yl:e[l]=e[l]-(n[u]/2-i[u]/2);break;case Xl:e[l]=e[l]+(n[u]/2-i[u]/2);break;default:}}return e}var wu="Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.",xu="Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.",ku={placement:"bottom",modifiers:[],strategy:"absolute"};function Cu(){for(var t=arguments.length,e=new Array(t),n=0;n100){console.error(xu);break}if(!0!==r.reset){var s=r.orderedModifiers[o],l=s.fn,u=s.options,h=void 0===u?{}:u,d=s.name;"function"===typeof l&&(r=l({state:r,options:h,name:d,instance:c})||r)}else r.reset=!1,o=-1}}else console.error(wu)}},update:lu((function(){return new Promise((function(t){c.forceUpdate(),t(r)}))})),destroy:function(){u(),a=!0}};if(!Cu(t,e))return console.error(wu),c;function l(){r.orderedModifiers.forEach((function(t){var e=t.name,n=t.options,i=void 0===n?{}:n,o=t.effect;if("function"===typeof o){var a=o({state:r,name:e,instance:c,options:i}),l=function(){};s.push(a||l)}}))}function u(){s.forEach((function(t){return t()})),s=[]}return c.setOptions(n).then((function(t){!a&&n.onFirstUpdate&&n.onFirstUpdate(t)})),c}}var Ou={passive:!0};function $u(t){var e=t.state,n=t.instance,i=t.options,r=i.scroll,o=void 0===r||r,s=i.resize,a=void 0===s||s,c=ml(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&l.forEach((function(t){t.addEventListener("scroll",n.update,Ou)})),a&&c.addEventListener("resize",n.update,Ou),function(){o&&l.forEach((function(t){t.removeEventListener("scroll",n.update,Ou)})),a&&c.removeEventListener("resize",n.update,Ou)}}var Eu={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:$u,data:{}};function _u(t){var e=t.state,n=t.name;e.modifiersData[n]=Su({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var Iu={name:"popperOffsets",enabled:!0,phase:"read",fn:_u,data:{}},Bu={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Au(t){var e=t.x,n=t.y,i=window,r=i.devicePixelRatio||1;return{x:Sl(e*r)/r||0,y:Sl(n*r)/r||0}}function Pu(t){var e,n=t.popper,i=t.popperRect,r=t.placement,o=t.variation,s=t.offsets,a=t.position,c=t.gpuAcceleration,l=t.adaptive,u=t.roundOffsets,h=t.isFixed,d=s.x,f=void 0===d?0:d,p=s.y,v=void 0===p?0:p,m="function"===typeof u?u({x:f,y:v}):{x:f,y:v};f=m.x,v=m.y;var g=s.hasOwnProperty("x"),y=s.hasOwnProperty("y"),b=Wl,S=Vl,w=window;if(l){var x=Fl(n),k="clientHeight",C="clientWidth";if(x===ml(n)&&(x=El(n),"static"!==Il(x).position&&"absolute"===a&&(k="scrollHeight",C="scrollWidth")),r===Vl||(r===Wl||r===Ul)&&o===Xl){S=Hl;var T=h&&x===w&&w.visualViewport?w.visualViewport.height:x[k];v-=T-i.height,v*=c?1:-1}if(r===Wl||(r===Vl||r===Hl)&&o===Xl){b=Ul;var O=h&&x===w&&w.visualViewport?w.visualViewport.width:x[C];f-=O-i.width,f*=c?1:-1}}var $,E=Object.assign({position:a},l&&Bu),_=!0===u?Au({x:f,y:v}):{x:f,y:v};return f=_.x,v=_.y,c?Object.assign({},E,($={},$[S]=y?"0":"",$[b]=g?"0":"",$.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+v+"px)":"translate3d("+f+"px, "+v+"px, 0)",$)):Object.assign({},E,(e={},e[S]=y?v+"px":"",e[b]=g?f+"px":"",e.transform="",e))}function Du(t){var e=t.state,n=t.options,i=n.gpuAcceleration,r=void 0===i||i,o=n.adaptive,s=void 0===o||o,a=n.roundOffsets,c=void 0===a||a,l=Il(e.elements.popper).transitionProperty||"";s&&["transform","top","right","bottom","left"].some((function(t){return l.indexOf(t)>=0}))&&console.warn(["Popper: Detected CSS transitions on at least one of the following",'CSS properties: "transform", "top", "right", "bottom", "left".',"\n\n",'Disable the "computeStyles" modifier\'s `adaptive` option to allow',"for smooth transitions, or remove these properties from the CSS","transition declaration on the popper element if only transitioning","opacity or background-color for example.","\n\n","We recommend using the popper element as a wrapper around an inner","element that can have any CSS property transitioned for animations."].join(" "));var u={placement:mu(e.placement),variation:yu(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:r,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Pu(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:c})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Pu(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var Nu={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Du,data:{}};function Ru(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var n=e.styles[t]||{},i=e.attributes[t]||{},r=e.elements[t];yl(r)&&$l(r)&&(Object.assign(r.style,n),Object.keys(i).forEach((function(t){var e=i[t];!1===e?r.removeAttribute(t):r.setAttribute(t,!0===e?"":e)})))}))}function Lu(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach((function(t){var i=e.elements[t],r=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]),s=o.reduce((function(t,e){return t[e]="",t}),{});yl(i)&&$l(i)&&(Object.assign(i.style,s),Object.keys(r).forEach((function(t){i.removeAttribute(t)})))}))}}var Mu={name:"applyStyles",enabled:!0,phase:"write",fn:Ru,effect:Lu,requires:["computeStyles"]},ju=[Eu,Iu,Nu,Mu],zu=Tu({defaultModifiers:ju});function Fu(t,e,n){var i=mu(t),r=[Wl,Vl].indexOf(i)>=0?-1:1,o="function"===typeof n?n(Object.assign({},e,{placement:t})):n,s=o[0],a=o[1];return s=s||0,a=(a||0)*r,[Wl,Ul].indexOf(i)>=0?{x:a,y:s}:{x:s,y:a}}function Vu(t){var e=t.state,n=t.options,i=t.name,r=n.offset,o=void 0===r?[0,0]:r,s=Zl.reduce((function(t,n){return t[n]=Fu(n,e.rects,o),t}),{}),a=s[e.placement],c=a.x,l=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=c,e.modifiersData.popperOffsets.y+=l),e.modifiersData[i]=s}var Hu={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Vu},Uu=D("popover"),Wu=Uu[0],qu=Uu[1],Ku=Wu({mixins:[ya({event:"touchstart",method:"onClickOutside"})],props:{value:Boolean,trigger:String,overlay:Boolean,offset:{type:Array,default:function(){return[0,8]}},theme:{type:String,default:"light"},actions:{type:Array,default:function(){return[]}},placement:{type:String,default:"bottom"},getContainer:{type:[String,Function],default:"body"},closeOnClickAction:{type:Boolean,default:!0}},watch:{value:"updateLocation",placement:"updateLocation"},mounted:function(){this.updateLocation()},beforeDestroy:function(){this.popper&&(u||(window.removeEventListener("animationend",this.updateLocation),window.removeEventListener("transitionend",this.updateLocation)),this.popper.destroy(),this.popper=null)},methods:{createPopper:function(){var t=zu(this.$refs.wrapper,this.$refs.popover.$el,{placement:this.placement,modifiers:[{name:"computeStyles",options:{adaptive:!1,gpuAcceleration:!1}},i({},Hu,{options:{offset:this.offset}})]});return u||(window.addEventListener("animationend",this.updateLocation),window.addEventListener("transitionend",this.updateLocation)),t},updateLocation:function(){var t=this;this.$nextTick((function(){t.value&&(t.popper?t.popper.setOptions({placement:t.placement}):t.popper=t.createPopper())}))},renderAction:function(t,e){var n=this,i=this.$createElement,r=t.icon,o=t.text,s=t.disabled,a=t.className;return i("div",{attrs:{role:"menuitem"},class:[qu("action",{disabled:s,"with-icon":r}),a],on:{click:function(){return n.onClickAction(t,e)}}},[r&&i(qt,{attrs:{name:r},class:qu("action-icon")}),i("div",{class:[qu("action-text"),me]},[o])])},onToggle:function(t){this.$emit("input",t)},onClickWrapper:function(){"click"===this.trigger&&this.onToggle(!this.value)},onTouchstart:function(t){t.stopPropagation(),this.$emit("touchstart",t)},onClickAction:function(t,e){t.disabled||(this.$emit("select",t,e),this.closeOnClickAction&&this.$emit("input",!1))},onClickOutside:function(){this.$emit("input",!1)},onOpen:function(){this.$emit("open")},onOpened:function(){this.$emit("opened")},onClose:function(){this.$emit("close")},onClosed:function(){this.$emit("closed")}},render:function(){var t=arguments[0];return t("span",{ref:"wrapper",class:qu("wrapper"),on:{click:this.onClickWrapper}},[t(Zt,{ref:"popover",attrs:{value:this.value,overlay:this.overlay,position:null,transition:"van-popover-zoom",lockScroll:!1,getContainer:this.getContainer},class:qu([this.theme]),on:{open:this.onOpen,close:this.onClose,input:this.onToggle,opened:this.onOpened,closed:this.onClosed},nativeOn:{touchstart:this.onTouchstart}},[t("div",{class:qu("arrow")}),t("div",{class:qu("content"),attrs:{role:"menu"}},[this.slots("default")||this.actions.map(this.renderAction)])]),this.slots("reference")])}}),Yu=D("progress"),Xu=Yu[0],Zu=Yu[1],Gu=Xu({mixins:[wt((function(t){t(window,"resize",this.resize,!0),t(window,"orientationchange",this.resize,!0)}))],props:{color:String,inactive:Boolean,pivotText:String,textColor:String,pivotColor:String,trackColor:String,strokeWidth:[Number,String],percentage:{type:[Number,String],required:!0,validator:function(t){return t>=0&&t<=100}},showPivot:{type:Boolean,default:!0}},data:function(){return{pivotWidth:0,progressWidth:0}},mounted:function(){this.resize()},watch:{showPivot:"resize",pivotText:"resize"},methods:{resize:function(){var t=this;this.$nextTick((function(){t.progressWidth=t.$el.offsetWidth,t.pivotWidth=t.$refs.pivot?t.$refs.pivot.offsetWidth:0}))}},render:function(){var t=arguments[0],e=this.pivotText,n=this.percentage,i=null!=e?e:n+"%",r=this.showPivot&&i,o=this.inactive?"#cacaca":this.color,s={color:this.textColor,left:(this.progressWidth-this.pivotWidth)*n/100+"px",background:this.pivotColor||o},a={background:o,width:this.progressWidth*n/100+"px"},c={background:this.trackColor,height:Et(this.strokeWidth)};return t("div",{class:Zu(),style:c},[t("span",{class:Zu("portion"),style:a},[r&&t("span",{ref:"pivot",style:s,class:Zu("pivot")},[i])])])}}),Ju=D("pull-refresh"),Qu=Ju[0],th=Ju[1],eh=Ju[2],nh=50,ih=["pulling","loosing","success"],rh=Qu({mixins:[gt],props:{disabled:Boolean,successText:String,pullingText:String,loosingText:String,loadingText:String,pullDistance:[Number,String],value:{type:Boolean,required:!0},successDuration:{type:[Number,String],default:500},animationDuration:{type:[Number,String],default:300},headHeight:{type:[Number,String],default:nh}},data:function(){return{status:"normal",distance:0,duration:0}},computed:{touchable:function(){return"loading"!==this.status&&"success"!==this.status&&!this.disabled},headStyle:function(){if(this.headHeight!==nh)return{height:this.headHeight+"px"}}},watch:{value:function(t){this.duration=this.animationDuration,t?this.setStatus(+this.headHeight,!0):this.slots("success")||this.successText?this.showSuccessTip():this.setStatus(0,!1)}},mounted:function(){this.bindTouchEvent(this.$refs.track),this.scrollEl=ct(this.$el)},methods:{checkPullStart:function(t){this.ceiling=0===lt(this.scrollEl),this.ceiling&&(this.duration=0,this.touchStart(t))},onTouchStart:function(t){this.touchable&&this.checkPullStart(t)},onTouchMove:function(t){this.touchable&&(this.ceiling||this.checkPullStart(t),this.touchMove(t),this.ceiling&&this.deltaY>=0&&"vertical"===this.direction&&(q(t),this.setStatus(this.ease(this.deltaY))))},onTouchEnd:function(){var t=this;this.touchable&&this.ceiling&&this.deltaY&&(this.duration=this.animationDuration,"loosing"===this.status?(this.setStatus(+this.headHeight,!0),this.$emit("input",!0),this.$nextTick((function(){t.$emit("refresh")}))):this.setStatus(0))},ease:function(t){var e=+(this.pullDistance||this.headHeight);return t>e&&(t=t<2*e?e+(t-e)/2:1.5*e+(t-2*e)/4),Math.round(t)},setStatus:function(t,e){var n;n=e?"loading":0===t?"normal":t<(this.pullDistance||this.headHeight)?"pulling":"loosing",this.distance=t,n!==this.status&&(this.status=n)},genStatus:function(){var t=this.$createElement,e=this.status,n=this.distance,i=this.slots(e,{distance:n});if(i)return i;var r=[],o=this[e+"Text"]||eh(e);return-1!==ih.indexOf(e)&&r.push(t("div",{class:th("text")},[o])),"loading"===e&&r.push(t(ie,{attrs:{size:"16"}},[o])),r},showSuccessTip:function(){var t=this;this.status="success",setTimeout((function(){t.setStatus(0)}),this.successDuration)}},render:function(){var t=arguments[0],e={transitionDuration:this.duration+"ms",transform:this.distance?"translate3d(0,"+this.distance+"px, 0)":""};return t("div",{class:th()},[t("div",{ref:"track",class:th("track"),style:e},[t("div",{class:th("head"),style:this.headStyle},[this.genStatus()]),this.slots()])])}}),oh=D("rate"),sh=oh[0],ah=oh[1];function ch(t,e,n){return t>=e?"full":t+.5>=e&&n?"half":"void"}var lh=sh({mixins:[gt,hi],props:{size:[Number,String],color:String,gutter:[Number,String],readonly:Boolean,disabled:Boolean,allowHalf:Boolean,voidColor:String,iconPrefix:String,disabledColor:String,value:{type:Number,default:0},icon:{type:String,default:"star"},voidIcon:{type:String,default:"star-o"},count:{type:[Number,String],default:5},touchable:{type:Boolean,default:!0}},computed:{list:function(){for(var t=[],e=1;e<=this.count;e++)t.push(ch(this.value,e,this.allowHalf));return t},sizeWithUnit:function(){return Et(this.size)},gutterWithUnit:function(){return Et(this.gutter)}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{select:function(t){this.disabled||this.readonly||t===this.value||(this.$emit("input",t),this.$emit("change",t))},onTouchStart:function(t){var e=this;if(!this.readonly&&!this.disabled&&this.touchable){this.touchStart(t);var n=this.$refs.items.map((function(t){return t.getBoundingClientRect()})),i=[];n.forEach((function(t,n){e.allowHalf?i.push({score:n+.5,left:t.left},{score:n+1,left:t.left+t.width/2}):i.push({score:n+1,left:t.left})})),this.ranges=i}},onTouchMove:function(t){if(!this.readonly&&!this.disabled&&this.touchable&&(this.touchMove(t),"horizontal"===this.direction)){q(t);var e=t.touches[0].clientX;this.select(this.getScoreByPosition(e))}},getScoreByPosition:function(t){for(var e=this.ranges.length-1;e>0;e--)if(t>this.ranges[e].left)return this.ranges[e].score;return this.allowHalf?.5:1},genStar:function(t,e){var n,i=this,r=this.$createElement,o=this.icon,s=this.color,a=this.count,c=this.voidIcon,l=this.disabled,u=this.voidColor,h=this.disabledColor,d=e+1,f="full"===t,p="void"===t;return this.gutterWithUnit&&d!==+a&&(n={paddingRight:this.gutterWithUnit}),r("div",{ref:"items",refInFor:!0,key:e,attrs:{role:"radio",tabindex:"0","aria-setsize":a,"aria-posinset":d,"aria-checked":String(!p)},style:n,class:ah("item")},[r(qt,{attrs:{size:this.sizeWithUnit,name:f?o:c,color:l?h:f?s:u,classPrefix:this.iconPrefix,"data-score":d},class:ah("icon",{disabled:l,full:f}),on:{click:function(){i.select(d)}}}),this.allowHalf&&r(qt,{attrs:{size:this.sizeWithUnit,name:p?c:o,color:l?h:p?u:s,classPrefix:this.iconPrefix,"data-score":d-.5},class:ah("icon",["half",{disabled:l,full:!p}]),on:{click:function(){i.select(d-.5)}}})])}},render:function(){var t=this,e=arguments[0];return e("div",{class:ah({readonly:this.readonly,disabled:this.disabled}),attrs:{tabindex:"0",role:"radiogroup"}},[this.list.map((function(e,n){return t.genStar(e,n)}))])}}),uh=D("row"),hh=uh[0],dh=uh[1],fh=hh({mixins:[jn("vanRow")],props:{type:String,align:String,justify:String,tag:{type:String,default:"div"},gutter:{type:[Number,String],default:0}},computed:{spaces:function(){var t=Number(this.gutter);if(t){var e=[],n=[[]],i=0;return this.children.forEach((function(t,e){i+=Number(t.span),i>24?(n.push([e]),i-=24):n[n.length-1].push(e)})),n.forEach((function(n){var i=t*(n.length-1)/n.length;n.forEach((function(n,r){if(0===r)e.push({right:i});else{var o=t-e[n-1].right,s=i-o;e.push({left:o,right:s})}}))})),e}}},methods:{onClick:function(t){this.$emit("click",t)}},render:function(){var t,e=arguments[0],n=this.align,i=this.justify,r="flex"===this.type;return e(this.tag,{class:dh((t={flex:r},t["align-"+n]=r&&n,t["justify-"+i]=r&&i,t)),on:{click:this.onClick}},[this.slots()])}}),ph=D("search"),vh=ph[0],mh=ph[1],gh=ph[2];function yh(t,e,n,r){function s(){if(n.label||e.label)return t("div",{class:mh("label")},[n.label?n.label():e.label])}function a(){if(e.showAction)return t("div",{class:mh("action"),attrs:{role:"button",tabindex:"0"},on:{click:i}},[n.action?n.action():e.actionText||gh("cancel")]);function i(){n.action||(M(r,"input",""),M(r,"cancel"))}}var c={attrs:r.data.attrs,on:i({},r.listeners,{keypress:function(t){13===t.keyCode&&(q(t),M(r,"search",e.value)),M(r,"keypress",t)}})},l=L(r);return l.attrs=void 0,t("div",o()([{class:mh({"show-action":e.showAction}),style:{background:e.background}},l]),[null==n.left?void 0:n.left(),t("div",{class:mh("content",e.shape)},[s(),t(dn,o()([{attrs:{type:"search",border:!1,value:e.value,leftIcon:e.leftIcon,rightIcon:e.rightIcon,clearable:e.clearable,clearTrigger:e.clearTrigger},scopedSlots:{"left-icon":n["left-icon"],"right-icon":n["right-icon"]}},c]))]),a()])}yh.props={value:String,label:String,rightIcon:String,actionText:String,background:String,showAction:Boolean,clearTrigger:String,shape:{type:String,default:"square"},clearable:{type:Boolean,default:!0},leftIcon:{type:String,default:"search"}};var bh=vh(yh),Sh=["qq","link","weibo","wechat","poster","qrcode","weapp-qrcode","wechat-moments"],wh=D("share-sheet"),xh=wh[0],kh=wh[1],Ch=wh[2],Th=xh({props:i({},Ct,{title:String,duration:String,cancelText:String,description:String,getContainer:[String,Function],options:{type:Array,default:function(){return[]}},overlay:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}}),methods:{onCancel:function(){this.toggle(!1),this.$emit("cancel")},onSelect:function(t,e){this.$emit("select",t,e)},toggle:function(t){this.$emit("input",t)},getIconURL:function(t){return-1!==Sh.indexOf(t)?"https://img01.yzcdn.cn/vant/share-sheet-"+t+".png":t},genHeader:function(){var t=this.$createElement,e=this.slots("title")||this.title,n=this.slots("description")||this.description;if(e||n)return t("div",{class:kh("header")},[e&&t("h2",{class:kh("title")},[e]),n&&t("span",{class:kh("description")},[n])])},genOptions:function(t,e){var n=this,i=this.$createElement;return i("div",{class:kh("options",{border:e})},[t.map((function(t,e){return i("div",{attrs:{role:"button",tabindex:"0"},class:[kh("option"),t.className],on:{click:function(){n.onSelect(t,e)}}},[i("img",{attrs:{src:n.getIconURL(t.icon)},class:kh("icon")}),t.name&&i("span",{class:kh("name")},[t.name]),t.description&&i("span",{class:kh("option-description")},[t.description])])}))])},genRows:function(){var t=this,e=this.options;return Array.isArray(e[0])?e.map((function(e,n){return t.genOptions(e,0!==n)})):this.genOptions(e)},genCancelText:function(){var t,e=this.$createElement,n=null!=(t=this.cancelText)?t:Ch("cancel");if(n)return e("button",{attrs:{type:"button"},class:kh("cancel"),on:{click:this.onCancel}},[n])},onClickOverlay:function(){this.$emit("click-overlay")}},render:function(){var t=arguments[0];return t(Zt,{attrs:{round:!0,value:this.value,position:"bottom",overlay:this.overlay,duration:this.duration,lazyRender:this.lazyRender,lockScroll:this.lockScroll,getContainer:this.getContainer,closeOnPopstate:this.closeOnPopstate,closeOnClickOverlay:this.closeOnClickOverlay,safeAreaInsetBottom:this.safeAreaInsetBottom},class:kh(),on:{input:this.toggle,"click-overlay":this.onClickOverlay}},[this.genHeader(),this.genRows(),this.genCancelText()])}}),Oh=D("sidebar"),$h=Oh[0],Eh=Oh[1],_h=$h({mixins:[jn("vanSidebar")],model:{prop:"activeKey"},props:{activeKey:{type:[Number,String],default:0}},data:function(){return{index:+this.activeKey}},watch:{activeKey:function(){this.setIndex(+this.activeKey)}},methods:{setIndex:function(t){t!==this.index&&(this.index=t,this.$emit("change",t))}},render:function(){var t=arguments[0];return t("div",{class:Eh()},[this.slots()])}}),Ih=D("sidebar-item"),Bh=Ih[0],Ah=Ih[1],Ph=Bh({mixins:[Mn("vanSidebar")],props:i({},Ge,{dot:Boolean,info:[Number,String],badge:[Number,String],title:String,disabled:Boolean}),computed:{select:function(){return this.index===+this.parent.activeKey}},methods:{onClick:function(){this.disabled||(this.$emit("click",this.index),this.parent.$emit("input",this.index),this.parent.setIndex(this.index),Xe(this.$router,this))}},render:function(){var t,e,n=arguments[0];return n("a",{class:Ah({select:this.select,disabled:this.disabled}),on:{click:this.onClick}},[n("div",{class:Ah("text")},[null!=(t=this.slots("title"))?t:this.title,n(Mt,{attrs:{dot:this.dot,info:null!=(e=this.badge)?e:this.info},class:Ah("info")})])])}}),Dh=D("skeleton"),Nh=Dh[0],Rh=Dh[1],Lh="100%",Mh="60%";function jh(t,e,n,i){if(!e.loading)return n.default&&n.default();function r(){if(e.title)return t("h3",{class:Rh("title"),style:{width:Et(e.titleWidth)}})}function s(){var n=[],i=e.rowWidth;function r(t){return i===Lh&&t===+e.row-1?Mh:Array.isArray(i)?i[t]:i}for(var o=0;o0){var s=r.filter((function(t){return t.id===o}))[0];s&&t.push(s)}return t}),[])},Zh=function(t,e,n){var r,o=n.key,s=n.valueId,a=i({},e,(r={},r[o]=s,r)),c=Object.keys(a).filter((function(t){return a[t]!==Hh})),l=t.filter((function(t){return c.every((function(e){return String(a[e])===String(t[e])}))})),u=l.reduce((function(t,e){return t+=e.stock_num,t}),0);return u>0},Gh=function(t,e){var n=qh(t);return Object.keys(e).reduce((function(t,r){return e[r].forEach((function(e){t.push(i({},n[r][e]))})),t}),[])},Jh=function(t,e){var n=[];return(t||[]).forEach((function(t){if(e[t.k_id]&&e[t.k_id].length>0){var r=[];t.v.forEach((function(n){e[t.k_id].indexOf(n.id)>-1&&r.push(i({},n))})),n.push(i({},t,{v:r}))}})),n},Qh={normalizeSkuTree:Wh,getSkuComb:Yh,getSelectedSkuValues:Xh,isAllSelected:Kh,isSkuChoosable:Zh,getSelectedPropValues:Gh,getSelectedProperties:Jh},td=D("sku-header"),ed=td[0],nd=td[1];function id(t,e){var n;return t.tree.some((function(t){var r=e[t.k_s];if(r&&t.v){var o=t.v.filter((function(t){return t.id===r}))[0]||{},s=o.previewImgUrl||o.imgUrl||o.img_url;if(s)return n=i({},o,{ks:t.k_s,imgUrl:s}),!0}return!1})),n}function rd(t,e,n,i){var r,s=e.sku,a=e.goods,c=e.skuEventBus,l=e.selectedSku,u=e.showHeaderImage,h=void 0===u||u,d=id(s,l),f=d?d.imgUrl:a.picture,p=function(){c.$emit("sku:previewImage",d)};return t("div",o()([{class:[nd(),me]},L(i)]),[h&&t(Pr,{attrs:{fit:"cover",src:f},class:nd("img-wrap"),on:{click:p}},[null==(r=n["sku-header-image-extra"])?void 0:r.call(n)]),t("div",{class:nd("goods-info")},[null==n.default?void 0:n.default()])])}rd.props={sku:Object,goods:Object,skuEventBus:Object,selectedSku:Object,showHeaderImage:Boolean};var od=ed(rd),sd=D("sku-header-item"),ad=sd[0],cd=sd[1];function ld(t,e,n,i){return t("div",o()([{class:cd()},L(i)]),[n.default&&n.default()])}var ud=ad(ld),hd=D("sku-row"),dd=hd[0],fd=hd[1],pd=hd[2],vd=dd({mixins:[jn("vanSkuRows"),wt((function(t){this.scrollable&&this.$refs.scroller&&t(this.$refs.scroller,"scroll",this.onScroll)}))],props:{skuRow:Object},data:function(){return{progress:0}},computed:{scrollable:function(){return this.skuRow.largeImageMode&&this.skuRow.v.length>6}},methods:{onScroll:function(){var t=this.$refs,e=t.scroller,n=t.row,i=n.offsetWidth-e.offsetWidth;this.progress=e.scrollLeft/i},genTitle:function(){var t=this.$createElement;return t("div",{class:fd("title")},[this.skuRow.k,this.skuRow.is_multiple&&t("span",{class:fd("title-multiple")},["(",pd("multiple"),")"])])},genIndicator:function(){var t=this.$createElement;if(this.scrollable){var e={transform:"translate3d("+20*this.progress+"px, 0, 0)"};return t("div",{class:fd("indicator-wrapper")},[t("div",{class:fd("indicator")},[t("div",{class:fd("indicator-slider"),style:e})])])}},genContent:function(){var t=this.$createElement,e=this.slots();if(this.skuRow.largeImageMode){var n=[],i=[];return e.forEach((function(t,e){var r=Math.floor(e/3)%2===0?n:i;r.push(t)})),t("div",{class:fd("scroller"),ref:"scroller"},[t("div",{class:fd("row"),ref:"row"},[n]),i.length?t("div",{class:fd("row")},[i]):null])}return e},centerItem:function(t){if(this.skuRow.largeImageMode&&t){var e=this.children,n=void 0===e?[]:e,i=this.$refs,r=i.scroller,o=i.row,s=n.find((function(e){return+e.skuValue.id===+t}));if(r&&o&&s&&s.$el){var a=s.$el,c=a.offsetLeft-(r.offsetWidth-a.offsetWidth)/2;r.scrollLeft=c}}}},render:function(){var t=arguments[0];return t("div",{class:[fd(),me]},[this.genTitle(),this.genContent(),this.genIndicator()])}}),md=D("sku-row-item"),gd=md[0],yd=gd({mixins:[Mn("vanSkuRows")],props:{lazyLoad:Boolean,skuValue:Object,skuKeyStr:String,skuEventBus:Object,selectedSku:Object,largeImageMode:Boolean,disableSoldoutSku:Boolean,skuList:{type:Array,default:function(){return[]}}},computed:{imgUrl:function(){var t=this.skuValue.imgUrl||this.skuValue.img_url;return this.largeImageMode?t||"https://img01.yzcdn.cn/upload_files/2020/06/24/FmKWDg0bN9rMcTp9ne8MXiQWGtLn.png":t},choosable:function(){return!this.disableSoldoutSku||Zh(this.skuList,this.selectedSku,{key:this.skuKeyStr,valueId:this.skuValue.id})}},methods:{onSelect:function(){this.choosable&&this.skuEventBus.$emit("sku:select",i({},this.skuValue,{skuKeyStr:this.skuKeyStr}))},onPreviewImg:function(t){t.stopPropagation();var e=this.skuValue,n=this.skuKeyStr;this.skuEventBus.$emit("sku:previewImage",i({},e,{ks:n,imgUrl:e.imgUrl||e.img_url}))},genImage:function(t){var e=this.$createElement;if(this.imgUrl)return e(Pr,{attrs:{fit:"cover",src:this.imgUrl,lazyLoad:this.lazyLoad},class:t+"-img"})}},render:function(){var t=arguments[0],e=this.skuValue.id===this.selectedSku[this.skuKeyStr],n=this.largeImageMode?fd("image-item"):fd("item");return t("span",{class:[n,e?n+"--active":"",this.choosable?"":n+"--disabled"],on:{click:this.onSelect}},[this.genImage(n),t("div",{class:n+"-name"},[this.largeImageMode?t("span",{class:{"van-multi-ellipsis--l2":this.largeImageMode}},[this.skuValue.name]):this.skuValue.name]),this.largeImageMode&&t(qt,{attrs:{name:"enlarge"},class:n+"-img-icon",on:{click:this.onPreviewImg}})])}}),bd=D("sku-row-prop-item"),Sd=bd[0],wd=Sd({props:{skuValue:Object,skuKeyStr:String,skuEventBus:Object,selectedProp:Object,multiple:Boolean,disabled:Boolean},computed:{choosed:function(){var t=this.selectedProp,e=this.skuKeyStr,n=this.skuValue;return!(!t||!t[e])&&t[e].indexOf(n.id)>-1}},methods:{onSelect:function(){this.disabled||this.skuEventBus.$emit("sku:propSelect",i({},this.skuValue,{skuKeyStr:this.skuKeyStr,multiple:this.multiple}))}},render:function(){var t=arguments[0];return t("span",{class:["van-sku-row__item",{"van-sku-row__item--active":this.choosed},{"van-sku-row__item--disabled":this.disabled}],on:{click:this.onSelect}},[t("span",{class:"van-sku-row__item-name"},[this.skuValue.name])])}}),xd=D("stepper"),kd=xd[0],Cd=xd[1],Td=600,Od=200;function $d(t,e){return String(t)===String(e)}var Ed=kd({mixins:[hi],props:{value:null,theme:String,integer:Boolean,disabled:Boolean,allowEmpty:Boolean,inputWidth:[Number,String],buttonSize:[Number,String],asyncChange:Boolean,placeholder:String,disablePlus:Boolean,disableMinus:Boolean,disableInput:Boolean,decimalLength:[Number,String],name:{type:[Number,String],default:""},min:{type:[Number,String],default:1},max:{type:[Number,String],default:1/0},step:{type:[Number,String],default:1},defaultValue:{type:[Number,String],default:1},showPlus:{type:Boolean,default:!0},showMinus:{type:Boolean,default:!0},showInput:{type:Boolean,default:!0},longPress:{type:Boolean,default:!0}},data:function(){var t,e=null!=(t=this.value)?t:this.defaultValue,n=this.format(e);return $d(n,this.value)||this.$emit("input",n),{currentValue:n}},computed:{minusDisabled:function(){return this.disabled||this.disableMinus||this.currentValue<=+this.min},plusDisabled:function(){return this.disabled||this.disablePlus||this.currentValue>=+this.max},inputStyle:function(){var t={};return this.inputWidth&&(t.width=Et(this.inputWidth)),this.buttonSize&&(t.height=Et(this.buttonSize)),t},buttonStyle:function(){if(this.buttonSize){var t=Et(this.buttonSize);return{width:t,height:t}}}},watch:{max:"check",min:"check",integer:"check",decimalLength:"check",value:function(t){$d(t,this.currentValue)||(this.currentValue=this.format(t))},currentValue:function(t){this.$emit("input",t),this.$emit("change",t,{name:this.name})}},methods:{check:function(){var t=this.format(this.currentValue);$d(t,this.currentValue)||(this.currentValue=t)},formatNumber:function(t){return ke(String(t),!this.integer)},format:function(t){return this.allowEmpty&&""===t||(t=this.formatNumber(t),t=""===t?0:+t,t=$t(t)?this.min:t,t=Math.max(Math.min(this.max,t),this.min),d(this.decimalLength)&&(t=t.toFixed(this.decimalLength))),t},onInput:function(t){var e=t.target.value,n=this.formatNumber(e);if(d(this.decimalLength)&&-1!==n.indexOf(".")){var i=n.split(".");n=i[0]+"."+i[1].slice(0,this.decimalLength)}$d(e,n)||(t.target.value=n),n===String(+n)&&(n=+n),this.emitChange(n)},emitChange:function(t){this.asyncChange?(this.$emit("input",t),this.$emit("change",t,{name:this.name})):this.currentValue=t},onChange:function(){var t=this.type;if(this[t+"Disabled"])this.$emit("overlimit",t);else{var e="minus"===t?-this.step:+this.step,n=this.format(Ce(+this.currentValue,e));this.emitChange(n),this.$emit(t)}},onFocus:function(t){this.disableInput&&this.$refs.input?this.$refs.input.blur():this.$emit("focus",t)},onBlur:function(t){var e=this.format(t.target.value);t.target.value=e,this.emitChange(e),this.$emit("blur",t),cn()},longPressStep:function(){var t=this;this.longPressTimer=setTimeout((function(){t.onChange(),t.longPressStep(t.type)}),Od)},onTouchStart:function(){var t=this;this.longPress&&(clearTimeout(this.longPressTimer),this.isLongPress=!1,this.longPressTimer=setTimeout((function(){t.isLongPress=!0,t.onChange(),t.longPressStep()}),Td))},onTouchEnd:function(t){this.longPress&&(clearTimeout(this.longPressTimer),this.isLongPress&&q(t))},onMousedown:function(t){this.disableInput&&t.preventDefault()}},render:function(){var t=this,e=arguments[0],n=function(e){return{on:{click:function(n){n.preventDefault(),t.type=e,t.onChange()},touchstart:function(){t.type=e,t.onTouchStart()},touchend:t.onTouchEnd,touchcancel:t.onTouchEnd}}};return e("div",{class:Cd([this.theme])},[e("button",o()([{directives:[{name:"show",value:this.showMinus}],attrs:{type:"button"},style:this.buttonStyle,class:Cd("minus",{disabled:this.minusDisabled})},n("minus")])),e("input",{directives:[{name:"show",value:this.showInput}],ref:"input",attrs:{type:this.integer?"tel":"text",role:"spinbutton",disabled:this.disabled,readonly:this.disableInput,inputmode:this.integer?"numeric":"decimal",placeholder:this.placeholder,"aria-valuemax":this.max,"aria-valuemin":this.min,"aria-valuenow":this.currentValue},class:Cd("input"),domProps:{value:this.currentValue},style:this.inputStyle,on:{input:this.onInput,focus:this.onFocus,blur:this.onBlur,mousedown:this.onMousedown}}),e("button",o()([{directives:[{name:"show",value:this.showPlus}],attrs:{type:"button"},style:this.buttonStyle,class:Cd("plus",{disabled:this.plusDisabled})},n("plus")]))])}}),_d=D("sku-stepper"),Id=_d[0],Bd=_d[2],Ad=Vh.QUOTA_LIMIT,Pd=Vh.STOCK_LIMIT,Dd=Id({props:{stock:Number,skuEventBus:Object,skuStockNum:Number,selectedNum:Number,stepperTitle:String,disableStepperInput:Boolean,customStepperConfig:Object,hideQuotaText:Boolean,quota:{type:Number,default:0},quotaUsed:{type:Number,default:0},startSaleNum:{type:Number,default:1}},data:function(){return{currentNum:this.selectedNum,limitType:Pd}},watch:{currentNum:function(t){var e=parseInt(t,10);e>=this.stepperMinLimit&&e<=this.stepperLimit&&this.skuEventBus.$emit("sku:numChange",e)},stepperLimit:function(t){tthis.currentNum||t>this.stepperLimit)&&(this.currentNum=t),this.checkState(t,this.stepperLimit)}},computed:{stepperLimit:function(){var t,e=this.quota-this.quotaUsed;return this.quota>0&&e<=this.stock?(t=e<0?0:e,this.limitType=Ad):(t=this.stock,this.limitType=Pd),t},stepperMinLimit:function(){return this.startSaleNum<1?1:this.startSaleNum},quotaText:function(){var t=this.customStepperConfig,e=t.quotaText,n=t.hideQuotaText;if(n)return"";var i="";if(e)i=e;else{var r=[];this.startSaleNum>1&&r.push(Bd("quotaStart",this.startSaleNum)),this.quota>0&&r.push(Bd("quotaLimit",this.quota)),i=r.join(Bd("comma"))}return i}},created:function(){this.checkState(this.stepperMinLimit,this.stepperLimit)},methods:{setCurrentNum:function(t){this.currentNum=t,this.checkState(this.stepperMinLimit,this.stepperLimit)},onOverLimit:function(t){this.skuEventBus.$emit("sku:overLimit",{action:t,limitType:this.limitType,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum})},onChange:function(t){var e=parseInt(t,10),n=this.customStepperConfig.handleStepperChange;n&&n(e),this.$emit("change",e)},checkState:function(t,e){this.currentNume?this.currentNum=t:this.currentNum>e&&(this.currentNum=e),this.skuEventBus.$emit("sku:stepperState",{valid:t<=e,min:t,max:e,limitType:this.limitType,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum})}},render:function(){var t=this,e=arguments[0];return e("div",{class:"van-sku-stepper-stock"},[e("div",{class:"van-sku__stepper-title"},[this.stepperTitle||Bd("num")]),e(Ed,{attrs:{integer:!0,min:this.stepperMinLimit,max:this.stepperLimit,disableInput:this.disableStepperInput},class:"van-sku__stepper",on:{overlimit:this.onOverLimit,change:this.onChange},model:{value:t.currentNum,callback:function(e){t.currentNum=e}}}),!this.hideQuotaText&&this.quotaText&&e("span",{class:"van-sku__stepper-quota"},["(",this.quotaText,")"])])}});function Nd(t){var e=/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;return e.test(t.trim())}n(6229),n(7330),n(2062);function Rd(t){return Array.isArray(t)?t:[t]}function Ld(t,e){return new Promise((function(n){if("file"!==e){var i=new FileReader;i.onload=function(t){n(t.target.result)},"dataUrl"===e?i.readAsDataURL(t):"text"===e&&i.readAsText(t)}else n(null)}))}function Md(t,e){return Rd(t).some((function(t){return!!t&&(f(e)?e(t):t.size>e)}))}var jd=/\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;function zd(t){return jd.test(t)}function Fd(t){return!!t.isImage||(t.file&&t.file.type?0===t.file.type.indexOf("image"):t.url?zd(t.url):!!t.content&&0===t.content.indexOf("data:image"))}var Vd=D("uploader"),Hd=Vd[0],Ud=Vd[1],Wd=Hd({inheritAttrs:!1,mixins:[hi],model:{prop:"fileList"},props:{disabled:Boolean,readonly:Boolean,lazyLoad:Boolean,uploadText:String,afterRead:Function,beforeRead:Function,beforeDelete:Function,previewSize:[Number,String],previewOptions:Object,name:{type:[Number,String],default:""},accept:{type:String,default:"image/*"},fileList:{type:Array,default:function(){return[]}},maxSize:{type:[Number,String,Function],default:Number.MAX_VALUE},maxCount:{type:[Number,String],default:Number.MAX_VALUE},deletable:{type:Boolean,default:!0},showUpload:{type:Boolean,default:!0},previewImage:{type:Boolean,default:!0},previewFullImage:{type:Boolean,default:!0},imageFit:{type:String,default:"cover"},resultType:{type:String,default:"dataUrl"},uploadIcon:{type:String,default:"photograph"}},computed:{previewSizeWithUnit:function(){return Et(this.previewSize)},value:function(){return this.fileList}},created:function(){this.urls=[]},beforeDestroy:function(){this.urls.forEach((function(t){return URL.revokeObjectURL(t)}))},methods:{getDetail:function(t){return void 0===t&&(t=this.fileList.length),{name:this.name,index:t}},onChange:function(t){var e=this,n=t.target.files;if(!this.disabled&&n.length){if(n=1===n.length?n[0]:[].slice.call(n),this.beforeRead){var i=this.beforeRead(n,this.getDetail());if(!i)return void this.resetInput();if(v(i))return void i.then((function(t){t?e.readFile(t):e.readFile(n)})).catch(this.resetInput)}this.readFile(n)}},readFile:function(t){var e=this,n=Md(t,this.maxSize);if(Array.isArray(t)){var i=this.maxCount-this.fileList.length;t.length>i&&(t=t.slice(0,i)),Promise.all(t.map((function(t){return Ld(t,e.resultType)}))).then((function(i){var r=t.map((function(t,e){var n={file:t,status:"",message:""};return i[e]&&(n.content=i[e]),n}));e.onAfterRead(r,n)}))}else Ld(t,this.resultType).then((function(i){var r={file:t,status:"",message:""};i&&(r.content=i),e.onAfterRead(r,n)}))},onAfterRead:function(t,e){var n=this;this.resetInput();var i=t;if(e){var r=t;Array.isArray(t)?(r=[],i=[],t.forEach((function(t){t.file&&(Md(t.file,n.maxSize)?r.push(t):i.push(t))}))):i=null,this.$emit("oversize",r,this.getDetail())}var o=Array.isArray(i)?Boolean(i.length):Boolean(i);o&&(this.$emit("input",[].concat(this.fileList,Rd(i))),this.afterRead&&this.afterRead(i,this.getDetail()))},onDelete:function(t,e){var n,i=this,r=null!=(n=t.beforeDelete)?n:this.beforeDelete;if(r){var o=r(t,this.getDetail(e));if(!o)return;if(v(o))return void o.then((function(){i.deleteFile(t,e)})).catch(h)}this.deleteFile(t,e)},deleteFile:function(t,e){var n=this.fileList.slice(0);n.splice(e,1),this.$emit("input",n),this.$emit("delete",t,this.getDetail(e))},resetInput:function(){this.$refs.input&&(this.$refs.input.value="")},onClickUpload:function(t){this.$emit("click-upload",t)},onPreviewImage:function(t){var e=this;if(this.previewFullImage){var n=this.fileList.filter((function(t){return Fd(t)})),r=n.map((function(t){return t.file&&!t.url&&"failed"!==t.status&&(t.url=URL.createObjectURL(t.file),e.urls.push(t.url)),t.url}));this.imagePreview=uc(i({images:r,startPosition:n.indexOf(t),onClose:function(){e.$emit("close-preview")}},this.previewOptions))}},closeImagePreview:function(){this.imagePreview&&this.imagePreview.close()},chooseFile:function(){this.disabled||this.$refs.input&&this.$refs.input.click()},genPreviewMask:function(t){var e=this.$createElement,n=t.status,i=t.message;if("uploading"===n||"failed"===n){var r="failed"===n?e(qt,{attrs:{name:"close"},class:Ud("mask-icon")}):e(ie,{class:Ud("loading")}),o=d(i)&&""!==i;return e("div",{class:Ud("mask")},[r,o&&e("div",{class:Ud("mask-message")},[i])])}},genPreviewItem:function(t,e){var n,r,o,s=this,a=this.$createElement,c=null!=(n=t.deletable)?n:this.deletable,l="uploading"!==t.status&&c,u=l&&a("div",{class:Ud("preview-delete"),on:{click:function(n){n.stopPropagation(),s.onDelete(t,e)}}},[a(qt,{attrs:{name:"cross"},class:Ud("preview-delete-icon")})]),h=this.slots("preview-cover",i({index:e},t)),d=h&&a("div",{class:Ud("preview-cover")},[h]),f=null!=(r=t.previewSize)?r:this.previewSize,p=null!=(o=t.imageFit)?o:this.imageFit,v=Fd(t)?a(Pr,{attrs:{fit:p,src:t.content||t.url,width:f,height:f,lazyLoad:this.lazyLoad},class:Ud("preview-image"),on:{click:function(){s.onPreviewImage(t)}}},[d]):a("div",{class:Ud("file"),style:{width:this.previewSizeWithUnit,height:this.previewSizeWithUnit}},[a(qt,{class:Ud("file-icon"),attrs:{name:"description"}}),a("div",{class:[Ud("file-name"),"van-ellipsis"]},[t.file?t.file.name:t.url]),d]);return a("div",{class:Ud("preview"),on:{click:function(){s.$emit("click-preview",t,s.getDetail(e))}}},[v,this.genPreviewMask(t),u])},genPreviewList:function(){if(this.previewImage)return this.fileList.map(this.genPreviewItem)},genUpload:function(){var t=this.$createElement;if(!(this.fileList.length>=this.maxCount)){var e,n=this.slots(),r=this.readonly?null:t("input",{attrs:i({},this.$attrs,{type:"file",accept:this.accept,disabled:this.disabled}),ref:"input",class:Ud("input"),on:{change:this.onChange}});if(n)return t("div",{class:Ud("input-wrapper"),key:"input-wrapper",on:{click:this.onClickUpload}},[n,r]);if(this.previewSize){var o=this.previewSizeWithUnit;e={width:o,height:o}}return t("div",{directives:[{name:"show",value:this.showUpload}],class:Ud("upload",{readonly:this.readonly}),style:e,on:{click:this.onClickUpload}},[t(qt,{attrs:{name:this.uploadIcon},class:Ud("upload-icon")}),this.uploadText&&t("span",{class:Ud("upload-text")},[this.uploadText]),r])}}},render:function(){var t=arguments[0];return t("div",{class:Ud()},[t("div",{class:Ud("wrapper",{disabled:this.disabled})},[this.genPreviewList(),this.genUpload()])])}}),qd=D("sku-img-uploader"),Kd=qd[0],Yd=qd[2],Xd=Kd({props:{value:String,uploadImg:Function,customUpload:Function,maxSize:{type:Number,default:6}},data:function(){return{fileList:[]}},watch:{value:function(t){this.fileList=t?[{url:t,isImage:!0}]:[]}},methods:{afterReadFile:function(t){var e=this;t.status="uploading",t.message=Yd("uploading"),this.uploadImg(t.file,t.content).then((function(n){t.status="done",e.$emit("input",n)})).catch((function(){t.status="failed",t.message=Yd("fail")}))},onOversize:function(){this.$toast(Yd("oversize",this.maxSize))},onDelete:function(){this.$emit("input","")},onClickUpload:function(){var t=this;this.customUpload&&this.customUpload().then((function(e){t.fileList.push({url:e}),t.$emit("input",e)}))}},render:function(){var t=this,e=arguments[0];return e(Wd,{attrs:{maxCount:1,readonly:!!this.customUpload,maxSize:1024*this.maxSize*1024,afterRead:this.afterReadFile},on:{oversize:this.onOversize,delete:this.onDelete,"click-upload":this.onClickUpload},model:{value:t.fileList,callback:function(e){t.fileList=e}}})}});function Zd(t){return t?new Date(t.replace(/-/g,"/")):null}function Gd(t,e){if(void 0===e&&(e="date"),!t)return"";var n=t.getFullYear(),i=t.getMonth()+1,r=t.getDate(),o=n+"-"+S(i)+"-"+S(r);if("datetime"===e){var s=t.getHours(),a=t.getMinutes();o+=" "+S(s)+":"+S(a)}return o}var Jd=D("sku-datetime-field"),Qd=Jd[0],tf=Jd[2],ef=Qd({props:{value:String,label:String,required:Boolean,placeholder:String,type:{type:String,default:"date"}},data:function(){return{showDatePicker:!1,currentDate:"time"===this.type?"":new Date,minDate:new Date((new Date).getFullYear()-60,0,1)}},watch:{value:function(t){switch(this.type){case"time":this.currentDate=t;break;case"date":case"datetime":this.currentDate=Zd(t)||new Date;break}}},computed:{title:function(){return tf("title."+this.type)}},methods:{onClick:function(){this.showDatePicker=!0},onConfirm:function(t){var e=t;"time"!==this.type&&(e=Gd(t,this.type)),this.$emit("input",e),this.showDatePicker=!1},onCancel:function(){this.showDatePicker=!1},formatter:function(t,e){var n=tf("format."+t);return""+e+n}},render:function(){var t=this,e=arguments[0];return e(dn,{attrs:{readonly:!0,"is-link":!0,center:!0,value:this.value,label:this.label,required:this.required,placeholder:this.placeholder},on:{click:this.onClick}},[e(Zt,{attrs:{round:!0,position:"bottom",getContainer:"body"},slot:"extra",model:{value:t.showDatePicker,callback:function(e){t.showDatePicker=e}}},[e(ca,{attrs:{type:this.type,title:this.title,value:this.currentDate,minDate:this.minDate,formatter:this.formatter},on:{cancel:this.onCancel,confirm:this.onConfirm}})])])}}),nf=D("sku-messages"),rf=nf[0],of=nf[1],sf=nf[2],af=rf({props:{messageConfig:Object,goodsId:[Number,String],messages:{type:Array,default:function(){return[]}}},data:function(){return{messageValues:this.resetMessageValues(this.messages)}},watch:{messages:function(t){this.messageValues=this.resetMessageValues(t)}},methods:{resetMessageValues:function(t){var e=this.messageConfig,n=e.initialMessages,i=void 0===n?{}:n;return(t||[]).map((function(t){return{value:i[t.name]||""}}))},getType:function(t){return 1===+t.multiple?"textarea":"id_no"===t.type?"text":t.datetime>0?"datetime":t.type},getMessages:function(){var t={};return this.messageValues.forEach((function(e,n){t["message_"+n]=e.value})),t},getCartMessages:function(){var t=this,e={};return this.messageValues.forEach((function(n,i){var r=t.messages[i];e[r.name]=n.value})),e},getPlaceholder:function(t){var e=1===+t.multiple?"textarea":t.type,n=this.messageConfig.placeholderMap||{};return t.placeholder||n[e]||sf("placeholder."+e)},validateMessages:function(){for(var t=this.messageValues,e=0;e18))return sf("invalid.id_no")}}},getFormatter:function(t){return function(e){return"mobile"===t.type||"tel"===t.type?e.replace(/[^\d.]/g,""):e}},getExtraDesc:function(t){var e=this.$createElement,n=t.extraDesc;if(n)return e("div",{class:of("extra-message")},[n])},genMessage:function(t,e){var n=this,i=this.$createElement;if("image"===t.type)return i(rn,{key:this.goodsId+"-"+e,attrs:{title:t.name,required:"1"===String(t.required),valueClass:of("image-cell-value")},class:of("image-cell")},[i(Xd,{attrs:{maxSize:this.messageConfig.uploadMaxSize,uploadImg:this.messageConfig.uploadImg,customUpload:this.messageConfig.customUpload},model:{value:n.messageValues[e].value,callback:function(t){n.$set(n.messageValues[e],"value",t)}}}),i("div",{class:of("image-cell-label")},[sf("imageLabel")])]);var r=["date","time"].indexOf(t.type)>-1;return r?i(ef,{attrs:{label:t.name,required:"1"===String(t.required),placeholder:this.getPlaceholder(t),type:this.getType(t)},key:this.goodsId+"-"+e,model:{value:n.messageValues[e].value,callback:function(t){n.$set(n.messageValues[e],"value",t)}}}):i("div",{class:of("cell-block")},[i(dn,{attrs:{maxlength:"200",center:!t.multiple,label:t.name,required:"1"===String(t.required),placeholder:this.getPlaceholder(t),type:this.getType(t),formatter:this.getFormatter(t),border:!1},key:this.goodsId+"-"+e,model:{value:n.messageValues[e].value,callback:function(t){n.$set(n.messageValues[e],"value",t)}}}),this.getExtraDesc(t)])}},render:function(){var t=arguments[0];return t("div",{class:of()},[this.messages.map(this.genMessage)])}}),cf=D("sku-actions"),lf=cf[0],uf=cf[1],hf=cf[2];function df(t,e,n,i){var r=function(t){return function(){e.skuEventBus.$emit(t)}};return t("div",o()([{class:uf()},L(i)]),[e.showAddCartBtn&&t(Nn,{attrs:{size:"large",type:"warning",text:e.addCartText||hf("addCart")},on:{click:r("sku:addCart")}}),t(Nn,{attrs:{size:"large",type:"danger",text:e.buyText||hf("buy")},on:{click:r("sku:buy")}})])}df.props={buyText:String,addCartText:String,skuEventBus:Object,showAddCartBtn:Boolean};var ff=lf(df),pf=D("sku"),vf=pf[0],mf=pf[1],gf=pf[2],yf=Vh.QUOTA_LIMIT,bf=vf({props:{sku:Object,goods:Object,value:Boolean,buyText:String,goodsId:[Number,String],priceTag:String,lazyLoad:Boolean,hideStock:Boolean,properties:Array,addCartText:String,stepperTitle:String,getContainer:[String,Function],hideQuotaText:Boolean,hideSelectedText:Boolean,resetStepperOnHide:Boolean,customSkuValidator:Function,disableStepperInput:Boolean,resetSelectedSkuOnHide:Boolean,quota:{type:Number,default:0},quotaUsed:{type:Number,default:0},startSaleNum:{type:Number,default:1},initialSku:{type:Object,default:function(){return{}}},stockThreshold:{type:Number,default:50},showSoldoutSku:{type:Boolean,default:!0},showAddCartBtn:{type:Boolean,default:!0},disableSoldoutSku:{type:Boolean,default:!0},customStepperConfig:{type:Object,default:function(){return{}}},showHeaderImage:{type:Boolean,default:!0},previewOnClickImage:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},bodyOffsetTop:{type:Number,default:200},messageConfig:{type:Object,default:function(){return{initialMessages:{},placeholderMap:{},uploadImg:function(){return Promise.resolve()},uploadMaxSize:5}}}},data:function(){return{selectedSku:{},selectedProp:{},selectedNum:1,show:this.value}},watch:{show:function(t){this.$emit("input",t),t||(this.$emit("sku-close",{selectedSkuValues:this.selectedSkuValues,selectedNum:this.selectedNum,selectedSkuComb:this.selectedSkuComb}),this.resetStepperOnHide&&this.resetStepper(),this.resetSelectedSkuOnHide&&this.resetSelectedSku())},value:function(t){this.show=t},skuTree:"resetSelectedSku",initialSku:function(){this.resetStepper(),this.resetSelectedSku()}},computed:{skuGroupClass:function(){return["van-sku-group-container",{"van-sku-group-container--hide-soldout":!this.showSoldoutSku}]},bodyStyle:function(){if(!this.$isServer){var t=window.innerHeight-this.bodyOffsetTop;return{maxHeight:t+"px"}}},isSkuCombSelected:function(){var t=this;return!(this.hasSku&&!Kh(this.skuTree,this.selectedSku))&&!this.propList.filter((function(t){return!1!==t.is_necessary})).some((function(e){return 0===(t.selectedProp[e.k_id]||[]).length}))},isSkuEmpty:function(){return 0===Object.keys(this.sku).length},hasSku:function(){return!this.sku.none_sku},hasSkuOrAttr:function(){return this.hasSku||this.propList.length>0},selectedSkuComb:function(){var t=null;return this.isSkuCombSelected&&(t=this.hasSku?Yh(this.skuList,this.selectedSku):{id:this.sku.collection_id,price:Math.round(100*this.sku.price),stock_num:this.sku.stock_num},t&&(t.properties=Jh(this.propList,this.selectedProp),t.property_price=this.selectedPropValues.reduce((function(t,e){return t+(e.price||0)}),0))),t},selectedSkuValues:function(){return Xh(this.skuTree,this.selectedSku)},selectedPropValues:function(){return Gh(this.propList,this.selectedProp)},price:function(){return this.selectedSkuComb?((this.selectedSkuComb.price+this.selectedSkuComb.property_price)/100).toFixed(2):this.sku.price},originPrice:function(){return this.selectedSkuComb&&this.selectedSkuComb.origin_price?((this.selectedSkuComb.origin_price+this.selectedSkuComb.property_price)/100).toFixed(2):this.sku.origin_price},skuTree:function(){return this.sku.tree||[]},skuList:function(){return this.sku.list||[]},propList:function(){return this.properties||[]},imageList:function(){var t=[this.goods.picture];return this.skuTree.length>0&&this.skuTree.forEach((function(e){e.v&&e.v.forEach((function(e){var n=e.previewImgUrl||e.imgUrl||e.img_url;n&&-1===t.indexOf(n)&&t.push(n)}))})),t},stock:function(){var t=this.customStepperConfig.stockNum;return void 0!==t?t:this.selectedSkuComb?this.selectedSkuComb.stock_num:this.sku.stock_num},stockText:function(){var t=this.$createElement,e=this.customStepperConfig.stockFormatter;return e?e(this.stock):[gf("stock")+" ",t("span",{class:mf("stock-num",{highlight:this.stock0&&this.$nextTick((function(){t.$emit("sku-selected",{skuValue:e[e.length-1],selectedSku:t.selectedSku,selectedSkuComb:t.selectedSkuComb})})),this.selectedProp={};var n=this.initialSku.selectedProp,i=void 0===n?{}:n;this.propList.forEach((function(e){i[e.k_id]&&(t.selectedProp[e.k_id]=i[e.k_id])})),g(this.selectedProp)&&this.propList.forEach((function(e){var n;if((null==e||null==(n=e.v)?void 0:n.length)>0){var i=e.v,r=e.k_id,o=i.some((function(t){return 0!==+t.price}));if(!o){var s=i.find((function(t){return 0!==t.text_status}));s&&(t.selectedProp[r]=[s.id])}}}));var r=this.selectedPropValues;r.length>0&&this.$emit("sku-prop-selected",{propValue:r[r.length-1],selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb}),this.$emit("sku-reset",{selectedSku:this.selectedSku,selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb}),this.centerInitialSku()},getSkuMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.getMessages():{}},getSkuCartMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.getCartMessages():{}},validateSkuMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.validateMessages():""},validateSku:function(){if(0===this.selectedNum)return gf("unavailable");if(this.isSkuCombSelected)return this.validateSkuMessages();if(this.customSkuValidator){var t=this.customSkuValidator(this);if(t)return t}return gf("selectSku")},onSelect:function(t){var e,n;this.selectedSku=this.selectedSku[t.skuKeyStr]===t.id?i({},this.selectedSku,(e={},e[t.skuKeyStr]=Hh,e)):i({},this.selectedSku,(n={},n[t.skuKeyStr]=t.id,n)),this.$emit("sku-selected",{skuValue:t,selectedSku:this.selectedSku,selectedSkuComb:this.selectedSkuComb})},onPropSelect:function(t){var e,n=this.selectedProp[t.skuKeyStr]||[],r=n.indexOf(t.id);r>-1?n.splice(r,1):t.multiple?n.push(t.id):n.splice(0,1,t.id),this.selectedProp=i({},this.selectedProp,(e={},e[t.skuKeyStr]=n,e)),this.$emit("sku-prop-selected",{propValue:t,selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb})},onNumChange:function(t){this.selectedNum=t},onPreviewImage:function(t){var e=this,n=this.imageList,r=0,o=n[0];t&&t.imgUrl&&(this.imageList.some((function(e,n){return e===t.imgUrl&&(r=n,!0)})),o=t.imgUrl);var s=i({},t,{index:r,imageList:this.imageList,indexImage:o});this.$emit("open-preview",s),this.previewOnClickImage&&uc({images:this.imageList,startPosition:r,onClose:function(){e.$emit("close-preview",s)}})},onOverLimit:function(t){var e=t.action,n=t.limitType,i=t.quota,r=t.quotaUsed,o=this.customStepperConfig.handleOverLimit;o?o(t):"minus"===e?this.startSaleNum>1?In(gf("minusStartTip",this.startSaleNum)):In(gf("minusTip")):"plus"===e&&In(n===yf?r>0?gf("quotaUsedTip",i,r):gf("quotaTip",i):gf("soldout"))},onStepperState:function(t){this.stepperError=t.valid?null:i({},t,{action:"plus"})},onAddCart:function(){this.onBuyOrAddCart("add-cart")},onBuy:function(){this.onBuyOrAddCart("buy-clicked")},onBuyOrAddCart:function(t){if(this.stepperError)return this.onOverLimit(this.stepperError);var e=this.validateSku();e?In(e):this.$emit(t,this.getSkuData())},getSkuData:function(){return{goodsId:this.goodsId,messages:this.getSkuMessages(),selectedNum:this.selectedNum,cartMessages:this.getSkuCartMessages(),selectedSkuComb:this.selectedSkuComb}},onOpened:function(){this.centerInitialSku()},centerInitialSku:function(){var t=this;(this.$refs.skuRows||[]).forEach((function(e){var n=e.skuRow||{},i=n.k_s;e.centerItem(t.initialSku[i])}))}},render:function(){var t=this,e=arguments[0];if(!this.isSkuEmpty){var n=this.sku,i=this.skuList,r=this.goods,o=this.price,s=this.lazyLoad,a=this.originPrice,c=this.skuEventBus,l=this.selectedSku,u=this.selectedProp,h=this.selectedNum,d=this.stepperTitle,f=this.selectedSkuComb,p=this.showHeaderImage,v=this.disableSoldoutSku,m={price:o,originPrice:a,selectedNum:h,skuEventBus:c,selectedSku:l,selectedSkuComb:f},g=function(e){return t.slots(e,m)},y=g("sku-header")||e(od,{attrs:{sku:n,goods:r,skuEventBus:c,selectedSku:l,showHeaderImage:p}},[e("template",{slot:"sku-header-image-extra"},[g("sku-header-image-extra")]),g("sku-header-price")||e("div",{class:"van-sku__goods-price"},[e("span",{class:"van-sku__price-symbol"},["¥"]),e("span",{class:"van-sku__price-num"},[o]),this.priceTag&&e("span",{class:"van-sku__price-tag"},[this.priceTag])]),g("sku-header-origin-price")||a&&e(ud,[gf("originPrice")," ¥",a]),!this.hideStock&&e(ud,[e("span",{class:"van-sku__stock"},[this.stockText])]),this.hasSkuOrAttr&&!this.hideSelectedText&&e(ud,[this.selectedText]),g("sku-header-extra")]),b=g("sku-group")||this.hasSkuOrAttr&&e("div",{class:this.skuGroupClass},[this.skuTree.map((function(t){return e(vd,{attrs:{skuRow:t},ref:"skuRows",refInFor:!0},[t.v.map((function(n){return e(yd,{attrs:{skuList:i,lazyLoad:s,skuValue:n,skuKeyStr:t.k_s,selectedSku:l,skuEventBus:c,disableSoldoutSku:v,largeImageMode:t.largeImageMode}})}))])})),this.propList.map((function(t){return e(vd,{attrs:{skuRow:t}},[t.v.map((function(n){return e(wd,{attrs:{skuValue:n,skuKeyStr:t.k_id+"",selectedProp:u,skuEventBus:c,multiple:t.is_multiple,disabled:0===n.text_status}})}))])}))]),S=g("sku-stepper")||e(Dd,{ref:"skuStepper",attrs:{stock:this.stock,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum,skuEventBus:c,selectedNum:h,stepperTitle:d,skuStockNum:n.stock_num,disableStepperInput:this.disableStepperInput,customStepperConfig:this.customStepperConfig,hideQuotaText:this.hideQuotaText},on:{change:function(e){t.$emit("stepper-change",e)}}}),w=g("sku-messages")||e(af,{ref:"skuMessages",attrs:{goodsId:this.goodsId,messageConfig:this.messageConfig,messages:n.messages}}),x=g("sku-actions")||e(ff,{attrs:{buyText:this.buyText,skuEventBus:c,addCartText:this.addCartText,showAddCartBtn:this.showAddCartBtn}});return e(Zt,{attrs:{round:!0,closeable:!0,position:"bottom",getContainer:this.getContainer,closeOnClickOverlay:this.closeOnClickOverlay,safeAreaInsetBottom:this.safeAreaInsetBottom},class:"van-sku-container",on:{opened:this.onOpened},model:{value:t.show,callback:function(e){t.show=e}}},[y,e("div",{class:"van-sku-body",style:this.bodyStyle},[g("sku-body-top"),b,g("extra-sku-group"),S,w]),g("sku-actions-top"),x])}}});A.add(Fh),bf.SkuActions=ff,bf.SkuHeader=od,bf.SkuHeaderItem=ud,bf.SkuMessages=af,bf.SkuStepper=Dd,bf.SkuRow=vd,bf.SkuRowItem=yd,bf.SkuRowPropItem=wd,bf.skuHelper=Qh,bf.skuConstants=Uh;var Sf=bf,wf=D("slider"),xf=wf[0],kf=wf[1],Cf=function(t,e){return JSON.stringify(t)===JSON.stringify(e)},Tf=xf({mixins:[gt,hi],props:{disabled:Boolean,vertical:Boolean,range:Boolean,barHeight:[Number,String],buttonSize:[Number,String],activeColor:String,inactiveColor:String,min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1},value:{type:[Number,Array],default:0}},data:function(){return{dragStatus:""}},computed:{scope:function(){return this.max-this.min},buttonStyle:function(){if(this.buttonSize){var t=Et(this.buttonSize);return{width:t,height:t}}}},created:function(){this.updateValue(this.value)},mounted:function(){this.range?(this.bindTouchEvent(this.$refs.wrapper0),this.bindTouchEvent(this.$refs.wrapper1)):this.bindTouchEvent(this.$refs.wrapper)},methods:{onTouchStart:function(t){this.disabled||(this.touchStart(t),this.currentValue=this.value,this.range?this.startValue=this.value.map(this.format):this.startValue=this.format(this.value),this.dragStatus="start")},onTouchMove:function(t){if(!this.disabled){"start"===this.dragStatus&&this.$emit("drag-start"),q(t,!0),this.touchMove(t),this.dragStatus="draging";var e=this.$el.getBoundingClientRect(),n=this.vertical?this.deltaY:this.deltaX,i=this.vertical?e.height:e.width,r=n/i*this.scope;this.range?this.currentValue[this.index]=this.startValue[this.index]+r:this.currentValue=this.startValue+r,this.updateValue(this.currentValue)}},onTouchEnd:function(){this.disabled||("draging"===this.dragStatus&&(this.updateValue(this.currentValue,!0),this.$emit("drag-end")),this.dragStatus="")},onClick:function(t){if(t.stopPropagation(),!this.disabled){var e=this.$el.getBoundingClientRect(),n=this.vertical?t.clientY-e.top:t.clientX-e.left,i=this.vertical?e.height:e.width,r=+this.min+n/i*this.scope;if(this.range){var o=this.value,s=o[0],a=o[1],c=(s+a)/2;r<=c?s=r:a=r,r=[s,a]}this.startValue=this.value,this.updateValue(r,!0)}},handleOverlap:function(t){return t[0]>t[1]?(t=Se(t),t.reverse()):t},updateValue:function(t,e){t=this.range?this.handleOverlap(t).map(this.format):this.format(t),Cf(t,this.value)||this.$emit("input",t),e&&!Cf(t,this.startValue)&&this.$emit("change",t)},format:function(t){var e=+this.min,n=+this.max,i=+this.step;t=we(t,e,n);var r=Math.round((t-e)/i)*i;return Ce(e,r)}},render:function(){var t,e,n=this,i=arguments[0],r=this.vertical,o=r?"height":"width",s=r?"width":"height",a=(t={background:this.inactiveColor},t[s]=Et(this.barHeight),t),c=function(){var t=n.value,e=n.min,i=n.range,r=n.scope;return i?100*(t[1]-t[0])/r+"%":100*(t-e)/r+"%"},l=function(){var t=n.value,e=n.min,i=n.range,r=n.scope;return i?100*(t[0]-e)/r+"%":null},u=(e={},e[o]=c(),e.left=this.vertical?null:l(),e.top=this.vertical?l():null,e.background=this.activeColor,e);this.dragStatus&&(u.transition="none");var h=function(t){var e=["left","right"],r="number"===typeof t,o=r?n.value[t]:n.value,s=function(){return r?"button-wrapper-"+e[t]:"button-wrapper"},a=function(){return r?"wrapper"+t:"wrapper"},c=function(){if(r){var e=n.slots(0===t?"left-button":"right-button",{value:o});if(e)return e}return n.slots("button")?n.slots("button"):i("div",{class:kf("button"),style:n.buttonStyle})};return i("div",{ref:a(),attrs:{role:"slider",tabindex:n.disabled?-1:0,"aria-valuemin":n.min,"aria-valuenow":n.value,"aria-valuemax":n.max,"aria-orientation":n.vertical?"vertical":"horizontal"},class:kf(s()),on:{touchstart:function(){r&&(n.index=t)},click:function(t){return t.stopPropagation()}}},[c()])};return i("div",{style:a,class:kf({disabled:this.disabled,vertical:r}),on:{click:this.onClick}},[i("div",{class:kf("bar"),style:u},[this.range?[h(0),h(1)]:h()])])}}),Of=D("step"),$f=Of[0],Ef=Of[1],_f=$f({mixins:[Mn("vanSteps")],computed:{status:function(){return this.index0?"left":"right"),this.dragging=!1,setTimeout((function(){t.lockClick=!1}),0))},toggle:function(t){var e=Math.abs(this.offset),n=this.opened?1-Hf:Hf,i=this.computedLeftWidth,r=this.computedRightWidth;r&&"right"===t&&e>r*n?this.open("right"):i&&"left"===t&&e>i*n?this.open("left"):this.close()},onClick:function(t){void 0===t&&(t="outside"),this.$emit("click",t),this.opened&&!this.lockClick&&(this.beforeClose?this.beforeClose({position:t,name:this.name,instance:this}):this.onClose?this.onClose(t,this,{name:this.name}):this.close(t))},getClickHandler:function(t,e){var n=this;return function(i){e&&i.stopPropagation(),n.onClick(t)}},genLeftPart:function(){var t=this.$createElement,e=this.slots("left");if(e)return t("div",{ref:"left",class:Vf("left"),on:{click:this.getClickHandler("left",!0)}},[e])},genRightPart:function(){var t=this.$createElement,e=this.slots("right");if(e)return t("div",{ref:"right",class:Vf("right"),on:{click:this.getClickHandler("right",!0)}},[e])}},render:function(){var t=arguments[0],e={transform:"translate3d("+this.offset+"px, 0, 0)",transitionDuration:this.dragging?"0s":".6s"};return t("div",{class:Vf(),on:{click:this.getClickHandler("cell")}},[t("div",{class:Vf("wrapper"),style:e},[this.genLeftPart(),this.slots(),this.genRightPart()])])}}),Wf=D("switch-cell"),qf=Wf[0],Kf=Wf[1];function Yf(t,e,n,r){return t(rn,o()([{attrs:{center:!0,size:e.cellSize,title:e.title,border:e.border},class:Kf([e.cellSize])},L(r)]),[t(vi,{props:i({},e),on:i({},r.listeners)})])}Yf.props=i({},ui,{title:String,cellSize:String,border:{type:Boolean,default:!0},size:{type:String,default:"24px"}});var Xf=qf(Yf),Zf=D("tabbar"),Gf=Zf[0],Jf=Zf[1],Qf=Gf({mixins:[jn("vanTabbar")],props:{route:Boolean,zIndex:[Number,String],placeholder:Boolean,activeColor:String,beforeChange:Function,inactiveColor:String,value:{type:[Number,String],default:0},border:{type:Boolean,default:!0},fixed:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:null}},data:function(){return{height:null}},computed:{fit:function(){return null!==this.safeAreaInsetBottom?this.safeAreaInsetBottom:this.fixed}},watch:{value:"setActiveItem",children:"setActiveItem"},mounted:function(){var t=this;if(this.placeholder&&this.fixed){var e=function(){t.height=t.$refs.tabbar.getBoundingClientRect().height};e(),setTimeout(e,100)}},methods:{setActiveItem:function(){var t=this;this.children.forEach((function(e,n){e.nameMatched=e.name===t.value||n===t.value}))},triggerChange:function(t,e){var n=this;qr({interceptor:this.beforeChange,args:[t],done:function(){n.$emit("input",t),n.$emit("change",t),e()}})},genTabbar:function(){var t,e=this.$createElement;return e("div",{ref:"tabbar",style:{zIndex:this.zIndex},class:[(t={},t[ye]=this.border,t),Jf({unfit:!this.fit,fixed:this.fixed})]},[this.slots()])}},render:function(){var t=arguments[0];return this.placeholder&&this.fixed?t("div",{class:Jf("placeholder"),style:{height:this.height+"px"}},[this.genTabbar()]):this.genTabbar()}}),tp=D("tabbar-item"),ep=tp[0],np=tp[1],ip=ep({mixins:[Mn("vanTabbar")],props:i({},Ge,{dot:Boolean,icon:String,name:[Number,String],info:[Number,String],badge:[Number,String],iconPrefix:String}),data:function(){return{nameMatched:!1}},computed:{active:function(){var t=this.parent.route;if(t&&"$route"in this){var e=this.to,n=this.$route,i=p(e)?e:{path:e};return!!n.matched.find((function(t){var e=""===t.path?"/":t.path,n=i.path===e,r=d(i.name)&&i.name===t.name;return n||r}))}return this.nameMatched}},methods:{onClick:function(t){var e=this;this.active||this.parent.triggerChange(this.name||this.index,(function(){Xe(e.$router,e)})),this.$emit("click",t)},genIcon:function(){var t=this.$createElement,e=this.slots("icon",{active:this.active});return e||(this.icon?t(qt,{attrs:{name:this.icon,classPrefix:this.iconPrefix}}):void 0)}},render:function(){var t,e=arguments[0],n=this.active,i=this.parent[n?"activeColor":"inactiveColor"];return e("div",{class:np({active:n}),style:{color:i},on:{click:this.onClick}},[e("div",{class:np("icon")},[this.genIcon(),e(Mt,{attrs:{dot:this.dot,info:null!=(t=this.badge)?t:this.info}})]),e("div",{class:np("text")},[this.slots("default",{active:n})])])}}),rp=D("tree-select"),op=rp[0],sp=rp[1];function ap(t,e,n,i){var r=e.items,s=e.height,a=e.activeId,c=e.selectedIcon,l=e.mainActiveIndex;var u=r[+l]||{},h=u.children||[],d=Array.isArray(a);function f(t){return d?-1!==a.indexOf(t):a===t}var p=r.map((function(e){var n;return t(Ph,{attrs:{dot:e.dot,info:null!=(n=e.badge)?n:e.info,title:e.text,disabled:e.disabled},class:[sp("nav-item"),e.className]})}));function v(){return n.content?n.content():h.map((function(n){return t("div",{key:n.id,class:["van-ellipsis",sp("item",{active:f(n.id),disabled:n.disabled})],on:{click:function(){if(!n.disabled){var t=n.id;if(d){t=a.slice();var r=t.indexOf(n.id);-1!==r?t.splice(r,1):t.length=0&&(e=t.slice(i),t=t.slice(0,i));var r=t.indexOf("?");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{path:t,query:n,hash:e}}function _(t){return t.replace(/\/(?:\s*\/)+/g,"/")}var I=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},B=Z,A=L,P=M,D=F,N=X,R=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function L(t,e){var n,i=[],r=0,o=0,s="",a=e&&e.delimiter||"/";while(null!=(n=R.exec(t))){var c=n[0],l=n[1],u=n.index;if(s+=t.slice(o,u),o=u+c.length,l)s+=l[1];else{var h=t[o],d=n[2],f=n[3],p=n[4],v=n[5],m=n[6],g=n[7];s&&(i.push(s),s="");var y=null!=d&&null!=h&&h!==d,b="+"===m||"*"===m,S="?"===m||"*"===m,w=n[2]||a,x=p||v;i.push({name:f||r++,prefix:d||"",delimiter:w,optional:S,repeat:b,partial:y,asterisk:!!g,pattern:x?H(x):g?".*":"[^"+V(w)+"]+?"})}}return o1||!C.length)return 0===C.length?t():t("span",{},C)}if("a"===this.tag)k.on=x,k.attrs={href:c,"aria-current":y};else{var T=st(this.$slots.default);if(T){T.isStatic=!1;var O=T.data=i({},T.data);for(var $ in O.on=O.on||{},O.on){var E=O.on[$];$ in x&&(O.on[$]=Array.isArray(E)?E:[E])}for(var _ in x)_ in O.on?O.on[_].push(x[_]):O.on[_]=S;var I=T.data.attrs=i({},T.data.attrs);I.href=c,I["aria-current"]=y}else k.on=x}return t(this.tag,k,this.$slots.default)}};function ot(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function st(t){if(t)for(var e,n=0;n-1&&(a.params[h]=n.params[h]);return a.path=J(l.path,a.params,'named route "'+c+'"'),d(l,a,s)}if(a.path){a.params={};for(var f=0;f-1}function qt(t,e){return Wt(t)&&t._isRouter&&(null==e||t.type===e)}function Kt(t,e,n){var i=function(r){r>=t.length?n():t[r]?e(t[r],(function(){i(r+1)})):i(r+1)};i(0)}function Yt(t){return function(e,n,i){var r=!1,o=0,s=null;Xt(t,(function(t,e,n,a){if("function"===typeof t&&void 0===t.cid){r=!0,o++;var c,l=Qt((function(e){Jt(e)&&(e=e.default),t.resolved="function"===typeof e?e:tt.extend(e),n.components[a]=e,o--,o<=0&&i()})),u=Qt((function(t){var e="Failed to resolve async component "+a+": "+t;s||(s=Wt(t)?t:new Error(e),i(s))}));try{c=t(l,u)}catch(d){u(d)}if(c)if("function"===typeof c.then)c.then(l,u);else{var h=c.component;h&&"function"===typeof h.then&&h.then(l,u)}}})),r||i()}}function Xt(t,e){return Zt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Zt(t){return Array.prototype.concat.apply([],t)}var Gt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Jt(t){return t.__esModule||Gt&&"Module"===t[Symbol.toStringTag]}function Qt(t){var e=!1;return function(){var n=[],i=arguments.length;while(i--)n[i]=arguments[i];if(!e)return e=!0,t.apply(this,n)}}var te=function(t,e){this.router=t,this.base=ee(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function ee(t){if(!t)if(ct){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function ne(t,e){var n,i=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,i=Dt&&n;i&&this.listeners.push(xt());var r=function(){var n=t.current,r=he(t.base);t.current===m&&r===t._startLocation||t.transitionTo(r,(function(t){i&&kt(e,t,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var i=this,r=this,o=r.current;this.transitionTo(t,(function(t){Nt(_(i.base+t.fullPath)),kt(i.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var i=this,r=this,o=r.current;this.transitionTo(t,(function(t){Rt(_(i.base+t.fullPath)),kt(i.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(he(this.base)!==this.current.fullPath){var e=_(this.base+this.current.fullPath);t?Nt(e):Rt(e)}},e.prototype.getCurrentLocation=function(){return he(this.base)},e}(te);function he(t){var e=window.location.pathname,n=e.toLowerCase(),i=t.toLowerCase();return!t||n!==i&&0!==n.indexOf(_(i+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var de=function(t){function e(e,n,i){t.call(this,e,n),i&&fe(this.base)||pe()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,n=e.options.scrollBehavior,i=Dt&&n;i&&this.listeners.push(xt());var r=function(){var e=t.current;pe()&&t.transitionTo(ve(),(function(n){i&&kt(t.router,n,e,!0),Dt||ye(n.fullPath)}))},o=Dt?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var i=this,r=this,o=r.current;this.transitionTo(t,(function(t){ge(t.fullPath),kt(i.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var i=this,r=this,o=r.current;this.transitionTo(t,(function(t){ye(t.fullPath),kt(i.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;ve()!==e&&(t?ge(e):ye(e))},e.prototype.getCurrentLocation=function(){return ve()},e}(te);function fe(t){var e=he(t);if(!/^\/#/.test(e))return window.location.replace(_(t+"/#"+e)),!0}function pe(){var t=ve();return"/"===t.charAt(0)||(ye("/"+t),!1)}function ve(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function me(t){var e=window.location.href,n=e.indexOf("#"),i=n>=0?e.slice(0,n):e;return i+"#"+t}function ge(t){Dt?Nt(me(t)):window.location.hash=t}function ye(t){Dt?Rt(me(t)):window.location.replace(me(t))}var be=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var i=this;this.transitionTo(t,(function(t){i.stack=i.stack.slice(0,i.index+1).concat(t),i.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var i=this;this.transitionTo(t,(function(t){i.stack=i.stack.slice(0,i.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var i=this.stack[n];this.confirmTransition(i,(function(){var t=e.current;e.index=n,e.updateRoute(i),e.router.afterHooks.forEach((function(e){e&&e(i,t)}))}),(function(t){qt(t,Lt.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(te),Se=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ft(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Dt&&!1!==t.fallback,this.fallback&&(e="hash"),ct||(e="abstract"),this.mode=e,e){case"history":this.history=new ue(this,t.base);break;case"hash":this.history=new de(this,t.base,this.fallback);break;case"abstract":this.history=new be(this,t.base);break;default:0}},we={currentRoute:{configurable:!0}};Se.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},we.currentRoute.get=function(){return this.history&&this.history.current},Se.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof ue||n instanceof de){var i=function(t){var i=n.current,r=e.options.scrollBehavior,o=Dt&&r;o&&"fullPath"in t&&kt(e,t,i,!1)},r=function(t){n.setupListeners(),i(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Se.prototype.beforeEach=function(t){return ke(this.beforeHooks,t)},Se.prototype.beforeResolve=function(t){return ke(this.resolveHooks,t)},Se.prototype.afterEach=function(t){return ke(this.afterHooks,t)},Se.prototype.onReady=function(t,e){this.history.onReady(t,e)},Se.prototype.onError=function(t){this.history.onError(t)},Se.prototype.push=function(t,e,n){var i=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){i.history.push(t,e,n)}));this.history.push(t,e,n)},Se.prototype.replace=function(t,e,n){var i=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){i.history.replace(t,e,n)}));this.history.replace(t,e,n)},Se.prototype.go=function(t){this.history.go(t)},Se.prototype.back=function(){this.go(-1)},Se.prototype.forward=function(){this.go(1)},Se.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Se.prototype.resolve=function(t,e,n){e=e||this.history.current;var i=Q(t,e,n,this),r=this.match(i,e),o=r.redirectedFrom||r.fullPath,s=this.history.base,a=Ce(s,o,this.mode);return{location:i,route:r,href:a,normalizedTo:i,resolved:r}},Se.prototype.getRoutes=function(){return this.matcher.getRoutes()},Se.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Se.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Se.prototype,we);var xe=Se;function ke(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function Ce(t,e,n){var i="hash"===n?"#"+e:e;return t?_(t+"/"+i):i}Se.install=at,Se.version="3.6.5",Se.isNavigationFailure=qt,Se.NavigationFailureType=Lt,Se.START_LOCATION=m,ct&&window.Vue&&window.Vue.use(Se)},6369:function(t,e,n){"use strict";n.d(e,{ZP:function(){return Zi}});n(7658),n(4633),n(541);var i=Object.freeze({}),r=Array.isArray;function o(t){return void 0===t||null===t}function s(t){return void 0!==t&&null!==t}function a(t){return!0===t}function c(t){return!1===t}function l(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function u(t){return"function"===typeof t}function h(t){return null!==t&&"object"===typeof t}var d=Object.prototype.toString;function f(t){return"[object Object]"===d.call(t)}function p(t){return"[object RegExp]"===d.call(t)}function v(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function m(t){return s(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function g(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===d?JSON.stringify(t,null,2):String(t)}function y(t){var e=parseFloat(t);return isNaN(e)?t:e}function b(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r-1)return t.splice(i,1)}}var x=Object.prototype.hasOwnProperty;function k(t,e){return x.call(t,e)}function C(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}var T=/-(\w)/g,O=C((function(t){return t.replace(T,(function(t,e){return e?e.toUpperCase():""}))})),$=C((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),E=/\B([A-Z])/g,_=C((function(t){return t.replace(E,"-$1").toLowerCase()}));function I(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function B(t,e){return t.bind(e)}var A=Function.prototype.bind?B:I;function P(t,e){e=e||0;var n=t.length-e,i=new Array(n);while(n--)i[n]=t[n+e];return i}function D(t,e){for(var n in e)t[n]=e[n];return t}function N(t){for(var e={},n=0;n0,it=tt&&tt.indexOf("edge/")>0;tt&&tt.indexOf("android");var rt=tt&&/iphone|ipad|ipod|ios/.test(tt);tt&&/chrome\/\d+/.test(tt),tt&&/phantomjs/.test(tt);var ot,st=tt&&tt.match(/firefox\/(\d+)/),at={}.watch,ct=!1;if(Q)try{var lt={};Object.defineProperty(lt,"passive",{get:function(){ct=!0}}),window.addEventListener("test-passive",null,lt)}catch(Gs){}var ut=function(){return void 0===ot&&(ot=!Q&&"undefined"!==typeof n.g&&(n.g["process"]&&"server"===n.g["process"].env.VUE_ENV)),ot},ht=Q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function dt(t){return"function"===typeof t&&/native code/.test(t.toString())}var ft,pt="undefined"!==typeof Symbol&&dt(Symbol)&&"undefined"!==typeof Reflect&&dt(Reflect.ownKeys);ft="undefined"!==typeof Set&&dt(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var vt=null;function mt(t){void 0===t&&(t=null),t||vt&&vt._scope.off(),vt=t,t&&t._scope.on()}var gt=function(){function t(t,e,n,i,r,o,s,a){this.tag=t,this.data=e,this.children=n,this.text=i,this.elm=r,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=s,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=a,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),yt=function(t){void 0===t&&(t="");var e=new gt;return e.text=t,e.isComment=!0,e};function bt(t){return new gt(void 0,void 0,void 0,String(t))}function St(t){var e=new gt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var wt=0,xt=[],kt=function(){for(var t=0;t0&&(i=ae(i,"".concat(e||"","_").concat(n)),se(i[0])&&se(u)&&(h[c]=bt(u.text+i[0].text),i.shift()),h.push.apply(h,i)):l(i)?se(u)?h[c]=bt(u.text+i):""!==i&&h.push(bt(i)):se(i)&&se(u)?h[c]=bt(u.text+i.text):(a(t._isVList)&&s(i.tag)&&o(i.key)&&s(e)&&(i.key="__vlist".concat(e,"_").concat(n,"__")),h.push(i)));return h}function ce(t,e){var n,i,o,a,c=null;if(r(t)||"string"===typeof t)for(c=new Array(t.length),n=0,i=t.length;n0,a=e?!!e.$stable:!s,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(a&&r&&r!==i&&c===r.$key&&!s&&!r.$hasNormal)return r;for(var l in o={},e)e[l]&&"$"!==l[0]&&(o[l]=$e(t,n,l,e[l]))}else o={};for(var u in n)u in o||(o[u]=Ee(n,u));return e&&Object.isExtensible(e)&&(e._normalized=o),X(o,"$stable",a),X(o,"$key",c),X(o,"$hasNormal",s),o}function $e(t,e,n,i){var o=function(){var e=vt;mt(t);var n=arguments.length?i.apply(null,arguments):i({});n=n&&"object"===typeof n&&!r(n)?[n]:oe(n);var o=n&&n[0];return mt(e),n&&(!o||1===n.length&&o.isComment&&!Te(o))?void 0:n};return i.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}function Ee(t,e){return function(){return t[e]}}function _e(t){var e=t.$options,n=e.setup;if(n){var i=t._setupContext=Ie(t);mt(t),Ot();var r=Xe(n,null,[t._props||Vt({}),i],t,"setup");if($t(),mt(),u(r))e.render=r;else if(h(r))if(t._setupState=r,r.__sfc){var o=t._setupProxy={};for(var s in r)"__sfc"!==s&&qt(o,r,s)}else for(var s in r)Y(s)||qt(t,r,s);else 0}}function Ie(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};X(e,"_v_attr_proxy",!0),Be(e,t.$attrs,i,t,"$attrs")}return t._attrsProxy},get listeners(){if(!t._listenersProxy){var e=t._listenersProxy={};Be(e,t.$listeners,i,t,"$listeners")}return t._listenersProxy},get slots(){return Pe(t)},emit:A(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return qt(t,e,n)}))}}}function Be(t,e,n,i,r){var o=!1;for(var s in e)s in t?e[s]!==n[s]&&(o=!0):(o=!0,Ae(t,s,i,r));for(var s in t)s in e||(o=!0,delete t[s]);return o}function Ae(t,e,n,i){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[i][e]}})}function Pe(t){return t._slotsProxy||De(t._slotsProxy={},t.$scopedSlots),t._slotsProxy}function De(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}function Ne(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,r=n&&n.context;t.$slots=ke(e._renderChildren,r),t.$scopedSlots=n?Oe(t.$parent,n.data.scopedSlots,t.$slots):i,t._c=function(e,n,i,r){return Ue(t,e,n,i,r,!1)},t.$createElement=function(e,n,i,r){return Ue(t,e,n,i,r,!0)};var o=n&&n.data;Mt(t,"$attrs",o&&o.attrs||i,null,!0),Mt(t,"$listeners",e._parentListeners||i,null,!0)}var Re=null;function Le(t){xe(t.prototype),t.prototype.$nextTick=function(t){return cn(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,i=n.render,o=n._parentVnode;o&&e._isMounted&&(e.$scopedSlots=Oe(e.$parent,o.data.scopedSlots,e.$slots,e.$scopedSlots),e._slotsProxy&&De(e._slotsProxy,e.$scopedSlots)),e.$vnode=o;try{mt(e),Re=e,t=i.call(e._renderProxy,e.$createElement)}catch(Gs){Ye(Gs,e,"render"),t=e._vnode}finally{Re=null,mt()}return r(t)&&1===t.length&&(t=t[0]),t instanceof gt||(t=yt()),t.parent=o,t}}function Me(t,e){return(t.__esModule||pt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),h(t)?e.extend(t):t}function je(t,e,n,i,r){var o=yt();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:i,tag:r},o}function ze(t,e){if(a(t.error)&&s(t.errorComp))return t.errorComp;if(s(t.resolved))return t.resolved;var n=Re;if(n&&s(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n),a(t.loading)&&s(t.loadingComp))return t.loadingComp;if(n&&!s(t.owners)){var i=t.owners=[n],r=!0,c=null,l=null;n.$on("hook:destroyed",(function(){return w(i,n)}));var u=function(t){for(var e=0,n=i.length;e1?P(n):n;for(var i=P(arguments,1),r='event handler for "'.concat(t,'"'),o=0,s=n.length;odocument.createEvent("Event").timeStamp&&(Vn=function(){return Hn.now()})}var Un=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function Wn(){var t,e;for(Fn=Vn(),Mn=!0,Dn.sort(Un),jn=0;jnjn&&Dn[n].id>t.id)n--;Dn.splice(n+1,0,t)}else Dn.push(t);Ln||(Ln=!0,cn(Wn))}}function Zn(t){var e=t.$options.provide;if(e){var n=u(e)?e.call(t):e;if(!h(n))return;for(var i=Gt(t),r=pt?Reflect.ownKeys(n):Object.keys(n),o=0;o-1)if(o&&!k(r,"default"))s=!1;else if(""===s||s===_(t)){var c=_i(String,r.type);(c<0||a-1)return this;var n=P(arguments,1);return n.unshift(this),u(t.install)?t.install.apply(t,n):u(t)&&t.apply(null,n),e.push(t),this}}function Ji(t){t.mixin=function(t){return this.options=xi(this.options,t),this}}function Qi(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,i=n.cid,r=t._Ctor||(t._Ctor={});if(r[i])return r[i];var o=ii(t)||ii(n.options);var s=function(t){this._init(t)};return s.prototype=Object.create(n.prototype),s.prototype.constructor=s,s.cid=e++,s.options=xi(n.options,t),s["super"]=n,s.options.props&&tr(s),s.options.computed&&er(s),s.extend=n.extend,s.mixin=n.mixin,s.use=n.use,U.forEach((function(t){s[t]=n[t]})),o&&(s.options.components[o]=s),s.superOptions=n.options,s.extendOptions=t,s.sealedOptions=D({},s.options),r[i]=s,s}}function tr(t){var e=t.options.props;for(var n in e)Bi(t.prototype,"_props",n)}function er(t){var e=t.options.computed;for(var n in e)Mi(t.prototype,n,e[n])}function nr(t){U.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&f(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&u(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function ir(t){return t&&(ii(t.Ctor.options)||t.tag)}function rr(t,e){return r(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!p(t)&&t.test(e)}function or(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var o in n){var s=n[o];if(s){var a=s.name;a&&!e(a)&&sr(n,o,i,r)}}}function sr(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,w(n,e)}qi(Zi),Ui(Zi),kn(Zi),$n(Zi),Le(Zi);var ar=[String,RegExp,Array],cr={name:"keep-alive",abstract:!0,props:{include:ar,exclude:ar,max:[String,Number]},methods:{cacheVNode:function(){var t=this,e=t.cache,n=t.keys,i=t.vnodeToCache,r=t.keyToCache;if(i){var o=i.tag,s=i.componentInstance,a=i.componentOptions;e[r]={name:ir(a),tag:o,componentInstance:s},n.push(r),this.max&&n.length>parseInt(this.max)&&sr(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)sr(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){or(t,(function(t){return rr(e,t)}))})),this.$watch("exclude",(function(e){or(t,(function(t){return!rr(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=Fe(t),n=e&&e.componentOptions;if(n){var i=ir(n),r=this,o=r.include,s=r.exclude;if(o&&(!i||!rr(o,i))||s&&i&&rr(s,i))return e;var a=this,c=a.cache,l=a.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;c[u]?(e.componentInstance=c[u].componentInstance,w(l,u),l.push(u)):(this.vnodeToCache=e,this.keyToCache=u),e.data.keepAlive=!0}return e||t&&t[0]}},lr={KeepAlive:cr};function ur(t){var e={get:function(){return q}};Object.defineProperty(t,"config",e),t.util={warn:hi,extend:D,mergeOptions:xi,defineReactive:Mt},t.set=jt,t.delete=zt,t.nextTick=cn,t.observable=function(t){return Lt(t),t},t.options=Object.create(null),U.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,D(t.options.components,lr),Gi(t),Ji(t),Qi(t),nr(t)}ur(Zi),Object.defineProperty(Zi.prototype,"$isServer",{get:ut}),Object.defineProperty(Zi.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Zi,"FunctionalRenderContext",{value:Qn}),Zi.version=hn;var hr=b("style,class"),dr=b("input,textarea,option,select,progress"),fr=function(t,e,n){return"value"===n&&dr(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},pr=b("contenteditable,draggable,spellcheck"),vr=b("events,caret,typing,plaintext-only"),mr=function(t,e){return wr(e)||"false"===e?"false":"contenteditable"===t&&vr(e)?e:"true"},gr=b("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),yr="http://www.w3.org/1999/xlink",br=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Sr=function(t){return br(t)?t.slice(6,t.length):""},wr=function(t){return null==t||!1===t};function xr(t){var e=t.data,n=t,i=t;while(s(i.componentInstance))i=i.componentInstance._vnode,i&&i.data&&(e=kr(i.data,e));while(s(n=n.parent))n&&n.data&&(e=kr(e,n.data));return Cr(e.staticClass,e.class)}function kr(t,e){return{staticClass:Tr(t.staticClass,e.staticClass),class:s(t.class)?[t.class,e.class]:e.class}}function Cr(t,e){return s(t)||s(e)?Tr(t,Or(e)):""}function Tr(t,e){return t?e?t+" "+e:t:e||""}function Or(t){return Array.isArray(t)?$r(t):h(t)?Er(t):"string"===typeof t?t:""}function $r(t){for(var e,n="",i=0,r=t.length;i-1?Dr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Dr[t]=/HTMLUnknownElement/.test(e.toString())}var Rr=b("text,number,password,search,email,tel,url");function Lr(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function Mr(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function jr(t,e){return document.createElementNS(_r[t],e)}function zr(t){return document.createTextNode(t)}function Fr(t){return document.createComment(t)}function Vr(t,e,n){t.insertBefore(e,n)}function Hr(t,e){t.removeChild(e)}function Ur(t,e){t.appendChild(e)}function Wr(t){return t.parentNode}function qr(t){return t.nextSibling}function Kr(t){return t.tagName}function Yr(t,e){t.textContent=e}function Xr(t,e){t.setAttribute(e,"")}var Zr=Object.freeze({__proto__:null,createElement:Mr,createElementNS:jr,createTextNode:zr,createComment:Fr,insertBefore:Vr,removeChild:Hr,appendChild:Ur,parentNode:Wr,nextSibling:qr,tagName:Kr,setTextContent:Yr,setStyleScope:Xr}),Gr={create:function(t,e){Jr(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Jr(t,!0),Jr(e))},destroy:function(t){Jr(t,!0)}};function Jr(t,e){var n=t.data.ref;if(s(n)){var i=t.context,o=t.componentInstance||t.elm,a=e?null:o,c=e?void 0:o;if(u(n))Xe(n,i,[a],i,"template ref function");else{var l=t.data.refInFor,h="string"===typeof n||"number"===typeof n,d=Wt(n),f=i.$refs;if(h||d)if(l){var p=h?f[n]:n.value;e?r(p)&&w(p,o):r(p)?p.includes(o)||p.push(o):h?(f[n]=[o],Qr(i,n,f[n])):n.value=[o]}else if(h){if(e&&f[n]!==o)return;f[n]=c,Qr(i,n,a)}else if(d){if(e&&n.value!==o)return;n.value=a}else 0}}}function Qr(t,e,n){var i=t._setupState;i&&k(i,e)&&(Wt(i[e])?i[e].value=n:i[e]=n)}var to=new gt("",{},[]),eo=["create","activate","update","remove","destroy"];function no(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&(t.tag===e.tag&&t.isComment===e.isComment&&s(t.data)===s(e.data)&&io(t,e)||a(t.isAsyncPlaceholder)&&o(e.asyncFactory.error))}function io(t,e){if("input"!==t.tag)return!0;var n,i=s(n=t.data)&&s(n=n.attrs)&&n.type,r=s(n=e.data)&&s(n=n.attrs)&&n.type;return i===r||Rr(i)&&Rr(r)}function ro(t,e,n){var i,r,o={};for(i=e;i<=n;++i)r=t[i].key,s(r)&&(o[r]=i);return o}function oo(t){var e,n,i={},c=t.modules,u=t.nodeOps;for(e=0;ev?(h=o(n[y+1])?null:n[y+1].elm,C(t,h,n,f,y,i)):f>y&&O(e,d,v)}function _(t,e,n,i){for(var r=n;r-1?go(t,e,n):gr(e)?wr(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):pr(e)?t.setAttribute(e,mr(e,n)):br(e)?wr(n)?t.removeAttributeNS(yr,Sr(e)):t.setAttributeNS(yr,e,n):go(t,e,n)}function go(t,e,n){if(wr(n))t.removeAttribute(e);else{if(et&&!nt&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",i)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}var yo={create:vo,update:vo};function bo(t,e){var n=e.elm,i=e.data,r=t.data;if(!(o(i.staticClass)&&o(i.class)&&(o(r)||o(r.staticClass)&&o(r.class)))){var a=xr(e),c=n._transitionClasses;s(c)&&(a=Tr(a,Or(c))),a!==n._prevClass&&(n.setAttribute("class",a),n._prevClass=a)}}var So,wo={create:bo,update:bo},xo="__r",ko="__c";function Co(t){if(s(t[xo])){var e=et?"change":"input";t[e]=[].concat(t[xo],t[e]||[]),delete t[xo]}s(t[ko])&&(t.change=[].concat(t[ko],t.change||[]),delete t[ko])}function To(t,e,n){var i=So;return function r(){var o=e.apply(null,arguments);null!==o&&Eo(t,r,n,i)}}var Oo=Qe&&!(st&&Number(st[1])<=53);function $o(t,e,n,i){if(Oo){var r=Fn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}So.addEventListener(t,e,ct?{capture:n,passive:i}:n)}function Eo(t,e,n,i){(i||So).removeEventListener(t,e._wrapper||e,n)}function _o(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},i=t.data.on||{};So=e.elm||t.elm,Co(n),te(n,i,$o,Eo,To,e.context),So=void 0}}var Io,Bo={create:_o,update:_o,destroy:function(t){return _o(t,to)}};function Ao(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,i,r=e.elm,c=t.data.domProps||{},l=e.data.domProps||{};for(n in(s(l.__ob__)||a(l._v_attr_proxy))&&(l=e.data.domProps=D({},l)),c)n in l||(r[n]="");for(n in l){if(i=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===c[n])continue;1===r.childNodes.length&&r.removeChild(r.childNodes[0])}if("value"===n&&"PROGRESS"!==r.tagName){r._value=i;var u=o(i)?"":String(i);Po(r,u)&&(r.value=u)}else if("innerHTML"===n&&Br(r.tagName)&&o(r.innerHTML)){Io=Io||document.createElement("div"),Io.innerHTML="".concat(i,"");var h=Io.firstChild;while(r.firstChild)r.removeChild(r.firstChild);while(h.firstChild)r.appendChild(h.firstChild)}else if(i!==c[n])try{r[n]=i}catch(Gs){}}}}function Po(t,e){return!t.composing&&("OPTION"===t.tagName||Do(t,e)||No(t,e))}function Do(t,e){var n=!0;try{n=document.activeElement!==t}catch(Gs){}return n&&t.value!==e}function No(t,e){var n=t.value,i=t._vModifiers;if(s(i)){if(i.number)return y(n)!==y(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}var Ro={create:Ao,update:Ao},Lo=C((function(t){var e={},n=/;(?![^(]*\))/g,i=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(i);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function Mo(t){var e=jo(t.style);return t.staticStyle?D(t.staticStyle,e):e}function jo(t){return Array.isArray(t)?N(t):"string"===typeof t?Lo(t):t}function zo(t,e){var n,i={};if(e){var r=t;while(r.componentInstance)r=r.componentInstance._vnode,r&&r.data&&(n=Mo(r.data))&&D(i,n)}(n=Mo(t.data))&&D(i,n);var o=t;while(o=o.parent)o.data&&(n=Mo(o.data))&&D(i,n);return i}var Fo,Vo=/^--/,Ho=/\s*!important$/,Uo=function(t,e,n){if(Vo.test(e))t.style.setProperty(e,n);else if(Ho.test(n))t.style.setProperty(_(e),n.replace(Ho,""),"important");else{var i=qo(e);if(Array.isArray(n))for(var r=0,o=n.length;r-1?e.split(Xo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Go(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Xo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" ".concat(t.getAttribute("class")||""," "),i=" "+e+" ";while(n.indexOf(i)>=0)n=n.replace(i," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Jo(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&D(e,Qo(t.name||"v")),D(e,t),e}return"string"===typeof t?Qo(t):void 0}}var Qo=C((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),ts=Q&&!nt,es="transition",ns="animation",is="transition",rs="transitionend",os="animation",ss="animationend";ts&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(is="WebkitTransition",rs="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(os="WebkitAnimation",ss="webkitAnimationEnd"));var as=Q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function cs(t){as((function(){as(t)}))}function ls(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Zo(t,e))}function us(t,e){t._transitionClasses&&w(t._transitionClasses,e),Go(t,e)}function hs(t,e,n){var i=fs(t,e),r=i.type,o=i.timeout,s=i.propCount;if(!r)return n();var a=r===es?rs:ss,c=0,l=function(){t.removeEventListener(a,u),n()},u=function(e){e.target===t&&++c>=s&&l()};setTimeout((function(){c0&&(n=es,u=s,h=o.length):e===ns?l>0&&(n=ns,u=l,h=c.length):(u=Math.max(s,l),n=u>0?s>l?es:ns:null,h=n?n===es?o.length:c.length:0);var d=n===es&&ds.test(i[is+"Property"]);return{type:n,timeout:u,propCount:h,hasTransform:d}}function ps(t,e){while(t.length1}function Ss(t,e){!0!==e.data.show&&ms(e)}var ws=Q?{create:Ss,activate:Ss,remove:function(t,e){!0!==t.data.show?gs(t,e):e()}}:{},xs=[yo,wo,Bo,Ro,Yo,ws],ks=xs.concat(po),Cs=oo({nodeOps:Zr,modules:ks});nt&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&As(t,"input")}));var Ts={inserted:function(t,e,n,i){"select"===n.tag?(i.elm&&!i.elm._vOptions?ee(n,"postpatch",(function(){Ts.componentUpdated(t,e,n)})):Os(t,e,n.context),t._vOptions=[].map.call(t.options,_s)):("textarea"===n.tag||Rr(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",Is),t.addEventListener("compositionend",Bs),t.addEventListener("change",Bs),nt&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Os(t,e,n.context);var i=t._vOptions,r=t._vOptions=[].map.call(t.options,_s);if(r.some((function(t,e){return!j(t,i[e])}))){var o=t.multiple?e.value.some((function(t){return Es(t,r)})):e.value!==e.oldValue&&Es(e.value,r);o&&As(t,"change")}}}};function Os(t,e,n){$s(t,e,n),(et||it)&&setTimeout((function(){$s(t,e,n)}),0)}function $s(t,e,n){var i=e.value,r=t.multiple;if(!r||Array.isArray(i)){for(var o,s,a=0,c=t.options.length;a-1,s.selected!==o&&(s.selected=o);else if(j(_s(s),i))return void(t.selectedIndex!==a&&(t.selectedIndex=a));r||(t.selectedIndex=-1)}}function Es(t,e){return e.every((function(e){return!j(e,t)}))}function _s(t){return"_value"in t?t._value:t.value}function Is(t){t.target.composing=!0}function Bs(t){t.target.composing&&(t.target.composing=!1,As(t.target,"input"))}function As(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Ps(t){return!t.componentInstance||t.data&&t.data.transition?t:Ps(t.componentInstance._vnode)}var Ds={bind:function(t,e,n){var i=e.value;n=Ps(n);var r=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;i&&r?(n.data.show=!0,ms(n,(function(){t.style.display=o}))):t.style.display=i?o:"none"},update:function(t,e,n){var i=e.value,r=e.oldValue;if(!i!==!r){n=Ps(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,i?ms(n,(function(){t.style.display=t.__vOriginalDisplay})):gs(n,(function(){t.style.display="none"}))):t.style.display=i?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,i,r){r||(t.style.display=t.__vOriginalDisplay)}},Ns={model:Ts,show:Ds},Rs={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ls(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ls(Fe(e.children)):t}function Ms(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var i in r)e[O(i)]=r[i];return e}function js(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function zs(t){while(t=t.parent)if(t.data.transition)return!0}function Fs(t,e){return e.key===t.key&&e.tag===t.tag}var Vs=function(t){return t.tag||Te(t)},Hs=function(t){return"show"===t.name},Us={name:"transition",props:Rs,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Vs),n.length)){0;var i=this.mode;0;var r=n[0];if(zs(this.$vnode))return r;var o=Ls(r);if(!o)return r;if(this._leaving)return js(t,r);var s="__transition-".concat(this._uid,"-");o.key=null==o.key?o.isComment?s+"comment":s+o.tag:l(o.key)?0===String(o.key).indexOf(s)?o.key:s+o.key:o.key;var a=(o.data||(o.data={})).transition=Ms(this),c=this._vnode,u=Ls(c);if(o.data.directives&&o.data.directives.some(Hs)&&(o.data.show=!0),u&&u.data&&!Fs(o,u)&&!Te(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var h=u.data.transition=D({},a);if("out-in"===i)return this._leaving=!0,ee(h,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),js(t,r);if("in-out"===i){if(Te(o))return c;var d,f=function(){d()};ee(a,"afterEnter",f),ee(a,"enterCancelled",f),ee(h,"delayLeave",(function(t){d=t}))}}return r}}},Ws=D({tag:String,moveClass:String},Rs);delete Ws.mode;var qs={props:Ws,beforeMount:function(){var t=this,e=this._update;this._update=function(n,i){var r=Tn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,i)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],o=this.children=[],s=Ms(this),a=0;ae=>{const n=r.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),a=t=>(t=t.toLowerCase(),e=>s(e)===t),c=t=>e=>typeof e===t,{isArray:l}=Array,u=c("undefined");function h(t){return null!==t&&!u(t)&&null!==t.constructor&&!u(t.constructor)&&v(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const d=a("ArrayBuffer");function f(t){let e;return e="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&d(t.buffer),e}const p=c("string"),v=c("function"),m=c("number"),g=t=>null!==t&&"object"===typeof t,y=t=>!0===t||!1===t,b=t=>{if("object"!==s(t))return!1;const e=o(t);return(null===e||e===Object.prototype||null===Object.getPrototypeOf(e))&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},S=a("Date"),w=a("File"),x=a("Blob"),k=a("FileList"),C=t=>g(t)&&v(t.pipe),T=t=>{let e;return t&&("function"===typeof FormData&&t instanceof FormData||v(t.append)&&("formdata"===(e=s(t))||"object"===e&&v(t.toString)&&"[object FormData]"===t.toString()))},O=a("URLSearchParams"),$=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function E(t,e,{allOwnKeys:n=!1}={}){if(null===t||"undefined"===typeof t)return;let i,r;if("object"!==typeof t&&(t=[t]),l(t))for(i=0,r=t.length;i0)if(i=n[r],e===i.toLowerCase())return i;return null}const I=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global)(),B=t=>!u(t)&&t!==I;function A(){const{caseless:t}=B(this)&&this||{},e={},n=(n,i)=>{const r=t&&_(e,i)||i;b(e[r])&&b(n)?e[r]=A(e[r],n):b(n)?e[r]=A({},n):l(n)?e[r]=n.slice():e[r]=n};for(let i=0,r=arguments.length;i(E(e,((e,r)=>{n&&v(e)?t[r]=i(e,n):t[r]=e}),{allOwnKeys:r}),t),D=t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),N=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},R=(t,e,n,i)=>{let r,s,a;const c={};if(e=e||{},null==t)return e;do{r=Object.getOwnPropertyNames(t),s=r.length;while(s-- >0)a=r[s],i&&!i(a,t,e)||c[a]||(e[a]=t[a],c[a]=!0);t=!1!==n&&o(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},L=(t,e,n)=>{t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return-1!==i&&i===n},M=t=>{if(!t)return null;if(l(t))return t;let e=t.length;if(!m(e))return null;const n=new Array(e);while(e-- >0)n[e]=t[e];return n},j=(t=>e=>t&&e instanceof t)("undefined"!==typeof Uint8Array&&o(Uint8Array)),z=(t,e)=>{const n=t&&t[Symbol.iterator],i=n.call(t);let r;while((r=i.next())&&!r.done){const n=r.value;e.call(t,n[0],n[1])}},F=(t,e)=>{let n;const i=[];while(null!==(n=t.exec(e)))i.push(n);return i},V=a("HTMLFormElement"),H=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n})),U=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),W=a("RegExp"),q=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};E(n,((n,r)=>{let o;!1!==(o=e(n,r,t))&&(i[r]=o||n)})),Object.defineProperties(t,i)},K=t=>{q(t,((e,n)=>{if(v(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const i=t[n];v(i)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},Y=(t,e)=>{const n={},i=t=>{t.forEach((t=>{n[t]=!0}))};return l(t)?i(t):i(String(t).split(e)),n},X=()=>{},Z=(t,e)=>(t=+t,Number.isFinite(t)?t:e),G="abcdefghijklmnopqrstuvwxyz",J="0123456789",Q={DIGIT:J,ALPHA:G,ALPHA_DIGIT:G+G.toUpperCase()+J},tt=(t=16,e=Q.ALPHA_DIGIT)=>{let n="";const{length:i}=e;while(t--)n+=e[Math.random()*i|0];return n};function et(t){return!!(t&&v(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])}const nt=t=>{const e=new Array(10),n=(t,i)=>{if(g(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[i]=t;const r=l(t)?[]:{};return E(t,((t,e)=>{const o=n(t,i+1);!u(o)&&(r[e]=o)})),e[i]=void 0,r}}return t};return n(t,0)},it=a("AsyncFunction"),rt=t=>t&&(g(t)||v(t))&&v(t.then)&&v(t.catch);var ot={isArray:l,isArrayBuffer:d,isBuffer:h,isFormData:T,isArrayBufferView:f,isString:p,isNumber:m,isBoolean:y,isObject:g,isPlainObject:b,isUndefined:u,isDate:S,isFile:w,isBlob:x,isRegExp:W,isFunction:v,isStream:C,isURLSearchParams:O,isTypedArray:j,isFileList:k,forEach:E,merge:A,extend:P,trim:$,stripBOM:D,inherits:N,toFlatObject:R,kindOf:s,kindOfTest:a,endsWith:L,toArray:M,forEachEntry:z,matchAll:F,isHTMLForm:V,hasOwnProperty:U,hasOwnProp:U,reduceDescriptors:q,freezeMethods:K,toObjectSet:Y,toCamelCase:H,noop:X,toFiniteNumber:Z,findKey:_,global:I,isContextDefined:B,ALPHABET:Q,generateString:tt,isSpecCompliantForm:et,toJSONObject:nt,isAsyncFn:it,isThenable:rt};n(541);function st(t,e,n,i,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),i&&(this.request=i),r&&(this.response=r)}ot.inherits(st,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ot.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const at=st.prototype,ct={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{ct[t]={value:t}})),Object.defineProperties(st,ct),Object.defineProperty(at,"isAxiosError",{value:!0}),st.from=(t,e,n,i,r,o)=>{const s=Object.create(at);return ot.toFlatObject(t,s,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),st.call(s,t.message,e,n,i,r),s.cause=t,s.name=t.name,o&&Object.assign(s,o),s};var lt=st,ut=null;function ht(t){return ot.isPlainObject(t)||ot.isArray(t)}function dt(t){return ot.endsWith(t,"[]")?t.slice(0,-2):t}function ft(t,e,n){return t?t.concat(e).map((function(t,e){return t=dt(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}function pt(t){return ot.isArray(t)&&!t.some(ht)}const vt=ot.toFlatObject(ot,{},null,(function(t){return/^is[A-Z]/.test(t)}));function mt(t,e,n){if(!ot.isObject(t))throw new TypeError("target must be an object");e=e||new(ut||FormData),n=ot.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!ot.isUndefined(e[t])}));const i=n.metaTokens,r=n.visitor||u,o=n.dots,s=n.indexes,a=n.Blob||"undefined"!==typeof Blob&&Blob,c=a&&ot.isSpecCompliantForm(e);if(!ot.isFunction(r))throw new TypeError("visitor must be a function");function l(t){if(null===t)return"";if(ot.isDate(t))return t.toISOString();if(!c&&ot.isBlob(t))throw new lt("Blob is not supported. Use a Buffer instead.");return ot.isArrayBuffer(t)||ot.isTypedArray(t)?c&&"function"===typeof Blob?new Blob([t]):Buffer.from(t):t}function u(t,n,r){let a=t;if(t&&!r&&"object"===typeof t)if(ot.endsWith(n,"{}"))n=i?n:n.slice(0,-2),t=JSON.stringify(t);else if(ot.isArray(t)&&pt(t)||(ot.isFileList(t)||ot.endsWith(n,"[]"))&&(a=ot.toArray(t)))return n=dt(n),a.forEach((function(t,i){!ot.isUndefined(t)&&null!==t&&e.append(!0===s?ft([n],i,o):null===s?n:n+"[]",l(t))})),!1;return!!ht(t)||(e.append(ft(r,n,o),l(t)),!1)}const h=[],d=Object.assign(vt,{defaultVisitor:u,convertValue:l,isVisitable:ht});function f(t,n){if(!ot.isUndefined(t)){if(-1!==h.indexOf(t))throw Error("Circular reference detected in "+n.join("."));h.push(t),ot.forEach(t,(function(t,i){const o=!(ot.isUndefined(t)||null===t)&&r.call(e,t,ot.isString(i)?i.trim():i,n,d);!0===o&&f(t,n?n.concat(i):[i])})),h.pop()}}if(!ot.isObject(t))throw new TypeError("data must be an object");return f(t),e}var gt=mt;function yt(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function bt(t,e){this._pairs=[],t&>(t,this,e)}const St=bt.prototype;St.append=function(t,e){this._pairs.push([t,e])},St.toString=function(t){const e=t?function(e){return t.call(this,e,yt)}:yt;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var wt=bt;function xt(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function kt(t,e,n){if(!e)return t;const i=n&&n.encode||xt,r=n&&n.serialize;let o;if(o=r?r(e,n):ot.isURLSearchParams(e)?e.toString():new wt(e,n).toString(i),o){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+o}return t}class Ct{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ot.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}var Tt=Ct,Ot={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},$t=(n(6229),n(7330),n(2062),"undefined"!==typeof URLSearchParams?URLSearchParams:wt),Et="undefined"!==typeof FormData?FormData:null,_t="undefined"!==typeof Blob?Blob:null;const It=(()=>{let t;return("undefined"===typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&("undefined"!==typeof window&&"undefined"!==typeof document)})(),Bt=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)();var At={isBrowser:!0,classes:{URLSearchParams:$t,FormData:Et,Blob:_t},isStandardBrowserEnv:It,isStandardBrowserWebWorkerEnv:Bt,protocols:["http","https","file","blob","url","data"]};function Pt(t,e){return gt(t,new At.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,i){return At.isNode&&ot.isBuffer(t)?(this.append(e,t.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},e))}function Dt(t){return ot.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}function Nt(t){const e={},n=Object.keys(t);let i;const r=n.length;let o;for(i=0;i=t.length;if(o=!o&&ot.isArray(i)?i.length:o,a)return ot.hasOwnProp(i,o)?i[o]=[i[o],n]:i[o]=n,!s;i[o]&&ot.isObject(i[o])||(i[o]=[]);const c=e(t,n,i[o],r);return c&&ot.isArray(i[o])&&(i[o]=Nt(i[o])),!s}if(ot.isFormData(t)&&ot.isFunction(t.entries)){const n={};return ot.forEachEntry(t,((t,i)=>{e(Dt(t),i,n,0)})),n}return null}var Lt=Rt;function Mt(t,e,n){if(ot.isString(t))try{return(e||JSON.parse)(t),ot.trim(t)}catch(i){if("SyntaxError"!==i.name)throw i}return(n||JSON.stringify)(t)}const jt={transitional:Ot,adapter:["xhr","http"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,r=ot.isObject(t);r&&ot.isHTMLForm(t)&&(t=new FormData(t));const o=ot.isFormData(t);if(o)return i&&i?JSON.stringify(Lt(t)):t;if(ot.isArrayBuffer(t)||ot.isBuffer(t)||ot.isStream(t)||ot.isFile(t)||ot.isBlob(t))return t;if(ot.isArrayBufferView(t))return t.buffer;if(ot.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return Pt(t,this.formSerializer).toString();if((s=ot.isFileList(t))||n.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return gt(s?{"files[]":t}:t,e&&new e,this.formSerializer)}}return r||i?(e.setContentType("application/json",!1),Mt(t)):t}],transformResponse:[function(t){const e=this.transitional||jt.transitional,n=e&&e.forcedJSONParsing,i="json"===this.responseType;if(t&&ot.isString(t)&&(n&&!this.responseType||i)){const n=e&&e.silentJSONParsing,o=!n&&i;try{return JSON.parse(t)}catch(r){if(o){if("SyntaxError"===r.name)throw lt.from(r,lt.ERR_BAD_RESPONSE,this,null,this.response);throw r}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:At.classes.FormData,Blob:At.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ot.forEach(["delete","get","head","post","put","patch"],(t=>{jt.headers[t]={}}));var zt=jt;const Ft=ot.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Vt=t=>{const e={};let n,i,r;return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),n=t.substring(0,r).trim().toLowerCase(),i=t.substring(r+1).trim(),!n||e[n]&&Ft[n]||("set-cookie"===n?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)})),e};const Ht=Symbol("internals");function Ut(t){return t&&String(t).trim().toLowerCase()}function Wt(t){return!1===t||null==t?t:ot.isArray(t)?t.map(Wt):String(t)}function qt(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;while(i=n.exec(t))e[i[1]]=i[2];return e}const Kt=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Yt(t,e,n,i,r){return ot.isFunction(i)?i.call(this,e,n):(r&&(e=n),ot.isString(e)?ot.isString(i)?-1!==e.indexOf(i):ot.isRegExp(i)?i.test(e):void 0:void 0)}function Xt(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,n)=>e.toUpperCase()+n))}function Zt(t,e){const n=ot.toCamelCase(" "+e);["get","set","has"].forEach((i=>{Object.defineProperty(t,i+n,{value:function(t,n,r){return this[i].call(this,e,t,n,r)},configurable:!0})}))}class Gt{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function r(t,e,n){const r=Ut(e);if(!r)throw new Error("header name must be a non-empty string");const o=ot.findKey(i,r);(!o||void 0===i[o]||!0===n||void 0===n&&!1!==i[o])&&(i[o||e]=Wt(t))}const o=(t,e)=>ot.forEach(t,((t,n)=>r(t,n,e)));return ot.isPlainObject(t)||t instanceof this.constructor?o(t,e):ot.isString(t)&&(t=t.trim())&&!Kt(t)?o(Vt(t),e):null!=t&&r(e,t,n),this}get(t,e){if(t=Ut(t),t){const n=ot.findKey(this,t);if(n){const t=this[n];if(!e)return t;if(!0===e)return qt(t);if(ot.isFunction(e))return e.call(this,t,n);if(ot.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=Ut(t),t){const n=ot.findKey(this,t);return!(!n||void 0===this[n]||e&&!Yt(this,this[n],n,e))}return!1}delete(t,e){const n=this;let i=!1;function r(t){if(t=Ut(t),t){const r=ot.findKey(n,t);!r||e&&!Yt(n,n[r],r,e)||(delete n[r],i=!0)}}return ot.isArray(t)?t.forEach(r):r(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;while(n--){const r=e[n];t&&!Yt(this,this[r],r,t,!0)||(delete this[r],i=!0)}return i}normalize(t){const e=this,n={};return ot.forEach(this,((i,r)=>{const o=ot.findKey(n,r);if(o)return e[o]=Wt(i),void delete e[r];const s=t?Xt(r):String(r).trim();s!==r&&delete e[r],e[s]=Wt(i),n[s]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return ot.forEach(this,((n,i)=>{null!=n&&!1!==n&&(e[i]=t&&ot.isArray(n)?n.join(", "):n)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach((t=>n.set(t))),n}static accessor(t){const e=this[Ht]=this[Ht]={accessors:{}},n=e.accessors,i=this.prototype;function r(t){const e=Ut(t);n[e]||(Zt(i,t),n[e]=!0)}return ot.isArray(t)?t.forEach(r):r(t),this}}Gt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ot.reduceDescriptors(Gt.prototype,(({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[n]=t}}})),ot.freezeMethods(Gt);var Jt=Gt;function Qt(t,e){const n=this||zt,i=e||n,r=Jt.from(i.headers);let o=i.data;return ot.forEach(t,(function(t){o=t.call(n,o,r.normalize(),e?e.status:void 0)})),r.normalize(),o}function te(t){return!(!t||!t.__CANCEL__)}function ee(t,e,n){lt.call(this,null==t?"canceled":t,lt.ERR_CANCELED,e,n),this.name="CanceledError"}ot.inherits(ee,lt,{__CANCEL__:!0});var ne=ee;n(2801);function ie(t,e,n){const i=n.config.validateStatus;n.status&&i&&!i(n.status)?e(new lt("Request failed with status code "+n.status,[lt.ERR_BAD_REQUEST,lt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}var re=At.isStandardBrowserEnv?function(){return{write:function(t,e,n,i,r,o){const s=[];s.push(t+"="+encodeURIComponent(e)),ot.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),ot.isString(i)&&s.push("path="+i),ot.isString(r)&&s.push("domain="+r),!0===o&&s.push("secure"),document.cookie=s.join("; ")},read:function(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function oe(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function se(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}function ae(t,e){return t&&!oe(e)?se(t,e):e}var ce=At.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let n;function i(n){let i=n;return t&&(e.setAttribute("href",i),i=e.href),e.setAttribute("href",i),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=i(window.location.href),function(t){const e=ot.isString(t)?i(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return function(){return!0}}();function le(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ue(t,e){t=t||10;const n=new Array(t),i=new Array(t);let r,o=0,s=0;return e=void 0!==e?e:1e3,function(a){const c=Date.now(),l=i[s];r||(r=c),n[o]=a,i[o]=c;let u=s,h=0;while(u!==o)h+=n[u++],u%=t;if(o=(o+1)%t,o===s&&(s=(s+1)%t),c-r{const o=r.loaded,s=r.lengthComputable?r.total:void 0,a=o-n,c=i(a),l=o<=s;n=o;const u={loaded:o,total:s,progress:s?o/s:void 0,bytes:a,rate:c||void 0,estimated:c&&s&&l?(s-o)/c:void 0,event:r};u[e?"download":"upload"]=!0,t(u)}}const fe="undefined"!==typeof XMLHttpRequest;var pe=fe&&function(t){return new Promise((function(e,n){let i=t.data;const r=Jt.from(t.headers).normalize(),o=t.responseType;let s,a;function c(){t.cancelToken&&t.cancelToken.unsubscribe(s),t.signal&&t.signal.removeEventListener("abort",s)}ot.isFormData(i)&&(At.isStandardBrowserEnv||At.isStandardBrowserWebWorkerEnv?r.setContentType(!1):r.getContentType(/^\s*multipart\/form-data/)?ot.isString(a=r.getContentType())&&r.setContentType(a.replace(/^\s*(multipart\/form-data);+/,"$1")):r.setContentType("multipart/form-data"));let l=new XMLHttpRequest;if(t.auth){const e=t.auth.username||"",n=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";r.set("Authorization","Basic "+btoa(e+":"+n))}const u=ae(t.baseURL,t.url);function h(){if(!l)return;const i=Jt.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders()),r=o&&"text"!==o&&"json"!==o?l.response:l.responseText,s={data:r,status:l.status,statusText:l.statusText,headers:i,config:t,request:l};ie((function(t){e(t),c()}),(function(t){n(t),c()}),s),l=null}if(l.open(t.method.toUpperCase(),kt(u,t.params,t.paramsSerializer),!0),l.timeout=t.timeout,"onloadend"in l?l.onloadend=h:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(h)},l.onabort=function(){l&&(n(new lt("Request aborted",lt.ECONNABORTED,t,l)),l=null)},l.onerror=function(){n(new lt("Network Error",lt.ERR_NETWORK,t,l)),l=null},l.ontimeout=function(){let e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const i=t.transitional||Ot;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(new lt(e,i.clarifyTimeoutError?lt.ETIMEDOUT:lt.ECONNABORTED,t,l)),l=null},At.isStandardBrowserEnv){const e=(t.withCredentials||ce(u))&&t.xsrfCookieName&&re.read(t.xsrfCookieName);e&&r.set(t.xsrfHeaderName,e)}void 0===i&&r.setContentType(null),"setRequestHeader"in l&&ot.forEach(r.toJSON(),(function(t,e){l.setRequestHeader(e,t)})),ot.isUndefined(t.withCredentials)||(l.withCredentials=!!t.withCredentials),o&&"json"!==o&&(l.responseType=t.responseType),"function"===typeof t.onDownloadProgress&&l.addEventListener("progress",de(t.onDownloadProgress,!0)),"function"===typeof t.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",de(t.onUploadProgress)),(t.cancelToken||t.signal)&&(s=e=>{l&&(n(!e||e.type?new ne(null,t,l):e),l.abort(),l=null)},t.cancelToken&&t.cancelToken.subscribe(s),t.signal&&(t.signal.aborted?s():t.signal.addEventListener("abort",s)));const d=le(u);d&&-1===At.protocols.indexOf(d)?n(new lt("Unsupported protocol "+d+":",lt.ERR_BAD_REQUEST,t)):l.send(i||null)}))};const ve={http:ut,xhr:pe};ot.forEach(ve,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}}));const me=t=>`- ${t}`,ge=t=>ot.isFunction(t)||null===t||!1===t;var ye={getAdapter:t=>{t=ot.isArray(t)?t:[t];const{length:e}=t;let n,i;const r={};for(let o=0;o`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let n=e?t.length>1?"since :\n"+t.map(me).join("\n"):" "+me(t[0]):"as no adapter specified";throw new lt("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return i},adapters:ve};function be(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ne(null,t)}function Se(t){be(t),t.headers=Jt.from(t.headers),t.data=Qt.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1);const e=ye.getAdapter(t.adapter||zt.adapter);return e(t).then((function(e){return be(t),e.data=Qt.call(t,t.transformResponse,e),e.headers=Jt.from(e.headers),e}),(function(e){return te(e)||(be(t),e&&e.response&&(e.response.data=Qt.call(t,t.transformResponse,e.response),e.response.headers=Jt.from(e.response.headers))),Promise.reject(e)}))}const we=t=>t instanceof Jt?t.toJSON():t;function xe(t,e){e=e||{};const n={};function i(t,e,n){return ot.isPlainObject(t)&&ot.isPlainObject(e)?ot.merge.call({caseless:n},t,e):ot.isPlainObject(e)?ot.merge({},e):ot.isArray(e)?e.slice():e}function r(t,e,n){return ot.isUndefined(e)?ot.isUndefined(t)?void 0:i(void 0,t,n):i(t,e,n)}function o(t,e){if(!ot.isUndefined(e))return i(void 0,e)}function s(t,e){return ot.isUndefined(e)?ot.isUndefined(t)?void 0:i(void 0,t):i(void 0,e)}function a(n,r,o){return o in e?i(n,r):o in t?i(void 0,n):void 0}const c={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(t,e)=>r(we(t),we(e),!0)};return ot.forEach(Object.keys(Object.assign({},t,e)),(function(i){const o=c[i]||r,s=o(t[i],e[i],i);ot.isUndefined(s)&&o!==a||(n[i]=s)})),n}const ke="1.5.1",Ce={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{Ce[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));const Te={};function Oe(t,e,n){if("object"!==typeof t)throw new lt("options must be an object",lt.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let r=i.length;while(r-- >0){const o=i[r],s=e[o];if(s){const e=t[o],n=void 0===e||s(e,o,t);if(!0!==n)throw new lt("option "+o+" must be "+n,lt.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new lt("Unknown option "+o,lt.ERR_BAD_OPTION)}}Ce.transitional=function(t,e,n){function i(t,e){return"[Axios v"+ke+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return(n,r,o)=>{if(!1===t)throw new lt(i(r," has been removed"+(e?" in "+e:"")),lt.ERR_DEPRECATED);return e&&!Te[r]&&(Te[r]=!0,console.warn(i(r," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,r,o)}};var $e={assertOptions:Oe,validators:Ce};const Ee=$e.validators;class _e{constructor(t){this.defaults=t,this.interceptors={request:new Tt,response:new Tt}}request(t,e){"string"===typeof t?(e=e||{},e.url=t):e=t||{},e=xe(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:r}=e;void 0!==n&&$e.assertOptions(n,{silentJSONParsing:Ee.transitional(Ee.boolean),forcedJSONParsing:Ee.transitional(Ee.boolean),clarifyTimeoutError:Ee.transitional(Ee.boolean)},!1),null!=i&&(ot.isFunction(i)?e.paramsSerializer={serialize:i}:$e.assertOptions(i,{encode:Ee.function,serialize:Ee.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let o=r&&ot.merge(r.common,r[e.method]);r&&ot.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete r[t]})),e.headers=Jt.concat(o,r);const s=[];let a=!0;this.interceptors.request.forEach((function(t){"function"===typeof t.runWhen&&!1===t.runWhen(e)||(a=a&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));const c=[];let l;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let u,h=0;if(!a){const t=[Se.bind(this),void 0];t.unshift.apply(t,s),t.push.apply(t,c),u=t.length,l=Promise.resolve(e);while(h{if(!n._listeners)return;let e=n._listeners.length;while(e-- >0)n._listeners[e](t);n._listeners=null})),this.promise.then=t=>{let e;const i=new Promise((t=>{n.subscribe(t),e=t})).then(t);return i.cancel=function(){n.unsubscribe(e)},i},t((function(t,i,r){n.reason||(n.reason=new ne(t,i,r),e(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;const e=new Be((function(e){t=e}));return{token:e,cancel:t}}}var Ae=Be;function Pe(t){return function(e){return t.apply(null,e)}}function De(t){return ot.isObject(t)&&!0===t.isAxiosError}const Ne={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ne).forEach((([t,e])=>{Ne[e]=t}));var Re=Ne;function Le(t){const e=new Ie(t),n=i(Ie.prototype.request,e);return ot.extend(n,Ie.prototype,e,{allOwnKeys:!0}),ot.extend(n,e,null,{allOwnKeys:!0}),n.create=function(e){return Le(xe(t,e))},n}const Me=Le(zt);Me.Axios=Ie,Me.CanceledError=ne,Me.CancelToken=Ae,Me.isCancel=te,Me.VERSION=ke,Me.toFormData=gt,Me.AxiosError=lt,Me.Cancel=Me.CanceledError,Me.all=function(t){return Promise.all(t)},Me.spread=Pe,Me.isAxiosError=De,Me.mergeConfig=xe,Me.AxiosHeaders=Jt,Me.formToJSON=t=>Lt(ot.isHTMLForm(t)?new FormData(t):t),Me.getAdapter=ye.getAdapter,Me.HttpStatusCode=Re,Me.default=Me;var je=Me}}]); +//# sourceMappingURL=chunk-vendors.fc919775.js.map \ No newline at end of file diff --git a/hs-im-server/build/hd-glasses-app/dist/js/chunk-vendors.fc919775.js.map b/hs-im-server/build/hd-glasses-app/dist/js/chunk-vendors.fc919775.js.map new file mode 100644 index 0000000..6bcdefc --- /dev/null +++ b/hs-im-server/build/hd-glasses-app/dist/js/chunk-vendors.fc919775.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/chunk-vendors.fc919775.js","mappings":"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","sources":["webpack://hd-glasses-app/./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://hd-glasses-app/./node_modules/core-js/internals/a-callable.js","webpack://hd-glasses-app/./node_modules/core-js/internals/a-possible-prototype.js","webpack://hd-glasses-app/./node_modules/core-js/internals/an-instance.js","webpack://hd-glasses-app/./node_modules/core-js/internals/an-object.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-includes.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-set-length.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-slice.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-to-reversed.js","webpack://hd-glasses-app/./node_modules/core-js/internals/array-with.js","webpack://hd-glasses-app/./node_modules/core-js/internals/classof-raw.js","webpack://hd-glasses-app/./node_modules/core-js/internals/classof.js","webpack://hd-glasses-app/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://hd-glasses-app/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://hd-glasses-app/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://hd-glasses-app/./node_modules/core-js/internals/create-property-descriptor.js","webpack://hd-glasses-app/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://hd-glasses-app/./node_modules/core-js/internals/define-built-in.js","webpack://hd-glasses-app/./node_modules/core-js/internals/define-global-property.js","webpack://hd-glasses-app/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://hd-glasses-app/./node_modules/core-js/internals/descriptors.js","webpack://hd-glasses-app/./node_modules/core-js/internals/document-all.js","webpack://hd-glasses-app/./node_modules/core-js/internals/document-create-element.js","webpack://hd-glasses-app/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://hd-glasses-app/./node_modules/core-js/internals/dom-exception-constants.js","webpack://hd-glasses-app/./node_modules/core-js/internals/engine-is-bun.js","webpack://hd-glasses-app/./node_modules/core-js/internals/engine-is-ios.js","webpack://hd-glasses-app/./node_modules/core-js/internals/engine-is-node.js","webpack://hd-glasses-app/./node_modules/core-js/internals/engine-user-agent.js","webpack://hd-glasses-app/./node_modules/core-js/internals/engine-v8-version.js","webpack://hd-glasses-app/./node_modules/core-js/internals/enum-bug-keys.js","webpack://hd-glasses-app/./node_modules/core-js/internals/error-stack-clear.js","webpack://hd-glasses-app/./node_modules/core-js/internals/export.js","webpack://hd-glasses-app/./node_modules/core-js/internals/fails.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-apply.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-bind-context.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-bind-native.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-call.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-name.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://hd-glasses-app/./node_modules/core-js/internals/function-uncurry-this.js","webpack://hd-glasses-app/./node_modules/core-js/internals/get-built-in.js","webpack://hd-glasses-app/./node_modules/core-js/internals/get-method.js","webpack://hd-glasses-app/./node_modules/core-js/internals/global.js","webpack://hd-glasses-app/./node_modules/core-js/internals/has-own-property.js","webpack://hd-glasses-app/./node_modules/core-js/internals/hidden-keys.js","webpack://hd-glasses-app/./node_modules/core-js/internals/html.js","webpack://hd-glasses-app/./node_modules/core-js/internals/ie8-dom-define.js","webpack://hd-glasses-app/./node_modules/core-js/internals/indexed-object.js","webpack://hd-glasses-app/./node_modules/core-js/internals/inherit-if-required.js","webpack://hd-glasses-app/./node_modules/core-js/internals/inspect-source.js","webpack://hd-glasses-app/./node_modules/core-js/internals/internal-state.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-array.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-big-int-array.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-callable.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-forced.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-object.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-pure.js","webpack://hd-glasses-app/./node_modules/core-js/internals/is-symbol.js","webpack://hd-glasses-app/./node_modules/core-js/internals/length-of-array-like.js","webpack://hd-glasses-app/./node_modules/core-js/internals/make-built-in.js","webpack://hd-glasses-app/./node_modules/core-js/internals/math-trunc.js","webpack://hd-glasses-app/./node_modules/core-js/internals/normalize-string-argument.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-define-property.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-keys-internal.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://hd-glasses-app/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://hd-glasses-app/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://hd-glasses-app/./node_modules/core-js/internals/own-keys.js","webpack://hd-glasses-app/./node_modules/core-js/internals/require-object-coercible.js","webpack://hd-glasses-app/./node_modules/core-js/internals/schedulers-fix.js","webpack://hd-glasses-app/./node_modules/core-js/internals/shared-key.js","webpack://hd-glasses-app/./node_modules/core-js/internals/shared-store.js","webpack://hd-glasses-app/./node_modules/core-js/internals/shared.js","webpack://hd-glasses-app/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://hd-glasses-app/./node_modules/core-js/internals/task.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-absolute-index.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-big-int.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-indexed-object.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-length.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-object.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-primitive.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-property-key.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-string-tag-support.js","webpack://hd-glasses-app/./node_modules/core-js/internals/to-string.js","webpack://hd-glasses-app/./node_modules/core-js/internals/try-to-string.js","webpack://hd-glasses-app/./node_modules/core-js/internals/uid.js","webpack://hd-glasses-app/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://hd-glasses-app/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://hd-glasses-app/./node_modules/core-js/internals/validate-arguments-length.js","webpack://hd-glasses-app/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://hd-glasses-app/./node_modules/core-js/internals/well-known-symbol.js","webpack://hd-glasses-app/./node_modules/core-js/modules/es.array.push.js","webpack://hd-glasses-app/./node_modules/core-js/modules/es.array.unshift.js","webpack://hd-glasses-app/./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://hd-glasses-app/./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://hd-glasses-app/./node_modules/core-js/modules/es.typed-array.with.js","webpack://hd-glasses-app/./node_modules/core-js/modules/web.clear-immediate.js","webpack://hd-glasses-app/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://hd-glasses-app/./node_modules/core-js/modules/web.immediate.js","webpack://hd-glasses-app/./node_modules/core-js/modules/web.set-immediate.js","webpack://hd-glasses-app/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://hd-glasses-app/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://hd-glasses-app/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://hd-glasses-app/./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack://hd-glasses-app/./node_modules/amfe-flexible/index.js","webpack://hd-glasses-app/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/create/bem.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/format/string.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/slots.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/create/component.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/deep-assign.js","webpack://hd-glasses-app/./node_modules/vant/es/locale/lang/zh-CN.js","webpack://hd-glasses-app/./node_modules/vant/es/locale/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/create/i18n.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/create/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/functional.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/popup/context.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/dom/event.js","webpack://hd-glasses-app/./node_modules/vant/es/overlay/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/dom/node.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/popup/overlay.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/dom/scroll.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/touch.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/portal.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/bind-event.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/close-on-popstate.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/format/unit.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/popup/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/validate/number.js","webpack://hd-glasses-app/./node_modules/vant/es/info/index.js","webpack://hd-glasses-app/./node_modules/vant/es/icon/index.js","webpack://hd-glasses-app/./node_modules/vant/es/popup/index.js","webpack://hd-glasses-app/./node_modules/vant/es/loading/index.js","webpack://hd-glasses-app/./node_modules/vant/es/action-sheet/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/validate/mobile.js","webpack://hd-glasses-app/./node_modules/vant/es/picker/shared.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/constant.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/deep-clone.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/format/number.js","webpack://hd-glasses-app/./node_modules/vant/es/picker/PickerColumn.js","webpack://hd-glasses-app/./node_modules/vant/es/picker/index.js","webpack://hd-glasses-app/./node_modules/vant/es/area/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/router.js","webpack://hd-glasses-app/./node_modules/vant/es/cell/shared.js","webpack://hd-glasses-app/./node_modules/vant/es/cell/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/validate/system.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/dom/reset-scroll.js","webpack://hd-glasses-app/./node_modules/vant/es/field/index.js","webpack://hd-glasses-app/./node_modules/vant/es/toast/lock-click.js","webpack://hd-glasses-app/./node_modules/vant/es/toast/Toast.js","webpack://hd-glasses-app/./node_modules/vant/es/toast/index.js","webpack://hd-glasses-app/./node_modules/vant/es/button/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/vnodes.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/relation.js","webpack://hd-glasses-app/./node_modules/vant/es/goods-action/index.js","webpack://hd-glasses-app/./node_modules/vant/es/dialog/index.js","webpack://hd-glasses-app/./node_modules/vant/es/goods-action-button/index.js","webpack://hd-glasses-app/./node_modules/vant/es/dialog/Dialog.js","webpack://hd-glasses-app/./node_modules/vant/es/address-edit/Detail.js","webpack://hd-glasses-app/./node_modules/vant/es/switch/shared.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/field.js","webpack://hd-glasses-app/./node_modules/vant/es/switch/index.js","webpack://hd-glasses-app/./node_modules/vant/es/address-edit/index.js","webpack://hd-glasses-app/./node_modules/vant/es/radio-group/index.js","webpack://hd-glasses-app/./node_modules/vant/es/tag/index.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/checkbox.js","webpack://hd-glasses-app/./node_modules/vant/es/radio/index.js","webpack://hd-glasses-app/./node_modules/vant/es/address-list/Item.js","webpack://hd-glasses-app/./node_modules/vant/es/address-list/index.js","webpack://hd-glasses-app/./node_modules/vant/es/badge/index.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/dom/raf.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/validate/date.js","webpack://hd-glasses-app/./node_modules/vant/es/calendar/utils.js","webpack://hd-glasses-app/./node_modules/vant/es/datetime-picker/utils.js","webpack://hd-glasses-app/./node_modules/vant/es/calendar/components/Month.js","webpack://hd-glasses-app/./node_modules/vant/es/calendar/components/Header.js","webpack://hd-glasses-app/./node_modules/vant/es/calendar/index.js","webpack://hd-glasses-app/./node_modules/vant/es/image/index.js","webpack://hd-glasses-app/./node_modules/vant/es/card/index.js","webpack://hd-glasses-app/./node_modules/vant/es/tab/index.js","webpack://hd-glasses-app/./node_modules/vant/es/tabs/utils.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/dom/style.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/interceptor.js","webpack://hd-glasses-app/./node_modules/vant/es/tabs/Title.js","webpack://hd-glasses-app/./node_modules/vant/es/sticky/index.js","webpack://hd-glasses-app/./node_modules/vant/es/tabs/Content.js","webpack://hd-glasses-app/./node_modules/vant/es/tabs/index.js","webpack://hd-glasses-app/./node_modules/vant/es/cascader/index.js","webpack://hd-glasses-app/./node_modules/vant/es/cell-group/index.js","webpack://hd-glasses-app/./node_modules/vant/es/checkbox/index.js","webpack://hd-glasses-app/./node_modules/vant/es/checkbox-group/index.js","webpack://hd-glasses-app/./node_modules/vant/es/circle/index.js","webpack://hd-glasses-app/./node_modules/vant/es/col/index.js","webpack://hd-glasses-app/./node_modules/vant/es/collapse/index.js","webpack://hd-glasses-app/./node_modules/vant/es/collapse-item/index.js","webpack://hd-glasses-app/./node_modules/vant/es/contact-card/index.js","webpack://hd-glasses-app/./node_modules/vant/es/contact-edit/index.js","webpack://hd-glasses-app/./node_modules/vant/es/contact-list/index.js","webpack://hd-glasses-app/./node_modules/vant/es/count-down/utils.js","webpack://hd-glasses-app/./node_modules/vant/es/count-down/index.js","webpack://hd-glasses-app/./node_modules/vant/es/coupon/index.js","webpack://hd-glasses-app/./node_modules/vant/es/coupon-cell/index.js","webpack://hd-glasses-app/./node_modules/vant/es/coupon-list/index.js","webpack://hd-glasses-app/./node_modules/vant/es/datetime-picker/shared.js","webpack://hd-glasses-app/./node_modules/vant/es/datetime-picker/TimePicker.js","webpack://hd-glasses-app/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://hd-glasses-app/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://hd-glasses-app/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://hd-glasses-app/./node_modules/vant/es/datetime-picker/DatePicker.js","webpack://hd-glasses-app/./node_modules/vant/es/datetime-picker/index.js","webpack://hd-glasses-app/./node_modules/vant/es/divider/index.js","webpack://hd-glasses-app/./node_modules/vant/es/dropdown-item/index.js","webpack://hd-glasses-app/./node_modules/vant/es/mixins/click-outside.js","webpack://hd-glasses-app/./node_modules/vant/es/dropdown-menu/index.js","webpack://hd-glasses-app/./node_modules/vant/es/empty/Network.js","webpack://hd-glasses-app/./node_modules/vant/es/empty/index.js","webpack://hd-glasses-app/./node_modules/vant/es/form/index.js","webpack://hd-glasses-app/./node_modules/vant/es/goods-action-icon/index.js","webpack://hd-glasses-app/./node_modules/vant/es/grid/index.js","webpack://hd-glasses-app/./node_modules/vant/es/grid-item/index.js","webpack://hd-glasses-app/./node_modules/vant/es/image-preview/shared.js","webpack://hd-glasses-app/./node_modules/vant/es/swipe/index.js","webpack://hd-glasses-app/./node_modules/vant/es/swipe-item/index.js","webpack://hd-glasses-app/./node_modules/vant/es/image-preview/ImagePreviewItem.js","webpack://hd-glasses-app/./node_modules/vant/es/image-preview/index.js","webpack://hd-glasses-app/./node_modules/vant/es/image-preview/ImagePreview.js","webpack://hd-glasses-app/./node_modules/vant/es/index-anchor/index.js","webpack://hd-glasses-app/./node_modules/vant/es/index-bar/index.js","webpack://hd-glasses-app/./node_modules/vant/es/list/index.js","webpack://hd-glasses-app/./node_modules/vant/es/nav-bar/index.js","webpack://hd-glasses-app/./node_modules/vant/es/notice-bar/index.js","webpack://hd-glasses-app/./node_modules/vant/es/notify/Notify.js","webpack://hd-glasses-app/./node_modules/vant/es/notify/index.js","webpack://hd-glasses-app/./node_modules/vant/es/number-keyboard/DeleteIcon.js","webpack://hd-glasses-app/./node_modules/vant/es/number-keyboard/CollapseIcon.js","webpack://hd-glasses-app/./node_modules/vant/es/number-keyboard/Key.js","webpack://hd-glasses-app/./node_modules/vant/es/number-keyboard/index.js","webpack://hd-glasses-app/./node_modules/vant/es/pagination/index.js","webpack://hd-glasses-app/./node_modules/vant/es/panel/index.js","webpack://hd-glasses-app/./node_modules/vant/es/password-input/index.js","webpack://hd-glasses-app/./node_modules/@vant/popperjs/dist/index.esm.mjs","webpack://hd-glasses-app/./node_modules/vant/es/popover/index.js","webpack://hd-glasses-app/./node_modules/vant/es/progress/index.js","webpack://hd-glasses-app/./node_modules/vant/es/pull-refresh/index.js","webpack://hd-glasses-app/./node_modules/vant/es/rate/index.js","webpack://hd-glasses-app/./node_modules/vant/es/row/index.js","webpack://hd-glasses-app/./node_modules/vant/es/search/index.js","webpack://hd-glasses-app/./node_modules/vant/es/share-sheet/index.js","webpack://hd-glasses-app/./node_modules/vant/es/sidebar/index.js","webpack://hd-glasses-app/./node_modules/vant/es/sidebar-item/index.js","webpack://hd-glasses-app/./node_modules/vant/es/skeleton/index.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/lang.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/constants.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/utils/sku-helper.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuHeader.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuHeaderItem.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuRow.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuRowItem.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuRowPropItem.js","webpack://hd-glasses-app/./node_modules/vant/es/stepper/index.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuStepper.js","webpack://hd-glasses-app/./node_modules/vant/es/utils/validate/email.js","webpack://hd-glasses-app/./node_modules/vant/es/uploader/utils.js","webpack://hd-glasses-app/./node_modules/vant/es/uploader/index.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuImgUploader.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/utils/time-helper.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuDateTimeField.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuMessages.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/components/SkuActions.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/Sku.js","webpack://hd-glasses-app/./node_modules/vant/es/sku/index.js","webpack://hd-glasses-app/./node_modules/vant/es/slider/index.js","webpack://hd-glasses-app/./node_modules/vant/es/step/index.js","webpack://hd-glasses-app/./node_modules/vant/es/steps/index.js","webpack://hd-glasses-app/./node_modules/vant/es/submit-bar/index.js","webpack://hd-glasses-app/./node_modules/vant/es/swipe-cell/index.js","webpack://hd-glasses-app/./node_modules/vant/es/switch-cell/index.js","webpack://hd-glasses-app/./node_modules/vant/es/tabbar/index.js","webpack://hd-glasses-app/./node_modules/vant/es/tabbar-item/index.js","webpack://hd-glasses-app/./node_modules/vant/es/tree-select/index.js","webpack://hd-glasses-app/./node_modules/vant/es/index.js","webpack://hd-glasses-app/./node_modules/vue-router/dist/vue-router.esm.js","webpack://hd-glasses-app/./node_modules/vue/dist/vue.runtime.esm.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/bind.js","webpack://hd-glasses-app/./node_modules/axios/lib/utils.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/AxiosError.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/null.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/toFormData.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/buildURL.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/InterceptorManager.js","webpack://hd-glasses-app/./node_modules/axios/lib/defaults/transitional.js","webpack://hd-glasses-app/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://hd-glasses-app/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://hd-glasses-app/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://hd-glasses-app/./node_modules/axios/lib/platform/browser/index.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://hd-glasses-app/./node_modules/axios/lib/defaults/index.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/transformData.js","webpack://hd-glasses-app/./node_modules/axios/lib/cancel/isCancel.js","webpack://hd-glasses-app/./node_modules/axios/lib/cancel/CanceledError.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/settle.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/cookies.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/combineURLs.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/buildFullPath.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/speedometer.js","webpack://hd-glasses-app/./node_modules/axios/lib/adapters/xhr.js","webpack://hd-glasses-app/./node_modules/axios/lib/adapters/adapters.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/dispatchRequest.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/mergeConfig.js","webpack://hd-glasses-app/./node_modules/axios/lib/env/data.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/validator.js","webpack://hd-glasses-app/./node_modules/axios/lib/core/Axios.js","webpack://hd-glasses-app/./node_modules/axios/lib/cancel/CancelToken.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/spread.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://hd-glasses-app/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://hd-glasses-app/./node_modules/axios/lib/axios.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\n/* global Bun -- Deno case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","\"use strict\";function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c= 2) {\n var fakeBody = document.createElement('body')\n var testElement = document.createElement('div')\n testElement.style.border = '.5px solid transparent'\n fakeBody.appendChild(testElement)\n docEl.appendChild(fakeBody)\n if (testElement.offsetHeight === 1) {\n docEl.classList.add('hairlines')\n }\n docEl.removeChild(fakeBody)\n }\n}(window, document))\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","/**\n * bem helper\n * b() // 'button'\n * b('text') // 'button__text'\n * b({ disabled }) // 'button button--disabled'\n * b('text', { disabled }) // 'button__text button__text--disabled'\n * b(['disabled', 'primary']) // 'button button--disabled button--primary'\n */\nfunction gen(name, mods) {\n if (!mods) {\n return '';\n }\n\n if (typeof mods === 'string') {\n return \" \" + name + \"--\" + mods;\n }\n\n if (Array.isArray(mods)) {\n return mods.reduce(function (ret, item) {\n return ret + gen(name, item);\n }, '');\n }\n\n return Object.keys(mods).reduce(function (ret, key) {\n return ret + (mods[key] ? gen(name, key) : '');\n }, '');\n}\n\nexport function createBEM(name) {\n return function (el, mods) {\n if (el && typeof el !== 'string') {\n mods = el;\n el = '';\n }\n\n el = el ? name + \"__\" + el : name;\n return \"\" + el + gen(el, mods);\n };\n}","import Vue from 'vue';\nexport { createNamespace } from './create';\nexport { addUnit } from './format/unit';\nexport var inBrowser = typeof window !== 'undefined';\nexport var isServer = Vue.prototype.$isServer; // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nexport function noop() {}\nexport function isDef(val) {\n return val !== undefined && val !== null;\n}\nexport function isFunction(val) {\n return typeof val === 'function';\n}\nexport function isObject(val) {\n return val !== null && typeof val === 'object';\n}\nexport function isPromise(val) {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n}\nexport function get(object, path) {\n var keys = path.split('.');\n var result = object;\n keys.forEach(function (key) {\n var _result$key;\n\n result = isObject(result) ? (_result$key = result[key]) != null ? _result$key : '' : '';\n });\n return result;\n}\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @function isEmpty\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n\nexport function isEmpty(value) {\n if (value == null) {\n return true;\n }\n\n if (typeof value !== 'object') {\n return true;\n }\n\n return Object.keys(value).length === 0;\n}","var camelizeRE = /-(\\w)/g;\nexport function camelize(str) {\n return str.replace(camelizeRE, function (_, c) {\n return c.toUpperCase();\n });\n}\nexport function padZero(num, targetLength) {\n if (targetLength === void 0) {\n targetLength = 2;\n }\n\n var str = num + '';\n\n while (str.length < targetLength) {\n str = '0' + str;\n }\n\n return str;\n}","/**\n * Use scopedSlots in Vue 2.6+\n * downgrade to slots in lower version\n */\nexport var SlotsMixin = {\n methods: {\n slots: function slots(name, props) {\n if (name === void 0) {\n name = 'default';\n }\n\n var $slots = this.$slots,\n $scopedSlots = this.$scopedSlots;\n var scopedSlot = $scopedSlots[name];\n\n if (scopedSlot) {\n return scopedSlot(props);\n }\n\n return $slots[name];\n }\n }\n};","/**\n * Create a basic component with common options\n */\nimport '../../locale';\nimport { isFunction } from '..';\nimport { camelize } from '../format/string';\nimport { SlotsMixin } from '../../mixins/slots';\nimport Vue from 'vue';\n\nfunction install(Vue) {\n var name = this.name;\n Vue.component(name, this);\n Vue.component(camelize(\"-\" + name), this);\n} // unify slots & scopedSlots\n\n\nexport function unifySlots(context) {\n // use data.scopedSlots in lower Vue version\n var scopedSlots = context.scopedSlots || context.data.scopedSlots || {};\n var slots = context.slots();\n Object.keys(slots).forEach(function (key) {\n if (!scopedSlots[key]) {\n scopedSlots[key] = function () {\n return slots[key];\n };\n }\n });\n return scopedSlots;\n} // should be removed after Vue 3\n\nfunction transformFunctionComponent(pure) {\n return {\n functional: true,\n props: pure.props,\n model: pure.model,\n render: function render(h, context) {\n return pure(h, context.props, unifySlots(context), context);\n }\n };\n}\n\nexport function createComponent(name) {\n return function (sfc) {\n if (isFunction(sfc)) {\n sfc = transformFunctionComponent(sfc);\n }\n\n if (!sfc.functional) {\n sfc.mixins = sfc.mixins || [];\n sfc.mixins.push(SlotsMixin);\n }\n\n sfc.name = name;\n sfc.install = install;\n return sfc;\n };\n}","import { isDef, isObject } from '.';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction assignKey(to, from, key) {\n var val = from[key];\n\n if (!isDef(val)) {\n return;\n }\n\n if (!hasOwnProperty.call(to, key) || !isObject(val)) {\n to[key] = val;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n to[key] = deepAssign(Object(to[key]), from[key]);\n }\n}\n\nexport function deepAssign(to, from) {\n Object.keys(from).forEach(function (key) {\n assignKey(to, from, key);\n });\n return to;\n}","export default {\n name: '姓名',\n tel: '电话',\n save: '保存',\n confirm: '确认',\n cancel: '取消',\n delete: '删除',\n complete: '完成',\n loading: '加载中...',\n telEmpty: '请填写电话',\n nameEmpty: '请填写姓名',\n nameInvalid: '请输入正确的姓名',\n confirmDelete: '确定要删除吗',\n telInvalid: '请输入正确的手机号',\n vanCalendar: {\n end: '结束',\n start: '开始',\n title: '日期选择',\n confirm: '确定',\n startEnd: '开始/结束',\n weekdays: ['日', '一', '二', '三', '四', '五', '六'],\n monthTitle: function monthTitle(year, month) {\n return year + \"\\u5E74\" + month + \"\\u6708\";\n },\n rangePrompt: function rangePrompt(maxRange) {\n return \"\\u9009\\u62E9\\u5929\\u6570\\u4E0D\\u80FD\\u8D85\\u8FC7 \" + maxRange + \" \\u5929\";\n }\n },\n vanCascader: {\n select: '请选择'\n },\n vanContactCard: {\n addText: '添加联系人'\n },\n vanContactList: {\n addText: '新建联系人'\n },\n vanPagination: {\n prev: '上一页',\n next: '下一页'\n },\n vanPullRefresh: {\n pulling: '下拉即可刷新...',\n loosing: '释放即可刷新...'\n },\n vanSubmitBar: {\n label: '合计:'\n },\n vanCoupon: {\n unlimited: '无使用门槛',\n discount: function discount(_discount) {\n return _discount + \"\\u6298\";\n },\n condition: function condition(_condition) {\n return \"\\u6EE1\" + _condition + \"\\u5143\\u53EF\\u7528\";\n }\n },\n vanCouponCell: {\n title: '优惠券',\n tips: '暂无可用',\n count: function count(_count) {\n return _count + \"\\u5F20\\u53EF\\u7528\";\n }\n },\n vanCouponList: {\n empty: '暂无优惠券',\n exchange: '兑换',\n close: '不使用优惠券',\n enable: '可用',\n disabled: '不可用',\n placeholder: '请输入优惠码'\n },\n vanAddressEdit: {\n area: '地区',\n postal: '邮政编码',\n areaEmpty: '请选择地区',\n addressEmpty: '请填写详细地址',\n postalEmpty: '邮政编码格式不正确',\n defaultAddress: '设为默认收货地址',\n telPlaceholder: '收货人手机号',\n namePlaceholder: '收货人姓名',\n areaPlaceholder: '选择省 / 市 / 区'\n },\n vanAddressEditDetail: {\n label: '详细地址',\n placeholder: '街道门牌、楼层房间号等信息'\n },\n vanAddressList: {\n add: '新增地址'\n }\n};","import Vue from 'vue';\nimport { deepAssign } from '../utils/deep-assign';\nimport defaultMessages from './lang/zh-CN';\nvar proto = Vue.prototype;\nvar defineReactive = Vue.util.defineReactive;\ndefineReactive(proto, '$vantLang', 'zh-CN');\ndefineReactive(proto, '$vantMessages', {\n 'zh-CN': defaultMessages\n});\nexport default {\n messages: function messages() {\n return proto.$vantMessages[proto.$vantLang];\n },\n use: function use(lang, messages) {\n var _this$add;\n\n proto.$vantLang = lang;\n this.add((_this$add = {}, _this$add[lang] = messages, _this$add));\n },\n add: function add(messages) {\n if (messages === void 0) {\n messages = {};\n }\n\n deepAssign(proto.$vantMessages, messages);\n }\n};","import { get, isFunction } from '..';\nimport { camelize } from '../format/string';\nimport locale from '../../locale';\nexport function createI18N(name) {\n var prefix = camelize(name) + '.';\n return function (path) {\n var messages = locale.messages();\n var message = get(messages, prefix + path) || get(messages, path);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return isFunction(message) ? message.apply(void 0, args) : message;\n };\n}","import { createBEM } from './bem';\nimport { createComponent } from './component';\nimport { createI18N } from './i18n';\nexport function createNamespace(name) {\n name = 'van-' + name;\n return [createComponent(name), createBEM(name), createI18N(name)];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nvar inheritKey = ['ref', 'key', 'style', 'class', 'attrs', 'refInFor', 'nativeOn', 'directives', 'staticClass', 'staticStyle'];\nvar mapInheritKey = {\n nativeOn: 'on'\n}; // inherit partial context, map nativeOn to on\n\nexport function inherit(context, inheritListeners) {\n var result = inheritKey.reduce(function (obj, key) {\n if (context.data[key]) {\n obj[mapInheritKey[key] || key] = context.data[key];\n }\n\n return obj;\n }, {});\n\n if (inheritListeners) {\n result.on = result.on || {};\n\n _extends(result.on, context.data.on);\n }\n\n return result;\n} // emit event\n\nexport function emit(context, eventName) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var listeners = context.listeners[eventName];\n\n if (listeners) {\n if (Array.isArray(listeners)) {\n listeners.forEach(function (listener) {\n listener.apply(void 0, args);\n });\n } else {\n listeners.apply(void 0, args);\n }\n }\n} // mount functional component\n\nexport function mount(Component, data) {\n var instance = new Vue({\n el: document.createElement('div'),\n props: Component.props,\n render: function render(h) {\n return h(Component, _extends({\n props: this.$props\n }, data));\n }\n });\n document.body.appendChild(instance.$el);\n return instance;\n}","export var context = {\n zIndex: 2000,\n lockCount: 0,\n stack: [],\n find: function find(vm) {\n return this.stack.filter(function (item) {\n return item.vm === vm;\n })[0];\n },\n remove: function remove(vm) {\n var item = this.find(vm);\n if (!item) return;\n item.vm = null;\n item.overlay = null;\n var index = this.stack.indexOf(item);\n this.stack.splice(index, 1);\n }\n};","import { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n // eslint-disable-next-line getter-return\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isDef, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Types\n\nvar _createNamespace = createNamespace('overlay'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction preventTouchMove(event) {\n preventDefault(event, true);\n}\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n if (isDef(props.duration)) {\n style.animationDuration = props.duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.show\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": props.lockScroll ? preventTouchMove : noop\n }\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()])]);\n}\n\nOverlay.props = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n className: null,\n customStyle: Object,\n lockScroll: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(Overlay);","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nimport { removeNode } from '../../utils/dom/node';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\n\nfunction mountOverlay(vm) {\n return mount(Overlay, {\n on: {\n // close popup when overlay clicked & closeOnClickOverlay is true\n click: function click() {\n vm.$emit('click-overlay');\n\n if (vm.closeOnClickOverlay) {\n if (vm.onClickOverlay) {\n vm.onClickOverlay();\n } else {\n vm.close();\n }\n }\n }\n }\n });\n}\n\nexport function updateOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n var el = vm.$el;\n var config = item.config,\n overlay = item.overlay;\n\n if (el && el.parentNode) {\n el.parentNode.insertBefore(overlay.$el, el);\n }\n\n _extends(overlay, defaultConfig, config, {\n show: true\n });\n }\n}\nexport function openOverlay(vm, config) {\n var item = context.find(vm);\n\n if (item) {\n item.config = config;\n } else {\n var overlay = mountOverlay(vm);\n context.stack.push({\n vm: vm,\n config: config,\n overlay: overlay\n });\n }\n\n updateOverlay(vm);\n}\nexport function closeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n item.overlay.show = false;\n }\n}\nexport function removeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n removeNode(item.overlay.$el);\n context.remove(vm);\n }\n}","function isWindow(val) {\n return val === window;\n} // get nearest scroll element\n// https://github.com/vant-ui/vant/issues/3823\n\n\nvar overflowScrollReg = /scroll|auto|overlay/i;\nexport function getScroller(el, root) {\n if (root === void 0) {\n root = window;\n }\n\n var node = el;\n\n while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== root) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowScrollReg.test(overflowY)) {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return root;\n}\nexport function getScrollTop(el) {\n var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop\n\n return Math.max(top, 0);\n}\nexport function setScrollTop(el, value) {\n if ('scrollTop' in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nexport function setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n} // get distance from element top to page top or scroller top\n\nexport function getElementTop(el, scroller) {\n if (isWindow(el)) {\n return 0;\n }\n\n var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return el.getBoundingClientRect().top + scrollTop;\n}\nexport function getVisibleHeight(el) {\n if (isWindow(el)) {\n return el.innerHeight;\n }\n\n return el.getBoundingClientRect().height;\n}\nexport function getVisibleTop(el) {\n if (isWindow(el)) {\n return 0;\n }\n\n return el.getBoundingClientRect().top;\n}","import { on } from '../utils/dom/event';\n\nfunction getDirection(x, y) {\n if (x > y) {\n return 'horizontal';\n }\n\n if (y > x) {\n return 'vertical';\n }\n\n return '';\n}\n\nexport var TouchMixin = {\n data: function data() {\n return {\n direction: ''\n };\n },\n methods: {\n touchStart: function touchStart(event) {\n this.resetTouchStatus();\n this.startX = event.touches[0].clientX;\n this.startY = event.touches[0].clientY;\n },\n touchMove: function touchMove(event) {\n var touch = event.touches[0]; // safari back will set clientX to negative number\n\n this.deltaX = touch.clientX < 0 ? 0 : touch.clientX - this.startX;\n this.deltaY = touch.clientY - this.startY;\n this.offsetX = Math.abs(this.deltaX);\n this.offsetY = Math.abs(this.deltaY); // lock direction when distance is greater than a certain value\n\n var LOCK_DIRECTION_DISTANCE = 10;\n\n if (!this.direction || this.offsetX < LOCK_DIRECTION_DISTANCE && this.offsetY < LOCK_DIRECTION_DISTANCE) {\n this.direction = getDirection(this.offsetX, this.offsetY);\n }\n },\n resetTouchStatus: function resetTouchStatus() {\n this.direction = '';\n this.deltaX = 0;\n this.deltaY = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n },\n // avoid Vue 2.6 event bubble issues by manually binding events\n // https://github.com/vant-ui/vant/issues/3015\n bindTouchEvent: function bindTouchEvent(el) {\n var onTouchStart = this.onTouchStart,\n onTouchMove = this.onTouchMove,\n onTouchEnd = this.onTouchEnd;\n on(el, 'touchstart', onTouchStart);\n on(el, 'touchmove', onTouchMove);\n\n if (onTouchEnd) {\n on(el, 'touchend', onTouchEnd);\n on(el, 'touchcancel', onTouchEnd);\n }\n }\n }\n};","function getElement(selector) {\n if (typeof selector === 'string') {\n return document.querySelector(selector);\n }\n\n return selector();\n}\n\nexport function PortalMixin(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n ref = _ref.ref,\n afterPortal = _ref.afterPortal;\n\n return {\n props: {\n getContainer: [String, Function]\n },\n watch: {\n getContainer: 'portal'\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.portal();\n }\n },\n methods: {\n portal: function portal() {\n var getContainer = this.getContainer;\n var el = ref ? this.$refs[ref] : this.$el;\n var container;\n\n if (getContainer) {\n container = getElement(getContainer);\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== el.parentNode) {\n container.appendChild(el);\n }\n\n if (afterPortal) {\n afterPortal.call(this);\n }\n }\n }\n };\n}","/**\n * Bind event when mounted or activated\n */\nimport { on, off } from '../utils/dom/event';\nvar uid = 0;\nexport function BindEventMixin(handler) {\n var key = \"binded_\" + uid++;\n\n function bind() {\n if (!this[key]) {\n handler.call(this, on, true);\n this[key] = true;\n }\n }\n\n function unbind() {\n if (this[key]) {\n handler.call(this, off, false);\n this[key] = false;\n }\n }\n\n return {\n mounted: bind,\n activated: bind,\n deactivated: unbind,\n beforeDestroy: unbind\n };\n}","import { on, off } from '../utils/dom/event';\nimport { BindEventMixin } from './bind-event';\nexport var CloseOnPopstateMixin = {\n mixins: [BindEventMixin(function (bind, isBind) {\n this.handlePopstate(isBind && this.closeOnPopstate);\n })],\n props: {\n closeOnPopstate: Boolean\n },\n data: function data() {\n return {\n bindStatus: false\n };\n },\n watch: {\n closeOnPopstate: function closeOnPopstate(val) {\n this.handlePopstate(val);\n }\n },\n methods: {\n onPopstate: function onPopstate() {\n this.close();\n this.shouldReopen = false;\n },\n handlePopstate: function handlePopstate(bind) {\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (this.bindStatus !== bind) {\n this.bindStatus = bind;\n var action = bind ? on : off;\n action(window, 'popstate', this.onPopstate);\n }\n }\n }\n};","import { isDef, inBrowser } from '..';\nimport { isNumeric } from '../validate/number';\nexport function addUnit(value) {\n if (!isDef(value)) {\n return undefined;\n }\n\n value = String(value);\n return isNumeric(value) ? value + \"px\" : value;\n} // cache\n\nvar rootFontSize;\n\nfunction getRootFontSize() {\n if (!rootFontSize) {\n var doc = document.documentElement;\n var fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;\n rootFontSize = parseFloat(fontSize);\n }\n\n return rootFontSize;\n}\n\nfunction convertRem(value) {\n value = value.replace(/rem/g, '');\n return +value * getRootFontSize();\n}\n\nfunction convertVw(value) {\n value = value.replace(/vw/g, '');\n return +value * window.innerWidth / 100;\n}\n\nfunction convertVh(value) {\n value = value.replace(/vh/g, '');\n return +value * window.innerHeight / 100;\n}\n\nexport function unitToPx(value) {\n if (typeof value === 'number') {\n return value;\n }\n\n if (inBrowser) {\n if (value.indexOf('rem') !== -1) {\n return convertRem(value);\n }\n\n if (value.indexOf('vw') !== -1) {\n return convertVw(value);\n }\n\n if (value.indexOf('vh') !== -1) {\n return convertVh(value);\n }\n }\n\n return parseFloat(value);\n}","// Context\nimport { context } from './context';\nimport { openOverlay, closeOverlay, updateOverlay, removeOverlay } from './overlay'; // Utils\n\nimport { on, off, preventDefault } from '../../utils/dom/event';\nimport { removeNode } from '../../utils/dom/node';\nimport { getScroller } from '../../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../touch';\nimport { PortalMixin } from '../portal';\nimport { CloseOnPopstateMixin } from '../close-on-popstate';\nexport var popupMixinProps = {\n // Initial rendering animation\n transitionAppear: Boolean,\n // whether to show popup\n value: Boolean,\n // whether to show overlay\n overlay: Boolean,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: String,\n // whether to close popup when overlay is clicked\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [Number, String],\n // prevent body scroll\n lockScroll: {\n type: Boolean,\n default: true\n },\n // whether to lazy render\n lazyRender: {\n type: Boolean,\n default: true\n }\n};\nexport function PopupMixin(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n mixins: [TouchMixin, CloseOnPopstateMixin, PortalMixin({\n afterPortal: function afterPortal() {\n if (this.overlay) {\n updateOverlay();\n }\n }\n })],\n provide: function provide() {\n return {\n vanPopup: this\n };\n },\n props: popupMixinProps,\n data: function data() {\n this.onReopenCallback = [];\n return {\n inited: this.value\n };\n },\n computed: {\n shouldRender: function shouldRender() {\n return this.inited || !this.lazyRender;\n }\n },\n watch: {\n value: function value(val) {\n var type = val ? 'open' : 'close';\n this.inited = this.inited || this.value;\n this[type]();\n\n if (!options.skipToggleEvent) {\n this.$emit(type);\n }\n },\n overlay: 'renderOverlay'\n },\n mounted: function mounted() {\n if (this.value) {\n this.open();\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.shouldReopen) {\n this.$emit('input', true);\n this.shouldReopen = false;\n }\n },\n beforeDestroy: function beforeDestroy() {\n removeOverlay(this);\n\n if (this.opened) {\n this.removeLock();\n }\n\n if (this.getContainer) {\n removeNode(this.$el);\n }\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.value) {\n this.close();\n this.shouldReopen = true;\n }\n },\n methods: {\n open: function open() {\n /* istanbul ignore next */\n if (this.$isServer || this.opened) {\n return;\n } // cover default zIndex\n\n\n if (this.zIndex !== undefined) {\n context.zIndex = this.zIndex;\n }\n\n this.opened = true;\n this.renderOverlay();\n this.addLock();\n this.onReopenCallback.forEach(function (callback) {\n callback();\n });\n },\n addLock: function addLock() {\n if (this.lockScroll) {\n on(document, 'touchstart', this.touchStart);\n on(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.add('van-overflow-hidden');\n }\n\n context.lockCount++;\n }\n },\n removeLock: function removeLock() {\n if (this.lockScroll && context.lockCount) {\n context.lockCount--;\n off(document, 'touchstart', this.touchStart);\n off(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.remove('van-overflow-hidden');\n }\n }\n },\n close: function close() {\n if (!this.opened) {\n return;\n }\n\n closeOverlay(this);\n this.opened = false;\n this.removeLock();\n this.$emit('input', false);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScroller(event.target, this.$el);\n var scrollHeight = el.scrollHeight,\n offsetHeight = el.offsetHeight,\n scrollTop = el.scrollTop;\n var status = '11';\n /* istanbul ignore next */\n\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? '00' : '01';\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = '10';\n }\n /* istanbul ignore next */\n\n\n if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n },\n renderOverlay: function renderOverlay() {\n var _this = this;\n\n if (this.$isServer || !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n _this.updateZIndex(_this.overlay ? 1 : 0);\n\n if (_this.overlay) {\n openOverlay(_this, {\n zIndex: context.zIndex++,\n duration: _this.duration,\n className: _this.overlayClass,\n customStyle: _this.overlayStyle\n });\n } else {\n closeOverlay(_this);\n }\n });\n },\n updateZIndex: function updateZIndex(value) {\n if (value === void 0) {\n value = 0;\n }\n\n this.$el.style.zIndex = ++context.zIndex + value;\n },\n onReopen: function onReopen(callback) {\n this.onReopenCallback.push(callback);\n }\n }\n };\n}","export function isNumeric(val) {\n return /^\\d+(\\.\\d+)?$/.test(val);\n}\nexport function isNaN(val) {\n if (Number.isNaN) {\n return Number.isNaN(val);\n } // eslint-disable-next-line no-self-compare\n\n\n return val !== val;\n}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('info'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Info(h, props, slots, ctx) {\n var dot = props.dot,\n info = props.info;\n var showInfo = isDef(info) && info !== '';\n\n if (!dot && !showInfo) {\n return;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n dot: dot\n })\n }, inherit(ctx, true)]), [dot ? '' : props.info]);\n}\n\nInfo.props = {\n dot: Boolean,\n info: [Number, String]\n};\nexport default createComponent(Info);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Info from '../info'; // Types\n\nvar _createNamespace = createNamespace('icon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction isImage(name) {\n return name ? name.indexOf('/') !== -1 : false;\n} // compatible with legacy usage, should be removed in next major version\n\n\nvar LEGACY_MAP = {\n medel: 'medal',\n 'medel-o': 'medal-o',\n 'calender-o': 'calendar-o'\n};\n\nfunction correctName(name) {\n return name && LEGACY_MAP[name] || name;\n}\n\nfunction Icon(h, props, slots, ctx) {\n var _props$badge;\n\n var name = correctName(props.name);\n var imageIcon = isImage(name);\n\n if (process.env.NODE_ENV === 'development' && props.info) {\n console.warn('[Vant] Icon: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(props.tag, _mergeJSXProps([{\n \"class\": [props.classPrefix, imageIcon ? '' : props.classPrefix + \"-\" + name],\n \"style\": {\n color: props.color,\n fontSize: addUnit(props.size)\n }\n }, inherit(ctx, true)]), [slots.default && slots.default(), imageIcon && h(\"img\", {\n \"class\": bem('image'),\n \"attrs\": {\n \"src\": name\n }\n }), h(Info, {\n \"attrs\": {\n \"dot\": props.dot,\n \"info\": (_props$badge = props.badge) != null ? _props$badge : props.info\n }\n })]);\n}\n\nIcon.props = {\n dot: Boolean,\n name: String,\n size: [Number, String],\n // @deprecated\n // should be removed in next major version\n info: [Number, String],\n badge: [Number, String],\n color: String,\n tag: {\n type: String,\n default: 'i'\n },\n classPrefix: {\n type: String,\n default: bem()\n }\n};\nexport default createComponent(Icon);","import { createNamespace, isDef } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('popup'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n round: Boolean,\n duration: [Number, String],\n closeable: Boolean,\n transition: String,\n safeAreaInsetBottom: Boolean,\n closeIcon: {\n type: String,\n default: 'cross'\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n },\n position: {\n type: String,\n default: 'center'\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n },\n beforeCreate: function beforeCreate() {\n var _this = this;\n\n var createEmitter = function createEmitter(eventName) {\n return function (event) {\n return _this.$emit(eventName, event);\n };\n };\n\n this.onClick = createEmitter('click');\n this.onOpened = createEmitter('opened');\n this.onClosed = createEmitter('closed');\n },\n methods: {\n onClickCloseIcon: function onClickCloseIcon(event) {\n this.$emit('click-close-icon', event);\n this.close();\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var round = this.round,\n position = this.position,\n duration = this.duration;\n var isCenter = position === 'center';\n var transitionName = this.transition || (isCenter ? 'van-fade' : \"van-popup-slide-\" + position);\n var style = {};\n\n if (isDef(duration)) {\n var key = isCenter ? 'animationDuration' : 'transitionDuration';\n style[key] = duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"appear\": this.transitionAppear,\n \"name\": transitionName\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"style\": style,\n \"class\": bem((_bem = {\n round: round\n }, _bem[position] = position, _bem['safe-area-inset-bottom'] = this.safeAreaInsetBottom, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots(), this.closeable && h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.onClickCloseIcon\n }\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('loading'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction LoadingIcon(h, props) {\n if (props.type === 'spinner') {\n var Spin = [];\n\n for (var i = 0; i < 12; i++) {\n Spin.push(h(\"i\"));\n }\n\n return Spin;\n }\n\n return h(\"svg\", {\n \"class\": bem('circular'),\n \"attrs\": {\n \"viewBox\": \"25 25 50 50\"\n }\n }, [h(\"circle\", {\n \"attrs\": {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n }\n })]);\n}\n\nfunction LoadingText(h, props, slots) {\n if (slots.default) {\n var _props$textColor;\n\n var style = {\n fontSize: addUnit(props.textSize),\n color: (_props$textColor = props.textColor) != null ? _props$textColor : props.color\n };\n return h(\"span\", {\n \"class\": bem('text'),\n \"style\": style\n }, [slots.default()]);\n }\n}\n\nfunction Loading(h, props, slots, ctx) {\n var color = props.color,\n size = props.size,\n type = props.type;\n var style = {\n color: color\n };\n\n if (size) {\n var iconSize = addUnit(size);\n style.width = iconSize;\n style.height = iconSize;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem([type, {\n vertical: props.vertical\n }])\n }, inherit(ctx, true)]), [h(\"span\", {\n \"class\": bem('spinner', type),\n \"style\": style\n }, [LoadingIcon(h, props)]), LoadingText(h, props, slots)]);\n}\n\nLoading.props = {\n color: String,\n size: [Number, String],\n vertical: Boolean,\n textSize: [Number, String],\n textColor: String,\n type: {\n type: String,\n default: 'circular'\n }\n};\nexport default createComponent(Loading);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport Vue from 'vue'; // Utils\n\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Mixins\n\nimport { popupMixinProps } from '../mixins/popup'; // Components\n\nimport Icon from '../icon';\nimport Popup from '../popup';\nimport Loading from '../loading'; // Types\n\nvar _createNamespace = createNamespace('action-sheet'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction ActionSheet(h, props, slots, ctx) {\n var title = props.title,\n cancelText = props.cancelText,\n closeable = props.closeable;\n\n function onCancel() {\n emit(ctx, 'input', false);\n emit(ctx, 'cancel');\n }\n\n function Header() {\n if (title) {\n return h(\"div\", {\n \"class\": bem('header')\n }, [title, closeable && h(Icon, {\n \"attrs\": {\n \"name\": props.closeIcon\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onCancel\n }\n })]);\n }\n }\n\n function Option(item, index) {\n var disabled = item.disabled,\n loading = item.loading,\n callback = item.callback;\n\n function onClickOption(event) {\n event.stopPropagation();\n\n if (disabled || loading) {\n return;\n }\n\n if (callback) {\n callback(item);\n }\n\n if (props.closeOnClickAction) {\n emit(ctx, 'input', false);\n }\n\n Vue.nextTick(function () {\n emit(ctx, 'select', item, index);\n });\n }\n\n function OptionContent() {\n if (loading) {\n return h(Loading, {\n \"class\": bem('loading-icon')\n });\n }\n\n return [h(\"span\", {\n \"class\": bem('name')\n }, [item.name]), item.subname && h(\"div\", {\n \"class\": bem('subname')\n }, [item.subname])];\n }\n\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": [bem('item', {\n disabled: disabled,\n loading: loading\n }), item.className],\n \"style\": {\n color: item.color\n },\n \"on\": {\n \"click\": onClickOption\n }\n }, [OptionContent()]);\n }\n\n function CancelText() {\n if (cancelText) {\n return [h(\"div\", {\n \"class\": bem('gap')\n }), h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": onCancel\n }\n }, [cancelText])];\n }\n }\n\n function Description() {\n var description = (slots.description == null ? void 0 : slots.description()) || props.description;\n\n if (description) {\n return h(\"div\", {\n \"class\": bem('description')\n }, [description]);\n }\n }\n\n return h(Popup, _mergeJSXProps([{\n \"class\": bem(),\n \"attrs\": {\n \"position\": \"bottom\",\n \"round\": props.round,\n \"value\": props.value,\n \"overlay\": props.overlay,\n \"duration\": props.duration,\n \"lazyRender\": props.lazyRender,\n \"lockScroll\": props.lockScroll,\n \"getContainer\": props.getContainer,\n \"closeOnPopstate\": props.closeOnPopstate,\n \"closeOnClickOverlay\": props.closeOnClickOverlay,\n \"safeAreaInsetBottom\": props.safeAreaInsetBottom\n }\n }, inherit(ctx, true)]), [Header(), Description(), h(\"div\", {\n \"class\": bem('content')\n }, [props.actions && props.actions.map(Option), slots.default == null ? void 0 : slots.default()]), CancelText()]);\n}\n\nActionSheet.props = _extends({}, popupMixinProps, {\n title: String,\n actions: Array,\n duration: [Number, String],\n cancelText: String,\n description: String,\n getContainer: [String, Function],\n closeOnPopstate: Boolean,\n closeOnClickAction: Boolean,\n round: {\n type: Boolean,\n default: true\n },\n closeable: {\n type: Boolean,\n default: true\n },\n closeIcon: {\n type: String,\n default: 'cross'\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n});\nexport default createComponent(ActionSheet);","export function isMobile(value) {\n value = value.replace(/[^-|\\d]/g, '');\n return /^((\\+86)|(86))?(1)\\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value);\n}","export var DEFAULT_ITEM_HEIGHT = 44;\nexport var pickerProps = {\n title: String,\n loading: Boolean,\n readonly: Boolean,\n itemHeight: [Number, String],\n showToolbar: Boolean,\n cancelButtonText: String,\n confirmButtonText: String,\n allowHtml: {\n type: Boolean,\n default: true\n },\n visibleItemCount: {\n type: [Number, String],\n default: 6\n },\n swipeDuration: {\n type: [Number, String],\n default: 1000\n }\n};","// color\nexport var RED = '#ee0a24'; // border\n\nexport var BORDER = 'van-hairline';\nexport var BORDER_TOP = BORDER + \"--top\";\nexport var BORDER_LEFT = BORDER + \"--left\";\nexport var BORDER_BOTTOM = BORDER + \"--bottom\";\nexport var BORDER_SURROUND = BORDER + \"--surround\";\nexport var BORDER_TOP_BOTTOM = BORDER + \"--top-bottom\";\nexport var BORDER_UNSET_TOP_BOTTOM = BORDER + \"-unset--top-bottom\";","import { isDef } from './index';\nexport function deepClone(obj) {\n if (!isDef(obj)) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (item) {\n return deepClone(item);\n });\n }\n\n if (typeof obj === 'object') {\n var to = {};\n Object.keys(obj).forEach(function (key) {\n to[key] = deepClone(obj[key]);\n });\n return to;\n }\n\n return obj;\n}","export function range(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\n\nfunction trimExtraChar(value, _char, regExp) {\n var index = value.indexOf(_char);\n var prefix = '';\n\n if (index === -1) {\n return value;\n }\n\n if (_char === '-' && index !== 0) {\n return value.slice(0, index);\n }\n\n if (_char === '.' && value.match(/^(\\.|-\\.)/)) {\n prefix = index ? '-0' : '0';\n }\n\n return prefix + value.slice(0, index + 1) + value.slice(index).replace(regExp, '');\n}\n\nexport function formatNumber(value, allowDot, allowMinus) {\n if (allowDot === void 0) {\n allowDot = true;\n }\n\n if (allowMinus === void 0) {\n allowMinus = true;\n }\n\n if (allowDot) {\n value = trimExtraChar(value, '.', /\\./g);\n } else {\n value = value.split('.')[0];\n }\n\n if (allowMinus) {\n value = trimExtraChar(value, '-', /-/g);\n } else {\n value = value.replace(/-/, '');\n }\n\n var regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;\n return value.replace(regExp, '');\n} // add num and avoid float number\n\nexport function addNumber(num1, num2) {\n var cardinal = Math.pow(10, 10);\n return Math.round((num1 + num2) * cardinal) / cardinal;\n}","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { deepClone } from '../utils/deep-clone';\nimport { createNamespace, inBrowser, isObject } from '../utils';\nimport { range } from '../utils/format/number';\nimport { preventDefault, on, off } from '../utils/dom/event';\nimport { TouchMixin } from '../mixins/touch';\nvar DEFAULT_DURATION = 200; // 惯性滑动思路:\n// 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_LIMIT_TIME` 且 move\n// 距离大于 `MOMENTUM_LIMIT_DISTANCE` 时,执行惯性滑动\n\nexport var MOMENTUM_LIMIT_TIME = 300;\nexport var MOMENTUM_LIMIT_DISTANCE = 15;\n\nvar _createNamespace = createNamespace('picker-column'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction getElementTranslateY(element) {\n var style = window.getComputedStyle(element);\n var transform = style.transform || style.webkitTransform;\n var translateY = transform.slice(7, transform.length - 1).split(', ')[5];\n return Number(translateY);\n}\n\nfunction isOptionDisabled(option) {\n return isObject(option) && option.disabled;\n} // use standard WheelEvent:\n// https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n\n\nvar supportMousewheel = inBrowser && 'onwheel' in window;\nvar mousewheelTimer = null;\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n valueKey: String,\n readonly: Boolean,\n allowHtml: Boolean,\n className: String,\n itemHeight: Number,\n defaultIndex: Number,\n swipeDuration: [Number, String],\n visibleItemCount: [Number, String],\n initialOptions: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n offset: 0,\n duration: 0,\n options: deepClone(this.initialOptions),\n currentIndex: this.defaultIndex\n };\n },\n created: function created() {\n if (this.$parent.children) {\n this.$parent.children.push(this);\n }\n\n this.setIndex(this.currentIndex);\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n\n if (supportMousewheel) {\n on(this.$el, 'wheel', this.onMouseWheel, false);\n }\n },\n destroyed: function destroyed() {\n var children = this.$parent.children;\n\n if (children) {\n children.splice(children.indexOf(this), 1);\n }\n\n if (supportMousewheel) {\n off(this.$el, 'wheel');\n }\n },\n watch: {\n initialOptions: 'setOptions',\n defaultIndex: function defaultIndex(val) {\n this.setIndex(val);\n }\n },\n computed: {\n count: function count() {\n return this.options.length;\n },\n baseOffset: function baseOffset() {\n return this.itemHeight * (this.visibleItemCount - 1) / 2;\n }\n },\n methods: {\n setOptions: function setOptions(options) {\n if (JSON.stringify(options) !== JSON.stringify(this.options)) {\n this.options = deepClone(options);\n this.setIndex(this.defaultIndex);\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (this.readonly) {\n return;\n }\n\n this.touchStart(event);\n\n if (this.moving) {\n var translateY = getElementTranslateY(this.$refs.wrapper);\n this.offset = Math.min(0, translateY - this.baseOffset);\n this.startOffset = this.offset;\n } else {\n this.startOffset = this.offset;\n }\n\n this.duration = 0;\n this.transitionEndTrigger = null;\n this.touchStartTime = Date.now();\n this.momentumOffset = this.startOffset;\n },\n onTouchMove: function onTouchMove(event) {\n if (this.readonly) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'vertical') {\n this.moving = true;\n preventDefault(event, true);\n }\n\n this.offset = range(this.startOffset + this.deltaY, -(this.count * this.itemHeight), this.itemHeight);\n var now = Date.now();\n\n if (now - this.touchStartTime > MOMENTUM_LIMIT_TIME) {\n this.touchStartTime = now;\n this.momentumOffset = this.offset;\n }\n },\n onTouchEnd: function onTouchEnd() {\n var _this = this;\n\n if (this.readonly) {\n return;\n }\n\n var distance = this.offset - this.momentumOffset;\n var duration = Date.now() - this.touchStartTime;\n var allowMomentum = duration < MOMENTUM_LIMIT_TIME && Math.abs(distance) > MOMENTUM_LIMIT_DISTANCE;\n\n if (allowMomentum) {\n this.momentum(distance, duration);\n return;\n }\n\n var index = this.getIndexByOffset(this.offset);\n this.duration = DEFAULT_DURATION;\n this.setIndex(index, true); // compatible with desktop scenario\n // use setTimeout to skip the click event Emitted after touchstart\n\n setTimeout(function () {\n _this.moving = false;\n }, 0);\n },\n onMouseWheel: function onMouseWheel(event) {\n var _this2 = this;\n\n if (this.readonly) {\n return;\n }\n\n preventDefault(event, true); // simply combine touchstart and touchmove\n\n var translateY = getElementTranslateY(this.$refs.wrapper);\n this.startOffset = Math.min(0, translateY - this.baseOffset);\n this.momentumOffset = this.startOffset;\n this.transitionEndTrigger = null; // directly use deltaY, see https://caniuse.com/?search=deltaY\n // use deltaY to detect direction for not special setting device\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\n var deltaY = event.deltaY;\n\n if (this.startOffset === 0 && deltaY < 0) {\n return;\n } // Calculate the offset based on itemHeight\n\n\n var itemOffset = this.itemHeight * (deltaY > 0 ? -1 : 1);\n this.offset = range(this.startOffset + itemOffset, -(this.count * this.itemHeight), this.itemHeight);\n\n if (mousewheelTimer) {\n clearTimeout(mousewheelTimer);\n }\n\n mousewheelTimer = setTimeout(function () {\n _this2.onTouchEnd();\n\n _this2.touchStartTime = 0;\n }, MOMENTUM_LIMIT_TIME);\n },\n onTransitionEnd: function onTransitionEnd() {\n this.stopMomentum();\n },\n onClickItem: function onClickItem(index) {\n if (this.moving || this.readonly) {\n return;\n }\n\n this.transitionEndTrigger = null;\n this.duration = DEFAULT_DURATION;\n this.setIndex(index, true);\n },\n adjustIndex: function adjustIndex(index) {\n index = range(index, 0, this.count);\n\n for (var i = index; i < this.count; i++) {\n if (!isOptionDisabled(this.options[i])) return i;\n }\n\n for (var _i = index - 1; _i >= 0; _i--) {\n if (!isOptionDisabled(this.options[_i])) return _i;\n }\n },\n getOptionText: function getOptionText(option) {\n if (isObject(option) && this.valueKey in option) {\n return option[this.valueKey];\n }\n\n return option;\n },\n setIndex: function setIndex(index, emitChange) {\n var _this3 = this;\n\n index = this.adjustIndex(index) || 0;\n var offset = -index * this.itemHeight;\n\n var trigger = function trigger() {\n if (index !== _this3.currentIndex) {\n _this3.currentIndex = index;\n\n if (emitChange) {\n _this3.$emit('change', index);\n }\n }\n }; // trigger the change event after transitionend when moving\n\n\n if (this.moving && offset !== this.offset) {\n this.transitionEndTrigger = trigger;\n } else {\n trigger();\n }\n\n this.offset = offset;\n },\n setValue: function setValue(value) {\n var options = this.options;\n\n for (var i = 0; i < options.length; i++) {\n if (this.getOptionText(options[i]) === value) {\n return this.setIndex(i);\n }\n }\n },\n getValue: function getValue() {\n return this.options[this.currentIndex];\n },\n getIndexByOffset: function getIndexByOffset(offset) {\n return range(Math.round(-offset / this.itemHeight), 0, this.count - 1);\n },\n momentum: function momentum(distance, duration) {\n var speed = Math.abs(distance / duration);\n distance = this.offset + speed / 0.003 * (distance < 0 ? -1 : 1);\n var index = this.getIndexByOffset(distance);\n this.duration = +this.swipeDuration;\n this.setIndex(index, true);\n },\n stopMomentum: function stopMomentum() {\n this.moving = false;\n this.duration = 0;\n\n if (this.transitionEndTrigger) {\n this.transitionEndTrigger();\n this.transitionEndTrigger = null;\n }\n },\n genOptions: function genOptions() {\n var _this4 = this;\n\n var h = this.$createElement;\n var optionStyle = {\n height: this.itemHeight + \"px\"\n };\n return this.options.map(function (option, index) {\n var _domProps;\n\n var text = _this4.getOptionText(option);\n\n var disabled = isOptionDisabled(option);\n var data = {\n style: optionStyle,\n attrs: {\n role: 'button',\n tabindex: disabled ? -1 : 0\n },\n class: [bem('item', {\n disabled: disabled,\n selected: index === _this4.currentIndex\n })],\n on: {\n click: function click() {\n _this4.onClickItem(index);\n }\n }\n };\n var childData = {\n class: 'van-ellipsis',\n domProps: (_domProps = {}, _domProps[_this4.allowHtml ? 'innerHTML' : 'textContent'] = text, _domProps)\n };\n return h(\"li\", _mergeJSXProps([{}, data]), [_this4.slots('option', option) || h(\"div\", _mergeJSXProps2([{}, childData]))]);\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n var wrapperStyle = {\n transform: \"translate3d(0, \" + (this.offset + this.baseOffset) + \"px, 0)\",\n transitionDuration: this.duration + \"ms\",\n transitionProperty: this.duration ? 'all' : 'none'\n };\n return h(\"div\", {\n \"class\": [bem(), this.className]\n }, [h(\"ul\", {\n \"ref\": \"wrapper\",\n \"style\": wrapperStyle,\n \"class\": bem('wrapper'),\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [this.genOptions()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { preventDefault } from '../utils/dom/event';\nimport { BORDER_UNSET_TOP_BOTTOM } from '../utils/constant';\nimport { pickerProps, DEFAULT_ITEM_HEIGHT } from './shared';\nimport { unitToPx } from '../utils/format/unit'; // Components\n\nimport Loading from '../loading';\nimport PickerColumn from './PickerColumn';\n\nvar _createNamespace = createNamespace('picker'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: _extends({}, pickerProps, {\n defaultIndex: {\n type: [Number, String],\n default: 0\n },\n columns: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n toolbarPosition: {\n type: String,\n default: 'top'\n },\n valueKey: {\n type: String,\n default: 'text'\n }\n }),\n data: function data() {\n return {\n children: [],\n formattedColumns: []\n };\n },\n computed: {\n itemPxHeight: function itemPxHeight() {\n return this.itemHeight ? unitToPx(this.itemHeight) : DEFAULT_ITEM_HEIGHT;\n },\n dataType: function dataType() {\n var columns = this.columns;\n var firstColumn = columns[0] || {};\n\n if (firstColumn.children) {\n return 'cascade';\n }\n\n if (firstColumn.values) {\n return 'object';\n }\n\n return 'text';\n }\n },\n watch: {\n columns: {\n handler: 'format',\n immediate: true\n }\n },\n methods: {\n format: function format() {\n var columns = this.columns,\n dataType = this.dataType;\n\n if (dataType === 'text') {\n this.formattedColumns = [{\n values: columns\n }];\n } else if (dataType === 'cascade') {\n this.formatCascade();\n } else {\n this.formattedColumns = columns;\n }\n },\n formatCascade: function formatCascade() {\n var formatted = [];\n var cursor = {\n children: this.columns\n };\n\n while (cursor && cursor.children) {\n var _cursor$defaultIndex;\n\n var _cursor = cursor,\n children = _cursor.children;\n var defaultIndex = (_cursor$defaultIndex = cursor.defaultIndex) != null ? _cursor$defaultIndex : +this.defaultIndex;\n\n while (children[defaultIndex] && children[defaultIndex].disabled) {\n if (defaultIndex < children.length - 1) {\n defaultIndex++;\n } else {\n defaultIndex = 0;\n break;\n }\n }\n\n formatted.push({\n values: cursor.children,\n className: cursor.className,\n defaultIndex: defaultIndex\n });\n cursor = children[defaultIndex];\n }\n\n this.formattedColumns = formatted;\n },\n emit: function emit(event) {\n var _this = this;\n\n if (this.dataType === 'text') {\n this.$emit(event, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n var values = this.getValues(); // compatible with old version of wrong parameters\n // should be removed in next major version\n // see: https://github.com/vant-ui/vant/issues/5905\n\n if (this.dataType === 'cascade') {\n values = values.map(function (item) {\n return item[_this.valueKey];\n });\n }\n\n this.$emit(event, values, this.getIndexes());\n }\n },\n onCascadeChange: function onCascadeChange(columnIndex) {\n var cursor = {\n children: this.columns\n };\n var indexes = this.getIndexes();\n\n for (var i = 0; i <= columnIndex; i++) {\n cursor = cursor.children[indexes[i]];\n }\n\n while (cursor && cursor.children) {\n columnIndex++;\n this.setColumnValues(columnIndex, cursor.children);\n cursor = cursor.children[cursor.defaultIndex || 0];\n }\n },\n onChange: function onChange(columnIndex) {\n var _this2 = this;\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(columnIndex);\n }\n\n if (this.dataType === 'text') {\n this.$emit('change', this, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n var values = this.getValues(); // compatible with old version of wrong parameters\n // should be removed in next major version\n // see: https://github.com/vant-ui/vant/issues/5905\n\n if (this.dataType === 'cascade') {\n values = values.map(function (item) {\n return item[_this2.valueKey];\n });\n }\n\n this.$emit('change', this, values, columnIndex);\n }\n },\n // get column instance by index\n getColumn: function getColumn(index) {\n return this.children[index];\n },\n // @exposed-api\n // get column value by index\n getColumnValue: function getColumnValue(index) {\n var column = this.getColumn(index);\n return column && column.getValue();\n },\n // @exposed-api\n // set column value by index\n setColumnValue: function setColumnValue(index, value) {\n var column = this.getColumn(index);\n\n if (column) {\n column.setValue(value);\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(index);\n }\n }\n },\n // @exposed-api\n // get column option index by column index\n getColumnIndex: function getColumnIndex(columnIndex) {\n return (this.getColumn(columnIndex) || {}).currentIndex;\n },\n // @exposed-api\n // set column option index by column index\n setColumnIndex: function setColumnIndex(columnIndex, optionIndex) {\n var column = this.getColumn(columnIndex);\n\n if (column) {\n column.setIndex(optionIndex);\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(columnIndex);\n }\n }\n },\n // @exposed-api\n // get options of column by index\n getColumnValues: function getColumnValues(index) {\n return (this.children[index] || {}).options;\n },\n // @exposed-api\n // set options of column by index\n setColumnValues: function setColumnValues(index, options) {\n var column = this.children[index];\n\n if (column) {\n column.setOptions(options);\n }\n },\n // @exposed-api\n // get values of all columns\n getValues: function getValues() {\n return this.children.map(function (child) {\n return child.getValue();\n });\n },\n // @exposed-api\n // set values of all columns\n setValues: function setValues(values) {\n var _this3 = this;\n\n values.forEach(function (value, index) {\n _this3.setColumnValue(index, value);\n });\n },\n // @exposed-api\n // get indexes of all columns\n getIndexes: function getIndexes() {\n return this.children.map(function (child) {\n return child.currentIndex;\n });\n },\n // @exposed-api\n // set indexes of all columns\n setIndexes: function setIndexes(indexes) {\n var _this4 = this;\n\n indexes.forEach(function (optionIndex, columnIndex) {\n _this4.setColumnIndex(columnIndex, optionIndex);\n });\n },\n // @exposed-api\n confirm: function confirm() {\n this.children.forEach(function (child) {\n return child.stopMomentum();\n });\n this.emit('confirm');\n },\n cancel: function cancel() {\n this.emit('cancel');\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n var titleSlot = this.slots('title');\n\n if (titleSlot) {\n return titleSlot;\n }\n\n if (this.title) {\n return h(\"div\", {\n \"class\": ['van-ellipsis', bem('title')]\n }, [this.title]);\n }\n },\n genCancel: function genCancel() {\n var h = this.$createElement;\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": this.cancel\n }\n }, [this.slots('cancel') || this.cancelButtonText || t('cancel')]);\n },\n genConfirm: function genConfirm() {\n var h = this.$createElement;\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": this.confirm\n }\n }, [this.slots('confirm') || this.confirmButtonText || t('confirm')]);\n },\n genToolbar: function genToolbar() {\n var h = this.$createElement;\n\n if (this.showToolbar) {\n return h(\"div\", {\n \"class\": bem('toolbar')\n }, [this.slots() || [this.genCancel(), this.genTitle(), this.genConfirm()]]);\n }\n },\n genColumns: function genColumns() {\n var h = this.$createElement;\n var itemPxHeight = this.itemPxHeight;\n var wrapHeight = itemPxHeight * this.visibleItemCount;\n var frameStyle = {\n height: itemPxHeight + \"px\"\n };\n var columnsStyle = {\n height: wrapHeight + \"px\"\n };\n var maskStyle = {\n backgroundSize: \"100% \" + (wrapHeight - itemPxHeight) / 2 + \"px\"\n };\n return h(\"div\", {\n \"class\": bem('columns'),\n \"style\": columnsStyle,\n \"on\": {\n \"touchmove\": preventDefault\n }\n }, [this.genColumnItems(), h(\"div\", {\n \"class\": bem('mask'),\n \"style\": maskStyle\n }), h(\"div\", {\n \"class\": [BORDER_UNSET_TOP_BOTTOM, bem('frame')],\n \"style\": frameStyle\n })]);\n },\n genColumnItems: function genColumnItems() {\n var _this5 = this;\n\n var h = this.$createElement;\n return this.formattedColumns.map(function (item, columnIndex) {\n var _item$defaultIndex;\n\n return h(PickerColumn, {\n \"attrs\": {\n \"readonly\": _this5.readonly,\n \"valueKey\": _this5.valueKey,\n \"allowHtml\": _this5.allowHtml,\n \"className\": item.className,\n \"itemHeight\": _this5.itemPxHeight,\n \"defaultIndex\": (_item$defaultIndex = item.defaultIndex) != null ? _item$defaultIndex : +_this5.defaultIndex,\n \"swipeDuration\": _this5.swipeDuration,\n \"visibleItemCount\": _this5.visibleItemCount,\n \"initialOptions\": item.values\n },\n \"scopedSlots\": {\n option: _this5.$scopedSlots.option\n },\n \"on\": {\n \"change\": function change() {\n _this5.onChange(columnIndex);\n }\n }\n });\n });\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.toolbarPosition === 'top' ? this.genToolbar() : h(), this.loading ? h(Loading, {\n \"class\": bem('loading')\n }) : h(), this.slots('columns-top'), this.genColumns(), this.slots('columns-bottom'), this.toolbarPosition === 'bottom' ? this.genToolbar() : h()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { pickerProps } from '../picker/shared';\nimport Picker from '../picker';\n\nvar _createNamespace = createNamespace('area'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar PLACEHOLDER_CODE = '000000';\n\nfunction isOverseaCode(code) {\n return code[0] === '9';\n}\n\nfunction pickSlots(instance, keys) {\n var $slots = instance.$slots,\n $scopedSlots = instance.$scopedSlots;\n var scopedSlots = {};\n keys.forEach(function (key) {\n if ($scopedSlots[key]) {\n scopedSlots[key] = $scopedSlots[key];\n } else if ($slots[key]) {\n scopedSlots[key] = function () {\n return $slots[key];\n };\n }\n });\n return scopedSlots;\n}\n\nexport default createComponent({\n props: _extends({}, pickerProps, {\n value: String,\n areaList: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n columnsNum: {\n type: [Number, String],\n default: 3\n },\n isOverseaCode: {\n type: Function,\n default: isOverseaCode\n },\n columnsPlaceholder: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n }),\n data: function data() {\n return {\n code: this.value,\n columns: [{\n values: []\n }, {\n values: []\n }, {\n values: []\n }]\n };\n },\n computed: {\n province: function province() {\n return this.areaList.province_list || {};\n },\n city: function city() {\n return this.areaList.city_list || {};\n },\n county: function county() {\n return this.areaList.county_list || {};\n },\n displayColumns: function displayColumns() {\n return this.columns.slice(0, +this.columnsNum);\n },\n placeholderMap: function placeholderMap() {\n return {\n province: this.columnsPlaceholder[0] || '',\n city: this.columnsPlaceholder[1] || '',\n county: this.columnsPlaceholder[2] || ''\n };\n }\n },\n watch: {\n value: function value(val) {\n this.code = val;\n this.setValues();\n },\n areaList: {\n deep: true,\n handler: 'setValues'\n },\n columnsNum: function columnsNum() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setValues();\n });\n }\n },\n mounted: function mounted() {\n this.setValues();\n },\n methods: {\n // get list by code\n getList: function getList(type, code) {\n var result = [];\n\n if (type !== 'province' && !code) {\n return result;\n }\n\n var list = this[type];\n result = Object.keys(list).map(function (listCode) {\n return {\n code: listCode,\n name: list[listCode]\n };\n });\n\n if (code) {\n // oversea code\n if (this.isOverseaCode(code) && type === 'city') {\n code = '9';\n }\n\n result = result.filter(function (item) {\n return item.code.indexOf(code) === 0;\n });\n }\n\n if (this.placeholderMap[type] && result.length) {\n // set columns placeholder\n var codeFill = '';\n\n if (type === 'city') {\n codeFill = PLACEHOLDER_CODE.slice(2, 4);\n } else if (type === 'county') {\n codeFill = PLACEHOLDER_CODE.slice(4, 6);\n }\n\n result.unshift({\n code: \"\" + code + codeFill,\n name: this.placeholderMap[type]\n });\n }\n\n return result;\n },\n // get index by code\n getIndex: function getIndex(type, code) {\n var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6;\n var list = this.getList(type, code.slice(0, compareNum - 2)); // oversea code\n\n if (this.isOverseaCode(code) && type === 'province') {\n compareNum = 1;\n }\n\n code = code.slice(0, compareNum);\n\n for (var i = 0; i < list.length; i++) {\n if (list[i].code.slice(0, compareNum) === code) {\n return i;\n }\n }\n\n return 0;\n },\n // parse output columns data\n parseOutputValues: function parseOutputValues(values) {\n var _this2 = this;\n\n return values.map(function (value, index) {\n // save undefined value\n if (!value) return value;\n value = JSON.parse(JSON.stringify(value));\n\n if (!value.code || value.name === _this2.columnsPlaceholder[index]) {\n value.code = '';\n value.name = '';\n }\n\n return value;\n });\n },\n onChange: function onChange(picker, values, index) {\n this.code = values[index].code;\n this.setValues();\n var parsedValues = this.parseOutputValues(picker.getValues());\n this.$emit('change', picker, parsedValues, index);\n },\n onConfirm: function onConfirm(values, index) {\n values = this.parseOutputValues(values);\n this.setValues();\n this.$emit('confirm', values, index);\n },\n getDefaultCode: function getDefaultCode() {\n if (this.columnsPlaceholder.length) {\n return PLACEHOLDER_CODE;\n }\n\n var countyCodes = Object.keys(this.county);\n\n if (countyCodes[0]) {\n return countyCodes[0];\n }\n\n var cityCodes = Object.keys(this.city);\n\n if (cityCodes[0]) {\n return cityCodes[0];\n }\n\n return '';\n },\n setValues: function setValues() {\n var code = this.code;\n\n if (!code) {\n code = this.getDefaultCode();\n }\n\n var picker = this.$refs.picker;\n var province = this.getList('province');\n var city = this.getList('city', code.slice(0, 2));\n\n if (!picker) {\n return;\n }\n\n picker.setColumnValues(0, province);\n picker.setColumnValues(1, city);\n\n if (city.length && code.slice(2, 4) === '00' && !this.isOverseaCode(code)) {\n code = city[0].code;\n }\n\n picker.setColumnValues(2, this.getList('county', code.slice(0, 4)));\n picker.setIndexes([this.getIndex('province', code), this.getIndex('city', code), this.getIndex('county', code)]);\n },\n getValues: function getValues() {\n var picker = this.$refs.picker;\n var getValues = picker ? picker.getValues().filter(function (value) {\n return !!value;\n }) : [];\n getValues = this.parseOutputValues(getValues);\n return getValues;\n },\n getArea: function getArea() {\n var values = this.getValues();\n var area = {\n code: '',\n country: '',\n province: '',\n city: '',\n county: ''\n };\n\n if (!values.length) {\n return area;\n }\n\n var names = values.map(function (item) {\n return item.name;\n });\n var validValues = values.filter(function (value) {\n return !!value.code;\n });\n area.code = validValues.length ? validValues[validValues.length - 1].code : '';\n\n if (this.isOverseaCode(area.code)) {\n area.country = names[1] || '';\n area.province = names[2] || '';\n } else {\n area.province = names[0] || '';\n area.city = names[1] || '';\n area.county = names[2] || '';\n }\n\n return area;\n },\n // @exposed-api\n reset: function reset(code) {\n this.code = code || '';\n this.setValues();\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var on = _extends({}, this.$listeners, {\n change: this.onChange,\n confirm: this.onConfirm\n });\n\n return h(Picker, {\n \"ref\": \"picker\",\n \"class\": bem(),\n \"attrs\": {\n \"showToolbar\": true,\n \"valueKey\": \"name\",\n \"title\": this.title,\n \"columns\": this.displayColumns,\n \"loading\": this.loading,\n \"readonly\": this.readonly,\n \"itemHeight\": this.itemHeight,\n \"swipeDuration\": this.swipeDuration,\n \"visibleItemCount\": this.visibleItemCount,\n \"cancelButtonText\": this.cancelButtonText,\n \"confirmButtonText\": this.confirmButtonText\n },\n \"scopedSlots\": pickSlots(this, ['title', 'columns-top', 'columns-bottom']),\n \"on\": _extends({}, on)\n });\n }\n});","/**\n * Vue Router support\n */\nfunction isRedundantNavigation(err) {\n return err.name === 'NavigationDuplicated' || // compatible with vue-router@3.3\n err.message && err.message.indexOf('redundant navigation') !== -1;\n}\n\nexport function route(router, config) {\n var to = config.to,\n url = config.url,\n replace = config.replace;\n\n if (to && router) {\n var promise = router[replace ? 'replace' : 'push'](to);\n /* istanbul ignore else */\n\n if (promise && promise.catch) {\n promise.catch(function (err) {\n if (err && !isRedundantNavigation(err)) {\n throw err;\n }\n });\n }\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nexport function functionalRoute(context) {\n route(context.parent && context.parent.$router, context.props);\n}\nexport var routeProps = {\n url: String,\n replace: Boolean,\n to: [String, Object]\n};","export var cellProps = {\n icon: String,\n size: String,\n center: Boolean,\n isLink: Boolean,\n required: Boolean,\n iconPrefix: String,\n titleStyle: null,\n titleClass: null,\n valueClass: null,\n labelClass: null,\n title: [Number, String],\n value: [Number, String],\n label: [Number, String],\n arrowDirection: String,\n border: {\n type: Boolean,\n default: true\n },\n clickable: {\n type: Boolean,\n default: null\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { routeProps, functionalRoute } from '../utils/router';\nimport { cellProps } from './shared'; // Components\n\nimport Icon from '../icon'; // Types\n\nvar _createNamespace = createNamespace('cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Cell(h, props, slots, ctx) {\n var _props$clickable;\n\n var icon = props.icon,\n size = props.size,\n title = props.title,\n label = props.label,\n value = props.value,\n isLink = props.isLink;\n var showTitle = slots.title || isDef(title);\n\n function Label() {\n var showLabel = slots.label || isDef(label);\n\n if (showLabel) {\n return h(\"div\", {\n \"class\": [bem('label'), props.labelClass]\n }, [slots.label ? slots.label() : label]);\n }\n }\n\n function Title() {\n if (showTitle) {\n return h(\"div\", {\n \"class\": [bem('title'), props.titleClass],\n \"style\": props.titleStyle\n }, [slots.title ? slots.title() : h(\"span\", [title]), Label()]);\n }\n }\n\n function Value() {\n var showValue = slots.default || isDef(value);\n\n if (showValue) {\n return h(\"div\", {\n \"class\": [bem('value', {\n alone: !showTitle\n }), props.valueClass]\n }, [slots.default ? slots.default() : h(\"span\", [value])]);\n }\n }\n\n function LeftIcon() {\n if (slots.icon) {\n return slots.icon();\n }\n\n if (icon) {\n return h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": icon,\n \"classPrefix\": props.iconPrefix\n }\n });\n }\n }\n\n function RightIcon() {\n var rightIconSlot = slots['right-icon'];\n\n if (rightIconSlot) {\n return rightIconSlot();\n }\n\n if (isLink) {\n var arrowDirection = props.arrowDirection;\n return h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": arrowDirection ? \"arrow-\" + arrowDirection : 'arrow'\n }\n });\n }\n }\n\n function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n\n var clickable = (_props$clickable = props.clickable) != null ? _props$clickable : isLink;\n var classes = {\n clickable: clickable,\n center: props.center,\n required: props.required,\n borderless: !props.border\n };\n\n if (size) {\n classes[size] = size;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(classes),\n \"attrs\": {\n \"role\": clickable ? 'button' : null,\n \"tabindex\": clickable ? 0 : null\n },\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [LeftIcon(), Title(), Value(), RightIcon(), slots.extra == null ? void 0 : slots.extra()]);\n}\n\nCell.props = _extends({}, cellProps, routeProps);\nexport default createComponent(Cell);","import { isServer } from '..';\nexport function isAndroid() {\n /* istanbul ignore next */\n return isServer ? false : /android/.test(navigator.userAgent.toLowerCase());\n}\nexport function isIOS() {\n /* istanbul ignore next */\n return isServer ? false : /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase());\n}","/**\n * Hack for iOS12 page scroll\n * https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800\n */\nimport { isIOS as checkIsIOS } from '../validate/system';\nimport { getRootScrollTop, setRootScrollTop } from './scroll';\nvar isIOS = checkIsIOS();\n/* istanbul ignore next */\n\nexport function resetScroll() {\n if (isIOS) {\n setRootScrollTop(getRootScrollTop());\n }\n}","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { resetScroll } from '../utils/dom/reset-scroll';\nimport { formatNumber } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event';\nimport { getRootScrollTop, setRootScrollTop } from '../utils/dom/scroll';\nimport { isDef, addUnit, isObject, isPromise, isFunction, createNamespace } from '../utils'; // Components\n\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\n\nvar _createNamespace = createNamespace('field'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n inheritAttrs: false,\n provide: function provide() {\n return {\n vanField: this\n };\n },\n inject: {\n vanForm: {\n default: null\n }\n },\n props: _extends({}, cellProps, {\n name: String,\n rules: Array,\n disabled: {\n type: Boolean,\n default: null\n },\n readonly: {\n type: Boolean,\n default: null\n },\n autosize: [Boolean, Object],\n leftIcon: String,\n rightIcon: String,\n clearable: Boolean,\n formatter: Function,\n maxlength: [Number, String],\n labelWidth: [Number, String],\n labelClass: null,\n labelAlign: String,\n inputAlign: String,\n placeholder: String,\n errorMessage: String,\n errorMessageAlign: String,\n showWordLimit: Boolean,\n value: {\n type: [Number, String],\n default: ''\n },\n type: {\n type: String,\n default: 'text'\n },\n error: {\n type: Boolean,\n default: null\n },\n colon: {\n type: Boolean,\n default: null\n },\n clearTrigger: {\n type: String,\n default: 'focus'\n },\n formatTrigger: {\n type: String,\n default: 'onChange'\n }\n }),\n data: function data() {\n return {\n focused: false,\n validateFailed: false,\n validateMessage: ''\n };\n },\n watch: {\n value: function value() {\n this.updateValue(this.value);\n this.resetValidation();\n this.validateWithTrigger('onChange');\n this.$nextTick(this.adjustSize);\n }\n },\n mounted: function mounted() {\n this.updateValue(this.value, this.formatTrigger);\n this.$nextTick(this.adjustSize);\n\n if (this.vanForm) {\n this.vanForm.addField(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.vanForm) {\n this.vanForm.removeField(this);\n }\n },\n computed: {\n showClear: function showClear() {\n var readonly = this.getProp('readonly');\n\n if (this.clearable && !readonly) {\n var hasValue = isDef(this.value) && this.value !== '';\n var trigger = this.clearTrigger === 'always' || this.clearTrigger === 'focus' && this.focused;\n return hasValue && trigger;\n }\n },\n showError: function showError() {\n if (this.error !== null) {\n return this.error;\n }\n\n if (this.vanForm && this.vanForm.showError && this.validateFailed) {\n return true;\n }\n },\n listeners: function listeners() {\n return _extends({}, this.$listeners, {\n blur: this.onBlur,\n focus: this.onFocus,\n input: this.onInput,\n click: this.onClickInput,\n keypress: this.onKeypress\n });\n },\n labelStyle: function labelStyle() {\n var labelWidth = this.getProp('labelWidth');\n\n if (labelWidth) {\n return {\n width: addUnit(labelWidth)\n };\n }\n },\n formValue: function formValue() {\n if (this.children && (this.$scopedSlots.input || this.$slots.input)) {\n return this.children.value;\n }\n\n return this.value;\n }\n },\n methods: {\n // @exposed-api\n focus: function focus() {\n if (this.$refs.input) {\n this.$refs.input.focus();\n }\n },\n // @exposed-api\n blur: function blur() {\n if (this.$refs.input) {\n this.$refs.input.blur();\n }\n },\n runValidator: function runValidator(value, rule) {\n return new Promise(function (resolve) {\n var returnVal = rule.validator(value, rule);\n\n if (isPromise(returnVal)) {\n return returnVal.then(resolve);\n }\n\n resolve(returnVal);\n });\n },\n isEmptyValue: function isEmptyValue(value) {\n if (Array.isArray(value)) {\n return !value.length;\n }\n\n if (value === 0) {\n return false;\n }\n\n return !value;\n },\n runSyncRule: function runSyncRule(value, rule) {\n if (rule.required && this.isEmptyValue(value)) {\n return false;\n }\n\n if (rule.pattern && !rule.pattern.test(value)) {\n return false;\n }\n\n return true;\n },\n getRuleMessage: function getRuleMessage(value, rule) {\n var message = rule.message;\n\n if (isFunction(message)) {\n return message(value, rule);\n }\n\n return message;\n },\n runRules: function runRules(rules) {\n var _this = this;\n\n return rules.reduce(function (promise, rule) {\n return promise.then(function () {\n if (_this.validateFailed) {\n return;\n }\n\n var value = _this.formValue;\n\n if (rule.formatter) {\n value = rule.formatter(value, rule);\n }\n\n if (!_this.runSyncRule(value, rule)) {\n _this.validateFailed = true;\n _this.validateMessage = _this.getRuleMessage(value, rule);\n return;\n }\n\n if (rule.validator) {\n return _this.runValidator(value, rule).then(function (result) {\n if (result === false) {\n _this.validateFailed = true;\n _this.validateMessage = _this.getRuleMessage(value, rule);\n }\n });\n }\n });\n }, Promise.resolve());\n },\n validate: function validate(rules) {\n var _this2 = this;\n\n if (rules === void 0) {\n rules = this.rules;\n }\n\n return new Promise(function (resolve) {\n if (!rules) {\n resolve();\n }\n\n _this2.resetValidation();\n\n _this2.runRules(rules).then(function () {\n if (_this2.validateFailed) {\n resolve({\n name: _this2.name,\n message: _this2.validateMessage\n });\n } else {\n resolve();\n }\n });\n });\n },\n validateWithTrigger: function validateWithTrigger(trigger) {\n if (this.vanForm && this.rules) {\n var defaultTrigger = this.vanForm.validateTrigger === trigger;\n var rules = this.rules.filter(function (rule) {\n if (rule.trigger) {\n return rule.trigger === trigger;\n }\n\n return defaultTrigger;\n });\n\n if (rules.length) {\n this.validate(rules);\n }\n }\n },\n resetValidation: function resetValidation() {\n if (this.validateFailed) {\n this.validateFailed = false;\n this.validateMessage = '';\n }\n },\n updateValue: function updateValue(value, trigger) {\n if (trigger === void 0) {\n trigger = 'onChange';\n }\n\n value = isDef(value) ? String(value) : ''; // native maxlength have incorrect line-break counting\n // see: https://github.com/vant-ui/vant/issues/5033\n\n var maxlength = this.maxlength;\n\n if (isDef(maxlength) && value.length > maxlength) {\n if (this.value && this.value.length === +maxlength) {\n value = this.value;\n } else {\n value = value.slice(0, maxlength);\n }\n }\n\n if (this.type === 'number' || this.type === 'digit') {\n var isNumber = this.type === 'number';\n value = formatNumber(value, isNumber, isNumber);\n }\n\n if (this.formatter && trigger === this.formatTrigger) {\n value = this.formatter(value);\n }\n\n var input = this.$refs.input;\n\n if (input && value !== input.value) {\n input.value = value;\n }\n\n if (value !== this.value) {\n this.$emit('input', value);\n }\n },\n onInput: function onInput(event) {\n // not update v-model when composing\n if (event.target.composing) {\n return;\n }\n\n this.updateValue(event.target.value);\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.$emit('focus', event); // https://github.com/vant-ui/vant/issues/9715\n\n this.$nextTick(this.adjustSize); // readonly not work in legacy mobile safari\n\n /* istanbul ignore if */\n\n if (this.getProp('readonly')) {\n this.blur();\n }\n },\n onBlur: function onBlur(event) {\n if (this.getProp('readonly')) {\n return;\n }\n\n this.focused = false;\n this.updateValue(this.value, 'onBlur');\n this.$emit('blur', event);\n this.validateWithTrigger('onBlur');\n this.$nextTick(this.adjustSize);\n resetScroll();\n },\n onClick: function onClick(event) {\n this.$emit('click', event);\n },\n onClickInput: function onClickInput(event) {\n this.$emit('click-input', event);\n },\n onClickLeftIcon: function onClickLeftIcon(event) {\n this.$emit('click-left-icon', event);\n },\n onClickRightIcon: function onClickRightIcon(event) {\n this.$emit('click-right-icon', event);\n },\n onClear: function onClear(event) {\n preventDefault(event);\n this.$emit('input', '');\n this.$emit('clear', event);\n },\n onKeypress: function onKeypress(event) {\n var ENTER_CODE = 13;\n\n if (event.keyCode === ENTER_CODE) {\n var submitOnEnter = this.getProp('submitOnEnter');\n\n if (!submitOnEnter && this.type !== 'textarea') {\n preventDefault(event);\n } // trigger blur after click keyboard search button\n\n\n if (this.type === 'search') {\n this.blur();\n }\n }\n\n this.$emit('keypress', event);\n },\n adjustSize: function adjustSize() {\n var input = this.$refs.input;\n\n if (!(this.type === 'textarea' && this.autosize) || !input) {\n return;\n }\n\n var scrollTop = getRootScrollTop();\n input.style.height = 'auto';\n var height = input.scrollHeight;\n\n if (isObject(this.autosize)) {\n var _this$autosize = this.autosize,\n maxHeight = _this$autosize.maxHeight,\n minHeight = _this$autosize.minHeight;\n\n if (maxHeight) {\n height = Math.min(height, maxHeight);\n }\n\n if (minHeight) {\n height = Math.max(height, minHeight);\n }\n }\n\n if (height) {\n input.style.height = height + 'px'; // https://github.com/vant-ui/vant/issues/9178\n\n setRootScrollTop(scrollTop);\n }\n },\n genInput: function genInput() {\n var h = this.$createElement;\n var type = this.type;\n var disabled = this.getProp('disabled');\n var readonly = this.getProp('readonly');\n var inputSlot = this.slots('input');\n var inputAlign = this.getProp('inputAlign');\n\n if (inputSlot) {\n return h(\"div\", {\n \"class\": bem('control', [inputAlign, 'custom']),\n \"on\": {\n \"click\": this.onClickInput\n }\n }, [inputSlot]);\n }\n\n var inputProps = {\n ref: 'input',\n class: bem('control', inputAlign),\n domProps: {\n value: this.value\n },\n attrs: _extends({}, this.$attrs, {\n name: this.name,\n disabled: disabled,\n readonly: readonly,\n placeholder: this.placeholder\n }),\n on: this.listeners,\n // add model directive to skip IME composition\n directives: [{\n name: 'model',\n value: this.value\n }]\n };\n\n if (type === 'textarea') {\n return h(\"textarea\", _mergeJSXProps([{}, inputProps]));\n }\n\n var inputType = type;\n var inputMode; // type=\"number\" is weird in iOS, and can't prevent dot in Android\n // so use inputmode to set keyboard in modern browsers\n\n if (type === 'number') {\n inputType = 'text';\n inputMode = 'decimal';\n }\n\n if (type === 'digit') {\n inputType = 'tel';\n inputMode = 'numeric';\n }\n\n return h(\"input\", _mergeJSXProps2([{\n \"attrs\": {\n \"type\": inputType,\n \"inputmode\": inputMode\n }\n }, inputProps]));\n },\n genLeftIcon: function genLeftIcon() {\n var h = this.$createElement;\n var showLeftIcon = this.slots('left-icon') || this.leftIcon;\n\n if (showLeftIcon) {\n return h(\"div\", {\n \"class\": bem('left-icon'),\n \"on\": {\n \"click\": this.onClickLeftIcon\n }\n }, [this.slots('left-icon') || h(Icon, {\n \"attrs\": {\n \"name\": this.leftIcon,\n \"classPrefix\": this.iconPrefix\n }\n })]);\n }\n },\n genRightIcon: function genRightIcon() {\n var h = this.$createElement;\n var slots = this.slots;\n var showRightIcon = slots('right-icon') || this.rightIcon;\n\n if (showRightIcon) {\n return h(\"div\", {\n \"class\": bem('right-icon'),\n \"on\": {\n \"click\": this.onClickRightIcon\n }\n }, [slots('right-icon') || h(Icon, {\n \"attrs\": {\n \"name\": this.rightIcon,\n \"classPrefix\": this.iconPrefix\n }\n })]);\n }\n },\n genWordLimit: function genWordLimit() {\n var h = this.$createElement;\n\n if (this.showWordLimit && this.maxlength) {\n var count = (this.value || '').length;\n return h(\"div\", {\n \"class\": bem('word-limit')\n }, [h(\"span\", {\n \"class\": bem('word-num')\n }, [count]), \"/\", this.maxlength]);\n }\n },\n genMessage: function genMessage() {\n var h = this.$createElement;\n\n if (this.vanForm && this.vanForm.showErrorMessage === false) {\n return;\n }\n\n var message = this.errorMessage || this.validateMessage;\n\n if (message) {\n var errorMessageAlign = this.getProp('errorMessageAlign');\n return h(\"div\", {\n \"class\": bem('error-message', errorMessageAlign)\n }, [message]);\n }\n },\n getProp: function getProp(key) {\n if (isDef(this[key])) {\n return this[key];\n }\n\n if (this.vanForm && isDef(this.vanForm[key])) {\n return this.vanForm[key];\n }\n },\n genLabel: function genLabel() {\n var h = this.$createElement;\n var colon = this.getProp('colon') ? ':' : '';\n\n if (this.slots('label')) {\n return [this.slots('label'), colon];\n }\n\n if (this.label) {\n return h(\"span\", [this.label + colon]);\n }\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n var slots = this.slots;\n var disabled = this.getProp('disabled');\n var labelAlign = this.getProp('labelAlign');\n var scopedSlots = {\n icon: this.genLeftIcon\n };\n var Label = this.genLabel();\n\n if (Label) {\n scopedSlots.title = function () {\n return Label;\n };\n }\n\n var extra = this.slots('extra');\n\n if (extra) {\n scopedSlots.extra = function () {\n return extra;\n };\n }\n\n return h(Cell, {\n \"attrs\": {\n \"icon\": this.leftIcon,\n \"size\": this.size,\n \"center\": this.center,\n \"border\": this.border,\n \"isLink\": this.isLink,\n \"required\": this.required,\n \"clickable\": this.clickable,\n \"titleStyle\": this.labelStyle,\n \"valueClass\": bem('value'),\n \"titleClass\": [bem('label', labelAlign), this.labelClass],\n \"arrowDirection\": this.arrowDirection\n },\n \"scopedSlots\": scopedSlots,\n \"class\": bem((_bem = {\n error: this.showError,\n disabled: disabled\n }, _bem[\"label-\" + labelAlign] = labelAlign, _bem['min-height'] = this.type === 'textarea' && !this.autosize, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('body')\n }, [this.genInput(), this.showClear && h(Icon, {\n \"attrs\": {\n \"name\": \"clear\"\n },\n \"class\": bem('clear'),\n \"on\": {\n \"touchstart\": this.onClear\n }\n }), this.genRightIcon(), slots('button') && h(\"div\", {\n \"class\": bem('button')\n }, [slots('button')])]), this.genWordLimit(), this.genMessage()]);\n }\n});","var lockCount = 0;\nexport function lockClick(lock) {\n if (lock) {\n if (!lockCount) {\n document.body.classList.add('van-toast--unclickable');\n }\n\n lockCount++;\n } else {\n lockCount--;\n\n if (!lockCount) {\n document.body.classList.remove('van-toast--unclickable');\n }\n }\n}","// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { lockClick } from './lock-click'; // Mixins\n\nimport { PopupMixin } from '../mixins/popup'; // Components\n\nimport Icon from '../icon';\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('toast'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n icon: String,\n className: null,\n iconPrefix: String,\n loadingType: String,\n forbidClick: Boolean,\n closeOnClick: Boolean,\n message: [Number, String],\n type: {\n type: String,\n default: 'text'\n },\n position: {\n type: String,\n default: 'middle'\n },\n transition: {\n type: String,\n default: 'van-fade'\n },\n lockScroll: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n clickable: false\n };\n },\n mounted: function mounted() {\n this.toggleClickable();\n },\n destroyed: function destroyed() {\n this.toggleClickable();\n },\n watch: {\n value: 'toggleClickable',\n forbidClick: 'toggleClickable'\n },\n methods: {\n onClick: function onClick() {\n if (this.closeOnClick) {\n this.close();\n }\n },\n toggleClickable: function toggleClickable() {\n var clickable = this.value && this.forbidClick;\n\n if (this.clickable !== clickable) {\n this.clickable = clickable;\n lockClick(clickable);\n }\n },\n\n /* istanbul ignore next */\n onAfterEnter: function onAfterEnter() {\n this.$emit('opened');\n\n if (this.onOpened) {\n this.onOpened();\n }\n },\n onAfterLeave: function onAfterLeave() {\n this.$emit('closed');\n },\n genIcon: function genIcon() {\n var h = this.$createElement;\n var icon = this.icon,\n type = this.type,\n iconPrefix = this.iconPrefix,\n loadingType = this.loadingType;\n var hasIcon = icon || type === 'success' || type === 'fail';\n\n if (hasIcon) {\n return h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"classPrefix\": iconPrefix,\n \"name\": icon || type\n }\n });\n }\n\n if (type === 'loading') {\n return h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"type\": loadingType\n }\n });\n }\n },\n genMessage: function genMessage() {\n var h = this.$createElement;\n var type = this.type,\n message = this.message;\n\n if (!isDef(message) || message === '') {\n return;\n }\n\n if (type === 'html') {\n return h(\"div\", {\n \"class\": bem('text'),\n \"domProps\": {\n \"innerHTML\": message\n }\n });\n }\n\n return h(\"div\", {\n \"class\": bem('text')\n }, [message]);\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onAfterEnter,\n \"afterLeave\": this.onAfterLeave\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem([this.position, (_ref = {}, _ref[this.type] = !this.icon, _ref)]), this.className],\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genIcon(), this.genMessage()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueToast from './Toast';\nimport { isObject, isServer } from '../utils';\nimport { removeNode } from '../utils/dom/node';\nvar defaultOptions = {\n icon: '',\n type: 'text',\n // @deprecated\n mask: false,\n value: true,\n message: '',\n className: '',\n overlay: false,\n onClose: null,\n onOpened: null,\n duration: 2000,\n iconPrefix: undefined,\n position: 'middle',\n transition: 'van-fade',\n forbidClick: false,\n loadingType: undefined,\n getContainer: 'body',\n overlayStyle: null,\n closeOnClick: false,\n closeOnClickOverlay: false\n}; // default options of specific type\n\nvar defaultOptionsMap = {};\nvar queue = [];\nvar multiple = false;\n\nvar currentOptions = _extends({}, defaultOptions);\n\nfunction parseOptions(message) {\n if (isObject(message)) {\n return message;\n }\n\n return {\n message: message\n };\n}\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\n\nfunction createInstance() {\n /* istanbul ignore if */\n if (isServer) {\n return {};\n }\n\n queue = queue.filter(function (item) {\n return !item.$el.parentNode || isInDocument(item.$el);\n });\n\n if (!queue.length || multiple) {\n var toast = new (Vue.extend(VueToast))({\n el: document.createElement('div')\n });\n toast.$on('input', function (value) {\n toast.value = value;\n });\n queue.push(toast);\n }\n\n return queue[queue.length - 1];\n} // transform toast options to popup props\n\n\nfunction transformOptions(options) {\n return _extends({}, options, {\n overlay: options.mask || options.overlay,\n mask: undefined,\n duration: undefined\n });\n}\n\nfunction Toast(options) {\n if (options === void 0) {\n options = {};\n }\n\n var toast = createInstance(); // should add z-index if previous toast has not disappeared\n\n if (toast.value) {\n toast.updateZIndex();\n }\n\n options = parseOptions(options);\n options = _extends({}, currentOptions, defaultOptionsMap[options.type || currentOptions.type], options);\n\n if (process.env.NODE_ENV === 'development' && options.mask) {\n console.warn('[Vant] Toast: \"mask\" option is deprecated, use \"overlay\" option instead.');\n }\n\n options.clear = function () {\n toast.value = false;\n\n if (options.onClose) {\n options.onClose();\n options.onClose = null;\n }\n\n if (multiple && !isServer) {\n toast.$on('closed', function () {\n clearTimeout(toast.timer);\n queue = queue.filter(function (item) {\n return item !== toast;\n });\n removeNode(toast.$el);\n toast.$destroy();\n });\n }\n };\n\n _extends(toast, transformOptions(options));\n\n clearTimeout(toast.timer);\n\n if (options.duration > 0) {\n toast.timer = setTimeout(function () {\n toast.clear();\n }, options.duration);\n }\n\n return toast;\n}\n\nvar createMethod = function createMethod(type) {\n return function (options) {\n return Toast(_extends({\n type: type\n }, parseOptions(options)));\n };\n};\n\n['loading', 'success', 'fail'].forEach(function (method) {\n Toast[method] = createMethod(method);\n});\n\nToast.clear = function (all) {\n if (queue.length) {\n if (all) {\n queue.forEach(function (toast) {\n toast.clear();\n });\n queue = [];\n } else if (!multiple) {\n queue[0].clear();\n } else {\n queue.shift().clear();\n }\n }\n};\n\nToast.setDefaultOptions = function (type, options) {\n if (typeof type === 'string') {\n defaultOptionsMap[type] = options;\n } else {\n _extends(currentOptions, type);\n }\n};\n\nToast.resetDefaultOptions = function (type) {\n if (typeof type === 'string') {\n defaultOptionsMap[type] = null;\n } else {\n currentOptions = _extends({}, defaultOptions);\n defaultOptionsMap = {};\n }\n};\n\nToast.allowMultiple = function (value) {\n if (value === void 0) {\n value = true;\n }\n\n multiple = value;\n};\n\nToast.install = function () {\n Vue.use(VueToast);\n};\n\nVue.prototype.$toast = Toast;\nexport default Toast;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { BORDER_SURROUND } from '../utils/constant';\nimport { routeProps, functionalRoute } from '../utils/router'; // Components\n\nimport Icon from '../icon';\nimport Loading from '../loading'; // Types\n\nvar _createNamespace = createNamespace('button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Button(h, props, slots, ctx) {\n var _ref;\n\n var tag = props.tag,\n icon = props.icon,\n type = props.type,\n color = props.color,\n plain = props.plain,\n disabled = props.disabled,\n loading = props.loading,\n hairline = props.hairline,\n loadingText = props.loadingText,\n iconPosition = props.iconPosition;\n var style = {};\n\n if (color) {\n style.color = plain ? color : 'white';\n\n if (!plain) {\n // Use background instead of backgroundColor to make linear-gradient work\n style.background = color;\n } // hide border when color is linear-gradient\n\n\n if (color.indexOf('gradient') !== -1) {\n style.border = 0;\n } else {\n style.borderColor = color;\n }\n }\n\n function onClick(event) {\n if (props.loading) {\n event.preventDefault();\n }\n\n if (!loading && !disabled) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n }\n\n function onTouchstart(event) {\n emit(ctx, 'touchstart', event);\n }\n\n var classes = [bem([type, props.size, {\n plain: plain,\n loading: loading,\n disabled: disabled,\n hairline: hairline,\n block: props.block,\n round: props.round,\n square: props.square\n }]), (_ref = {}, _ref[BORDER_SURROUND] = hairline, _ref)];\n\n function renderIcon() {\n if (loading) {\n return slots.loading ? slots.loading() : h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"size\": props.loadingSize,\n \"type\": props.loadingType,\n \"color\": \"currentColor\"\n }\n });\n }\n\n if (slots.icon) {\n return h(\"div\", {\n \"class\": bem('icon')\n }, [slots.icon()]);\n }\n\n if (icon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": icon,\n \"classPrefix\": props.iconPrefix\n },\n \"class\": bem('icon')\n });\n }\n }\n\n function renderContent() {\n var content = [];\n\n if (iconPosition === 'left') {\n content.push(renderIcon());\n }\n\n var text;\n\n if (loading) {\n text = loadingText;\n } else {\n text = slots.default ? slots.default() : props.text;\n }\n\n if (text) {\n content.push(h(\"span\", {\n \"class\": bem('text')\n }, [text]));\n }\n\n if (iconPosition === 'right') {\n content.push(renderIcon());\n }\n\n return content;\n }\n\n return h(tag, _mergeJSXProps([{\n \"style\": style,\n \"class\": classes,\n \"attrs\": {\n \"type\": props.nativeType,\n \"disabled\": disabled\n },\n \"on\": {\n \"click\": onClick,\n \"touchstart\": onTouchstart\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('content')\n }, [renderContent()])]);\n}\n\nButton.props = _extends({}, routeProps, {\n text: String,\n icon: String,\n color: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n iconPrefix: String,\n nativeType: String,\n loadingText: String,\n loadingType: String,\n tag: {\n type: String,\n default: 'button'\n },\n type: {\n type: String,\n default: 'default'\n },\n size: {\n type: String,\n default: 'normal'\n },\n loadingSize: {\n type: String,\n default: '20px'\n },\n iconPosition: {\n type: String,\n default: 'left'\n }\n});\nexport default createComponent(Button);","function flattenVNodes(vnodes) {\n var result = [];\n\n function traverse(vnodes) {\n vnodes.forEach(function (vnode) {\n result.push(vnode);\n\n if (vnode.componentInstance) {\n traverse(vnode.componentInstance.$children.map(function (item) {\n return item.$vnode;\n }));\n }\n\n if (vnode.children) {\n traverse(vnode.children);\n }\n });\n }\n\n traverse(vnodes);\n return result;\n} // sort children instances by vnodes order\n\n\nexport function sortChildren(children, parent) {\n var componentOptions = parent.$vnode.componentOptions;\n\n if (!componentOptions || !componentOptions.children) {\n return;\n }\n\n var vnodes = flattenVNodes(componentOptions.children);\n children.sort(function (a, b) {\n return vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode);\n });\n}","import { sortChildren } from '../utils/vnodes';\nexport function ChildrenMixin(_parent, options) {\n var _inject, _computed;\n\n if (options === void 0) {\n options = {};\n }\n\n var indexKey = options.indexKey || 'index';\n return {\n inject: (_inject = {}, _inject[_parent] = {\n default: null\n }, _inject),\n computed: (_computed = {\n parent: function parent() {\n if (this.disableBindRelation) {\n return null;\n }\n\n return this[_parent];\n }\n }, _computed[indexKey] = function () {\n this.bindRelation();\n\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return null;\n }, _computed),\n watch: {\n disableBindRelation: function disableBindRelation(val) {\n if (!val) {\n this.bindRelation();\n }\n }\n },\n mounted: function mounted() {\n this.bindRelation();\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n if (this.parent) {\n this.parent.children = this.parent.children.filter(function (item) {\n return item !== _this;\n });\n }\n },\n methods: {\n bindRelation: function bindRelation() {\n if (!this.parent || this.parent.children.indexOf(this) !== -1) {\n return;\n }\n\n var children = [].concat(this.parent.children, [this]);\n sortChildren(children, this.parent);\n this.parent.children = children;\n }\n }\n };\n}\nexport function ParentMixin(parent) {\n return {\n provide: function provide() {\n var _ref;\n\n return _ref = {}, _ref[parent] = this, _ref;\n },\n data: function data() {\n return {\n children: []\n };\n }\n };\n}","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('goods-action'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanGoodsAction')],\n props: {\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n unfit: !this.safeAreaInsetBottom\n })\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanDialog from './Dialog';\nimport { isServer } from '../utils';\nvar instance;\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\n\nfunction initInstance() {\n if (instance) {\n instance.$destroy();\n }\n\n instance = new (Vue.extend(VanDialog))({\n el: document.createElement('div'),\n // avoid missing animation when first rendered\n propsData: {\n lazyRender: false\n }\n });\n instance.$on('input', function (value) {\n instance.value = value;\n });\n}\n\nfunction Dialog(options) {\n /* istanbul ignore if */\n if (isServer) {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n if (!instance || !isInDocument(instance.$el)) {\n initInstance();\n }\n\n _extends(instance, Dialog.currentOptions, options, {\n resolve: resolve,\n reject: reject\n });\n });\n}\n\nDialog.defaultOptions = {\n value: true,\n title: '',\n width: '',\n theme: null,\n message: '',\n overlay: true,\n className: '',\n allowHtml: true,\n lockScroll: true,\n transition: 'van-dialog-bounce',\n beforeClose: null,\n overlayClass: '',\n overlayStyle: null,\n messageAlign: '',\n getContainer: 'body',\n cancelButtonText: '',\n cancelButtonColor: null,\n confirmButtonText: '',\n confirmButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false,\n callback: function callback(action) {\n instance[action === 'confirm' ? 'resolve' : 'reject'](action);\n }\n};\nDialog.alert = Dialog;\n\nDialog.confirm = function (options) {\n return Dialog(_extends({\n showCancelButton: true\n }, options));\n};\n\nDialog.close = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nDialog.setDefaultOptions = function (options) {\n _extends(Dialog.currentOptions, options);\n};\n\nDialog.resetDefaultOptions = function () {\n Dialog.currentOptions = _extends({}, Dialog.defaultOptions);\n};\n\nDialog.resetDefaultOptions();\n\nDialog.install = function () {\n Vue.use(VanDialog);\n};\n\nDialog.Component = VanDialog;\nVue.prototype.$dialog = Dialog;\nexport default Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { route, routeProps } from '../utils/router';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Button from '../button';\n\nvar _createNamespace = createNamespace('goods-action-button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGoodsAction')],\n props: _extends({}, routeProps, {\n type: String,\n text: String,\n icon: String,\n color: String,\n loading: Boolean,\n disabled: Boolean\n }),\n computed: {\n isFirst: function isFirst() {\n var prev = this.parent && this.parent.children[this.index - 1];\n return !prev || prev.$options.name !== this.$options.name;\n },\n isLast: function isLast() {\n var next = this.parent && this.parent.children[this.index + 1];\n return !next || next.$options.name !== this.$options.name;\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Button, {\n \"class\": bem([{\n first: this.isFirst,\n last: this.isLast\n }, this.type]),\n \"attrs\": {\n \"size\": \"large\",\n \"type\": this.type,\n \"icon\": this.icon,\n \"color\": this.color,\n \"loading\": this.loading,\n \"disabled\": this.disabled\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots() || this.text]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, addUnit, noop } from '../utils';\nimport { BORDER_TOP, BORDER_LEFT } from '../utils/constant';\nimport { PopupMixin } from '../mixins/popup';\nimport Button from '../button';\nimport GoodsAction from '../goods-action';\nimport GoodsActionButton from '../goods-action-button';\n\nvar _createNamespace = createNamespace('dialog'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n title: String,\n theme: String,\n width: [Number, String],\n message: String,\n className: null,\n callback: Function,\n beforeClose: Function,\n messageAlign: String,\n cancelButtonText: String,\n cancelButtonColor: String,\n confirmButtonText: String,\n confirmButtonColor: String,\n showCancelButton: Boolean,\n overlay: {\n type: Boolean,\n default: true\n },\n allowHtml: {\n type: Boolean,\n default: true\n },\n transition: {\n type: String,\n default: 'van-dialog-bounce'\n },\n showConfirmButton: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n loading: {\n confirm: false,\n cancel: false\n }\n };\n },\n methods: {\n onClickOverlay: function onClickOverlay() {\n this.handleAction('overlay');\n },\n handleAction: function handleAction(action) {\n var _this = this;\n\n this.$emit(action); // show not trigger close event when hidden\n\n if (!this.value) {\n return;\n }\n\n if (this.beforeClose) {\n this.loading[action] = true;\n this.beforeClose(action, function (state) {\n if (state !== false && _this.loading[action]) {\n _this.onClose(action);\n }\n\n _this.loading.confirm = false;\n _this.loading.cancel = false;\n });\n } else {\n this.onClose(action);\n }\n },\n onClose: function onClose(action) {\n this.close();\n\n if (this.callback) {\n this.callback(action);\n }\n },\n onOpened: function onOpened() {\n var _this2 = this;\n\n this.$emit('opened');\n this.$nextTick(function () {\n var _this2$$refs$dialog;\n\n (_this2$$refs$dialog = _this2.$refs.dialog) == null ? void 0 : _this2$$refs$dialog.focus();\n });\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n onKeydown: function onKeydown(event) {\n var _this3 = this;\n\n if (event.key === 'Escape' || event.key === 'Enter') {\n // skip keyboard events of child elements\n if (event.target !== this.$refs.dialog) {\n return;\n }\n\n var onEventType = {\n Enter: this.showConfirmButton ? function () {\n return _this3.handleAction('confirm');\n } : noop,\n Escape: this.showCancelButton ? function () {\n return _this3.handleAction('cancel');\n } : noop\n };\n onEventType[event.key]();\n this.$emit('keydown', event);\n }\n },\n genRoundButtons: function genRoundButtons() {\n var _this4 = this;\n\n var h = this.$createElement;\n return h(GoodsAction, {\n \"class\": bem('footer')\n }, [this.showCancelButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"warning\",\n \"text\": this.cancelButtonText || t('cancel'),\n \"color\": this.cancelButtonColor,\n \"loading\": this.loading.cancel\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": function click() {\n _this4.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": this.confirmButtonText || t('confirm'),\n \"color\": this.confirmButtonColor,\n \"loading\": this.loading.confirm\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": function click() {\n _this4.handleAction('confirm');\n }\n }\n })]);\n },\n genButtons: function genButtons() {\n var _this5 = this,\n _ref;\n\n var h = this.$createElement;\n var multiple = this.showCancelButton && this.showConfirmButton;\n return h(\"div\", {\n \"class\": [BORDER_TOP, bem('footer')]\n }, [this.showCancelButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.cancel,\n \"text\": this.cancelButtonText || t('cancel'),\n \"nativeType\": \"button\"\n },\n \"class\": bem('cancel'),\n \"style\": {\n color: this.cancelButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this5.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.confirm,\n \"text\": this.confirmButtonText || t('confirm'),\n \"nativeType\": \"button\"\n },\n \"class\": [bem('confirm'), (_ref = {}, _ref[BORDER_LEFT] = multiple, _ref)],\n \"style\": {\n color: this.confirmButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this5.handleAction('confirm');\n }\n }\n })]);\n },\n genContent: function genContent(hasTitle, messageSlot) {\n var h = this.$createElement;\n\n if (messageSlot) {\n return h(\"div\", {\n \"class\": bem('content')\n }, [messageSlot]);\n }\n\n var message = this.message,\n messageAlign = this.messageAlign;\n\n if (message) {\n var _bem, _domProps;\n\n var data = {\n class: bem('message', (_bem = {\n 'has-title': hasTitle\n }, _bem[messageAlign] = messageAlign, _bem)),\n domProps: (_domProps = {}, _domProps[this.allowHtml ? 'innerHTML' : 'textContent'] = message, _domProps)\n };\n return h(\"div\", {\n \"class\": bem('content', {\n isolated: !hasTitle\n })\n }, [h(\"div\", _mergeJSXProps([{}, data]))]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var message = this.message;\n var messageSlot = this.slots();\n var title = this.slots('title') || this.title;\n var Title = title && h(\"div\", {\n \"class\": bem('header', {\n isolated: !message && !messageSlot\n })\n }, [title]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"attrs\": {\n \"role\": \"dialog\",\n \"aria-labelledby\": this.title || message,\n \"tabIndex\": 0\n },\n \"class\": [bem([this.theme]), this.className],\n \"style\": {\n width: addUnit(this.width)\n },\n \"ref\": \"dialog\",\n \"on\": {\n \"keydown\": this.onKeydown\n }\n }, [Title, this.genContent(title, messageSlot), this.theme === 'round-button' ? this.genRoundButtons() : this.genButtons()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { isAndroid } from '../utils/validate/system'; // Components\n\nimport Cell from '../cell';\nimport Field from '../field';\n\nvar _createNamespace = createNamespace('address-edit-detail'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar android = isAndroid();\nexport default createComponent({\n props: {\n value: String,\n errorMessage: String,\n focused: Boolean,\n detailRows: [Number, String],\n searchResult: Array,\n detailMaxlength: [Number, String],\n showSearchResult: Boolean\n },\n computed: {\n shouldShowSearchResult: function shouldShowSearchResult() {\n return this.focused && this.searchResult && this.showSearchResult;\n }\n },\n methods: {\n onSelect: function onSelect(express) {\n this.$emit('select-search', express);\n this.$emit('input', ((express.address || '') + \" \" + (express.name || '')).trim());\n },\n onFinish: function onFinish() {\n this.$refs.field.blur();\n },\n genFinish: function genFinish() {\n var h = this.$createElement;\n var show = this.value && this.focused && android;\n\n if (show) {\n return h(\"div\", {\n \"class\": bem('finish'),\n \"on\": {\n \"click\": this.onFinish\n }\n }, [t('complete')]);\n }\n },\n genSearchResult: function genSearchResult() {\n var _this = this;\n\n var h = this.$createElement;\n var value = this.value,\n shouldShowSearchResult = this.shouldShowSearchResult,\n searchResult = this.searchResult;\n\n if (shouldShowSearchResult) {\n return searchResult.map(function (express) {\n return h(Cell, {\n \"key\": express.name + express.address,\n \"attrs\": {\n \"clickable\": true,\n \"border\": false,\n \"icon\": \"location-o\",\n \"label\": express.address\n },\n \"class\": bem('search-item'),\n \"on\": {\n \"click\": function click() {\n _this.onSelect(express);\n }\n },\n \"scopedSlots\": {\n title: function title() {\n if (express.name) {\n var text = express.name.replace(value, \"\" + value + \"\");\n return h(\"div\", {\n \"domProps\": {\n \"innerHTML\": text\n }\n });\n }\n }\n }\n });\n });\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Cell, {\n \"class\": bem()\n }, [h(Field, {\n \"attrs\": {\n \"autosize\": true,\n \"rows\": this.detailRows,\n \"clearable\": !android,\n \"type\": \"textarea\",\n \"value\": this.value,\n \"errorMessage\": this.errorMessage,\n \"border\": !this.shouldShowSearchResult,\n \"label\": t('label'),\n \"maxlength\": this.detailMaxlength,\n \"placeholder\": t('placeholder')\n },\n \"ref\": \"field\",\n \"scopedSlots\": {\n icon: this.genFinish\n },\n \"on\": _extends({}, this.$listeners)\n }), this.genSearchResult()]);\n }\n});","/**\n * Common Switch Props\n */\nexport var switchProps = {\n size: [Number, String],\n value: null,\n loading: Boolean,\n disabled: Boolean,\n activeColor: String,\n inactiveColor: String,\n activeValue: {\n type: null,\n default: true\n },\n inactiveValue: {\n type: null,\n default: false\n }\n};","export var FieldMixin = {\n inject: {\n vanField: {\n default: null\n }\n },\n watch: {\n value: function value() {\n var field = this.vanField;\n\n if (field) {\n field.resetValidation();\n field.validateWithTrigger('onChange');\n }\n }\n },\n created: function created() {\n var field = this.vanField;\n\n if (field && !field.children) {\n field.children = this;\n }\n }\n};","// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { switchProps } from './shared'; // Mixins\n\nimport { FieldMixin } from '../mixins/field'; // Components\n\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('switch'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [FieldMixin],\n props: switchProps,\n computed: {\n checked: function checked() {\n return this.value === this.activeValue;\n },\n style: function style() {\n return {\n fontSize: addUnit(this.size),\n backgroundColor: this.checked ? this.activeColor : this.inactiveColor\n };\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n\n if (!this.disabled && !this.loading) {\n var newValue = this.checked ? this.inactiveValue : this.activeValue;\n this.$emit('input', newValue);\n this.$emit('change', newValue);\n }\n },\n genLoading: function genLoading() {\n var h = this.$createElement;\n\n if (this.loading) {\n var color = this.checked ? this.activeColor : this.inactiveColor;\n return h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"color\": color\n }\n });\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var checked = this.checked,\n loading = this.loading,\n disabled = this.disabled;\n return h(\"div\", {\n \"class\": bem({\n on: checked,\n loading: loading,\n disabled: disabled\n }),\n \"attrs\": {\n \"role\": \"switch\",\n \"aria-checked\": String(checked)\n },\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('node')\n }, [this.genLoading()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isObject } from '../utils';\nimport { isMobile } from '../utils/validate/mobile'; // Components\n\nimport Area from '../area';\nimport Cell from '../cell';\nimport Field from '../field';\nimport Popup from '../popup';\nimport Toast from '../toast';\nimport Button from '../button';\nimport Dialog from '../dialog';\nimport Detail from './Detail';\nimport Switch from '../switch';\n\nvar _createNamespace = createNamespace('address-edit'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar defaultData = {\n name: '',\n tel: '',\n country: '',\n province: '',\n city: '',\n county: '',\n areaCode: '',\n postalCode: '',\n addressDetail: '',\n isDefault: false\n};\n\nfunction isPostal(value) {\n return /^\\d{6}$/.test(value);\n}\n\nexport default createComponent({\n props: {\n areaList: Object,\n isSaving: Boolean,\n isDeleting: Boolean,\n validator: Function,\n showDelete: Boolean,\n showPostal: Boolean,\n searchResult: Array,\n telMaxlength: [Number, String],\n showSetDefault: Boolean,\n saveButtonText: String,\n areaPlaceholder: String,\n deleteButtonText: String,\n showSearchResult: Boolean,\n showArea: {\n type: Boolean,\n default: true\n },\n showDetail: {\n type: Boolean,\n default: true\n },\n disableArea: Boolean,\n detailRows: {\n type: [Number, String],\n default: 1\n },\n detailMaxlength: {\n type: [Number, String],\n default: 200\n },\n addressInfo: {\n type: Object,\n default: function _default() {\n return _extends({}, defaultData);\n }\n },\n telValidator: {\n type: Function,\n default: isMobile\n },\n postalValidator: {\n type: Function,\n default: isPostal\n },\n areaColumnsPlaceholder: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n data: {},\n showAreaPopup: false,\n detailFocused: false,\n errorInfo: {\n tel: '',\n name: '',\n areaCode: '',\n postalCode: '',\n addressDetail: ''\n }\n };\n },\n computed: {\n areaListLoaded: function areaListLoaded() {\n return isObject(this.areaList) && Object.keys(this.areaList).length;\n },\n areaText: function areaText() {\n var _this$data = this.data,\n country = _this$data.country,\n province = _this$data.province,\n city = _this$data.city,\n county = _this$data.county,\n areaCode = _this$data.areaCode;\n\n if (areaCode) {\n var arr = [country, province, city, county];\n\n if (province && province === city) {\n arr.splice(1, 1);\n }\n\n return arr.filter(function (text) {\n return text;\n }).join('/');\n }\n\n return '';\n },\n // hide bottom field when use search && detail get focused\n hideBottomFields: function hideBottomFields() {\n var searchResult = this.searchResult;\n return searchResult && searchResult.length && this.detailFocused;\n }\n },\n watch: {\n addressInfo: {\n handler: function handler(val) {\n this.data = _extends({}, defaultData, val);\n this.setAreaCode(val.areaCode);\n },\n deep: true,\n immediate: true\n },\n areaList: function areaList() {\n this.setAreaCode(this.data.areaCode);\n }\n },\n methods: {\n onFocus: function onFocus(key) {\n this.errorInfo[key] = '';\n this.detailFocused = key === 'addressDetail';\n this.$emit('focus', key);\n },\n onChangeDetail: function onChangeDetail(val) {\n this.data.addressDetail = val;\n this.$emit('change-detail', val);\n },\n onAreaConfirm: function onAreaConfirm(values) {\n values = values.filter(function (value) {\n return !!value;\n });\n\n if (values.some(function (value) {\n return !value.code;\n })) {\n Toast(t('areaEmpty'));\n return;\n }\n\n this.showAreaPopup = false;\n this.assignAreaValues();\n this.$emit('change-area', values);\n },\n assignAreaValues: function assignAreaValues() {\n var area = this.$refs.area;\n\n if (area) {\n var detail = area.getArea();\n detail.areaCode = detail.code;\n delete detail.code;\n\n _extends(this.data, detail);\n }\n },\n onSave: function onSave() {\n var _this = this;\n\n var items = ['name', 'tel'];\n\n if (this.showArea) {\n items.push('areaCode');\n }\n\n if (this.showDetail) {\n items.push('addressDetail');\n }\n\n if (this.showPostal) {\n items.push('postalCode');\n }\n\n var isValid = items.every(function (item) {\n var msg = _this.getErrorMessage(item);\n\n if (msg) {\n _this.errorInfo[item] = msg;\n }\n\n return !msg;\n });\n\n if (isValid && !this.isSaving) {\n this.$emit('save', this.data);\n }\n },\n getErrorMessage: function getErrorMessage(key) {\n var value = String(this.data[key] || '').trim();\n\n if (this.validator) {\n var message = this.validator(key, value);\n\n if (message) {\n return message;\n }\n }\n\n switch (key) {\n case 'name':\n return value ? '' : t('nameEmpty');\n\n case 'tel':\n return this.telValidator(value) ? '' : t('telInvalid');\n\n case 'areaCode':\n return value ? '' : t('areaEmpty');\n\n case 'addressDetail':\n return value ? '' : t('addressEmpty');\n\n case 'postalCode':\n return value && !this.postalValidator(value) ? t('postalEmpty') : '';\n }\n },\n onDelete: function onDelete() {\n var _this2 = this;\n\n Dialog.confirm({\n title: t('confirmDelete')\n }).then(function () {\n _this2.$emit('delete', _this2.data);\n }).catch(function () {\n _this2.$emit('cancel-delete', _this2.data);\n });\n },\n // get values of area component\n getArea: function getArea() {\n return this.$refs.area ? this.$refs.area.getValues() : [];\n },\n // set area code to area component\n setAreaCode: function setAreaCode(code) {\n this.data.areaCode = code || '';\n\n if (code) {\n this.$nextTick(this.assignAreaValues);\n }\n },\n // @exposed-api\n setAddressDetail: function setAddressDetail(value) {\n this.data.addressDetail = value;\n },\n onDetailBlur: function onDetailBlur() {\n var _this3 = this;\n\n // await for click search event\n setTimeout(function () {\n _this3.detailFocused = false;\n });\n },\n genSetDefaultCell: function genSetDefaultCell(h) {\n var _this4 = this;\n\n if (this.showSetDefault) {\n var slots = {\n 'right-icon': function rightIcon() {\n return h(Switch, {\n \"attrs\": {\n \"size\": \"24\"\n },\n \"on\": {\n \"change\": function change(event) {\n _this4.$emit('change-default', event);\n }\n },\n \"model\": {\n value: _this4.data.isDefault,\n callback: function callback($$v) {\n _this4.$set(_this4.data, \"isDefault\", $$v);\n }\n }\n });\n }\n };\n return h(Cell, {\n \"directives\": [{\n name: \"show\",\n value: !this.hideBottomFields\n }],\n \"attrs\": {\n \"center\": true,\n \"title\": t('defaultAddress')\n },\n \"class\": bem('default'),\n \"scopedSlots\": slots\n });\n }\n\n return h();\n }\n },\n render: function render(h) {\n var _this5 = this;\n\n var data = this.data,\n errorInfo = this.errorInfo,\n disableArea = this.disableArea,\n hideBottomFields = this.hideBottomFields;\n\n var onFocus = function onFocus(name) {\n return function () {\n return _this5.onFocus(name);\n };\n };\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('fields')\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"label\": t('name'),\n \"placeholder\": t('namePlaceholder'),\n \"errorMessage\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n _this5.$set(data, \"name\", $$v);\n }\n }\n }), h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t('tel'),\n \"maxlength\": this.telMaxlength,\n \"placeholder\": t('telPlaceholder'),\n \"errorMessage\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n _this5.$set(data, \"tel\", $$v);\n }\n }\n }), h(Field, {\n \"directives\": [{\n name: \"show\",\n value: this.showArea\n }],\n \"attrs\": {\n \"readonly\": true,\n \"clickable\": !disableArea,\n \"label\": t('area'),\n \"placeholder\": this.areaPlaceholder || t('areaPlaceholder'),\n \"errorMessage\": errorInfo.areaCode,\n \"rightIcon\": !disableArea ? 'arrow' : null,\n \"value\": this.areaText\n },\n \"on\": {\n \"focus\": onFocus('areaCode'),\n \"click\": function click() {\n _this5.$emit('click-area');\n\n _this5.showAreaPopup = !disableArea;\n }\n }\n }), h(Detail, {\n \"directives\": [{\n name: \"show\",\n value: this.showDetail\n }],\n \"attrs\": {\n \"focused\": this.detailFocused,\n \"value\": data.addressDetail,\n \"errorMessage\": errorInfo.addressDetail,\n \"detailRows\": this.detailRows,\n \"detailMaxlength\": this.detailMaxlength,\n \"searchResult\": this.searchResult,\n \"showSearchResult\": this.showSearchResult\n },\n \"on\": {\n \"focus\": onFocus('addressDetail'),\n \"blur\": this.onDetailBlur,\n \"input\": this.onChangeDetail,\n \"select-search\": function selectSearch(event) {\n _this5.$emit('select-search', event);\n }\n }\n }), this.showPostal && h(Field, {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"attrs\": {\n \"type\": \"tel\",\n \"maxlength\": \"6\",\n \"label\": t('postal'),\n \"placeholder\": t('postal'),\n \"errorMessage\": errorInfo.postalCode\n },\n \"on\": {\n \"focus\": onFocus('postalCode')\n },\n \"model\": {\n value: data.postalCode,\n callback: function callback($$v) {\n _this5.$set(data, \"postalCode\", $$v);\n }\n }\n }), this.slots()]), this.genSetDefaultCell(h), h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"round\": true,\n \"loading\": this.isSaving,\n \"type\": \"danger\",\n \"text\": this.saveButtonText || t('save')\n },\n \"on\": {\n \"click\": this.onSave\n }\n }), this.showDelete && h(Button, {\n \"attrs\": {\n \"block\": true,\n \"round\": true,\n \"loading\": this.isDeleting,\n \"text\": this.deleteButtonText || t('delete')\n },\n \"on\": {\n \"click\": this.onDelete\n }\n })]), h(Popup, {\n \"attrs\": {\n \"round\": true,\n \"position\": \"bottom\",\n \"lazyRender\": false,\n \"getContainer\": \"body\"\n },\n \"model\": {\n value: _this5.showAreaPopup,\n callback: function callback($$v) {\n _this5.showAreaPopup = $$v;\n }\n }\n }, [h(Area, {\n \"ref\": \"area\",\n \"attrs\": {\n \"value\": data.areaCode,\n \"loading\": !this.areaListLoaded,\n \"areaList\": this.areaList,\n \"columnsPlaceholder\": this.areaColumnsPlaceholder\n },\n \"on\": {\n \"confirm\": this.onAreaConfirm,\n \"cancel\": function cancel() {\n _this5.showAreaPopup = false;\n }\n }\n })])]);\n }\n});","import { createNamespace } from '../utils';\nimport { FieldMixin } from '../mixins/field';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('radio-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanRadio'), FieldMixin],\n props: {\n value: null,\n disabled: Boolean,\n direction: String,\n checkedColor: String,\n iconSize: [Number, String]\n },\n watch: {\n value: function value(_value) {\n this.$emit('change', _value);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction]),\n \"attrs\": {\n \"role\": \"radiogroup\"\n }\n }, [this.slots()]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit, emit } from '../utils/functional'; // Components\n\nimport Icon from '../icon'; // Types\n\nvar _createNamespace = createNamespace('tag'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Tag(h, props, slots, ctx) {\n var _style;\n\n var type = props.type,\n mark = props.mark,\n plain = props.plain,\n color = props.color,\n round = props.round,\n size = props.size,\n textColor = props.textColor;\n var key = plain ? 'color' : 'backgroundColor';\n var style = (_style = {}, _style[key] = color, _style);\n\n if (plain) {\n style.color = textColor || color;\n style.borderColor = color;\n } else {\n style.color = textColor;\n style.background = color;\n }\n\n var classes = {\n mark: mark,\n plain: plain,\n round: round\n };\n\n if (size) {\n classes[size] = size;\n }\n\n var CloseIcon = props.closeable && h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'close');\n }\n }\n });\n return h(\"transition\", {\n \"attrs\": {\n \"name\": props.closeable ? 'van-fade' : null\n }\n }, [h(\"span\", _mergeJSXProps([{\n \"key\": \"content\",\n \"style\": style,\n \"class\": bem([classes, type])\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default(), CloseIcon])]);\n}\n\nTag.props = {\n size: String,\n mark: Boolean,\n color: String,\n plain: Boolean,\n round: Boolean,\n textColor: String,\n closeable: Boolean,\n type: {\n type: String,\n default: 'default'\n }\n};\nexport default createComponent(Tag);","/**\n * Common part of Checkbox & Radio\n */\nimport Icon from '../icon';\nimport { FieldMixin } from './field';\nimport { ChildrenMixin } from './relation';\nimport { addUnit } from '../utils';\nexport var CheckboxMixin = function CheckboxMixin(_ref) {\n var parent = _ref.parent,\n bem = _ref.bem,\n role = _ref.role;\n return {\n mixins: [ChildrenMixin(parent), FieldMixin],\n props: {\n name: null,\n value: null,\n disabled: Boolean,\n iconSize: [Number, String],\n checkedColor: String,\n labelPosition: String,\n labelDisabled: Boolean,\n shape: {\n type: String,\n default: 'round'\n },\n bindGroup: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n disableBindRelation: function disableBindRelation() {\n return !this.bindGroup;\n },\n isDisabled: function isDisabled() {\n return this.parent && this.parent.disabled || this.disabled;\n },\n direction: function direction() {\n return this.parent && this.parent.direction || null;\n },\n iconStyle: function iconStyle() {\n var checkedColor = this.checkedColor || this.parent && this.parent.checkedColor;\n\n if (checkedColor && this.checked && !this.isDisabled) {\n return {\n borderColor: checkedColor,\n backgroundColor: checkedColor\n };\n }\n },\n tabindex: function tabindex() {\n if (this.isDisabled || role === 'radio' && !this.checked) {\n return -1;\n }\n\n return 0;\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _this = this;\n\n var target = event.target;\n var icon = this.$refs.icon;\n var iconClicked = icon === target || (icon == null ? void 0 : icon.contains(target));\n\n if (!this.isDisabled && (iconClicked || !this.labelDisabled)) {\n this.toggle(); // wait for toggle method to complete\n // so we can get the changed value in the click event listener\n\n setTimeout(function () {\n _this.$emit('click', event);\n });\n } else {\n this.$emit('click', event);\n }\n },\n genIcon: function genIcon() {\n var h = this.$createElement;\n var checked = this.checked;\n var iconSize = this.iconSize || this.parent && this.parent.iconSize;\n return h(\"div\", {\n \"ref\": \"icon\",\n \"class\": bem('icon', [this.shape, {\n disabled: this.isDisabled,\n checked: checked\n }]),\n \"style\": {\n fontSize: addUnit(iconSize)\n }\n }, [this.slots('icon', {\n checked: checked\n }) || h(Icon, {\n \"attrs\": {\n \"name\": \"success\"\n },\n \"style\": this.iconStyle\n })]);\n },\n genLabel: function genLabel() {\n var h = this.$createElement;\n var slot = this.slots();\n\n if (slot) {\n return h(\"span\", {\n \"class\": bem('label', [this.labelPosition, {\n disabled: this.isDisabled\n }])\n }, [slot]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var Children = [this.genIcon()];\n\n if (this.labelPosition === 'left') {\n Children.unshift(this.genLabel());\n } else {\n Children.push(this.genLabel());\n }\n\n return h(\"div\", {\n \"attrs\": {\n \"role\": role,\n \"tabindex\": this.tabindex,\n \"aria-checked\": String(this.checked)\n },\n \"class\": bem([{\n disabled: this.isDisabled,\n 'label-disabled': this.labelDisabled\n }, this.direction]),\n \"on\": {\n \"click\": this.onClick\n }\n }, [Children]);\n }\n };\n};","import { createNamespace } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _createNamespace = createNamespace('radio'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [CheckboxMixin({\n bem: bem,\n role: 'radio',\n parent: 'vanRadio'\n })],\n computed: {\n currentValue: {\n get: function get() {\n return this.parent ? this.parent.value : this.value;\n },\n set: function set(val) {\n (this.parent || this).$emit('input', val);\n }\n },\n checked: function checked() {\n return this.currentValue === this.name;\n }\n },\n methods: {\n toggle: function toggle() {\n this.currentValue = this.name;\n }\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Tag from '../tag';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Radio from '../radio'; // Types\n\nvar _createNamespace = createNamespace('address-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction AddressItem(h, props, slots, ctx) {\n var disabled = props.disabled,\n switchable = props.switchable;\n\n function onClick() {\n if (switchable) {\n emit(ctx, 'select');\n }\n\n emit(ctx, 'click');\n }\n\n var genRightIcon = function genRightIcon() {\n return h(Icon, {\n \"attrs\": {\n \"name\": \"edit\"\n },\n \"class\": bem('edit'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'edit');\n emit(ctx, 'click');\n }\n }\n });\n };\n\n function genTag() {\n if (slots.tag) {\n return slots.tag(_extends({}, props.data));\n }\n\n if (props.data.isDefault && props.defaultTagText) {\n return h(Tag, {\n \"attrs\": {\n \"type\": \"danger\",\n \"round\": true\n },\n \"class\": bem('tag')\n }, [props.defaultTagText]);\n }\n }\n\n function genContent() {\n var data = props.data;\n var Info = [h(\"div\", {\n \"class\": bem('name')\n }, [data.name + \" \" + data.tel, genTag()]), h(\"div\", {\n \"class\": bem('address')\n }, [data.address])];\n\n if (switchable && !disabled) {\n return h(Radio, {\n \"attrs\": {\n \"name\": data.id,\n \"iconSize\": 18\n }\n }, [Info]);\n }\n\n return Info;\n }\n\n return h(\"div\", {\n \"class\": bem({\n disabled: disabled\n }),\n \"on\": {\n \"click\": onClick\n }\n }, [h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"border\": false,\n \"valueClass\": bem('value')\n },\n \"scopedSlots\": {\n default: genContent,\n 'right-icon': genRightIcon\n }\n }, inherit(ctx)])), slots.bottom == null ? void 0 : slots.bottom(_extends({}, props.data, {\n disabled: disabled\n }))]);\n}\n\nAddressItem.props = {\n data: Object,\n disabled: Boolean,\n switchable: Boolean,\n defaultTagText: String\n};\nexport default createComponent(AddressItem);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Button from '../button';\nimport RadioGroup from '../radio-group';\nimport AddressItem from './Item'; // Types\n\nvar _createNamespace = createNamespace('address-list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction AddressList(h, props, slots, ctx) {\n function genList(list, disabled) {\n if (!list) {\n return;\n }\n\n return list.map(function (item, index) {\n return h(AddressItem, {\n \"attrs\": {\n \"data\": item,\n \"disabled\": disabled,\n \"switchable\": props.switchable,\n \"defaultTagText\": props.defaultTagText\n },\n \"key\": item.id,\n \"scopedSlots\": {\n bottom: slots['item-bottom'],\n tag: slots.tag\n },\n \"on\": {\n \"select\": function select() {\n emit(ctx, disabled ? 'select-disabled' : 'select', item, index);\n\n if (!disabled) {\n emit(ctx, 'input', item.id);\n }\n },\n \"edit\": function edit() {\n emit(ctx, disabled ? 'edit-disabled' : 'edit', item, index);\n },\n \"click\": function click() {\n emit(ctx, 'click-item', item, index);\n }\n }\n });\n });\n }\n\n var List = genList(props.list);\n var DisabledList = genList(props.disabledList, true);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [slots.top == null ? void 0 : slots.top(), h(RadioGroup, {\n \"attrs\": {\n \"value\": props.value\n }\n }, [List]), props.disabledText && h(\"div\", {\n \"class\": bem('disabled-text')\n }, [props.disabledText]), DisabledList, slots.default == null ? void 0 : slots.default(), h(\"div\", {\n \"class\": bem('bottom')\n }, [h(Button, {\n \"attrs\": {\n \"round\": true,\n \"block\": true,\n \"type\": \"danger\",\n \"text\": props.addButtonText || t('add')\n },\n \"class\": bem('add'),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'add');\n }\n }\n })])]);\n}\n\nAddressList.props = {\n list: Array,\n value: [Number, String],\n disabledList: Array,\n disabledText: String,\n addButtonText: String,\n defaultTagText: String,\n switchable: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(AddressList);","import { isDef, createNamespace } from '../utils';\nimport { isNumeric } from '../utils/validate/number';\n\nvar _createNamespace = createNamespace('badge'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n dot: Boolean,\n max: [Number, String],\n color: String,\n content: [Number, String],\n tag: {\n type: String,\n default: 'div'\n }\n },\n methods: {\n hasContent: function hasContent() {\n return !!(this.$scopedSlots.content || isDef(this.content) && this.content !== '');\n },\n renderContent: function renderContent() {\n var dot = this.dot,\n max = this.max,\n content = this.content;\n\n if (!dot && this.hasContent()) {\n if (this.$scopedSlots.content) {\n return this.$scopedSlots.content();\n }\n\n if (isDef(max) && isNumeric(content) && +content > max) {\n return max + \"+\";\n }\n\n return content;\n }\n },\n renderBadge: function renderBadge() {\n var h = this.$createElement;\n\n if (this.hasContent() || this.dot) {\n return h(\"div\", {\n \"class\": bem({\n dot: this.dot,\n fixed: !!this.$scopedSlots.default\n }),\n \"style\": {\n background: this.color\n }\n }, [this.renderContent()]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (this.$scopedSlots.default) {\n var tag = this.tag;\n return h(tag, {\n \"class\": bem('wrapper')\n }, [this.$scopedSlots.default(), this.renderBadge()]);\n }\n\n return this.renderBadge();\n }\n});","/**\n * requestAnimationFrame polyfill\n */\nimport { isServer } from '..';\nvar prev = Date.now();\n/* istanbul ignore next */\n\nfunction fallback(fn) {\n var curr = Date.now();\n var ms = Math.max(0, 16 - (curr - prev));\n var id = setTimeout(fn, ms);\n prev = curr + ms;\n return id;\n}\n/* istanbul ignore next */\n\n\nvar root = isServer ? global : window;\n/* istanbul ignore next */\n\nvar iRaf = root.requestAnimationFrame || fallback;\n/* istanbul ignore next */\n\nvar iCancel = root.cancelAnimationFrame || root.clearTimeout;\nexport function raf(fn) {\n return iRaf.call(root, fn);\n} // double raf for animation\n\nexport function doubleRaf(fn) {\n raf(function () {\n raf(fn);\n });\n}\nexport function cancelRaf(id) {\n iCancel.call(root, id);\n}","import { isNaN } from './number';\nexport function isDate(val) {\n return Object.prototype.toString.call(val) === '[object Date]' && !isNaN(val.getTime());\n}","import { createNamespace } from '../utils';\n\nvar _createNamespace = createNamespace('calendar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport { createComponent, bem, t };\nexport function formatMonthTitle(date) {\n return t('monthTitle', date.getFullYear(), date.getMonth() + 1);\n}\nexport function compareMonth(date1, date2) {\n var year1 = date1.getFullYear();\n var year2 = date2.getFullYear();\n var month1 = date1.getMonth();\n var month2 = date2.getMonth();\n\n if (year1 === year2) {\n return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;\n }\n\n return year1 > year2 ? 1 : -1;\n}\nexport function compareDay(day1, day2) {\n var compareMonthResult = compareMonth(day1, day2);\n\n if (compareMonthResult === 0) {\n var date1 = day1.getDate();\n var date2 = day2.getDate();\n return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;\n }\n\n return compareMonthResult;\n}\nexport function getDayByOffset(date, offset) {\n date = new Date(date);\n date.setDate(date.getDate() + offset);\n return date;\n}\nexport function getPrevDay(date) {\n return getDayByOffset(date, -1);\n}\nexport function getNextDay(date) {\n return getDayByOffset(date, 1);\n}\nexport function calcDateNum(date) {\n var day1 = date[0].getTime();\n var day2 = date[1].getTime();\n return (day2 - day1) / (1000 * 60 * 60 * 24) + 1;\n}\nexport function copyDate(dates) {\n return new Date(dates);\n}\nexport function copyDates(dates) {\n if (Array.isArray(dates)) {\n return dates.map(function (date) {\n if (date === null) {\n return date;\n }\n\n return copyDate(date);\n });\n }\n\n return copyDate(dates);\n}","import { isNaN } from '../utils/validate/number';\nexport function times(n, iteratee) {\n if (n < 0) {\n return [];\n }\n\n var index = -1;\n var result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n}\nexport function getTrueValue(value) {\n if (!value) {\n return 0;\n }\n\n while (isNaN(parseInt(value, 10))) {\n if (value.length > 1) {\n value = value.slice(1);\n } else {\n return 0;\n }\n }\n\n return parseInt(value, 10);\n}\nexport function getMonthEndDay(year, month) {\n return 32 - new Date(year, month - 1, 32).getDate();\n}","import { createNamespace, addUnit } from '../../utils';\nimport { setScrollTop } from '../../utils/dom/scroll';\nimport { t, bem, compareDay, getPrevDay, getNextDay, formatMonthTitle } from '../utils';\nimport { getMonthEndDay } from '../../datetime-picker/utils';\n\nvar _createNamespace = createNamespace('calendar-month'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n props: {\n date: Date,\n type: String,\n color: String,\n minDate: Date,\n maxDate: Date,\n showMark: Boolean,\n rowHeight: [Number, String],\n formatter: Function,\n lazyRender: Boolean,\n currentDate: [Date, Array],\n allowSameDay: Boolean,\n showSubtitle: Boolean,\n showMonthTitle: Boolean,\n firstDayOfWeek: Number\n },\n data: function data() {\n return {\n visible: false\n };\n },\n computed: {\n title: function title() {\n return formatMonthTitle(this.date);\n },\n rowHeightWithUnit: function rowHeightWithUnit() {\n return addUnit(this.rowHeight);\n },\n offset: function offset() {\n var firstDayOfWeek = this.firstDayOfWeek;\n var realDay = this.date.getDay();\n\n if (!firstDayOfWeek) {\n return realDay;\n }\n\n return (realDay + 7 - this.firstDayOfWeek) % 7;\n },\n totalDay: function totalDay() {\n return getMonthEndDay(this.date.getFullYear(), this.date.getMonth() + 1);\n },\n shouldRender: function shouldRender() {\n return this.visible || !this.lazyRender;\n },\n placeholders: function placeholders() {\n var rows = [];\n var count = Math.ceil((this.totalDay + this.offset) / 7);\n\n for (var day = 1; day <= count; day++) {\n rows.push({\n type: 'placeholder'\n });\n }\n\n return rows;\n },\n days: function days() {\n var days = [];\n var year = this.date.getFullYear();\n var month = this.date.getMonth();\n\n for (var day = 1; day <= this.totalDay; day++) {\n var date = new Date(year, month, day);\n var type = this.getDayType(date);\n var config = {\n date: date,\n type: type,\n text: day,\n bottomInfo: this.getBottomInfo(type)\n };\n\n if (this.formatter) {\n config = this.formatter(config);\n }\n\n days.push(config);\n }\n\n return days;\n }\n },\n methods: {\n getHeight: function getHeight() {\n var _this$$el;\n\n return ((_this$$el = this.$el) == null ? void 0 : _this$$el.getBoundingClientRect().height) || 0;\n },\n scrollIntoView: function scrollIntoView(body) {\n var _this$$refs = this.$refs,\n days = _this$$refs.days,\n month = _this$$refs.month;\n var el = this.showSubtitle ? days : month;\n var scrollTop = el.getBoundingClientRect().top - body.getBoundingClientRect().top + body.scrollTop;\n setScrollTop(body, scrollTop);\n },\n getMultipleDayType: function getMultipleDayType(day) {\n var _this = this;\n\n var isSelected = function isSelected(date) {\n return _this.currentDate.some(function (item) {\n return compareDay(item, date) === 0;\n });\n };\n\n if (isSelected(day)) {\n var prevDay = getPrevDay(day);\n var nextDay = getNextDay(day);\n var prevSelected = isSelected(prevDay);\n var nextSelected = isSelected(nextDay);\n\n if (prevSelected && nextSelected) {\n return 'multiple-middle';\n }\n\n if (prevSelected) {\n return 'end';\n }\n\n return nextSelected ? 'start' : 'multiple-selected';\n }\n\n return '';\n },\n getRangeDayType: function getRangeDayType(day) {\n var _this$currentDate = this.currentDate,\n startDay = _this$currentDate[0],\n endDay = _this$currentDate[1];\n\n if (!startDay) {\n return '';\n }\n\n var compareToStart = compareDay(day, startDay);\n\n if (!endDay) {\n return compareToStart === 0 ? 'start' : '';\n }\n\n var compareToEnd = compareDay(day, endDay);\n\n if (compareToStart === 0 && compareToEnd === 0 && this.allowSameDay) {\n return 'start-end';\n }\n\n if (compareToStart === 0) {\n return 'start';\n }\n\n if (compareToEnd === 0) {\n return 'end';\n }\n\n if (compareToStart > 0 && compareToEnd < 0) {\n return 'middle';\n }\n },\n getDayType: function getDayType(day) {\n var type = this.type,\n minDate = this.minDate,\n maxDate = this.maxDate,\n currentDate = this.currentDate;\n\n if (compareDay(day, minDate) < 0 || compareDay(day, maxDate) > 0) {\n return 'disabled';\n }\n\n if (currentDate === null) {\n return;\n }\n\n if (type === 'single') {\n return compareDay(day, currentDate) === 0 ? 'selected' : '';\n }\n\n if (type === 'multiple') {\n return this.getMultipleDayType(day);\n }\n /* istanbul ignore else */\n\n\n if (type === 'range') {\n return this.getRangeDayType(day);\n }\n },\n getBottomInfo: function getBottomInfo(type) {\n if (this.type === 'range') {\n if (type === 'start' || type === 'end') {\n return t(type);\n }\n\n if (type === 'start-end') {\n return t('startEnd');\n }\n }\n },\n getDayStyle: function getDayStyle(type, index) {\n var style = {\n height: this.rowHeightWithUnit\n };\n\n if (type === 'placeholder') {\n style.width = '100%';\n return style;\n }\n\n if (index === 0) {\n style.marginLeft = 100 * this.offset / 7 + \"%\";\n }\n\n if (this.color) {\n if (type === 'start' || type === 'end' || type === 'start-end' || type === 'multiple-selected' || type === 'multiple-middle') {\n style.background = this.color;\n } else if (type === 'middle') {\n style.color = this.color;\n }\n }\n\n return style;\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n\n if (this.showMonthTitle) {\n return h(\"div\", {\n \"class\": bem('month-title')\n }, [this.title]);\n }\n },\n genMark: function genMark() {\n var h = this.$createElement;\n\n if (this.showMark && this.shouldRender) {\n return h(\"div\", {\n \"class\": bem('month-mark')\n }, [this.date.getMonth() + 1]);\n }\n },\n genDays: function genDays() {\n var h = this.$createElement;\n var days = this.shouldRender ? this.days : this.placeholders;\n return h(\"div\", {\n \"ref\": \"days\",\n \"attrs\": {\n \"role\": \"grid\"\n },\n \"class\": bem('days')\n }, [this.genMark(), days.map(this.genDay)]);\n },\n genTopInfo: function genTopInfo(item) {\n var h = this.$createElement;\n var slot = this.$scopedSlots['top-info'];\n\n if (item.topInfo || slot) {\n return h(\"div\", {\n \"class\": bem('top-info')\n }, [slot ? slot(item) : item.topInfo]);\n }\n },\n genBottomInfo: function genBottomInfo(item) {\n var h = this.$createElement;\n var slot = this.$scopedSlots['bottom-info'];\n\n if (item.bottomInfo || slot) {\n return h(\"div\", {\n \"class\": bem('bottom-info')\n }, [slot ? slot(item) : item.bottomInfo]);\n }\n },\n genDay: function genDay(item, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n var type = item.type;\n var style = this.getDayStyle(type, index);\n var disabled = type === 'disabled';\n\n var onClick = function onClick() {\n if (!disabled) {\n _this2.$emit('click', item);\n }\n };\n\n if (type === 'selected') {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"gridcell\",\n \"tabindex\": -1\n },\n \"style\": style,\n \"class\": [bem('day'), item.className],\n \"on\": {\n \"click\": onClick\n }\n }, [h(\"div\", {\n \"class\": bem('selected-day'),\n \"style\": {\n width: this.rowHeightWithUnit,\n height: this.rowHeightWithUnit,\n background: this.color\n }\n }, [this.genTopInfo(item), item.text, this.genBottomInfo(item)])]);\n }\n\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"gridcell\",\n \"tabindex\": disabled ? null : -1\n },\n \"style\": style,\n \"class\": [bem('day', type), item.className],\n \"on\": {\n \"click\": onClick\n }\n }, [this.genTopInfo(item), item.text, this.genBottomInfo(item)]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('month'),\n \"ref\": \"month\"\n }, [this.genTitle(), this.genDays()]);\n }\n});","import { createNamespace } from '../../utils';\nimport { t, bem } from '../utils';\n\nvar _createNamespace = createNamespace('calendar-header'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n props: {\n title: String,\n subtitle: String,\n showTitle: Boolean,\n showSubtitle: Boolean,\n firstDayOfWeek: Number\n },\n methods: {\n genTitle: function genTitle() {\n var h = this.$createElement;\n\n if (this.showTitle) {\n var title = this.slots('title') || this.title || t('title');\n return h(\"div\", {\n \"class\": bem('header-title')\n }, [title]);\n }\n },\n genSubtitle: function genSubtitle() {\n var h = this.$createElement;\n\n if (this.showSubtitle) {\n return h(\"div\", {\n \"class\": bem('header-subtitle')\n }, [this.subtitle]);\n }\n },\n genWeekDays: function genWeekDays() {\n var h = this.$createElement;\n var weekdays = t('weekdays');\n var firstDayOfWeek = this.firstDayOfWeek;\n var renderWeekDays = [].concat(weekdays.slice(firstDayOfWeek, 7), weekdays.slice(0, firstDayOfWeek));\n return h(\"div\", {\n \"class\": bem('weekdays')\n }, [renderWeekDays.map(function (item) {\n return h(\"span\", {\n \"class\": bem('weekday')\n }, [item]);\n })]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('header')\n }, [this.genTitle(), this.genSubtitle(), this.genWeekDays()]);\n }\n});","// Utils\nimport { raf } from '../utils/dom/raf';\nimport { isDate } from '../utils/validate/date';\nimport { getScrollTop } from '../utils/dom/scroll';\nimport { t, bem, copyDate, copyDates, getNextDay, compareDay, calcDateNum, compareMonth, createComponent, getDayByOffset } from './utils'; // Components\n\nimport Popup from '../popup';\nimport Button from '../button';\nimport Toast from '../toast';\nimport Month from './components/Month';\nimport Header from './components/Header';\nexport default createComponent({\n props: {\n title: String,\n color: String,\n value: Boolean,\n readonly: Boolean,\n formatter: Function,\n rowHeight: [Number, String],\n confirmText: String,\n rangePrompt: String,\n defaultDate: [Date, Array],\n getContainer: [String, Function],\n allowSameDay: Boolean,\n confirmDisabledText: String,\n type: {\n type: String,\n default: 'single'\n },\n round: {\n type: Boolean,\n default: true\n },\n position: {\n type: String,\n default: 'bottom'\n },\n poppable: {\n type: Boolean,\n default: true\n },\n maxRange: {\n type: [Number, String],\n default: null\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n showMark: {\n type: Boolean,\n default: true\n },\n showTitle: {\n type: Boolean,\n default: true\n },\n showConfirm: {\n type: Boolean,\n default: true\n },\n showSubtitle: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n minDate: {\n type: Date,\n validator: isDate,\n default: function _default() {\n return new Date();\n }\n },\n maxDate: {\n type: Date,\n validator: isDate,\n default: function _default() {\n var now = new Date();\n return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate());\n }\n },\n firstDayOfWeek: {\n type: [Number, String],\n default: 0,\n validator: function validator(val) {\n return val >= 0 && val <= 6;\n }\n }\n },\n inject: {\n vanPopup: {\n default: null\n }\n },\n data: function data() {\n return {\n subtitle: '',\n currentDate: this.getInitialDate()\n };\n },\n computed: {\n months: function months() {\n var months = [];\n var cursor = new Date(this.minDate);\n cursor.setDate(1);\n\n do {\n months.push(new Date(cursor));\n cursor.setMonth(cursor.getMonth() + 1);\n } while (compareMonth(cursor, this.maxDate) !== 1);\n\n return months;\n },\n buttonDisabled: function buttonDisabled() {\n var type = this.type,\n currentDate = this.currentDate;\n\n if (currentDate) {\n if (type === 'range') {\n return !currentDate[0] || !currentDate[1];\n }\n\n if (type === 'multiple') {\n return !currentDate.length;\n }\n }\n\n return !currentDate;\n },\n dayOffset: function dayOffset() {\n return this.firstDayOfWeek ? this.firstDayOfWeek % 7 : 0;\n }\n },\n watch: {\n value: 'init',\n type: function type() {\n this.reset();\n },\n defaultDate: function defaultDate(val) {\n this.currentDate = val;\n this.scrollIntoView();\n }\n },\n mounted: function mounted() {\n this.init(); // https://github.com/vant-ui/vant/issues/9845\n\n if (!this.poppable) {\n var _this$vanPopup;\n\n (_this$vanPopup = this.vanPopup) == null ? void 0 : _this$vanPopup.$on('opened', this.onScroll);\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.init();\n },\n methods: {\n // @exposed-api\n reset: function reset(date) {\n if (date === void 0) {\n date = this.getInitialDate();\n }\n\n this.currentDate = date;\n this.scrollIntoView();\n },\n init: function init() {\n var _this = this;\n\n if (this.poppable && !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n // add Math.floor to avoid decimal height issues\n // https://github.com/vant-ui/vant/issues/5640\n _this.bodyHeight = Math.floor(_this.$refs.body.getBoundingClientRect().height);\n\n _this.onScroll();\n\n _this.scrollIntoView();\n });\n },\n // @exposed-api\n scrollToDate: function scrollToDate(targetDate) {\n var _this2 = this;\n\n raf(function () {\n var displayed = _this2.value || !_this2.poppable;\n /* istanbul ignore if */\n\n if (!targetDate || !displayed) {\n return;\n }\n\n _this2.months.some(function (month, index) {\n if (compareMonth(month, targetDate) === 0) {\n var _this2$$refs = _this2.$refs,\n body = _this2$$refs.body,\n months = _this2$$refs.months;\n months[index].scrollIntoView(body);\n return true;\n }\n\n return false;\n });\n\n _this2.onScroll();\n });\n },\n // scroll to current month\n scrollIntoView: function scrollIntoView() {\n var currentDate = this.currentDate;\n\n if (currentDate) {\n var targetDate = this.type === 'single' ? currentDate : currentDate[0];\n this.scrollToDate(targetDate);\n }\n },\n getInitialDate: function getInitialDate() {\n var type = this.type,\n minDate = this.minDate,\n maxDate = this.maxDate,\n defaultDate = this.defaultDate;\n\n if (defaultDate === null) {\n return defaultDate;\n }\n\n var defaultVal = new Date();\n\n if (compareDay(defaultVal, minDate) === -1) {\n defaultVal = minDate;\n } else if (compareDay(defaultVal, maxDate) === 1) {\n defaultVal = maxDate;\n }\n\n if (type === 'range') {\n var _ref = defaultDate || [],\n startDay = _ref[0],\n endDay = _ref[1];\n\n return [startDay || defaultVal, endDay || getNextDay(defaultVal)];\n }\n\n if (type === 'multiple') {\n return defaultDate || [defaultVal];\n }\n\n return defaultDate || defaultVal;\n },\n // calculate the position of the elements\n // and find the elements that needs to be rendered\n onScroll: function onScroll() {\n var _this$$refs = this.$refs,\n body = _this$$refs.body,\n months = _this$$refs.months;\n var top = getScrollTop(body);\n var bottom = top + this.bodyHeight;\n var heights = months.map(function (item) {\n return item.getHeight();\n });\n var heightSum = heights.reduce(function (a, b) {\n return a + b;\n }, 0); // iOS scroll bounce may exceed the range\n\n if (bottom > heightSum && top > 0) {\n return;\n }\n\n var height = 0;\n var currentMonth;\n var visibleRange = [-1, -1];\n\n for (var i = 0; i < months.length; i++) {\n var visible = height <= bottom && height + heights[i] >= top;\n\n if (visible) {\n visibleRange[1] = i;\n\n if (!currentMonth) {\n currentMonth = months[i];\n visibleRange[0] = i;\n }\n\n if (!months[i].showed) {\n months[i].showed = true;\n this.$emit('month-show', {\n date: months[i].date,\n title: months[i].title\n });\n }\n }\n\n height += heights[i];\n }\n\n months.forEach(function (month, index) {\n month.visible = index >= visibleRange[0] - 1 && index <= visibleRange[1] + 1;\n });\n /* istanbul ignore else */\n\n if (currentMonth) {\n this.subtitle = currentMonth.title;\n }\n },\n onClickDay: function onClickDay(item) {\n if (this.readonly) {\n return;\n }\n\n var date = item.date;\n var type = this.type,\n currentDate = this.currentDate;\n\n if (type === 'range') {\n if (!currentDate) {\n this.select([date, null]);\n return;\n }\n\n var startDay = currentDate[0],\n endDay = currentDate[1];\n\n if (startDay && !endDay) {\n var compareToStart = compareDay(date, startDay);\n\n if (compareToStart === 1) {\n this.select([startDay, date], true);\n } else if (compareToStart === -1) {\n this.select([date, null]);\n } else if (this.allowSameDay) {\n this.select([date, date], true);\n }\n } else {\n this.select([date, null]);\n }\n } else if (type === 'multiple') {\n if (!currentDate) {\n this.select([date]);\n return;\n }\n\n var selectedIndex;\n var selected = this.currentDate.some(function (dateItem, index) {\n var equal = compareDay(dateItem, date) === 0;\n\n if (equal) {\n selectedIndex = index;\n }\n\n return equal;\n });\n\n if (selected) {\n var _currentDate$splice = currentDate.splice(selectedIndex, 1),\n unselectedDate = _currentDate$splice[0];\n\n this.$emit('unselect', copyDate(unselectedDate));\n } else if (this.maxRange && currentDate.length >= this.maxRange) {\n Toast(this.rangePrompt || t('rangePrompt', this.maxRange));\n } else {\n this.select([].concat(currentDate, [date]));\n }\n } else {\n this.select(date, true);\n }\n },\n togglePopup: function togglePopup(val) {\n this.$emit('input', val);\n },\n select: function select(date, complete) {\n var _this3 = this;\n\n var emit = function emit(date) {\n _this3.currentDate = date;\n\n _this3.$emit('select', copyDates(_this3.currentDate));\n };\n\n if (complete && this.type === 'range') {\n var valid = this.checkRange(date);\n\n if (!valid) {\n // auto selected to max range if showConfirm\n if (this.showConfirm) {\n emit([date[0], getDayByOffset(date[0], this.maxRange - 1)]);\n } else {\n emit(date);\n }\n\n return;\n }\n }\n\n emit(date);\n\n if (complete && !this.showConfirm) {\n this.onConfirm();\n }\n },\n checkRange: function checkRange(date) {\n var maxRange = this.maxRange,\n rangePrompt = this.rangePrompt;\n\n if (maxRange && calcDateNum(date) > maxRange) {\n Toast(rangePrompt || t('rangePrompt', maxRange));\n return false;\n }\n\n return true;\n },\n onConfirm: function onConfirm() {\n this.$emit('confirm', copyDates(this.currentDate));\n },\n genMonth: function genMonth(date, index) {\n var h = this.$createElement;\n var showMonthTitle = index !== 0 || !this.showSubtitle;\n return h(Month, {\n \"ref\": \"months\",\n \"refInFor\": true,\n \"attrs\": {\n \"date\": date,\n \"type\": this.type,\n \"color\": this.color,\n \"minDate\": this.minDate,\n \"maxDate\": this.maxDate,\n \"showMark\": this.showMark,\n \"formatter\": this.formatter,\n \"rowHeight\": this.rowHeight,\n \"lazyRender\": this.lazyRender,\n \"currentDate\": this.currentDate,\n \"showSubtitle\": this.showSubtitle,\n \"allowSameDay\": this.allowSameDay,\n \"showMonthTitle\": showMonthTitle,\n \"firstDayOfWeek\": this.dayOffset\n },\n \"scopedSlots\": {\n 'top-info': this.$scopedSlots['top-info'],\n 'bottom-info': this.$scopedSlots['bottom-info']\n },\n \"on\": {\n \"click\": this.onClickDay\n }\n });\n },\n genFooterContent: function genFooterContent() {\n var h = this.$createElement;\n var slot = this.slots('footer');\n\n if (slot) {\n return slot;\n }\n\n if (this.showConfirm) {\n var text = this.buttonDisabled ? this.confirmDisabledText : this.confirmText;\n return h(Button, {\n \"attrs\": {\n \"round\": true,\n \"block\": true,\n \"type\": \"danger\",\n \"color\": this.color,\n \"disabled\": this.buttonDisabled,\n \"nativeType\": \"button\"\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": this.onConfirm\n }\n }, [text || t('confirm')]);\n }\n },\n genFooter: function genFooter() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('footer', {\n unfit: !this.safeAreaInsetBottom\n })\n }, [this.genFooterContent()]);\n },\n genCalendar: function genCalendar() {\n var _this4 = this;\n\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem()\n }, [h(Header, {\n \"attrs\": {\n \"title\": this.title,\n \"showTitle\": this.showTitle,\n \"subtitle\": this.subtitle,\n \"showSubtitle\": this.showSubtitle,\n \"firstDayOfWeek\": this.dayOffset\n },\n \"scopedSlots\": {\n title: function title() {\n return _this4.slots('title');\n }\n }\n }), h(\"div\", {\n \"ref\": \"body\",\n \"class\": bem('body'),\n \"on\": {\n \"scroll\": this.onScroll\n }\n }, [this.months.map(this.genMonth)]), this.genFooter()]);\n }\n },\n render: function render() {\n var _this5 = this;\n\n var h = arguments[0];\n\n if (this.poppable) {\n var _attrs;\n\n var createListener = function createListener(name) {\n return function () {\n return _this5.$emit(name);\n };\n };\n\n return h(Popup, {\n \"attrs\": (_attrs = {\n \"round\": true,\n \"value\": this.value\n }, _attrs[\"round\"] = this.round, _attrs[\"position\"] = this.position, _attrs[\"closeable\"] = this.showTitle || this.showSubtitle, _attrs[\"getContainer\"] = this.getContainer, _attrs[\"closeOnPopstate\"] = this.closeOnPopstate, _attrs[\"closeOnClickOverlay\"] = this.closeOnClickOverlay, _attrs),\n \"class\": bem('popup'),\n \"on\": {\n \"input\": this.togglePopup,\n \"open\": createListener('open'),\n \"opened\": createListener('opened'),\n \"close\": createListener('close'),\n \"closed\": createListener('closed')\n }\n }, [this.genCalendar()]);\n }\n\n return this.genCalendar();\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, isDef, addUnit, inBrowser } from '../utils';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('image'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n src: String,\n fit: String,\n alt: String,\n round: Boolean,\n width: [Number, String],\n height: [Number, String],\n radius: [Number, String],\n lazyLoad: Boolean,\n iconPrefix: String,\n showError: {\n type: Boolean,\n default: true\n },\n showLoading: {\n type: Boolean,\n default: true\n },\n errorIcon: {\n type: String,\n default: 'photo-fail'\n },\n loadingIcon: {\n type: String,\n default: 'photo'\n }\n },\n data: function data() {\n return {\n loading: true,\n error: false\n };\n },\n watch: {\n src: function src() {\n this.loading = true;\n this.error = false;\n }\n },\n computed: {\n style: function style() {\n var style = {};\n\n if (isDef(this.width)) {\n style.width = addUnit(this.width);\n }\n\n if (isDef(this.height)) {\n style.height = addUnit(this.height);\n }\n\n if (isDef(this.radius)) {\n style.overflow = 'hidden';\n style.borderRadius = addUnit(this.radius);\n }\n\n return style;\n }\n },\n created: function created() {\n var $Lazyload = this.$Lazyload;\n\n if ($Lazyload && inBrowser) {\n $Lazyload.$on('loaded', this.onLazyLoaded);\n $Lazyload.$on('error', this.onLazyLoadError);\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $Lazyload = this.$Lazyload;\n\n if ($Lazyload) {\n $Lazyload.$off('loaded', this.onLazyLoaded);\n $Lazyload.$off('error', this.onLazyLoadError);\n }\n },\n methods: {\n onLoad: function onLoad(event) {\n this.loading = false;\n this.$emit('load', event);\n },\n onLazyLoaded: function onLazyLoaded(_ref) {\n var el = _ref.el;\n\n if (el === this.$refs.image && this.loading) {\n this.onLoad();\n }\n },\n onLazyLoadError: function onLazyLoadError(_ref2) {\n var el = _ref2.el;\n\n if (el === this.$refs.image && !this.error) {\n this.onError();\n }\n },\n onError: function onError(event) {\n this.error = true;\n this.loading = false;\n this.$emit('error', event);\n },\n onClick: function onClick(event) {\n this.$emit('click', event);\n },\n genPlaceholder: function genPlaceholder() {\n var h = this.$createElement;\n\n if (this.loading && this.showLoading) {\n return h(\"div\", {\n \"class\": bem('loading')\n }, [this.slots('loading') || h(Icon, {\n \"attrs\": {\n \"name\": this.loadingIcon,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('loading-icon')\n })]);\n }\n\n if (this.error && this.showError) {\n return h(\"div\", {\n \"class\": bem('error')\n }, [this.slots('error') || h(Icon, {\n \"attrs\": {\n \"name\": this.errorIcon,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('error-icon')\n })]);\n }\n },\n genImage: function genImage() {\n var h = this.$createElement;\n var imgData = {\n class: bem('img'),\n attrs: {\n alt: this.alt\n },\n style: {\n objectFit: this.fit\n }\n };\n\n if (this.error) {\n return;\n }\n\n if (this.lazyLoad) {\n return h(\"img\", _mergeJSXProps([{\n \"ref\": \"image\",\n \"directives\": [{\n name: \"lazy\",\n value: this.src\n }]\n }, imgData]));\n }\n\n return h(\"img\", _mergeJSXProps2([{\n \"attrs\": {\n \"src\": this.src\n },\n \"on\": {\n \"load\": this.onLoad,\n \"error\": this.onError\n }\n }, imgData]));\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n round: this.round\n }),\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genImage(), this.genPlaceholder(), this.slots()]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Tag from '../tag';\nimport Image from '../image'; // Types\n\nvar _createNamespace = createNamespace('card'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Card(h, props, slots, ctx) {\n var _slots$priceTop;\n\n var thumb = props.thumb;\n var showNum = slots.num || isDef(props.num);\n var showPrice = slots.price || isDef(props.price);\n var showOriginPrice = slots['origin-price'] || isDef(props.originPrice);\n var showBottom = showNum || showPrice || showOriginPrice || slots.bottom;\n\n function onThumbClick(event) {\n emit(ctx, 'click-thumb', event);\n }\n\n function ThumbTag() {\n if (slots.tag || props.tag) {\n return h(\"div\", {\n \"class\": bem('tag')\n }, [slots.tag ? slots.tag() : h(Tag, {\n \"attrs\": {\n \"mark\": true,\n \"type\": \"danger\"\n }\n }, [props.tag])]);\n }\n }\n\n function Thumb() {\n if (slots.thumb || thumb) {\n return h(\"a\", {\n \"attrs\": {\n \"href\": props.thumbLink\n },\n \"class\": bem('thumb'),\n \"on\": {\n \"click\": onThumbClick\n }\n }, [slots.thumb ? slots.thumb() : h(Image, {\n \"attrs\": {\n \"src\": thumb,\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"fit\": \"cover\",\n \"lazy-load\": props.lazyLoad\n }\n }), ThumbTag()]);\n }\n }\n\n function Title() {\n if (slots.title) {\n return slots.title();\n }\n\n if (props.title) {\n return h(\"div\", {\n \"class\": [bem('title'), 'van-multi-ellipsis--l2']\n }, [props.title]);\n }\n }\n\n function Desc() {\n if (slots.desc) {\n return slots.desc();\n }\n\n if (props.desc) {\n return h(\"div\", {\n \"class\": [bem('desc'), 'van-ellipsis']\n }, [props.desc]);\n }\n }\n\n function PriceContent() {\n var priceArr = props.price.toString().split('.');\n return h(\"div\", [h(\"span\", {\n \"class\": bem('price-currency')\n }, [props.currency]), h(\"span\", {\n \"class\": bem('price-integer')\n }, [priceArr[0]]), \".\", h(\"span\", {\n \"class\": bem('price-decimal')\n }, [priceArr[1]])]);\n }\n\n function Price() {\n if (showPrice) {\n return h(\"div\", {\n \"class\": bem('price')\n }, [slots.price ? slots.price() : PriceContent()]);\n }\n }\n\n function OriginPrice() {\n if (showOriginPrice) {\n var slot = slots['origin-price'];\n return h(\"div\", {\n \"class\": bem('origin-price')\n }, [slot ? slot() : props.currency + \" \" + props.originPrice]);\n }\n }\n\n function Num() {\n if (showNum) {\n return h(\"div\", {\n \"class\": bem('num')\n }, [slots.num ? slots.num() : \"x\" + props.num]);\n }\n }\n\n function Footer() {\n if (slots.footer) {\n return h(\"div\", {\n \"class\": bem('footer')\n }, [slots.footer()]);\n }\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx, true)]), [h(\"div\", {\n \"class\": bem('header')\n }, [Thumb(), h(\"div\", {\n \"class\": bem('content', {\n centered: props.centered\n })\n }, [h(\"div\", [Title(), Desc(), slots.tags == null ? void 0 : slots.tags()]), showBottom && h(\"div\", {\n \"class\": \"van-card__bottom\"\n }, [(_slots$priceTop = slots['price-top']) == null ? void 0 : _slots$priceTop.call(slots), Price(), OriginPrice(), Num(), slots.bottom == null ? void 0 : slots.bottom()])])]), Footer()]);\n}\n\nCard.props = {\n tag: String,\n desc: String,\n thumb: String,\n title: String,\n centered: Boolean,\n lazyLoad: Boolean,\n thumbLink: String,\n num: [Number, String],\n price: [Number, String],\n originPrice: [Number, String],\n currency: {\n type: String,\n default: '¥'\n }\n};\nexport default createComponent(Card);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\nimport { routeProps } from '../utils/router';\n\nvar _createNamespace = createNamespace('tab'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanTabs')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n name: [Number, String],\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n title: String,\n titleStyle: null,\n titleClass: null,\n disabled: Boolean\n }),\n data: function data() {\n return {\n inited: false\n };\n },\n computed: {\n computedName: function computedName() {\n var _this$name;\n\n return (_this$name = this.name) != null ? _this$name : this.index;\n },\n isActive: function isActive() {\n var active = this.computedName === this.parent.currentName;\n\n if (active) {\n this.inited = true;\n }\n\n return active;\n }\n },\n watch: {\n title: function title() {\n this.parent.setLine();\n this.parent.scrollIntoView();\n },\n inited: function inited(val) {\n var _this = this;\n\n if (this.parent.lazyRender && val) {\n this.$nextTick(function () {\n _this.parent.$emit('rendered', _this.computedName, _this.title);\n });\n }\n }\n },\n render: function render(h) {\n var slots = this.slots,\n parent = this.parent,\n isActive = this.isActive;\n var slotContent = slots();\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] Tab: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n if (!slotContent && !parent.animated) {\n return;\n }\n\n var show = parent.scrollspy || isActive;\n var shouldRender = this.inited || parent.scrollspy || !parent.lazyRender;\n var Content = shouldRender ? slotContent : h();\n\n if (parent.animated) {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"tabpanel\",\n \"aria-hidden\": !isActive\n },\n \"class\": bem('pane-wrapper', {\n inactive: !isActive\n })\n }, [h(\"div\", {\n \"class\": bem('pane')\n }, [Content])]);\n }\n\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: show\n }],\n \"attrs\": {\n \"role\": \"tabpanel\"\n },\n \"class\": bem('pane')\n }, [Content]);\n }\n});","import { raf } from '../utils/dom/raf';\nimport { getScrollTop, setScrollTop } from '../utils/dom/scroll';\nexport function scrollLeftTo(scroller, to, duration) {\n var count = 0;\n var from = scroller.scrollLeft;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n\n function animate() {\n scroller.scrollLeft += (to - from) / frames;\n\n if (++count < frames) {\n raf(animate);\n }\n }\n\n animate();\n}\nexport function scrollTopTo(scroller, to, duration, callback) {\n var current = getScrollTop(scroller);\n var isDown = current < to;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n var step = (to - current) / frames;\n\n function animate() {\n current += step;\n\n if (isDown && current > to || !isDown && current < to) {\n current = to;\n }\n\n setScrollTop(scroller, current);\n\n if (isDown && current < to || !isDown && current > to) {\n raf(animate);\n } else if (callback) {\n raf(callback);\n }\n }\n\n animate();\n}","export function isHidden(el) {\n var style = window.getComputedStyle(el);\n var hidden = style.display === 'none'; // offsetParent returns null in the following situations:\n // 1. The element or its parent element has the display property set to none.\n // 2. The element has the position property set to fixed\n\n var parentHidden = el.offsetParent === null && style.position !== 'fixed';\n return hidden || parentHidden;\n}","import { isPromise, noop } from '.';\nexport function callInterceptor(options) {\n var interceptor = options.interceptor,\n args = options.args,\n done = options.done;\n\n if (interceptor) {\n var returnVal = interceptor.apply(void 0, args);\n\n if (isPromise(returnVal)) {\n returnVal.then(function (value) {\n if (value) {\n done();\n }\n }).catch(noop);\n } else if (returnVal) {\n done();\n }\n } else {\n done();\n }\n}","import { createNamespace, isDef } from '../utils';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('tab'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n dot: Boolean,\n type: String,\n info: [Number, String],\n color: String,\n title: String,\n isActive: Boolean,\n disabled: Boolean,\n scrollable: Boolean,\n activeColor: String,\n inactiveColor: String\n },\n computed: {\n style: function style() {\n var style = {};\n var color = this.color,\n isActive = this.isActive;\n var isCard = this.type === 'card'; // card theme color\n\n if (color && isCard) {\n style.borderColor = color;\n\n if (!this.disabled) {\n if (isActive) {\n style.backgroundColor = color;\n } else {\n style.color = color;\n }\n }\n }\n\n var titleColor = isActive ? this.activeColor : this.inactiveColor;\n\n if (titleColor) {\n style.color = titleColor;\n }\n\n return style;\n }\n },\n methods: {\n onClick: function onClick() {\n this.$emit('click');\n },\n genText: function genText() {\n var h = this.$createElement;\n var Text = h(\"span\", {\n \"class\": bem('text', {\n ellipsis: !this.scrollable\n })\n }, [this.slots() || this.title]);\n\n if (this.dot || isDef(this.info) && this.info !== '') {\n return h(\"span\", {\n \"class\": bem('text-wrapper')\n }, [Text, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": this.info\n }\n })]);\n }\n\n return Text;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"tab\",\n \"aria-selected\": this.isActive\n },\n \"class\": [bem({\n active: this.isActive,\n disabled: this.disabled\n })],\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genText()]);\n }\n});","import { isHidden } from '../utils/dom/style';\nimport { unitToPx } from '../utils/format/unit';\nimport { createNamespace, isDef, isServer } from '../utils';\nimport { getScrollTop, getElementTop, getScroller } from '../utils/dom/scroll';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('sticky'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind, isBind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n if (this.observer) {\n var method = isBind ? 'observe' : 'unobserve';\n this.observer[method](this.$el);\n }\n\n bind(this.scroller, 'scroll', this.onScroll, true);\n this.onScroll();\n })],\n props: {\n zIndex: [Number, String],\n container: null,\n offsetTop: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n fixed: false,\n height: 0,\n transform: 0\n };\n },\n computed: {\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n style: function style() {\n if (!this.fixed) {\n return;\n }\n\n var style = {};\n\n if (isDef(this.zIndex)) {\n style.zIndex = this.zIndex;\n }\n\n if (this.offsetTopPx && this.fixed) {\n style.top = this.offsetTopPx + \"px\";\n }\n\n if (this.transform) {\n style.transform = \"translate3d(0, \" + this.transform + \"px, 0)\";\n }\n\n return style;\n }\n },\n watch: {\n fixed: function fixed(isFixed) {\n this.$emit('change', isFixed);\n }\n },\n created: function created() {\n var _this = this;\n\n // compatibility: https://caniuse.com/#feat=intersectionobserver\n if (!isServer && window.IntersectionObserver) {\n this.observer = new IntersectionObserver(function (entries) {\n // trigger scroll when visibility changed\n if (entries[0].intersectionRatio > 0) {\n _this.onScroll();\n }\n }, {\n root: document.body\n });\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this2 = this;\n\n if (isHidden(this.$el)) {\n return;\n }\n\n this.height = this.$el.offsetHeight;\n var container = this.container,\n offsetTopPx = this.offsetTopPx;\n var scrollTop = getScrollTop(window);\n var topToPageTop = getElementTop(this.$el);\n\n var emitScrollEvent = function emitScrollEvent() {\n _this2.$emit('scroll', {\n scrollTop: scrollTop,\n isFixed: _this2.fixed\n });\n }; // The sticky component should be kept inside the container element\n\n\n if (container) {\n var bottomToPageTop = topToPageTop + container.offsetHeight;\n\n if (scrollTop + offsetTopPx + this.height > bottomToPageTop) {\n var distanceToBottom = this.height + scrollTop - bottomToPageTop;\n\n if (distanceToBottom < this.height) {\n this.fixed = true;\n this.transform = -(distanceToBottom + offsetTopPx);\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n return;\n }\n }\n\n if (scrollTop + offsetTopPx > topToPageTop) {\n this.fixed = true;\n this.transform = 0;\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n }\n },\n render: function render() {\n var h = arguments[0];\n var fixed = this.fixed;\n var style = {\n height: fixed ? this.height + \"px\" : null\n };\n return h(\"div\", {\n \"style\": style\n }, [h(\"div\", {\n \"class\": bem({\n fixed: fixed\n }),\n \"style\": this.style\n }, [this.slots()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar MIN_SWIPE_DISTANCE = 50;\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n count: Number,\n duration: [Number, String],\n animated: Boolean,\n swipeable: Boolean,\n currentIndex: Number\n },\n computed: {\n style: function style() {\n if (this.animated) {\n return {\n transform: \"translate3d(\" + -1 * this.currentIndex * 100 + \"%, 0, 0)\",\n transitionDuration: this.duration + \"s\"\n };\n }\n },\n listeners: function listeners() {\n if (this.swipeable) {\n return {\n touchstart: this.touchStart,\n touchmove: this.touchMove,\n touchend: this.onTouchEnd,\n touchcancel: this.onTouchEnd\n };\n }\n }\n },\n methods: {\n // watch swipe touch end\n onTouchEnd: function onTouchEnd() {\n var direction = this.direction,\n deltaX = this.deltaX,\n currentIndex = this.currentIndex;\n /* istanbul ignore else */\n\n if (direction === 'horizontal' && this.offsetX >= MIN_SWIPE_DISTANCE) {\n /* istanbul ignore else */\n if (deltaX > 0 && currentIndex !== 0) {\n this.$emit('change', currentIndex - 1);\n } else if (deltaX < 0 && currentIndex !== this.count - 1) {\n this.$emit('change', currentIndex + 1);\n }\n }\n },\n genChildren: function genChildren() {\n var h = this.$createElement;\n\n if (this.animated) {\n return h(\"div\", {\n \"class\": bem('track'),\n \"style\": this.style\n }, [this.slots()]);\n }\n\n return this.slots();\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('content', {\n animated: this.animated\n }),\n \"on\": _extends({}, this.listeners)\n }, [this.genChildren()]);\n }\n});","// Utils\nimport { createNamespace, isDef, addUnit } from '../utils';\nimport { scrollLeftTo, scrollTopTo } from './utils';\nimport { route } from '../utils/router';\nimport { isHidden } from '../utils/dom/style';\nimport { on, off } from '../utils/dom/event';\nimport { unitToPx } from '../utils/format/unit';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\nimport { callInterceptor } from '../utils/interceptor';\nimport { getScroller, getVisibleTop, getElementTop, getVisibleHeight, setRootScrollTop } from '../utils/dom/scroll'; // Mixins\n\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Title from './Title';\nimport Sticky from '../sticky';\nimport Content from './Content';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanTabs'), BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(window, 'resize', this.resize, true);\n\n if (this.scrollspy) {\n bind(this.scroller, 'scroll', this.onScroll, true);\n }\n })],\n inject: {\n vanPopup: {\n default: null\n }\n },\n model: {\n prop: 'active'\n },\n props: {\n color: String,\n border: Boolean,\n sticky: Boolean,\n animated: Boolean,\n swipeable: Boolean,\n scrollspy: Boolean,\n background: String,\n lineWidth: [Number, String],\n lineHeight: [Number, String],\n beforeChange: Function,\n titleActiveColor: String,\n titleInactiveColor: String,\n type: {\n type: String,\n default: 'line'\n },\n active: {\n type: [Number, String],\n default: 0\n },\n ellipsis: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 0.3\n },\n offsetTop: {\n type: [Number, String],\n default: 0\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n swipeThreshold: {\n type: [Number, String],\n default: 5\n }\n },\n data: function data() {\n return {\n position: '',\n currentIndex: null,\n lineStyle: {\n backgroundColor: this.color\n }\n };\n },\n computed: {\n // whether the nav is scrollable\n scrollable: function scrollable() {\n return this.children.length > this.swipeThreshold || !this.ellipsis;\n },\n navStyle: function navStyle() {\n return {\n borderColor: this.color,\n background: this.background\n };\n },\n currentName: function currentName() {\n var activeTab = this.children[this.currentIndex];\n\n if (activeTab) {\n return activeTab.computedName;\n }\n },\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n scrollOffset: function scrollOffset() {\n if (this.sticky) {\n return this.offsetTopPx + this.tabHeight;\n }\n\n return 0;\n }\n },\n watch: {\n color: 'setLine',\n active: function active(name) {\n if (name !== this.currentName) {\n this.setCurrentIndexByName(name);\n }\n },\n children: function children() {\n var _this = this;\n\n this.setCurrentIndexByName(this.active);\n this.setLine();\n this.$nextTick(function () {\n _this.scrollIntoView(true);\n });\n },\n currentIndex: function currentIndex() {\n this.scrollIntoView();\n this.setLine(); // scroll to correct position\n\n if (this.stickyFixed && !this.scrollspy) {\n setRootScrollTop(Math.ceil(getElementTop(this.$el) - this.offsetTopPx));\n }\n },\n scrollspy: function scrollspy(val) {\n if (val) {\n on(this.scroller, 'scroll', this.onScroll, true);\n } else {\n off(this.scroller, 'scroll', this.onScroll);\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.init(); // https://github.com/vant-ui/vant/issues/7959\n\n if (this.vanPopup) {\n this.vanPopup.onReopen(function () {\n _this2.setLine();\n });\n }\n },\n activated: function activated() {\n this.init();\n this.setLine();\n },\n methods: {\n // @exposed-api\n resize: function resize() {\n this.setLine();\n },\n init: function init() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.inited = true;\n _this3.tabHeight = getVisibleHeight(_this3.$refs.wrap);\n\n _this3.scrollIntoView(true);\n });\n },\n // update nav bar style\n setLine: function setLine() {\n var _this4 = this;\n\n var shouldAnimate = this.inited;\n this.$nextTick(function () {\n var titles = _this4.$refs.titles;\n\n if (!titles || !titles[_this4.currentIndex] || _this4.type !== 'line' || isHidden(_this4.$el)) {\n return;\n }\n\n var title = titles[_this4.currentIndex].$el;\n var lineWidth = _this4.lineWidth,\n lineHeight = _this4.lineHeight;\n var left = title.offsetLeft + title.offsetWidth / 2;\n var lineStyle = {\n width: addUnit(lineWidth),\n backgroundColor: _this4.color,\n transform: \"translateX(\" + left + \"px) translateX(-50%)\"\n };\n\n if (shouldAnimate) {\n lineStyle.transitionDuration = _this4.duration + \"s\";\n }\n\n if (isDef(lineHeight)) {\n var height = addUnit(lineHeight);\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n\n _this4.lineStyle = lineStyle;\n });\n },\n // correct the index of active tab\n setCurrentIndexByName: function setCurrentIndexByName(name) {\n var matched = this.children.filter(function (tab) {\n return tab.computedName === name;\n });\n var defaultIndex = (this.children[0] || {}).index || 0;\n this.setCurrentIndex(matched.length ? matched[0].index : defaultIndex);\n },\n setCurrentIndex: function setCurrentIndex(currentIndex) {\n var newIndex = this.findAvailableTab(currentIndex);\n\n if (!isDef(newIndex)) {\n return;\n }\n\n var newTab = this.children[newIndex];\n var newName = newTab.computedName;\n var shouldEmitChange = this.currentIndex !== null;\n this.currentIndex = newIndex;\n\n if (newName !== this.active) {\n this.$emit('input', newName);\n\n if (shouldEmitChange) {\n this.$emit('change', newName, newTab.title);\n }\n }\n },\n findAvailableTab: function findAvailableTab(index) {\n var diff = index < this.currentIndex ? -1 : 1;\n\n while (index >= 0 && index < this.children.length) {\n if (!this.children[index].disabled) {\n return index;\n }\n\n index += diff;\n }\n },\n // emit event when clicked\n onClick: function onClick(item, index) {\n var _this5 = this;\n\n var _this$children$index = this.children[index],\n title = _this$children$index.title,\n disabled = _this$children$index.disabled,\n computedName = _this$children$index.computedName;\n\n if (disabled) {\n this.$emit('disabled', computedName, title);\n } else {\n callInterceptor({\n interceptor: this.beforeChange,\n args: [computedName],\n done: function done() {\n _this5.setCurrentIndex(index);\n\n _this5.scrollToCurrentContent();\n }\n });\n this.$emit('click', computedName, title);\n route(item.$router, item);\n }\n },\n // scroll active tab into view\n scrollIntoView: function scrollIntoView(immediate) {\n var titles = this.$refs.titles;\n\n if (!this.scrollable || !titles || !titles[this.currentIndex]) {\n return;\n }\n\n var nav = this.$refs.nav;\n var title = titles[this.currentIndex].$el;\n var to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;\n scrollLeftTo(nav, to, immediate ? 0 : +this.duration);\n },\n onSticktScroll: function onSticktScroll(params) {\n this.stickyFixed = params.isFixed;\n this.$emit('scroll', params);\n },\n // @exposed-api\n scrollTo: function scrollTo(name) {\n var _this6 = this;\n\n this.$nextTick(function () {\n _this6.setCurrentIndexByName(name);\n\n _this6.scrollToCurrentContent(true);\n });\n },\n scrollToCurrentContent: function scrollToCurrentContent(immediate) {\n var _this7 = this;\n\n if (immediate === void 0) {\n immediate = false;\n }\n\n if (this.scrollspy) {\n var target = this.children[this.currentIndex];\n var el = target == null ? void 0 : target.$el;\n\n if (el) {\n var to = getElementTop(el, this.scroller) - this.scrollOffset;\n this.lockScroll = true;\n scrollTopTo(this.scroller, to, immediate ? 0 : +this.duration, function () {\n _this7.lockScroll = false;\n });\n }\n }\n },\n onScroll: function onScroll() {\n if (this.scrollspy && !this.lockScroll) {\n var index = this.getCurrentIndexOnScroll();\n this.setCurrentIndex(index);\n }\n },\n getCurrentIndexOnScroll: function getCurrentIndexOnScroll() {\n var children = this.children;\n\n for (var index = 0; index < children.length; index++) {\n var top = getVisibleTop(children[index].$el);\n\n if (top > this.scrollOffset) {\n return index === 0 ? 0 : index - 1;\n }\n }\n\n return children.length - 1;\n }\n },\n render: function render() {\n var _this8 = this,\n _ref;\n\n var h = arguments[0];\n var type = this.type,\n animated = this.animated,\n scrollable = this.scrollable;\n var Nav = this.children.map(function (item, index) {\n var _item$badge;\n\n return h(Title, {\n \"ref\": \"titles\",\n \"refInFor\": true,\n \"attrs\": {\n \"type\": type,\n \"dot\": item.dot,\n \"info\": (_item$badge = item.badge) != null ? _item$badge : item.info,\n \"title\": item.title,\n \"color\": _this8.color,\n \"isActive\": index === _this8.currentIndex,\n \"disabled\": item.disabled,\n \"scrollable\": scrollable,\n \"activeColor\": _this8.titleActiveColor,\n \"inactiveColor\": _this8.titleInactiveColor\n },\n \"style\": item.titleStyle,\n \"class\": item.titleClass,\n \"scopedSlots\": {\n default: function _default() {\n return item.slots('title');\n }\n },\n \"on\": {\n \"click\": function click() {\n _this8.onClick(item, index);\n }\n }\n });\n });\n var Wrap = h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": [bem('wrap', {\n scrollable: scrollable\n }), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = type === 'line' && this.border, _ref)]\n }, [h(\"div\", {\n \"ref\": \"nav\",\n \"attrs\": {\n \"role\": \"tablist\"\n },\n \"class\": bem('nav', [type, {\n complete: this.scrollable\n }]),\n \"style\": this.navStyle\n }, [this.slots('nav-left'), Nav, type === 'line' && h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n }), this.slots('nav-right')])]);\n return h(\"div\", {\n \"class\": bem([type])\n }, [this.sticky ? h(Sticky, {\n \"attrs\": {\n \"container\": this.$el,\n \"offsetTop\": this.offsetTop\n },\n \"on\": {\n \"scroll\": this.onSticktScroll\n }\n }, [Wrap]) : Wrap, h(Content, {\n \"attrs\": {\n \"count\": this.children.length,\n \"animated\": animated,\n \"duration\": this.duration,\n \"swipeable\": this.swipeable,\n \"currentIndex\": this.currentIndex\n },\n \"on\": {\n \"change\": this.setCurrentIndex\n }\n }, [this.slots()])]);\n }\n});","import { createNamespace } from '../utils';\nimport Tab from '../tab';\nimport Tabs from '../tabs';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('cascader'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: {\n title: String,\n value: [Number, String],\n fieldNames: Object,\n placeholder: String,\n activeColor: String,\n options: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n closeable: {\n type: Boolean,\n default: true\n },\n showHeader: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n tabs: [],\n activeTab: 0\n };\n },\n computed: {\n textKey: function textKey() {\n var _this$fieldNames;\n\n return ((_this$fieldNames = this.fieldNames) == null ? void 0 : _this$fieldNames.text) || 'text';\n },\n valueKey: function valueKey() {\n var _this$fieldNames2;\n\n return ((_this$fieldNames2 = this.fieldNames) == null ? void 0 : _this$fieldNames2.value) || 'value';\n },\n childrenKey: function childrenKey() {\n var _this$fieldNames3;\n\n return ((_this$fieldNames3 = this.fieldNames) == null ? void 0 : _this$fieldNames3.children) || 'children';\n }\n },\n watch: {\n options: {\n deep: true,\n handler: 'updateTabs'\n },\n value: function value(_value) {\n var _this = this;\n\n if (_value || _value === 0) {\n var values = this.tabs.map(function (tab) {\n var _tab$selectedOption;\n\n return (_tab$selectedOption = tab.selectedOption) == null ? void 0 : _tab$selectedOption[_this.valueKey];\n });\n\n if (values.indexOf(_value) !== -1) {\n return;\n }\n }\n\n this.updateTabs();\n }\n },\n created: function created() {\n this.updateTabs();\n },\n methods: {\n getSelectedOptionsByValue: function getSelectedOptionsByValue(options, value) {\n for (var i = 0; i < options.length; i++) {\n var option = options[i];\n\n if (option[this.valueKey] === value) {\n return [option];\n }\n\n if (option[this.childrenKey]) {\n var selectedOptions = this.getSelectedOptionsByValue(option[this.childrenKey], value);\n\n if (selectedOptions) {\n return [option].concat(selectedOptions);\n }\n }\n }\n },\n updateTabs: function updateTabs() {\n var _this2 = this;\n\n if (this.value || this.value === 0) {\n var selectedOptions = this.getSelectedOptionsByValue(this.options, this.value);\n\n if (selectedOptions) {\n var optionsCursor = this.options;\n this.tabs = selectedOptions.map(function (option) {\n var tab = {\n options: optionsCursor,\n selectedOption: option\n };\n var next = optionsCursor.filter(function (item) {\n return item[_this2.valueKey] === option[_this2.valueKey];\n });\n\n if (next.length) {\n optionsCursor = next[0][_this2.childrenKey];\n }\n\n return tab;\n });\n\n if (optionsCursor) {\n this.tabs.push({\n options: optionsCursor,\n selectedOption: null\n });\n }\n\n this.$nextTick(function () {\n _this2.activeTab = _this2.tabs.length - 1;\n });\n return;\n }\n }\n\n this.tabs = [{\n options: this.options,\n selectedOption: null\n }];\n },\n onSelect: function onSelect(option, tabIndex) {\n var _this3 = this;\n\n this.tabs[tabIndex].selectedOption = option;\n\n if (this.tabs.length > tabIndex + 1) {\n this.tabs = this.tabs.slice(0, tabIndex + 1);\n }\n\n if (option[this.childrenKey]) {\n var nextTab = {\n options: option[this.childrenKey],\n selectedOption: null\n };\n\n if (this.tabs[tabIndex + 1]) {\n this.$set(this.tabs, tabIndex + 1, nextTab);\n } else {\n this.tabs.push(nextTab);\n }\n\n this.$nextTick(function () {\n _this3.activeTab++;\n });\n }\n\n var selectedOptions = this.tabs.map(function (tab) {\n return tab.selectedOption;\n }).filter(function (item) {\n return !!item;\n });\n var eventParams = {\n value: option[this.valueKey],\n tabIndex: tabIndex,\n selectedOptions: selectedOptions\n };\n this.$emit('input', option[this.valueKey]);\n this.$emit('change', eventParams);\n\n if (!option[this.childrenKey]) {\n this.$emit('finish', eventParams);\n }\n },\n onClose: function onClose() {\n this.$emit('close');\n },\n renderHeader: function renderHeader() {\n var h = this.$createElement;\n\n if (this.showHeader) {\n return h(\"div\", {\n \"class\": bem('header')\n }, [h(\"h2\", {\n \"class\": bem('title')\n }, [this.slots('title') || this.title]), this.closeable ? h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('close-icon'),\n \"on\": {\n \"click\": this.onClose\n }\n }) : null]);\n }\n },\n renderOptions: function renderOptions(options, selectedOption, tabIndex) {\n var _this4 = this;\n\n var h = this.$createElement;\n\n var renderOption = function renderOption(option) {\n var isSelected = selectedOption && option[_this4.valueKey] === selectedOption[_this4.valueKey];\n var Text = _this4.slots('option', {\n option: option,\n selected: isSelected\n }) || h(\"span\", [option[_this4.textKey]]);\n return h(\"li\", {\n \"class\": bem('option', {\n selected: isSelected\n }),\n \"style\": {\n color: isSelected ? _this4.activeColor : null\n },\n \"on\": {\n \"click\": function click() {\n _this4.onSelect(option, tabIndex);\n }\n }\n }, [Text, isSelected ? h(Icon, {\n \"attrs\": {\n \"name\": \"success\"\n },\n \"class\": bem('selected-icon')\n }) : null]);\n };\n\n return h(\"ul\", {\n \"class\": bem('options')\n }, [options.map(renderOption)]);\n },\n renderTab: function renderTab(item, tabIndex) {\n var h = this.$createElement;\n var options = item.options,\n selectedOption = item.selectedOption;\n var title = selectedOption ? selectedOption[this.textKey] : this.placeholder || t('select');\n return h(Tab, {\n \"attrs\": {\n \"title\": title,\n \"titleClass\": bem('tab', {\n unselected: !selectedOption\n })\n }\n }, [this.renderOptions(options, selectedOption, tabIndex)]);\n },\n renderTabs: function renderTabs() {\n var _this5 = this;\n\n var h = this.$createElement;\n return h(Tabs, {\n \"attrs\": {\n \"animated\": true,\n \"swipeable\": true,\n \"swipeThreshold\": 0,\n \"color\": this.activeColor\n },\n \"class\": bem('tabs'),\n \"model\": {\n value: _this5.activeTab,\n callback: function callback($$v) {\n _this5.activeTab = $$v;\n }\n }\n }, [this.tabs.map(this.renderTab)]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.renderHeader(), this.renderTabs()]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant'; // Types\n\nvar _createNamespace = createNamespace('cell-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction CellGroup(h, props, slots, ctx) {\n var _ref;\n\n var Group = h(\"div\", _mergeJSXProps([{\n \"class\": [bem({\n inset: props.inset\n }), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = props.border, _ref)]\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()]);\n\n if (props.title || slots.title) {\n return h(\"div\", {\n \"key\": ctx.data.key\n }, [h(\"div\", {\n \"class\": bem('title', {\n inset: props.inset\n })\n }, [slots.title ? slots.title() : props.title]), Group]);\n }\n\n return Group;\n}\n\nCellGroup.props = {\n title: String,\n inset: Boolean,\n border: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(CellGroup);","import { createNamespace } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _createNamespace = createNamespace('checkbox'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [CheckboxMixin({\n bem: bem,\n role: 'checkbox',\n parent: 'vanCheckbox'\n })],\n computed: {\n checked: {\n get: function get() {\n if (this.parent) {\n return this.parent.value.indexOf(this.name) !== -1;\n }\n\n return this.value;\n },\n set: function set(val) {\n if (this.parent) {\n this.setParentValue(val);\n } else {\n this.$emit('input', val);\n }\n }\n }\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n methods: {\n // @exposed-api\n toggle: function toggle(checked) {\n var _this = this;\n\n if (checked === void 0) {\n checked = !this.checked;\n }\n\n // When toggle method is called multiple times at the same time,\n // only the last call is valid.\n // This is a hack for usage inside Cell.\n clearTimeout(this.toggleTask);\n this.toggleTask = setTimeout(function () {\n _this.checked = checked;\n });\n },\n setParentValue: function setParentValue(val) {\n var parent = this.parent;\n var value = parent.value.slice();\n\n if (val) {\n if (parent.max && value.length >= parent.max) {\n return;\n }\n /* istanbul ignore else */\n\n\n if (value.indexOf(this.name) === -1) {\n value.push(this.name);\n parent.$emit('input', value);\n }\n } else {\n var index = value.indexOf(this.name);\n /* istanbul ignore else */\n\n if (index !== -1) {\n value.splice(index, 1);\n parent.$emit('input', value);\n }\n }\n }\n }\n});","import { createNamespace } from '../utils';\nimport { FieldMixin } from '../mixins/field';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('checkbox-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanCheckbox'), FieldMixin],\n props: {\n max: [Number, String],\n disabled: Boolean,\n direction: String,\n iconSize: [Number, String],\n checkedColor: String,\n value: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n methods: {\n // @exposed-api\n toggleAll: function toggleAll(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === 'boolean') {\n options = {\n checked: options\n };\n }\n\n var _options = options,\n checked = _options.checked,\n skipDisabled = _options.skipDisabled;\n var children = this.children.filter(function (item) {\n if (item.disabled && skipDisabled) {\n return item.checked;\n }\n\n return checked != null ? checked : !item.checked;\n });\n var names = children.map(function (item) {\n return item.name;\n });\n this.$emit('input', names);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction])\n }, [this.slots()]);\n }\n});","import { createNamespace, isObject, addUnit } from '../utils';\nimport { raf, cancelRaf } from '../utils/dom/raf';\n\nvar _createNamespace = createNamespace('circle'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar PERIMETER = 3140;\nvar uid = 0;\n\nfunction format(rate) {\n return Math.min(Math.max(rate, 0), 100);\n}\n\nfunction getPath(clockwise, viewBoxSize) {\n var sweepFlag = clockwise ? 1 : 0;\n return \"M \" + viewBoxSize / 2 + \" \" + viewBoxSize / 2 + \" m 0, -500 a 500, 500 0 1, \" + sweepFlag + \" 0, 1000 a 500, 500 0 1, \" + sweepFlag + \" 0, -1000\";\n}\n\nexport default createComponent({\n props: {\n text: String,\n size: [Number, String],\n color: [String, Object],\n layerColor: String,\n strokeLinecap: String,\n value: {\n type: Number,\n default: 0\n },\n speed: {\n type: [Number, String],\n default: 0\n },\n fill: {\n type: String,\n default: 'none'\n },\n rate: {\n type: [Number, String],\n default: 100\n },\n strokeWidth: {\n type: [Number, String],\n default: 40\n },\n clockwise: {\n type: Boolean,\n default: true\n }\n },\n beforeCreate: function beforeCreate() {\n this.uid = \"van-circle-gradient-\" + uid++;\n },\n computed: {\n style: function style() {\n var size = addUnit(this.size);\n return {\n width: size,\n height: size\n };\n },\n path: function path() {\n return getPath(this.clockwise, this.viewBoxSize);\n },\n viewBoxSize: function viewBoxSize() {\n return +this.strokeWidth + 1000;\n },\n layerStyle: function layerStyle() {\n return {\n fill: \"\" + this.fill,\n stroke: \"\" + this.layerColor,\n strokeWidth: this.strokeWidth + \"px\"\n };\n },\n hoverStyle: function hoverStyle() {\n var offset = PERIMETER * this.value / 100;\n return {\n stroke: \"\" + (this.gradient ? \"url(#\" + this.uid + \")\" : this.color),\n strokeWidth: +this.strokeWidth + 1 + \"px\",\n strokeLinecap: this.strokeLinecap,\n strokeDasharray: offset + \"px \" + PERIMETER + \"px\"\n };\n },\n gradient: function gradient() {\n return isObject(this.color);\n },\n LinearGradient: function LinearGradient() {\n var _this = this;\n\n var h = this.$createElement;\n\n if (!this.gradient) {\n return;\n }\n\n var Stops = Object.keys(this.color).sort(function (a, b) {\n return parseFloat(a) - parseFloat(b);\n }).map(function (key, index) {\n return h(\"stop\", {\n \"key\": index,\n \"attrs\": {\n \"offset\": key,\n \"stop-color\": _this.color[key]\n }\n });\n });\n return h(\"defs\", [h(\"linearGradient\", {\n \"attrs\": {\n \"id\": this.uid,\n \"x1\": \"100%\",\n \"y1\": \"0%\",\n \"x2\": \"0%\",\n \"y2\": \"0%\"\n }\n }, [Stops])]);\n }\n },\n watch: {\n rate: {\n handler: function handler(rate) {\n this.startTime = Date.now();\n this.startRate = this.value;\n this.endRate = format(rate);\n this.increase = this.endRate > this.startRate;\n this.duration = Math.abs((this.startRate - this.endRate) * 1000 / this.speed);\n\n if (this.speed) {\n cancelRaf(this.rafId);\n this.rafId = raf(this.animate);\n } else {\n this.$emit('input', this.endRate);\n }\n },\n immediate: true\n }\n },\n methods: {\n animate: function animate() {\n var now = Date.now();\n var progress = Math.min((now - this.startTime) / this.duration, 1);\n var rate = progress * (this.endRate - this.startRate) + this.startRate;\n this.$emit('input', format(parseFloat(rate.toFixed(1))));\n\n if (this.increase ? rate < this.endRate : rate > this.endRate) {\n this.rafId = raf(this.animate);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style\n }, [h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 \" + this.viewBoxSize + \" \" + this.viewBoxSize\n }\n }, [this.LinearGradient, h(\"path\", {\n \"class\": bem('layer'),\n \"style\": this.layerStyle,\n \"attrs\": {\n \"d\": this.path\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": this.path\n },\n \"class\": bem('hover'),\n \"style\": this.hoverStyle\n })]), this.slots() || this.text && h(\"div\", {\n \"class\": bem('text')\n }, [this.text])]);\n }\n});","import { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('col'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanRow')],\n props: {\n span: [Number, String],\n offset: [Number, String],\n tag: {\n type: String,\n default: 'div'\n }\n },\n computed: {\n style: function style() {\n var index = this.index;\n\n var _ref = this.parent || {},\n spaces = _ref.spaces;\n\n if (spaces && spaces[index]) {\n var _spaces$index = spaces[index],\n left = _spaces$index.left,\n right = _spaces$index.right;\n return {\n paddingLeft: left ? left + \"px\" : null,\n paddingRight: right ? right + \"px\" : null\n };\n }\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n var span = this.span,\n offset = this.offset;\n return h(this.tag, {\n \"style\": this.style,\n \"class\": bem((_bem = {}, _bem[span] = span, _bem[\"offset-\" + offset] = offset, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots()]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\n\nvar _createNamespace = createNamespace('collapse'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanCollapse')],\n props: {\n accordion: Boolean,\n value: [String, Number, Array],\n border: {\n type: Boolean,\n default: true\n }\n },\n methods: {\n switch: function _switch(name, expanded) {\n if (!this.accordion) {\n name = expanded ? this.value.concat(name) : this.value.filter(function (activeName) {\n return activeName !== name;\n });\n }\n\n this.$emit('change', name);\n this.$emit('input', name);\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n return h(\"div\", {\n \"class\": [bem(), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = this.border, _ref)]\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { raf, doubleRaf } from '../utils/dom/raf'; // Mixins\n\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\n\nvar _createNamespace = createNamespace('collapse-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar CELL_SLOTS = ['title', 'icon', 'right-icon'];\nexport default createComponent({\n mixins: [ChildrenMixin('vanCollapse')],\n props: _extends({}, cellProps, {\n name: [Number, String],\n disabled: Boolean,\n lazyRender: {\n type: Boolean,\n default: true\n },\n isLink: {\n type: Boolean,\n default: true\n }\n }),\n data: function data() {\n return {\n show: null,\n inited: null\n };\n },\n computed: {\n currentName: function currentName() {\n var _this$name;\n\n return (_this$name = this.name) != null ? _this$name : this.index;\n },\n expanded: function expanded() {\n var _this = this;\n\n if (!this.parent) {\n return null;\n }\n\n var _this$parent = this.parent,\n value = _this$parent.value,\n accordion = _this$parent.accordion;\n\n if (process.env.NODE_ENV === 'development' && !accordion && !Array.isArray(value)) {\n console.error('[Vant] Collapse: type of prop \"value\" should be Array');\n return;\n }\n\n return accordion ? value === this.currentName : value.some(function (name) {\n return name === _this.currentName;\n });\n }\n },\n created: function created() {\n this.show = this.expanded;\n this.inited = this.expanded;\n },\n watch: {\n expanded: function expanded(_expanded, prev) {\n var _this2 = this;\n\n if (prev === null) {\n return;\n }\n\n if (_expanded) {\n this.show = true;\n this.inited = true;\n } // Use raf: flick when opened in safari\n // Use nextTick: closing animation failed when set `user-select: none`\n\n\n var nextTick = _expanded ? this.$nextTick : raf;\n nextTick(function () {\n var _this2$$refs = _this2.$refs,\n content = _this2$$refs.content,\n wrapper = _this2$$refs.wrapper;\n\n if (!content || !wrapper) {\n return;\n }\n\n var offsetHeight = content.offsetHeight;\n\n if (offsetHeight) {\n var contentHeight = offsetHeight + \"px\";\n wrapper.style.height = _expanded ? 0 : contentHeight; // use double raf to ensure animation can start\n\n doubleRaf(function () {\n wrapper.style.height = _expanded ? contentHeight : 0;\n });\n } else {\n _this2.onTransitionEnd();\n }\n });\n }\n },\n methods: {\n onClick: function onClick() {\n if (!this.disabled) {\n this.toggle();\n }\n },\n // @exposed-api\n toggle: function toggle(expanded) {\n if (expanded === void 0) {\n expanded = !this.expanded;\n }\n\n var parent = this.parent,\n currentName = this.currentName;\n var close = parent.accordion && currentName === parent.value;\n var name = close ? '' : currentName;\n this.parent.switch(name, expanded);\n },\n onTransitionEnd: function onTransitionEnd() {\n if (!this.expanded) {\n this.show = false;\n } else {\n this.$refs.wrapper.style.height = '';\n }\n },\n genTitle: function genTitle() {\n var _this3 = this;\n\n var h = this.$createElement;\n var border = this.border,\n disabled = this.disabled,\n expanded = this.expanded;\n var titleSlots = CELL_SLOTS.reduce(function (slots, name) {\n if (_this3.slots(name)) {\n slots[name] = function () {\n return _this3.slots(name);\n };\n }\n\n return slots;\n }, {});\n\n if (this.slots('value')) {\n titleSlots.default = function () {\n return _this3.slots('value');\n };\n }\n\n return h(Cell, {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": disabled ? -1 : 0,\n \"aria-expanded\": String(expanded)\n },\n \"class\": bem('title', {\n disabled: disabled,\n expanded: expanded,\n borderless: !border\n }),\n \"on\": {\n \"click\": this.onClick\n },\n \"scopedSlots\": titleSlots,\n \"props\": _extends({}, this.$props)\n });\n },\n genContent: function genContent() {\n var h = this.$createElement;\n\n if (this.inited || !this.lazyRender) {\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"ref\": \"wrapper\",\n \"class\": bem('wrapper'),\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [h(\"div\", {\n \"ref\": \"content\",\n \"class\": bem('content')\n }, [this.slots()])]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": [bem({\n border: this.index && this.border\n })]\n }, [this.genTitle(), this.genContent()]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Cell from '../cell'; // Types\n\nvar _createNamespace = createNamespace('contact-card'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction ContactCard(h, props, slots, ctx) {\n var type = props.type,\n editable = props.editable;\n\n function onClick(event) {\n if (editable) {\n emit(ctx, 'click', event);\n }\n }\n\n function Content() {\n if (type === 'add') {\n return props.addText || t('addText');\n }\n\n return [h(\"div\", [t('name') + \"\\uFF1A\" + props.name]), h(\"div\", [t('tel') + \"\\uFF1A\" + props.tel])];\n }\n\n return h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"center\": true,\n \"border\": false,\n \"isLink\": editable,\n \"valueClass\": bem('value'),\n \"icon\": type === 'edit' ? 'contact' : 'add-square'\n },\n \"class\": bem([type]),\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [Content()]);\n}\n\nContactCard.props = {\n tel: String,\n name: String,\n addText: String,\n editable: {\n type: Boolean,\n default: true\n },\n type: {\n type: String,\n default: 'add'\n }\n};\nexport default createComponent(ContactCard);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { isMobile } from '../utils/validate/mobile'; // Components\n\nimport Cell from '../cell';\nimport Field from '../field';\nimport Button from '../button';\nimport Dialog from '../dialog';\nimport Switch from '../switch';\n\nvar _createNamespace = createNamespace('contact-edit'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar defaultContact = {\n tel: '',\n name: ''\n};\nexport default createComponent({\n props: {\n isEdit: Boolean,\n isSaving: Boolean,\n isDeleting: Boolean,\n showSetDefault: Boolean,\n setDefaultLabel: String,\n contactInfo: {\n type: Object,\n default: function _default() {\n return _extends({}, defaultContact);\n }\n },\n telValidator: {\n type: Function,\n default: isMobile\n }\n },\n data: function data() {\n return {\n data: _extends({}, defaultContact, this.contactInfo),\n errorInfo: {\n name: '',\n tel: ''\n }\n };\n },\n watch: {\n contactInfo: function contactInfo(val) {\n this.data = _extends({}, defaultContact, val);\n }\n },\n methods: {\n onFocus: function onFocus(key) {\n this.errorInfo[key] = '';\n },\n getErrorMessageByKey: function getErrorMessageByKey(key) {\n var value = this.data[key].trim();\n\n switch (key) {\n case 'name':\n return value ? '' : t('nameInvalid');\n\n case 'tel':\n return this.telValidator(value) ? '' : t('telInvalid');\n }\n },\n onSave: function onSave() {\n var _this = this;\n\n var isValid = ['name', 'tel'].every(function (item) {\n var msg = _this.getErrorMessageByKey(item);\n\n if (msg) {\n _this.errorInfo[item] = msg;\n }\n\n return !msg;\n });\n\n if (isValid && !this.isSaving) {\n this.$emit('save', this.data);\n }\n },\n onDelete: function onDelete() {\n var _this2 = this;\n\n Dialog.confirm({\n title: t('confirmDelete')\n }).then(function () {\n _this2.$emit('delete', _this2.data);\n });\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n var data = this.data,\n errorInfo = this.errorInfo;\n\n var onFocus = function onFocus(name) {\n return function () {\n return _this3.onFocus(name);\n };\n };\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('fields')\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"maxlength\": \"30\",\n \"label\": t('name'),\n \"placeholder\": t('nameEmpty'),\n \"errorMessage\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n _this3.$set(data, \"name\", $$v);\n }\n }\n }), h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t('tel'),\n \"placeholder\": t('telEmpty'),\n \"errorMessage\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n _this3.$set(data, \"tel\", $$v);\n }\n }\n })]), this.showSetDefault && h(Cell, {\n \"attrs\": {\n \"title\": this.setDefaultLabel,\n \"border\": false\n },\n \"class\": bem('switch-cell')\n }, [h(Switch, {\n \"attrs\": {\n \"size\": 24\n },\n \"slot\": \"right-icon\",\n \"on\": {\n \"change\": function change(event) {\n _this3.$emit('change-default', event);\n }\n },\n \"model\": {\n value: data.isDefault,\n callback: function callback($$v) {\n _this3.$set(data, \"isDefault\", $$v);\n }\n }\n })]), h(\"div\", {\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"round\": true,\n \"type\": \"danger\",\n \"text\": t('save'),\n \"loading\": this.isSaving\n },\n \"on\": {\n \"click\": this.onSave\n }\n }), this.isEdit && h(Button, {\n \"attrs\": {\n \"block\": true,\n \"round\": true,\n \"text\": t('delete'),\n \"loading\": this.isDeleting\n },\n \"on\": {\n \"click\": this.onDelete\n }\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { RED } from '../utils/constant';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Tag from '../tag';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Radio from '../radio';\nimport Button from '../button';\nimport RadioGroup from '../radio-group'; // Types\n\nvar _createNamespace = createNamespace('contact-list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction ContactList(h, props, slots, ctx) {\n var List = props.list && props.list.map(function (item, index) {\n function onClick() {\n emit(ctx, 'input', item.id);\n emit(ctx, 'select', item, index);\n }\n\n function RightIcon() {\n return h(Radio, {\n \"attrs\": {\n \"name\": item.id,\n \"iconSize\": 16,\n \"checkedColor\": RED\n },\n \"on\": {\n \"click\": onClick\n }\n });\n }\n\n function LeftIcon() {\n return h(Icon, {\n \"attrs\": {\n \"name\": \"edit\"\n },\n \"class\": bem('edit'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'edit', item, index);\n }\n }\n });\n }\n\n function Content() {\n var nodes = [item.name + \"\\uFF0C\" + item.tel];\n\n if (item.isDefault && props.defaultTagText) {\n nodes.push(h(Tag, {\n \"attrs\": {\n \"type\": \"danger\",\n \"round\": true\n },\n \"class\": bem('item-tag')\n }, [props.defaultTagText]));\n }\n\n return nodes;\n }\n\n return h(Cell, {\n \"key\": item.id,\n \"attrs\": {\n \"isLink\": true,\n \"center\": true,\n \"valueClass\": bem('item-value')\n },\n \"class\": bem('item'),\n \"scopedSlots\": {\n icon: LeftIcon,\n default: Content,\n 'right-icon': RightIcon\n },\n \"on\": {\n \"click\": onClick\n }\n });\n });\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [h(RadioGroup, {\n \"attrs\": {\n \"value\": props.value\n },\n \"class\": bem('group')\n }, [List]), h(\"div\", {\n \"class\": bem('bottom')\n }, [h(Button, {\n \"attrs\": {\n \"round\": true,\n \"block\": true,\n \"type\": \"danger\",\n \"text\": props.addText || t('addText')\n },\n \"class\": bem('add'),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'add');\n }\n }\n })])]);\n}\n\nContactList.props = {\n value: null,\n list: Array,\n addText: String,\n defaultTagText: String\n};\nexport default createComponent(ContactList);","import { padZero } from '../utils/format/string';\nvar SECOND = 1000;\nvar MINUTE = 60 * SECOND;\nvar HOUR = 60 * MINUTE;\nvar DAY = 24 * HOUR;\nexport function parseTimeData(time) {\n var days = Math.floor(time / DAY);\n var hours = Math.floor(time % DAY / HOUR);\n var minutes = Math.floor(time % HOUR / MINUTE);\n var seconds = Math.floor(time % MINUTE / SECOND);\n var milliseconds = Math.floor(time % SECOND);\n return {\n days: days,\n hours: hours,\n minutes: minutes,\n seconds: seconds,\n milliseconds: milliseconds\n };\n}\nexport function parseFormat(format, timeData) {\n var days = timeData.days;\n var hours = timeData.hours,\n minutes = timeData.minutes,\n seconds = timeData.seconds,\n milliseconds = timeData.milliseconds;\n\n if (format.indexOf('DD') === -1) {\n hours += days * 24;\n } else {\n format = format.replace('DD', padZero(days));\n }\n\n if (format.indexOf('HH') === -1) {\n minutes += hours * 60;\n } else {\n format = format.replace('HH', padZero(hours));\n }\n\n if (format.indexOf('mm') === -1) {\n seconds += minutes * 60;\n } else {\n format = format.replace('mm', padZero(minutes));\n }\n\n if (format.indexOf('ss') === -1) {\n milliseconds += seconds * 1000;\n } else {\n format = format.replace('ss', padZero(seconds));\n }\n\n if (format.indexOf('S') !== -1) {\n var ms = padZero(milliseconds, 3);\n\n if (format.indexOf('SSS') !== -1) {\n format = format.replace('SSS', ms);\n } else if (format.indexOf('SS') !== -1) {\n format = format.replace('SS', ms.slice(0, 2));\n } else {\n format = format.replace('S', ms.charAt(0));\n }\n }\n\n return format;\n}\nexport function isSameSecond(time1, time2) {\n return Math.floor(time1 / 1000) === Math.floor(time2 / 1000);\n}","import { createNamespace, inBrowser } from '../utils';\nimport { raf, cancelRaf } from '../utils/dom/raf';\nimport { isSameSecond, parseTimeData, parseFormat } from './utils';\n\nvar _createNamespace = createNamespace('count-down'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n millisecond: Boolean,\n time: {\n type: [Number, String],\n default: 0\n },\n format: {\n type: String,\n default: 'HH:mm:ss'\n },\n autoStart: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n remain: 0\n };\n },\n computed: {\n timeData: function timeData() {\n return parseTimeData(this.remain);\n },\n formattedTime: function formattedTime() {\n return parseFormat(this.format, this.timeData);\n }\n },\n watch: {\n time: {\n immediate: true,\n handler: 'reset'\n }\n },\n activated: function activated() {\n if (this.keepAlivePaused) {\n this.counting = true;\n this.keepAlivePaused = false;\n this.tick();\n }\n },\n deactivated: function deactivated() {\n if (this.counting) {\n this.pause();\n this.keepAlivePaused = true;\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.pause();\n },\n methods: {\n // @exposed-api\n start: function start() {\n if (this.counting) {\n return;\n }\n\n this.counting = true;\n this.endTime = Date.now() + this.remain;\n this.tick();\n },\n // @exposed-api\n pause: function pause() {\n this.counting = false;\n cancelRaf(this.rafId);\n },\n // @exposed-api\n reset: function reset() {\n this.pause();\n this.remain = +this.time;\n\n if (this.autoStart) {\n this.start();\n }\n },\n tick: function tick() {\n // should not start counting in server\n // see: https://github.com/vant-ui/vant/issues/7807\n if (!inBrowser) {\n return;\n }\n\n if (this.millisecond) {\n this.microTick();\n } else {\n this.macroTick();\n }\n },\n microTick: function microTick() {\n var _this = this;\n\n this.rafId = raf(function () {\n /* istanbul ignore if */\n // in case of call reset immediately after finish\n if (!_this.counting) {\n return;\n }\n\n _this.setRemain(_this.getRemain());\n\n if (_this.remain > 0) {\n _this.microTick();\n }\n });\n },\n macroTick: function macroTick() {\n var _this2 = this;\n\n this.rafId = raf(function () {\n /* istanbul ignore if */\n // in case of call reset immediately after finish\n if (!_this2.counting) {\n return;\n }\n\n var remain = _this2.getRemain();\n\n if (!isSameSecond(remain, _this2.remain) || remain === 0) {\n _this2.setRemain(remain);\n }\n\n if (_this2.remain > 0) {\n _this2.macroTick();\n }\n });\n },\n getRemain: function getRemain() {\n return Math.max(this.endTime - Date.now(), 0);\n },\n setRemain: function setRemain(remain) {\n this.remain = remain;\n this.$emit('change', this.timeData);\n\n if (remain === 0) {\n this.pause();\n this.$emit('finish');\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots('default', this.timeData) || this.formattedTime]);\n }\n});","import { createNamespace } from '../utils';\nimport { RED } from '../utils/constant';\nimport { padZero } from '../utils/format/string';\nimport Checkbox from '../checkbox';\n\nvar _createNamespace = createNamespace('coupon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction formatTimeStamp(timeStamp) {\n // compatible when the timestamp is seconds\n if (timeStamp < Math.pow(10, 12)) {\n return timeStamp * 1000;\n }\n\n return +timeStamp;\n}\n\nfunction getDate(timeStamp) {\n var date = new Date(formatTimeStamp(timeStamp));\n return date.getFullYear() + \".\" + padZero(date.getMonth() + 1) + \".\" + padZero(date.getDate());\n}\n\nfunction formatDiscount(discount) {\n return (discount / 10).toFixed(discount % 10 === 0 ? 0 : 1);\n}\n\nfunction formatAmount(amount) {\n return (amount / 100).toFixed(amount % 100 === 0 ? 0 : amount % 10 === 0 ? 1 : 2);\n}\n\nexport default createComponent({\n props: {\n coupon: Object,\n chosen: Boolean,\n disabled: Boolean,\n currency: {\n type: String,\n default: '¥'\n }\n },\n computed: {\n validPeriod: function validPeriod() {\n var _this$coupon = this.coupon,\n startAt = _this$coupon.startAt,\n endAt = _this$coupon.endAt,\n customValidPeriod = _this$coupon.customValidPeriod;\n return customValidPeriod || getDate(startAt) + \" - \" + getDate(endAt);\n },\n faceAmount: function faceAmount() {\n var coupon = this.coupon;\n\n if (coupon.valueDesc) {\n return coupon.valueDesc + \"\" + (coupon.unitDesc || '') + \"\";\n }\n\n if (coupon.denominations) {\n var denominations = formatAmount(coupon.denominations);\n return \"\" + this.currency + \" \" + denominations;\n }\n\n if (coupon.discount) {\n return t('discount', formatDiscount(coupon.discount));\n }\n\n return '';\n },\n conditionMessage: function conditionMessage() {\n var condition = formatAmount(this.coupon.originCondition);\n return condition === '0' ? t('unlimited') : t('condition', condition);\n }\n },\n render: function render() {\n var h = arguments[0];\n var coupon = this.coupon,\n disabled = this.disabled;\n var description = disabled && coupon.reason || coupon.description;\n return h(\"div\", {\n \"class\": bem({\n disabled: disabled\n })\n }, [h(\"div\", {\n \"class\": bem('content')\n }, [h(\"div\", {\n \"class\": bem('head')\n }, [h(\"h2\", {\n \"class\": bem('amount'),\n \"domProps\": {\n \"innerHTML\": this.faceAmount\n }\n }), h(\"p\", {\n \"class\": bem('condition')\n }, [this.coupon.condition || this.conditionMessage])]), h(\"div\", {\n \"class\": bem('body')\n }, [h(\"p\", {\n \"class\": bem('name')\n }, [coupon.name]), h(\"p\", {\n \"class\": bem('valid')\n }, [this.validPeriod]), !this.disabled && h(Checkbox, {\n \"attrs\": {\n \"size\": 18,\n \"value\": this.chosen,\n \"checkedColor\": RED\n },\n \"class\": bem('corner')\n })])]), description && h(\"p\", {\n \"class\": bem('description')\n }, [description])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Cell from '../cell'; // Types\n\nvar _createNamespace = createNamespace('coupon-cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction formatValue(props) {\n var coupons = props.coupons,\n chosenCoupon = props.chosenCoupon,\n currency = props.currency;\n var coupon = coupons[+chosenCoupon];\n\n if (coupon) {\n var value = 0;\n\n if (isDef(coupon.value)) {\n value = coupon.value;\n } else if (isDef(coupon.denominations)) {\n value = coupon.denominations;\n }\n\n return \"-\" + currency + \" \" + (value / 100).toFixed(2);\n }\n\n return coupons.length === 0 ? t('tips') : t('count', coupons.length);\n}\n\nfunction CouponCell(h, props, slots, ctx) {\n var selected = props.coupons[+props.chosenCoupon];\n var value = formatValue(props);\n return h(Cell, _mergeJSXProps([{\n \"class\": bem(),\n \"attrs\": {\n \"value\": value,\n \"title\": props.title || t('title'),\n \"border\": props.border,\n \"isLink\": props.editable,\n \"valueClass\": bem('value', {\n selected: selected\n })\n }\n }, inherit(ctx, true)]));\n}\n\nCouponCell.model = {\n prop: 'chosenCoupon'\n};\nCouponCell.props = {\n title: String,\n coupons: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n currency: {\n type: String,\n default: '¥'\n },\n border: {\n type: Boolean,\n default: true\n },\n editable: {\n type: Boolean,\n default: true\n },\n chosenCoupon: {\n type: [Number, String],\n default: -1\n }\n};\nexport default createComponent(CouponCell);","// Utils\nimport { createNamespace } from '../utils'; // Components\n\nimport Tab from '../tab';\nimport Tabs from '../tabs';\nimport Field from '../field';\nimport Button from '../button';\nimport Coupon from '../coupon';\n\nvar _createNamespace = createNamespace('coupon-list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar EMPTY_IMAGE = 'https://img01.yzcdn.cn/vant/coupon-empty.png';\nexport default createComponent({\n model: {\n prop: 'code'\n },\n props: {\n code: String,\n closeButtonText: String,\n inputPlaceholder: String,\n enabledTitle: String,\n disabledTitle: String,\n exchangeButtonText: String,\n exchangeButtonLoading: Boolean,\n exchangeButtonDisabled: Boolean,\n exchangeMinLength: {\n type: Number,\n default: 1\n },\n chosenCoupon: {\n type: Number,\n default: -1\n },\n coupons: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n disabledCoupons: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n displayedCouponIndex: {\n type: Number,\n default: -1\n },\n showExchangeBar: {\n type: Boolean,\n default: true\n },\n showCloseButton: {\n type: Boolean,\n default: true\n },\n showCount: {\n type: Boolean,\n default: true\n },\n currency: {\n type: String,\n default: '¥'\n },\n emptyImage: {\n type: String,\n default: EMPTY_IMAGE\n }\n },\n data: function data() {\n return {\n tab: 0,\n winHeight: window.innerHeight,\n currentCode: this.code || ''\n };\n },\n computed: {\n buttonDisabled: function buttonDisabled() {\n return !this.exchangeButtonLoading && (this.exchangeButtonDisabled || !this.currentCode || this.currentCode.length < this.exchangeMinLength);\n },\n listStyle: function listStyle() {\n return {\n height: this.winHeight - (this.showExchangeBar ? 140 : 94) + 'px'\n };\n }\n },\n watch: {\n code: function code(_code) {\n this.currentCode = _code;\n },\n currentCode: function currentCode(code) {\n this.$emit('input', code);\n },\n displayedCouponIndex: 'scrollToShowCoupon'\n },\n mounted: function mounted() {\n this.scrollToShowCoupon(this.displayedCouponIndex);\n },\n methods: {\n onClickExchangeButton: function onClickExchangeButton() {\n this.$emit('exchange', this.currentCode); // auto clear currentCode when not use vModel\n\n if (!this.code) {\n this.currentCode = '';\n }\n },\n // scroll to show specific coupon\n scrollToShowCoupon: function scrollToShowCoupon(index) {\n var _this = this;\n\n if (index === -1) {\n return;\n }\n\n this.$nextTick(function () {\n var _this$$refs = _this.$refs,\n card = _this$$refs.card,\n list = _this$$refs.list;\n /* istanbul ignore next */\n\n if (list && card && card[index]) {\n list.scrollTop = card[index].$el.offsetTop - 100;\n }\n });\n },\n genEmpty: function genEmpty() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('empty')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": this.emptyImage\n }\n }), h(\"p\", [t('empty')])]);\n },\n genExchangeButton: function genExchangeButton() {\n var h = this.$createElement;\n return h(Button, {\n \"attrs\": {\n \"plain\": true,\n \"type\": \"danger\",\n \"text\": this.exchangeButtonText || t('exchange'),\n \"loading\": this.exchangeButtonLoading,\n \"disabled\": this.buttonDisabled\n },\n \"class\": bem('exchange'),\n \"on\": {\n \"click\": this.onClickExchangeButton\n }\n });\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n var coupons = this.coupons,\n disabledCoupons = this.disabledCoupons;\n var count = this.showCount ? \" (\" + coupons.length + \")\" : '';\n var title = (this.enabledTitle || t('enable')) + count;\n var disabledCount = this.showCount ? \" (\" + disabledCoupons.length + \")\" : '';\n var disabledTitle = (this.disabledTitle || t('disabled')) + disabledCount;\n var ExchangeBar = this.showExchangeBar && h(\"div\", {\n \"class\": bem('exchange-bar')\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"border\": false,\n \"placeholder\": this.inputPlaceholder || t('placeholder'),\n \"maxlength\": \"20\"\n },\n \"class\": bem('field'),\n \"model\": {\n value: _this2.currentCode,\n callback: function callback($$v) {\n _this2.currentCode = $$v;\n }\n }\n }), this.genExchangeButton()]);\n\n var onChange = function onChange(index) {\n return function () {\n return _this2.$emit('change', index);\n };\n };\n\n var CouponTab = h(Tab, {\n \"attrs\": {\n \"title\": title\n }\n }, [h(\"div\", {\n \"class\": bem('list', {\n 'with-bottom': this.showCloseButton\n }),\n \"style\": this.listStyle\n }, [coupons.map(function (coupon, index) {\n return h(Coupon, {\n \"ref\": \"card\",\n \"key\": coupon.id,\n \"attrs\": {\n \"coupon\": coupon,\n \"currency\": _this2.currency,\n \"chosen\": index === _this2.chosenCoupon\n },\n \"nativeOn\": {\n \"click\": onChange(index)\n }\n });\n }), !coupons.length && this.genEmpty(), this.slots('list-footer')])]);\n var DisabledCouponTab = h(Tab, {\n \"attrs\": {\n \"title\": disabledTitle\n }\n }, [h(\"div\", {\n \"class\": bem('list', {\n 'with-bottom': this.showCloseButton\n }),\n \"style\": this.listStyle\n }, [disabledCoupons.map(function (coupon) {\n return h(Coupon, {\n \"attrs\": {\n \"disabled\": true,\n \"coupon\": coupon,\n \"currency\": _this2.currency\n },\n \"key\": coupon.id\n });\n }), !disabledCoupons.length && this.genEmpty(), this.slots('disabled-list-footer')])]);\n return h(\"div\", {\n \"class\": bem()\n }, [ExchangeBar, h(Tabs, {\n \"class\": bem('tab'),\n \"attrs\": {\n \"border\": false\n },\n \"model\": {\n value: _this2.tab,\n callback: function callback($$v) {\n _this2.tab = $$v;\n }\n }\n }, [CouponTab, DisabledCouponTab]), h(\"div\", {\n \"class\": bem('bottom')\n }, [h(Button, {\n \"directives\": [{\n name: \"show\",\n value: this.showCloseButton\n }],\n \"attrs\": {\n \"round\": true,\n \"type\": \"danger\",\n \"block\": true,\n \"text\": this.closeButtonText || t('close')\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onChange(-1)\n }\n })])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { times } from './utils';\nimport { padZero } from '../utils/format/string';\nimport { pickerProps } from '../picker/shared';\nimport Picker from '../picker';\nexport var sharedProps = _extends({}, pickerProps, {\n value: null,\n filter: Function,\n columnsOrder: Array,\n showToolbar: {\n type: Boolean,\n default: true\n },\n formatter: {\n type: Function,\n default: function _default(type, value) {\n return value;\n }\n }\n});\nexport var TimePickerMixin = {\n data: function data() {\n return {\n innerValue: this.formatValue(this.value)\n };\n },\n computed: {\n originColumns: function originColumns() {\n var _this = this;\n\n return this.ranges.map(function (_ref) {\n var type = _ref.type,\n rangeArr = _ref.range;\n var values = times(rangeArr[1] - rangeArr[0] + 1, function (index) {\n var value = padZero(rangeArr[0] + index);\n return value;\n });\n\n if (_this.filter) {\n values = _this.filter(type, values);\n }\n\n return {\n type: type,\n values: values\n };\n });\n },\n columns: function columns() {\n var _this2 = this;\n\n return this.originColumns.map(function (column) {\n return {\n values: column.values.map(function (value) {\n return _this2.formatter(column.type, value);\n })\n };\n });\n }\n },\n watch: {\n columns: 'updateColumnValue',\n innerValue: function innerValue(val, oldVal) {\n if (!oldVal) {\n this.$emit('input', null);\n } else {\n this.$emit('input', val);\n }\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.updateColumnValue();\n this.$nextTick(function () {\n _this3.updateInnerValue();\n });\n },\n methods: {\n getPicker: function getPicker() {\n return this.$refs.picker;\n },\n // https://github.com/vant-ui/vant/issues/10013\n getProxiedPicker: function getProxiedPicker() {\n var _this4 = this;\n\n var picker = this.$refs.picker;\n\n if (picker) {\n var proxy = function proxy(fn) {\n return function () {\n picker[fn].apply(picker, arguments);\n\n _this4.updateInnerValue();\n };\n };\n\n return _extends({}, picker, {\n setValues: proxy('setValues'),\n setIndexes: proxy('setIndexes'),\n setColumnIndex: proxy('setColumnIndex'),\n setColumnValue: proxy('setColumnValue')\n });\n }\n },\n onConfirm: function onConfirm() {\n this.$emit('input', this.innerValue);\n this.$emit('confirm', this.innerValue);\n },\n onCancel: function onCancel() {\n this.$emit('cancel');\n }\n },\n render: function render() {\n var _this5 = this;\n\n var h = arguments[0];\n var props = {};\n Object.keys(pickerProps).forEach(function (key) {\n props[key] = _this5[key];\n });\n return h(Picker, {\n \"ref\": \"picker\",\n \"attrs\": {\n \"columns\": this.columns,\n \"readonly\": this.readonly\n },\n \"scopedSlots\": this.$scopedSlots,\n \"on\": {\n \"change\": this.onChange,\n \"confirm\": this.onConfirm,\n \"cancel\": this.onCancel\n },\n \"props\": _extends({}, props)\n });\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { padZero } from '../utils/format/string';\nimport { range } from '../utils/format/number';\nimport { sharedProps, TimePickerMixin } from './shared';\n\nvar _createNamespace = createNamespace('time-picker'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n mixins: [TimePickerMixin],\n props: _extends({}, sharedProps, {\n minHour: {\n type: [Number, String],\n default: 0\n },\n maxHour: {\n type: [Number, String],\n default: 23\n },\n minMinute: {\n type: [Number, String],\n default: 0\n },\n maxMinute: {\n type: [Number, String],\n default: 59\n }\n }),\n computed: {\n ranges: function ranges() {\n return [{\n type: 'hour',\n range: [+this.minHour, +this.maxHour]\n }, {\n type: 'minute',\n range: [+this.minMinute, +this.maxMinute]\n }];\n }\n },\n watch: {\n filter: 'updateInnerValue',\n minHour: function minHour() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.updateInnerValue();\n });\n },\n maxHour: function maxHour(value) {\n var _this$innerValue$spli = this.innerValue.split(':'),\n hour = _this$innerValue$spli[0],\n minute = _this$innerValue$spli[1];\n\n if (hour >= value) {\n this.innerValue = this.formatValue(value + \":\" + minute);\n this.updateColumnValue();\n } else {\n this.updateInnerValue();\n }\n },\n minMinute: 'updateInnerValue',\n maxMinute: function maxMinute(value) {\n var _this$innerValue$spli2 = this.innerValue.split(':'),\n hour = _this$innerValue$spli2[0],\n minute = _this$innerValue$spli2[1];\n\n if (minute >= value) {\n this.innerValue = this.formatValue(hour + \":\" + value);\n this.updateColumnValue();\n } else {\n this.updateInnerValue();\n }\n },\n value: function value(val) {\n val = this.formatValue(val);\n\n if (val !== this.innerValue) {\n this.innerValue = val;\n this.updateColumnValue();\n }\n }\n },\n methods: {\n formatValue: function formatValue(value) {\n if (!value) {\n value = padZero(this.minHour) + \":\" + padZero(this.minMinute);\n }\n\n var _value$split = value.split(':'),\n hour = _value$split[0],\n minute = _value$split[1];\n\n hour = padZero(range(hour, this.minHour, this.maxHour));\n minute = padZero(range(minute, this.minMinute, this.maxMinute));\n return hour + \":\" + minute;\n },\n updateInnerValue: function updateInnerValue() {\n var _this$getPicker$getIn = this.getPicker().getIndexes(),\n hourIndex = _this$getPicker$getIn[0],\n minuteIndex = _this$getPicker$getIn[1];\n\n var _this$originColumns = this.originColumns,\n hourColumn = _this$originColumns[0],\n minuteColumn = _this$originColumns[1];\n var hour = hourColumn.values[hourIndex] || hourColumn.values[0];\n var minute = minuteColumn.values[minuteIndex] || minuteColumn.values[0];\n this.innerValue = this.formatValue(hour + \":\" + minute);\n this.updateColumnValue();\n },\n onChange: function onChange(picker) {\n var _this2 = this;\n\n this.updateInnerValue();\n this.$nextTick(function () {\n _this2.$nextTick(function () {\n // https://github.com/vant-ui/vant/issues/9775\n _this2.updateInnerValue();\n\n _this2.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue() {\n var _this3 = this;\n\n var formatter = this.formatter;\n var pair = this.innerValue.split(':');\n var values = [formatter('hour', pair[0]), formatter('minute', pair[1])];\n this.$nextTick(function () {\n _this3.getPicker().setValues(values);\n });\n }\n }\n});","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import _construct from \"@babel/runtime/helpers/esm/construct\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { isDate } from '../utils/validate/date';\nimport { padZero } from '../utils/format/string';\nimport { getTrueValue, getMonthEndDay } from './utils';\nimport { sharedProps, TimePickerMixin } from './shared';\nvar currentYear = new Date().getFullYear();\n\nvar _createNamespace = createNamespace('date-picker'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n mixins: [TimePickerMixin],\n props: _extends({}, sharedProps, {\n type: {\n type: String,\n default: 'datetime'\n },\n minDate: {\n type: Date,\n default: function _default() {\n return new Date(currentYear - 10, 0, 1);\n },\n validator: isDate\n },\n maxDate: {\n type: Date,\n default: function _default() {\n return new Date(currentYear + 10, 11, 31);\n },\n validator: isDate\n }\n }),\n watch: {\n filter: 'updateInnerValue',\n minDate: function minDate() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.updateInnerValue();\n });\n },\n maxDate: function maxDate(value) {\n if (this.innerValue.valueOf() >= value.valueOf()) {\n this.innerValue = value;\n } else {\n this.updateInnerValue();\n }\n },\n value: function value(val) {\n val = this.formatValue(val);\n\n if (val && val.valueOf() !== this.innerValue.valueOf()) {\n this.innerValue = val;\n }\n }\n },\n computed: {\n ranges: function ranges() {\n var _this$getBoundary = this.getBoundary('max', this.innerValue ? this.innerValue : this.minDate),\n maxYear = _this$getBoundary.maxYear,\n maxDate = _this$getBoundary.maxDate,\n maxMonth = _this$getBoundary.maxMonth,\n maxHour = _this$getBoundary.maxHour,\n maxMinute = _this$getBoundary.maxMinute;\n\n var _this$getBoundary2 = this.getBoundary('min', this.innerValue ? this.innerValue : this.minDate),\n minYear = _this$getBoundary2.minYear,\n minDate = _this$getBoundary2.minDate,\n minMonth = _this$getBoundary2.minMonth,\n minHour = _this$getBoundary2.minHour,\n minMinute = _this$getBoundary2.minMinute;\n\n var result = [{\n type: 'year',\n range: [minYear, maxYear]\n }, {\n type: 'month',\n range: [minMonth, maxMonth]\n }, {\n type: 'day',\n range: [minDate, maxDate]\n }, {\n type: 'hour',\n range: [minHour, maxHour]\n }, {\n type: 'minute',\n range: [minMinute, maxMinute]\n }];\n\n switch (this.type) {\n case 'date':\n result = result.slice(0, 3);\n break;\n\n case 'year-month':\n result = result.slice(0, 2);\n break;\n\n case 'month-day':\n result = result.slice(1, 3);\n break;\n\n case 'datehour':\n result = result.slice(0, 4);\n break;\n }\n\n if (this.columnsOrder) {\n var columnsOrder = this.columnsOrder.concat(result.map(function (column) {\n return column.type;\n }));\n result.sort(function (a, b) {\n return columnsOrder.indexOf(a.type) - columnsOrder.indexOf(b.type);\n });\n }\n\n return result;\n }\n },\n methods: {\n formatValue: function formatValue(value) {\n var _this2 = this;\n\n if (!isDate(value)) {\n return null;\n }\n\n var minDate = new Date(this.minDate);\n var maxDate = new Date(this.maxDate);\n var dateMethods = {\n year: 'getFullYear',\n month: 'getMonth',\n day: 'getDate',\n hour: 'getHours',\n minute: 'getMinutes'\n };\n\n if (this.originColumns) {\n var dateColumns = this.originColumns.map(function (_ref, index) {\n var type = _ref.type,\n values = _ref.values;\n var range = _this2.ranges[index].range;\n var minDateVal = minDate[dateMethods[type]]();\n var maxDateVal = maxDate[dateMethods[type]]();\n var min = type === 'month' ? +values[0] - 1 : +values[0];\n var max = type === 'month' ? +values[values.length - 1] - 1 : +values[values.length - 1];\n return {\n type: type,\n values: [minDateVal < range[0] ? Math.max(minDateVal, min) : min || minDateVal, maxDateVal > range[1] ? Math.min(maxDateVal, max) : max || maxDateVal]\n };\n });\n\n if (this.type === 'month-day') {\n var year = (this.innerValue || this.minDate).getFullYear();\n dateColumns.unshift({\n type: 'year',\n values: [year, year]\n });\n }\n\n var dates = Object.keys(dateMethods).map(function (type) {\n var _dateColumns$filter$;\n\n return (_dateColumns$filter$ = dateColumns.filter(function (item) {\n return item.type === type;\n })[0]) == null ? void 0 : _dateColumns$filter$.values;\n }).filter(function (item) {\n return item;\n });\n minDate = _construct(Date, dates.map(function (val) {\n return getTrueValue(val[0]);\n }));\n maxDate = _construct(Date, dates.map(function (val) {\n return getTrueValue(val[1]);\n }));\n }\n\n value = Math.max(value, minDate.getTime());\n value = Math.min(value, maxDate.getTime());\n return new Date(value);\n },\n getBoundary: function getBoundary(type, value) {\n var _ref2;\n\n var boundary = this[type + \"Date\"];\n var year = boundary.getFullYear();\n var month = 1;\n var date = 1;\n var hour = 0;\n var minute = 0;\n\n if (type === 'max') {\n month = 12;\n date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1);\n hour = 23;\n minute = 59;\n }\n\n if (value.getFullYear() === year) {\n month = boundary.getMonth() + 1;\n\n if (value.getMonth() + 1 === month) {\n date = boundary.getDate();\n\n if (value.getDate() === date) {\n hour = boundary.getHours();\n\n if (value.getHours() === hour) {\n minute = boundary.getMinutes();\n }\n }\n }\n }\n\n return _ref2 = {}, _ref2[type + \"Year\"] = year, _ref2[type + \"Month\"] = month, _ref2[type + \"Date\"] = date, _ref2[type + \"Hour\"] = hour, _ref2[type + \"Minute\"] = minute, _ref2;\n },\n updateInnerValue: function updateInnerValue() {\n var _this3 = this;\n\n var type = this.type;\n var indexes = this.getPicker().getIndexes();\n\n var getValue = function getValue(type) {\n var index = 0;\n\n _this3.originColumns.forEach(function (column, columnIndex) {\n if (type === column.type) {\n index = columnIndex;\n }\n });\n\n var values = _this3.originColumns[index].values;\n return getTrueValue(values[indexes[index]]);\n };\n\n var year;\n var month;\n var day;\n\n if (type === 'month-day') {\n year = (this.innerValue || this.minDate).getFullYear();\n month = getValue('month');\n day = getValue('day');\n } else {\n year = getValue('year');\n month = getValue('month');\n day = type === 'year-month' ? 1 : getValue('day');\n }\n\n var maxDay = getMonthEndDay(year, month);\n day = day > maxDay ? maxDay : day;\n var hour = 0;\n var minute = 0;\n\n if (type === 'datehour') {\n hour = getValue('hour');\n }\n\n if (type === 'datetime') {\n hour = getValue('hour');\n minute = getValue('minute');\n }\n\n var value = new Date(year, month - 1, day, hour, minute);\n this.innerValue = this.formatValue(value);\n },\n onChange: function onChange(picker) {\n var _this4 = this;\n\n this.updateInnerValue();\n this.$nextTick(function () {\n _this4.$nextTick(function () {\n // https://github.com/vant-ui/vant/issues/9775\n _this4.updateInnerValue();\n\n _this4.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue() {\n var _this5 = this;\n\n var value = this.innerValue ? this.innerValue : this.minDate;\n var formatter = this.formatter;\n var values = this.originColumns.map(function (column) {\n switch (column.type) {\n case 'year':\n return formatter('year', \"\" + value.getFullYear());\n\n case 'month':\n return formatter('month', padZero(value.getMonth() + 1));\n\n case 'day':\n return formatter('day', padZero(value.getDate()));\n\n case 'hour':\n return formatter('hour', padZero(value.getHours()));\n\n case 'minute':\n return formatter('minute', padZero(value.getMinutes()));\n\n default:\n // no default\n return null;\n }\n });\n this.$nextTick(function () {\n _this5.getPicker().setValues(values);\n });\n }\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport TimePicker from './TimePicker';\nimport DatePicker from './DatePicker';\n\nvar _createNamespace = createNamespace('datetime-picker'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: _extends({}, TimePicker.props, DatePicker.props),\n methods: {\n // @exposed-api\n getPicker: function getPicker() {\n return this.$refs.root.getProxiedPicker();\n }\n },\n render: function render() {\n var h = arguments[0];\n var Component = this.type === 'time' ? TimePicker : DatePicker;\n return h(Component, {\n \"ref\": \"root\",\n \"class\": bem(),\n \"scopedSlots\": this.$scopedSlots,\n \"props\": _extends({}, this.$props),\n \"on\": _extends({}, this.$listeners)\n });\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('divider'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Divider(h, props, slots, ctx) {\n var _bem;\n\n return h(\"div\", _mergeJSXProps([{\n \"attrs\": {\n \"role\": \"separator\"\n },\n \"style\": {\n borderColor: props.borderColor\n },\n \"class\": bem((_bem = {\n dashed: props.dashed,\n hairline: props.hairline\n }, _bem[\"content-\" + props.contentPosition] = slots.default, _bem))\n }, inherit(ctx, true)]), [slots.default && slots.default()]);\n}\n\nDivider.props = {\n dashed: Boolean,\n hairline: {\n type: Boolean,\n default: true\n },\n contentPosition: {\n type: String,\n default: 'center'\n }\n};\nexport default createComponent(Divider);","// Utils\nimport { createNamespace } from '../utils';\nimport { on, off } from '../utils/dom/event'; // Mixins\n\nimport { PortalMixin } from '../mixins/portal';\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Cell from '../cell';\nimport Icon from '../icon';\nimport Popup from '../popup';\n\nvar _createNamespace = createNamespace('dropdown-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PortalMixin({\n ref: 'wrapper'\n }), ChildrenMixin('vanDropdownMenu')],\n props: {\n value: null,\n title: String,\n disabled: Boolean,\n titleClass: String,\n options: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n lazyRender: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n transition: true,\n showPopup: false,\n showWrapper: false\n };\n },\n computed: {\n displayTitle: function displayTitle() {\n var _this = this;\n\n if (this.title) {\n return this.title;\n }\n\n var match = this.options.filter(function (option) {\n return option.value === _this.value;\n });\n return match.length ? match[0].text : '';\n }\n },\n watch: {\n showPopup: function showPopup(val) {\n this.bindScroll(val);\n }\n },\n beforeCreate: function beforeCreate() {\n var _this2 = this;\n\n var createEmitter = function createEmitter(eventName) {\n return function () {\n return _this2.$emit(eventName);\n };\n };\n\n this.onOpen = createEmitter('open');\n this.onClose = createEmitter('close');\n this.onOpened = createEmitter('opened');\n },\n methods: {\n // @exposed-api\n toggle: function toggle(show, options) {\n if (show === void 0) {\n show = !this.showPopup;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n if (show === this.showPopup) {\n return;\n }\n\n this.transition = !options.immediate;\n this.showPopup = show;\n\n if (show) {\n this.parent.updateOffset();\n this.showWrapper = true;\n }\n },\n bindScroll: function bindScroll(bind) {\n var scroller = this.parent.scroller;\n var action = bind ? on : off;\n action(scroller, 'scroll', this.onScroll, true);\n },\n onScroll: function onScroll() {\n this.parent.updateOffset();\n },\n onClickWrapper: function onClickWrapper(event) {\n // prevent being identified as clicking outside and closed when use get-contaienr\n if (this.getContainer) {\n event.stopPropagation();\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n var _this$parent = this.parent,\n zIndex = _this$parent.zIndex,\n offset = _this$parent.offset,\n overlay = _this$parent.overlay,\n duration = _this$parent.duration,\n direction = _this$parent.direction,\n activeColor = _this$parent.activeColor,\n closeOnClickOverlay = _this$parent.closeOnClickOverlay;\n var Options = this.options.map(function (option) {\n var active = option.value === _this3.value;\n return h(Cell, {\n \"attrs\": {\n \"clickable\": true,\n \"icon\": option.icon,\n \"title\": option.text\n },\n \"key\": option.value,\n \"class\": bem('option', {\n active: active\n }),\n \"style\": {\n color: active ? activeColor : ''\n },\n \"on\": {\n \"click\": function click() {\n _this3.showPopup = false;\n\n if (option.value !== _this3.value) {\n _this3.$emit('input', option.value);\n\n _this3.$emit('change', option.value);\n }\n }\n }\n }, [active && h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"color\": activeColor,\n \"name\": \"success\"\n }\n })]);\n });\n var style = {\n zIndex: zIndex\n };\n\n if (direction === 'down') {\n style.top = offset + \"px\";\n } else {\n style.bottom = offset + \"px\";\n }\n\n return h(\"div\", [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.showWrapper\n }],\n \"ref\": \"wrapper\",\n \"style\": style,\n \"class\": bem([direction]),\n \"on\": {\n \"click\": this.onClickWrapper\n }\n }, [h(Popup, {\n \"attrs\": {\n \"overlay\": overlay,\n \"position\": direction === 'down' ? 'top' : 'bottom',\n \"duration\": this.transition ? duration : 0,\n \"lazyRender\": this.lazyRender,\n \"overlayStyle\": {\n position: 'absolute'\n },\n \"closeOnClickOverlay\": closeOnClickOverlay\n },\n \"class\": bem('content'),\n \"on\": {\n \"open\": this.onOpen,\n \"close\": this.onClose,\n \"opened\": this.onOpened,\n \"closed\": function closed() {\n _this3.showWrapper = false;\n\n _this3.$emit('closed');\n }\n },\n \"model\": {\n value: _this3.showPopup,\n callback: function callback($$v) {\n _this3.showPopup = $$v;\n }\n }\n }, [Options, this.slots('default')])])]);\n }\n});","/**\n * Listen to click outside event\n */\nimport { on, off } from '../utils/dom/event';\nexport var ClickOutsideMixin = function ClickOutsideMixin(config) {\n return {\n props: {\n closeOnClickOutside: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n var _this = this;\n\n var clickOutsideHandler = function clickOutsideHandler(event) {\n if (_this.closeOnClickOutside && !_this.$el.contains(event.target)) {\n _this[config.method]();\n }\n };\n\n return {\n clickOutsideHandler: clickOutsideHandler\n };\n },\n mounted: function mounted() {\n on(document, config.event, this.clickOutsideHandler);\n },\n beforeDestroy: function beforeDestroy() {\n off(document, config.event, this.clickOutsideHandler);\n }\n };\n};","// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { getScroller } from '../utils/dom/scroll'; // Mixins\n\nimport { ParentMixin } from '../mixins/relation';\nimport { ClickOutsideMixin } from '../mixins/click-outside';\n\nvar _createNamespace = createNamespace('dropdown-menu'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanDropdownMenu'), ClickOutsideMixin({\n event: 'click',\n method: 'onClickOutside'\n })],\n props: {\n zIndex: [Number, String],\n activeColor: String,\n overlay: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 0.2\n },\n direction: {\n type: String,\n default: 'down'\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n offset: 0\n };\n },\n computed: {\n scroller: function scroller() {\n return getScroller(this.$el);\n },\n opened: function opened() {\n return this.children.some(function (item) {\n return item.showWrapper;\n });\n },\n barStyle: function barStyle() {\n if (this.opened && isDef(this.zIndex)) {\n return {\n zIndex: 1 + this.zIndex\n };\n }\n }\n },\n methods: {\n updateOffset: function updateOffset() {\n if (!this.$refs.bar) {\n return;\n }\n\n var rect = this.$refs.bar.getBoundingClientRect();\n\n if (this.direction === 'down') {\n this.offset = rect.bottom;\n } else {\n this.offset = window.innerHeight - rect.top;\n }\n },\n toggleItem: function toggleItem(active) {\n this.children.forEach(function (item, index) {\n if (index === active) {\n item.toggle();\n } else if (item.showPopup) {\n item.toggle(false, {\n immediate: true\n });\n }\n });\n },\n onClickOutside: function onClickOutside() {\n this.children.forEach(function (item) {\n item.toggle(false);\n });\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var Titles = this.children.map(function (item, index) {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": item.disabled ? -1 : 0\n },\n \"class\": bem('item', {\n disabled: item.disabled\n }),\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n _this.toggleItem(index);\n }\n }\n }\n }, [h(\"span\", {\n \"class\": [bem('title', {\n active: item.showPopup,\n down: item.showPopup === (_this.direction === 'down')\n }), item.titleClass],\n \"style\": {\n color: item.showPopup ? _this.activeColor : ''\n }\n }, [h(\"div\", {\n \"class\": \"van-ellipsis\"\n }, [item.slots('title') || item.displayTitle])])]);\n });\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"bar\",\n \"style\": this.barStyle,\n \"class\": bem('bar', {\n opened: this.opened\n })\n }, [Titles]), this.slots('default')]);\n }\n});","var prefix = 'van-empty-network-';\nexport default {\n render: function render() {\n var h = arguments[0];\n\n var genStop = function genStop(color, offset, opacity) {\n return h(\"stop\", {\n \"attrs\": {\n \"stop-color\": color,\n \"offset\": offset + \"%\",\n \"stop-opacity\": opacity\n }\n });\n };\n\n return h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 160 160\",\n \"xmlns\": \"http://www.w3.org/2000/svg\"\n }\n }, [h(\"defs\", [h(\"linearGradient\", {\n \"attrs\": {\n \"id\": prefix + \"1\",\n \"x1\": \"64.022%\",\n \"y1\": \"100%\",\n \"x2\": \"64.022%\",\n \"y2\": \"0%\"\n }\n }, [genStop('#FFF', 0, 0.5), genStop('#F2F3F5', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": prefix + \"2\",\n \"x1\": \"50%\",\n \"y1\": \"0%\",\n \"x2\": \"50%\",\n \"y2\": \"84.459%\"\n }\n }, [genStop('#EBEDF0', 0), genStop('#DCDEE0', 100, 0)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": prefix + \"3\",\n \"x1\": \"100%\",\n \"y1\": \"0%\",\n \"x2\": \"100%\",\n \"y2\": \"100%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": prefix + \"4\",\n \"x1\": \"100%\",\n \"y1\": \"100%\",\n \"x2\": \"100%\",\n \"y2\": \"0%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": prefix + \"5\",\n \"x1\": \"0%\",\n \"y1\": \"43.982%\",\n \"x2\": \"100%\",\n \"y2\": \"54.703%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": prefix + \"6\",\n \"x1\": \"94.535%\",\n \"y1\": \"43.837%\",\n \"x2\": \"5.465%\",\n \"y2\": \"54.948%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"radialGradient\", {\n \"attrs\": {\n \"id\": prefix + \"7\",\n \"cx\": \"50%\",\n \"cy\": \"0%\",\n \"fx\": \"50%\",\n \"fy\": \"0%\",\n \"r\": \"100%\",\n \"gradientTransform\": \"matrix(0 1 -.54835 0 .5 -.5)\"\n }\n }, [genStop('#EBEDF0', 0), genStop('#FFF', 100, 0)])]), h(\"g\", {\n \"attrs\": {\n \"fill\": \"none\",\n \"fill-rule\": \"evenodd\"\n }\n }, [h(\"g\", {\n \"attrs\": {\n \"opacity\": \".8\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M0 124V46h20v20h14v58H0z\",\n \"fill\": \"url(#\" + prefix + \"1)\",\n \"transform\": \"matrix(-1 0 0 1 36 7)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M121 8h22.231v14H152v77.37h-31V8z\",\n \"fill\": \"url(#\" + prefix + \"1)\",\n \"transform\": \"translate(2 7)\"\n }\n })]), h(\"path\", {\n \"attrs\": {\n \"fill\": \"url(#\" + prefix + \"7)\",\n \"d\": \"M0 139h160v21H0z\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M37 18a7 7 0 013 13.326v26.742c0 1.23-.997 2.227-2.227 2.227h-1.546A2.227 2.227 0 0134 58.068V31.326A7 7 0 0137 18z\",\n \"fill\": \"url(#\" + prefix + \"2)\",\n \"fill-rule\": \"nonzero\",\n \"transform\": \"translate(43 36)\"\n }\n }), h(\"g\", {\n \"attrs\": {\n \"opacity\": \".6\",\n \"stroke-linecap\": \"round\",\n \"stroke-width\": \"7\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M20.875 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12\",\n \"stroke\": \"url(#\" + prefix + \"3)\",\n \"transform\": \"translate(43 36)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M9.849 0C3.756 6.225 0 14.747 0 24.146c0 9.398 3.756 17.92 9.849 24.145\",\n \"stroke\": \"url(#\" + prefix + \"3)\",\n \"transform\": \"translate(43 36)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M57.625 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12\",\n \"stroke\": \"url(#\" + prefix + \"4)\",\n \"transform\": \"rotate(-180 76.483 42.257)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M73.216 0c-6.093 6.225-9.849 14.747-9.849 24.146 0 9.398 3.756 17.92 9.849 24.145\",\n \"stroke\": \"url(#\" + prefix + \"4)\",\n \"transform\": \"rotate(-180 89.791 42.146)\"\n }\n })]), h(\"g\", {\n \"attrs\": {\n \"transform\": \"translate(31 105)\",\n \"fill-rule\": \"nonzero\"\n }\n }, [h(\"rect\", {\n \"attrs\": {\n \"fill\": \"url(#\" + prefix + \"5)\",\n \"width\": \"98\",\n \"height\": \"34\",\n \"rx\": \"2\"\n }\n }), h(\"rect\", {\n \"attrs\": {\n \"fill\": \"#FFF\",\n \"x\": \"9\",\n \"y\": \"8\",\n \"width\": \"80\",\n \"height\": \"18\",\n \"rx\": \"1.114\"\n }\n }), h(\"rect\", {\n \"attrs\": {\n \"fill\": \"url(#\" + prefix + \"6)\",\n \"x\": \"15\",\n \"y\": \"12\",\n \"width\": \"18\",\n \"height\": \"6\",\n \"rx\": \"1.114\"\n }\n })])])]);\n }\n};","import { addUnit, createNamespace } from '../utils';\nimport Network from './Network';\n\nvar _createNamespace = createNamespace('empty'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar PRESETS = ['error', 'search', 'default'];\nexport default createComponent({\n props: {\n imageSize: [Number, String],\n description: String,\n image: {\n type: String,\n default: 'default'\n }\n },\n methods: {\n genImageContent: function genImageContent() {\n var h = this.$createElement;\n var slots = this.slots('image');\n\n if (slots) {\n return slots;\n }\n\n if (this.image === 'network') {\n return h(Network);\n }\n\n var image = this.image;\n\n if (PRESETS.indexOf(image) !== -1) {\n image = \"https://img01.yzcdn.cn/vant/empty-image-\" + image + \".png\";\n }\n\n return h(\"img\", {\n \"attrs\": {\n \"src\": image\n }\n });\n },\n genImage: function genImage() {\n var h = this.$createElement;\n var imageStyle = {\n width: addUnit(this.imageSize),\n height: addUnit(this.imageSize)\n };\n return h(\"div\", {\n \"class\": bem('image'),\n \"style\": imageStyle\n }, [this.genImageContent()]);\n },\n genDescription: function genDescription() {\n var h = this.$createElement;\n var description = this.slots('description') || this.description;\n\n if (description) {\n return h(\"p\", {\n \"class\": bem('description')\n }, [description]);\n }\n },\n genBottom: function genBottom() {\n var h = this.$createElement;\n var slot = this.slots();\n\n if (slot) {\n return h(\"div\", {\n \"class\": bem('bottom')\n }, [slot]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.genImage(), this.genDescription(), this.genBottom()]);\n }\n});","import { createNamespace } from '../utils';\nimport { sortChildren } from '../utils/vnodes';\n\nvar _createNamespace = createNamespace('form'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n colon: Boolean,\n disabled: Boolean,\n readonly: Boolean,\n labelWidth: [Number, String],\n labelAlign: String,\n inputAlign: String,\n scrollToError: Boolean,\n validateFirst: Boolean,\n errorMessageAlign: String,\n submitOnEnter: {\n type: Boolean,\n default: true\n },\n validateTrigger: {\n type: String,\n default: 'onBlur'\n },\n showError: {\n type: Boolean,\n default: true\n },\n showErrorMessage: {\n type: Boolean,\n default: true\n }\n },\n provide: function provide() {\n return {\n vanForm: this\n };\n },\n data: function data() {\n return {\n fields: []\n };\n },\n methods: {\n getFieldsByNames: function getFieldsByNames(names) {\n if (names) {\n return this.fields.filter(function (field) {\n return names.indexOf(field.name) !== -1;\n });\n }\n\n return this.fields;\n },\n validateSeq: function validateSeq(names) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var errors = [];\n\n var fields = _this.getFieldsByNames(names);\n\n fields.reduce(function (promise, field) {\n return promise.then(function () {\n if (!errors.length) {\n return field.validate().then(function (error) {\n if (error) {\n errors.push(error);\n }\n });\n }\n });\n }, Promise.resolve()).then(function () {\n if (errors.length) {\n reject(errors);\n } else {\n resolve();\n }\n });\n });\n },\n validateFields: function validateFields(names) {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n var fields = _this2.getFieldsByNames(names);\n\n Promise.all(fields.map(function (item) {\n return item.validate();\n })).then(function (errors) {\n errors = errors.filter(function (item) {\n return item;\n });\n\n if (errors.length) {\n reject(errors);\n } else {\n resolve();\n }\n });\n });\n },\n // @exposed-api\n validate: function validate(name) {\n if (name && !Array.isArray(name)) {\n return this.validateField(name);\n }\n\n return this.validateFirst ? this.validateSeq(name) : this.validateFields(name);\n },\n validateField: function validateField(name) {\n var matched = this.fields.filter(function (item) {\n return item.name === name;\n });\n\n if (matched.length) {\n return new Promise(function (resolve, reject) {\n matched[0].validate().then(function (error) {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n });\n }\n\n return Promise.reject();\n },\n // @exposed-api\n resetValidation: function resetValidation(name) {\n if (name && !Array.isArray(name)) {\n name = [name];\n }\n\n var fields = this.getFieldsByNames(name);\n fields.forEach(function (item) {\n item.resetValidation();\n });\n },\n // @exposed-api\n scrollToField: function scrollToField(name, options) {\n this.fields.some(function (item) {\n if (item.name === name) {\n item.$el.scrollIntoView(options);\n return true;\n }\n\n return false;\n });\n },\n addField: function addField(field) {\n this.fields.push(field);\n sortChildren(this.fields, this);\n },\n removeField: function removeField(field) {\n this.fields = this.fields.filter(function (item) {\n return item !== field;\n });\n },\n getValues: function getValues() {\n return this.fields.reduce(function (form, field) {\n form[field.name] = field.formValue;\n return form;\n }, {});\n },\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n this.submit();\n },\n // @exposed-api\n submit: function submit() {\n var _this3 = this;\n\n var values = this.getValues();\n this.validate().then(function () {\n _this3.$emit('submit', values);\n }).catch(function (errors) {\n _this3.$emit('failed', {\n values: values,\n errors: errors\n });\n\n if (_this3.scrollToError) {\n _this3.scrollToField(errors[0].name);\n }\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"form\", {\n \"class\": bem(),\n \"on\": {\n \"submit\": this.onSubmit\n }\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { route, routeProps } from '../utils/router';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Info from '../info';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('goods-action-icon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGoodsAction')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n text: String,\n icon: String,\n color: String,\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n iconClass: null\n }),\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n },\n genIcon: function genIcon() {\n var _this$badge;\n\n var h = this.$createElement;\n var slot = this.slots('icon');\n var info = (_this$badge = this.badge) != null ? _this$badge : this.info;\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] GoodsActionIcon: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n if (slot) {\n return h(\"div\", {\n \"class\": bem('icon')\n }, [slot, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": info\n }\n })]);\n }\n\n return h(Icon, {\n \"class\": [bem('icon'), this.iconClass],\n \"attrs\": {\n \"tag\": \"div\",\n \"dot\": this.dot,\n \"name\": this.icon,\n \"badge\": info,\n \"color\": this.color\n }\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"class\": bem(),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genIcon(), this.slots() || this.text]);\n }\n});","import { createNamespace, addUnit } from '../utils';\nimport { BORDER_TOP } from '../utils/constant';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('grid'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanGrid')],\n props: {\n square: Boolean,\n gutter: [Number, String],\n iconSize: [Number, String],\n direction: String,\n clickable: Boolean,\n columnNum: {\n type: [Number, String],\n default: 4\n },\n center: {\n type: Boolean,\n default: true\n },\n border: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n style: function style() {\n var gutter = this.gutter;\n\n if (gutter) {\n return {\n paddingLeft: addUnit(gutter)\n };\n }\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n return h(\"div\", {\n \"style\": this.style,\n \"class\": [bem(), (_ref = {}, _ref[BORDER_TOP] = this.border && !this.gutter, _ref)]\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { BORDER } from '../utils/constant';\nimport { route, routeProps } from '../utils/router'; // Mixins\n\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Info from '../info';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('grid-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGrid')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n text: String,\n icon: String,\n iconPrefix: String,\n // @deprecated\n info: [Number, String],\n badge: [Number, String]\n }),\n computed: {\n style: function style() {\n var _this$parent = this.parent,\n square = _this$parent.square,\n gutter = _this$parent.gutter,\n columnNum = _this$parent.columnNum;\n var percent = 100 / columnNum + \"%\";\n var style = {\n flexBasis: percent\n };\n\n if (square) {\n style.paddingTop = percent;\n } else if (gutter) {\n var gutterValue = addUnit(gutter);\n style.paddingRight = gutterValue;\n\n if (this.index >= columnNum) {\n style.marginTop = gutterValue;\n }\n }\n\n return style;\n },\n contentStyle: function contentStyle() {\n var _this$parent2 = this.parent,\n square = _this$parent2.square,\n gutter = _this$parent2.gutter;\n\n if (square && gutter) {\n var gutterValue = addUnit(gutter);\n return {\n right: gutterValue,\n bottom: gutterValue,\n height: 'auto'\n };\n }\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n },\n genIcon: function genIcon() {\n var _this$badge;\n\n var h = this.$createElement;\n var iconSlot = this.slots('icon');\n var info = (_this$badge = this.badge) != null ? _this$badge : this.info;\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] GridItem: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n if (iconSlot) {\n return h(\"div\", {\n \"class\": bem('icon-wrapper')\n }, [iconSlot, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": info\n }\n })]);\n }\n\n if (this.icon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": this.icon,\n \"dot\": this.dot,\n \"badge\": info,\n \"size\": this.parent.iconSize,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('icon')\n });\n }\n },\n getText: function getText() {\n var h = this.$createElement;\n var textSlot = this.slots('text');\n\n if (textSlot) {\n return textSlot;\n }\n\n if (this.text) {\n return h(\"span\", {\n \"class\": bem('text')\n }, [this.text]);\n }\n },\n genContent: function genContent() {\n var slot = this.slots();\n\n if (slot) {\n return slot;\n }\n\n return [this.genIcon(), this.getText()];\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var _this$parent3 = this.parent,\n center = _this$parent3.center,\n border = _this$parent3.border,\n square = _this$parent3.square,\n gutter = _this$parent3.gutter,\n direction = _this$parent3.direction,\n clickable = _this$parent3.clickable;\n return h(\"div\", {\n \"class\": [bem({\n square: square\n })],\n \"style\": this.style\n }, [h(\"div\", {\n \"style\": this.contentStyle,\n \"attrs\": {\n \"role\": clickable ? 'button' : null,\n \"tabindex\": clickable ? 0 : null\n },\n \"class\": [bem('content', [direction, {\n center: center,\n square: square,\n clickable: clickable,\n surround: border && gutter\n }]), (_ref = {}, _ref[BORDER] = border, _ref)],\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genContent()])]);\n }\n});","import { createNamespace } from '../utils';\n\nvar _createNamespace = createNamespace('image-preview'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport { createComponent, bem };","// Utils\nimport { createNamespace } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { preventDefault } from '../utils/dom/event';\nimport { doubleRaf } from '../utils/dom/raf';\nimport { range } from '../utils/format/number'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('swipe'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [TouchMixin, ParentMixin('vanSwipe'), BindEventMixin(function (bind, isBind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n bind(window, 'visibilitychange', this.onVisibilityChange);\n\n if (isBind) {\n this.initialize();\n } else {\n this.clear();\n }\n })],\n props: {\n width: [Number, String],\n height: [Number, String],\n autoplay: [Number, String],\n vertical: Boolean,\n lazyRender: Boolean,\n indicatorColor: String,\n loop: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 500\n },\n touchable: {\n type: Boolean,\n default: true\n },\n initialSwipe: {\n type: [Number, String],\n default: 0\n },\n showIndicators: {\n type: Boolean,\n default: true\n },\n stopPropagation: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n rect: null,\n offset: 0,\n active: 0,\n deltaX: 0,\n deltaY: 0,\n swiping: false,\n computedWidth: 0,\n computedHeight: 0\n };\n },\n watch: {\n children: function children() {\n this.initialize();\n },\n initialSwipe: function initialSwipe() {\n this.initialize();\n },\n autoplay: function autoplay(_autoplay) {\n if (_autoplay > 0) {\n this.autoPlay();\n } else {\n this.clear();\n }\n }\n },\n computed: {\n count: function count() {\n return this.children.length;\n },\n maxCount: function maxCount() {\n return Math.ceil(Math.abs(this.minOffset) / this.size);\n },\n delta: function delta() {\n return this.vertical ? this.deltaY : this.deltaX;\n },\n size: function size() {\n return this[this.vertical ? 'computedHeight' : 'computedWidth'];\n },\n trackSize: function trackSize() {\n return this.count * this.size;\n },\n activeIndicator: function activeIndicator() {\n return (this.active + this.count) % this.count;\n },\n isCorrectDirection: function isCorrectDirection() {\n var expect = this.vertical ? 'vertical' : 'horizontal';\n return this.direction === expect;\n },\n trackStyle: function trackStyle() {\n var style = {\n transitionDuration: (this.swiping ? 0 : this.duration) + \"ms\",\n transform: \"translate\" + (this.vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\"\n };\n\n if (this.size) {\n var mainAxis = this.vertical ? 'height' : 'width';\n var crossAxis = this.vertical ? 'width' : 'height';\n style[mainAxis] = this.trackSize + \"px\";\n style[crossAxis] = this[crossAxis] ? this[crossAxis] + \"px\" : '';\n }\n\n return style;\n },\n indicatorStyle: function indicatorStyle() {\n return {\n backgroundColor: this.indicatorColor\n };\n },\n minOffset: function minOffset() {\n return (this.vertical ? this.rect.height : this.rect.width) - this.size * this.count;\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$refs.track);\n },\n methods: {\n // initialize swipe position\n initialize: function initialize(active) {\n if (active === void 0) {\n active = +this.initialSwipe;\n }\n\n if (!this.$el || isHidden(this.$el)) {\n return;\n }\n\n clearTimeout(this.timer);\n var rect = {\n width: this.$el.offsetWidth,\n height: this.$el.offsetHeight\n };\n this.rect = rect;\n this.swiping = true;\n this.active = active;\n this.computedWidth = +this.width || rect.width;\n this.computedHeight = +this.height || rect.height;\n this.offset = this.getTargetOffset(active);\n this.children.forEach(function (swipe) {\n swipe.offset = 0;\n });\n this.autoPlay();\n },\n // @exposed-api\n resize: function resize() {\n this.initialize(this.activeIndicator);\n },\n onVisibilityChange: function onVisibilityChange() {\n if (document.hidden) {\n this.clear();\n } else {\n this.autoPlay();\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (!this.touchable) return;\n this.clear();\n this.touchStartTime = Date.now();\n this.touchStart(event);\n this.correctPosition();\n },\n onTouchMove: function onTouchMove(event) {\n if (!this.touchable || !this.swiping) return;\n this.touchMove(event);\n\n if (this.isCorrectDirection) {\n preventDefault(event, this.stopPropagation);\n this.move({\n offset: this.delta\n });\n }\n },\n onTouchEnd: function onTouchEnd() {\n if (!this.touchable || !this.swiping) return;\n var size = this.size,\n delta = this.delta;\n var duration = Date.now() - this.touchStartTime;\n var speed = delta / duration;\n var shouldSwipe = Math.abs(speed) > 0.25 || Math.abs(delta) > size / 2;\n\n if (shouldSwipe && this.isCorrectDirection) {\n var offset = this.vertical ? this.offsetY : this.offsetX;\n var pace = 0;\n\n if (this.loop) {\n pace = offset > 0 ? delta > 0 ? -1 : 1 : 0;\n } else {\n pace = -Math[delta > 0 ? 'ceil' : 'floor'](delta / size);\n }\n\n this.move({\n pace: pace,\n emitChange: true\n });\n } else if (delta) {\n this.move({\n pace: 0\n });\n }\n\n this.swiping = false;\n this.autoPlay();\n },\n getTargetActive: function getTargetActive(pace) {\n var active = this.active,\n count = this.count,\n maxCount = this.maxCount;\n\n if (pace) {\n if (this.loop) {\n return range(active + pace, -1, count);\n }\n\n return range(active + pace, 0, maxCount);\n }\n\n return active;\n },\n getTargetOffset: function getTargetOffset(targetActive, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n var currentPosition = targetActive * this.size;\n\n if (!this.loop) {\n currentPosition = Math.min(currentPosition, -this.minOffset);\n }\n\n var targetOffset = offset - currentPosition;\n\n if (!this.loop) {\n targetOffset = range(targetOffset, this.minOffset, 0);\n }\n\n return targetOffset;\n },\n move: function move(_ref) {\n var _ref$pace = _ref.pace,\n pace = _ref$pace === void 0 ? 0 : _ref$pace,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? 0 : _ref$offset,\n emitChange = _ref.emitChange;\n var loop = this.loop,\n count = this.count,\n active = this.active,\n children = this.children,\n trackSize = this.trackSize,\n minOffset = this.minOffset;\n\n if (count <= 1) {\n return;\n }\n\n var targetActive = this.getTargetActive(pace);\n var targetOffset = this.getTargetOffset(targetActive, offset); // auto move first and last swipe in loop mode\n\n if (loop) {\n if (children[0] && targetOffset !== minOffset) {\n var outRightBound = targetOffset < minOffset;\n children[0].offset = outRightBound ? trackSize : 0;\n }\n\n if (children[count - 1] && targetOffset !== 0) {\n var outLeftBound = targetOffset > 0;\n children[count - 1].offset = outLeftBound ? -trackSize : 0;\n }\n }\n\n this.active = targetActive;\n this.offset = targetOffset;\n\n if (emitChange && targetActive !== active) {\n this.$emit('change', this.activeIndicator);\n }\n },\n // @exposed-api\n prev: function prev() {\n var _this = this;\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n _this.swiping = false;\n\n _this.move({\n pace: -1,\n emitChange: true\n });\n });\n },\n // @exposed-api\n next: function next() {\n var _this2 = this;\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n _this2.swiping = false;\n\n _this2.move({\n pace: 1,\n emitChange: true\n });\n });\n },\n // @exposed-api\n swipeTo: function swipeTo(index, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n var targetIndex;\n\n if (_this3.loop && index === _this3.count) {\n targetIndex = _this3.active === 0 ? 0 : index;\n } else {\n targetIndex = index % _this3.count;\n }\n\n if (options.immediate) {\n doubleRaf(function () {\n _this3.swiping = false;\n });\n } else {\n _this3.swiping = false;\n }\n\n _this3.move({\n pace: targetIndex - _this3.active,\n emitChange: true\n });\n });\n },\n correctPosition: function correctPosition() {\n this.swiping = true;\n\n if (this.active <= -1) {\n this.move({\n pace: this.count\n });\n }\n\n if (this.active >= this.count) {\n this.move({\n pace: -this.count\n });\n }\n },\n clear: function clear() {\n clearTimeout(this.timer);\n },\n autoPlay: function autoPlay() {\n var _this4 = this;\n\n var autoplay = this.autoplay;\n\n if (autoplay > 0 && this.count > 1) {\n this.clear();\n this.timer = setTimeout(function () {\n _this4.next();\n\n _this4.autoPlay();\n }, autoplay);\n }\n },\n genIndicator: function genIndicator() {\n var _this5 = this;\n\n var h = this.$createElement;\n var count = this.count,\n activeIndicator = this.activeIndicator;\n var slot = this.slots('indicator');\n\n if (slot) {\n return slot;\n }\n\n if (this.showIndicators && count > 1) {\n return h(\"div\", {\n \"class\": bem('indicators', {\n vertical: this.vertical\n })\n }, [Array.apply(void 0, Array(count)).map(function (empty, index) {\n return h(\"i\", {\n \"class\": bem('indicator', {\n active: index === activeIndicator\n }),\n \"style\": index === activeIndicator ? _this5.indicatorStyle : null\n });\n })]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"track\",\n \"style\": this.trackStyle,\n \"class\": bem('track', {\n vertical: this.vertical\n })\n }, [this.slots()]), this.genIndicator()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('swipe-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSwipe')],\n data: function data() {\n return {\n offset: 0,\n inited: false,\n mounted: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.mounted = true;\n });\n },\n computed: {\n style: function style() {\n var style = {};\n var _this$parent = this.parent,\n size = _this$parent.size,\n vertical = _this$parent.vertical;\n\n if (size) {\n style[vertical ? 'height' : 'width'] = size + \"px\";\n }\n\n if (this.offset) {\n style.transform = \"translate\" + (vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\";\n }\n\n return style;\n },\n shouldRender: function shouldRender() {\n var index = this.index,\n inited = this.inited,\n parent = this.parent,\n mounted = this.mounted;\n\n if (!parent.lazyRender || inited) {\n return true;\n } // wait for all item to mount, so we can get the exact count\n\n\n if (!mounted) {\n return false;\n }\n\n var active = parent.activeIndicator;\n var maxActive = parent.count - 1;\n var prevActive = active === 0 && parent.loop ? maxActive : active - 1;\n var nextActive = active === maxActive && parent.loop ? 0 : active + 1;\n var shouldRender = index === active || index === prevActive || index === nextActive;\n\n if (shouldRender) {\n this.inited = true;\n }\n\n return shouldRender;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style,\n \"on\": _extends({}, this.$listeners)\n }, [this.shouldRender && this.slots()]);\n }\n});","// Utils\nimport { bem } from './shared';\nimport { range } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch'; // Component\n\nimport Image from '../image';\nimport Loading from '../loading';\nimport SwipeItem from '../swipe-item';\n\nfunction getDistance(touches) {\n return Math.sqrt(Math.pow(touches[0].clientX - touches[1].clientX, 2) + Math.pow(touches[0].clientY - touches[1].clientY, 2));\n}\n\nexport default {\n mixins: [TouchMixin],\n props: {\n src: String,\n show: Boolean,\n active: Number,\n minZoom: [Number, String],\n maxZoom: [Number, String],\n rootWidth: Number,\n rootHeight: Number\n },\n data: function data() {\n return {\n scale: 1,\n moveX: 0,\n moveY: 0,\n moving: false,\n zooming: false,\n imageRatio: 0,\n displayWidth: 0,\n displayHeight: 0\n };\n },\n computed: {\n vertical: function vertical() {\n var rootWidth = this.rootWidth,\n rootHeight = this.rootHeight;\n var rootRatio = rootHeight / rootWidth;\n return this.imageRatio > rootRatio;\n },\n imageStyle: function imageStyle() {\n var scale = this.scale;\n var style = {\n transitionDuration: this.zooming || this.moving ? '0s' : '.3s'\n };\n\n if (scale !== 1) {\n var offsetX = this.moveX / scale;\n var offsetY = this.moveY / scale;\n style.transform = \"scale(\" + scale + \", \" + scale + \") translate(\" + offsetX + \"px, \" + offsetY + \"px)\";\n }\n\n return style;\n },\n maxMoveX: function maxMoveX() {\n if (this.imageRatio) {\n var displayWidth = this.vertical ? this.rootHeight / this.imageRatio : this.rootWidth;\n return Math.max(0, (this.scale * displayWidth - this.rootWidth) / 2);\n }\n\n return 0;\n },\n maxMoveY: function maxMoveY() {\n if (this.imageRatio) {\n var displayHeight = this.vertical ? this.rootHeight : this.rootWidth * this.imageRatio;\n return Math.max(0, (this.scale * displayHeight - this.rootHeight) / 2);\n }\n\n return 0;\n }\n },\n watch: {\n active: 'resetScale',\n show: function show(val) {\n if (!val) {\n this.resetScale();\n }\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n resetScale: function resetScale() {\n this.setScale(1);\n this.moveX = 0;\n this.moveY = 0;\n },\n setScale: function setScale(scale) {\n scale = range(scale, +this.minZoom, +this.maxZoom);\n\n if (scale !== this.scale) {\n this.scale = scale;\n this.$emit('scale', {\n scale: this.scale,\n index: this.active\n });\n }\n },\n toggleScale: function toggleScale() {\n var scale = this.scale > 1 ? 1 : 2;\n this.setScale(scale);\n this.moveX = 0;\n this.moveY = 0;\n },\n onTouchStart: function onTouchStart(event) {\n var touches = event.touches;\n var _this$offsetX = this.offsetX,\n offsetX = _this$offsetX === void 0 ? 0 : _this$offsetX;\n this.touchStart(event);\n this.touchStartTime = new Date();\n this.fingerNum = touches.length;\n this.startMoveX = this.moveX;\n this.startMoveY = this.moveY;\n this.moving = this.fingerNum === 1 && this.scale !== 1;\n this.zooming = this.fingerNum === 2 && !offsetX;\n\n if (this.zooming) {\n this.startScale = this.scale;\n this.startDistance = getDistance(event.touches);\n }\n },\n onTouchMove: function onTouchMove(event) {\n var touches = event.touches;\n this.touchMove(event);\n\n if (this.moving || this.zooming) {\n preventDefault(event, true);\n }\n\n if (this.moving) {\n var moveX = this.deltaX + this.startMoveX;\n var moveY = this.deltaY + this.startMoveY;\n this.moveX = range(moveX, -this.maxMoveX, this.maxMoveX);\n this.moveY = range(moveY, -this.maxMoveY, this.maxMoveY);\n }\n\n if (this.zooming && touches.length === 2) {\n var distance = getDistance(touches);\n var scale = this.startScale * distance / this.startDistance;\n this.setScale(scale);\n }\n },\n onTouchEnd: function onTouchEnd(event) {\n var stopPropagation = false;\n /* istanbul ignore else */\n\n if (this.moving || this.zooming) {\n stopPropagation = true;\n\n if (this.moving && this.startMoveX === this.moveX && this.startMoveY === this.moveY) {\n stopPropagation = false;\n }\n\n if (!event.touches.length) {\n if (this.zooming) {\n this.moveX = range(this.moveX, -this.maxMoveX, this.maxMoveX);\n this.moveY = range(this.moveY, -this.maxMoveY, this.maxMoveY);\n this.zooming = false;\n }\n\n this.moving = false;\n this.startMoveX = 0;\n this.startMoveY = 0;\n this.startScale = 1;\n\n if (this.scale < 1) {\n this.resetScale();\n }\n }\n } // eliminate tap delay on safari\n\n\n preventDefault(event, stopPropagation);\n this.checkTap();\n this.resetTouchStatus();\n },\n checkTap: function checkTap() {\n var _this = this;\n\n if (this.fingerNum > 1) {\n return;\n }\n\n var _this$offsetX2 = this.offsetX,\n offsetX = _this$offsetX2 === void 0 ? 0 : _this$offsetX2,\n _this$offsetY = this.offsetY,\n offsetY = _this$offsetY === void 0 ? 0 : _this$offsetY;\n var deltaTime = new Date() - this.touchStartTime;\n var TAP_TIME = 250;\n var TAP_OFFSET = 5;\n\n if (offsetX < TAP_OFFSET && offsetY < TAP_OFFSET && deltaTime < TAP_TIME) {\n if (this.doubleTapTimer) {\n clearTimeout(this.doubleTapTimer);\n this.doubleTapTimer = null;\n this.toggleScale();\n } else {\n this.doubleTapTimer = setTimeout(function () {\n _this.$emit('close');\n\n _this.doubleTapTimer = null;\n }, TAP_TIME);\n }\n }\n },\n onLoad: function onLoad(event) {\n var _event$target = event.target,\n naturalWidth = _event$target.naturalWidth,\n naturalHeight = _event$target.naturalHeight;\n this.imageRatio = naturalHeight / naturalWidth;\n }\n },\n render: function render() {\n var h = arguments[0];\n var imageSlots = {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\"\n }\n });\n }\n };\n return h(SwipeItem, {\n \"class\": bem('swipe-item')\n }, [h(Image, {\n \"attrs\": {\n \"src\": this.src,\n \"fit\": \"contain\"\n },\n \"class\": bem('image', {\n vertical: this.vertical\n }),\n \"style\": this.imageStyle,\n \"scopedSlots\": imageSlots,\n \"on\": {\n \"load\": this.onLoad\n }\n })]);\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueImagePreview from './ImagePreview';\nimport { isServer } from '../utils';\nvar instance;\nvar defaultConfig = {\n loop: true,\n value: true,\n images: [],\n maxZoom: 3,\n minZoom: 1 / 3,\n onClose: null,\n onChange: null,\n className: '',\n showIndex: true,\n closeable: false,\n closeIcon: 'clear',\n asyncClose: false,\n transition: 'van-fade',\n getContainer: 'body',\n overlayStyle: null,\n startPosition: 0,\n swipeDuration: 300,\n showIndicators: false,\n closeOnPopstate: true,\n closeIconPosition: 'top-right'\n};\n\nvar initInstance = function initInstance() {\n instance = new (Vue.extend(VueImagePreview))({\n el: document.createElement('div')\n });\n document.body.appendChild(instance.$el);\n instance.$on('change', function (index) {\n if (instance.onChange) {\n instance.onChange(index);\n }\n });\n instance.$on('scale', function (data) {\n if (instance.onScale) {\n instance.onScale(data);\n }\n });\n};\n\nvar ImagePreview = function ImagePreview(images, startPosition) {\n if (startPosition === void 0) {\n startPosition = 0;\n }\n\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n initInstance();\n }\n\n var options = Array.isArray(images) ? {\n images: images,\n startPosition: startPosition\n } : images;\n\n _extends(instance, defaultConfig, options);\n\n instance.$once('input', function (show) {\n instance.value = show;\n });\n instance.$once('closed', function () {\n instance.images = [];\n });\n\n if (options.onClose) {\n instance.$off('close');\n instance.$once('close', options.onClose);\n }\n\n return instance;\n};\n\nImagePreview.Component = VueImagePreview;\n\nImagePreview.install = function () {\n Vue.use(VueImagePreview);\n};\n\nexport default ImagePreview;","// Utils\nimport { bem, createComponent } from './shared'; // Mixins\n\nimport { PopupMixin } from '../mixins/popup';\nimport { TouchMixin } from '../mixins/touch';\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Icon from '../icon';\nimport Swipe from '../swipe';\nimport ImagePreviewItem from './ImagePreviewItem';\nexport default createComponent({\n mixins: [TouchMixin, PopupMixin({\n skipToggleEvent: true\n }), BindEventMixin(function (bind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n })],\n props: {\n className: null,\n closeable: Boolean,\n asyncClose: Boolean,\n overlayStyle: Object,\n showIndicators: Boolean,\n images: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n loop: {\n type: Boolean,\n default: true\n },\n overlay: {\n type: Boolean,\n default: true\n },\n minZoom: {\n type: [Number, String],\n default: 1 / 3\n },\n maxZoom: {\n type: [Number, String],\n default: 3\n },\n transition: {\n type: String,\n default: 'van-fade'\n },\n showIndex: {\n type: Boolean,\n default: true\n },\n swipeDuration: {\n type: [Number, String],\n default: 300\n },\n startPosition: {\n type: [Number, String],\n default: 0\n },\n overlayClass: {\n type: String,\n default: bem('overlay')\n },\n closeIcon: {\n type: String,\n default: 'clear'\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n }\n },\n data: function data() {\n return {\n active: 0,\n rootWidth: 0,\n rootHeight: 0,\n doubleClickTimer: null\n };\n },\n mounted: function mounted() {\n this.resize();\n },\n watch: {\n startPosition: 'setActive',\n value: function value(val) {\n var _this = this;\n\n if (val) {\n this.setActive(+this.startPosition);\n this.$nextTick(function () {\n _this.resize();\n\n _this.$refs.swipe.swipeTo(+_this.startPosition, {\n immediate: true\n });\n });\n } else {\n this.$emit('close', {\n index: this.active,\n url: this.images[this.active]\n });\n }\n }\n },\n methods: {\n resize: function resize() {\n if (this.$el && this.$el.getBoundingClientRect) {\n var rect = this.$el.getBoundingClientRect();\n this.rootWidth = rect.width;\n this.rootHeight = rect.height;\n }\n },\n emitClose: function emitClose() {\n if (!this.asyncClose) {\n this.$emit('input', false);\n }\n },\n emitScale: function emitScale(args) {\n this.$emit('scale', args);\n },\n setActive: function setActive(active) {\n if (active !== this.active) {\n this.active = active;\n this.$emit('change', active);\n }\n },\n genIndex: function genIndex() {\n var h = this.$createElement;\n\n if (this.showIndex) {\n return h(\"div\", {\n \"class\": bem('index')\n }, [this.slots('index', {\n index: this.active\n }) || this.active + 1 + \" / \" + this.images.length]);\n }\n },\n genCover: function genCover() {\n var h = this.$createElement;\n var cover = this.slots('cover');\n\n if (cover) {\n return h(\"div\", {\n \"class\": bem('cover')\n }, [cover]);\n }\n },\n genImages: function genImages() {\n var _this2 = this;\n\n var h = this.$createElement;\n return h(Swipe, {\n \"ref\": \"swipe\",\n \"attrs\": {\n \"lazyRender\": true,\n \"loop\": this.loop,\n \"duration\": this.swipeDuration,\n \"initialSwipe\": this.startPosition,\n \"showIndicators\": this.showIndicators,\n \"indicatorColor\": \"white\"\n },\n \"class\": bem('swipe'),\n \"on\": {\n \"change\": this.setActive\n }\n }, [this.images.map(function (image) {\n return h(ImagePreviewItem, {\n \"attrs\": {\n \"src\": image,\n \"show\": _this2.value,\n \"active\": _this2.active,\n \"maxZoom\": _this2.maxZoom,\n \"minZoom\": _this2.minZoom,\n \"rootWidth\": _this2.rootWidth,\n \"rootHeight\": _this2.rootHeight\n },\n \"on\": {\n \"scale\": _this2.emitScale,\n \"close\": _this2.emitClose\n }\n });\n })]);\n },\n genClose: function genClose() {\n var h = this.$createElement;\n\n if (this.closeable) {\n return h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.emitClose\n }\n });\n }\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n // @exposed-api\n swipeTo: function swipeTo(index, options) {\n if (this.$refs.swipe) {\n this.$refs.swipe.swipeTo(index, options);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterLeave\": this.onClosed\n }\n }, [this.shouldRender ? h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem(), this.className]\n }, [this.genClose(), this.genImages(), this.genIndex(), this.genCover()]) : null]);\n }\n});","import { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\nimport { BORDER_BOTTOM } from '../utils/constant';\nimport { getScrollTop, getRootScrollTop } from '../utils/dom/scroll';\n\nvar _createNamespace = createNamespace('index-anchor'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanIndexBar', {\n indexKey: 'childrenIndex'\n })],\n props: {\n index: [Number, String]\n },\n data: function data() {\n return {\n top: 0,\n left: null,\n rect: {\n top: 0,\n height: 0\n },\n width: null,\n active: false\n };\n },\n computed: {\n sticky: function sticky() {\n return this.active && this.parent.sticky;\n },\n anchorStyle: function anchorStyle() {\n if (this.sticky) {\n return {\n zIndex: \"\" + this.parent.zIndex,\n left: this.left ? this.left + \"px\" : null,\n width: this.width ? this.width + \"px\" : null,\n transform: \"translate3d(0, \" + this.top + \"px, 0)\",\n color: this.parent.highlightColor\n };\n }\n }\n },\n mounted: function mounted() {\n var rect = this.$el.getBoundingClientRect();\n this.rect.height = rect.height;\n },\n methods: {\n scrollIntoView: function scrollIntoView() {\n this.$el.scrollIntoView();\n },\n getRect: function getRect(scroller, scrollerRect) {\n var el = this.$el;\n var elRect = el.getBoundingClientRect();\n this.rect.height = elRect.height;\n\n if (scroller === window || scroller === document.body) {\n this.rect.top = elRect.top + getRootScrollTop();\n } else {\n this.rect.top = elRect.top + getScrollTop(scroller) - scrollerRect.top;\n }\n\n return this.rect;\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var sticky = this.sticky;\n return h(\"div\", {\n \"style\": {\n height: sticky ? this.rect.height + \"px\" : null\n }\n }, [h(\"div\", {\n \"style\": this.anchorStyle,\n \"class\": [bem({\n sticky: sticky\n }), (_ref = {}, _ref[BORDER_BOTTOM] = sticky, _ref)]\n }, [this.slots('default') || this.index])]);\n }\n});","// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { preventDefault } from '../utils/dom/event';\nimport { getScroller, getScrollTop, getRootScrollTop, setRootScrollTop } from '../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nfunction genAlphabet() {\n var indexList = [];\n var charCodeOfA = 'A'.charCodeAt(0);\n\n for (var i = 0; i < 26; i++) {\n indexList.push(String.fromCharCode(charCodeOfA + i));\n }\n\n return indexList;\n}\n\nvar _createNamespace = createNamespace('index-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [TouchMixin, ParentMixin('vanIndexBar'), BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(this.scroller, 'scroll', this.onScroll);\n })],\n props: {\n zIndex: [Number, String],\n highlightColor: String,\n sticky: {\n type: Boolean,\n default: true\n },\n stickyOffsetTop: {\n type: Number,\n default: 0\n },\n indexList: {\n type: Array,\n default: genAlphabet\n }\n },\n data: function data() {\n return {\n activeAnchorIndex: null\n };\n },\n computed: {\n sidebarStyle: function sidebarStyle() {\n if (isDef(this.zIndex)) {\n return {\n zIndex: this.zIndex + 1\n };\n }\n },\n highlightStyle: function highlightStyle() {\n var highlightColor = this.highlightColor;\n\n if (highlightColor) {\n return {\n color: highlightColor\n };\n }\n }\n },\n watch: {\n indexList: function indexList() {\n this.$nextTick(this.onScroll);\n },\n activeAnchorIndex: function activeAnchorIndex(value) {\n if (value) {\n this.$emit('change', value);\n }\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this = this;\n\n if (isHidden(this.$el)) {\n return;\n }\n\n var scrollTop = getScrollTop(this.scroller);\n var scrollerRect = this.getScrollerRect();\n var rects = this.children.map(function (item) {\n return item.getRect(_this.scroller, scrollerRect);\n });\n var active = this.getActiveAnchorIndex(scrollTop, rects);\n this.activeAnchorIndex = this.indexList[active];\n\n if (this.sticky) {\n this.children.forEach(function (item, index) {\n if (index === active || index === active - 1) {\n var rect = item.$el.getBoundingClientRect();\n item.left = rect.left;\n item.width = rect.width;\n } else {\n item.left = null;\n item.width = null;\n }\n\n if (index === active) {\n item.active = true;\n item.top = Math.max(_this.stickyOffsetTop, rects[index].top - scrollTop) + scrollerRect.top;\n } else if (index === active - 1) {\n var activeItemTop = rects[active].top - scrollTop;\n item.active = activeItemTop > 0;\n item.top = activeItemTop + scrollerRect.top - rects[index].height;\n } else {\n item.active = false;\n }\n });\n }\n },\n getScrollerRect: function getScrollerRect() {\n if (this.scroller.getBoundingClientRect) {\n return this.scroller.getBoundingClientRect();\n }\n\n return {\n top: 0,\n left: 0\n };\n },\n getActiveAnchorIndex: function getActiveAnchorIndex(scrollTop, rects) {\n for (var i = this.children.length - 1; i >= 0; i--) {\n var prevHeight = i > 0 ? rects[i - 1].height : 0;\n var reachTop = this.sticky ? prevHeight + this.stickyOffsetTop : 0;\n\n if (scrollTop + reachTop >= rects[i].top) {\n return i;\n }\n }\n\n return -1;\n },\n onClick: function onClick(event) {\n this.scrollToElement(event.target);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n\n if (this.direction === 'vertical') {\n preventDefault(event);\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var target = document.elementFromPoint(clientX, clientY);\n\n if (target) {\n var index = target.dataset.index;\n /* istanbul ignore else */\n\n if (this.touchActiveIndex !== index) {\n this.touchActiveIndex = index;\n this.scrollToElement(target);\n }\n }\n }\n },\n scrollTo: function scrollTo(index) {\n var match = this.children.filter(function (item) {\n return String(item.index) === index;\n });\n\n if (match[0]) {\n match[0].scrollIntoView();\n\n if (this.sticky && this.stickyOffsetTop) {\n setRootScrollTop(getRootScrollTop() - this.stickyOffsetTop);\n }\n\n this.$emit('select', match[0].index);\n }\n },\n scrollToElement: function scrollToElement(element) {\n var index = element.dataset.index;\n this.scrollTo(index);\n },\n onTouchEnd: function onTouchEnd() {\n this.active = null;\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n var Indexes = this.indexList.map(function (index) {\n var active = index === _this2.activeAnchorIndex;\n return h(\"span\", {\n \"class\": bem('index', {\n active: active\n }),\n \"style\": active ? _this2.highlightStyle : null,\n \"attrs\": {\n \"data-index\": index\n }\n }, [index]);\n });\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('sidebar'),\n \"style\": this.sidebarStyle,\n \"on\": {\n \"click\": this.onClick,\n \"touchstart\": this.touchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [Indexes]), this.slots('default')]);\n }\n});","// Utils\nimport { createNamespace } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { getScroller } from '../utils/dom/scroll'; // Mixins\n\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(this.scroller, 'scroll', this.check);\n })],\n model: {\n prop: 'loading'\n },\n props: {\n error: Boolean,\n loading: Boolean,\n finished: Boolean,\n errorText: String,\n loadingText: String,\n finishedText: String,\n immediateCheck: {\n type: Boolean,\n default: true\n },\n offset: {\n type: [Number, String],\n default: 300\n },\n direction: {\n type: String,\n default: 'down'\n }\n },\n data: function data() {\n return {\n // use sync innerLoading state to avoid repeated loading in some edge cases\n innerLoading: this.loading\n };\n },\n updated: function updated() {\n this.innerLoading = this.loading;\n },\n mounted: function mounted() {\n if (this.immediateCheck) {\n this.check();\n }\n },\n watch: {\n loading: 'check',\n finished: 'check'\n },\n methods: {\n // @exposed-api\n check: function check() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.innerLoading || _this.finished || _this.error) {\n return;\n }\n\n var el = _this.$el,\n scroller = _this.scroller,\n offset = _this.offset,\n direction = _this.direction;\n var scrollerRect;\n\n if (scroller.getBoundingClientRect) {\n scrollerRect = scroller.getBoundingClientRect();\n } else {\n scrollerRect = {\n top: 0,\n bottom: scroller.innerHeight\n };\n }\n\n var scrollerHeight = scrollerRect.bottom - scrollerRect.top;\n /* istanbul ignore next */\n\n if (!scrollerHeight || isHidden(el)) {\n return false;\n }\n\n var isReachEdge = false;\n\n var placeholderRect = _this.$refs.placeholder.getBoundingClientRect();\n\n if (direction === 'up') {\n isReachEdge = scrollerRect.top - placeholderRect.top <= offset;\n } else {\n isReachEdge = placeholderRect.bottom - scrollerRect.bottom <= offset;\n }\n\n if (isReachEdge) {\n _this.innerLoading = true;\n\n _this.$emit('input', true);\n\n _this.$emit('load');\n }\n });\n },\n clickErrorText: function clickErrorText() {\n this.$emit('update:error', false);\n this.check();\n },\n genLoading: function genLoading() {\n var h = this.$createElement;\n\n if (this.innerLoading && !this.finished) {\n return h(\"div\", {\n \"key\": \"loading\",\n \"class\": bem('loading')\n }, [this.slots('loading') || h(Loading, {\n \"attrs\": {\n \"size\": \"16\"\n }\n }, [this.loadingText || t('loading')])]);\n }\n },\n genFinishedText: function genFinishedText() {\n var h = this.$createElement;\n\n if (this.finished) {\n var text = this.slots('finished') || this.finishedText;\n\n if (text) {\n return h(\"div\", {\n \"class\": bem('finished-text')\n }, [text]);\n }\n }\n },\n genErrorText: function genErrorText() {\n var h = this.$createElement;\n\n if (this.error) {\n var text = this.slots('error') || this.errorText;\n\n if (text) {\n return h(\"div\", {\n \"on\": {\n \"click\": this.clickErrorText\n },\n \"class\": bem('error-text')\n }, [text]);\n }\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var Placeholder = h(\"div\", {\n \"ref\": \"placeholder\",\n \"key\": \"placeholder\",\n \"class\": bem('placeholder')\n });\n return h(\"div\", {\n \"class\": bem(),\n \"attrs\": {\n \"role\": \"feed\",\n \"aria-busy\": this.innerLoading\n }\n }, [this.direction === 'down' ? this.slots() : Placeholder, this.genLoading(), this.genFinishedText(), this.genErrorText(), this.direction === 'up' ? this.slots() : Placeholder]);\n }\n});","// Utils\nimport { createNamespace } from '../utils';\nimport { BORDER_BOTTOM } from '../utils/constant'; // Components\n\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('nav-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n title: String,\n fixed: Boolean,\n zIndex: [Number, String],\n leftText: String,\n rightText: String,\n leftArrow: Boolean,\n placeholder: Boolean,\n safeAreaInsetTop: Boolean,\n border: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n height: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n if (this.placeholder && this.fixed) {\n var setHeight = function setHeight() {\n _this.height = _this.$refs.navBar.getBoundingClientRect().height;\n };\n\n setHeight(); // https://github.com/vant-ui/vant/issues/10131\n\n setTimeout(setHeight, 100);\n }\n },\n methods: {\n genLeft: function genLeft() {\n var h = this.$createElement;\n var leftSlot = this.slots('left');\n\n if (leftSlot) {\n return leftSlot;\n }\n\n return [this.leftArrow && h(Icon, {\n \"class\": bem('arrow'),\n \"attrs\": {\n \"name\": \"arrow-left\"\n }\n }), this.leftText && h(\"span\", {\n \"class\": bem('text')\n }, [this.leftText])];\n },\n genRight: function genRight() {\n var h = this.$createElement;\n var rightSlot = this.slots('right');\n\n if (rightSlot) {\n return rightSlot;\n }\n\n if (this.rightText) {\n return h(\"span\", {\n \"class\": bem('text')\n }, [this.rightText]);\n }\n },\n genNavBar: function genNavBar() {\n var _ref;\n\n var h = this.$createElement;\n return h(\"div\", {\n \"ref\": \"navBar\",\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": [bem({\n fixed: this.fixed,\n 'safe-area-inset-top': this.safeAreaInsetTop\n }), (_ref = {}, _ref[BORDER_BOTTOM] = this.border, _ref)]\n }, [h(\"div\", {\n \"class\": bem('content')\n }, [this.hasLeft() && h(\"div\", {\n \"class\": bem('left'),\n \"on\": {\n \"click\": this.onClickLeft\n }\n }, [this.genLeft()]), h(\"div\", {\n \"class\": [bem('title'), 'van-ellipsis']\n }, [this.slots('title') || this.title]), this.hasRight() && h(\"div\", {\n \"class\": bem('right'),\n \"on\": {\n \"click\": this.onClickRight\n }\n }, [this.genRight()])])]);\n },\n hasLeft: function hasLeft() {\n return this.leftArrow || this.leftText || this.slots('left');\n },\n hasRight: function hasRight() {\n return this.rightText || this.slots('right');\n },\n onClickLeft: function onClickLeft(event) {\n this.$emit('click-left', event);\n },\n onClickRight: function onClickRight(event) {\n this.$emit('click-right', event);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (this.placeholder && this.fixed) {\n return h(\"div\", {\n \"class\": bem('placeholder'),\n \"style\": {\n height: this.height + \"px\"\n }\n }, [this.genNavBar()]);\n }\n\n return this.genNavBar();\n }\n});","import { createNamespace, isDef } from '../utils';\nimport { doubleRaf, raf } from '../utils/dom/raf';\nimport { BindEventMixin } from '../mixins/bind-event';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('notice-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind) {\n // fix cache issues with forwards and back history in safari\n // see: https://guwii.com/cache-issues-with-forwards-and-back-history-in-safari/\n bind(window, 'pageshow', this.reset);\n })],\n inject: {\n vanPopup: {\n default: null\n }\n },\n props: {\n text: String,\n mode: String,\n color: String,\n leftIcon: String,\n wrapable: Boolean,\n background: String,\n scrollable: {\n type: Boolean,\n default: null\n },\n delay: {\n type: [Number, String],\n default: 1\n },\n speed: {\n type: [Number, String],\n default: 60\n }\n },\n data: function data() {\n return {\n show: true,\n offset: 0,\n duration: 0,\n wrapWidth: 0,\n contentWidth: 0\n };\n },\n watch: {\n scrollable: 'reset',\n text: {\n handler: 'reset',\n immediate: true\n }\n },\n created: function created() {\n // https://github.com/vant-ui/vant/issues/8634\n if (this.vanPopup) {\n this.vanPopup.onReopen(this.reset);\n }\n },\n activated: function activated() {\n this.reset();\n },\n methods: {\n onClickIcon: function onClickIcon(event) {\n if (this.mode === 'closeable') {\n this.show = false;\n this.$emit('close', event);\n }\n },\n onTransitionEnd: function onTransitionEnd() {\n var _this = this;\n\n this.offset = this.wrapWidth;\n this.duration = 0; // wait for Vue to render offset\n // using nextTick won't work in iOS14\n\n raf(function () {\n // use double raf to ensure animation can start\n doubleRaf(function () {\n _this.offset = -_this.contentWidth;\n _this.duration = (_this.contentWidth + _this.wrapWidth) / _this.speed;\n\n _this.$emit('replay');\n });\n });\n },\n // not an exposed-api, but may used by some users\n start: function start() {\n this.reset();\n },\n // @exposed-api\n reset: function reset() {\n var _this2 = this;\n\n var delay = isDef(this.delay) ? this.delay * 1000 : 0;\n this.offset = 0;\n this.duration = 0;\n this.wrapWidth = 0;\n this.contentWidth = 0;\n clearTimeout(this.startTimer);\n this.startTimer = setTimeout(function () {\n var _this2$$refs = _this2.$refs,\n wrap = _this2$$refs.wrap,\n content = _this2$$refs.content;\n\n if (!wrap || !content || _this2.scrollable === false) {\n return;\n }\n\n var wrapWidth = wrap.getBoundingClientRect().width;\n var contentWidth = content.getBoundingClientRect().width;\n\n if (_this2.scrollable || contentWidth > wrapWidth) {\n doubleRaf(function () {\n _this2.offset = -contentWidth;\n _this2.duration = contentWidth / _this2.speed;\n _this2.wrapWidth = wrapWidth;\n _this2.contentWidth = contentWidth;\n });\n }\n }, delay);\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n var slots = this.slots,\n mode = this.mode,\n leftIcon = this.leftIcon,\n onClickIcon = this.onClickIcon;\n var barStyle = {\n color: this.color,\n background: this.background\n };\n var contentStyle = {\n transform: this.offset ? \"translateX(\" + this.offset + \"px)\" : '',\n transitionDuration: this.duration + 's'\n };\n\n function LeftIcon() {\n var slot = slots('left-icon');\n\n if (slot) {\n return slot;\n }\n\n if (leftIcon) {\n return h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": leftIcon\n }\n });\n }\n }\n\n function RightIcon() {\n var slot = slots('right-icon');\n\n if (slot) {\n return slot;\n }\n\n var iconName;\n\n if (mode === 'closeable') {\n iconName = 'cross';\n } else if (mode === 'link') {\n iconName = 'arrow';\n }\n\n if (iconName) {\n return h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": iconName\n },\n \"on\": {\n \"click\": onClickIcon\n }\n });\n }\n }\n\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"alert\"\n },\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"class\": bem({\n wrapable: this.wrapable\n }),\n \"style\": barStyle,\n \"on\": {\n \"click\": function click(event) {\n _this3.$emit('click', event);\n }\n }\n }, [LeftIcon(), h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": bem('wrap'),\n \"attrs\": {\n \"role\": \"marquee\"\n }\n }, [h(\"div\", {\n \"ref\": \"content\",\n \"class\": [bem('content'), {\n 'van-ellipsis': this.scrollable === false && !this.wrapable\n }],\n \"style\": contentStyle,\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [this.slots() || this.text])]), RightIcon()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional'; // Mixins\n\nimport { popupMixinProps } from '../mixins/popup'; // Components\n\nimport Popup from '../popup'; // Types\n\nvar _createNamespace = createNamespace('notify'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Notify(h, props, slots, ctx) {\n var style = {\n color: props.color,\n background: props.background\n };\n return h(Popup, _mergeJSXProps([{\n \"attrs\": {\n \"value\": props.value,\n \"position\": \"top\",\n \"overlay\": false,\n \"duration\": 0.2,\n \"lockScroll\": false\n },\n \"style\": style,\n \"class\": [bem([props.type]), props.className]\n }, inherit(ctx, true)]), [(slots.default == null ? void 0 : slots.default()) || props.message]);\n}\n\nNotify.props = _extends({}, popupMixinProps, {\n color: String,\n message: [Number, String],\n duration: [Number, String],\n className: null,\n background: String,\n getContainer: [String, Function],\n type: {\n type: String,\n default: 'danger'\n }\n});\nexport default createComponent(Notify);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanNotify from './Notify';\nimport { isObject, isServer } from '../utils';\nimport { mount } from '../utils/functional';\nvar timer;\nvar instance;\n\nfunction parseOptions(message) {\n return isObject(message) ? message : {\n message: message\n };\n}\n\nfunction Notify(options) {\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n instance = mount(VanNotify, {\n on: {\n click: function click(event) {\n if (instance.onClick) {\n instance.onClick(event);\n }\n },\n close: function close() {\n if (instance.onClose) {\n instance.onClose();\n }\n },\n opened: function opened() {\n if (instance.onOpened) {\n instance.onOpened();\n }\n }\n }\n });\n }\n\n options = _extends({}, Notify.currentOptions, parseOptions(options));\n\n _extends(instance, options);\n\n clearTimeout(timer);\n\n if (options.duration && options.duration > 0) {\n timer = setTimeout(Notify.clear, options.duration);\n }\n\n return instance;\n}\n\nfunction defaultOptions() {\n return {\n type: 'danger',\n value: true,\n message: '',\n color: undefined,\n background: undefined,\n duration: 3000,\n className: '',\n onClose: null,\n onClick: null,\n onOpened: null\n };\n}\n\nNotify.clear = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nNotify.currentOptions = defaultOptions();\n\nNotify.setDefaultOptions = function (options) {\n _extends(Notify.currentOptions, options);\n};\n\nNotify.resetDefaultOptions = function () {\n Notify.currentOptions = defaultOptions();\n};\n\nNotify.install = function () {\n Vue.use(VanNotify);\n};\n\nNotify.Component = VanNotify;\nVue.prototype.$notify = Notify;\nexport default Notify;","export default {\n render: function render() {\n var h = arguments[0];\n return h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 32 22\",\n \"xmlns\": \"http://www.w3.org/2000/svg\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M28.016 0A3.991 3.991 0 0132 3.987v14.026c0 2.2-1.787 3.987-3.98 3.987H10.382c-.509 0-.996-.206-1.374-.585L.89 13.09C.33 12.62 0 11.84 0 11.006c0-.86.325-1.62.887-2.08L9.01.585A1.936 1.936 0 0110.383 0zm0 1.947H10.368L2.24 10.28c-.224.226-.312.432-.312.73 0 .287.094.51.312.729l8.128 8.333h17.648a2.041 2.041 0 002.037-2.04V3.987c0-1.127-.915-2.04-2.037-2.04zM23.028 6a.96.96 0 01.678.292.95.95 0 01-.003 1.377l-3.342 3.348 3.326 3.333c.189.188.292.43.292.679 0 .248-.103.49-.292.679a.96.96 0 01-.678.292.959.959 0 01-.677-.292L18.99 12.36l-3.343 3.345a.96.96 0 01-.677.292.96.96 0 01-.678-.292.962.962 0 01-.292-.68c0-.248.104-.49.292-.679l3.342-3.348-3.342-3.348A.963.963 0 0114 6.971c0-.248.104-.49.292-.679A.96.96 0 0114.97 6a.96.96 0 01.677.292l3.358 3.348 3.345-3.348A.96.96 0 0123.028 6z\",\n \"fill\": \"currentColor\"\n }\n })]);\n }\n};","export default {\n render: function render() {\n var h = arguments[0];\n return h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 30 24\",\n \"xmlns\": \"http://www.w3.org/2000/svg\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M25.877 12.843h-1.502c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.5c.187 0 .187 0 .187-.188v-1.511c0-.19 0-.191-.185-.191zM17.999 10.2c0 .188 0 .188.188.188h1.687c.188 0 .188 0 .188-.188V8.688c0-.187.004-.187-.186-.19h-1.69c-.187 0-.187 0-.187.19V10.2zm2.25-3.967h1.5c.188 0 .188 0 .188-.188v-1.7c0-.19 0-.19-.188-.19h-1.5c-.189 0-.189 0-.189.19v1.7c0 .188 0 .188.19.188zm2.063 4.157h3.563c.187 0 .187 0 .187-.189V4.346c0-.19.004-.19-.185-.19h-1.69c-.187 0-.187 0-.187.188v4.155h-1.688c-.187 0-.187 0-.187.189v1.514c0 .19 0 .19.187.19zM14.812 24l2.812-3.4H12l2.813 3.4zm-9-11.157H4.31c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.502c.187 0 .187 0 .187-.188v-1.511c0-.19.01-.191-.189-.191zm15.937 0H8.25c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h13.5c.188 0 .188 0 .188-.188v-1.511c0-.19 0-.191-.188-.191zm-11.438-2.454h1.5c.188 0 .188 0 .188-.188V8.688c0-.187 0-.187-.188-.189h-1.5c-.187 0-.187 0-.187.189V10.2c0 .188 0 .188.187.188zM27.94 0c.563 0 .917.21 1.313.567.518.466.748.757.748 1.51v14.92c0 .567-.188 1.134-.562 1.512-.376.378-.938.566-1.313.566H2.063c-.563 0-.938-.188-1.313-.566-.562-.378-.75-.945-.75-1.511V2.078C0 1.51.188.944.562.567.938.189 1.5 0 1.875 0zm-.062 2H2v14.92h25.877V2zM5.81 4.157c.19 0 .19 0 .19.189v1.762c-.003.126-.024.126-.188.126H4.249c-.126-.003-.126-.023-.126-.188v-1.7c-.187-.19 0-.19.188-.19zm10.5 2.077h1.503c.187 0 .187 0 .187-.188v-1.7c0-.19 0-.19-.187-.19h-1.502c-.188 0-.188.001-.188.19v1.7c0 .188 0 .188.188.188zM7.875 8.5c.187 0 .187.002.187.189V10.2c0 .188 0 .188-.187.188H4.249c-.126-.002-.126-.023-.126-.188V8.625c.003-.126.024-.126.188-.126zm7.875 0c.19.002.19.002.19.189v1.575c-.003.126-.024.126-.19.126h-1.563c-.126-.002-.126-.023-.126-.188V8.625c.002-.126.023-.126.189-.126zm-6-4.342c.187 0 .187 0 .187.189v1.7c0 .188 0 .188-.187.188H8.187c-.126-.003-.126-.023-.126-.188V4.283c.003-.126.024-.126.188-.126zm3.94 0c.185 0 .372 0 .372.189v1.762c-.002.126-.023.126-.187.126h-1.75C12 6.231 12 6.211 12 6.046v-1.7c0-.19.187-.19.187-.19z\",\n \"fill\": \"currentColor\"\n }\n })]);\n }\n};","import { createNamespace } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\nimport Loading from '../loading';\nimport DeleteIcon from './DeleteIcon';\nimport CollapseIcon from './CollapseIcon';\n\nvar _createNamespace = createNamespace('key'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n type: String,\n text: [Number, String],\n color: String,\n wider: Boolean,\n large: Boolean,\n loading: Boolean\n },\n data: function data() {\n return {\n active: false\n };\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n // compatible with Vue 2.6 event bubble bug\n event.stopPropagation();\n this.touchStart(event);\n this.active = true;\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n\n if (this.direction) {\n this.active = false;\n }\n },\n onTouchEnd: function onTouchEnd(event) {\n if (this.active) {\n // eliminate tap delay on safari\n // see: https://github.com/vant-ui/vant/issues/6836\n if (!this.slots('default')) {\n event.preventDefault();\n }\n\n this.active = false;\n this.$emit('press', this.text, this.type);\n }\n },\n genContent: function genContent() {\n var h = this.$createElement;\n var isExtra = this.type === 'extra';\n var isDelete = this.type === 'delete';\n var text = this.slots('default') || this.text;\n\n if (this.loading) {\n return h(Loading, {\n \"class\": bem('loading-icon')\n });\n }\n\n if (isDelete) {\n return text || h(DeleteIcon, {\n \"class\": bem('delete-icon')\n });\n }\n\n if (isExtra) {\n return text || h(CollapseIcon, {\n \"class\": bem('collapse-icon')\n });\n }\n\n return text;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('wrapper', {\n wider: this.wider\n })\n }, [h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"class\": bem([this.color, {\n large: this.large,\n active: this.active,\n delete: this.type === 'delete'\n }])\n }, [this.genContent()])]);\n }\n});","import { createNamespace } from '../utils';\nimport { stopPropagation } from '../utils/dom/event';\nimport { PortalMixin } from '../mixins/portal';\nimport { BindEventMixin } from '../mixins/bind-event';\nimport Key from './Key';\n\nvar _createNamespace = createNamespace('number-keyboard'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PortalMixin(), BindEventMixin(function (bind) {\n if (this.hideOnClickOutside) {\n bind(document.body, 'touchstart', this.onBlur);\n }\n })],\n model: {\n event: 'update:value'\n },\n props: {\n show: Boolean,\n title: String,\n zIndex: [Number, String],\n randomKeyOrder: Boolean,\n closeButtonText: String,\n deleteButtonText: String,\n closeButtonLoading: Boolean,\n theme: {\n type: String,\n default: 'default'\n },\n value: {\n type: String,\n default: ''\n },\n extraKey: {\n type: [String, Array],\n default: ''\n },\n maxlength: {\n type: [Number, String],\n default: Number.MAX_VALUE\n },\n transition: {\n type: Boolean,\n default: true\n },\n showDeleteKey: {\n type: Boolean,\n default: true\n },\n hideOnClickOutside: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n show: function show(val) {\n if (!this.transition) {\n this.$emit(val ? 'show' : 'hide');\n }\n }\n },\n computed: {\n keys: function keys() {\n if (this.theme === 'custom') {\n return this.genCustomKeys();\n }\n\n return this.genDefaultKeys();\n }\n },\n methods: {\n genBasicKeys: function genBasicKeys() {\n var keys = [];\n\n for (var i = 1; i <= 9; i++) {\n keys.push({\n text: i\n });\n }\n\n if (this.randomKeyOrder) {\n keys.sort(function () {\n return Math.random() > 0.5 ? 1 : -1;\n });\n }\n\n return keys;\n },\n genDefaultKeys: function genDefaultKeys() {\n return [].concat(this.genBasicKeys(), [{\n text: this.extraKey,\n type: 'extra'\n }, {\n text: 0\n }, {\n text: this.showDeleteKey ? this.deleteButtonText : '',\n type: this.showDeleteKey ? 'delete' : ''\n }]);\n },\n genCustomKeys: function genCustomKeys() {\n var keys = this.genBasicKeys();\n var extraKey = this.extraKey;\n var extraKeys = Array.isArray(extraKey) ? extraKey : [extraKey];\n\n if (extraKeys.length === 1) {\n keys.push({\n text: 0,\n wider: true\n }, {\n text: extraKeys[0],\n type: 'extra'\n });\n } else if (extraKeys.length === 2) {\n keys.push({\n text: extraKeys[0],\n type: 'extra'\n }, {\n text: 0\n }, {\n text: extraKeys[1],\n type: 'extra'\n });\n }\n\n return keys;\n },\n onBlur: function onBlur() {\n this.show && this.$emit('blur');\n },\n onClose: function onClose() {\n this.$emit('close');\n this.onBlur();\n },\n onAnimationEnd: function onAnimationEnd() {\n this.$emit(this.show ? 'show' : 'hide');\n },\n onPress: function onPress(text, type) {\n if (text === '') {\n if (type === 'extra') {\n this.onBlur();\n }\n\n return;\n }\n\n var value = this.value;\n\n if (type === 'delete') {\n this.$emit('delete');\n this.$emit('update:value', value.slice(0, value.length - 1));\n } else if (type === 'close') {\n this.onClose();\n } else if (value.length < this.maxlength) {\n this.$emit('input', text);\n this.$emit('update:value', value + text);\n }\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n var title = this.title,\n theme = this.theme,\n closeButtonText = this.closeButtonText;\n var titleLeft = this.slots('title-left');\n var showClose = closeButtonText && theme === 'default';\n var showTitle = title || showClose || titleLeft;\n\n if (!showTitle) {\n return;\n }\n\n return h(\"div\", {\n \"class\": bem('header')\n }, [titleLeft && h(\"span\", {\n \"class\": bem('title-left')\n }, [titleLeft]), title && h(\"h2\", {\n \"class\": bem('title')\n }, [title]), showClose && h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": this.onClose\n }\n }, [closeButtonText])]);\n },\n genKeys: function genKeys() {\n var _this = this;\n\n var h = this.$createElement;\n return this.keys.map(function (key) {\n return h(Key, {\n \"key\": key.text,\n \"attrs\": {\n \"text\": key.text,\n \"type\": key.type,\n \"wider\": key.wider,\n \"color\": key.color\n },\n \"on\": {\n \"press\": _this.onPress\n }\n }, [key.type === 'delete' && _this.slots('delete'), key.type === 'extra' && _this.slots('extra-key')]);\n });\n },\n genSidebar: function genSidebar() {\n var h = this.$createElement;\n\n if (this.theme === 'custom') {\n return h(\"div\", {\n \"class\": bem('sidebar')\n }, [this.showDeleteKey && h(Key, {\n \"attrs\": {\n \"large\": true,\n \"text\": this.deleteButtonText,\n \"type\": \"delete\"\n },\n \"on\": {\n \"press\": this.onPress\n }\n }, [this.slots('delete')]), h(Key, {\n \"attrs\": {\n \"large\": true,\n \"text\": this.closeButtonText,\n \"type\": \"close\",\n \"color\": \"blue\",\n \"loading\": this.closeButtonLoading\n },\n \"on\": {\n \"press\": this.onPress\n }\n })]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var Title = this.genTitle();\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition ? 'van-slide-up' : ''\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": bem({\n unfit: !this.safeAreaInsetBottom,\n 'with-title': Title\n }),\n \"on\": {\n \"touchstart\": stopPropagation,\n \"animationend\": this.onAnimationEnd,\n \"webkitAnimationEnd\": this.onAnimationEnd\n }\n }, [Title, h(\"div\", {\n \"class\": bem('body')\n }, [h(\"div\", {\n \"class\": bem('keys')\n }, [this.genKeys()]), this.genSidebar()])])]);\n }\n});","import { createNamespace } from '../utils';\nimport { BORDER } from '../utils/constant';\n\nvar _createNamespace = createNamespace('pagination'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction makePage(number, text, active) {\n return {\n number: number,\n text: text,\n active: active\n };\n}\n\nexport default createComponent({\n props: {\n prevText: String,\n nextText: String,\n forceEllipses: Boolean,\n mode: {\n type: String,\n default: 'multi'\n },\n value: {\n type: Number,\n default: 0\n },\n pageCount: {\n type: [Number, String],\n default: 0\n },\n totalItems: {\n type: [Number, String],\n default: 0\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10\n },\n showPageSize: {\n type: [Number, String],\n default: 5\n }\n },\n computed: {\n count: function count() {\n var count = this.pageCount || Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(1, count);\n },\n pages: function pages() {\n var pages = [];\n var pageCount = this.count;\n var showPageSize = +this.showPageSize;\n\n if (this.mode !== 'multi') {\n return pages;\n } // Default page limits\n\n\n var startPage = 1;\n var endPage = pageCount;\n var isMaxSized = showPageSize < pageCount; // recompute if showPageSize\n\n if (isMaxSized) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(this.value - Math.floor(showPageSize / 2), 1);\n endPage = startPage + showPageSize - 1; // Adjust if limit is exceeded\n\n if (endPage > pageCount) {\n endPage = pageCount;\n startPage = endPage - showPageSize + 1;\n }\n } // Add page number links\n\n\n for (var number = startPage; number <= endPage; number++) {\n var page = makePage(number, number, number === this.value);\n pages.push(page);\n } // Add links to move between page sets\n\n\n if (isMaxSized && showPageSize > 0 && this.forceEllipses) {\n if (startPage > 1) {\n var previousPageSet = makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n\n if (endPage < pageCount) {\n var nextPageSet = makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n\n return pages;\n }\n },\n watch: {\n value: {\n handler: function handler(page) {\n this.select(page || this.value);\n },\n immediate: true\n }\n },\n methods: {\n select: function select(page, emitChange) {\n page = Math.min(this.count, Math.max(1, page));\n\n if (this.value !== page) {\n this.$emit('input', page);\n\n if (emitChange) {\n this.$emit('change', page);\n }\n }\n }\n },\n render: function render() {\n var _this = this,\n _this$slots,\n _this$slots3;\n\n var h = arguments[0];\n var value = this.value;\n var simple = this.mode !== 'multi';\n\n var onSelect = function onSelect(value) {\n return function () {\n _this.select(value, true);\n };\n };\n\n return h(\"ul\", {\n \"class\": bem({\n simple: simple\n })\n }, [h(\"li\", {\n \"class\": [bem('item', {\n disabled: value === 1\n }), bem('prev'), BORDER],\n \"on\": {\n \"click\": onSelect(value - 1)\n }\n }, [((_this$slots = this.slots('prev-text')) != null ? _this$slots : this.prevText) || t('prev')]), this.pages.map(function (page) {\n var _this$slots2;\n\n return h(\"li\", {\n \"class\": [bem('item', {\n active: page.active\n }), bem('page'), BORDER],\n \"on\": {\n \"click\": onSelect(page.number)\n }\n }, [(_this$slots2 = _this.slots('page', page)) != null ? _this$slots2 : page.text]);\n }), simple && h(\"li\", {\n \"class\": bem('page-desc')\n }, [this.slots('pageDesc') || value + \"/\" + this.count]), h(\"li\", {\n \"class\": [bem('item', {\n disabled: value === this.count\n }), bem('next'), BORDER],\n \"on\": {\n \"click\": onSelect(value + 1)\n }\n }, [((_this$slots3 = this.slots('next-text')) != null ? _this$slots3 : this.nextText) || t('next')])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { BORDER_TOP } from '../utils/constant'; // Components\n\nimport Cell from '../cell';\nimport CellGroup from '../cell-group'; // Types\n\nvar _createNamespace = createNamespace('panel'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Panel(h, props, slots, ctx) {\n var Content = function Content() {\n return [slots.header ? slots.header() : h(Cell, {\n \"attrs\": {\n \"icon\": props.icon,\n \"label\": props.desc,\n \"title\": props.title,\n \"value\": props.status,\n \"valueClass\": bem('header-value')\n },\n \"class\": bem('header')\n }), h(\"div\", {\n \"class\": bem('content')\n }, [slots.default && slots.default()]), slots.footer && h(\"div\", {\n \"class\": [bem('footer'), BORDER_TOP]\n }, [slots.footer()])];\n };\n\n return h(CellGroup, _mergeJSXProps([{\n \"class\": bem(),\n \"scopedSlots\": {\n default: Content\n }\n }, inherit(ctx, true)]));\n}\n\nPanel.props = {\n icon: String,\n desc: String,\n title: String,\n status: String\n};\nexport default createComponent(Panel);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { BORDER_LEFT, BORDER_SURROUND } from '../utils/constant'; // Types\n\nvar _createNamespace = createNamespace('password-input'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction PasswordInput(h, props, slots, ctx) {\n var _ref2;\n\n var mask = props.mask,\n value = props.value,\n length = props.length,\n gutter = props.gutter,\n focused = props.focused,\n errorInfo = props.errorInfo;\n var info = errorInfo || props.info;\n var Points = [];\n\n for (var i = 0; i < length; i++) {\n var _ref;\n\n var _char = value[i];\n var showBorder = i !== 0 && !gutter;\n var showCursor = focused && i === value.length;\n var style = void 0;\n\n if (i !== 0 && gutter) {\n style = {\n marginLeft: addUnit(gutter)\n };\n }\n\n Points.push(h(\"li\", {\n \"class\": [(_ref = {}, _ref[BORDER_LEFT] = showBorder, _ref), bem('item', {\n focus: showCursor\n })],\n \"style\": style\n }, [mask ? h(\"i\", {\n \"style\": {\n visibility: _char ? 'visible' : 'hidden'\n }\n }) : _char, showCursor && h(\"div\", {\n \"class\": bem('cursor')\n })]));\n }\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"ul\", _mergeJSXProps([{\n \"class\": [bem('security'), (_ref2 = {}, _ref2[BORDER_SURROUND] = !gutter, _ref2)],\n \"on\": {\n \"touchstart\": function touchstart(event) {\n event.stopPropagation();\n emit(ctx, 'focus', event);\n }\n }\n }, inherit(ctx, true)]), [Points]), info && h(\"div\", {\n \"class\": bem(errorInfo ? 'error-info' : 'info')\n }, [info])]);\n}\n\nPasswordInput.props = {\n info: String,\n gutter: [Number, String],\n focused: Boolean,\n errorInfo: String,\n mask: {\n type: Boolean,\n default: true\n },\n value: {\n type: String,\n default: ''\n },\n length: {\n type: [Number, String],\n default: 6\n }\n};\nexport default createComponent(PasswordInput);","// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindow.js\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n if (node.toString() !== \"[object Window]\") {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n return node;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\nfunction isShadowRoot(node) {\n if (typeof ShadowRoot === \"undefined\") {\n return false;\n }\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/math.js\nvar round = Math.round;\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/userAgent.js\nfunction getUAString() {\n var uaData = navigator.userAgentData;\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function(item) {\n return item.brand + \"/\" + item.version;\n }).join(\" \");\n }\n return navigator.userAgent;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js\nfunction isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\nfunction getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft,\n scrollTop\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js\nfunction getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\nfunction getNodeName(element) {\n return element ? (element.nodeName || \"\").toLowerCase() : null;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\nfunction getDocumentElement(element) {\n return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\nfunction getWindowScrollBarX(element) {\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\nfunction isScrollParent(element) {\n var _getComputedStyle = getComputedStyle(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n}\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== \"body\" || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\nfunction getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element);\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\nfunction getParentNode(element) {\n if (getNodeName(element) === \"html\") {\n return element;\n }\n return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js\nfunction getScrollParent(node) {\n if ([\"html\", \"body\", \"#document\"].indexOf(getNodeName(node)) >= 0) {\n return node.ownerDocument.body;\n }\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n return getScrollParent(getParentNode(node));\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\nfunction listScrollParents(element, list) {\n var _element$ownerDocumen;\n if (list === void 0) {\n list = [];\n }\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target)));\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js\nfunction isTableElement(element) {\n return [\"table\", \"td\", \"th\"].indexOf(getNodeName(element)) >= 0;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n return null;\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n if (isIE && isHTMLElement(element)) {\n var elementCss = getComputedStyle(element);\n if (elementCss.position === \"fixed\") {\n return null;\n }\n }\n var currentNode = getParentNode(element);\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n while (isHTMLElement(currentNode) && [\"html\", \"body\"].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode);\n if (css.transform !== \"none\" || css.perspective !== \"none\" || css.contain === \"paint\" || [\"transform\", \"perspective\"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === \"filter\" || isFirefox && css.filter && css.filter !== \"none\") {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n return null;\n}\nfunction getOffsetParent(element) {\n var window2 = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\")) {\n return window2;\n }\n return offsetParent || getContainingBlock(element) || window2;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/enums.js\nvar top = \"top\";\nvar bottom = \"bottom\";\nvar right = \"right\";\nvar left = \"left\";\nvar auto = \"auto\";\nvar basePlacements = [top, bottom, right, left];\nvar start = \"start\";\nvar end = \"end\";\nvar placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nvar beforeRead = \"beforeRead\";\nvar read = \"read\";\nvar afterRead = \"afterRead\";\nvar beforeMain = \"beforeMain\";\nvar main = \"main\";\nvar afterMain = \"afterMain\";\nvar beforeWrite = \"beforeWrite\";\nvar write = \"write\";\nvar afterWrite = \"afterWrite\";\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/orderModifiers.js\nfunction order(modifiers) {\n var map = /* @__PURE__ */ new Map();\n var visited = /* @__PURE__ */ new Set();\n var result = [];\n modifiers.forEach(function(modifier) {\n map.set(modifier.name, modifier);\n });\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function(dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n modifiers.forEach(function(modifier) {\n if (!visited.has(modifier.name)) {\n sort(modifier);\n }\n });\n return result;\n}\nfunction orderModifiers(modifiers) {\n var orderedModifiers = order(modifiers);\n return modifierPhases.reduce(function(acc, phase) {\n return acc.concat(orderedModifiers.filter(function(modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/debounce.js\nfunction debounce(fn2) {\n var pending;\n return function() {\n if (!pending) {\n pending = new Promise(function(resolve) {\n Promise.resolve().then(function() {\n pending = void 0;\n resolve(fn2());\n });\n });\n }\n return pending;\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/format.js\nfunction format(str) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return [].concat(args).reduce(function(p, c) {\n return p.replace(/%s/, c);\n }, str);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/validateModifiers.js\nvar INVALID_MODIFIER_ERROR = 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nvar MISSING_DEPENDENCY_ERROR = 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nvar VALID_PROPERTIES = [\"name\", \"enabled\", \"phase\", \"fn\", \"effect\", \"requires\", \"options\"];\nfunction validateModifiers(modifiers) {\n modifiers.forEach(function(modifier) {\n [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index, self) {\n return self.indexOf(value) === index;\n }).forEach(function(key) {\n switch (key) {\n case \"name\":\n if (typeof modifier.name !== \"string\") {\n console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '\"name\"', '\"string\"', '\"' + String(modifier.name) + '\"'));\n }\n break;\n case \"enabled\":\n if (typeof modifier.enabled !== \"boolean\") {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"enabled\"', '\"boolean\"', '\"' + String(modifier.enabled) + '\"'));\n }\n break;\n case \"phase\":\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"phase\"', \"either \" + modifierPhases.join(\", \"), '\"' + String(modifier.phase) + '\"'));\n }\n break;\n case \"fn\":\n if (typeof modifier.fn !== \"function\") {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"fn\"', '\"function\"', '\"' + String(modifier.fn) + '\"'));\n }\n break;\n case \"effect\":\n if (modifier.effect != null && typeof modifier.effect !== \"function\") {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"effect\"', '\"function\"', '\"' + String(modifier.fn) + '\"'));\n }\n break;\n case \"requires\":\n if (modifier.requires != null && !Array.isArray(modifier.requires)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requires\"', '\"array\"', '\"' + String(modifier.requires) + '\"'));\n }\n break;\n case \"requiresIfExists\":\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requiresIfExists\"', '\"array\"', '\"' + String(modifier.requiresIfExists) + '\"'));\n }\n break;\n case \"options\":\n case \"data\":\n break;\n default:\n console.error('PopperJS: an invalid property has been provided to the \"' + modifier.name + '\" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) {\n return '\"' + s + '\"';\n }).join(\", \") + '; but \"' + key + '\" was provided.');\n }\n modifier.requires && modifier.requires.forEach(function(requirement) {\n if (modifiers.find(function(mod) {\n return mod.name === requirement;\n }) == null) {\n console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));\n }\n });\n });\n });\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/uniqueBy.js\nfunction uniqueBy(arr, fn2) {\n var identifiers = /* @__PURE__ */ new Set();\n return arr.filter(function(item) {\n var identifier = fn2(item);\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getBasePlacement.js\nfunction getBasePlacement(placement) {\n return placement.split(\"-\")[0];\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/mergeByName.js\nfunction mergeByName(modifiers) {\n var merged = modifiers.reduce(function(merged2, current) {\n var existing = merged2[current.name];\n merged2[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged2;\n }, {});\n return Object.keys(merged).map(function(key) {\n return merged[key];\n });\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getVariation.js\nfunction getVariation(placement) {\n return placement.split(\"-\")[1];\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\nfunction getMainAxisFromPlacement(placement) {\n return [\"top\", \"bottom\"].indexOf(placement) >= 0 ? \"x\" : \"y\";\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/computeOffsets.js\nfunction computeOffsets(_ref) {\n var reference = _ref.reference, element = _ref.element, placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n if (mainAxis != null) {\n var len = mainAxis === \"y\" ? \"height\" : \"width\";\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n return offsets;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/createPopper.js\nvar INVALID_ELEMENT_ERROR = \"Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.\";\nvar INFINITE_LOOP_ERROR = \"Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.\";\nvar DEFAULT_OPTIONS = {\n placement: \"bottom\",\n modifiers: [],\n strategy: \"absolute\"\n};\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return !args.some(function(element) {\n return !(element && typeof element.getBoundingClientRect === \"function\");\n });\n}\nfunction popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper2(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n var state = {\n placement: \"bottom\",\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference,\n popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state,\n setOptions: function setOptions(setOptionsAction) {\n var options2 = typeof setOptionsAction === \"function\" ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options2);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n };\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));\n state.orderedModifiers = orderedModifiers.filter(function(m) {\n return m.enabled;\n });\n if (true) {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function(_ref2) {\n var name = _ref2.name;\n return name === \"flip\";\n });\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', \"present and enabled to work.\"].join(\" \"));\n }\n }\n var _getComputedStyle = getComputedStyle(popper), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft;\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', \"between the popper and its reference element or boundary.\", \"To replicate margin, use the `offset` modifier, as well as\", \"the `padding` option in the `preventOverflow` and `flip`\", \"modifiers.\"].join(\" \"));\n }\n }\n runModifierEffects();\n return instance.update();\n },\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n var _state$elements = state.elements, reference2 = _state$elements.reference, popper2 = _state$elements.popper;\n if (!areValidElements(reference2, popper2)) {\n if (true) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n state.rects = {\n reference: getCompositeRect(reference2, getOffsetParent(popper2), state.options.strategy === \"fixed\"),\n popper: getLayoutRect(popper2)\n };\n state.reset = false;\n state.placement = state.options.placement;\n state.orderedModifiers.forEach(function(modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (true) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;\n if (typeof fn2 === \"function\") {\n state = fn2({\n state,\n options: _options,\n name,\n instance\n }) || state;\n }\n }\n },\n update: debounce(function() {\n return new Promise(function(resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n if (!areValidElements(reference, popper)) {\n if (true) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n instance.setOptions(options).then(function(state2) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state2);\n }\n });\n function runModifierEffects() {\n state.orderedModifiers.forEach(function(_ref3) {\n var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect3 = _ref3.effect;\n if (typeof effect3 === \"function\") {\n var cleanupFn = effect3({\n state,\n name,\n instance,\n options: options2\n });\n var noopFn = function noopFn2() {\n };\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function(fn2) {\n return fn2();\n });\n effectCleanupFns = [];\n }\n return instance;\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/eventListeners.js\nvar passive = {\n passive: true\n};\nfunction effect(_ref) {\n var state = _ref.state, instance = _ref.instance, options = _ref.options;\n var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;\n var window2 = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n if (scroll) {\n scrollParents.forEach(function(scrollParent) {\n scrollParent.addEventListener(\"scroll\", instance.update, passive);\n });\n }\n if (resize) {\n window2.addEventListener(\"resize\", instance.update, passive);\n }\n return function() {\n if (scroll) {\n scrollParents.forEach(function(scrollParent) {\n scrollParent.removeEventListener(\"scroll\", instance.update, passive);\n });\n }\n if (resize) {\n window2.removeEventListener(\"resize\", instance.update, passive);\n }\n };\n}\nvar eventListeners_default = {\n name: \"eventListeners\",\n enabled: true,\n phase: \"write\",\n fn: function fn() {\n },\n effect,\n data: {}\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\nfunction popperOffsets(_ref) {\n var state = _ref.state, name = _ref.name;\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: \"absolute\",\n placement: state.placement\n });\n}\nvar popperOffsets_default = {\n name: \"popperOffsets\",\n enabled: true,\n phase: \"read\",\n fn: popperOffsets,\n data: {}\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/computeStyles.js\nvar unsetSides = {\n top: \"auto\",\n right: \"auto\",\n bottom: \"auto\",\n left: \"auto\"\n};\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x, y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n var popper = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;\n var _ref3 = typeof roundOffsets === \"function\" ? roundOffsets({\n x,\n y\n }) : {\n x,\n y\n };\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty(\"x\");\n var hasY = offsets.hasOwnProperty(\"y\");\n var sideX = left;\n var sideY = top;\n var win = window;\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = \"clientHeight\";\n var widthProp = \"clientWidth\";\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n if (getComputedStyle(offsetParent).position !== \"static\" && position === \"absolute\") {\n heightProp = \"scrollHeight\";\n widthProp = \"scrollWidth\";\n }\n }\n offsetParent = offsetParent;\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n var commonStyles = Object.assign({\n position\n }, adaptive && unsetSides);\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x,\n y\n }) : {\n x,\n y\n };\n x = _ref4.x;\n y = _ref4.y;\n if (gpuAcceleration) {\n var _Object$assign;\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? \"0\" : \"\", _Object$assign[sideX] = hasX ? \"0\" : \"\", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : \"\", _Object$assign2[sideX] = hasX ? x + \"px\" : \"\", _Object$assign2.transform = \"\", _Object$assign2));\n}\nfunction computeStyles(_ref5) {\n var state = _ref5.state, options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n if (true) {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || \"\";\n if (adaptive && [\"transform\", \"top\", \"right\", \"bottom\", \"left\"].some(function(property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn([\"Popper: Detected CSS transitions on at least one of the following\", 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', \"\\n\\n\", 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', \"for smooth transitions, or remove these properties from the CSS\", \"transition declaration on the popper element if only transitioning\", \"opacity or background-color for example.\", \"\\n\\n\", \"We recommend using the popper element as a wrapper around an inner\", \"element that can have any CSS property transitioned for animations.\"].join(\" \"));\n }\n }\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === \"fixed\"\n };\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets\n })));\n }\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: \"absolute\",\n adaptive: false,\n roundOffsets\n })));\n }\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n \"data-popper-placement\": state.placement\n });\n}\nvar computeStyles_default = {\n name: \"computeStyles\",\n enabled: true,\n phase: \"beforeWrite\",\n fn: computeStyles,\n data: {}\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/applyStyles.js\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function(name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name];\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function(name2) {\n var value = attributes[name2];\n if (value === false) {\n element.removeAttribute(name2);\n } else {\n element.setAttribute(name2, value === true ? \"\" : value);\n }\n });\n });\n}\nfunction effect2(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: \"0\",\n top: \"0\",\n margin: \"0\"\n },\n arrow: {\n position: \"absolute\"\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n return function() {\n Object.keys(state.elements).forEach(function(name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);\n var style = styleProperties.reduce(function(style2, property) {\n style2[property] = \"\";\n return style2;\n }, {});\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function(attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n}\nvar applyStyles_default = {\n name: \"applyStyles\",\n enabled: true,\n phase: \"write\",\n fn: applyStyles,\n effect: effect2,\n requires: [\"computeStyles\"]\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/popper-lite.js\nvar defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default];\nvar createPopper = /* @__PURE__ */ popperGenerator({\n defaultModifiers\n});\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/offset.js\nfunction distanceAndSkiddingToXY(placement, rects, offset2) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n var _ref = typeof offset2 === \"function\" ? offset2(Object.assign({}, rects, {\n placement\n })) : offset2, skidding = _ref[0], distance = _ref[1];\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\nfunction offset(_ref2) {\n var state = _ref2.state, options = _ref2.options, name = _ref2.name;\n var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function(acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n state.modifiersData[name] = data;\n}\nvar offset_default = {\n name: \"offset\",\n enabled: true,\n phase: \"main\",\n requires: [\"popperOffsets\"],\n fn: offset\n};\nexport {\n createPopper,\n offset_default as offsetModifier\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createPopper as _createPopper, offsetModifier } from '@vant/popperjs';\nimport { createNamespace, isServer } from '../utils';\nimport { BORDER_BOTTOM } from '../utils/constant'; // Mixins\n\nimport { ClickOutsideMixin } from '../mixins/click-outside'; // Components\n\nimport Icon from '../icon';\nimport Popup from '../popup';\n\nvar _createNamespace = createNamespace('popover'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ClickOutsideMixin({\n event: 'touchstart',\n method: 'onClickOutside'\n })],\n props: {\n value: Boolean,\n trigger: String,\n overlay: Boolean,\n offset: {\n type: Array,\n default: function _default() {\n return [0, 8];\n }\n },\n theme: {\n type: String,\n default: 'light'\n },\n actions: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n placement: {\n type: String,\n default: 'bottom'\n },\n getContainer: {\n type: [String, Function],\n default: 'body'\n },\n closeOnClickAction: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n value: 'updateLocation',\n placement: 'updateLocation'\n },\n mounted: function mounted() {\n this.updateLocation();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.popper) {\n if (!isServer) {\n window.removeEventListener('animationend', this.updateLocation);\n window.removeEventListener('transitionend', this.updateLocation);\n }\n\n this.popper.destroy();\n this.popper = null;\n }\n },\n methods: {\n createPopper: function createPopper() {\n var popper = _createPopper(this.$refs.wrapper, this.$refs.popover.$el, {\n placement: this.placement,\n modifiers: [{\n name: 'computeStyles',\n options: {\n adaptive: false,\n gpuAcceleration: false\n }\n }, _extends({}, offsetModifier, {\n options: {\n offset: this.offset\n }\n })]\n });\n\n if (!isServer) {\n window.addEventListener('animationend', this.updateLocation);\n window.addEventListener('transitionend', this.updateLocation);\n }\n\n return popper;\n },\n updateLocation: function updateLocation() {\n var _this = this;\n\n this.$nextTick(function () {\n if (!_this.value) {\n return;\n }\n\n if (!_this.popper) {\n _this.popper = _this.createPopper();\n } else {\n _this.popper.setOptions({\n placement: _this.placement\n });\n }\n });\n },\n renderAction: function renderAction(action, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n var icon = action.icon,\n text = action.text,\n disabled = action.disabled,\n className = action.className;\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"menuitem\"\n },\n \"class\": [bem('action', {\n disabled: disabled,\n 'with-icon': icon\n }), className],\n \"on\": {\n \"click\": function click() {\n return _this2.onClickAction(action, index);\n }\n }\n }, [icon && h(Icon, {\n \"attrs\": {\n \"name\": icon\n },\n \"class\": bem('action-icon')\n }), h(\"div\", {\n \"class\": [bem('action-text'), BORDER_BOTTOM]\n }, [text])]);\n },\n onToggle: function onToggle(value) {\n this.$emit('input', value);\n },\n onClickWrapper: function onClickWrapper() {\n if (this.trigger === 'click') {\n this.onToggle(!this.value);\n }\n },\n onTouchstart: function onTouchstart(event) {\n event.stopPropagation();\n this.$emit('touchstart', event);\n },\n onClickAction: function onClickAction(action, index) {\n if (action.disabled) {\n return;\n }\n\n this.$emit('select', action, index);\n\n if (this.closeOnClickAction) {\n this.$emit('input', false);\n }\n },\n onClickOutside: function onClickOutside() {\n this.$emit('input', false);\n },\n onOpen: function onOpen() {\n this.$emit('open');\n },\n\n /* istanbul ignore next */\n onOpened: function onOpened() {\n this.$emit('opened');\n },\n onClose: function onClose() {\n this.$emit('close');\n },\n\n /* istanbul ignore next */\n onClosed: function onClosed() {\n this.$emit('closed');\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"span\", {\n \"ref\": \"wrapper\",\n \"class\": bem('wrapper'),\n \"on\": {\n \"click\": this.onClickWrapper\n }\n }, [h(Popup, {\n \"ref\": \"popover\",\n \"attrs\": {\n \"value\": this.value,\n \"overlay\": this.overlay,\n \"position\": null,\n \"transition\": \"van-popover-zoom\",\n \"lockScroll\": false,\n \"getContainer\": this.getContainer\n },\n \"class\": bem([this.theme]),\n \"on\": {\n \"open\": this.onOpen,\n \"close\": this.onClose,\n \"input\": this.onToggle,\n \"opened\": this.onOpened,\n \"closed\": this.onClosed\n },\n \"nativeOn\": {\n \"touchstart\": this.onTouchstart\n }\n }, [h(\"div\", {\n \"class\": bem('arrow')\n }), h(\"div\", {\n \"class\": bem('content'),\n \"attrs\": {\n \"role\": \"menu\"\n }\n }, [this.slots('default') || this.actions.map(this.renderAction)])]), this.slots('reference')]);\n }\n});","import { createNamespace, addUnit } from '../utils';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('progress'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n })],\n props: {\n color: String,\n inactive: Boolean,\n pivotText: String,\n textColor: String,\n pivotColor: String,\n trackColor: String,\n strokeWidth: [Number, String],\n percentage: {\n type: [Number, String],\n required: true,\n validator: function validator(value) {\n return value >= 0 && value <= 100;\n }\n },\n showPivot: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n pivotWidth: 0,\n progressWidth: 0\n };\n },\n mounted: function mounted() {\n this.resize();\n },\n watch: {\n showPivot: 'resize',\n pivotText: 'resize'\n },\n methods: {\n // @exposed-api\n resize: function resize() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.progressWidth = _this.$el.offsetWidth;\n _this.pivotWidth = _this.$refs.pivot ? _this.$refs.pivot.offsetWidth : 0;\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n var pivotText = this.pivotText,\n percentage = this.percentage;\n var text = pivotText != null ? pivotText : percentage + '%';\n var showPivot = this.showPivot && text;\n var background = this.inactive ? '#cacaca' : this.color;\n var pivotStyle = {\n color: this.textColor,\n left: (this.progressWidth - this.pivotWidth) * percentage / 100 + \"px\",\n background: this.pivotColor || background\n };\n var portionStyle = {\n background: background,\n width: this.progressWidth * percentage / 100 + 'px'\n };\n var wrapperStyle = {\n background: this.trackColor,\n height: addUnit(this.strokeWidth)\n };\n return h(\"div\", {\n \"class\": bem(),\n \"style\": wrapperStyle\n }, [h(\"span\", {\n \"class\": bem('portion'),\n \"style\": portionStyle\n }, [showPivot && h(\"span\", {\n \"ref\": \"pivot\",\n \"style\": pivotStyle,\n \"class\": bem('pivot')\n }, [text])])]);\n }\n});","// Utils\nimport { createNamespace } from '../utils';\nimport { preventDefault } from '../utils/dom/event';\nimport { getScrollTop, getScroller } from '../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch'; // Components\n\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('pull-refresh'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar DEFAULT_HEAD_HEIGHT = 50;\nvar TEXT_STATUS = ['pulling', 'loosing', 'success'];\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n disabled: Boolean,\n successText: String,\n pullingText: String,\n loosingText: String,\n loadingText: String,\n pullDistance: [Number, String],\n value: {\n type: Boolean,\n required: true\n },\n successDuration: {\n type: [Number, String],\n default: 500\n },\n animationDuration: {\n type: [Number, String],\n default: 300\n },\n headHeight: {\n type: [Number, String],\n default: DEFAULT_HEAD_HEIGHT\n }\n },\n data: function data() {\n return {\n status: 'normal',\n distance: 0,\n duration: 0\n };\n },\n computed: {\n touchable: function touchable() {\n return this.status !== 'loading' && this.status !== 'success' && !this.disabled;\n },\n headStyle: function headStyle() {\n if (this.headHeight !== DEFAULT_HEAD_HEIGHT) {\n return {\n height: this.headHeight + \"px\"\n };\n }\n }\n },\n watch: {\n value: function value(loading) {\n this.duration = this.animationDuration;\n\n if (loading) {\n this.setStatus(+this.headHeight, true);\n } else if (this.slots('success') || this.successText) {\n this.showSuccessTip();\n } else {\n this.setStatus(0, false);\n }\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$refs.track);\n this.scrollEl = getScroller(this.$el);\n },\n methods: {\n checkPullStart: function checkPullStart(event) {\n this.ceiling = getScrollTop(this.scrollEl) === 0;\n\n if (this.ceiling) {\n this.duration = 0;\n this.touchStart(event);\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (this.touchable) {\n this.checkPullStart(event);\n }\n },\n onTouchMove: function onTouchMove(event) {\n if (!this.touchable) {\n return;\n }\n\n if (!this.ceiling) {\n this.checkPullStart(event);\n }\n\n this.touchMove(event);\n\n if (this.ceiling && this.deltaY >= 0 && this.direction === 'vertical') {\n preventDefault(event);\n this.setStatus(this.ease(this.deltaY));\n }\n },\n onTouchEnd: function onTouchEnd() {\n var _this = this;\n\n if (this.touchable && this.ceiling && this.deltaY) {\n this.duration = this.animationDuration;\n\n if (this.status === 'loosing') {\n this.setStatus(+this.headHeight, true);\n this.$emit('input', true); // ensure value change can be watched\n\n this.$nextTick(function () {\n _this.$emit('refresh');\n });\n } else {\n this.setStatus(0);\n }\n }\n },\n ease: function ease(distance) {\n var pullDistance = +(this.pullDistance || this.headHeight);\n\n if (distance > pullDistance) {\n if (distance < pullDistance * 2) {\n distance = pullDistance + (distance - pullDistance) / 2;\n } else {\n distance = pullDistance * 1.5 + (distance - pullDistance * 2) / 4;\n }\n }\n\n return Math.round(distance);\n },\n setStatus: function setStatus(distance, isLoading) {\n var status;\n\n if (isLoading) {\n status = 'loading';\n } else if (distance === 0) {\n status = 'normal';\n } else {\n status = distance < (this.pullDistance || this.headHeight) ? 'pulling' : 'loosing';\n }\n\n this.distance = distance;\n\n if (status !== this.status) {\n this.status = status;\n }\n },\n genStatus: function genStatus() {\n var h = this.$createElement;\n var status = this.status,\n distance = this.distance;\n var slot = this.slots(status, {\n distance: distance\n });\n\n if (slot) {\n return slot;\n }\n\n var nodes = [];\n var text = this[status + \"Text\"] || t(status);\n\n if (TEXT_STATUS.indexOf(status) !== -1) {\n nodes.push(h(\"div\", {\n \"class\": bem('text')\n }, [text]));\n }\n\n if (status === 'loading') {\n nodes.push(h(Loading, {\n \"attrs\": {\n \"size\": \"16\"\n }\n }, [text]));\n }\n\n return nodes;\n },\n showSuccessTip: function showSuccessTip() {\n var _this2 = this;\n\n this.status = 'success';\n setTimeout(function () {\n _this2.setStatus(0);\n }, this.successDuration);\n }\n },\n render: function render() {\n var h = arguments[0];\n var trackStyle = {\n transitionDuration: this.duration + \"ms\",\n transform: this.distance ? \"translate3d(0,\" + this.distance + \"px, 0)\" : ''\n };\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"track\",\n \"class\": bem('track'),\n \"style\": trackStyle\n }, [h(\"div\", {\n \"class\": bem('head'),\n \"style\": this.headStyle\n }, [this.genStatus()]), this.slots()])]);\n }\n});","// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { FieldMixin } from '../mixins/field'; // Components\n\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('rate'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction getRateStatus(value, index, allowHalf) {\n if (value >= index) {\n return 'full';\n }\n\n if (value + 0.5 >= index && allowHalf) {\n return 'half';\n }\n\n return 'void';\n}\n\nexport default createComponent({\n mixins: [TouchMixin, FieldMixin],\n props: {\n size: [Number, String],\n color: String,\n gutter: [Number, String],\n readonly: Boolean,\n disabled: Boolean,\n allowHalf: Boolean,\n voidColor: String,\n iconPrefix: String,\n disabledColor: String,\n value: {\n type: Number,\n default: 0\n },\n icon: {\n type: String,\n default: 'star'\n },\n voidIcon: {\n type: String,\n default: 'star-o'\n },\n count: {\n type: [Number, String],\n default: 5\n },\n touchable: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n list: function list() {\n var list = [];\n\n for (var i = 1; i <= this.count; i++) {\n list.push(getRateStatus(this.value, i, this.allowHalf));\n }\n\n return list;\n },\n sizeWithUnit: function sizeWithUnit() {\n return addUnit(this.size);\n },\n gutterWithUnit: function gutterWithUnit() {\n return addUnit(this.gutter);\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n select: function select(index) {\n if (!this.disabled && !this.readonly && index !== this.value) {\n this.$emit('input', index);\n this.$emit('change', index);\n }\n },\n onTouchStart: function onTouchStart(event) {\n var _this = this;\n\n if (this.readonly || this.disabled || !this.touchable) {\n return;\n }\n\n this.touchStart(event);\n var rects = this.$refs.items.map(function (item) {\n return item.getBoundingClientRect();\n });\n var ranges = [];\n rects.forEach(function (rect, index) {\n if (_this.allowHalf) {\n ranges.push({\n score: index + 0.5,\n left: rect.left\n }, {\n score: index + 1,\n left: rect.left + rect.width / 2\n });\n } else {\n ranges.push({\n score: index + 1,\n left: rect.left\n });\n }\n });\n this.ranges = ranges;\n },\n onTouchMove: function onTouchMove(event) {\n if (this.readonly || this.disabled || !this.touchable) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'horizontal') {\n preventDefault(event);\n var clientX = event.touches[0].clientX;\n this.select(this.getScoreByPosition(clientX));\n }\n },\n getScoreByPosition: function getScoreByPosition(x) {\n for (var i = this.ranges.length - 1; i > 0; i--) {\n if (x > this.ranges[i].left) {\n return this.ranges[i].score;\n }\n }\n\n return this.allowHalf ? 0.5 : 1;\n },\n genStar: function genStar(status, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n var icon = this.icon,\n color = this.color,\n count = this.count,\n voidIcon = this.voidIcon,\n disabled = this.disabled,\n voidColor = this.voidColor,\n disabledColor = this.disabledColor;\n var score = index + 1;\n var isFull = status === 'full';\n var isVoid = status === 'void';\n var style;\n\n if (this.gutterWithUnit && score !== +count) {\n style = {\n paddingRight: this.gutterWithUnit\n };\n }\n\n return h(\"div\", {\n \"ref\": \"items\",\n \"refInFor\": true,\n \"key\": index,\n \"attrs\": {\n \"role\": \"radio\",\n \"tabindex\": \"0\",\n \"aria-setsize\": count,\n \"aria-posinset\": score,\n \"aria-checked\": String(!isVoid)\n },\n \"style\": style,\n \"class\": bem('item')\n }, [h(Icon, {\n \"attrs\": {\n \"size\": this.sizeWithUnit,\n \"name\": isFull ? icon : voidIcon,\n \"color\": disabled ? disabledColor : isFull ? color : voidColor,\n \"classPrefix\": this.iconPrefix,\n \"data-score\": score\n },\n \"class\": bem('icon', {\n disabled: disabled,\n full: isFull\n }),\n \"on\": {\n \"click\": function click() {\n _this2.select(score);\n }\n }\n }), this.allowHalf && h(Icon, {\n \"attrs\": {\n \"size\": this.sizeWithUnit,\n \"name\": isVoid ? voidIcon : icon,\n \"color\": disabled ? disabledColor : isVoid ? voidColor : color,\n \"classPrefix\": this.iconPrefix,\n \"data-score\": score - 0.5\n },\n \"class\": bem('icon', ['half', {\n disabled: disabled,\n full: !isVoid\n }]),\n \"on\": {\n \"click\": function click() {\n _this2.select(score - 0.5);\n }\n }\n })]);\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n readonly: this.readonly,\n disabled: this.disabled\n }),\n \"attrs\": {\n \"tabindex\": \"0\",\n \"role\": \"radiogroup\"\n }\n }, [this.list.map(function (status, index) {\n return _this3.genStar(status, index);\n })]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('row'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanRow')],\n props: {\n type: String,\n align: String,\n justify: String,\n tag: {\n type: String,\n default: 'div'\n },\n gutter: {\n type: [Number, String],\n default: 0\n }\n },\n computed: {\n spaces: function spaces() {\n var gutter = Number(this.gutter);\n\n if (!gutter) {\n return;\n }\n\n var spaces = [];\n var groups = [[]];\n var totalSpan = 0;\n this.children.forEach(function (item, index) {\n totalSpan += Number(item.span);\n\n if (totalSpan > 24) {\n groups.push([index]);\n totalSpan -= 24;\n } else {\n groups[groups.length - 1].push(index);\n }\n });\n groups.forEach(function (group) {\n var averagePadding = gutter * (group.length - 1) / group.length;\n group.forEach(function (item, index) {\n if (index === 0) {\n spaces.push({\n right: averagePadding\n });\n } else {\n var left = gutter - spaces[item - 1].right;\n var right = averagePadding - left;\n spaces.push({\n left: left,\n right: right\n });\n }\n });\n });\n return spaces;\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n var align = this.align,\n justify = this.justify;\n var flex = this.type === 'flex';\n return h(this.tag, {\n \"class\": bem((_bem = {\n flex: flex\n }, _bem[\"align-\" + align] = flex && align, _bem[\"justify-\" + justify] = flex && justify, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots()]);\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit, emit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Components\n\nimport Field from '../field'; // Types\n\nvar _createNamespace = createNamespace('search'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction Search(h, props, slots, ctx) {\n function Label() {\n if (slots.label || props.label) {\n return h(\"div\", {\n \"class\": bem('label')\n }, [slots.label ? slots.label() : props.label]);\n }\n }\n\n function Action() {\n if (!props.showAction) {\n return;\n }\n\n function onCancel() {\n if (slots.action) {\n return;\n }\n\n emit(ctx, 'input', '');\n emit(ctx, 'cancel');\n }\n\n return h(\"div\", {\n \"class\": bem('action'),\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"on\": {\n \"click\": onCancel\n }\n }, [slots.action ? slots.action() : props.actionText || t('cancel')]);\n }\n\n var fieldData = {\n attrs: ctx.data.attrs,\n on: _extends({}, ctx.listeners, {\n keypress: function keypress(event) {\n // press enter\n if (event.keyCode === 13) {\n preventDefault(event);\n emit(ctx, 'search', props.value);\n }\n\n emit(ctx, 'keypress', event);\n }\n })\n };\n var inheritData = inherit(ctx);\n inheritData.attrs = undefined;\n return h(\"div\", _mergeJSXProps2([{\n \"class\": bem({\n 'show-action': props.showAction\n }),\n \"style\": {\n background: props.background\n }\n }, inheritData]), [slots.left == null ? void 0 : slots.left(), h(\"div\", {\n \"class\": bem('content', props.shape)\n }, [Label(), h(Field, _mergeJSXProps([{\n \"attrs\": {\n \"type\": \"search\",\n \"border\": false,\n \"value\": props.value,\n \"leftIcon\": props.leftIcon,\n \"rightIcon\": props.rightIcon,\n \"clearable\": props.clearable,\n \"clearTrigger\": props.clearTrigger\n },\n \"scopedSlots\": {\n 'left-icon': slots['left-icon'],\n 'right-icon': slots['right-icon']\n }\n }, fieldData]))]), Action()]);\n}\n\nSearch.props = {\n value: String,\n label: String,\n rightIcon: String,\n actionText: String,\n background: String,\n showAction: Boolean,\n clearTrigger: String,\n shape: {\n type: String,\n default: 'square'\n },\n clearable: {\n type: Boolean,\n default: true\n },\n leftIcon: {\n type: String,\n default: 'search'\n }\n};\nexport default createComponent(Search);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils'; // Mixins\n\nimport { popupMixinProps } from '../mixins/popup'; // Components\n\nimport Popup from '../popup';\nvar PRESET_ICONS = ['qq', 'link', 'weibo', 'wechat', 'poster', 'qrcode', 'weapp-qrcode', 'wechat-moments'];\n\nvar _createNamespace = createNamespace('share-sheet'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: _extends({}, popupMixinProps, {\n title: String,\n duration: String,\n cancelText: String,\n description: String,\n getContainer: [String, Function],\n options: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n }),\n methods: {\n onCancel: function onCancel() {\n this.toggle(false);\n this.$emit('cancel');\n },\n onSelect: function onSelect(option, index) {\n this.$emit('select', option, index);\n },\n toggle: function toggle(val) {\n this.$emit('input', val);\n },\n getIconURL: function getIconURL(icon) {\n if (PRESET_ICONS.indexOf(icon) !== -1) {\n return \"https://img01.yzcdn.cn/vant/share-sheet-\" + icon + \".png\";\n }\n\n return icon;\n },\n genHeader: function genHeader() {\n var h = this.$createElement;\n var title = this.slots('title') || this.title;\n var description = this.slots('description') || this.description;\n\n if (!title && !description) {\n return;\n }\n\n return h(\"div\", {\n \"class\": bem('header')\n }, [title && h(\"h2\", {\n \"class\": bem('title')\n }, [title]), description && h(\"span\", {\n \"class\": bem('description')\n }, [description])]);\n },\n genOptions: function genOptions(options, showBorder) {\n var _this = this;\n\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('options', {\n border: showBorder\n })\n }, [options.map(function (option, index) {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"class\": [bem('option'), option.className],\n \"on\": {\n \"click\": function click() {\n _this.onSelect(option, index);\n }\n }\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": _this.getIconURL(option.icon)\n },\n \"class\": bem('icon')\n }), option.name && h(\"span\", {\n \"class\": bem('name')\n }, [option.name]), option.description && h(\"span\", {\n \"class\": bem('option-description')\n }, [option.description])]);\n })]);\n },\n genRows: function genRows() {\n var _this2 = this;\n\n var options = this.options;\n\n if (Array.isArray(options[0])) {\n return options.map(function (item, index) {\n return _this2.genOptions(item, index !== 0);\n });\n }\n\n return this.genOptions(options);\n },\n genCancelText: function genCancelText() {\n var _this$cancelText;\n\n var h = this.$createElement;\n var cancelText = (_this$cancelText = this.cancelText) != null ? _this$cancelText : t('cancel');\n\n if (cancelText) {\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": this.onCancel\n }\n }, [cancelText]);\n }\n },\n onClickOverlay: function onClickOverlay() {\n this.$emit('click-overlay');\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Popup, {\n \"attrs\": {\n \"round\": true,\n \"value\": this.value,\n \"position\": \"bottom\",\n \"overlay\": this.overlay,\n \"duration\": this.duration,\n \"lazyRender\": this.lazyRender,\n \"lockScroll\": this.lockScroll,\n \"getContainer\": this.getContainer,\n \"closeOnPopstate\": this.closeOnPopstate,\n \"closeOnClickOverlay\": this.closeOnClickOverlay,\n \"safeAreaInsetBottom\": this.safeAreaInsetBottom\n },\n \"class\": bem(),\n \"on\": {\n \"input\": this.toggle,\n \"click-overlay\": this.onClickOverlay\n }\n }, [this.genHeader(), this.genRows(), this.genCancelText()]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('sidebar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanSidebar')],\n model: {\n prop: 'activeKey'\n },\n props: {\n activeKey: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n index: +this.activeKey\n };\n },\n watch: {\n activeKey: function activeKey() {\n this.setIndex(+this.activeKey);\n }\n },\n methods: {\n setIndex: function setIndex(index) {\n if (index !== this.index) {\n this.index = index;\n this.$emit('change', index);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\nimport { route, routeProps } from '../utils/router';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('sidebar-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSidebar')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n title: String,\n disabled: Boolean\n }),\n computed: {\n select: function select() {\n return this.index === +this.parent.activeKey;\n }\n },\n methods: {\n onClick: function onClick() {\n if (this.disabled) {\n return;\n }\n\n this.$emit('click', this.index);\n this.parent.$emit('input', this.index);\n this.parent.setIndex(this.index);\n route(this.$router, this);\n }\n },\n render: function render() {\n var _this$slots, _this$badge;\n\n var h = arguments[0];\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] SidebarItem: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(\"a\", {\n \"class\": bem({\n select: this.select,\n disabled: this.disabled\n }),\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('text')\n }, [(_this$slots = this.slots('title')) != null ? _this$slots : this.title, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": (_this$badge = this.badge) != null ? _this$badge : this.info\n },\n \"class\": bem('info')\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('skeleton'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar DEFAULT_ROW_WIDTH = '100%';\nvar DEFAULT_LAST_ROW_WIDTH = '60%';\n\nfunction Skeleton(h, props, slots, ctx) {\n if (!props.loading) {\n return slots.default && slots.default();\n }\n\n function Title() {\n if (props.title) {\n return h(\"h3\", {\n \"class\": bem('title'),\n \"style\": {\n width: addUnit(props.titleWidth)\n }\n });\n }\n }\n\n function Rows() {\n var Rows = [];\n var rowWidth = props.rowWidth;\n\n function getRowWidth(index) {\n if (rowWidth === DEFAULT_ROW_WIDTH && index === +props.row - 1) {\n return DEFAULT_LAST_ROW_WIDTH;\n }\n\n if (Array.isArray(rowWidth)) {\n return rowWidth[index];\n }\n\n return rowWidth;\n }\n\n for (var i = 0; i < props.row; i++) {\n Rows.push(h(\"div\", {\n \"class\": bem('row'),\n \"style\": {\n width: addUnit(getRowWidth(i))\n }\n }));\n }\n\n return Rows;\n }\n\n function Avatar() {\n if (props.avatar) {\n var size = addUnit(props.avatarSize);\n return h(\"div\", {\n \"class\": bem('avatar', props.avatarShape),\n \"style\": {\n width: size,\n height: size\n }\n });\n }\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n animate: props.animate,\n round: props.round\n })\n }, inherit(ctx)]), [Avatar(), h(\"div\", {\n \"class\": bem('content')\n }, [Title(), Rows()])]);\n}\n\nSkeleton.props = {\n title: Boolean,\n round: Boolean,\n avatar: Boolean,\n titleWidth: [Number, String],\n avatarSize: [Number, String],\n row: {\n type: [Number, String],\n default: 0\n },\n loading: {\n type: Boolean,\n default: true\n },\n animate: {\n type: Boolean,\n default: true\n },\n avatarShape: {\n type: String,\n default: 'round'\n },\n rowWidth: {\n type: [Number, String, Array],\n default: DEFAULT_ROW_WIDTH\n }\n};\nexport default createComponent(Skeleton);","/**\n * Sku only provide zh-CN lang by default\n */\nexport default {\n 'zh-CN': {\n vanSku: {\n select: '请选择',\n selected: '已选',\n selectSku: '请先选择商品规格',\n soldout: '库存不足',\n originPrice: '原价',\n minusTip: '至少选择一件',\n minusStartTip: function minusStartTip(start) {\n return start + \"\\u4EF6\\u8D77\\u552E\";\n },\n unavailable: '商品已经无法购买啦',\n stock: '剩余',\n stockUnit: '件',\n quotaTip: function quotaTip(quota) {\n return \"\\u6BCF\\u4EBA\\u9650\\u8D2D\" + quota + \"\\u4EF6\";\n },\n quotaUsedTip: function quotaUsedTip(quota, count) {\n return \"\\u6BCF\\u4EBA\\u9650\\u8D2D\" + quota + \"\\u4EF6\\uFF0C\\u4F60\\u5DF2\\u8D2D\\u4E70\" + count + \"\\u4EF6\";\n }\n },\n vanSkuActions: {\n buy: '立即购买',\n addCart: '加入购物车'\n },\n vanSkuImgUploader: {\n oversize: function oversize(maxSize) {\n return \"\\u6700\\u5927\\u53EF\\u4E0A\\u4F20\\u56FE\\u7247\\u4E3A\" + maxSize + \"MB\\uFF0C\\u8BF7\\u5C1D\\u8BD5\\u538B\\u7F29\\u56FE\\u7247\\u5C3A\\u5BF8\";\n },\n fail: '上传失败',\n uploading: '上传中...'\n },\n vanSkuStepper: {\n quotaLimit: function quotaLimit(quota) {\n return \"\\u9650\\u8D2D\" + quota + \"\\u4EF6\";\n },\n quotaStart: function quotaStart(start) {\n return start + \"\\u4EF6\\u8D77\\u552E\";\n },\n comma: ',',\n num: '购买数量'\n },\n vanSkuMessages: {\n fill: '请填写',\n upload: '请上传',\n imageLabel: '仅限一张',\n invalid: {\n tel: '请填写正确的数字格式留言',\n mobile: '手机号长度为6-20位数字',\n email: '请填写正确的邮箱',\n id_no: '请填写正确的身份证号码'\n },\n placeholder: {\n id_no: '请填写身份证号',\n text: '请填写留言',\n tel: '请填写数字',\n email: '请填写邮箱',\n date: '请选择日期',\n time: '请选择时间',\n textarea: '请填写留言',\n mobile: '请填写手机号'\n }\n },\n vanSkuRow: {\n multiple: '可多选'\n },\n vanSkuDatetimeField: {\n title: {\n date: '选择年月日',\n time: '选择时间',\n datetime: '选择日期时间'\n },\n format: {\n year: '年',\n month: '月',\n day: '日',\n hour: '时',\n minute: '分'\n }\n }\n }\n};","export var LIMIT_TYPE = {\n QUOTA_LIMIT: 0,\n STOCK_LIMIT: 1\n};\nexport var UNSELECTED_SKU_VALUE_ID = '';\nexport default {\n LIMIT_TYPE: LIMIT_TYPE,\n UNSELECTED_SKU_VALUE_ID: UNSELECTED_SKU_VALUE_ID\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { UNSELECTED_SKU_VALUE_ID } from '../constants';\n/*\n normalize sku tree\n\n [\n {\n count: 2,\n k: \"品种\", // 规格名称 skuKeyName\n k_id: \"1200\", // skuKeyId\n k_s: \"s1\" // skuKeyStr\n v: [ // skuValues\n { // skuValue\n id: \"1201\", // skuValueId\n name: \"萌\" // 具体的规格值 skuValueName\n }, {\n id: \"973\",\n name: \"帅\"\n }\n ]\n },\n ...\n ]\n |\n v\n {\n s1: [{\n id: \"1201\",\n name: \"萌\"\n }, {\n id: \"973\",\n name: \"帅\"\n }],\n ...\n }\n */\n\nexport var normalizeSkuTree = function normalizeSkuTree(skuTree) {\n var normalizedTree = {};\n skuTree.forEach(function (treeItem) {\n normalizedTree[treeItem.k_s] = treeItem.v;\n });\n return normalizedTree;\n};\nexport var normalizePropList = function normalizePropList(propList) {\n var normalizedProp = {};\n propList.forEach(function (item) {\n var itemObj = {};\n item.v.forEach(function (it) {\n itemObj[it.id] = it;\n });\n normalizedProp[item.k_id] = itemObj;\n });\n return normalizedProp;\n}; // 判断是否所有的sku都已经选中\n\nexport var isAllSelected = function isAllSelected(skuTree, selectedSku) {\n // 筛选selectedSku对象中key值不为空的值\n var selected = Object.keys(selectedSku).filter(function (skuKeyStr) {\n return selectedSku[skuKeyStr] !== UNSELECTED_SKU_VALUE_ID;\n });\n return skuTree.length === selected.length;\n}; // 根据已选择的 sku 获取 skuComb\n\nexport var getSkuComb = function getSkuComb(skuList, selectedSku) {\n var skuComb = skuList.filter(function (item) {\n return Object.keys(selectedSku).every(function (skuKeyStr) {\n return String(item[skuKeyStr]) === String(selectedSku[skuKeyStr]);\n });\n });\n return skuComb[0];\n}; // 获取已选择的sku名称\n\nexport var getSelectedSkuValues = function getSelectedSkuValues(skuTree, selectedSku) {\n var normalizedTree = normalizeSkuTree(skuTree);\n return Object.keys(selectedSku).reduce(function (selectedValues, skuKeyStr) {\n var skuValues = normalizedTree[skuKeyStr] || [];\n var skuValueId = selectedSku[skuKeyStr];\n\n if (skuValueId !== UNSELECTED_SKU_VALUE_ID && skuValues.length > 0) {\n var skuValue = skuValues.filter(function (value) {\n return value.id === skuValueId;\n })[0];\n skuValue && selectedValues.push(skuValue);\n }\n\n return selectedValues;\n }, []);\n}; // 判断sku是否可选\n\nexport var isSkuChoosable = function isSkuChoosable(skuList, selectedSku, skuToChoose) {\n var _extends2;\n\n var key = skuToChoose.key,\n valueId = skuToChoose.valueId; // 先假设sku已选中,拼入已选中sku对象中\n\n var matchedSku = _extends({}, selectedSku, (_extends2 = {}, _extends2[key] = valueId, _extends2)); // 再判断剩余sku是否全部不可选,若不可选则当前sku不可选中\n\n\n var skusToCheck = Object.keys(matchedSku).filter(function (skuKey) {\n return matchedSku[skuKey] !== UNSELECTED_SKU_VALUE_ID;\n });\n var filteredSku = skuList.filter(function (sku) {\n return skusToCheck.every(function (skuKey) {\n return String(matchedSku[skuKey]) === String(sku[skuKey]);\n });\n });\n var stock = filteredSku.reduce(function (total, sku) {\n total += sku.stock_num;\n return total;\n }, 0);\n return stock > 0;\n};\nexport var getSelectedPropValues = function getSelectedPropValues(propList, selectedProp) {\n var normalizeProp = normalizePropList(propList);\n return Object.keys(selectedProp).reduce(function (acc, cur) {\n selectedProp[cur].forEach(function (it) {\n acc.push(_extends({}, normalizeProp[cur][it]));\n });\n return acc;\n }, []);\n};\nexport var getSelectedProperties = function getSelectedProperties(propList, selectedProp) {\n var list = [];\n (propList || []).forEach(function (prop) {\n if (selectedProp[prop.k_id] && selectedProp[prop.k_id].length > 0) {\n var v = [];\n prop.v.forEach(function (it) {\n if (selectedProp[prop.k_id].indexOf(it.id) > -1) {\n v.push(_extends({}, it));\n }\n });\n list.push(_extends({}, prop, {\n v: v\n }));\n }\n });\n return list;\n};\nexport default {\n normalizeSkuTree: normalizeSkuTree,\n getSkuComb: getSkuComb,\n getSelectedSkuValues: getSelectedSkuValues,\n isAllSelected: isAllSelected,\n isSkuChoosable: isSkuChoosable,\n getSelectedPropValues: getSelectedPropValues,\n getSelectedProperties: getSelectedProperties\n};","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../../utils';\nimport { inherit } from '../../utils/functional';\nimport { BORDER_BOTTOM } from '../../utils/constant'; // Components\n\nimport Image from '../../image'; // Types\n\nvar _createNamespace = createNamespace('sku-header'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction getSkuImgValue(sku, selectedSku) {\n var imgValue;\n sku.tree.some(function (item) {\n var id = selectedSku[item.k_s];\n\n if (id && item.v) {\n var matchedSku = item.v.filter(function (skuValue) {\n return skuValue.id === id;\n })[0] || {};\n var img = matchedSku.previewImgUrl || matchedSku.imgUrl || matchedSku.img_url;\n\n if (img) {\n imgValue = _extends({}, matchedSku, {\n ks: item.k_s,\n imgUrl: img\n });\n return true;\n }\n }\n\n return false;\n });\n return imgValue;\n}\n\nfunction SkuHeader(h, props, slots, ctx) {\n var _slots$skuHeaderIma;\n\n var sku = props.sku,\n goods = props.goods,\n skuEventBus = props.skuEventBus,\n selectedSku = props.selectedSku,\n _props$showHeaderImag = props.showHeaderImage,\n showHeaderImage = _props$showHeaderImag === void 0 ? true : _props$showHeaderImag;\n var selectedValue = getSkuImgValue(sku, selectedSku);\n var imgUrl = selectedValue ? selectedValue.imgUrl : goods.picture;\n\n var previewImage = function previewImage() {\n skuEventBus.$emit('sku:previewImage', selectedValue);\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), BORDER_BOTTOM]\n }, inherit(ctx)]), [showHeaderImage && h(Image, {\n \"attrs\": {\n \"fit\": \"cover\",\n \"src\": imgUrl\n },\n \"class\": bem('img-wrap'),\n \"on\": {\n \"click\": previewImage\n }\n }, [(_slots$skuHeaderIma = slots['sku-header-image-extra']) == null ? void 0 : _slots$skuHeaderIma.call(slots)]), h(\"div\", {\n \"class\": bem('goods-info')\n }, [slots.default == null ? void 0 : slots.default()])]);\n}\n\nSkuHeader.props = {\n sku: Object,\n goods: Object,\n skuEventBus: Object,\n selectedSku: Object,\n showHeaderImage: Boolean\n};\nexport default createComponent(SkuHeader);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../../utils';\nimport { inherit } from '../../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('sku-header-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction SkuHeader(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [slots.default && slots.default()]);\n}\n\nexport default createComponent(SkuHeader);","// Utils\nimport { createNamespace } from '../../utils';\nimport { BORDER_BOTTOM } from '../../utils/constant'; // Mixins\n\nimport { ParentMixin } from '../../mixins/relation';\nimport { BindEventMixin } from '../../mixins/bind-event';\n\nvar _createNamespace = createNamespace('sku-row'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport { bem };\nexport default createComponent({\n mixins: [ParentMixin('vanSkuRows'), BindEventMixin(function (bind) {\n if (this.scrollable && this.$refs.scroller) {\n bind(this.$refs.scroller, 'scroll', this.onScroll);\n }\n })],\n props: {\n skuRow: Object\n },\n data: function data() {\n return {\n progress: 0\n };\n },\n computed: {\n scrollable: function scrollable() {\n return this.skuRow.largeImageMode && this.skuRow.v.length > 6;\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this$$refs = this.$refs,\n scroller = _this$$refs.scroller,\n row = _this$$refs.row;\n var distance = row.offsetWidth - scroller.offsetWidth;\n this.progress = scroller.scrollLeft / distance;\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('title')\n }, [this.skuRow.k, this.skuRow.is_multiple && h(\"span\", {\n \"class\": bem('title-multiple')\n }, [\"\\uFF08\", t('multiple'), \"\\uFF09\"])]);\n },\n genIndicator: function genIndicator() {\n var h = this.$createElement;\n\n if (this.scrollable) {\n var style = {\n transform: \"translate3d(\" + this.progress * 20 + \"px, 0, 0)\"\n };\n return h(\"div\", {\n \"class\": bem('indicator-wrapper')\n }, [h(\"div\", {\n \"class\": bem('indicator')\n }, [h(\"div\", {\n \"class\": bem('indicator-slider'),\n \"style\": style\n })])]);\n }\n },\n genContent: function genContent() {\n var h = this.$createElement;\n var nodes = this.slots();\n\n if (this.skuRow.largeImageMode) {\n var top = [];\n var bottom = [];\n nodes.forEach(function (node, index) {\n var group = Math.floor(index / 3) % 2 === 0 ? top : bottom;\n group.push(node);\n });\n return h(\"div\", {\n \"class\": bem('scroller'),\n \"ref\": \"scroller\"\n }, [h(\"div\", {\n \"class\": bem('row'),\n \"ref\": \"row\"\n }, [top]), bottom.length ? h(\"div\", {\n \"class\": bem('row')\n }, [bottom]) : null]);\n }\n\n return nodes;\n },\n centerItem: function centerItem(selectSkuId) {\n if (!this.skuRow.largeImageMode || !selectSkuId) {\n return;\n }\n\n var _this$children = this.children,\n children = _this$children === void 0 ? [] : _this$children;\n var _this$$refs2 = this.$refs,\n scroller = _this$$refs2.scroller,\n row = _this$$refs2.row;\n var child = children.find(function (it) {\n return +it.skuValue.id === +selectSkuId;\n });\n\n if (scroller && row && child && child.$el) {\n var target = child.$el;\n var to = target.offsetLeft - (scroller.offsetWidth - target.offsetWidth) / 2;\n scroller.scrollLeft = to;\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": [bem(), BORDER_BOTTOM]\n }, [this.genTitle(), this.genContent(), this.genIndicator()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { bem } from './SkuRow';\nimport { createNamespace } from '../../utils';\nimport { isSkuChoosable } from '../utils/sku-helper';\nimport { ChildrenMixin } from '../../mixins/relation';\nimport Icon from '../../icon';\nimport Image from '../../image';\n\nvar _createNamespace = createNamespace('sku-row-item'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSkuRows')],\n props: {\n lazyLoad: Boolean,\n skuValue: Object,\n skuKeyStr: String,\n skuEventBus: Object,\n selectedSku: Object,\n largeImageMode: Boolean,\n disableSoldoutSku: Boolean,\n skuList: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n imgUrl: function imgUrl() {\n var url = this.skuValue.imgUrl || this.skuValue.img_url;\n return this.largeImageMode ? url || 'https://img01.yzcdn.cn/upload_files/2020/06/24/FmKWDg0bN9rMcTp9ne8MXiQWGtLn.png' : url;\n },\n choosable: function choosable() {\n if (!this.disableSoldoutSku) {\n return true;\n }\n\n return isSkuChoosable(this.skuList, this.selectedSku, {\n key: this.skuKeyStr,\n valueId: this.skuValue.id\n });\n }\n },\n methods: {\n onSelect: function onSelect() {\n if (this.choosable) {\n this.skuEventBus.$emit('sku:select', _extends({}, this.skuValue, {\n skuKeyStr: this.skuKeyStr\n }));\n }\n },\n onPreviewImg: function onPreviewImg(event) {\n event.stopPropagation();\n var skuValue = this.skuValue,\n skuKeyStr = this.skuKeyStr;\n this.skuEventBus.$emit('sku:previewImage', _extends({}, skuValue, {\n ks: skuKeyStr,\n imgUrl: skuValue.imgUrl || skuValue.img_url\n }));\n },\n genImage: function genImage(classPrefix) {\n var h = this.$createElement;\n\n if (this.imgUrl) {\n return h(Image, {\n \"attrs\": {\n \"fit\": \"cover\",\n \"src\": this.imgUrl,\n \"lazyLoad\": this.lazyLoad\n },\n \"class\": classPrefix + \"-img\"\n });\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];\n var classPrefix = this.largeImageMode ? bem('image-item') : bem('item');\n return h(\"span\", {\n \"class\": [classPrefix, choosed ? classPrefix + \"--active\" : '', !this.choosable ? classPrefix + \"--disabled\" : ''],\n \"on\": {\n \"click\": this.onSelect\n }\n }, [this.genImage(classPrefix), h(\"div\", {\n \"class\": classPrefix + \"-name\"\n }, [this.largeImageMode ? h(\"span\", {\n \"class\": {\n 'van-multi-ellipsis--l2': this.largeImageMode\n }\n }, [this.skuValue.name]) : this.skuValue.name]), this.largeImageMode && h(Icon, {\n \"attrs\": {\n \"name\": \"enlarge\"\n },\n \"class\": classPrefix + \"-img-icon\",\n \"on\": {\n \"click\": this.onPreviewImg\n }\n })]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../../utils';\n\nvar _createNamespace = createNamespace('sku-row-prop-item'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n props: {\n skuValue: Object,\n skuKeyStr: String,\n skuEventBus: Object,\n selectedProp: Object,\n multiple: Boolean,\n disabled: Boolean\n },\n computed: {\n choosed: function choosed() {\n var selectedProp = this.selectedProp,\n skuKeyStr = this.skuKeyStr,\n skuValue = this.skuValue;\n\n if (selectedProp && selectedProp[skuKeyStr]) {\n return selectedProp[skuKeyStr].indexOf(skuValue.id) > -1;\n }\n\n return false;\n }\n },\n methods: {\n onSelect: function onSelect() {\n if (this.disabled) return;\n this.skuEventBus.$emit('sku:propSelect', _extends({}, this.skuValue, {\n skuKeyStr: this.skuKeyStr,\n multiple: this.multiple\n }));\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"span\", {\n \"class\": ['van-sku-row__item', {\n 'van-sku-row__item--active': this.choosed\n }, {\n 'van-sku-row__item--disabled': this.disabled\n }],\n \"on\": {\n \"click\": this.onSelect\n }\n }, [h(\"span\", {\n \"class\": \"van-sku-row__item-name\"\n }, [this.skuValue.name])]);\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, isDef, addUnit } from '../utils';\nimport { resetScroll } from '../utils/dom/reset-scroll';\nimport { preventDefault } from '../utils/dom/event';\nimport { addNumber, formatNumber as _formatNumber } from '../utils/format/number';\nimport { isNaN } from '../utils/validate/number';\nimport { FieldMixin } from '../mixins/field';\n\nvar _createNamespace = createNamespace('stepper'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar LONG_PRESS_START_TIME = 600;\nvar LONG_PRESS_INTERVAL = 200;\n\nfunction equal(value1, value2) {\n return String(value1) === String(value2);\n}\n\nexport default createComponent({\n mixins: [FieldMixin],\n props: {\n value: null,\n theme: String,\n integer: Boolean,\n disabled: Boolean,\n allowEmpty: Boolean,\n inputWidth: [Number, String],\n buttonSize: [Number, String],\n asyncChange: Boolean,\n placeholder: String,\n disablePlus: Boolean,\n disableMinus: Boolean,\n disableInput: Boolean,\n decimalLength: [Number, String],\n name: {\n type: [Number, String],\n default: ''\n },\n min: {\n type: [Number, String],\n default: 1\n },\n max: {\n type: [Number, String],\n default: Infinity\n },\n step: {\n type: [Number, String],\n default: 1\n },\n defaultValue: {\n type: [Number, String],\n default: 1\n },\n showPlus: {\n type: Boolean,\n default: true\n },\n showMinus: {\n type: Boolean,\n default: true\n },\n showInput: {\n type: Boolean,\n default: true\n },\n longPress: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n var _this$value;\n\n var defaultValue = (_this$value = this.value) != null ? _this$value : this.defaultValue;\n var value = this.format(defaultValue);\n\n if (!equal(value, this.value)) {\n this.$emit('input', value);\n }\n\n return {\n currentValue: value\n };\n },\n computed: {\n minusDisabled: function minusDisabled() {\n return this.disabled || this.disableMinus || this.currentValue <= +this.min;\n },\n plusDisabled: function plusDisabled() {\n return this.disabled || this.disablePlus || this.currentValue >= +this.max;\n },\n inputStyle: function inputStyle() {\n var style = {};\n\n if (this.inputWidth) {\n style.width = addUnit(this.inputWidth);\n }\n\n if (this.buttonSize) {\n style.height = addUnit(this.buttonSize);\n }\n\n return style;\n },\n buttonStyle: function buttonStyle() {\n if (this.buttonSize) {\n var size = addUnit(this.buttonSize);\n return {\n width: size,\n height: size\n };\n }\n }\n },\n watch: {\n max: 'check',\n min: 'check',\n integer: 'check',\n decimalLength: 'check',\n value: function value(val) {\n if (!equal(val, this.currentValue)) {\n this.currentValue = this.format(val);\n }\n },\n currentValue: function currentValue(val) {\n this.$emit('input', val);\n this.$emit('change', val, {\n name: this.name\n });\n }\n },\n methods: {\n check: function check() {\n var val = this.format(this.currentValue);\n\n if (!equal(val, this.currentValue)) {\n this.currentValue = val;\n }\n },\n // formatNumber illegal characters\n formatNumber: function formatNumber(value) {\n return _formatNumber(String(value), !this.integer);\n },\n format: function format(value) {\n if (this.allowEmpty && value === '') {\n return value;\n }\n\n value = this.formatNumber(value); // format range\n\n value = value === '' ? 0 : +value;\n value = isNaN(value) ? this.min : value;\n value = Math.max(Math.min(this.max, value), this.min); // format decimal\n\n if (isDef(this.decimalLength)) {\n value = value.toFixed(this.decimalLength);\n }\n\n return value;\n },\n onInput: function onInput(event) {\n var value = event.target.value;\n var formatted = this.formatNumber(value); // limit max decimal length\n\n if (isDef(this.decimalLength) && formatted.indexOf('.') !== -1) {\n var pair = formatted.split('.');\n formatted = pair[0] + \".\" + pair[1].slice(0, this.decimalLength);\n }\n\n if (!equal(value, formatted)) {\n event.target.value = formatted;\n } // prefer number type\n\n\n if (formatted === String(+formatted)) {\n formatted = +formatted;\n }\n\n this.emitChange(formatted);\n },\n emitChange: function emitChange(value) {\n if (this.asyncChange) {\n this.$emit('input', value);\n this.$emit('change', value, {\n name: this.name\n });\n } else {\n this.currentValue = value;\n }\n },\n onChange: function onChange() {\n var type = this.type;\n\n if (this[type + \"Disabled\"]) {\n this.$emit('overlimit', type);\n return;\n }\n\n var diff = type === 'minus' ? -this.step : +this.step;\n var value = this.format(addNumber(+this.currentValue, diff));\n this.emitChange(value);\n this.$emit(type);\n },\n onFocus: function onFocus(event) {\n // readonly not work in legacy mobile safari\n if (this.disableInput && this.$refs.input) {\n this.$refs.input.blur();\n } else {\n this.$emit('focus', event);\n }\n },\n onBlur: function onBlur(event) {\n var value = this.format(event.target.value);\n event.target.value = value;\n this.emitChange(value);\n this.$emit('blur', event);\n resetScroll();\n },\n longPressStep: function longPressStep() {\n var _this = this;\n\n this.longPressTimer = setTimeout(function () {\n _this.onChange();\n\n _this.longPressStep(_this.type);\n }, LONG_PRESS_INTERVAL);\n },\n onTouchStart: function onTouchStart() {\n var _this2 = this;\n\n if (!this.longPress) {\n return;\n }\n\n clearTimeout(this.longPressTimer);\n this.isLongPress = false;\n this.longPressTimer = setTimeout(function () {\n _this2.isLongPress = true;\n\n _this2.onChange();\n\n _this2.longPressStep();\n }, LONG_PRESS_START_TIME);\n },\n onTouchEnd: function onTouchEnd(event) {\n if (!this.longPress) {\n return;\n }\n\n clearTimeout(this.longPressTimer);\n\n if (this.isLongPress) {\n preventDefault(event);\n }\n },\n onMousedown: function onMousedown(event) {\n // fix mobile safari page scroll down issue\n // see: https://github.com/vant-ui/vant/issues/7690\n if (this.disableInput) {\n event.preventDefault();\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n\n var createListeners = function createListeners(type) {\n return {\n on: {\n click: function click(e) {\n // disable double tap scrolling on mobile safari\n e.preventDefault();\n _this3.type = type;\n\n _this3.onChange();\n },\n touchstart: function touchstart() {\n _this3.type = type;\n\n _this3.onTouchStart();\n },\n touchend: _this3.onTouchEnd,\n touchcancel: _this3.onTouchEnd\n }\n };\n };\n\n return h(\"div\", {\n \"class\": bem([this.theme])\n }, [h(\"button\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: this.showMinus\n }],\n \"attrs\": {\n \"type\": \"button\"\n },\n \"style\": this.buttonStyle,\n \"class\": bem('minus', {\n disabled: this.minusDisabled\n })\n }, createListeners('minus')])), h(\"input\", {\n \"directives\": [{\n name: \"show\",\n value: this.showInput\n }],\n \"ref\": \"input\",\n \"attrs\": {\n \"type\": this.integer ? 'tel' : 'text',\n \"role\": \"spinbutton\",\n \"disabled\": this.disabled,\n \"readonly\": this.disableInput,\n \"inputmode\": this.integer ? 'numeric' : 'decimal',\n \"placeholder\": this.placeholder,\n \"aria-valuemax\": this.max,\n \"aria-valuemin\": this.min,\n \"aria-valuenow\": this.currentValue\n },\n \"class\": bem('input'),\n \"domProps\": {\n \"value\": this.currentValue\n },\n \"style\": this.inputStyle,\n \"on\": {\n \"input\": this.onInput,\n \"focus\": this.onFocus,\n \"blur\": this.onBlur,\n \"mousedown\": this.onMousedown\n }\n }), h(\"button\", _mergeJSXProps2([{\n \"directives\": [{\n name: \"show\",\n value: this.showPlus\n }],\n \"attrs\": {\n \"type\": \"button\"\n },\n \"style\": this.buttonStyle,\n \"class\": bem('plus', {\n disabled: this.plusDisabled\n })\n }, createListeners('plus')]))]);\n }\n});","import { createNamespace } from '../../utils';\nimport { LIMIT_TYPE } from '../constants';\nimport Stepper from '../../stepper';\nvar namespace = createNamespace('sku-stepper');\nvar createComponent = namespace[0];\nvar t = namespace[2];\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT,\n STOCK_LIMIT = LIMIT_TYPE.STOCK_LIMIT;\nexport default createComponent({\n props: {\n stock: Number,\n skuEventBus: Object,\n skuStockNum: Number,\n selectedNum: Number,\n stepperTitle: String,\n disableStepperInput: Boolean,\n customStepperConfig: Object,\n hideQuotaText: Boolean,\n quota: {\n type: Number,\n default: 0\n },\n quotaUsed: {\n type: Number,\n default: 0\n },\n startSaleNum: {\n type: Number,\n default: 1\n }\n },\n data: function data() {\n return {\n currentNum: this.selectedNum,\n // 购买限制类型: 限购/库存\n limitType: STOCK_LIMIT\n };\n },\n watch: {\n currentNum: function currentNum(num) {\n var intValue = parseInt(num, 10);\n\n if (intValue >= this.stepperMinLimit && intValue <= this.stepperLimit) {\n this.skuEventBus.$emit('sku:numChange', intValue);\n }\n },\n stepperLimit: function stepperLimit(limit) {\n if (limit < this.currentNum && this.stepperMinLimit <= limit) {\n this.currentNum = limit;\n }\n\n this.checkState(this.stepperMinLimit, limit);\n },\n stepperMinLimit: function stepperMinLimit(start) {\n if (start > this.currentNum || start > this.stepperLimit) {\n this.currentNum = start;\n }\n\n this.checkState(start, this.stepperLimit);\n }\n },\n computed: {\n stepperLimit: function stepperLimit() {\n var quotaLimit = this.quota - this.quotaUsed;\n var limit; // 无限购时直接取库存,有限购时取限购数和库存数中小的那个\n\n if (this.quota > 0 && quotaLimit <= this.stock) {\n // 修正负的limit\n limit = quotaLimit < 0 ? 0 : quotaLimit;\n this.limitType = QUOTA_LIMIT;\n } else {\n limit = this.stock;\n this.limitType = STOCK_LIMIT;\n }\n\n return limit;\n },\n stepperMinLimit: function stepperMinLimit() {\n return this.startSaleNum < 1 ? 1 : this.startSaleNum;\n },\n quotaText: function quotaText() {\n var _this$customStepperCo = this.customStepperConfig,\n quotaText = _this$customStepperCo.quotaText,\n hideQuotaText = _this$customStepperCo.hideQuotaText;\n if (hideQuotaText) return '';\n var text = '';\n\n if (quotaText) {\n text = quotaText;\n } else {\n var textArr = [];\n\n if (this.startSaleNum > 1) {\n textArr.push(t('quotaStart', this.startSaleNum));\n }\n\n if (this.quota > 0) {\n textArr.push(t('quotaLimit', this.quota));\n }\n\n text = textArr.join(t('comma'));\n }\n\n return text;\n }\n },\n created: function created() {\n this.checkState(this.stepperMinLimit, this.stepperLimit);\n },\n methods: {\n setCurrentNum: function setCurrentNum(num) {\n this.currentNum = num;\n this.checkState(this.stepperMinLimit, this.stepperLimit);\n },\n onOverLimit: function onOverLimit(action) {\n this.skuEventBus.$emit('sku:overLimit', {\n action: action,\n limitType: this.limitType,\n quota: this.quota,\n quotaUsed: this.quotaUsed,\n startSaleNum: this.startSaleNum\n });\n },\n onChange: function onChange(currentValue) {\n var intValue = parseInt(currentValue, 10);\n var handleStepperChange = this.customStepperConfig.handleStepperChange;\n handleStepperChange && handleStepperChange(intValue);\n this.$emit('change', intValue);\n },\n checkState: function checkState(min, max) {\n // 如果选择小于起售,则强制变为起售\n if (this.currentNum < min || min > max) {\n this.currentNum = min;\n } else if (this.currentNum > max) {\n // 当前选择数量大于最大可选时,需要重置已选数量\n this.currentNum = max;\n }\n\n this.skuEventBus.$emit('sku:stepperState', {\n valid: min <= max,\n min: min,\n max: max,\n limitType: this.limitType,\n quota: this.quota,\n quotaUsed: this.quotaUsed,\n startSaleNum: this.startSaleNum\n });\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n return h(\"div\", {\n \"class\": \"van-sku-stepper-stock\"\n }, [h(\"div\", {\n \"class\": \"van-sku__stepper-title\"\n }, [this.stepperTitle || t('num')]), h(Stepper, {\n \"attrs\": {\n \"integer\": true,\n \"min\": this.stepperMinLimit,\n \"max\": this.stepperLimit,\n \"disableInput\": this.disableStepperInput\n },\n \"class\": \"van-sku__stepper\",\n \"on\": {\n \"overlimit\": this.onOverLimit,\n \"change\": this.onChange\n },\n \"model\": {\n value: _this.currentNum,\n callback: function callback($$v) {\n _this.currentNum = $$v;\n }\n }\n }), !this.hideQuotaText && this.quotaText && h(\"span\", {\n \"class\": \"van-sku__stepper-quota\"\n }, [\"(\", this.quotaText, \")\"])]);\n }\n});","/* eslint-disable */\nexport function isEmail(value) {\n var reg = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/;\n return reg.test(value.trim());\n}","import { isFunction } from '../utils';\nexport function toArray(item) {\n if (Array.isArray(item)) {\n return item;\n }\n\n return [item];\n}\nexport function readFile(file, resultType) {\n return new Promise(function (resolve) {\n if (resultType === 'file') {\n resolve(null);\n return;\n }\n\n var reader = new FileReader();\n\n reader.onload = function (event) {\n resolve(event.target.result);\n };\n\n if (resultType === 'dataUrl') {\n reader.readAsDataURL(file);\n } else if (resultType === 'text') {\n reader.readAsText(file);\n }\n });\n}\nexport function isOversize(files, maxSize) {\n return toArray(files).some(function (file) {\n if (file) {\n if (isFunction(maxSize)) {\n return maxSize(file);\n }\n\n return file.size > maxSize;\n }\n\n return false;\n });\n}\nvar IMAGE_REGEXP = /\\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;\nexport function isImageUrl(url) {\n return IMAGE_REGEXP.test(url);\n}\nexport function isImageFile(item) {\n // some special urls cannot be recognized\n // user can add `isImage` flag to mark it as an image url\n if (item.isImage) {\n return true;\n }\n\n if (item.file && item.file.type) {\n return item.file.type.indexOf('image') === 0;\n }\n\n if (item.url) {\n return isImageUrl(item.url);\n }\n\n if (item.content) {\n return item.content.indexOf('data:image') === 0;\n }\n\n return false;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, addUnit, noop, isPromise, isDef } from '../utils';\nimport { toArray, readFile as _readFile, isOversize, isImageFile } from './utils'; // Mixins\n\nimport { FieldMixin } from '../mixins/field'; // Components\n\nimport Icon from '../icon';\nimport Image from '../image';\nimport Loading from '../loading';\nimport ImagePreview from '../image-preview';\n\nvar _createNamespace = createNamespace('uploader'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n inheritAttrs: false,\n mixins: [FieldMixin],\n model: {\n prop: 'fileList'\n },\n props: {\n disabled: Boolean,\n readonly: Boolean,\n lazyLoad: Boolean,\n uploadText: String,\n afterRead: Function,\n beforeRead: Function,\n beforeDelete: Function,\n previewSize: [Number, String],\n previewOptions: Object,\n name: {\n type: [Number, String],\n default: ''\n },\n accept: {\n type: String,\n default: 'image/*'\n },\n fileList: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n maxSize: {\n type: [Number, String, Function],\n default: Number.MAX_VALUE\n },\n maxCount: {\n type: [Number, String],\n default: Number.MAX_VALUE\n },\n deletable: {\n type: Boolean,\n default: true\n },\n showUpload: {\n type: Boolean,\n default: true\n },\n previewImage: {\n type: Boolean,\n default: true\n },\n previewFullImage: {\n type: Boolean,\n default: true\n },\n imageFit: {\n type: String,\n default: 'cover'\n },\n resultType: {\n type: String,\n default: 'dataUrl'\n },\n uploadIcon: {\n type: String,\n default: 'photograph'\n }\n },\n computed: {\n previewSizeWithUnit: function previewSizeWithUnit() {\n return addUnit(this.previewSize);\n },\n // for form\n value: function value() {\n return this.fileList;\n }\n },\n created: function created() {\n this.urls = [];\n },\n beforeDestroy: function beforeDestroy() {\n this.urls.forEach(function (url) {\n return URL.revokeObjectURL(url);\n });\n },\n methods: {\n getDetail: function getDetail(index) {\n if (index === void 0) {\n index = this.fileList.length;\n }\n\n return {\n name: this.name,\n index: index\n };\n },\n onChange: function onChange(event) {\n var _this = this;\n\n var files = event.target.files;\n\n if (this.disabled || !files.length) {\n return;\n }\n\n files = files.length === 1 ? files[0] : [].slice.call(files);\n\n if (this.beforeRead) {\n var response = this.beforeRead(files, this.getDetail());\n\n if (!response) {\n this.resetInput();\n return;\n }\n\n if (isPromise(response)) {\n response.then(function (data) {\n if (data) {\n _this.readFile(data);\n } else {\n _this.readFile(files);\n }\n }).catch(this.resetInput);\n return;\n }\n }\n\n this.readFile(files);\n },\n readFile: function readFile(files) {\n var _this2 = this;\n\n var oversize = isOversize(files, this.maxSize);\n\n if (Array.isArray(files)) {\n var maxCount = this.maxCount - this.fileList.length;\n\n if (files.length > maxCount) {\n files = files.slice(0, maxCount);\n }\n\n Promise.all(files.map(function (file) {\n return _readFile(file, _this2.resultType);\n })).then(function (contents) {\n var fileList = files.map(function (file, index) {\n var result = {\n file: file,\n status: '',\n message: ''\n };\n\n if (contents[index]) {\n result.content = contents[index];\n }\n\n return result;\n });\n\n _this2.onAfterRead(fileList, oversize);\n });\n } else {\n _readFile(files, this.resultType).then(function (content) {\n var result = {\n file: files,\n status: '',\n message: ''\n };\n\n if (content) {\n result.content = content;\n }\n\n _this2.onAfterRead(result, oversize);\n });\n }\n },\n onAfterRead: function onAfterRead(files, oversize) {\n var _this3 = this;\n\n this.resetInput();\n var validFiles = files;\n\n if (oversize) {\n var oversizeFiles = files;\n\n if (Array.isArray(files)) {\n oversizeFiles = [];\n validFiles = [];\n files.forEach(function (item) {\n if (item.file) {\n if (isOversize(item.file, _this3.maxSize)) {\n oversizeFiles.push(item);\n } else {\n validFiles.push(item);\n }\n }\n });\n } else {\n validFiles = null;\n }\n\n this.$emit('oversize', oversizeFiles, this.getDetail());\n }\n\n var isValidFiles = Array.isArray(validFiles) ? Boolean(validFiles.length) : Boolean(validFiles);\n\n if (isValidFiles) {\n this.$emit('input', [].concat(this.fileList, toArray(validFiles)));\n\n if (this.afterRead) {\n this.afterRead(validFiles, this.getDetail());\n }\n }\n },\n onDelete: function onDelete(file, index) {\n var _file$beforeDelete,\n _this4 = this;\n\n var beforeDelete = (_file$beforeDelete = file.beforeDelete) != null ? _file$beforeDelete : this.beforeDelete;\n\n if (beforeDelete) {\n var response = beforeDelete(file, this.getDetail(index));\n\n if (!response) {\n return;\n }\n\n if (isPromise(response)) {\n response.then(function () {\n _this4.deleteFile(file, index);\n }).catch(noop);\n return;\n }\n }\n\n this.deleteFile(file, index);\n },\n deleteFile: function deleteFile(file, index) {\n var fileList = this.fileList.slice(0);\n fileList.splice(index, 1);\n this.$emit('input', fileList);\n this.$emit('delete', file, this.getDetail(index));\n },\n resetInput: function resetInput() {\n /* istanbul ignore else */\n if (this.$refs.input) {\n this.$refs.input.value = '';\n }\n },\n onClickUpload: function onClickUpload(event) {\n this.$emit('click-upload', event);\n },\n onPreviewImage: function onPreviewImage(item) {\n var _this5 = this;\n\n if (!this.previewFullImage) {\n return;\n }\n\n var imageFiles = this.fileList.filter(function (item) {\n return isImageFile(item);\n });\n var imageContents = imageFiles.map(function (item) {\n if (item.file && !item.url && item.status !== 'failed') {\n item.url = URL.createObjectURL(item.file);\n\n _this5.urls.push(item.url);\n }\n\n return item.url;\n });\n this.imagePreview = ImagePreview(_extends({\n images: imageContents,\n startPosition: imageFiles.indexOf(item),\n onClose: function onClose() {\n _this5.$emit('close-preview');\n }\n }, this.previewOptions));\n },\n // @exposed-api\n closeImagePreview: function closeImagePreview() {\n if (this.imagePreview) {\n this.imagePreview.close();\n }\n },\n // @exposed-api\n chooseFile: function chooseFile() {\n if (this.disabled) {\n return;\n }\n /* istanbul ignore else */\n\n\n if (this.$refs.input) {\n this.$refs.input.click();\n }\n },\n genPreviewMask: function genPreviewMask(item) {\n var h = this.$createElement;\n var status = item.status,\n message = item.message;\n\n if (status === 'uploading' || status === 'failed') {\n var MaskIcon = status === 'failed' ? h(Icon, {\n \"attrs\": {\n \"name\": \"close\"\n },\n \"class\": bem('mask-icon')\n }) : h(Loading, {\n \"class\": bem('loading')\n });\n var showMessage = isDef(message) && message !== '';\n return h(\"div\", {\n \"class\": bem('mask')\n }, [MaskIcon, showMessage && h(\"div\", {\n \"class\": bem('mask-message')\n }, [message])]);\n }\n },\n genPreviewItem: function genPreviewItem(item, index) {\n var _item$deletable,\n _this6 = this,\n _item$previewSize,\n _item$imageFit;\n\n var h = this.$createElement;\n var deleteAble = (_item$deletable = item.deletable) != null ? _item$deletable : this.deletable;\n var showDelete = item.status !== 'uploading' && deleteAble;\n var DeleteIcon = showDelete && h(\"div\", {\n \"class\": bem('preview-delete'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n\n _this6.onDelete(item, index);\n }\n }\n }, [h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('preview-delete-icon')\n })]);\n var PreviewCoverContent = this.slots('preview-cover', _extends({\n index: index\n }, item));\n var PreviewCover = PreviewCoverContent && h(\"div\", {\n \"class\": bem('preview-cover')\n }, [PreviewCoverContent]);\n var previewSize = (_item$previewSize = item.previewSize) != null ? _item$previewSize : this.previewSize;\n var imageFit = (_item$imageFit = item.imageFit) != null ? _item$imageFit : this.imageFit;\n var Preview = isImageFile(item) ? h(Image, {\n \"attrs\": {\n \"fit\": imageFit,\n \"src\": item.content || item.url,\n \"width\": previewSize,\n \"height\": previewSize,\n \"lazyLoad\": this.lazyLoad\n },\n \"class\": bem('preview-image'),\n \"on\": {\n \"click\": function click() {\n _this6.onPreviewImage(item);\n }\n }\n }, [PreviewCover]) : h(\"div\", {\n \"class\": bem('file'),\n \"style\": {\n width: this.previewSizeWithUnit,\n height: this.previewSizeWithUnit\n }\n }, [h(Icon, {\n \"class\": bem('file-icon'),\n \"attrs\": {\n \"name\": \"description\"\n }\n }), h(\"div\", {\n \"class\": [bem('file-name'), 'van-ellipsis']\n }, [item.file ? item.file.name : item.url]), PreviewCover]);\n return h(\"div\", {\n \"class\": bem('preview'),\n \"on\": {\n \"click\": function click() {\n _this6.$emit('click-preview', item, _this6.getDetail(index));\n }\n }\n }, [Preview, this.genPreviewMask(item), DeleteIcon]);\n },\n genPreviewList: function genPreviewList() {\n if (this.previewImage) {\n return this.fileList.map(this.genPreviewItem);\n }\n },\n genUpload: function genUpload() {\n var h = this.$createElement;\n\n if (this.fileList.length >= this.maxCount) {\n return;\n }\n\n var slot = this.slots();\n var Input = this.readonly ? null : h(\"input\", {\n \"attrs\": _extends({}, this.$attrs, {\n \"type\": \"file\",\n \"accept\": this.accept,\n \"disabled\": this.disabled\n }),\n \"ref\": \"input\",\n \"class\": bem('input'),\n \"on\": {\n \"change\": this.onChange\n }\n });\n\n if (slot) {\n return h(\"div\", {\n \"class\": bem('input-wrapper'),\n \"key\": \"input-wrapper\",\n \"on\": {\n \"click\": this.onClickUpload\n }\n }, [slot, Input]);\n }\n\n var style;\n\n if (this.previewSize) {\n var size = this.previewSizeWithUnit;\n style = {\n width: size,\n height: size\n };\n }\n\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.showUpload\n }],\n \"class\": bem('upload', {\n readonly: this.readonly\n }),\n \"style\": style,\n \"on\": {\n \"click\": this.onClickUpload\n }\n }, [h(Icon, {\n \"attrs\": {\n \"name\": this.uploadIcon\n },\n \"class\": bem('upload-icon')\n }), this.uploadText && h(\"span\", {\n \"class\": bem('upload-text')\n }, [this.uploadText]), Input]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('wrapper', {\n disabled: this.disabled\n })\n }, [this.genPreviewList(), this.genUpload()])]);\n }\n});","// Utils\nimport { createNamespace } from '../../utils'; // Components\n\nimport Uploader from '../../uploader';\nvar namespace = createNamespace('sku-img-uploader');\nvar createComponent = namespace[0];\nvar t = namespace[2];\nexport default createComponent({\n props: {\n value: String,\n uploadImg: Function,\n customUpload: Function,\n maxSize: {\n type: Number,\n default: 6\n }\n },\n data: function data() {\n return {\n fileList: []\n };\n },\n watch: {\n value: function value(val) {\n if (val) {\n this.fileList = [{\n url: val,\n isImage: true\n }];\n } else {\n this.fileList = [];\n }\n }\n },\n methods: {\n afterReadFile: function afterReadFile(file) {\n var _this = this;\n\n file.status = 'uploading';\n file.message = t('uploading');\n this.uploadImg(file.file, file.content).then(function (img) {\n file.status = 'done';\n\n _this.$emit('input', img);\n }).catch(function () {\n file.status = 'failed';\n file.message = t('fail');\n });\n },\n onOversize: function onOversize() {\n this.$toast(t('oversize', this.maxSize));\n },\n onDelete: function onDelete() {\n this.$emit('input', '');\n },\n onClickUpload: function onClickUpload() {\n var _this2 = this;\n\n if (this.customUpload) {\n this.customUpload().then(function (url) {\n _this2.fileList.push({\n url: url\n });\n\n _this2.$emit('input', url);\n });\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n return h(Uploader, {\n \"attrs\": {\n \"maxCount\": 1,\n \"readonly\": !!this.customUpload,\n \"maxSize\": this.maxSize * 1024 * 1024,\n \"afterRead\": this.afterReadFile\n },\n \"on\": {\n \"oversize\": this.onOversize,\n \"delete\": this.onDelete,\n \"click-upload\": this.onClickUpload\n },\n \"model\": {\n value: _this3.fileList,\n callback: function callback($$v) {\n _this3.fileList = $$v;\n }\n }\n });\n }\n});","import { padZero } from '../../utils/format/string'; // 字符串转 Date\n// 只处理 YYYY-MM-DD 或者 YYYY-MM-DD HH:MM 格式\n\nexport function stringToDate(timeString) {\n if (!timeString) {\n return null;\n }\n\n return new Date(timeString.replace(/-/g, '/'));\n} // Date 转字符串\n// type: date or datetime\n\nexport function dateToString(date, type) {\n if (type === void 0) {\n type = 'date';\n }\n\n if (!date) {\n return '';\n }\n\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n var timeString = year + \"-\" + padZero(month) + \"-\" + padZero(day);\n\n if (type === 'datetime') {\n var hours = date.getHours();\n var minute = date.getMinutes();\n timeString += \" \" + padZero(hours) + \":\" + padZero(minute);\n }\n\n return timeString;\n}","// Utils\nimport { createNamespace } from '../../utils';\nimport { stringToDate, dateToString } from '../utils/time-helper'; // Components\n\nimport Popup from '../../popup';\nimport DateTimePicker from '../../datetime-picker';\nimport Field from '../../field';\nvar namespace = createNamespace('sku-datetime-field');\nvar createComponent = namespace[0];\nvar t = namespace[2];\nexport default createComponent({\n props: {\n value: String,\n label: String,\n required: Boolean,\n placeholder: String,\n type: {\n type: String,\n default: 'date'\n }\n },\n data: function data() {\n return {\n showDatePicker: false,\n currentDate: this.type === 'time' ? '' : new Date(),\n minDate: new Date(new Date().getFullYear() - 60, 0, 1)\n };\n },\n watch: {\n value: function value(val) {\n switch (this.type) {\n case 'time':\n this.currentDate = val;\n break;\n\n case 'date':\n case 'datetime':\n this.currentDate = stringToDate(val) || new Date();\n break;\n }\n }\n },\n computed: {\n title: function title() {\n return t(\"title.\" + this.type);\n }\n },\n methods: {\n onClick: function onClick() {\n this.showDatePicker = true;\n },\n onConfirm: function onConfirm(val) {\n var data = val;\n\n if (this.type !== 'time') {\n data = dateToString(val, this.type);\n }\n\n this.$emit('input', data);\n this.showDatePicker = false;\n },\n onCancel: function onCancel() {\n this.showDatePicker = false;\n },\n formatter: function formatter(type, val) {\n var word = t(\"format.\" + type);\n return \"\" + val + word;\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n return h(Field, {\n \"attrs\": {\n \"readonly\": true,\n \"is-link\": true,\n \"center\": true,\n \"value\": this.value,\n \"label\": this.label,\n \"required\": this.required,\n \"placeholder\": this.placeholder\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(Popup, {\n \"attrs\": {\n \"round\": true,\n \"position\": \"bottom\",\n \"getContainer\": \"body\"\n },\n \"slot\": \"extra\",\n \"model\": {\n value: _this.showDatePicker,\n callback: function callback($$v) {\n _this.showDatePicker = $$v;\n }\n }\n }, [h(DateTimePicker, {\n \"attrs\": {\n \"type\": this.type,\n \"title\": this.title,\n \"value\": this.currentDate,\n \"minDate\": this.minDate,\n \"formatter\": this.formatter\n },\n \"on\": {\n \"cancel\": this.onCancel,\n \"confirm\": this.onConfirm\n }\n })])]);\n }\n});","// Utils\nimport { createNamespace } from '../../utils';\nimport { isEmail } from '../../utils/validate/email';\nimport { isNumeric } from '../../utils/validate/number'; // Components\n\nimport Cell from '../../cell';\nimport Field from '../../field';\nimport SkuImgUploader from './SkuImgUploader';\nimport SkuDateTimeField from './SkuDateTimeField';\n\nvar _createNamespace = createNamespace('sku-messages'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: {\n messageConfig: Object,\n goodsId: [Number, String],\n messages: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n messageValues: this.resetMessageValues(this.messages)\n };\n },\n watch: {\n messages: function messages(val) {\n this.messageValues = this.resetMessageValues(val);\n }\n },\n methods: {\n resetMessageValues: function resetMessageValues(messages) {\n var messageConfig = this.messageConfig;\n var _messageConfig$initia = messageConfig.initialMessages,\n initialMessages = _messageConfig$initia === void 0 ? {} : _messageConfig$initia;\n return (messages || []).map(function (message) {\n return {\n value: initialMessages[message.name] || ''\n };\n });\n },\n getType: function getType(message) {\n if (+message.multiple === 1) {\n return 'textarea';\n }\n\n if (message.type === 'id_no') {\n return 'text';\n }\n\n return message.datetime > 0 ? 'datetime' : message.type;\n },\n getMessages: function getMessages() {\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n messages[\"message_\" + index] = item.value;\n });\n return messages;\n },\n getCartMessages: function getCartMessages() {\n var _this = this;\n\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n var message = _this.messages[index];\n messages[message.name] = item.value;\n });\n return messages;\n },\n getPlaceholder: function getPlaceholder(message) {\n var type = +message.multiple === 1 ? 'textarea' : message.type;\n var map = this.messageConfig.placeholderMap || {};\n return message.placeholder || map[type] || t(\"placeholder.\" + type);\n },\n validateMessages: function validateMessages() {\n var values = this.messageValues;\n\n for (var i = 0; i < values.length; i++) {\n var value = values[i].value;\n var message = this.messages[i];\n\n if (value === '') {\n // 必填字段的校验\n if (String(message.required) === '1') {\n var textType = t(message.type === 'image' ? 'upload' : 'fill');\n return textType + message.name;\n }\n } else {\n if (message.type === 'tel' && !isNumeric(value)) {\n return t('invalid.tel');\n }\n\n if (message.type === 'mobile' && !/^\\d{6,20}$/.test(value)) {\n return t('invalid.mobile');\n }\n\n if (message.type === 'email' && !isEmail(value)) {\n return t('invalid.email');\n }\n\n if (message.type === 'id_no' && (value.length < 15 || value.length > 18)) {\n return t('invalid.id_no');\n }\n }\n }\n },\n\n /**\n * The phone number copied from IOS mobile phone address book\n * will add spaces and invisible Unicode characters\n * which cannot pass the /^\\d+$/ verification\n * so keep numbers and dots\n */\n getFormatter: function getFormatter(message) {\n return function formatter(value) {\n if (message.type === 'mobile' || message.type === 'tel') {\n return value.replace(/[^\\d.]/g, '');\n }\n\n return value;\n };\n },\n getExtraDesc: function getExtraDesc(message) {\n var h = this.$createElement;\n var extraDesc = message.extraDesc;\n\n if (extraDesc) {\n return h(\"div\", {\n \"class\": bem('extra-message')\n }, [extraDesc]);\n }\n },\n genMessage: function genMessage(message, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n\n if (message.type === 'image') {\n return h(Cell, {\n \"key\": this.goodsId + \"-\" + index,\n \"attrs\": {\n \"title\": message.name,\n \"required\": String(message.required) === '1',\n \"valueClass\": bem('image-cell-value')\n },\n \"class\": bem('image-cell')\n }, [h(SkuImgUploader, {\n \"attrs\": {\n \"maxSize\": this.messageConfig.uploadMaxSize,\n \"uploadImg\": this.messageConfig.uploadImg,\n \"customUpload\": this.messageConfig.customUpload\n },\n \"model\": {\n value: _this2.messageValues[index].value,\n callback: function callback($$v) {\n _this2.$set(_this2.messageValues[index], \"value\", $$v);\n }\n }\n }), h(\"div\", {\n \"class\": bem('image-cell-label')\n }, [t('imageLabel')])]);\n } // 时间和日期使用的vant选择器\n\n\n var isDateOrTime = ['date', 'time'].indexOf(message.type) > -1;\n\n if (isDateOrTime) {\n return h(SkuDateTimeField, {\n \"attrs\": {\n \"label\": message.name,\n \"required\": String(message.required) === '1',\n \"placeholder\": this.getPlaceholder(message),\n \"type\": this.getType(message)\n },\n \"key\": this.goodsId + \"-\" + index,\n \"model\": {\n value: _this2.messageValues[index].value,\n callback: function callback($$v) {\n _this2.$set(_this2.messageValues[index], \"value\", $$v);\n }\n }\n });\n }\n\n return h(\"div\", {\n \"class\": bem('cell-block')\n }, [h(Field, {\n \"attrs\": {\n \"maxlength\": \"200\",\n \"center\": !message.multiple,\n \"label\": message.name,\n \"required\": String(message.required) === '1',\n \"placeholder\": this.getPlaceholder(message),\n \"type\": this.getType(message),\n \"formatter\": this.getFormatter(message),\n \"border\": false\n },\n \"key\": this.goodsId + \"-\" + index,\n \"model\": {\n value: _this2.messageValues[index].value,\n callback: function callback($$v) {\n _this2.$set(_this2.messageValues[index], \"value\", $$v);\n }\n }\n }), this.getExtraDesc(message)]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.messages.map(this.genMessage)]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../../utils';\nimport { inherit } from '../../utils/functional'; // Components\n\nimport Button from '../../button'; // Types\n\nvar _createNamespace = createNamespace('sku-actions'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction SkuActions(h, props, slots, ctx) {\n var createEmitter = function createEmitter(name) {\n return function () {\n props.skuEventBus.$emit(name);\n };\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [props.showAddCartBtn && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"warning\",\n \"text\": props.addCartText || t('addCart')\n },\n \"on\": {\n \"click\": createEmitter('sku:addCart')\n }\n }), h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": props.buyText || t('buy')\n },\n \"on\": {\n \"click\": createEmitter('sku:buy')\n }\n })]);\n}\n\nSkuActions.props = {\n buyText: String,\n addCartText: String,\n skuEventBus: Object,\n showAddCartBtn: Boolean\n};\nexport default createComponent(SkuActions);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport Popup from '../popup';\nimport Toast from '../toast';\nimport ImagePreview from '../image-preview';\nimport SkuHeader from './components/SkuHeader';\nimport SkuHeaderItem from './components/SkuHeaderItem';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport SkuRowPropItem from './components/SkuRowPropItem';\nimport SkuStepper from './components/SkuStepper';\nimport SkuMessages from './components/SkuMessages';\nimport SkuActions from './components/SkuActions';\nimport { createNamespace, isEmpty } from '../utils';\nimport { isAllSelected, isSkuChoosable, getSkuComb, getSelectedSkuValues, getSelectedPropValues, getSelectedProperties } from './utils/sku-helper';\nimport { LIMIT_TYPE, UNSELECTED_SKU_VALUE_ID } from './constants';\nvar namespace = createNamespace('sku');\nvar createComponent = namespace[0],\n bem = namespace[1],\n t = namespace[2];\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT;\nexport default createComponent({\n props: {\n sku: Object,\n goods: Object,\n value: Boolean,\n buyText: String,\n goodsId: [Number, String],\n priceTag: String,\n lazyLoad: Boolean,\n hideStock: Boolean,\n properties: Array,\n addCartText: String,\n stepperTitle: String,\n getContainer: [String, Function],\n hideQuotaText: Boolean,\n hideSelectedText: Boolean,\n resetStepperOnHide: Boolean,\n customSkuValidator: Function,\n disableStepperInput: Boolean,\n resetSelectedSkuOnHide: Boolean,\n quota: {\n type: Number,\n default: 0\n },\n quotaUsed: {\n type: Number,\n default: 0\n },\n startSaleNum: {\n type: Number,\n default: 1\n },\n initialSku: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n stockThreshold: {\n type: Number,\n default: 50\n },\n showSoldoutSku: {\n type: Boolean,\n default: true\n },\n showAddCartBtn: {\n type: Boolean,\n default: true\n },\n disableSoldoutSku: {\n type: Boolean,\n default: true\n },\n customStepperConfig: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n showHeaderImage: {\n type: Boolean,\n default: true\n },\n previewOnClickImage: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n },\n bodyOffsetTop: {\n type: Number,\n default: 200\n },\n messageConfig: {\n type: Object,\n default: function _default() {\n return {\n initialMessages: {},\n placeholderMap: {},\n uploadImg: function uploadImg() {\n return Promise.resolve();\n },\n uploadMaxSize: 5\n };\n }\n }\n },\n data: function data() {\n return {\n selectedSku: {},\n selectedProp: {},\n selectedNum: 1,\n show: this.value\n };\n },\n watch: {\n show: function show(val) {\n this.$emit('input', val);\n\n if (!val) {\n this.$emit('sku-close', {\n selectedSkuValues: this.selectedSkuValues,\n selectedNum: this.selectedNum,\n selectedSkuComb: this.selectedSkuComb\n });\n\n if (this.resetStepperOnHide) {\n this.resetStepper();\n }\n\n if (this.resetSelectedSkuOnHide) {\n this.resetSelectedSku();\n }\n }\n },\n value: function value(val) {\n this.show = val;\n },\n skuTree: 'resetSelectedSku',\n initialSku: function initialSku() {\n this.resetStepper();\n this.resetSelectedSku();\n }\n },\n computed: {\n skuGroupClass: function skuGroupClass() {\n return ['van-sku-group-container', {\n 'van-sku-group-container--hide-soldout': !this.showSoldoutSku\n }];\n },\n bodyStyle: function bodyStyle() {\n if (this.$isServer) {\n return;\n }\n\n var maxHeight = window.innerHeight - this.bodyOffsetTop;\n return {\n maxHeight: maxHeight + 'px'\n };\n },\n isSkuCombSelected: function isSkuCombSelected() {\n var _this = this;\n\n // SKU 未选完\n if (this.hasSku && !isAllSelected(this.skuTree, this.selectedSku)) {\n return false;\n } // 属性未全选\n\n\n return !this.propList.filter(function (i) {\n return i.is_necessary !== false;\n }).some(function (i) {\n return (_this.selectedProp[i.k_id] || []).length === 0;\n });\n },\n isSkuEmpty: function isSkuEmpty() {\n return Object.keys(this.sku).length === 0;\n },\n hasSku: function hasSku() {\n return !this.sku.none_sku;\n },\n hasSkuOrAttr: function hasSkuOrAttr() {\n return this.hasSku || this.propList.length > 0;\n },\n selectedSkuComb: function selectedSkuComb() {\n var skuComb = null;\n\n if (this.isSkuCombSelected) {\n if (this.hasSku) {\n skuComb = getSkuComb(this.skuList, this.selectedSku);\n } else {\n skuComb = {\n id: this.sku.collection_id,\n price: Math.round(this.sku.price * 100),\n stock_num: this.sku.stock_num\n };\n }\n\n if (skuComb) {\n skuComb.properties = getSelectedProperties(this.propList, this.selectedProp);\n skuComb.property_price = this.selectedPropValues.reduce(function (acc, cur) {\n return acc + (cur.price || 0);\n }, 0);\n }\n }\n\n return skuComb;\n },\n selectedSkuValues: function selectedSkuValues() {\n return getSelectedSkuValues(this.skuTree, this.selectedSku);\n },\n selectedPropValues: function selectedPropValues() {\n return getSelectedPropValues(this.propList, this.selectedProp);\n },\n price: function price() {\n if (this.selectedSkuComb) {\n return ((this.selectedSkuComb.price + this.selectedSkuComb.property_price) / 100).toFixed(2);\n } // sku.price是一个格式化好的价格区间\n\n\n return this.sku.price;\n },\n originPrice: function originPrice() {\n if (this.selectedSkuComb && this.selectedSkuComb.origin_price) {\n return ((this.selectedSkuComb.origin_price + this.selectedSkuComb.property_price) / 100).toFixed(2);\n }\n\n return this.sku.origin_price;\n },\n skuTree: function skuTree() {\n return this.sku.tree || [];\n },\n skuList: function skuList() {\n return this.sku.list || [];\n },\n propList: function propList() {\n return this.properties || [];\n },\n imageList: function imageList() {\n var imageList = [this.goods.picture];\n\n if (this.skuTree.length > 0) {\n this.skuTree.forEach(function (treeItem) {\n if (!treeItem.v) {\n return;\n }\n\n treeItem.v.forEach(function (vItem) {\n var imgUrl = vItem.previewImgUrl || vItem.imgUrl || vItem.img_url;\n\n if (imgUrl && imageList.indexOf(imgUrl) === -1) {\n imageList.push(imgUrl);\n }\n });\n });\n }\n\n return imageList;\n },\n stock: function stock() {\n var stockNum = this.customStepperConfig.stockNum;\n\n if (stockNum !== undefined) {\n return stockNum;\n }\n\n if (this.selectedSkuComb) {\n return this.selectedSkuComb.stock_num;\n }\n\n return this.sku.stock_num;\n },\n stockText: function stockText() {\n var h = this.$createElement;\n var stockFormatter = this.customStepperConfig.stockFormatter;\n\n if (stockFormatter) {\n return stockFormatter(this.stock);\n }\n\n return [t('stock') + \" \", h(\"span\", {\n \"class\": bem('stock-num', {\n highlight: this.stock < this.stockThreshold\n })\n }, [this.stock]), \" \" + t('stockUnit')];\n },\n selectedText: function selectedText() {\n var _this2 = this;\n\n if (this.selectedSkuComb) {\n var values = this.selectedSkuValues.concat(this.selectedPropValues);\n return t('selected') + \" \" + values.map(function (item) {\n return item.name;\n }).join(' ');\n }\n\n var unselectedSku = this.skuTree.filter(function (item) {\n return _this2.selectedSku[item.k_s] === UNSELECTED_SKU_VALUE_ID;\n }).map(function (item) {\n return item.k;\n });\n var unselectedProp = this.propList.filter(function (item) {\n return (_this2.selectedProp[item.k_id] || []).length < 1;\n }).map(function (item) {\n return item.k;\n });\n return t('select') + \" \" + unselectedSku.concat(unselectedProp).join(' ');\n }\n },\n created: function created() {\n var skuEventBus = new Vue();\n this.skuEventBus = skuEventBus;\n skuEventBus.$on('sku:select', this.onSelect);\n skuEventBus.$on('sku:propSelect', this.onPropSelect);\n skuEventBus.$on('sku:numChange', this.onNumChange);\n skuEventBus.$on('sku:previewImage', this.onPreviewImage);\n skuEventBus.$on('sku:overLimit', this.onOverLimit);\n skuEventBus.$on('sku:stepperState', this.onStepperState);\n skuEventBus.$on('sku:addCart', this.onAddCart);\n skuEventBus.$on('sku:buy', this.onBuy);\n this.resetStepper();\n this.resetSelectedSku(); // 组件初始化后的钩子,抛出skuEventBus\n\n this.$emit('after-sku-create', skuEventBus);\n },\n methods: {\n resetStepper: function resetStepper() {\n var skuStepper = this.$refs.skuStepper;\n var selectedNum = this.initialSku.selectedNum;\n var num = selectedNum != null ? selectedNum : this.startSaleNum; // 用来缓存不合法的情况\n\n this.stepperError = null;\n\n if (skuStepper) {\n skuStepper.setCurrentNum(num);\n } else {\n // 当首次加载(skuStepper 为空)时,传入数量如果不合法,可能会存在问题\n this.selectedNum = num;\n }\n },\n // @exposed-api\n resetSelectedSku: function resetSelectedSku() {\n var _this3 = this;\n\n this.selectedSku = {}; // 重置 selectedSku\n\n this.skuTree.forEach(function (item) {\n _this3.selectedSku[item.k_s] = UNSELECTED_SKU_VALUE_ID;\n });\n this.skuTree.forEach(function (item) {\n var key = item.k_s; // 规格值只有1个时,优先判断\n\n var valueId = item.v.length === 1 ? item.v[0].id : _this3.initialSku[key];\n\n if (valueId && isSkuChoosable(_this3.skuList, _this3.selectedSku, {\n key: key,\n valueId: valueId\n })) {\n _this3.selectedSku[key] = valueId;\n }\n });\n var skuValues = this.selectedSkuValues;\n\n if (skuValues.length > 0) {\n this.$nextTick(function () {\n _this3.$emit('sku-selected', {\n skuValue: skuValues[skuValues.length - 1],\n selectedSku: _this3.selectedSku,\n selectedSkuComb: _this3.selectedSkuComb\n });\n });\n } // 重置商品属性\n\n\n this.selectedProp = {};\n var _this$initialSku$sele = this.initialSku.selectedProp,\n selectedProp = _this$initialSku$sele === void 0 ? {} : _this$initialSku$sele; // 选中外部传入信息\n\n this.propList.forEach(function (item) {\n if (selectedProp[item.k_id]) {\n _this3.selectedProp[item.k_id] = selectedProp[item.k_id];\n }\n });\n\n if (isEmpty(this.selectedProp)) {\n this.propList.forEach(function (item) {\n var _item$v;\n\n // 没有加价的属性,默认选中第一个\n if ((item == null ? void 0 : (_item$v = item.v) == null ? void 0 : _item$v.length) > 0) {\n var v = item.v,\n k_id = item.k_id;\n var isHasConfigPrice = v.some(function (i) {\n return +i.price !== 0;\n }); // 没有加价属性\n\n if (!isHasConfigPrice) {\n // 找到第一个不被禁用的属性\n // 历史如果没有 text_status 字段的,就相当于沿用直接原来的逻辑取第一个属性\n var firstEnableProp = v.find(function (prop) {\n return prop.text_status !== 0;\n });\n\n if (firstEnableProp) {\n _this3.selectedProp[k_id] = [firstEnableProp.id];\n }\n }\n }\n });\n }\n\n var propValues = this.selectedPropValues;\n\n if (propValues.length > 0) {\n this.$emit('sku-prop-selected', {\n propValue: propValues[propValues.length - 1],\n selectedProp: this.selectedProp,\n selectedSkuComb: this.selectedSkuComb\n });\n } // 抛出重置事件\n\n\n this.$emit('sku-reset', {\n selectedSku: this.selectedSku,\n selectedProp: this.selectedProp,\n selectedSkuComb: this.selectedSkuComb\n });\n this.centerInitialSku();\n },\n getSkuMessages: function getSkuMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.getMessages() : {};\n },\n getSkuCartMessages: function getSkuCartMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.getCartMessages() : {};\n },\n validateSkuMessages: function validateSkuMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.validateMessages() : '';\n },\n validateSku: function validateSku() {\n if (this.selectedNum === 0) {\n return t('unavailable');\n }\n\n if (this.isSkuCombSelected) {\n return this.validateSkuMessages();\n } // 自定义sku校验\n\n\n if (this.customSkuValidator) {\n var err = this.customSkuValidator(this);\n if (err) return err;\n }\n\n return t('selectSku');\n },\n onSelect: function onSelect(skuValue) {\n var _extends2, _extends3;\n\n // 点击已选中的sku时则取消选中\n this.selectedSku = this.selectedSku[skuValue.skuKeyStr] === skuValue.id ? _extends({}, this.selectedSku, (_extends2 = {}, _extends2[skuValue.skuKeyStr] = UNSELECTED_SKU_VALUE_ID, _extends2)) : _extends({}, this.selectedSku, (_extends3 = {}, _extends3[skuValue.skuKeyStr] = skuValue.id, _extends3));\n this.$emit('sku-selected', {\n skuValue: skuValue,\n selectedSku: this.selectedSku,\n selectedSkuComb: this.selectedSkuComb\n });\n },\n onPropSelect: function onPropSelect(propValue) {\n var _extends4;\n\n var arr = this.selectedProp[propValue.skuKeyStr] || [];\n var pos = arr.indexOf(propValue.id);\n\n if (pos > -1) {\n arr.splice(pos, 1);\n } else if (propValue.multiple) {\n arr.push(propValue.id);\n } else {\n arr.splice(0, 1, propValue.id);\n }\n\n this.selectedProp = _extends({}, this.selectedProp, (_extends4 = {}, _extends4[propValue.skuKeyStr] = arr, _extends4));\n this.$emit('sku-prop-selected', {\n propValue: propValue,\n selectedProp: this.selectedProp,\n selectedSkuComb: this.selectedSkuComb\n });\n },\n onNumChange: function onNumChange(num) {\n this.selectedNum = num;\n },\n onPreviewImage: function onPreviewImage(selectedValue) {\n var _this4 = this;\n\n var imageList = this.imageList;\n var index = 0;\n var indexImage = imageList[0];\n\n if (selectedValue && selectedValue.imgUrl) {\n this.imageList.some(function (image, pos) {\n if (image === selectedValue.imgUrl) {\n index = pos;\n return true;\n }\n\n return false;\n });\n indexImage = selectedValue.imgUrl;\n }\n\n var params = _extends({}, selectedValue, {\n index: index,\n imageList: this.imageList,\n indexImage: indexImage\n });\n\n this.$emit('open-preview', params);\n\n if (!this.previewOnClickImage) {\n return;\n }\n\n ImagePreview({\n images: this.imageList,\n startPosition: index,\n onClose: function onClose() {\n _this4.$emit('close-preview', params);\n }\n });\n },\n onOverLimit: function onOverLimit(data) {\n var action = data.action,\n limitType = data.limitType,\n quota = data.quota,\n quotaUsed = data.quotaUsed;\n var handleOverLimit = this.customStepperConfig.handleOverLimit;\n\n if (handleOverLimit) {\n handleOverLimit(data);\n return;\n }\n\n if (action === 'minus') {\n if (this.startSaleNum > 1) {\n Toast(t('minusStartTip', this.startSaleNum));\n } else {\n Toast(t('minusTip'));\n }\n } else if (action === 'plus') {\n if (limitType === QUOTA_LIMIT) {\n if (quotaUsed > 0) {\n Toast(t('quotaUsedTip', quota, quotaUsed));\n } else {\n Toast(t('quotaTip', quota));\n }\n } else {\n Toast(t('soldout'));\n }\n }\n },\n onStepperState: function onStepperState(data) {\n this.stepperError = data.valid ? null : _extends({}, data, {\n action: 'plus'\n });\n },\n onAddCart: function onAddCart() {\n this.onBuyOrAddCart('add-cart');\n },\n onBuy: function onBuy() {\n this.onBuyOrAddCart('buy-clicked');\n },\n onBuyOrAddCart: function onBuyOrAddCart(type) {\n // sku 不符合购买条件\n if (this.stepperError) {\n return this.onOverLimit(this.stepperError);\n }\n\n var error = this.validateSku();\n\n if (error) {\n Toast(error);\n } else {\n this.$emit(type, this.getSkuData());\n }\n },\n // @exposed-api\n getSkuData: function getSkuData() {\n return {\n goodsId: this.goodsId,\n messages: this.getSkuMessages(),\n selectedNum: this.selectedNum,\n cartMessages: this.getSkuCartMessages(),\n selectedSkuComb: this.selectedSkuComb\n };\n },\n // 当 popup 完全打开后执行\n onOpened: function onOpened() {\n this.centerInitialSku();\n },\n centerInitialSku: function centerInitialSku() {\n var _this5 = this;\n\n (this.$refs.skuRows || []).forEach(function (it) {\n var _ref = it.skuRow || {},\n k_s = _ref.k_s;\n\n it.centerItem(_this5.initialSku[k_s]);\n });\n }\n },\n render: function render() {\n var _this6 = this;\n\n var h = arguments[0];\n\n if (this.isSkuEmpty) {\n return;\n }\n\n var sku = this.sku,\n skuList = this.skuList,\n goods = this.goods,\n price = this.price,\n lazyLoad = this.lazyLoad,\n originPrice = this.originPrice,\n skuEventBus = this.skuEventBus,\n selectedSku = this.selectedSku,\n selectedProp = this.selectedProp,\n selectedNum = this.selectedNum,\n stepperTitle = this.stepperTitle,\n selectedSkuComb = this.selectedSkuComb,\n showHeaderImage = this.showHeaderImage,\n disableSoldoutSku = this.disableSoldoutSku;\n var slotsProps = {\n price: price,\n originPrice: originPrice,\n selectedNum: selectedNum,\n skuEventBus: skuEventBus,\n selectedSku: selectedSku,\n selectedSkuComb: selectedSkuComb\n };\n\n var slots = function slots(name) {\n return _this6.slots(name, slotsProps);\n };\n\n var Header = slots('sku-header') || h(SkuHeader, {\n \"attrs\": {\n \"sku\": sku,\n \"goods\": goods,\n \"skuEventBus\": skuEventBus,\n \"selectedSku\": selectedSku,\n \"showHeaderImage\": showHeaderImage\n }\n }, [h(\"template\", {\n \"slot\": \"sku-header-image-extra\"\n }, [slots('sku-header-image-extra')]), slots('sku-header-price') || h(\"div\", {\n \"class\": \"van-sku__goods-price\"\n }, [h(\"span\", {\n \"class\": \"van-sku__price-symbol\"\n }, [\"\\uFFE5\"]), h(\"span\", {\n \"class\": \"van-sku__price-num\"\n }, [price]), this.priceTag && h(\"span\", {\n \"class\": \"van-sku__price-tag\"\n }, [this.priceTag])]), slots('sku-header-origin-price') || originPrice && h(SkuHeaderItem, [t('originPrice'), \" \\uFFE5\", originPrice]), !this.hideStock && h(SkuHeaderItem, [h(\"span\", {\n \"class\": \"van-sku__stock\"\n }, [this.stockText])]), this.hasSkuOrAttr && !this.hideSelectedText && h(SkuHeaderItem, [this.selectedText]), slots('sku-header-extra')]);\n var Group = slots('sku-group') || this.hasSkuOrAttr && h(\"div\", {\n \"class\": this.skuGroupClass\n }, [this.skuTree.map(function (skuTreeItem) {\n return h(SkuRow, {\n \"attrs\": {\n \"skuRow\": skuTreeItem\n },\n \"ref\": \"skuRows\",\n \"refInFor\": true\n }, [skuTreeItem.v.map(function (skuValue) {\n return h(SkuRowItem, {\n \"attrs\": {\n \"skuList\": skuList,\n \"lazyLoad\": lazyLoad,\n \"skuValue\": skuValue,\n \"skuKeyStr\": skuTreeItem.k_s,\n \"selectedSku\": selectedSku,\n \"skuEventBus\": skuEventBus,\n \"disableSoldoutSku\": disableSoldoutSku,\n \"largeImageMode\": skuTreeItem.largeImageMode\n }\n });\n })]);\n }), this.propList.map(function (skuTreeItem) {\n return h(SkuRow, {\n \"attrs\": {\n \"skuRow\": skuTreeItem\n }\n }, [skuTreeItem.v.map(function (skuValue) {\n return h(SkuRowPropItem, {\n \"attrs\": {\n \"skuValue\": skuValue,\n \"skuKeyStr\": skuTreeItem.k_id + '',\n \"selectedProp\": selectedProp,\n \"skuEventBus\": skuEventBus,\n \"multiple\": skuTreeItem.is_multiple,\n \"disabled\": skuValue.text_status === 0\n }\n });\n })]);\n })]);\n var Stepper = slots('sku-stepper') || h(SkuStepper, {\n \"ref\": \"skuStepper\",\n \"attrs\": {\n \"stock\": this.stock,\n \"quota\": this.quota,\n \"quotaUsed\": this.quotaUsed,\n \"startSaleNum\": this.startSaleNum,\n \"skuEventBus\": skuEventBus,\n \"selectedNum\": selectedNum,\n \"stepperTitle\": stepperTitle,\n \"skuStockNum\": sku.stock_num,\n \"disableStepperInput\": this.disableStepperInput,\n \"customStepperConfig\": this.customStepperConfig,\n \"hideQuotaText\": this.hideQuotaText\n },\n \"on\": {\n \"change\": function change(event) {\n _this6.$emit('stepper-change', event);\n }\n }\n });\n var Messages = slots('sku-messages') || h(SkuMessages, {\n \"ref\": \"skuMessages\",\n \"attrs\": {\n \"goodsId\": this.goodsId,\n \"messageConfig\": this.messageConfig,\n \"messages\": sku.messages\n }\n });\n var Actions = slots('sku-actions') || h(SkuActions, {\n \"attrs\": {\n \"buyText\": this.buyText,\n \"skuEventBus\": skuEventBus,\n \"addCartText\": this.addCartText,\n \"showAddCartBtn\": this.showAddCartBtn\n }\n });\n return h(Popup, {\n \"attrs\": {\n \"round\": true,\n \"closeable\": true,\n \"position\": \"bottom\",\n \"getContainer\": this.getContainer,\n \"closeOnClickOverlay\": this.closeOnClickOverlay,\n \"safeAreaInsetBottom\": this.safeAreaInsetBottom\n },\n \"class\": \"van-sku-container\",\n \"on\": {\n \"opened\": this.onOpened\n },\n \"model\": {\n value: _this6.show,\n callback: function callback($$v) {\n _this6.show = $$v;\n }\n }\n }, [Header, h(\"div\", {\n \"class\": \"van-sku-body\",\n \"style\": this.bodyStyle\n }, [slots('sku-body-top'), Group, slots('extra-sku-group'), Stepper, Messages]), slots('sku-actions-top'), Actions]);\n }\n});","// Utils\nimport lang from './lang';\nimport constants from './constants';\nimport skuHelper from './utils/sku-helper'; // Components\n\nimport Sku from './Sku';\nimport Locale from '../locale';\nimport SkuActions from './components/SkuActions';\nimport SkuHeader from './components/SkuHeader';\nimport SkuHeaderItem from './components/SkuHeaderItem';\nimport SkuMessages from './components/SkuMessages';\nimport SkuStepper from './components/SkuStepper';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport SkuRowPropItem from './components/SkuRowPropItem';\nLocale.add(lang);\nSku.SkuActions = SkuActions;\nSku.SkuHeader = SkuHeader;\nSku.SkuHeaderItem = SkuHeaderItem;\nSku.SkuMessages = SkuMessages;\nSku.SkuStepper = SkuStepper;\nSku.SkuRow = SkuRow;\nSku.SkuRowItem = SkuRowItem;\nSku.SkuRowPropItem = SkuRowPropItem;\nSku.skuHelper = skuHelper;\nSku.skuConstants = constants;\nexport default Sku;","import { createNamespace, addUnit } from '../utils';\nimport { deepClone } from '../utils/deep-clone';\nimport { preventDefault } from '../utils/dom/event';\nimport { range, addNumber } from '../utils/format/number';\nimport { TouchMixin } from '../mixins/touch';\nimport { FieldMixin } from '../mixins/field';\n\nvar _createNamespace = createNamespace('slider'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar isSameValue = function isSameValue(newValue, oldValue) {\n return JSON.stringify(newValue) === JSON.stringify(oldValue);\n};\n\nexport default createComponent({\n mixins: [TouchMixin, FieldMixin],\n props: {\n disabled: Boolean,\n vertical: Boolean,\n range: Boolean,\n barHeight: [Number, String],\n buttonSize: [Number, String],\n activeColor: String,\n inactiveColor: String,\n min: {\n type: [Number, String],\n default: 0\n },\n max: {\n type: [Number, String],\n default: 100\n },\n step: {\n type: [Number, String],\n default: 1\n },\n value: {\n type: [Number, Array],\n default: 0\n }\n },\n data: function data() {\n return {\n dragStatus: ''\n };\n },\n computed: {\n scope: function scope() {\n return this.max - this.min;\n },\n buttonStyle: function buttonStyle() {\n if (this.buttonSize) {\n var size = addUnit(this.buttonSize);\n return {\n width: size,\n height: size\n };\n }\n }\n },\n created: function created() {\n // format initial value\n this.updateValue(this.value);\n },\n mounted: function mounted() {\n if (this.range) {\n this.bindTouchEvent(this.$refs.wrapper0);\n this.bindTouchEvent(this.$refs.wrapper1);\n } else {\n this.bindTouchEvent(this.$refs.wrapper);\n }\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n if (this.disabled) {\n return;\n }\n\n this.touchStart(event);\n this.currentValue = this.value;\n\n if (this.range) {\n this.startValue = this.value.map(this.format);\n } else {\n this.startValue = this.format(this.value);\n }\n\n this.dragStatus = 'start';\n },\n onTouchMove: function onTouchMove(event) {\n if (this.disabled) {\n return;\n }\n\n if (this.dragStatus === 'start') {\n this.$emit('drag-start');\n }\n\n preventDefault(event, true);\n this.touchMove(event);\n this.dragStatus = 'draging';\n var rect = this.$el.getBoundingClientRect();\n var delta = this.vertical ? this.deltaY : this.deltaX;\n var total = this.vertical ? rect.height : rect.width;\n var diff = delta / total * this.scope;\n\n if (this.range) {\n this.currentValue[this.index] = this.startValue[this.index] + diff;\n } else {\n this.currentValue = this.startValue + diff;\n }\n\n this.updateValue(this.currentValue);\n },\n onTouchEnd: function onTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n if (this.dragStatus === 'draging') {\n this.updateValue(this.currentValue, true);\n this.$emit('drag-end');\n }\n\n this.dragStatus = '';\n },\n onClick: function onClick(event) {\n event.stopPropagation();\n if (this.disabled) return;\n var rect = this.$el.getBoundingClientRect();\n var delta = this.vertical ? event.clientY - rect.top : event.clientX - rect.left;\n var total = this.vertical ? rect.height : rect.width;\n var value = +this.min + delta / total * this.scope;\n\n if (this.range) {\n var _this$value = this.value,\n left = _this$value[0],\n right = _this$value[1];\n var middle = (left + right) / 2;\n\n if (value <= middle) {\n left = value;\n } else {\n right = value;\n }\n\n value = [left, right];\n }\n\n this.startValue = this.value;\n this.updateValue(value, true);\n },\n // 处理两个滑块重叠之后的情况\n handleOverlap: function handleOverlap(value) {\n if (value[0] > value[1]) {\n value = deepClone(value);\n return value.reverse();\n }\n\n return value;\n },\n updateValue: function updateValue(value, end) {\n if (this.range) {\n value = this.handleOverlap(value).map(this.format);\n } else {\n value = this.format(value);\n }\n\n if (!isSameValue(value, this.value)) {\n this.$emit('input', value);\n }\n\n if (end && !isSameValue(value, this.startValue)) {\n this.$emit('change', value);\n }\n },\n format: function format(value) {\n var min = +this.min;\n var max = +this.max;\n var step = +this.step;\n value = range(value, min, max);\n var diff = Math.round((value - min) / step) * step;\n return addNumber(min, diff);\n }\n },\n render: function render() {\n var _wrapperStyle,\n _this = this,\n _barStyle;\n\n var h = arguments[0];\n var vertical = this.vertical;\n var mainAxis = vertical ? 'height' : 'width';\n var crossAxis = vertical ? 'width' : 'height';\n var wrapperStyle = (_wrapperStyle = {\n background: this.inactiveColor\n }, _wrapperStyle[crossAxis] = addUnit(this.barHeight), _wrapperStyle); // 计算选中条的长度百分比\n\n var calcMainAxis = function calcMainAxis() {\n var value = _this.value,\n min = _this.min,\n range = _this.range,\n scope = _this.scope;\n\n if (range) {\n return (value[1] - value[0]) * 100 / scope + \"%\";\n }\n\n return (value - min) * 100 / scope + \"%\";\n }; // 计算选中条的开始位置的偏移量\n\n\n var calcOffset = function calcOffset() {\n var value = _this.value,\n min = _this.min,\n range = _this.range,\n scope = _this.scope;\n\n if (range) {\n return (value[0] - min) * 100 / scope + \"%\";\n }\n\n return null;\n };\n\n var barStyle = (_barStyle = {}, _barStyle[mainAxis] = calcMainAxis(), _barStyle.left = this.vertical ? null : calcOffset(), _barStyle.top = this.vertical ? calcOffset() : null, _barStyle.background = this.activeColor, _barStyle);\n\n if (this.dragStatus) {\n barStyle.transition = 'none';\n }\n\n var renderButton = function renderButton(i) {\n var map = ['left', 'right'];\n var isNumber = typeof i === 'number';\n var current = isNumber ? _this.value[i] : _this.value;\n\n var getClassName = function getClassName() {\n if (isNumber) {\n return \"button-wrapper-\" + map[i];\n }\n\n return \"button-wrapper\";\n };\n\n var getRefName = function getRefName() {\n if (isNumber) {\n return \"wrapper\" + i;\n }\n\n return \"wrapper\";\n };\n\n var renderButtonContent = function renderButtonContent() {\n if (isNumber) {\n var slot = _this.slots(i === 0 ? 'left-button' : 'right-button', {\n value: current\n });\n\n if (slot) {\n return slot;\n }\n }\n\n if (_this.slots('button')) {\n return _this.slots('button');\n }\n\n return h(\"div\", {\n \"class\": bem('button'),\n \"style\": _this.buttonStyle\n });\n };\n\n return h(\"div\", {\n \"ref\": getRefName(),\n \"attrs\": {\n \"role\": \"slider\",\n \"tabindex\": _this.disabled ? -1 : 0,\n \"aria-valuemin\": _this.min,\n \"aria-valuenow\": _this.value,\n \"aria-valuemax\": _this.max,\n \"aria-orientation\": _this.vertical ? 'vertical' : 'horizontal'\n },\n \"class\": bem(getClassName()),\n \"on\": {\n \"touchstart\": function touchstart() {\n if (isNumber) {\n // 保存当前按钮的索引\n _this.index = i;\n }\n },\n \"click\": function click(e) {\n return e.stopPropagation();\n }\n }\n }, [renderButtonContent()]);\n };\n\n return h(\"div\", {\n \"style\": wrapperStyle,\n \"class\": bem({\n disabled: this.disabled,\n vertical: vertical\n }),\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('bar'),\n \"style\": barStyle\n }, [this.range ? [renderButton(0), renderButton(1)] : renderButton()])]);\n }\n});","import { createNamespace } from '../utils';\nimport { BORDER } from '../utils/constant';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('step'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSteps')],\n computed: {\n status: function status() {\n if (this.index < this.parent.active) {\n return 'finish';\n }\n\n if (this.index === +this.parent.active) {\n return 'process';\n }\n },\n active: function active() {\n return this.status === 'process';\n },\n lineStyle: function lineStyle() {\n var _this$parent = this.parent,\n activeColor = _this$parent.activeColor,\n inactiveColor = _this$parent.inactiveColor,\n center = _this$parent.center,\n direction = _this$parent.direction;\n var style = {\n background: this.status === 'finish' ? activeColor : inactiveColor\n };\n\n if (center && direction === 'vertical') {\n style.top = '50%';\n }\n\n return style;\n },\n circleContainerStyle: function circleContainerStyle() {\n if (this.parent.center && this.parent.direction === 'vertical') {\n return {\n top: '50%'\n };\n }\n },\n titleStyle: function titleStyle() {\n if (this.active) {\n return {\n color: this.parent.activeColor\n };\n }\n\n if (!this.status) {\n return {\n color: this.parent.inactiveColor\n };\n }\n }\n },\n methods: {\n genCircle: function genCircle() {\n var h = this.$createElement;\n var _this$parent2 = this.parent,\n activeIcon = _this$parent2.activeIcon,\n iconPrefix = _this$parent2.iconPrefix,\n activeColor = _this$parent2.activeColor,\n finishIcon = _this$parent2.finishIcon,\n inactiveIcon = _this$parent2.inactiveIcon;\n\n if (this.active) {\n return this.slots('active-icon') || h(Icon, {\n \"class\": bem('icon', 'active'),\n \"attrs\": {\n \"name\": activeIcon,\n \"color\": activeColor,\n \"classPrefix\": iconPrefix\n }\n });\n }\n\n var finishIconSlot = this.slots('finish-icon');\n\n if (this.status === 'finish' && (finishIcon || finishIconSlot)) {\n return finishIconSlot || h(Icon, {\n \"class\": bem('icon', 'finish'),\n \"attrs\": {\n \"name\": finishIcon,\n \"color\": activeColor,\n \"classPrefix\": iconPrefix\n }\n });\n }\n\n var inactiveIconSlot = this.slots('inactive-icon');\n\n if (inactiveIcon || inactiveIconSlot) {\n return inactiveIconSlot || h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"name\": inactiveIcon,\n \"classPrefix\": iconPrefix\n }\n });\n }\n\n return h(\"i\", {\n \"class\": bem('circle'),\n \"style\": this.lineStyle\n });\n },\n onClickStep: function onClickStep() {\n this.parent.$emit('click-step', this.index);\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var status = this.status,\n active = this.active;\n var direction = this.parent.direction;\n return h(\"div\", {\n \"class\": [BORDER, bem([direction, (_ref = {}, _ref[status] = status, _ref)])]\n }, [h(\"div\", {\n \"class\": bem('title', {\n active: active\n }),\n \"style\": this.titleStyle,\n \"on\": {\n \"click\": this.onClickStep\n }\n }, [this.slots()]), h(\"div\", {\n \"class\": bem('circle-container'),\n \"on\": {\n \"click\": this.onClickStep\n },\n \"style\": this.circleContainerStyle\n }, [this.genCircle()]), h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n })]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('steps'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanSteps')],\n props: {\n center: Boolean,\n iconPrefix: String,\n finishIcon: String,\n activeColor: String,\n inactiveIcon: String,\n inactiveColor: String,\n active: {\n type: [Number, String],\n default: 0\n },\n direction: {\n type: String,\n default: 'horizontal'\n },\n activeIcon: {\n type: String,\n default: 'checked'\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction])\n }, [h(\"div\", {\n \"class\": bem('items')\n }, [this.slots()])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Icon from '../icon';\nimport Button from '../button'; // Types\n\nvar _createNamespace = createNamespace('submit-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction SubmitBar(h, props, slots, ctx) {\n var tip = props.tip,\n price = props.price,\n tipIcon = props.tipIcon;\n\n function Text() {\n if (typeof price === 'number') {\n var priceArr = (price / 100).toFixed(props.decimalLength).split('.');\n var decimalStr = props.decimalLength ? \".\" + priceArr[1] : '';\n return h(\"div\", {\n \"style\": {\n textAlign: props.textAlign ? props.textAlign : ''\n },\n \"class\": bem('text')\n }, [h(\"span\", [props.label || t('label')]), h(\"span\", {\n \"class\": bem('price')\n }, [props.currency, h(\"span\", {\n \"class\": bem('price', 'integer')\n }, [priceArr[0]]), decimalStr]), props.suffixLabel && h(\"span\", {\n \"class\": bem('suffix-label')\n }, [props.suffixLabel])]);\n }\n }\n\n function Tip() {\n if (slots.tip || tip) {\n return h(\"div\", {\n \"class\": bem('tip')\n }, [tipIcon && h(Icon, {\n \"class\": bem('tip-icon'),\n \"attrs\": {\n \"name\": tipIcon\n }\n }), tip && h(\"span\", {\n \"class\": bem('tip-text')\n }, [tip]), slots.tip && slots.tip()]);\n }\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n unfit: !props.safeAreaInsetBottom\n })\n }, inherit(ctx)]), [slots.top && slots.top(), Tip(), h(\"div\", {\n \"class\": bem('bar')\n }, [slots.default && slots.default(), Text(), slots.button ? slots.button() : h(Button, {\n \"attrs\": {\n \"round\": true,\n \"type\": props.buttonType,\n \"text\": props.loading ? '' : props.buttonText,\n \"color\": props.buttonColor,\n \"loading\": props.loading,\n \"disabled\": props.disabled\n },\n \"class\": bem('button', props.buttonType),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'submit');\n }\n }\n })])]);\n}\n\nSubmitBar.props = {\n tip: String,\n label: String,\n price: Number,\n tipIcon: String,\n loading: Boolean,\n disabled: Boolean,\n textAlign: String,\n buttonText: String,\n buttonColor: String,\n suffixLabel: String,\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n decimalLength: {\n type: [Number, String],\n default: 2\n },\n currency: {\n type: String,\n default: '¥'\n },\n buttonType: {\n type: String,\n default: 'danger'\n }\n};\nexport default createComponent(SubmitBar);","// Utils\nimport { createNamespace } from '../utils';\nimport { range } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { ClickOutsideMixin } from '../mixins/click-outside';\n\nvar _createNamespace = createNamespace('swipe-cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar THRESHOLD = 0.15;\nexport default createComponent({\n mixins: [TouchMixin, ClickOutsideMixin({\n event: 'touchstart',\n method: 'onClick'\n })],\n props: {\n // @deprecated\n // should be removed in next major version, use beforeClose instead\n onClose: Function,\n disabled: Boolean,\n leftWidth: [Number, String],\n rightWidth: [Number, String],\n beforeClose: Function,\n stopPropagation: Boolean,\n name: {\n type: [Number, String],\n default: ''\n }\n },\n data: function data() {\n return {\n offset: 0,\n dragging: false\n };\n },\n computed: {\n computedLeftWidth: function computedLeftWidth() {\n return +this.leftWidth || this.getWidthByRef('left');\n },\n computedRightWidth: function computedRightWidth() {\n return +this.rightWidth || this.getWidthByRef('right');\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n getWidthByRef: function getWidthByRef(ref) {\n if (this.$refs[ref]) {\n var rect = this.$refs[ref].getBoundingClientRect();\n return rect.width;\n }\n\n return 0;\n },\n // @exposed-api\n open: function open(position) {\n var offset = position === 'left' ? this.computedLeftWidth : -this.computedRightWidth;\n this.opened = true;\n this.offset = offset;\n this.$emit('open', {\n position: position,\n name: this.name,\n // @deprecated\n // should be removed in next major version\n detail: this.name\n });\n },\n // @exposed-api\n close: function close(position) {\n this.offset = 0;\n\n if (this.opened) {\n this.opened = false;\n this.$emit('close', {\n position: position,\n name: this.name\n });\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (this.disabled) {\n return;\n }\n\n this.startOffset = this.offset;\n this.touchStart(event);\n },\n onTouchMove: function onTouchMove(event) {\n if (this.disabled) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'horizontal') {\n this.dragging = true;\n this.lockClick = true;\n var isPrevent = !this.opened || this.deltaX * this.startOffset < 0;\n\n if (isPrevent) {\n preventDefault(event, this.stopPropagation);\n }\n\n this.offset = range(this.deltaX + this.startOffset, -this.computedRightWidth, this.computedLeftWidth);\n }\n },\n onTouchEnd: function onTouchEnd() {\n var _this = this;\n\n if (this.disabled) {\n return;\n }\n\n if (this.dragging) {\n this.toggle(this.offset > 0 ? 'left' : 'right');\n this.dragging = false; // compatible with desktop scenario\n\n setTimeout(function () {\n _this.lockClick = false;\n }, 0);\n }\n },\n toggle: function toggle(direction) {\n var offset = Math.abs(this.offset);\n var threshold = this.opened ? 1 - THRESHOLD : THRESHOLD;\n var computedLeftWidth = this.computedLeftWidth,\n computedRightWidth = this.computedRightWidth;\n\n if (computedRightWidth && direction === 'right' && offset > computedRightWidth * threshold) {\n this.open('right');\n } else if (computedLeftWidth && direction === 'left' && offset > computedLeftWidth * threshold) {\n this.open('left');\n } else {\n this.close();\n }\n },\n onClick: function onClick(position) {\n if (position === void 0) {\n position = 'outside';\n }\n\n this.$emit('click', position);\n\n if (this.opened && !this.lockClick) {\n if (this.beforeClose) {\n this.beforeClose({\n position: position,\n name: this.name,\n instance: this\n });\n } else if (this.onClose) {\n this.onClose(position, this, {\n name: this.name\n });\n } else {\n this.close(position);\n }\n }\n },\n getClickHandler: function getClickHandler(position, stop) {\n var _this2 = this;\n\n return function (event) {\n if (stop) {\n event.stopPropagation();\n }\n\n _this2.onClick(position);\n };\n },\n genLeftPart: function genLeftPart() {\n var h = this.$createElement;\n var content = this.slots('left');\n\n if (content) {\n return h(\"div\", {\n \"ref\": \"left\",\n \"class\": bem('left'),\n \"on\": {\n \"click\": this.getClickHandler('left', true)\n }\n }, [content]);\n }\n },\n genRightPart: function genRightPart() {\n var h = this.$createElement;\n var content = this.slots('right');\n\n if (content) {\n return h(\"div\", {\n \"ref\": \"right\",\n \"class\": bem('right'),\n \"on\": {\n \"click\": this.getClickHandler('right', true)\n }\n }, [content]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var wrapperStyle = {\n transform: \"translate3d(\" + this.offset + \"px, 0, 0)\",\n transitionDuration: this.dragging ? '0s' : '.6s'\n };\n return h(\"div\", {\n \"class\": bem(),\n \"on\": {\n \"click\": this.getClickHandler('cell')\n }\n }, [h(\"div\", {\n \"class\": bem('wrapper'),\n \"style\": wrapperStyle\n }, [this.genLeftPart(), this.slots(), this.genRightPart()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Cell from '../cell';\nimport Switch from '../switch';\nimport { switchProps } from '../switch/shared'; // Types\n\nvar _createNamespace = createNamespace('switch-cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction SwitchCell(h, props, slots, ctx) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[Vant] \"SwitchCell\" component is deprecated, see: https://vant-ui.github.io/vant/v2/#/zh-CN/switch-cell.');\n }\n\n return h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"center\": true,\n \"size\": props.cellSize,\n \"title\": props.title,\n \"border\": props.border\n },\n \"class\": bem([props.cellSize])\n }, inherit(ctx)]), [h(Switch, {\n \"props\": _extends({}, props),\n \"on\": _extends({}, ctx.listeners)\n })]);\n}\n\nSwitchCell.props = _extends({}, switchProps, {\n title: String,\n cellSize: String,\n border: {\n type: Boolean,\n default: true\n },\n size: {\n type: String,\n default: '24px'\n }\n});\nexport default createComponent(SwitchCell);","import { createNamespace } from '../utils';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\nimport { callInterceptor } from '../utils/interceptor';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('tabbar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanTabbar')],\n props: {\n route: Boolean,\n zIndex: [Number, String],\n placeholder: Boolean,\n activeColor: String,\n beforeChange: Function,\n inactiveColor: String,\n value: {\n type: [Number, String],\n default: 0\n },\n border: {\n type: Boolean,\n default: true\n },\n fixed: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: null\n }\n },\n data: function data() {\n return {\n height: null\n };\n },\n computed: {\n fit: function fit() {\n if (this.safeAreaInsetBottom !== null) {\n return this.safeAreaInsetBottom;\n } // enable safe-area-inset-bottom by default when fixed\n\n\n return this.fixed;\n }\n },\n watch: {\n value: 'setActiveItem',\n children: 'setActiveItem'\n },\n mounted: function mounted() {\n var _this = this;\n\n if (this.placeholder && this.fixed) {\n var setHeight = function setHeight() {\n _this.height = _this.$refs.tabbar.getBoundingClientRect().height;\n };\n\n setHeight(); // https://github.com/vant-ui/vant/issues/10131\n\n setTimeout(setHeight, 100);\n }\n },\n methods: {\n setActiveItem: function setActiveItem() {\n var _this2 = this;\n\n this.children.forEach(function (item, index) {\n item.nameMatched = item.name === _this2.value || index === _this2.value;\n });\n },\n triggerChange: function triggerChange(active, afterChange) {\n var _this3 = this;\n\n callInterceptor({\n interceptor: this.beforeChange,\n args: [active],\n done: function done() {\n _this3.$emit('input', active);\n\n _this3.$emit('change', active);\n\n afterChange();\n }\n });\n },\n genTabbar: function genTabbar() {\n var _ref;\n\n var h = this.$createElement;\n return h(\"div\", {\n \"ref\": \"tabbar\",\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": [(_ref = {}, _ref[BORDER_TOP_BOTTOM] = this.border, _ref), bem({\n unfit: !this.fit,\n fixed: this.fixed\n })]\n }, [this.slots()]);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (this.placeholder && this.fixed) {\n return h(\"div\", {\n \"class\": bem('placeholder'),\n \"style\": {\n height: this.height + \"px\"\n }\n }, [this.genTabbar()]);\n }\n\n return this.genTabbar();\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isObject, isDef } from '../utils';\nimport { route, routeProps } from '../utils/router'; // Mixins\n\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Icon from '../icon';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('tabbar-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanTabbar')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n icon: String,\n name: [Number, String],\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n iconPrefix: String\n }),\n data: function data() {\n return {\n nameMatched: false\n };\n },\n computed: {\n active: function active() {\n var routeMode = this.parent.route;\n\n if (routeMode && '$route' in this) {\n var to = this.to,\n $route = this.$route;\n var config = isObject(to) ? to : {\n path: to\n };\n return !!$route.matched.find(function (r) {\n // vue-router 3.x $route.matched[0].path is empty in / and its children paths\n var path = r.path === '' ? '/' : r.path;\n var pathMatched = config.path === path;\n var nameMatched = isDef(config.name) && config.name === r.name;\n return pathMatched || nameMatched;\n });\n }\n\n return this.nameMatched;\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _this = this;\n\n if (!this.active) {\n this.parent.triggerChange(this.name || this.index, function () {\n route(_this.$router, _this);\n });\n }\n\n this.$emit('click', event);\n },\n genIcon: function genIcon() {\n var h = this.$createElement;\n var slot = this.slots('icon', {\n active: this.active\n });\n\n if (slot) {\n return slot;\n }\n\n if (this.icon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": this.icon,\n \"classPrefix\": this.iconPrefix\n }\n });\n }\n }\n },\n render: function render() {\n var _this$badge;\n\n var h = arguments[0];\n var active = this.active;\n var color = this.parent[active ? 'activeColor' : 'inactiveColor'];\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] TabbarItem: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(\"div\", {\n \"class\": bem({\n active: active\n }),\n \"style\": {\n color: color\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('icon')\n }, [this.genIcon(), h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": (_this$badge = this.badge) != null ? _this$badge : this.info\n }\n })]), h(\"div\", {\n \"class\": bem('text')\n }, [this.slots('default', {\n active: active\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Icon from '../icon';\nimport Sidebar from '../sidebar';\nimport SidebarItem from '../sidebar-item'; // Types\n\nvar _createNamespace = createNamespace('tree-select'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction TreeSelect(h, props, slots, ctx) {\n var items = props.items,\n height = props.height,\n activeId = props.activeId,\n selectedIcon = props.selectedIcon,\n mainActiveIndex = props.mainActiveIndex;\n\n if (process.env.NODE_ENV === 'development') {\n if (ctx.listeners.navclick) {\n console.warn('[Vant] TreeSelect: \"navclick\" event is deprecated, use \"click-nav\" instead.');\n }\n\n if (ctx.listeners.itemclick) {\n console.warn('[Vant] TreeSelect: \"itemclick\" event is deprecated, use \"click-item\" instead.');\n }\n }\n\n var selectedItem = items[+mainActiveIndex] || {};\n var subItems = selectedItem.children || [];\n var isMultiple = Array.isArray(activeId);\n\n function isActiveItem(id) {\n return isMultiple ? activeId.indexOf(id) !== -1 : activeId === id;\n }\n\n var Navs = items.map(function (item) {\n var _item$badge;\n\n return h(SidebarItem, {\n \"attrs\": {\n \"dot\": item.dot,\n \"info\": (_item$badge = item.badge) != null ? _item$badge : item.info,\n \"title\": item.text,\n \"disabled\": item.disabled\n },\n \"class\": [bem('nav-item'), item.className]\n });\n });\n\n function Content() {\n if (slots.content) {\n return slots.content();\n }\n\n return subItems.map(function (item) {\n return h(\"div\", {\n \"key\": item.id,\n \"class\": ['van-ellipsis', bem('item', {\n active: isActiveItem(item.id),\n disabled: item.disabled\n })],\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n var newActiveId = item.id;\n\n if (isMultiple) {\n newActiveId = activeId.slice();\n var index = newActiveId.indexOf(item.id);\n\n if (index !== -1) {\n newActiveId.splice(index, 1);\n } else if (newActiveId.length < props.max) {\n newActiveId.push(item.id);\n }\n }\n\n emit(ctx, 'update:active-id', newActiveId);\n emit(ctx, 'click-item', item); // compatible with legacy usage, should be removed in next major version\n\n emit(ctx, 'itemclick', item);\n }\n }\n }\n }, [item.text, isActiveItem(item.id) && h(Icon, {\n \"attrs\": {\n \"name\": selectedIcon\n },\n \"class\": bem('selected')\n })]);\n });\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(),\n \"style\": {\n height: addUnit(height)\n }\n }, inherit(ctx)]), [h(Sidebar, {\n \"class\": bem('nav'),\n \"attrs\": {\n \"activeKey\": mainActiveIndex\n },\n \"on\": {\n \"change\": function change(index) {\n emit(ctx, 'update:main-active-index', index);\n emit(ctx, 'click-nav', index); // compatible with legacy usage, should be removed in next major version\n\n emit(ctx, 'navclick', index);\n }\n }\n }, [Navs]), h(\"div\", {\n \"class\": bem('content')\n }, [Content()])]);\n}\n\nTreeSelect.props = {\n max: {\n type: [Number, String],\n default: Infinity\n },\n items: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n height: {\n type: [Number, String],\n default: 300\n },\n activeId: {\n type: [Number, String, Array],\n default: 0\n },\n selectedIcon: {\n type: String,\n default: 'success'\n },\n mainActiveIndex: {\n type: [Number, String],\n default: 0\n }\n};\nexport default createComponent(TreeSelect);","import ActionSheet from './action-sheet';\nimport AddressEdit from './address-edit';\nimport AddressList from './address-list';\nimport Area from './area';\nimport Badge from './badge';\nimport Button from './button';\nimport Calendar from './calendar';\nimport Card from './card';\nimport Cascader from './cascader';\nimport Cell from './cell';\nimport CellGroup from './cell-group';\nimport Checkbox from './checkbox';\nimport CheckboxGroup from './checkbox-group';\nimport Circle from './circle';\nimport Col from './col';\nimport Collapse from './collapse';\nimport CollapseItem from './collapse-item';\nimport ContactCard from './contact-card';\nimport ContactEdit from './contact-edit';\nimport ContactList from './contact-list';\nimport CountDown from './count-down';\nimport Coupon from './coupon';\nimport CouponCell from './coupon-cell';\nimport CouponList from './coupon-list';\nimport DatetimePicker from './datetime-picker';\nimport Dialog from './dialog';\nimport Divider from './divider';\nimport DropdownItem from './dropdown-item';\nimport DropdownMenu from './dropdown-menu';\nimport Empty from './empty';\nimport Field from './field';\nimport Form from './form';\nimport GoodsAction from './goods-action';\nimport GoodsActionButton from './goods-action-button';\nimport GoodsActionIcon from './goods-action-icon';\nimport Grid from './grid';\nimport GridItem from './grid-item';\nimport Icon from './icon';\nimport Image from './image';\nimport ImagePreview from './image-preview';\nimport IndexAnchor from './index-anchor';\nimport IndexBar from './index-bar';\nimport Info from './info';\nimport Lazyload from './lazyload';\nimport List from './list';\nimport Loading from './loading';\nimport Locale from './locale';\nimport NavBar from './nav-bar';\nimport NoticeBar from './notice-bar';\nimport Notify from './notify';\nimport NumberKeyboard from './number-keyboard';\nimport Overlay from './overlay';\nimport Pagination from './pagination';\nimport Panel from './panel';\nimport PasswordInput from './password-input';\nimport Picker from './picker';\nimport Popover from './popover';\nimport Popup from './popup';\nimport Progress from './progress';\nimport PullRefresh from './pull-refresh';\nimport Radio from './radio';\nimport RadioGroup from './radio-group';\nimport Rate from './rate';\nimport Row from './row';\nimport Search from './search';\nimport ShareSheet from './share-sheet';\nimport Sidebar from './sidebar';\nimport SidebarItem from './sidebar-item';\nimport Skeleton from './skeleton';\nimport Sku from './sku';\nimport Slider from './slider';\nimport Step from './step';\nimport Stepper from './stepper';\nimport Steps from './steps';\nimport Sticky from './sticky';\nimport SubmitBar from './submit-bar';\nimport Swipe from './swipe';\nimport SwipeCell from './swipe-cell';\nimport SwipeItem from './swipe-item';\nimport Switch from './switch';\nimport SwitchCell from './switch-cell';\nimport Tab from './tab';\nimport Tabbar from './tabbar';\nimport TabbarItem from './tabbar-item';\nimport Tabs from './tabs';\nimport Tag from './tag';\nimport Toast from './toast';\nimport TreeSelect from './tree-select';\nimport Uploader from './uploader';\nvar version = '2.13.1';\n\nfunction install(Vue) {\n var components = [ActionSheet, AddressEdit, AddressList, Area, Badge, Button, Calendar, Card, Cascader, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, CountDown, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Divider, DropdownItem, DropdownMenu, Empty, Field, Form, GoodsAction, GoodsActionButton, GoodsActionIcon, Grid, GridItem, Icon, Image, ImagePreview, IndexAnchor, IndexBar, Info, List, Loading, Locale, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popover, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, ShareSheet, Sidebar, SidebarItem, Skeleton, Sku, Slider, Step, Stepper, Steps, Sticky, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader];\n components.forEach(function (item) {\n if (item.install) {\n Vue.use(item);\n } else if (item.name) {\n Vue.component(item.name, item);\n }\n });\n}\n\nif (typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n}\n\nexport { install, version, ActionSheet, AddressEdit, AddressList, Area, Badge, Button, Calendar, Card, Cascader, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, CountDown, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Divider, DropdownItem, DropdownMenu, Empty, Field, Form, GoodsAction, GoodsActionButton, GoodsActionIcon, Grid, GridItem, Icon, Image, ImagePreview, IndexAnchor, IndexBar, Info, Lazyload, List, Loading, Locale, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popover, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, ShareSheet, Sidebar, SidebarItem, Skeleton, Sku, Slider, Step, Stepper, Steps, Sticky, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader };\nexport default {\n install: install,\n version: version\n};","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","/*!\n * Vue.js v2.7.14\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\nvar isArray = Array.isArray;\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef(v) {\n return v === undefined || v === null;\n}\nfunction isDef(v) {\n return v !== undefined && v !== null;\n}\nfunction isTrue(v) {\n return v === true;\n}\nfunction isFalse(v) {\n return v === false;\n}\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\nfunction toRawType(value) {\n return _toString.call(value).slice(8, -1);\n}\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n}\nfunction isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n}\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n}\nfunction isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n}\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n}\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n}\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n}\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n/**\n * Remove an item from an array.\n */\nfunction remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n}\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/**\n * Create a cached version of a pure function.\n */\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n});\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n/* istanbul ignore next */\nfunction polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n}\nfunction nativeBind(fn, ctx) {\n return fn.bind(ctx);\n}\n// @ts-expect-error bind cannot be `undefined`\nvar bind = Function.prototype.bind ? nativeBind : polyfillBind;\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n}\n/**\n * Mix properties into target object.\n */\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n}\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\n/* eslint-disable no-unused-vars */\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop(a, b, c) { }\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n/* eslint-enable no-unused-vars */\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n}\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n}\n/**\n * Ensure a function is called only once.\n */\nfunction once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\nfunction hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n];\n\nvar config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n};\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n}\n/**\n * Define a property.\n */\nfunction def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\nfunction parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n}\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nUA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\nUA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n// Firefox has a \"watch\" function on Object.prototype...\n// @ts-expect-error firebox support\nvar nativeWatch = {}.watch;\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n}\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n};\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n/* istanbul ignore next */\nfunction isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n}\nvar hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\nvar _Set; // $flow-disable-line\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n}\nelse {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n}\n\nvar currentInstance = null;\n/**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\nfunction getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n}\n/**\n * @internal\n */\nfunction setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n}\n\n/**\n * @internal\n */\nvar VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n}());\nvar createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n};\nfunction createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n}\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar uid$2 = 0;\nvar pendingCleanupDeps = [];\nvar cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n};\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\nvar Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (process.env.NODE_ENV !== 'production' && info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n}());\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\nfunction pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n}\nfunction popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n else {\n ob.dep.notify();\n }\n return result;\n });\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\nvar NO_INIITIAL_VALUE = {};\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\nfunction toggleObserving(value) {\n shouldObserve = value;\n}\n// ssr mock dep\nvar mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n};\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n}());\n// helpers\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n}\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive(obj, key, val, customSetter, shallow, mock) {\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = !shallow && observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n else {\n dep.depend();\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal, false, mock);\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n else {\n dep.notify();\n }\n }\n });\n return dep;\n}\nfunction set(target, key, val) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' && warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n else {\n ob.dep.notify();\n }\n return val;\n}\nfunction del(target, key) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n else {\n ob.dep.notify();\n }\n}\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n}\n\nfunction reactive(target) {\n makeReactive(target, false);\n return target;\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n}\nfunction makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (process.env.NODE_ENV !== 'production' && !ob) {\n if (target == null || isPrimitive(target)) {\n warn(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n}\nfunction isShallow(value) {\n return !!(value && value.__v_isShallow);\n}\nfunction isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n}\n/**\n * @internal\n */\nfunction isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n}\n\n/**\n * @internal\n */\nvar RefFlag = \"__v_isRef\";\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref$1(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n}\nfunction triggerRef(ref) {\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\n warn(\"received object is not a triggerable ref.\");\n }\n if (process.env.NODE_ENV !== 'production') {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n else {\n ref.dep && ref.dep.notify();\n }\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nfunction proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n}\nfunction proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n}\nfunction customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n dep.depend();\n }\n }, function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n else {\n dep.notify();\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\nfunction toRefs(object) {\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\n warn(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nfunction toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\nfunction readonly(target) {\n return createReadonly(target, false);\n}\nfunction createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (process.env.NODE_ENV !== 'production' && !Object.isExtensible(target)) {\n warn(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n}\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReadonly(target, true);\n}\n\nfunction computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = process.env.NODE_ENV !== 'production'\n ? function () {\n warn('Write operation failed: computed value is readonly');\n }\n : noop;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n}\n\nvar WATCHER = \"watcher\";\nvar WATCHER_CB = \"\".concat(WATCHER, \" callback\");\nvar WATCHER_GETTER = \"\".concat(WATCHER, \" getter\");\nvar WATCHER_CLEANUP = \"\".concat(WATCHER, \" cleanup\");\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nvar INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if (process.env.NODE_ENV !== 'production' && typeof cb !== 'function') {\n warn(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\n \"supports `watch(source, cb, options?) signature.\");\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, _a) {\n var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;\n if (process.env.NODE_ENV !== 'production' && !cb) {\n if (immediate !== undefined) {\n warn(\"watch() \\\"immediate\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n if (deep !== undefined) {\n warn(\"watch() \\\"deep\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n }\n var warnInvalidSource = function (s) {\n warn(\"Invalid watch source: \".concat(s, \". A watch source can only be a getter/effect \") +\n \"function, a ref, a reactive object, or an array of these types.\");\n };\n var instance = currentInstance;\n var call = function (fn, type, args) {\n if (args === void 0) { args = null; }\n return invokeWithErrorHandling(fn, null, args, instance, type);\n };\n var getter;\n var forceTrigger = false;\n var isMultiSource = false;\n if (isRef(source)) {\n getter = function () { return source.value; };\n forceTrigger = isShallow(source);\n }\n else if (isReactive(source)) {\n getter = function () {\n source.__ob__.dep.depend();\n return source;\n };\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });\n getter = function () {\n return source.map(function (s) {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return call(s, WATCHER_GETTER);\n }\n else {\n process.env.NODE_ENV !== 'production' && warnInvalidSource(s);\n }\n });\n };\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = function () { return call(source, WATCHER_GETTER); };\n }\n else {\n // no cb -> simple effect\n getter = function () {\n if (instance && instance._isDestroyed) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return call(source, WATCHER, [onCleanup]);\n };\n }\n }\n else {\n getter = noop;\n process.env.NODE_ENV !== 'production' && warnInvalidSource(source);\n }\n if (cb && deep) {\n var baseGetter_1 = getter;\n getter = function () { return traverse(baseGetter_1()); };\n }\n var cleanup;\n var onCleanup = function (fn) {\n cleanup = watcher.onStop = function () {\n call(fn, WATCHER_CLEANUP);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isServerRendering()) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = noop;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n call(cb, WATCHER_CB, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return noop;\n }\n var watcher = new Watcher(currentInstance, getter, noop, {\n lazy: true\n });\n watcher.noRecurse = !cb;\n var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n // overwrite default run\n watcher.run = function () {\n if (!watcher.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n var newValue = watcher.get();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some(function (v, i) {\n return hasChanged(v, oldValue[i]);\n })\n : hasChanged(newValue, oldValue))) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n call(cb, WATCHER_CB, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n watcher.get();\n }\n };\n if (flush === 'sync') {\n watcher.update = watcher.run;\n }\n else if (flush === 'post') {\n watcher.post = true;\n watcher.update = function () { return queueWatcher(watcher); };\n }\n else {\n // pre\n watcher.update = function () {\n if (instance && instance === currentInstance && !instance._isMounted) {\n // pre-watcher triggered before\n var buffer = instance._preWatchers || (instance._preWatchers = []);\n if (buffer.indexOf(watcher) < 0)\n buffer.push(watcher);\n }\n else {\n queueWatcher(watcher);\n }\n };\n }\n if (process.env.NODE_ENV !== 'production') {\n watcher.onTrack = onTrack;\n watcher.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n watcher.run();\n }\n else {\n oldValue = watcher.get();\n }\n }\n else if (flush === 'post' && instance) {\n instance.$once('hook:mounted', function () { return watcher.get(); });\n }\n else {\n watcher.get();\n }\n return function () {\n watcher.teardown();\n };\n}\n\nvar activeEffectScope;\nvar EffectScope = /** @class */ (function () {\n function EffectScope(detached) {\n if (detached === void 0) { detached = false; }\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n EffectScope.prototype.run = function (fn) {\n if (this.active) {\n var currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"cannot run an inactive effect scope.\");\n }\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.on = function () {\n activeEffectScope = this;\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.off = function () {\n activeEffectScope = this.parent;\n };\n EffectScope.prototype.stop = function (fromParent) {\n if (this.active) {\n var i = void 0, l = void 0;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].teardown();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n var last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n };\n return EffectScope;\n}());\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\n/**\n * @internal\n */\nfunction recordEffectScope(effect, scope) {\n if (scope === void 0) { scope = activeEffectScope; }\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"onScopeDispose() is called when there is no active effect scope\" +\n \" to be associated with.\");\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"provide() can only be used inside setup().\");\n }\n }\n else {\n // TS doesn't allow symbol as index type\n resolveProvided(currentInstance)[key] = value;\n }\n}\nfunction resolveProvided(vm) {\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n var existing = vm._provided;\n var parentProvides = vm.$parent && vm.$parent._provided;\n if (parentProvides === existing) {\n return (vm._provided = Object.create(parentProvides));\n }\n else {\n return existing;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory) {\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n var instance = currentInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n var provides = instance.$parent && instance.$parent._provided;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance)\n : defaultValue;\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"injection \\\"\".concat(String(key), \"\\\" not found.\"));\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"inject() can only be used inside setup() or functional components.\");\n }\n}\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n});\nfunction createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n}\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n}\nfunction checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n}\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n}\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.